Skip to content

Instantly share code, notes, and snippets.

@terasakisatoshi
Last active December 27, 2023 20:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save terasakisatoshi/ca271993993fa5df4753278ae8b7dc27 to your computer and use it in GitHub Desktop.
Save terasakisatoshi/ca271993993fa5df4753278ae8b7dc27 to your computer and use it in GitHub Desktop.
1次元調和振動子に対するNewtonの運動方程式(Julia/smid, inline edition)
<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=device-width"><meta charset="utf-8">
<meta name="pluto-insertion-spot-meta">
<meta name="theme-color" media="(prefers-color-scheme: light)" content="white"><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#2a2928"><meta name="color-scheme" content="light dark"><link rel="icon" type="image/png" sizes="16x16" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-16x16.347d2855.png" integrity="sha384-3qsGeVLdddzV9oIkj3PhXXQX2CZCjOD/CiyrPQOX6InOWw3HAHClrsQhPfX9uRAj" crossorigin="anonymous"><link rel="icon" type="image/png" sizes="32x32" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-32x32.8789add4.png" integrity="sha384-cOe5vSoBIgKNgkUL27p9RpsGVY0uBg9PejLccDy+fR8ZD1Iv5dF1MGHjIZAIZwm6" crossorigin="anonymous"><link rel="icon" type="image/png" sizes="96x96" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-96x96.48689391.png" integrity="sha384-TN49cYb8GyNmrZT14bsYXXo4l1x1NJeJ/EHuVAauAKsNPopPHLojijs9jFT4Vs8c" crossorigin="anonymous"><link rel="pluto-logo-big" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/logo.004c1d7c.svg" integrity="sha384-GkQkODcGxsrSRJCkeakBXihum0GUM44cwBgKyutDimectXCbCgj6Vu3jlrueqEcN" crossorigin="anonymous"><link rel="pluto-logo-small" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon_unsaturated.d1387b25.svg" integrity="sha384-omwjH+Qy3hpAVf5FYd/pkaDBuVAfsEDRN7eBxEA8Ek00OAWP+aiV+GpEYk3I7lyo" crossorigin="anonymous"><script type="module" src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.23f324ce.js" integrity="sha384-4l9NNFe3thsPdrGcAdnBEfNmojvUidAN6OBuPDii3JDkVIF5TMXkICWqHEsh8sXq" crossorigin="anonymous"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/juliamono.c6034ab4.css" integrity="sha384-n0za6lUXlyf4XC+nGkZWj3TLDnRbNpAcoi4PZGSlQMPoyqGa9kGY+ZXkUgZGIhQt" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.c98fb036.css" integrity="sha384-hq2r9iSY9J+3FSHCB6PZ5jTCnnhSL7DhUmwTXDjMmklxEsQ+2YHWCS7Cm0i5Y/rT" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/vollkorn.089565a8.css" integrity="sha384-jnV/84VtSgBLF70H+s2rxJcOUZIMDR+X/ElFZA83i9ZtZSWiIMFAgPyrWkOJV08q" crossorigin="anonymous"><script defer="">console.log("Pluto.jl, by Fons van der Plas (https://github.com/fonsp), Mikołaj Bochenski (https://github.com/malyvsen), Michiel Dral (https://github.com/dralletje) and friends 🌈");</script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.b8733d72.js" defer="" integrity="sha384-84yPd6AGZ/1IUiaBlssipmMKMFz9WGFQ+u8vYZ9cWicH6bZm7ZOej+kLDXnIIAQJ" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.9f9dc874.js" defer="" integrity="sha384-tkFo1EK72I9JvoTmHFa199dfRzW8mkXPUkHb/N7UhYI+bxKzX3Kh8LNCZz1ltsFF" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.90ede145.js" defer="" integrity="sha384-CuNU9gQg6fa/yynNqNWjHWzPm4nj+d7O6+HXsNGSqClhs/bYQIbBC3Lw/kh8Ukui" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.dbeed08a.js" defer="" integrity="sha384-1BEdQwXfZi4ZpsNV8w1X8pQcVK1/DS/+/M8OTo3gol7mdEspSN7nT6llX57NQCSt" crossorigin="anonymous"></script><script id="iframe-resizer-content-window-script" src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.6386bd9d.js" crossorigin="anonymous" defer="" integrity="sha384-tgN2a0VDi/lCYwZuDqT7L+A/Y/9kpxf3HV7zv2BJ5Fu7zW0EClq0nM4crfK3TRPs"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.2dae1b31.css" type="text/css" integrity="sha384-Tcw0GaMme/KbluiF6zJjOMqdXU+GeDMSRoX0MhIH0cfyRAO7XQQWWwfsJY7Wx2yK" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.82b535be.css" type="text/css" media="all" data-pluto-file="hide-ui" integrity="sha384-oYS1v2EOz2AtXoLXUVgvn3mEtQdJg1mfwZwLfJi++UQyF/qo43KuvjZ603iShU3X" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.ec3a6a5b.css" type="text/css" integrity="sha384-SuGFZkuBuG+lmfz6RbnvjtcyIh8W1xDYi1sebwn7bl9VMQnhmr6EniSmIdcHJ55l" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.1f4cf2ca.css" type="text/css" integrity="sha384-lBSBsn8FT1UzGOsNVudfV8RSHQEuNWqrCb6xQnF10uvF9AiCzYsCRXvKlhtQvV3c" crossorigin="anonymous"><link rel="preload" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/juliamono.c6034ab4.css" as="style" integrity="sha384-n0za6lUXlyf4XC+nGkZWj3TLDnRbNpAcoi4PZGSlQMPoyqGa9kGY+ZXkUgZGIhQt" crossorigin="anonymous"><link rel="preload" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/vollkorn.089565a8.css" as="style" integrity="sha384-jnV/84VtSgBLF70H+s2rxJcOUZIMDR+X/ElFZA83i9ZtZSWiIMFAgPyrWkOJV08q" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.e82e08bd.css" type="text/css" integrity="sha384-7YN+h8b6N4N65qk8TG/J2KPF95D8z3sGNd06rokz4CX9oWu0KnRAF5cVWu3BkkaN" crossorigin="anonymous"><script data-pluto-file="launch-parameters">
window.pluto_notebook_id = undefined;
window.pluto_isolated_cell_ids = undefined;
window.pluto_notebookfile = "data:text/julia;charset=utf-8;base64,IyMjIEEgUGx1dG8uamwgbm90ZWJvb2sgIyMjCiMgdjAuMTkuMzYKCnVzaW5nIE1hcmtkb3duCnVzaW5nIEludGVyYWN0aXZlVXRpbHMKCiMg4pWU4pWQ4pWhIDNhMWIzN2RlLWE0OWItMTFlZS0xMDU2LTQ1OTk2ZWZjOWE4MQp1c2luZyBCZW5jaG1hcmtUb29scwoKIyDilZTilZDilaEgMGI3MmI4MGQtNmNjYS00NzdlLWI1ZDQtNWRkOWNlM2I5NjQ3CnVzaW5nIFVucm9sbGVkCgojIOKVlOKVkOKVoSA1NTQ1NzVkNi1lNDhjLTQ5ZmYtOTg0NC00NWI4NjVkY2Q1ZWYKdmVyc2lvbmluZm8oKQoKIyDilZTilZDilaEgOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwCmJlZ2luCiAgICBmdW5jdGlvbiBSdW5nZV9LdXR0YV80dGgoeCwgdiwgZHQsIG1hc3MsIGspCiAgICAgICAgeDEgPSB2CiAgICAgICAgdjEgPSBmb3JjZSh4LCBtYXNzLCBrKQoKICAgICAgICB4MiA9IHYgKyAwLjUgKiBkdCAqIHYxCiAgICAgICAgdjIgPSBmb3JjZSh4ICsgMC41ICogeDEgKiBkdCwgbWFzcywgaykKCiAgICAgICAgeDMgPSB2ICsgMC41ICogZHQgKiB2MgogICAgICAgIHYzID0gZm9yY2UoeCArIDAuNSAqIHgyICogZHQsIG1hc3MsIGspCgogICAgICAgIHg0ID0gdiArIGR0ICogdjMKICAgICAgICB2NCA9IGZvcmNlKHggKyB4MyAqIGR0LCBtYXNzLCBrKQoKICAgICAgICB4ICs9ICh4MSArIDIgKiB4MiArIDIgKiB4MyArIHg0KSAqIGR0IC8gNgogICAgICAgIHYgKz0gKHYxICsgMiAqIHYyICsgMiAqIHYzICsgdjQpICogZHQgLyA2CgogICAgICAgIHJldHVybiB4LCB2CiAgICBlbmQKCiAgICBAaW5saW5lIEBmYXN0bWF0aCBmdW5jdGlvbiBmb3JjZSh4LCBtYXNzLCBrKQogICAgICAgIHJldHVybiAteCAqIGsgLyBtYXNzCiAgICBlbmQKZW5kCgojIOKVlOKVkOKVoSBiMWY4ZTQxZC0yMGIwLTQ5N2EtOTQ5NC1iYzNmMGIyNzJiODUKZnVuY3Rpb24gbWFpbihudCA9IDEwMDAwMDAwMCkKICAgIG1hc3MgPSAxLjAKICAgIGsgPSAxLjAKICAgIGR0ID0gMWUtMgoKICAgIHh0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQogICAgdnQgPSB6ZXJvcyhGbG9hdDY0LCBudCArIDEpCgogICAgeCA9IDAuMAogICAgdiA9IDEuMAoKICAgIGZvciBpdCA9IDE6KG50KzEpCiAgICAgICAgeHRbaXRdID0geAogICAgICAgIHZ0W2l0XSA9IHYKICAgICAgICB4LCB2ID0gUnVuZ2VfS3V0dGFfNHRoKHgsIHYsIGR0LCBtYXNzLCBrKQogICAgZW5kCgogICAgb3BlbigicmVzdWx0X2p1bGlhX21haW4ub3V0IiwgInciKSBkbyBmaWxlCiAgICAgICAgZm9yIGl0ID0gKG50LTk5OSk6bnQKICAgICAgICAgICAgcHJpbnRsbihmaWxlLCAiKHh0W2l0XSkgJCh2dFtpdF0pIikKICAgICAgICBlbmQKICAgIGVuZAplbmQKCiMg4pWU4pWQ4pWhIDZiYWE3NDRlLWY0MWUtNGEzMy1hNGQ2LTAyMjg0YjI3YzVmZgpiZWdpbgogICAgQHRpbWUgbWFpbigpCiAgICBAdGltZSBtYWluKCkKICAgIEB0aW1lIG1haW4oKQplbmQKCiMg4pWU4pWQ4pWhIGEzNzI4ZDU2LWUzZTYtNDk4ZS05NmY2LWY0MWU4N2VlZTllYQpmdW5jdGlvbiBtYWluX2lubGluZShudCA9IDEwMDAwMDAwMCkKICAgIG1hc3MgPSAxLjAKICAgIGsgPSAxLjAKICAgIGR0ID0gMWUtMgoKICAgIHh0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQogICAgdnQgPSB6ZXJvcyhGbG9hdDY0LCBudCArIDEpCgogICAgeCA9IDAuMAogICAgdiA9IDEuMAoKICAgIGZvciBpdCA9IDE6KG50KzEpCiAgICAgICAgeHRbaXRdID0geAogICAgICAgIHZ0W2l0XSA9IHYKICAgICAgICB4LCB2ID0gQGlubGluZSBSdW5nZV9LdXR0YV80dGgoeCwgdiwgZHQsIG1hc3MsIGspCiAgICBlbmQKCiAgICBvcGVuKCJyZXN1bHRfanVsaWFfbWFpbl9pbmxpbmUub3V0IiwgInciKSBkbyBmaWxlCiAgICAgICAgZm9yIGl0ID0gKG50LTk5OSk6bnQKICAgICAgICAgICAgcHJpbnRsbihmaWxlLCAiKHh0W2l0XSkgJCh2dFtpdF0pIikKICAgICAgICBlbmQKICAgIGVuZAplbmQKCiMg4pWU4pWQ4pWhIDU0NjM4MWJhLTQ3YzQtNGRjMC04OTlkLWUwMmVkMzI0NTFlYQpiZWdpbgogICAgQHRpbWUgbWFpbl9pbmxpbmUoKQogICAgQHRpbWUgbWFpbl9pbmxpbmUoKQogICAgQHRpbWUgbWFpbl9pbmxpbmUoKQplbmQKCiMg4pWU4pWQ4pWhIDczN2U0ZDdkLWY1ZWItNGNiNC1iZTAxLWFhZDZmMGMyMmI5MwpmdW5jdGlvbiBtYWluX2lubGluZV9zaW1kKG50ID0gMTAwMDAwMDAwKQogICAgbWFzcyA9IDEuMAogICAgayA9IDEuMAogICAgZHQgPSAxZS0yCgogICAgeHQgPSB6ZXJvcyhGbG9hdDY0LCBudCArIDEpCiAgICB2dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKCiAgICB4ID0gMC4wCiAgICB2ID0gMS4wCgogICAgQHNpbWQgZm9yIGl0ID0gMToobnQrMSkKICAgICAgICB4dFtpdF0gPSB4CiAgICAgICAgdnRbaXRdID0gdgogICAgICAgIHgsIHYgPSBAaW5saW5lIFJ1bmdlX0t1dHRhXzR0aCh4LCB2LCBkdCwgbWFzcywgaykKICAgIGVuZAoKICAgIG9wZW4oInJlc3VsdF9qdWxpYV9tYWluX2lubGluZV9zaW1kLm91dCIsICJ3IikgZG8gZmlsZQogICAgICAgIGZvciBpdCA9IChudC05OTkpOm50CiAgICAgICAgICAgIHByaW50bG4oZmlsZSwgIih4dFtpdF0pICQodnRbaXRdKSIpCiAgICAgICAgZW5kCiAgICBlbmQKZW5kCgojIOKVlOKVkOKVoSAxODg2MTNiMi1kZmY5LTQxODEtYWU0Mi03ODI0YTczYzJjMDAKYmVnaW4KICAgIEB0aW1lIG1haW5faW5saW5lX3NpbWQoKQogICAgQHRpbWUgbWFpbl9pbmxpbmVfc2ltZCgpCiAgICBAdGltZSBtYWluX2lubGluZV9zaW1kKCkKZW5kCgojIOKVlOKVkOKVoSA5ZjlmYmVkYy02OGFlLTRmZjAtYmY0MC01YzEzZWY5YTc4MGEKZnVuY3Rpb24gbWFpbl9mYXN0bWF0aChudCA9IDEwMDAwMDAwMCkKICAgIG1hc3MgPSAxLjAKICAgIGsgPSAxLjAKICAgIGR0ID0gMWUtMgoKICAgIHh0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQogICAgdnQgPSB6ZXJvcyhGbG9hdDY0LCBudCArIDEpCgogICAgeCA9IDAuMAogICAgdiA9IDEuMAoKICAgIGZvciBpdCA9IDE6KG50KzEpCiAgICAgICAgeHRbaXRdID0geAogICAgICAgIHZ0W2l0XSA9IHYKICAgICAgICB4LCB2ID0gQGZhc3RtYXRoIFJ1bmdlX0t1dHRhXzR0aCh4LCB2LCBkdCwgbWFzcywgaykKICAgIGVuZAoKICAgIG9wZW4oInJlc3VsdF9qdWxpYV9tYWluX2Zhc3RtYXRoLm91dCIsICJ3IikgZG8gZmlsZQogICAgICAgIGZvciBpdCA9IChudC05OTkpOm50CiAgICAgICAgICAgIHByaW50bG4oZmlsZSwgIih4dFtpdF0pICQodnRbaXRdKSIpCiAgICAgICAgZW5kCiAgICBlbmQKZW5kCgojIOKVlOKVkOKVoSBkOWU4MTE1OS1iOWEyLTQ1MDctOTVhNC04YzFkM2M1Mjc3ODAKYmVnaW4KICAgIEB0aW1lIG1haW5fZmFzdG1hdGgoKQogICAgQHRpbWUgbWFpbl9mYXN0bWF0aCgpCiAgICBAdGltZSBtYWluX2Zhc3RtYXRoKCkKZW5kCgojIOKVlOKVkOKVoSA2NWQ5NjIzZC1kOGM5LTQ5NWEtOTgyMS1mOWFmYjY0ZThjN2EKZnVuY3Rpb24gbWFpbl9pbmxpbmVfZmFzdG1hdGgobnQgPSAxMDAwMDAwMDApCiAgICBtYXNzID0gMS4wCiAgICBrID0gMS4wCiAgICBkdCA9IDFlLTIKCiAgICB4dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKICAgIHZ0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQoKICAgIHggPSAwLjAKICAgIHYgPSAxLjAKCiAgICBmb3IgaXQgPSAxOihudCsxKQogICAgICAgIHh0W2l0XSA9IHgKICAgICAgICB2dFtpdF0gPSB2CiAgICAgICAgeCwgdiA9IEBpbmxpbmUgQGZhc3RtYXRoIFJ1bmdlX0t1dHRhXzR0aCh4LCB2LCBkdCwgbWFzcywgaykKICAgIGVuZAoKICAgIG9wZW4oInJlc3VsdF9qdWxpYV9tYWluX2lubGluZV9mYXN0bWF0aC5vdXQiLCAidyIpIGRvIGZpbGUKICAgICAgICBmb3IgaXQgPSAobnQtOTk5KTpudAogICAgICAgICAgICBwcmludGxuKGZpbGUsICIoeHRbaXRdKSAkKHZ0W2l0XSkiKQogICAgICAgIGVuZAogICAgZW5kCmVuZAoKIyDilZTilZDilaEgNjQxMGQ4NDItNjA5Yi00NGNhLTg0MzAtN2YyNjU4YjNjNjVmCmJlZ2luCiAgICBAdGltZSBtYWluX2lubGluZV9mYXN0bWF0aCgpCiAgICBAdGltZSBtYWluX2lubGluZV9mYXN0bWF0aCgpCiAgICBAdGltZSBtYWluX2lubGluZV9mYXN0bWF0aCgpCmVuZAoKIyDilZTilZDilaEgYjk2YTIzZWMtZjkxMS00NzZjLTk4NDEtOTMxZWI1NjMxZDdjCmZ1bmN0aW9uIG1haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgobnQgPSAxMDAwMDAwMDApCiAgICBtYXNzID0gMS4wCiAgICBrID0gMS4wCiAgICBkdCA9IDFlLTIKCiAgICB4dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKICAgIHZ0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQoKICAgIHggPSAwLjAKICAgIHYgPSAxLjAKCiAgICBAaW5saW5lIEBpbmJvdW5kcyBAc2ltZCBmb3IgaXQgPSAxOihudCsxKQogICAgICAgIHh0W2l0XSA9IHgKICAgICAgICB2dFtpdF0gPSB2CiAgICAgICAgeCwgdiA9IEBmYXN0bWF0aCBSdW5nZV9LdXR0YV80dGgoeCwgdiwgZHQsIG1hc3MsIGspCiAgICBlbmQKCiAgICBvcGVuKCJyZXN1bHRfanVsaWFfbWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aC5vdXQiLCAidyIpIGRvIGZpbGUKICAgICAgICBmb3IgaXQgPSAobnQtOTk5KTpudAogICAgICAgICAgICBwcmludGxuKGZpbGUsICIoeHRbaXRdKSAkKHZ0W2l0XSkiKQogICAgICAgIGVuZAogICAgZW5kCmVuZAoKIyDilZTilZDilaEgYTVmMWEwYTYtYzlhMy00OTUwLThmMzEtZGZmMTE4M2E1NjY3CmJlZ2luCiAgICBAdGltZSBtYWluX3NpbWRfaW5saW5lX2Zhc3RtYXRoKCkKICAgIEB0aW1lIG1haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgoKQogICAgQHRpbWUgbWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aCgpCmVuZAoKIyDilZTilZDilaEgMTMwMzg5M2YtYmUyZS00OTAzLWFmZDQtODI1YmI2N2QwOWNhCmZ1bmN0aW9uIG1haW5faW5ib3VuZHNfc2ltZF9pbmxpbmVfZmFzdG1hdGgobnQgPSAxMDAwMDAwMDApCiAgICBtYXNzID0gMS4wCiAgICBrID0gMS4wCiAgICBkdCA9IDFlLTIKCiAgICB4dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKICAgIHZ0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQoKICAgIHggPSAwLjAKICAgIHYgPSAxLjAKCiAgICBAaW5ib3VuZHMgQHNpbWQgZm9yIGl0ID0gMToobnQrMSkKICAgICAgICB4dFtpdF0gPSB4CiAgICAgICAgdnRbaXRdID0gdgogICAgICAgIHgsIHYgPSBAaW5saW5lIEBmYXN0bWF0aCBSdW5nZV9LdXR0YV80dGgoeCwgdiwgZHQsIG1hc3MsIGspCiAgICBlbmQKCiAgICBvcGVuKCJyZXN1bHRfanVsaWFfbWFpbl9pbmJvdW5kc19zaW1kX2lubGluZV9mYXN0bWF0aC5vdXQiLCAidyIpIGRvIGZpbGUKICAgICAgICBmb3IgaXQgPSAobnQtOTk5KTpudAogICAgICAgICAgICBwcmludGxuKGZpbGUsICIoeHRbaXRdKSAkKHZ0W2l0XSkiKQogICAgICAgIGVuZAogICAgZW5kCmVuZAoKIyDilZTilZDilaEgMzU5ZDkxNTAtY2Q2Mi00NWNmLTk0NDYtODU2N2JjZWFiZGRjCmJlZ2luCiAgICBAdGltZSBtYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRoKCkKICAgIEB0aW1lIG1haW5faW5ib3VuZHNfc2ltZF9pbmxpbmVfZmFzdG1hdGgoKQogICAgQHRpbWUgbWFpbl9pbmJvdW5kc19zaW1kX2lubGluZV9mYXN0bWF0aCgpCmVuZAoKIyDilZTilZDilaEgN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhhCmJlZ2luCiAgICBudCA9IDEwXjYKICAgIHByaW50bG4oIm50ID0gIiwgbnQpCmVuZAoKIyDilZTilZDilaEgMGZmZWE2MTMtMTA0My00ZjMwLTljZTItZmE5MzNmMGM0MWZmCmJlZ2luCiAgICBtYWluKG50KQogICAgbWFpbl9pbmxpbmUobnQpCiAgICBtYWluX2lubGluZV9zaW1kKG50KQogICAgbWFpbl9mYXN0bWF0aChudCkKICAgIG1haW5faW5saW5lX2Zhc3RtYXRoKG50KQogICAgbWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aChudCkKICAgIG1haW5faW5ib3VuZHNfc2ltZF9pbmxpbmVfZmFzdG1hdGgobnQpCiAgICBAYXNzZXJ0IHJ1bihgZGlmZiByZXN1bHRfanVsaWFfbWFpbi5vdXQgcmVzdWx0X2p1bGlhX21haW5faW5saW5lLm91dGApLmV4aXRjb2RlID09IDAKICAgIEBhc3NlcnQgcnVuKGBkaWZmIHJlc3VsdF9qdWxpYV9tYWluLm91dCByZXN1bHRfanVsaWFfbWFpbl9pbmxpbmVfc2ltZC5vdXRgKS5leGl0Y29kZSA9PQogICAgICAgICAgICAwCiAgICBAYXNzZXJ0IHJ1bihgZGlmZiByZXN1bHRfanVsaWFfbWFpbi5vdXQgcmVzdWx0X2p1bGlhX21haW5fZmFzdG1hdGgub3V0YCkuZXhpdGNvZGUgPT0gMAogICAgQGFzc2VydCBydW4oYGRpZmYgcmVzdWx0X2p1bGlhX21haW4ub3V0IHJlc3VsdF9qdWxpYV9tYWluX2Zhc3RtYXRoLm91dGApLmV4aXRjb2RlID09IDAKICAgIEBhc3NlcnQgcnVuKAogICAgICAgIGBkaWZmIHJlc3VsdF9qdWxpYV9tYWluLm91dCByZXN1bHRfanVsaWFfbWFpbl9pbmxpbmVfZmFzdG1hdGgub3V0YCwKICAgICkuZXhpdGNvZGUgPT0gMAogICAgQGFzc2VydCBydW4oCiAgICAgICAgYGRpZmYgcmVzdWx0X2p1bGlhX21haW4ub3V0IHJlc3VsdF9qdWxpYV9tYWluX3NpbWRfaW5saW5lX2Zhc3RtYXRoLm91dGAsCiAgICApLmV4aXRjb2RlID09IDAKICAgIEBhc3NlcnQgcnVuKAogICAgICAgIGBkaWZmIHJlc3VsdF9qdWxpYV9tYWluLm91dCByZXN1bHRfanVsaWFfbWFpbl9pbmJvdW5kc19zaW1kX2lubGluZV9mYXN0bWF0aC5vdXRgLAogICAgKS5leGl0Y29kZSA9PSAwCmVuZAoKIyDilZTilZDilaEgZTQzMGExMzEtNjNiNi00YTk3LWE0OWMtYzIzMjU0ODRhZWJhCnAgPSBydW4oYGRpZmYgcmVzdWx0X2p1bGlhX21haW4ub3V0IHJlc3VsdF9qdWxpYV9tYWluX2lubGluZS5vdXRgKQoKIyDilZTilZDilaEgYmRmMTU5MTItYjlmYi00ZjNhLTg3ZTktMjQ1YzYzZDFhMDNmCmxldAogICAgcHJpbnQoIm1haW4oJG50KTogICAgICAgICAgICAgICAgIikKICAgIEBidGltZSBtYWluKCRudCkKZW5kCgojIOKVlOKVkOKVoSAwZTYwZDlkNi01M2Q1LTQ3YzctOTIwZC1lMmZlNzhmYTEyN2UKbGV0CiAgICBwcmludCgibWFpbl9pbmxpbmUoJG50KTogICAgICAgICAiKQogICAgQGJ0aW1lIG1haW5faW5saW5lKCRudCkKZW5kCgojIOKVlOKVkOKVoSBhZWE4NDQ0ZS0xNzUyLTRiNzYtODViZC0yOTkzZTJiM2NhN2IKbGV0CiAgICBwcmludCgibWFpbl9pbmxpbmVfc2ltZCgkbnQpOiAgICAiKQogICAgQGJ0aW1lIG1haW5faW5saW5lX3NpbWQoJG50KQplbmQKCiMg4pWU4pWQ4pWhIDE2ZDFjZDA3LTE0MWQtNGJjZS1hN2Y4LWE4NWU1YmU1ZWVmZQpsZXQKICAgIHByaW50KCJtYWluX2Zhc3RtYXRoKCRudCk6ICAgICAgICIpCiAgICBAYnRpbWUgbWFpbl9mYXN0bWF0aCgkbnQpCmVuZAoKIyDilZTilZDilaEgOTI3M2MyNTItYWM0NC00NGNlLTlkMzQtZDk3NDM5ZTQ2ZjAxCmxldAogICAgcHJpbnQoIm1haW5faW5saW5lX2Zhc3RtYXRoKCRudCk6IikKICAgIEBidGltZSBtYWluX2lubGluZV9mYXN0bWF0aCgkbnQpCmVuZAoKIyDilZTilZDilaEgN2FlMzM5N2MtOTQ2ZC00ZTBhLWJmNGQtYzY2M2IxYTEyNzI4CmxldAogICAgcHJpbnQoIm1haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgoJG50KToiKQogICAgQGJ0aW1lIG1haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgoJG50KQplbmQKCiMg4pWU4pWQ4pWhIDliNjBmMTEyLTQxNGMtNGRhMi05ZGMyLWYwYmVhZDEwZWQ1MApsZXQKICAgIHByaW50KCJtYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRoKCRudCkiKQogICAgQGJ0aW1lIG1haW5faW5ib3VuZHNfc2ltZF9pbmxpbmVfZmFzdG1hdGgoJG50KQplbmQKCiMg4pWU4pWQ4pWhIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMQpQTFVUT19QUk9KRUNUX1RPTUxfQ09OVEVOVFMgPSAiIiIKW2RlcHNdCkJlbmNobWFya1Rvb2xzID0gIjZlNGI4MGY5LWRkNjMtNTNhYS05NWEzLTBjZGIyOGZhOGJhZiIKVW5yb2xsZWQgPSAiOTYwMmVkN2QtOGZlZi01YmM4LTg1OTctOGYyMTM4MTg2MWU4IgoKW2NvbXBhdF0KQmVuY2htYXJrVG9vbHMgPSAifjEuNC4wIgpVbnJvbGxlZCA9ICJ+MC4xLjUiCiIiIgoKIyDilZTilZDilaEgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAyClBMVVRPX01BTklGRVNUX1RPTUxfQ09OVEVOVFMgPSAiIiIKIyBUaGlzIGZpbGUgaXMgbWFjaGluZS1nZW5lcmF0ZWQgLSBlZGl0aW5nIGl0IGRpcmVjdGx5IGlzIG5vdCBhZHZpc2VkCgpqdWxpYV92ZXJzaW9uID0gIjEuMTAuMCIKbWFuaWZlc3RfZm9ybWF0ID0gIjIuMCIKcHJvamVjdF9oYXNoID0gImEwOGM3MzMwYmFmYWQ1MjQwMjMxNjdlOTg0YWVkZDFiZGY4ZTcwMmQiCgpbW2RlcHMuQXJ0aWZhY3RzXV0KdXVpZCA9ICI1NmYyMmQ3Mi1mZDZkLTk4ZjEtMDJmMC0wOGRkYzA5MDdjMzMiCgpbW2RlcHMuQmFzZTY0XV0KdXVpZCA9ICIyYTBmNDRlMy02YzgzLTU1YmQtODdlNC1iMTk3OGQ5OGJkNWYiCgpbW2RlcHMuQmVuY2htYXJrVG9vbHNdXQpkZXBzID0gWyJKU09OIiwgIkxvZ2dpbmciLCAiUHJpbnRmIiwgIlByb2ZpbGUiLCAiU3RhdGlzdGljcyIsICJVVUlEcyJdCmdpdC10cmVlLXNoYTEgPSAiZjFmMDNhOWZhMjQyNzExNjBlZDdlNzMwNTFmYmEzYzFhNzU5YjUzZiIKdXVpZCA9ICI2ZTRiODBmOS1kZDYzLTUzYWEtOTVhMy0wY2RiMjhmYThiYWYiCnZlcnNpb24gPSAiMS40LjAiCgpbW2RlcHMuQ29tcGlsZXJTdXBwb3J0TGlicmFyaWVzX2psbF1dCmRlcHMgPSBbIkFydGlmYWN0cyIsICJMaWJkbCJdCnV1aWQgPSAiZTY2ZTAwNzgtNzAxNS01NDUwLTkyZjctMTVmYmQ5NTdmMmFlIgp2ZXJzaW9uID0gIjEuMC41KzEiCgpbW2RlcHMuRGF0ZXNdXQpkZXBzID0gWyJQcmludGYiXQp1dWlkID0gImFkZTJjYTcwLTM4OTEtNTk0NS05OGZiLWRjMDk5NDMyZTA2YSIKCltbZGVwcy5KU09OXV0KZGVwcyA9IFsiRGF0ZXMiLCAiTW1hcCIsICJQYXJzZXJzIiwgIlVuaWNvZGUiXQpnaXQtdHJlZS1zaGExID0gIjMxZTk5NmYwYTE1YzdiMjgwYmE5Zjc2NjM2YjNmZjllMmFlNThjOWEiCnV1aWQgPSAiNjgyYzA2YTAtZGU2YS01NGFiLWExNDItYzhiMWNmNzljZGU2Igp2ZXJzaW9uID0gIjAuMjEuNCIKCltbZGVwcy5MaWJkbF1dCnV1aWQgPSAiOGYzOTlkYTMtMzU1Ny01Njc1LWI1ZmYtZmI4MzJjOTdjYmRiIgoKW1tkZXBzLkxpbmVhckFsZ2VicmFdXQpkZXBzID0gWyJMaWJkbCIsICJPcGVuQkxBU19qbGwiLCAibGliYmxhc3RyYW1wb2xpbmVfamxsIl0KdXVpZCA9ICIzN2UyZTQ2ZC1mODlkLTUzOWQtYjRlZS04MzhmY2NjYzljOGUiCgpbW2RlcHMuTG9nZ2luZ11dCnV1aWQgPSAiNTZkZGIwMTYtODU3Yi01NGUxLWI4M2QtZGI0ZDU4ZGI1NTY4IgoKW1tkZXBzLk1hY3JvVG9vbHNdXQpkZXBzID0gWyJNYXJrZG93biIsICJSYW5kb20iXQpnaXQtdHJlZS1zaGExID0gImIyMTFjNTUzYzE5OWMxMTFkOTk4ZWNkYWY3NjIzZDFiODliNjlmOTMiCnV1aWQgPSAiMTkxNGRkMmYtODFjNi01ZmNkLTg3MTktNmQ1Yzk2MTBmZjA5Igp2ZXJzaW9uID0gIjAuNS4xMiIKCltbZGVwcy5NYXJrZG93bl1dCmRlcHMgPSBbIkJhc2U2NCJdCnV1aWQgPSAiZDZmNDM3NmUtYWVmNS01MDVhLTk2YzEtOWMwMjczOTQ2MDdhIgoKW1tkZXBzLk1tYXBdXQp1dWlkID0gImE2M2FkMTE0LTdlMTMtNTA4NC05NTRmLWZlMDEyYzY3NzgwNCIKCltbZGVwcy5PcGVuQkxBU19qbGxdXQpkZXBzID0gWyJBcnRpZmFjdHMiLCAiQ29tcGlsZXJTdXBwb3J0TGlicmFyaWVzX2psbCIsICJMaWJkbCJdCnV1aWQgPSAiNDUzNjYyOWEtYzUyOC01YjgwLWJkNDYtZjgwZDUxYzViMzYzIgp2ZXJzaW9uID0gIjAuMy4yMysyIgoKW1tkZXBzLlBhcnNlcnNdXQpkZXBzID0gWyJEYXRlcyIsICJQcmVjb21waWxlVG9vbHMiLCAiVVVJRHMiXQpnaXQtdHJlZS1zaGExID0gIjg0ODk5MDViY2RiY2ZhYzY0ZDFkYWE1MWNhMDdjMGQ4ZjAyODM4MjEiCnV1aWQgPSAiNjlkZTBhNjktMWRkZC01MDE3LTkzNTktMmJmMGIwMmRjOWYwIgp2ZXJzaW9uID0gIjIuOC4xIgoKW1tkZXBzLlByZWNvbXBpbGVUb29sc11dCmRlcHMgPSBbIlByZWZlcmVuY2VzIl0KZ2l0LXRyZWUtc2hhMSA9ICIwM2I0YzI1YjQzY2I4NGNlZTVjOTBhYTliNWVhMGE3OGZkODQ4ZDJmIgp1dWlkID0gImFlYTdiZTAxLTZhNmEtNDA4My04ODU2LThhNmU2NzA0ZDgyYSIKdmVyc2lvbiA9ICIxLjIuMCIKCltbZGVwcy5QcmVmZXJlbmNlc11dCmRlcHMgPSBbIlRPTUwiXQpnaXQtdHJlZS1zaGExID0gIjAwODA1Y2Q0MjlkY2I0ODcwMDYwZmY0OWVmNDQzNDg2YzI2MmUzOGUiCnV1aWQgPSAiMjEyMTZjNmEtMmU3My02NTYzLTZlNjUtNzI2NTY2NjU3MjUwIgp2ZXJzaW9uID0gIjEuNC4xIgoKW1tkZXBzLlByaW50Zl1dCmRlcHMgPSBbIlVuaWNvZGUiXQp1dWlkID0gImRlMDg1OGRhLTYzMDMtNWU2Ny04NzQ0LTUxZWRkZWVlYjhkNyIKCltbZGVwcy5Qcm9maWxlXV0KZGVwcyA9IFsiUHJpbnRmIl0KdXVpZCA9ICI5YWJiZDk0NS1kZmY4LTU2MmYtYjVlOC1lMWViZjVlZjFiNzkiCgpbW2RlcHMuUmFuZG9tXV0KZGVwcyA9IFsiU0hBIl0KdXVpZCA9ICI5YTNmODI4NC1hMmM5LTVmMDItOWExMS04NDU5ODBhMWZkNWMiCgpbW2RlcHMuU0hBXV0KdXVpZCA9ICJlYThlOTE5Yy0yNDNjLTUxYWYtODgyNS1hYWE2M2NkNzIxY2UiCnZlcnNpb24gPSAiMC43LjAiCgpbW2RlcHMuU2VyaWFsaXphdGlvbl1dCnV1aWQgPSAiOWU4OGI0MmEtZjgyOS01YjBjLWJiZTktOWU5MjMxOTgxNjZiIgoKW1tkZXBzLlNwYXJzZUFycmF5c11dCmRlcHMgPSBbIkxpYmRsIiwgIkxpbmVhckFsZ2VicmEiLCAiUmFuZG9tIiwgIlNlcmlhbGl6YXRpb24iLCAiU3VpdGVTcGFyc2VfamxsIl0KdXVpZCA9ICIyZjAxMTg0ZS1lMjJiLTVkZjUtYWU2My1kOTNlYmFiNjllYWYiCnZlcnNpb24gPSAiMS4xMC4wIgoKW1tkZXBzLlN0YXRpc3RpY3NdXQpkZXBzID0gWyJMaW5lYXJBbGdlYnJhIiwgIlNwYXJzZUFycmF5cyJdCnV1aWQgPSAiMTA3NDViMTYtNzljZS0xMWU4LTExZjktN2QxM2FkMzJhM2IyIgp2ZXJzaW9uID0gIjEuMTAuMCIKCltbZGVwcy5TdWl0ZVNwYXJzZV9qbGxdXQpkZXBzID0gWyJBcnRpZmFjdHMiLCAiTGliZGwiLCAibGliYmxhc3RyYW1wb2xpbmVfamxsIl0KdXVpZCA9ICJiZWE4N2Q0YS03ZjViLTU3NzgtOWFmZS04Y2M0NTE4NDg0NmMiCnZlcnNpb24gPSAiNy4yLjErMSIKCltbZGVwcy5UT01MXV0KZGVwcyA9IFsiRGF0ZXMiXQp1dWlkID0gImZhMjY3ZjFmLTYwNDktNGYxNC1hYTU0LTMzYmFmYWUxZWQ3NiIKdmVyc2lvbiA9ICIxLjAuMyIKCltbZGVwcy5VVUlEc11dCmRlcHMgPSBbIlJhbmRvbSIsICJTSEEiXQp1dWlkID0gImNmNzExOGE3LTY5NzYtNWIxYS05YTM5LTdhZGM3MmY1OTFhNCIKCltbZGVwcy5Vbmljb2RlXV0KdXVpZCA9ICI0ZWMwYTgzZS00OTNlLTUwZTItYjlhYy04ZjcyYWNmNWE4ZjUiCgpbW2RlcHMuVW5yb2xsZWRdXQpkZXBzID0gWyJNYWNyb1Rvb2xzIl0KZ2l0LXRyZWUtc2hhMSA9ICI2Y2M5ZDY4Mjc1NTY4MGUwZjBiZTg3YzU2MzkyYjc2NTFlZmMyYzdiIgp1dWlkID0gIjk2MDJlZDdkLThmZWYtNWJjOC04NTk3LThmMjEzODE4NjFlOCIKdmVyc2lvbiA9ICIwLjEuNSIKCltbZGVwcy5saWJibGFzdHJhbXBvbGluZV9qbGxdXQpkZXBzID0gWyJBcnRpZmFjdHMiLCAiTGliZGwiXQp1dWlkID0gIjhlODUwYjkwLTg2ZGItNTM0Yy1hMGQzLTE0NzgxNzZjN2Q5MyIKdmVyc2lvbiA9ICI1LjguMCsxIgoiIiIKCiMg4pWU4pWQ4pWhIENlbGwgb3JkZXI6CiMg4pWg4pWQM2ExYjM3ZGUtYTQ5Yi0xMWVlLTEwNTYtNDU5OTZlZmM5YTgxCiMg4pWg4pWQMGI3MmI4MGQtNmNjYS00NzdlLWI1ZDQtNWRkOWNlM2I5NjQ3CiMg4pWg4pWQNTU0NTc1ZDYtZTQ4Yy00OWZmLTk4NDQtNDViODY1ZGNkNWVmCiMg4pWg4pWQOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwCiMg4pWg4pWQYjFmOGU0MWQtMjBiMC00OTdhLTk0OTQtYmMzZjBiMjcyYjg1CiMg4pWg4pWQNmJhYTc0NGUtZjQxZS00YTMzLWE0ZDYtMDIyODRiMjdjNWZmCiMg4pWg4pWQYTM3MjhkNTYtZTNlNi00OThlLTk2ZjYtZjQxZTg3ZWVlOWVhCiMg4pWg4pWQNTQ2MzgxYmEtNDdjNC00ZGMwLTg5OWQtZTAyZWQzMjQ1MWVhCiMg4pWg4pWQNzM3ZTRkN2QtZjVlYi00Y2I0LWJlMDEtYWFkNmYwYzIyYjkzCiMg4pWg4pWQMTg4NjEzYjItZGZmOS00MTgxLWFlNDItNzgyNGE3M2MyYzAwCiMg4pWg4pWQOWY5ZmJlZGMtNjhhZS00ZmYwLWJmNDAtNWMxM2VmOWE3ODBhCiMg4pWg4pWQZDllODExNTktYjlhMi00NTA3LTk1YTQtOGMxZDNjNTI3NzgwCiMg4pWg4pWQNjVkOTYyM2QtZDhjOS00OTVhLTk4MjEtZjlhZmI2NGU4YzdhCiMg4pWg4pWQNjQxMGQ4NDItNjA5Yi00NGNhLTg0MzAtN2YyNjU4YjNjNjVmCiMg4pWg4pWQYjk2YTIzZWMtZjkxMS00NzZjLTk4NDEtOTMxZWI1NjMxZDdjCiMg4pWg4pWQYTVmMWEwYTYtYzlhMy00OTUwLThmMzEtZGZmMTE4M2E1NjY3CiMg4pWg4pWQMTMwMzg5M2YtYmUyZS00OTAzLWFmZDQtODI1YmI2N2QwOWNhCiMg4pWg4pWQMzU5ZDkxNTAtY2Q2Mi00NWNmLTk0NDYtODU2N2JjZWFiZGRjCiMg4pWg4pWQN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhhCiMg4pWg4pWQMGZmZWE2MTMtMTA0My00ZjMwLTljZTItZmE5MzNmMGM0MWZmCiMg4pWg4pWQZTQzMGExMzEtNjNiNi00YTk3LWE0OWMtYzIzMjU0ODRhZWJhCiMg4pWg4pWQYmRmMTU5MTItYjlmYi00ZjNhLTg3ZTktMjQ1YzYzZDFhMDNmCiMg4pWg4pWQMGU2MGQ5ZDYtNTNkNS00N2M3LTkyMGQtZTJmZTc4ZmExMjdlCiMg4pWg4pWQYWVhODQ0NGUtMTc1Mi00Yjc2LTg1YmQtMjk5M2UyYjNjYTdiCiMg4pWg4pWQMTZkMWNkMDctMTQxZC00YmNlLWE3ZjgtYTg1ZTViZTVlZWZlCiMg4pWg4pWQOTI3M2MyNTItYWM0NC00NGNlLTlkMzQtZDk3NDM5ZTQ2ZjAxCiMg4pWg4pWQN2FlMzM5N2MtOTQ2ZC00ZTBhLWJmNGQtYzY2M2IxYTEyNzI4CiMg4pWg4pWQOWI2MGYxMTItNDE0Yy00ZGEyLTlkYzItZjBiZWFkMTBlZDUwCiMg4pWf4pSAMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAxCiMg4pWf4pSAMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAyCg==";
window.pluto_disable_ui = true;
window.pluto_slider_server_url = undefined;
window.pluto_binder_url = "https://mybinder.org/v2/gh/fonsp/pluto-on-binder/v0.19.36";
window.pluto_statefile = "data:;base64,3gARpWJvbmRzgKxjZWxsX3Jlc3VsdHPeABzZJGIxZjhlNDFkLTIwYjAtNDk3YS05NDk0LWJjM2YwYjI3MmI4NYqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHnZJm1haW4gKGdlbmVyaWMgZnVuY3Rpb24gd2l0aCAyIG1ldGhvZHMppG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WMgZHZY5rBwZXJzaXN0X2pzX3N0YXRlw7doYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkYjFmOGU0MWQtMjBiMC00OTdhLTk0OTQtYmMzZjBiMjcyYjg1uWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOACT53LVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJGFlYTg0NDRlLTE3NTItNGI3Ni04NWJkLTI5OTNlMmIzY2E3YoqmcXVldWVkwqRsb2dzkYikbGluZf+jbXNnktlIbWFpbl9pbmxpbmVfc2ltZCgxMDAwMDAwKTogICAgICAxNS42NjggbXMgKDYwMjcgYWxsb2NhdGlvbnM6IDE1Ljg2IE1pQikKqnRleHQvcGxhaW6nY2VsbF9pZNkkYWVhODQ0NGUtMTc1Mi00Yjc2LTg1YmQtMjk5M2UyYjNjYTdipmt3YXJnc5CiaWS0UGx1dG9SdW5uZXJfZDFhY2I4MWWkZmlsZdlUL1VzZXJzL2F0ZWxpZXIvLmp1bGlhL3BhY2thZ2VzL1BsdXRvL0trVkxJL3NyYy9ydW5uZXIvUGx1dG9SdW5uZXIvc3JjL1BsdXRvUnVubmVyLmpspWdyb3Vwq1BsdXRvUnVubmVypWxldmVsrkxvZ0xldmVsKC01NTUpp3J1bm5pbmfCpm91dHB1dIakYm9keaCkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyBzOSwGsHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SRhZWE4NDQ0ZS0xNzUyLTRiNzYtODViZC0yOTkzZTJiM2NhN2K5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc8AAAACjKoRFrVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDBiNzJiODBkLTZjY2EtNDc3ZS1iNWQ0LTVkZDljZTNiOTY0N4qmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHmgpG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WMftCBG4bBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkMGI3MmI4MGQtNmNjYS00NzdlLWI1ZDQtNWRkOWNlM2I5NjQ3uWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOATPBPbVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDU1NDU3NWQ2LWU0OGMtNDlmZi05ODQ0LTQ1Yjg2NWRjZDVlZoqmcXVldWVkwqRsb2dzkYikbGluZf+jbXNnktoCtUp1bGlhIFZlcnNpb24gMS4xMC4wCkNvbW1pdCAzMTIwOTg5ZjM5YiAoMjAyMy0xMi0yNSAxODowMSBVVEMpCkJ1aWxkIEluZm86CiAgT2ZmaWNpYWwgaHR0cHM6Ly9qdWxpYWxhbmcub3JnLyByZWxlYXNlClBsYXRmb3JtIEluZm86CiAgT1M6IG1hY09TICh4ODZfNjQtYXBwbGUtZGFyd2luMjIuNC4wKQogIENQVTogMTYgw5cgSW50ZWwoUikgQ29yZShUTSkgaTktOTk4MEhLIENQVSBAIDIuNDBHSHoKICBXT1JEX1NJWkU6IDY0CiAgTElCTTogbGlib3BlbmxpYm0KICBMTFZNOiBsaWJMTFZNLTE1LjAuNyAoT1JDSklULCBza3lsYWtlKQogIFRocmVhZHM6IDExIG9uIDE2IHZpcnR1YWwgY29yZXMKRW52aXJvbm1lbnQ6CiAgSlVMSUFfUFJPSkVDVCA9IEAuCiAgSlVMSUFfTE9BRF9QQVRIID0gQDpAdiMuIzpAc3RkbGliCiAgSlVMSUFfRURJVE9SID0gc3VibAogIEpVTElBX1BLR19VU0VfQ0xJX0dJVCA9IHRydWUKICBKVUxJQV9ERVBPVF9QQVRIID0gL1VzZXJzL2F0ZWxpZXIvLmp1bGlhOi9Vc2Vycy9hdGVsaWVyLy5qdWxpYS9qdWxpYXVwL2p1bGlhLTEuMTAuMCswLng2NC5hcHBsZS5kYXJ3aW4xNC9sb2NhbC9zaGFyZS9qdWxpYTovVXNlcnMvYXRlbGllci8uanVsaWEvanVsaWF1cC9qdWxpYS0xLjEwLjArMC54NjQuYXBwbGUuZGFyd2luMTQvc2hhcmUvanVsaWEKICBKVUxJQV9SRVZJU0VfV09SS0VSX09OTFkgPSAxCqp0ZXh0L3BsYWlup2NlbGxfaWTZJDU1NDU3NWQ2LWU0OGMtNDlmZi05ODQ0LTQ1Yjg2NWRjZDVlZqZrd2FyZ3OQomlktFBsdXRvUnVubmVyX2QxYWNiODFlpGZpbGXZVC9Vc2Vycy9hdGVsaWVyLy5qdWxpYS9wYWNrYWdlcy9QbHV0by9La1ZMSS9zcmMvcnVubmVyL1BsdXRvUnVubmVyL3NyYy9QbHV0b1J1bm5lci5qbKVncm91cKtQbHV0b1J1bm5lcqVsZXZlbK5Mb2dMZXZlbCgtNTU1KadydW5uaW5nwqZvdXRwdXSGpGJvZHmgpG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WMftGyiH7BwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkNTU0NTc1ZDYtZTQ4Yy00OWZmLTk4NDQtNDViODY1ZGNkNWVmuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOHptpi7VwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJGU0MzBhMTMxLTYzYjYtNGE5Ny1hNDljLWMyMzI1NDg0YWViYYqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHnZVFByb2Nlc3MoYGRpZmYgcmVzdWx0X2p1bGlhX21haW4ub3V0IHJlc3VsdF9qdWxpYV9tYWluX2lubGluZS5vdXRgLCBQcm9jZXNzRXhpdGVkKDApKaRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVloXCybGFzdF9ydW5fdGltZXN0YW1wy0HZYx/Hp4IbsHBlcnNpc3RfanNfc3RhdGXCt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SRlNDMwYTEzMS02M2I2LTRhOTctYTQ5Yy1jMjMyNTQ4NGFlYmG5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4AOjKktXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkNTQ2MzgxYmEtNDdjNC00ZGMwLTg5OWQtZTAyZWQzMjQ1MWVhiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2cYgIDIuNDU4NzM3IHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAwLjMzJSBnYyB0aW1lKQogIDIuNzI1MjQzIHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCA0LjYxJSBnYyB0aW1lKQogIDIuOTA4MjcyIHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAzLjcwJSBnYyB0aW1lKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SQ1NDYzODFiYS00N2M0LTRkYzAtODk5ZC1lMDJlZDMyNDUxZWGma3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIGvgE4ywcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDU0NjM4MWJhLTQ3YzQtNGRjMC04OTlkLWUwMmVkMzI0NTFlYblkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAHiWdMztXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkYjk2YTIzZWMtZjkxMS00NzZjLTk4NDEtOTMxZWI1NjMxZDdjiqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedk7bWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aCAoZ2VuZXJpYyBmdW5jdGlvbiB3aXRoIDIgbWV0aG9kcymkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyB9R7wwsHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SRiOTZhMjNlYy1mOTExLTQ3NmMtOTg0MS05MzFlYjU2MzFkN2O5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4ALfxFtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhhiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eSrW50ID0gMTAwMDAwMAqqdGV4dC9wbGFpbqdjZWxsX2lk2SQ3ZTE1YWQxOS04MDAwLTQxNjUtYTZjYi1iZDU0ZGZjNDIwOGGma3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljH8dktNCwcGVyc2lzdF9qc19zdGF0ZcK3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDdlMTVhZDE5LTgwMDAtNDE2NS1hNmNiLWJkNTRkZmM0MjA4YblkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzgCE67e1cHVibGlzaGVkX29iamVjdF9rZXlzkLhkZXBlbmRzX29uX3NraXBwZWRfY2VsbHPCp2Vycm9yZWTC2SQwZmZlYTYxMy0xMDQzLTRmMzAtOWNlMi1mYTkzM2YwYzQxZmaKpnF1ZXVlZMKkbG9nc5CncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIIOelvKwcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDBmZmVhNjEzLTEwNDMtNGYzMC05Y2UyLWZhOTMzZjBjNDFmZrlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzg/OAUu1cHVibGlzaGVkX29iamVjdF9rZXlzkLhkZXBlbmRzX29uX3NraXBwZWRfY2VsbHPCp2Vycm9yZWTC2SQ2NWQ5NjIzZC1kOGM5LTQ5NWEtOTgyMS1mOWFmYjY0ZThjN2GKpnF1ZXVlZMKkbG9nc5CncnVubmluZ8Kmb3V0cHV0hqRib2R52TZtYWluX2lubGluZV9mYXN0bWF0aCAoZ2VuZXJpYyBmdW5jdGlvbiB3aXRoIDIgbWV0aG9kcymkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyB4f6GtsHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ2NWQ5NjIzZC1kOGM5LTQ5NWEtOTgyMS1mOWFmYjY0ZThjN2G5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4AI0FPtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkMTMwMzg5M2YtYmUyZS00OTAzLWFmZDQtODI1YmI2N2QwOWNhiqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedlEbWFpbl9pbmJvdW5kc19zaW1kX2lubGluZV9mYXN0bWF0aCAoZ2VuZXJpYyBmdW5jdGlvbiB3aXRoIDIgbWV0aG9kcymkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyCB0kA6sHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQxMzAzODkzZi1iZTJlLTQ5MDMtYWZkNC04MjViYjY3ZDA5Y2G5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4ALlYgtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkOWI2MGYxMTItNDE0Yy00ZGEyLTlkYzItZjBiZWFkMTBlZDUwiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2VVtYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRoKDEwMDAwMDApICAxNS4yNDkgbXMgKDYwMjggYWxsb2NhdGlvbnM6IDE1Ljg2IE1pQikKqnRleHQvcGxhaW6nY2VsbF9pZNkkOWI2MGYxMTItNDE0Yy00ZGEyLTlkYzItZjBiZWFkMTBlZDUwpmt3YXJnc5CiaWS0UGx1dG9SdW5uZXJfZDFhY2I4MWWkZmlsZdlUL1VzZXJzL2F0ZWxpZXIvLmp1bGlhL3BhY2thZ2VzL1BsdXRvL0trVkxJL3NyYy9ydW5uZXIvUGx1dG9SdW5uZXIvc3JjL1BsdXRvUnVubmVyLmpspWdyb3Vwq1BsdXRvUnVubmVypWxldmVsrkxvZ0xldmVsKC01NTUpp3J1bm5pbmfCpm91dHB1dIakYm9keaCkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyCGTF15sHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ5YjYwZjExMi00MTRjLTRkYTItOWRjMi1mMGJlYWQxMGVkNTC5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc8AAAACfki6P7VwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDM1OWQ5MTUwLWNkNjItNDVjZi05NDQ2LTg1NjdiY2VhYmRkY4qmcXVldWVkwqRsb2dzkYikbGluZf+jbXNnktnGICAyLjI0MTA4MSBzZWNvbmRzICg2LjAzIGsgYWxsb2NhdGlvbnM6IDEuNDkxIEdpQiwgMC4zNCUgZ2MgdGltZSkKICAyLjMxNzU1MiBzZWNvbmRzICg2LjAzIGsgYWxsb2NhdGlvbnM6IDEuNDkxIEdpQiwgNS44MyUgZ2MgdGltZSkKICAyLjI4ODI0MSBzZWNvbmRzICg2LjAzIGsgYWxsb2NhdGlvbnM6IDEuNDkxIEdpQiwgNC44MiUgZ2MgdGltZSkKqnRleHQvcGxhaW6nY2VsbF9pZNkkMzU5ZDkxNTAtY2Q2Mi00NWNmLTk0NDYtODU2N2JjZWFiZGRjpmt3YXJnc5CiaWS0UGx1dG9SdW5uZXJfZDFhY2I4MWWkZmlsZdlUL1VzZXJzL2F0ZWxpZXIvLmp1bGlhL3BhY2thZ2VzL1BsdXRvL0trVkxJL3NyYy9ydW5uZXIvUGx1dG9SdW5uZXIvc3JjL1BsdXRvUnVubmVyLmpspWdyb3Vwq1BsdXRvUnVubmVypWxldmVsrkxvZ0xldmVsKC01NTUpp3J1bm5pbmfCpm91dHB1dIakYm9keaCkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyCDjTuXsHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQzNTlkOTE1MC1jZDYyLTQ1Y2YtOTQ0Ni04NTY3YmNlYWJkZGO5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc8AAAABmB97bLVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDNhMWIzN2RlLWE0OWItMTFlZS0xMDU2LTQ1OTk2ZWZjOWE4MYqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHmgpG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WMfs+FccLBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkM2ExYjM3ZGUtYTQ5Yi0xMWVlLTEwNTYtNDU5OTZlZmM5YTgxuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOE4n9IrVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDdhZTMzOTdjLTk0NmQtNGUwYS1iZjRkLWM2NjNiMWExMjcyOIqmcXVldWVkwqRsb2dzkYikbGluZf+jbXNnktlNbWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aCgxMDAwMDAwKTogIDE1LjU1NiBtcyAoNjAyOCBhbGxvY2F0aW9uczogMTUuODYgTWlCKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SQ3YWUzMzk3Yy05NDZkLTRlMGEtYmY0ZC1jNjYzYjFhMTI3Mjima3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIIHF4hmwcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDdhZTMzOTdjLTk0NmQtNGUwYS1iZjRkLWM2NjNiMWExMjcyOLlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAKCW/3utXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwiqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedkmZm9yY2UgKGdlbmVyaWMgZnVuY3Rpb24gd2l0aCAxIG1ldGhvZCmkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyBkakHhsHBlcnNpc3RfanNfc3RhdGXCt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ5NTYxMmFhMy0wZDM1LTQ3MjItYTQ0Ni01YWIyZWQ2MzNlYjC5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4AGYDbtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkNjQxMGQ4NDItNjA5Yi00NGNhLTg0MzAtN2YyNjU4YjNjNjVmiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2cYgIDIuNTIzODk2IHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAwLjQxJSBnYyB0aW1lKQogIDIuNzM5NzA3IHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCA1LjUzJSBnYyB0aW1lKQogIDIuNzA5MjcyIHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAzLjkzJSBnYyB0aW1lKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SQ2NDEwZDg0Mi02MDliLTQ0Y2EtODQzMC03ZjI2NThiM2M2NWama3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIHqDDEawcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDY0MTBkODQyLTYwOWItNDRjYS04NDMwLTdmMjY1OGIzYzY1ZrlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAHbPSX+tXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkZDllODExNTktYjlhMi00NTA3LTk1YTQtOGMxZDNjNTI3NzgwiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2cYgIDMuMzU4Mjk5IHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAwLjM1JSBnYyB0aW1lKQogIDMuMzI0NjAxIHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAzLjgyJSBnYyB0aW1lKQogIDMuMzM1MjYyIHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAzLjI4JSBnYyB0aW1lKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SRkOWU4MTE1OS1iOWEyLTQ1MDctOTVhNC04YzFkM2M1Mjc3ODCma3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIHXMxtKwcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJGQ5ZTgxMTU5LWI5YTItNDUwNy05NWE0LThjMWQzYzUyNzc4MLlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAJVJLWytXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkMGU2MGQ5ZDYtNTNkNS00N2M3LTkyMGQtZTJmZTc4ZmExMjdliqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2UhtYWluX2lubGluZSgxMDAwMDAwKTogICAgICAgICAgIDE4LjU4MSBtcyAoNjAyNyBhbGxvY2F0aW9uczogMTUuODYgTWlCKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SQwZTYwZDlkNi01M2Q1LTQ3YzctOTIwZC1lMmZlNzhmYTEyN2Wma3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIG6ceOqwcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDBlNjBkOWQ2LTUzZDUtNDdjNy05MjBkLWUyZmU3OGZhMTI3ZblkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAKLxYp+tXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkMTZkMWNkMDctMTQxZC00YmNlLWE3ZjgtYTg1ZTViZTVlZWZliqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2UhtYWluX2Zhc3RtYXRoKDEwMDAwMDApOiAgICAgICAgIDI0LjY5MiBtcyAoNjAyNyBhbGxvY2F0aW9uczogMTUuODYgTWlCKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SQxNmQxY2QwNy0xNDFkLTRiY2UtYTdmOC1hODVlNWJlNWVlZmWma3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIHhyjDOwcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDE2ZDFjZDA3LTE0MWQtNGJjZS1hN2Y4LWE4NWU1YmU1ZWVmZblkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAJ2v7netXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkMTg4NjEzYjItZGZmOS00MTgxLWFlNDItNzgyNGE3M2MyYzAwiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2cYgIDIuMjY4ODA3IHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAwLjIzJSBnYyB0aW1lKQogIDIuNDUxNjIzIHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCA1LjQyJSBnYyB0aW1lKQogIDIuNDc3MTgxIHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCA0LjE0JSBnYyB0aW1lKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SQxODg2MTNiMi1kZmY5LTQxODEtYWU0Mi03ODI0YTczYzJjMDCma3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIHB75i6wcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDE4ODYxM2IyLWRmZjktNDE4MS1hZTQyLTc4MjRhNzNjMmMwMLlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAGtBkPAtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkNmJhYTc0NGUtZjQxZS00YTMzLWE0ZDYtMDIyODRiMjdjNWZmiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2cYgIDMuNDI2MjI3IHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAwLjE0JSBnYyB0aW1lKQogIDMuNjI0MTY5IHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCA0Ljg4JSBnYyB0aW1lKQogIDMuNDUyNTcxIHNlY29uZHMgKDYuMDMgayBhbGxvY2F0aW9uczogMS40OTEgR2lCLCAzLjEyJSBnYyB0aW1lKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SQ2YmFhNzQ0ZS1mNDFlLTRhMzMtYTRkNi0wMjI4NGIyN2M1Zmama3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIGcbKcywcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDZiYWE3NDRlLWY0MWUtNGEzMy1hNGQ2LTAyMjg0YjI3YzVmZrlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAJyCzcjtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkOWY5ZmJlZGMtNjhhZS00ZmYwLWJmNDAtNWMxM2VmOWE3ODBhiqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedkvbWFpbl9mYXN0bWF0aCAoZ2VuZXJpYyBmdW5jdGlvbiB3aXRoIDIgbWV0aG9kcymkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyBzRmLcsHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ5ZjlmYmVkYy02OGFlLTRmZjAtYmY0MC01YzEzZWY5YTc4MGG5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4AIbuUtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkYmRmMTU5MTItYjlmYi00ZjNhLTg3ZTktMjQ1YzYzZDFhMDNmiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2UhtYWluKDEwMDAwMDApOiAgICAgICAgICAgICAgICAgIDI0LjQ3MiBtcyAoNjAyNyBhbGxvY2F0aW9uczogMTUuODYgTWlCKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SRiZGYxNTkxMi1iOWZiLTRmM2EtODdlOS0yNDVjNjNkMWEwM2ama3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIGnJZNiwcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJGJkZjE1OTEyLWI5ZmItNGYzYS04N2U5LTI0NWM2M2QxYTAzZrlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAJ+qYMptXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkOTI3M2MyNTItYWM0NC00NGNlLTlkMzQtZDk3NDM5ZTQ2ZjAxiqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2UhtYWluX2lubGluZV9mYXN0bWF0aCgxMDAwMDAwKTogIDE3LjY2MCBtcyAoNjAyNyBhbGxvY2F0aW9uczogMTUuODYgTWlCKQqqdGV4dC9wbGFpbqdjZWxsX2lk2SQ5MjczYzI1Mi1hYzQ0LTQ0Y2UtOWQzNC1kOTc0MzllNDZmMDGma3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VQvVXNlcnMvYXRlbGllci8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdljIH07jG2wcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDkyNzNjMjUyLWFjNDQtNDRjZS05ZDM0LWQ5NzQzOWU0NmYwMblkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAKIQkJrtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkNzM3ZTRkN2QtZjVlYi00Y2I0LWJlMDEtYWFkNmYwYzIyYjkziqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedkybWFpbl9pbmxpbmVfc2ltZCAoZ2VuZXJpYyBmdW5jdGlvbiB3aXRoIDIgbWV0aG9kcymkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyBuqdnksHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ3MzdlNGQ3ZC1mNWViLTRjYjQtYmUwMS1hYWQ2ZjBjMjJiOTO5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4ALXKJtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkYTM3MjhkNTYtZTNlNi00OThlLTk2ZjYtZjQxZTg3ZWVlOWVhiqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedktbWFpbl9pbmxpbmUgKGdlbmVyaWMgZnVuY3Rpb24gd2l0aCAyIG1ldGhvZHMppG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WMgadVXFbBwZXJzaXN0X2pzX3N0YXRlw7doYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkYTM3MjhkNTYtZTNlNi00OThlLTk2ZjYtZjQxZTg3ZWVlOWVhuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOACP/yLVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJGE1ZjFhMGE2LWM5YTMtNDk1MC04ZjMxLWRmZjExODNhNTY2N4qmcXVldWVkwqRsb2dzkYikbGluZf+jbXNnktnGICAyLjI5ODY1NSBzZWNvbmRzICg2LjAzIGsgYWxsb2NhdGlvbnM6IDEuNDkxIEdpQiwgMC42OSUgZ2MgdGltZSkKICAyLjQ0MzE5OSBzZWNvbmRzICg2LjAzIGsgYWxsb2NhdGlvbnM6IDEuNDkxIEdpQiwgNS42OCUgZ2MgdGltZSkKICAyLjM1NzcwMSBzZWNvbmRzICg2LjAzIGsgYWxsb2NhdGlvbnM6IDEuNDkxIEdpQiwgNC43MyUgZ2MgdGltZSkKqnRleHQvcGxhaW6nY2VsbF9pZNkkYTVmMWEwYTYtYzlhMy00OTUwLThmMzEtZGZmMTE4M2E1NjY3pmt3YXJnc5CiaWS0UGx1dG9SdW5uZXJfZDFhY2I4MWWkZmlsZdlUL1VzZXJzL2F0ZWxpZXIvLmp1bGlhL3BhY2thZ2VzL1BsdXRvL0trVkxJL3NyYy9ydW5uZXIvUGx1dG9SdW5uZXIvc3JjL1BsdXRvUnVubmVyLmpspWdyb3Vwq1BsdXRvUnVubmVypWxldmVsrkxvZ0xldmVsKC01NTUpp3J1bm5pbmfCpm91dHB1dIakYm9keaCkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZYyB/E0amsHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SRhNWYxYTBhNi1jOWEzLTQ5NTAtOGYzMS1kZmYxMTgzYTU2Nje5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc8AAAABpy9k57VwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMKrc3RhdHVzX3RyZWWEpG5hbWWobm90ZWJvb2uoc3VidGFza3OEpnNhdmluZ4SkbmFtZaZzYXZpbmeoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyBkTs06qnN0YXJ0ZWRfYXTLQdljIGROxrWpd29ya3NwYWNlhKRuYW1lqXdvcmtzcGFjZahzdWJ0YXNrc4KsaW5pdF9wcm9jZXNzhKRuYW1lrGluaXRfcHJvY2Vzc6hzdWJ0YXNrc4ShNISkbmFtZaE0qHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMfs1vo5qpzdGFydGVkX2F0y0HZYx+y5rqEoTGEpG5hbWWhMahzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdljH7LdQuGqc3RhcnRlZF9hdMtB2WMfsosq6aEyhKRuYW1loTKoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYx+y4jNIqnN0YXJ0ZWRfYXTLQdljH7LdXP+hM4SkbmFtZaEzqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMfsuakpapzdGFydGVkX2F0y0HZYx+y4kpaq2ZpbmlzaGVkX2F0y0HZYx+zXAEdqnN0YXJ0ZWRfYXTLQdljH7KLKrKuY3JlYXRlX3Byb2Nlc3OEpG5hbWWuY3JlYXRlX3Byb2Nlc3Ooc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYx+yixHkqnN0YXJ0ZWRfYXTLQdljH7Fiuv6rZmluaXNoZWRfYXTLQdljH7NcASGqc3RhcnRlZF9hdMtB2WMfsWK69aNwa2eEpG5hbWWjcGtnqHN1YnRhc2tzgahhbmFseXNpc4SkbmFtZahhbmFseXNpc6hzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdljIGROCOqqc3RhcnRlZF9hdMtB2WMgZE4DFatmaW5pc2hlZF9hdMtB2WMgZE4I7qpzdGFydGVkX2F0y0HZYyBkTgMAo3J1boSkbmFtZaNydW6oc3VidGFza3OCsHJlc29sdmVfdG9wb2xvZ3mEpG5hbWWwcmVzb2x2ZV90b3BvbG9neahzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdljIGROzUuqc3RhcnRlZF9hdMtB2WMgZE4nSqhldmFsdWF0ZYSkbmFtZahldmFsdWF0ZahzdWJ0YXNrc94AF6E0hKRuYW1loTSoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyBpyWUsqnN0YXJ0ZWRfYXTLQdljIGcbP2ShMYSkbmFtZaExqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMgZGpCC6pzdGFydGVkX2F0y0HZYyBkXUKaojEyhKRuYW1lojEyqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMgdczG86pzdGFydGVkX2F0y0HZYyBzRn6NojIwhKRuYW1lojIwqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMggdJAZKpzdGFydGVkX2F0y0HZYyCBxfp7oTKEpG5hbWWhMqhzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdljIGR2WQyqc3RhcnRlZF9hdMtB2WMgZGpf0KE2hKRuYW1loTaoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyBr4BPsqnN0YXJ0ZWRfYXTLQdljIGnVbvyiMjOEpG5hbWWiMjOoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyCGTF2nqnN0YXJ0ZWRfYXTLQdljIIOermiiMjKEpG5hbWWiMjKoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyCDnpccqnN0YXJ0ZWRfYXTLQdljIIONXkaiMTGEpG5hbWWiMTGoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyBzRmMGqnN0YXJ0ZWRfYXTLQdljIHM5QiCiMTOEpG5hbWWiMTOoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyB4cozBqnN0YXJ0ZWRfYXTLQdljIHXM3vChNYSkbmFtZaE1qHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMgadVXOqpzdGFydGVkX2F0y0HZYyBpyXspojE1hKRuYW1lojE1qHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMgeoMMY6pzdGFydGVkX2F0y0HZYyB4f7pnojE2hKRuYW1lojE2qHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMgfTuMl6pzdGFydGVkX2F0y0HZYyB6gya7ojE0hKRuYW1lojE0qHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMgeH+h16pzdGFydGVkX2F0y0HZYyB4cqzrojIxhKRuYW1lojIxqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMgg408FapzdGFydGVkX2F0y0HZYyCB0lj/oTeEpG5hbWWhN6hzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdljIG6ceSCqc3RhcnRlZF9hdMtB2WMga+A1taE4hKRuYW1loTioc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyBuqdoOqnN0YXJ0ZWRfYXTLQdljIG6ckfOiMTeEpG5hbWWiMTeoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyB9R7xeqnN0YXJ0ZWRfYXTLQdljIH07ov2iMTCEpG5hbWWiMTCoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyBzOSwsqnN0YXJ0ZWRfYXTLQdljIHB8AeuiMTmEpG5hbWWiMTmoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyCBxeJ2qnN0YXJ0ZWRfYXTLQdljIH8TXnSiMTiEpG5hbWWiMTioc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZYyB/E0bMqnN0YXJ0ZWRfYXTLQdljIH1H2U2hOYSkbmFtZaE5qHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WMgcHvmVKpzdGFydGVkX2F0y0HZYyBuqfX5oTOEpG5hbWWhM6hzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdljIGcbKfGqc3RhcnRlZF9hdMtB2WMgZHZyEatmaW5pc2hlZF9hdMtB2WMghkyEhKpzdGFydGVkX2F0y0HZYyBkTs1Lq2ZpbmlzaGVkX2F0y0HZYyCGTISEqnN0YXJ0ZWRfYXTLQdljIGROJySrZmluaXNoZWRfYXTAqnN0YXJ0ZWRfYXTLQdljH7DLw/ixY2VsbF9kZXBlbmRlbmNpZXPeABzZJGIxZjhlNDFkLTIwYjAtNDk3YS05NDk0LWJjM2YwYjI3MmI4NYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJGIxZjhlNDFkLTIwYjAtNDk3YS05NDk0LWJjM2YwYjI3MmI4NbRkb3duc3RyZWFtX2NlbGxzX21hcIGkbWFpbpPZJDZiYWE3NDRlLWY0MWUtNGEzMy1hNGQ2LTAyMjg0YjI3YzVmZtkkMGZmZWE2MTMtMTA0My00ZjMwLTljZTItZmE5MzNmMGM0MWZm2SRiZGYxNTkxMi1iOWZiLTRmM2EtODdlOS0yNDVjNjNkMWEwM2aydXBzdHJlYW1fY2VsbHNfbWFwiKE6kKEtkKRvcGVukK9SdW5nZV9LdXR0YV80dGiR2SQ5NTYxMmFhMy0wZDM1LTQ3MjItYTQ0Ni01YWIyZWQ2MzNlYjChK5ClemVyb3OQp0Zsb2F0NjSQp3ByaW50bG6Q2SRhZWE4NDQ0ZS0xNzUyLTRiNzYtODViZC0yOTkzZTJiM2NhN2KEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SRhZWE4NDQ0ZS0xNzUyLTRiNzYtODViZC0yOTkzZTJiM2NhN2K0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcIuwbWFpbl9pbmxpbmVfc2ltZJHZJDczN2U0ZDdkLWY1ZWItNGNiNC1iZTAxLWFhZDZmMGMyMmI5M7lCZW5jaG1hcmtUb29scy5QYXJhbWV0ZXJzkNksQmVuY2htYXJrVG9vbHMuZ2VuZXJhdGVfYmVuY2htYXJrX2RlZmluaXRpb26QqCMjbnQjMjU4kK5CZW5jaG1hcmtUb29sc5HZJDNhMWIzN2RlLWE0OWItMTFlZS0xMDU2LTQ1OTk2ZWZjOWE4MbojX19fdGhpc19wbHV0b19tb2R1bGVfbmFtZZCncHJpbnRsbpClcHJpbnSQom50kdkkN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhhpkBidGltZZCiPT2Q2SQwYjcyYjgwZC02Y2NhLTQ3N2UtYjVkNC01ZGQ5Y2UzYjk2NDeEtHByZWNlZGVuY2VfaGV1cmlzdGljB6djZWxsX2lk2SQwYjcyYjgwZC02Y2NhLTQ3N2UtYjVkNC01ZGQ5Y2UzYjk2NDe0ZG93bnN0cmVhbV9jZWxsc19tYXCBqFVucm9sbGVkkLJ1cHN0cmVhbV9jZWxsc19tYXCA2SQ1NTQ1NzVkNi1lNDhjLTQ5ZmYtOTg0NC00NWI4NjVkY2Q1ZWaEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ1NTQ1NzVkNi1lNDhjLTQ5ZmYtOTg0NC00NWI4NjVkY2Q1ZWa0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcIGrdmVyc2lvbmluZm+Q2SRlNDMwYTEzMS02M2I2LTRhOTctYTQ5Yy1jMjMyNTQ4NGFlYmGEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SRlNDMwYTEzMS02M2I2LTRhOTctYTQ5Yy1jMjMyNTQ4NGFlYmG0ZG93bnN0cmVhbV9jZWxsc19tYXCBoXCQsnVwc3RyZWFtX2NlbGxzX21hcIOjcnVukKdjbWRfZ2VukKRAY21kkNkkNTQ2MzgxYmEtNDdjNC00ZGMwLTg5OWQtZTAyZWQzMjQ1MWVhhLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkNTQ2MzgxYmEtNDdjNC00ZGMwLTg5OWQtZTAyZWQzMjQ1MWVhtGRvd25zdHJlYW1fY2VsbHNfbWFwgLJ1cHN0cmVhbV9jZWxsc19tYXCNpUB0aW1lkLNCYXNlLmdjX2FsbG9jX2NvdW50kKZCYXNlLi2Qq0Jhc2UuZ2NfbnVtkKpCYXNlLmZpcnN0kKxCYXNlLkdDX0RpZmaQv0Jhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWVfbnOQqUJhc2UubGFzdJCkQmFzZZCvQmFzZS50aW1lX3ByaW50kKxCYXNlLnRpbWVfbnOQq21haW5faW5saW5lkdkkYTM3MjhkNTYtZTNlNi00OThlLTk2ZjYtZjQxZTg3ZWVlOWVhvkJhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWluZ5DZJGI5NmEyM2VjLWY5MTEtNDc2Yy05ODQxLTkzMWViNTYzMWQ3Y4S0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJGI5NmEyM2VjLWY5MTEtNDc2Yy05ODQxLTkzMWViNTYzMWQ3Y7Rkb3duc3RyZWFtX2NlbGxzX21hcIG5bWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aJPZJGE1ZjFhMGE2LWM5YTMtNDk1MC04ZjMxLWRmZjExODNhNTY2N9kkMGZmZWE2MTMtMTA0My00ZjMwLTljZTItZmE5MzNmMGM0MWZm2SQ3YWUzMzk3Yy05NDZkLTRlMGEtYmY0ZC1jNjYzYjFhMTI3MjiydXBzdHJlYW1fY2VsbHNfbWFw3gAWp0BpbmxpbmWQpHplcm+QqUBmYXN0bWF0aJCjcG9wkKZpc2xlc3OQp0Zsb2F0NjSQqUBpbmJvdW5kc5CncHJpbnRsbpCnbm90aGluZ5ChPJCvQmFzZS5zaW1kX2luZGV4kKVAc2ltZJChOpClemVyb3OQrmp1bGlhLnNpbWRsb29wkKRCYXNlkLVCYXNlLnNpbWRfb3V0ZXJfcmFuZ2WQoS2QtkJhc2Uuc2ltZF9pbm5lcl9sZW5ndGiQpG9wZW6Qr1J1bmdlX0t1dHRhXzR0aJHZJDk1NjEyYWEzLTBkMzUtNDcyMi1hNDQ2LTVhYjJlZDYzM2ViMKErkNkkN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhhhLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhhtGRvd25zdHJlYW1fY2VsbHNfbWFwgaJudJjZJDBmZmVhNjEzLTEwNDMtNGYzMC05Y2UyLWZhOTMzZjBjNDFmZtkkYmRmMTU5MTItYjlmYi00ZjNhLTg3ZTktMjQ1YzYzZDFhMDNm2SQwZTYwZDlkNi01M2Q1LTQ3YzctOTIwZC1lMmZlNzhmYTEyN2XZJGFlYTg0NDRlLTE3NTItNGI3Ni04NWJkLTI5OTNlMmIzY2E3YtkkMTZkMWNkMDctMTQxZC00YmNlLWE3ZjgtYTg1ZTViZTVlZWZl2SQ5MjczYzI1Mi1hYzQ0LTQ0Y2UtOWQzNC1kOTc0MzllNDZmMDHZJDdhZTMzOTdjLTk0NmQtNGUwYS1iZjRkLWM2NjNiMWExMjcyONkkOWI2MGYxMTItNDE0Yy00ZGEyLTlkYzItZjBiZWFkMTBlZDUwsnVwc3RyZWFtX2NlbGxzX21hcIKhXpCncHJpbnRsbpDZJDBmZmVhNjEzLTEwNDMtNGYzMC05Y2UyLWZhOTMzZjBjNDFmZoS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDBmZmVhNjEzLTEwNDMtNGYzMC05Y2UyLWZhOTMzZjBjNDFmZrRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwj7BtYWluX2lubGluZV9zaW1kkdkkNzM3ZTRkN2QtZjVlYi00Y2I0LWJlMDEtYWFkNmYwYzIyYjkztG1haW5faW5saW5lX2Zhc3RtYXRokdkkNjVkOTYyM2QtZDhjOS00OTVhLTk4MjEtZjlhZmI2NGU4YzdhpEBjbWSQp0Bhc3NlcnSQp2NtZF9nZW6QrW1haW5fZmFzdG1hdGiR2SQ5ZjlmYmVkYy02OGFlLTRmZjAtYmY0MC01YzEzZWY5YTc4MGHZIm1haW5faW5ib3VuZHNfc2ltZF9pbmxpbmVfZmFzdG1hdGiR2SQxMzAzODkzZi1iZTJlLTQ5MDMtYWZkNC04MjViYjY3ZDA5Y2GibnSR2SQ3ZTE1YWQxOS04MDAwLTQxNjUtYTZjYi1iZDU0ZGZjNDIwOGG5bWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aJHZJGI5NmEyM2VjLWY5MTEtNDc2Yy05ODQxLTkzMWViNTYzMWQ3Y6NydW6QrkFzc2VydGlvbkVycm9ykKV0aHJvd5CkbWFpbpHZJGIxZjhlNDFkLTIwYjAtNDk3YS05NDk0LWJjM2YwYjI3MmI4NaI9PZCrbWFpbl9pbmxpbmWR2SRhMzcyOGQ1Ni1lM2U2LTQ5OGUtOTZmNi1mNDFlODdlZWU5ZWHZJDY1ZDk2MjNkLWQ4YzktNDk1YS05ODIxLWY5YWZiNjRlOGM3YYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDY1ZDk2MjNkLWQ4YzktNDk1YS05ODIxLWY5YWZiNjRlOGM3YbRkb3duc3RyZWFtX2NlbGxzX21hcIG0bWFpbl9pbmxpbmVfZmFzdG1hdGiT2SQ2NDEwZDg0Mi02MDliLTQ0Y2EtODQzMC03ZjI2NThiM2M2NWbZJDBmZmVhNjEzLTEwNDMtNGYzMC05Y2UyLWZhOTMzZjBjNDFmZtkkOTI3M2MyNTItYWM0NC00NGNlLTlkMzQtZDk3NDM5ZTQ2ZjAxsnVwc3RyZWFtX2NlbGxzX21hcIqnQGlubGluZZChOpChLZCpQGZhc3RtYXRokKRvcGVukK9SdW5nZV9LdXR0YV80dGiR2SQ5NTYxMmFhMy0wZDM1LTQ3MjItYTQ0Ni01YWIyZWQ2MzNlYjChK5ClemVyb3OQp0Zsb2F0NjSQp3ByaW50bG6Q2SQxMzAzODkzZi1iZTJlLTQ5MDMtYWZkNC04MjViYjY3ZDA5Y2GEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQxMzAzODkzZi1iZTJlLTQ5MDMtYWZkNC04MjViYjY3ZDA5Y2G0ZG93bnN0cmVhbV9jZWxsc19tYXCB2SJtYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRok9kkMzU5ZDkxNTAtY2Q2Mi00NWNmLTk0NDYtODU2N2JjZWFiZGRj2SQwZmZlYTYxMy0xMDQzLTRmMzAtOWNlMi1mYTkzM2YwYzQxZmbZJDliNjBmMTEyLTQxNGMtNGRhMi05ZGMyLWYwYmVhZDEwZWQ1MLJ1cHN0cmVhbV9jZWxsc19tYXDeABanQGlubGluZZCkemVyb5CpQGZhc3RtYXRokKNwb3CQpmlzbGVzc5CnRmxvYXQ2NJCpQGluYm91bmRzkKdwcmludGxukKdub3RoaW5nkKE8kK9CYXNlLnNpbWRfaW5kZXiQpUBzaW1kkKE6kKV6ZXJvc5CuanVsaWEuc2ltZGxvb3CQpEJhc2WQtUJhc2Uuc2ltZF9vdXRlcl9yYW5nZZChLZC2QmFzZS5zaW1kX2lubmVyX2xlbmd0aJCkb3BlbpCvUnVuZ2VfS3V0dGFfNHRokdkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwoSuQ2SQ5YjYwZjExMi00MTRjLTRkYTItOWRjMi1mMGJlYWQxMGVkNTCEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ5YjYwZjExMi00MTRjLTRkYTItOWRjMi1mMGJlYWQxMGVkNTC0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcIuoIyNudCMyNzCQuUJlbmNobWFya1Rvb2xzLlBhcmFtZXRlcnOQ2SxCZW5jaG1hcmtUb29scy5nZW5lcmF0ZV9iZW5jaG1hcmtfZGVmaW5pdGlvbpCuQmVuY2htYXJrVG9vbHOR2SQzYTFiMzdkZS1hNDliLTExZWUtMTA1Ni00NTk5NmVmYzlhODG6I19fX3RoaXNfcGx1dG9fbW9kdWxlX25hbWWQp3ByaW50bG6Q2SJtYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRokdkkMTMwMzg5M2YtYmUyZS00OTAzLWFmZDQtODI1YmI2N2QwOWNhpXByaW50kKJudJHZJDdlMTVhZDE5LTgwMDAtNDE2NS1hNmNiLWJkNTRkZmM0MjA4YaZAYnRpbWWQoj09kNkkMzU5ZDkxNTAtY2Q2Mi00NWNmLTk0NDYtODU2N2JjZWFiZGRjhLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkMzU5ZDkxNTAtY2Q2Mi00NWNmLTk0NDYtODU2N2JjZWFiZGRjtGRvd25zdHJlYW1fY2VsbHNfbWFwgLJ1cHN0cmVhbV9jZWxsc19tYXCNpUB0aW1lkLNCYXNlLmdjX2FsbG9jX2NvdW50kKZCYXNlLi2Qq0Jhc2UuZ2NfbnVtkKpCYXNlLmZpcnN0kKxCYXNlLkdDX0RpZmaQv0Jhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWVfbnOQ2SJtYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRokdkkMTMwMzg5M2YtYmUyZS00OTAzLWFmZDQtODI1YmI2N2QwOWNhqUJhc2UubGFzdJCkQmFzZZCvQmFzZS50aW1lX3ByaW50kKxCYXNlLnRpbWVfbnOQvkJhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWluZ5DZJDNhMWIzN2RlLWE0OWItMTFlZS0xMDU2LTQ1OTk2ZWZjOWE4MYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMHp2NlbGxfaWTZJDNhMWIzN2RlLWE0OWItMTFlZS0xMDU2LTQ1OTk2ZWZjOWE4MbRkb3duc3RyZWFtX2NlbGxzX21hcIGuQmVuY2htYXJrVG9vbHOX2SRiZGYxNTkxMi1iOWZiLTRmM2EtODdlOS0yNDVjNjNkMWEwM2bZJDBlNjBkOWQ2LTUzZDUtNDdjNy05MjBkLWUyZmU3OGZhMTI3ZdkkYWVhODQ0NGUtMTc1Mi00Yjc2LTg1YmQtMjk5M2UyYjNjYTdi2SQxNmQxY2QwNy0xNDFkLTRiY2UtYTdmOC1hODVlNWJlNWVlZmXZJDkyNzNjMjUyLWFjNDQtNDRjZS05ZDM0LWQ5NzQzOWU0NmYwMdkkN2FlMzM5N2MtOTQ2ZC00ZTBhLWJmNGQtYzY2M2IxYTEyNzI42SQ5YjYwZjExMi00MTRjLTRkYTItOWRjMi1mMGJlYWQxMGVkNTCydXBzdHJlYW1fY2VsbHNfbWFwgNkkN2FlMzM5N2MtOTQ2ZC00ZTBhLWJmNGQtYzY2M2IxYTEyNzI4hLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkN2FlMzM5N2MtOTQ2ZC00ZTBhLWJmNGQtYzY2M2IxYTEyNzI4tGRvd25zdHJlYW1fY2VsbHNfbWFwgLJ1cHN0cmVhbV9jZWxsc19tYXCLuUJlbmNobWFya1Rvb2xzLlBhcmFtZXRlcnOQ2SxCZW5jaG1hcmtUb29scy5nZW5lcmF0ZV9iZW5jaG1hcmtfZGVmaW5pdGlvbpCuQmVuY2htYXJrVG9vbHOR2SQzYTFiMzdkZS1hNDliLTExZWUtMTA1Ni00NTk5NmVmYzlhODG6I19fX3RoaXNfcGx1dG9fbW9kdWxlX25hbWWQp3ByaW50bG6QpXByaW50kLltYWluX3NpbWRfaW5saW5lX2Zhc3RtYXRokdkkYjk2YTIzZWMtZjkxMS00NzZjLTk4NDEtOTMxZWI1NjMxZDdjpkBidGltZZCibnSR2SQ3ZTE1YWQxOS04MDAwLTQxNjUtYTZjYi1iZDU0ZGZjNDIwOGGoIyNudCMyODKQoj09kNkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwhLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwtGRvd25zdHJlYW1fY2VsbHNfbWFwgq9SdW5nZV9LdXR0YV80dGiX2SRiMWY4ZTQxZC0yMGIwLTQ5N2EtOTQ5NC1iYzNmMGIyNzJiODXZJGEzNzI4ZDU2LWUzZTYtNDk4ZS05NmY2LWY0MWU4N2VlZTllYdkkNzM3ZTRkN2QtZjVlYi00Y2I0LWJlMDEtYWFkNmYwYzIyYjkz2SQ5ZjlmYmVkYy02OGFlLTRmZjAtYmY0MC01YzEzZWY5YTc4MGHZJDY1ZDk2MjNkLWQ4YzktNDk1YS05ODIxLWY5YWZiNjRlOGM3YdkkYjk2YTIzZWMtZjkxMS00NzZjLTk4NDEtOTMxZWI1NjMxZDdj2SQxMzAzODkzZi1iZTJlLTQ5MDMtYWZkNC04MjViYjY3ZDA5Y2GlZm9yY2WR2SQ5NTYxMmFhMy0wZDM1LTQ3MjItYTQ0Ni01YWIyZWQ2MzNlYjCydXBzdHJlYW1fY2VsbHNfbWFwiqRCYXNlkKdAaW5saW5lkLZCYXNlLkZhc3RNYXRoLnN1Yl9mYXN0kKlAZmFzdG1hdGiQoS+QoSuQpWZvcmNlkdkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwtkJhc2UuRmFzdE1hdGguZGl2X2Zhc3SQoSqQtkJhc2UuRmFzdE1hdGgubXVsX2Zhc3SQ2SQ2NDEwZDg0Mi02MDliLTQ0Y2EtODQzMC03ZjI2NThiM2M2NWaEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ2NDEwZDg0Mi02MDliLTQ0Y2EtODQzMC03ZjI2NThiM2M2NWa0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcI2lQHRpbWWQtG1haW5faW5saW5lX2Zhc3RtYXRokdkkNjVkOTYyM2QtZDhjOS00OTVhLTk4MjEtZjlhZmI2NGU4Yzdhs0Jhc2UuZ2NfYWxsb2NfY291bnSQpkJhc2UuLZCrQmFzZS5nY19udW2QqkJhc2UuZmlyc3SQrEJhc2UuR0NfRGlmZpC/QmFzZS5jdW11bGF0aXZlX2NvbXBpbGVfdGltZV9uc5CpQmFzZS5sYXN0kKRCYXNlkK9CYXNlLnRpbWVfcHJpbnSQrEJhc2UudGltZV9uc5C+QmFzZS5jdW11bGF0aXZlX2NvbXBpbGVfdGltaW5nkNkkZDllODExNTktYjlhMi00NTA3LTk1YTQtOGMxZDNjNTI3NzgwhLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkZDllODExNTktYjlhMi00NTA3LTk1YTQtOGMxZDNjNTI3NzgwtGRvd25zdHJlYW1fY2VsbHNfbWFwgLJ1cHN0cmVhbV9jZWxsc19tYXCNpUB0aW1lkLNCYXNlLmdjX2FsbG9jX2NvdW50kKZCYXNlLi2QrW1haW5fZmFzdG1hdGiR2SQ5ZjlmYmVkYy02OGFlLTRmZjAtYmY0MC01YzEzZWY5YTc4MGGrQmFzZS5nY19udW2QqkJhc2UuZmlyc3SQrEJhc2UuR0NfRGlmZpC/QmFzZS5jdW11bGF0aXZlX2NvbXBpbGVfdGltZV9uc5CpQmFzZS5sYXN0kKRCYXNlkK9CYXNlLnRpbWVfcHJpbnSQrEJhc2UudGltZV9uc5C+QmFzZS5jdW11bGF0aXZlX2NvbXBpbGVfdGltaW5nkNkkMGU2MGQ5ZDYtNTNkNS00N2M3LTkyMGQtZTJmZTc4ZmExMjdlhLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkMGU2MGQ5ZDYtNTNkNS00N2M3LTkyMGQtZTJmZTc4ZmExMjdltGRvd25zdHJlYW1fY2VsbHNfbWFwgLJ1cHN0cmVhbV9jZWxsc19tYXCLuUJlbmNobWFya1Rvb2xzLlBhcmFtZXRlcnOQ2SxCZW5jaG1hcmtUb29scy5nZW5lcmF0ZV9iZW5jaG1hcmtfZGVmaW5pdGlvbpCuQmVuY2htYXJrVG9vbHOR2SQzYTFiMzdkZS1hNDliLTExZWUtMTA1Ni00NTk5NmVmYzlhODG6I19fX3RoaXNfcGx1dG9fbW9kdWxlX25hbWWQp3ByaW50bG6QqCMjbnQjMjQ2kKVwcmludJCibnSR2SQ3ZTE1YWQxOS04MDAwLTQxNjUtYTZjYi1iZDU0ZGZjNDIwOGGmQGJ0aW1lkKI9PZCrbWFpbl9pbmxpbmWR2SRhMzcyOGQ1Ni1lM2U2LTQ5OGUtOTZmNi1mNDFlODdlZWU5ZWHZJDE2ZDFjZDA3LTE0MWQtNGJjZS1hN2Y4LWE4NWU1YmU1ZWVmZYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDE2ZDFjZDA3LTE0MWQtNGJjZS1hN2Y4LWE4NWU1YmU1ZWVmZbRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwi7lCZW5jaG1hcmtUb29scy5QYXJhbWV0ZXJzkNksQmVuY2htYXJrVG9vbHMuZ2VuZXJhdGVfYmVuY2htYXJrX2RlZmluaXRpb26QrW1haW5fZmFzdG1hdGiR2SQ5ZjlmYmVkYy02OGFlLTRmZjAtYmY0MC01YzEzZWY5YTc4MGGoIyNudCMyNjSQrkJlbmNobWFya1Rvb2xzkdkkM2ExYjM3ZGUtYTQ5Yi0xMWVlLTEwNTYtNDU5OTZlZmM5YTgxuiNfX190aGlzX3BsdXRvX21vZHVsZV9uYW1lkKdwcmludGxukKVwcmludJCibnSR2SQ3ZTE1YWQxOS04MDAwLTQxNjUtYTZjYi1iZDU0ZGZjNDIwOGGmQGJ0aW1lkKI9PZDZJDE4ODYxM2IyLWRmZjktNDE4MS1hZTQyLTc4MjRhNzNjMmMwMIS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDE4ODYxM2IyLWRmZjktNDE4MS1hZTQyLTc4MjRhNzNjMmMwMLRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwjaVAdGltZZCwbWFpbl9pbmxpbmVfc2ltZJHZJDczN2U0ZDdkLWY1ZWItNGNiNC1iZTAxLWFhZDZmMGMyMmI5M7NCYXNlLmdjX2FsbG9jX2NvdW50kKZCYXNlLi2Qq0Jhc2UuZ2NfbnVtkKpCYXNlLmZpcnN0kKxCYXNlLkdDX0RpZmaQv0Jhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWVfbnOQqUJhc2UubGFzdJCkQmFzZZCvQmFzZS50aW1lX3ByaW50kKxCYXNlLnRpbWVfbnOQvkJhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWluZ5DZJDZiYWE3NDRlLWY0MWUtNGEzMy1hNGQ2LTAyMjg0YjI3YzVmZoS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDZiYWE3NDRlLWY0MWUtNGEzMy1hNGQ2LTAyMjg0YjI3YzVmZrRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwjaVAdGltZZCzQmFzZS5nY19hbGxvY19jb3VudJCmQmFzZS4tkKtCYXNlLmdjX251bZCqQmFzZS5maXJzdJCsQmFzZS5HQ19EaWZmkL9CYXNlLmN1bXVsYXRpdmVfY29tcGlsZV90aW1lX25zkKlCYXNlLmxhc3SQpEJhc2WQr0Jhc2UudGltZV9wcmludJCkbWFpbpHZJGIxZjhlNDFkLTIwYjAtNDk3YS05NDk0LWJjM2YwYjI3MmI4NaxCYXNlLnRpbWVfbnOQvkJhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWluZ5DZJDlmOWZiZWRjLTY4YWUtNGZmMC1iZjQwLTVjMTNlZjlhNzgwYYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDlmOWZiZWRjLTY4YWUtNGZmMC1iZjQwLTVjMTNlZjlhNzgwYbRkb3duc3RyZWFtX2NlbGxzX21hcIGtbWFpbl9mYXN0bWF0aJPZJGQ5ZTgxMTU5LWI5YTItNDUwNy05NWE0LThjMWQzYzUyNzc4MNkkMGZmZWE2MTMtMTA0My00ZjMwLTljZTItZmE5MzNmMGM0MWZm2SQxNmQxY2QwNy0xNDFkLTRiY2UtYTdmOC1hODVlNWJlNWVlZmWydXBzdHJlYW1fY2VsbHNfbWFwiaE6kKlAZmFzdG1hdGiQoS2QpG9wZW6Qr1J1bmdlX0t1dHRhXzR0aJHZJDk1NjEyYWEzLTBkMzUtNDcyMi1hNDQ2LTVhYjJlZDYzM2ViMKErkKV6ZXJvc5CnRmxvYXQ2NJCncHJpbnRsbpDZJGJkZjE1OTEyLWI5ZmItNGYzYS04N2U5LTI0NWM2M2QxYTAzZoS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJGJkZjE1OTEyLWI5ZmItNGYzYS04N2U5LTI0NWM2M2QxYTAzZrRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwi7lCZW5jaG1hcmtUb29scy5QYXJhbWV0ZXJzkNksQmVuY2htYXJrVG9vbHMuZ2VuZXJhdGVfYmVuY2htYXJrX2RlZmluaXRpb26QrkJlbmNobWFya1Rvb2xzkdkkM2ExYjM3ZGUtYTQ5Yi0xMWVlLTEwNTYtNDU5OTZlZmM5YTgxuiNfX190aGlzX3BsdXRvX21vZHVsZV9uYW1lkKdwcmludGxukKgjI250IzQwOZClcHJpbnSQom50kdkkN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhhpkBidGltZZCkbWFpbpHZJGIxZjhlNDFkLTIwYjAtNDk3YS05NDk0LWJjM2YwYjI3MmI4NaI9PZDZJDkyNzNjMjUyLWFjNDQtNDRjZS05ZDM0LWQ5NzQzOWU0NmYwMYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDkyNzNjMjUyLWFjNDQtNDRjZS05ZDM0LWQ5NzQzOWU0NmYwMbRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwi7RtYWluX2lubGluZV9mYXN0bWF0aJHZJDY1ZDk2MjNkLWQ4YzktNDk1YS05ODIxLWY5YWZiNjRlOGM3YblCZW5jaG1hcmtUb29scy5QYXJhbWV0ZXJzkNksQmVuY2htYXJrVG9vbHMuZ2VuZXJhdGVfYmVuY2htYXJrX2RlZmluaXRpb26QrkJlbmNobWFya1Rvb2xzkdkkM2ExYjM3ZGUtYTQ5Yi0xMWVlLTEwNTYtNDU5OTZlZmM5YTgxuiNfX190aGlzX3BsdXRvX21vZHVsZV9uYW1lkKdwcmludGxukKVwcmludJCibnSR2SQ3ZTE1YWQxOS04MDAwLTQxNjUtYTZjYi1iZDU0ZGZjNDIwOGGoIyNudCMyNTKQpkBidGltZZCiPT2Q2SQ3MzdlNGQ3ZC1mNWViLTRjYjQtYmUwMS1hYWQ2ZjBjMjJiOTOEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ3MzdlNGQ3ZC1mNWViLTRjYjQtYmUwMS1hYWQ2ZjBjMjJiOTO0ZG93bnN0cmVhbV9jZWxsc19tYXCBsG1haW5faW5saW5lX3NpbWST2SQxODg2MTNiMi1kZmY5LTQxODEtYWU0Mi03ODI0YTczYzJjMDDZJDBmZmVhNjEzLTEwNDMtNGYzMC05Y2UyLWZhOTMzZjBjNDFmZtkkYWVhODQ0NGUtMTc1Mi00Yjc2LTg1YmQtMjk5M2UyYjNjYTdisnVwc3RyZWFtX2NlbGxzX21hcN4AE6dAaW5saW5lkKR6ZXJvkKE6kKV6ZXJvc5CnRmxvYXQ2NJCuanVsaWEuc2ltZGxvb3CQpmlzbGVzc5CncHJpbnRsbpCnbm90aGluZ5ChPJC1QmFzZS5zaW1kX291dGVyX3JhbmdlkKRCYXNlkKEtkLZCYXNlLnNpbWRfaW5uZXJfbGVuZ3RokKRvcGVukKVAc2ltZJCvUnVuZ2VfS3V0dGFfNHRokdkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwoSuQr0Jhc2Uuc2ltZF9pbmRleJDZJGEzNzI4ZDU2LWUzZTYtNDk4ZS05NmY2LWY0MWU4N2VlZTllYYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJGEzNzI4ZDU2LWUzZTYtNDk4ZS05NmY2LWY0MWU4N2VlZTllYbRkb3duc3RyZWFtX2NlbGxzX21hcIGrbWFpbl9pbmxpbmWT2SQ1NDYzODFiYS00N2M0LTRkYzAtODk5ZC1lMDJlZDMyNDUxZWHZJDBmZmVhNjEzLTEwNDMtNGYzMC05Y2UyLWZhOTMzZjBjNDFmZtkkMGU2MGQ5ZDYtNTNkNS00N2M3LTkyMGQtZTJmZTc4ZmExMjdlsnVwc3RyZWFtX2NlbGxzX21hcImnQGlubGluZZChOpChLZCkb3BlbpCvUnVuZ2VfS3V0dGFfNHRokdkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwoSuQpXplcm9zkKdGbG9hdDY0kKdwcmludGxukNkkYTVmMWEwYTYtYzlhMy00OTUwLThmMzEtZGZmMTE4M2E1NjY3hLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkYTVmMWEwYTYtYzlhMy00OTUwLThmMzEtZGZmMTE4M2E1NjY3tGRvd25zdHJlYW1fY2VsbHNfbWFwgLJ1cHN0cmVhbV9jZWxsc19tYXCNpUB0aW1lkLNCYXNlLmdjX2FsbG9jX2NvdW50kKZCYXNlLi2Qq0Jhc2UuZ2NfbnVtkKpCYXNlLmZpcnN0kKxCYXNlLkdDX0RpZmaQv0Jhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWVfbnOQqUJhc2UubGFzdJCkQmFzZZC5bWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aJHZJGI5NmEyM2VjLWY5MTEtNDc2Yy05ODQxLTkzMWViNTYzMWQ3Y69CYXNlLnRpbWVfcHJpbnSQrEJhc2UudGltZV9uc5C+QmFzZS5jdW11bGF0aXZlX2NvbXBpbGVfdGltaW5nkLRjZWxsX2V4ZWN1dGlvbl9vcmRlctwAHNkkM2ExYjM3ZGUtYTQ5Yi0xMWVlLTEwNTYtNDU5OTZlZmM5YTgx2SQwYjcyYjgwZC02Y2NhLTQ3N2UtYjVkNC01ZGQ5Y2UzYjk2NDfZJDU1NDU3NWQ2LWU0OGMtNDlmZi05ODQ0LTQ1Yjg2NWRjZDVlZtkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIw2SRiMWY4ZTQxZC0yMGIwLTQ5N2EtOTQ5NC1iYzNmMGIyNzJiODXZJDZiYWE3NDRlLWY0MWUtNGEzMy1hNGQ2LTAyMjg0YjI3YzVmZtkkYTM3MjhkNTYtZTNlNi00OThlLTk2ZjYtZjQxZTg3ZWVlOWVh2SQ1NDYzODFiYS00N2M0LTRkYzAtODk5ZC1lMDJlZDMyNDUxZWHZJDczN2U0ZDdkLWY1ZWItNGNiNC1iZTAxLWFhZDZmMGMyMmI5M9kkMTg4NjEzYjItZGZmOS00MTgxLWFlNDItNzgyNGE3M2MyYzAw2SQ5ZjlmYmVkYy02OGFlLTRmZjAtYmY0MC01YzEzZWY5YTc4MGHZJGQ5ZTgxMTU5LWI5YTItNDUwNy05NWE0LThjMWQzYzUyNzc4MNkkNjVkOTYyM2QtZDhjOS00OTVhLTk4MjEtZjlhZmI2NGU4Yzdh2SQ2NDEwZDg0Mi02MDliLTQ0Y2EtODQzMC03ZjI2NThiM2M2NWbZJGI5NmEyM2VjLWY5MTEtNDc2Yy05ODQxLTkzMWViNTYzMWQ3Y9kkYTVmMWEwYTYtYzlhMy00OTUwLThmMzEtZGZmMTE4M2E1NjY32SQxMzAzODkzZi1iZTJlLTQ5MDMtYWZkNC04MjViYjY3ZDA5Y2HZJDM1OWQ5MTUwLWNkNjItNDVjZi05NDQ2LTg1NjdiY2VhYmRkY9kkN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhh2SQwZmZlYTYxMy0xMDQzLTRmMzAtOWNlMi1mYTkzM2YwYzQxZmbZJGU0MzBhMTMxLTYzYjYtNGE5Ny1hNDljLWMyMzI1NDg0YWViYdkkYmRmMTU5MTItYjlmYi00ZjNhLTg3ZTktMjQ1YzYzZDFhMDNm2SQwZTYwZDlkNi01M2Q1LTQ3YzctOTIwZC1lMmZlNzhmYTEyN2XZJGFlYTg0NDRlLTE3NTItNGI3Ni04NWJkLTI5OTNlMmIzY2E3YtkkMTZkMWNkMDctMTQxZC00YmNlLWE3ZjgtYTg1ZTViZTVlZWZl2SQ5MjczYzI1Mi1hYzQ0LTQ0Y2UtOWQzNC1kOTc0MzllNDZmMDHZJDdhZTMzOTdjLTk0NmQtNGUwYS1iZjRkLWM2NjNiMWExMjcyONkkOWI2MGYxMTItNDE0Yy00ZGEyLTlkYzItZjBiZWFkMTBlZDUwtGxhc3RfaG90X3JlbG9hZF90aW1lywAAAAAAAAAAqXNob3J0cGF0aKhiZW5jaC5qbK5wcm9jZXNzX3N0YXR1c6VyZWFkeaRwYXRo2SUvVXNlcnMvYXRlbGllci90bXAvZ29tYWJlbmNoL2JlbmNoLmpsrmxhc3Rfc2F2ZV90aW1ly0HZYyBkTsawqmNlbGxfb3JkZXLcABzZJDNhMWIzN2RlLWE0OWItMTFlZS0xMDU2LTQ1OTk2ZWZjOWE4MdkkMGI3MmI4MGQtNmNjYS00NzdlLWI1ZDQtNWRkOWNlM2I5NjQ32SQ1NTQ1NzVkNi1lNDhjLTQ5ZmYtOTg0NC00NWI4NjVkY2Q1ZWbZJDk1NjEyYWEzLTBkMzUtNDcyMi1hNDQ2LTVhYjJlZDYzM2ViMNkkYjFmOGU0MWQtMjBiMC00OTdhLTk0OTQtYmMzZjBiMjcyYjg12SQ2YmFhNzQ0ZS1mNDFlLTRhMzMtYTRkNi0wMjI4NGIyN2M1ZmbZJGEzNzI4ZDU2LWUzZTYtNDk4ZS05NmY2LWY0MWU4N2VlZTllYdkkNTQ2MzgxYmEtNDdjNC00ZGMwLTg5OWQtZTAyZWQzMjQ1MWVh2SQ3MzdlNGQ3ZC1mNWViLTRjYjQtYmUwMS1hYWQ2ZjBjMjJiOTPZJDE4ODYxM2IyLWRmZjktNDE4MS1hZTQyLTc4MjRhNzNjMmMwMNkkOWY5ZmJlZGMtNjhhZS00ZmYwLWJmNDAtNWMxM2VmOWE3ODBh2SRkOWU4MTE1OS1iOWEyLTQ1MDctOTVhNC04YzFkM2M1Mjc3ODDZJDY1ZDk2MjNkLWQ4YzktNDk1YS05ODIxLWY5YWZiNjRlOGM3YdkkNjQxMGQ4NDItNjA5Yi00NGNhLTg0MzAtN2YyNjU4YjNjNjVm2SRiOTZhMjNlYy1mOTExLTQ3NmMtOTg0MS05MzFlYjU2MzFkN2PZJGE1ZjFhMGE2LWM5YTMtNDk1MC04ZjMxLWRmZjExODNhNTY2N9kkMTMwMzg5M2YtYmUyZS00OTAzLWFmZDQtODI1YmI2N2QwOWNh2SQzNTlkOTE1MC1jZDYyLTQ1Y2YtOTQ0Ni04NTY3YmNlYWJkZGPZJDdlMTVhZDE5LTgwMDAtNDE2NS1hNmNiLWJkNTRkZmM0MjA4YdkkMGZmZWE2MTMtMTA0My00ZjMwLTljZTItZmE5MzNmMGM0MWZm2SRlNDMwYTEzMS02M2I2LTRhOTctYTQ5Yy1jMjMyNTQ4NGFlYmHZJGJkZjE1OTEyLWI5ZmItNGYzYS04N2U5LTI0NWM2M2QxYTAzZtkkMGU2MGQ5ZDYtNTNkNS00N2M3LTkyMGQtZTJmZTc4ZmExMjdl2SRhZWE4NDQ0ZS0xNzUyLTRiNzYtODViZC0yOTkzZTJiM2NhN2LZJDE2ZDFjZDA3LTE0MWQtNGJjZS1hN2Y4LWE4NWU1YmU1ZWVmZdkkOTI3M2MyNTItYWM0NC00NGNlLTlkMzQtZDk3NDM5ZTQ2ZjAx2SQ3YWUzMzk3Yy05NDZkLTRlMGEtYmY0ZC1jNjYzYjFhMTI3MjjZJDliNjBmMTEyLTQxNGMtNGRhMi05ZGMyLWYwYmVhZDEwZWQ1MLFwdWJsaXNoZWRfb2JqZWN0c4ClbmJwa2eKr2luc3RhbGxfdGltZV9uc879GkdBrGluc3RhbnRpYXRlZMOyaW5zdGFsbGVkX3ZlcnNpb25zgqhVbnJvbGxlZKUwLjEuNa5CZW5jaG1hcmtUb29sc6UxLjQuMLB0ZXJtaW5hbF9vdXRwdXRzg6puYnBrZ19zeW5j2gGLCkluc3RhbnRpYXRpbmcuLi4KClJlc29sdmluZy4uLgobWzMybRtbMW0gIE5vIENoYW5nZXMbWzIybRtbMzltIHRvIGAvcHJpdmF0ZS92YXIvZm9sZGVycy9jXy9mN3k0Y2dqeDExM2Q4cnJxX3Q2M2dsemgwMDAwZ3AvVC9qbF9hTGVPb3EvUHJvamVjdC50b21sYAobWzMybRtbMW0gIE5vIENoYW5nZXMbWzIybRtbMzltIHRvIGAvcHJpdmF0ZS92YXIvZm9sZGVycy9jXy9mN3k0Y2dqeDExM2Q4cnJxX3Q2M2dsemgwMDAwZ3AvVC9qbF9hTGVPb3EvTWFuaWZlc3QudG9tbGAKClByZWNvbXBpbGluZy4uLgobWzMybRtbMW0gIEFjdGl2YXRpbmcbWzIybRtbMzltIHByb2plY3QgYXQgYC9wcml2YXRlL3Zhci9mb2xkZXJzL2NfL2Y3eTRjZ2p4MTEzZDhycnFfdDYzZ2x6aDAwMDBncC9UL2psX2FMZU9vcWCoVW5yb2xsZWTaAYsKSW5zdGFudGlhdGluZy4uLgoKUmVzb2x2aW5nLi4uChtbMzJtG1sxbSAgTm8gQ2hhbmdlcxtbMjJtG1szOW0gdG8gYC9wcml2YXRlL3Zhci9mb2xkZXJzL2NfL2Y3eTRjZ2p4MTEzZDhycnFfdDYzZ2x6aDAwMDBncC9UL2psX2FMZU9vcS9Qcm9qZWN0LnRvbWxgChtbMzJtG1sxbSAgTm8gQ2hhbmdlcxtbMjJtG1szOW0gdG8gYC9wcml2YXRlL3Zhci9mb2xkZXJzL2NfL2Y3eTRjZ2p4MTEzZDhycnFfdDYzZ2x6aDAwMDBncC9UL2psX2FMZU9vcS9NYW5pZmVzdC50b21sYAoKUHJlY29tcGlsaW5nLi4uChtbMzJtG1sxbSAgQWN0aXZhdGluZxtbMjJtG1szOW0gcHJvamVjdCBhdCBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvY18vZjd5NGNnangxMTNkOHJycV90NjNnbHpoMDAwMGdwL1QvamxfYUxlT29xYK5CZW5jaG1hcmtUb29sc9oBiwpJbnN0YW50aWF0aW5nLi4uCgpSZXNvbHZpbmcuLi4KG1szMm0bWzFtICBObyBDaGFuZ2VzG1syMm0bWzM5bSB0byBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvY18vZjd5NGNnangxMTNkOHJycV90NjNnbHpoMDAwMGdwL1QvamxfYUxlT29xL1Byb2plY3QudG9tbGAKG1szMm0bWzFtICBObyBDaGFuZ2VzG1syMm0bWzM5bSB0byBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvY18vZjd5NGNnangxMTNkOHJycV90NjNnbHpoMDAwMGdwL1QvamxfYUxlT29xL01hbmlmZXN0LnRvbWxgCgpQcmVjb21waWxpbmcuLi4KG1szMm0bWzFtICBBY3RpdmF0aW5nG1syMm0bWzM5bSBwcm9qZWN0IGF0IGAvcHJpdmF0ZS92YXIvZm9sZGVycy9jXy9mN3k0Y2dqeDExM2Q4cnJxX3Q2M2dsemgwMDAwZ3AvVC9qbF9hTGVPb3Fgp2VuYWJsZWTDt3Jlc3RhcnRfcmVjb21tZW5kZWRfbXNnwLRyZXN0YXJ0X3JlcXVpcmVkX21zZ8CtYnVzeV9wYWNrYWdlc5C2d2FpdGluZ19mb3JfcGVybWlzc2lvbsLZLHdhaXRpbmdfZm9yX3Blcm1pc3Npb25fYnV0X3Byb2JhYmx5X2Rpc2FibGVkwqtjZWxsX2lucHV0c94AHNkkYjFmOGU0MWQtMjBiMC00OTdhLTk0OTQtYmMzZjBiMjcyYjg1hKdjZWxsX2lk2SRiMWY4ZTQxZC0yMGIwLTQ5N2EtOTQ5NC1iYzNmMGIyNzJiODWkY29kZdoBrGZ1bmN0aW9uIG1haW4obnQgPSAxMDAwMDAwMDApCiAgICBtYXNzID0gMS4wCiAgICBrID0gMS4wCiAgICBkdCA9IDFlLTIKCiAgICB4dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKICAgIHZ0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQoKICAgIHggPSAwLjAKICAgIHYgPSAxLjAKCiAgICBmb3IgaXQgPSAxOihudCsxKQogICAgICAgIHh0W2l0XSA9IHgKICAgICAgICB2dFtpdF0gPSB2CiAgICAgICAgeCwgdiA9IFJ1bmdlX0t1dHRhXzR0aCh4LCB2LCBkdCwgbWFzcywgaykKICAgIGVuZAoKICAgIG9wZW4oInJlc3VsdF9qdWxpYV9tYWluLm91dCIsICJ3IikgZG8gZmlsZQogICAgICAgIGZvciBpdCA9IChudC05OTkpOm50CiAgICAgICAgICAgIHByaW50bG4oZmlsZSwgIih4dFtpdF0pICQodnRbaXRdKSIpCiAgICAgICAgZW5kCiAgICBlbmQKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SRhZWE4NDQ0ZS0xNzUyLTRiNzYtODViZC0yOTkzZTJiM2NhN2KEp2NlbGxfaWTZJGFlYTg0NDRlLTE3NTItNGI3Ni04NWJkLTI5OTNlMmIzY2E3YqRjb2Rl2VBsZXQKICAgIHByaW50KCJtYWluX2lubGluZV9zaW1kKCRudCk6ICAgICIpCiAgICBAYnRpbWUgbWFpbl9pbmxpbmVfc2ltZCgkbnQpCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkMGI3MmI4MGQtNmNjYS00NzdlLWI1ZDQtNWRkOWNlM2I5NjQ3hKdjZWxsX2lk2SQwYjcyYjgwZC02Y2NhLTQ3N2UtYjVkNC01ZGQ5Y2UzYjk2NDekY29kZa51c2luZyBVbnJvbGxlZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkNTU0NTc1ZDYtZTQ4Yy00OWZmLTk4NDQtNDViODY1ZGNkNWVmhKdjZWxsX2lk2SQ1NTQ1NzVkNi1lNDhjLTQ5ZmYtOTg0NC00NWI4NjVkY2Q1ZWakY29kZa12ZXJzaW9uaW5mbygpqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SRlNDMwYTEzMS02M2I2LTRhOTctYTQ5Yy1jMjMyNTQ4NGFlYmGEp2NlbGxfaWTZJGU0MzBhMTMxLTYzYjYtNGE5Ny1hNDljLWMyMzI1NDg0YWViYaRjb2Rl2UJwID0gcnVuKGBkaWZmIHJlc3VsdF9qdWxpYV9tYWluLm91dCByZXN1bHRfanVsaWFfbWFpbl9pbmxpbmUub3V0YCmobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDU0NjM4MWJhLTQ3YzQtNGRjMC04OTlkLWUwMmVkMzI0NTFlYYSnY2VsbF9pZNkkNTQ2MzgxYmEtNDdjNC00ZGMwLTg5OWQtZTAyZWQzMjQ1MWVhpGNvZGXZUWJlZ2luCiAgICBAdGltZSBtYWluX2lubGluZSgpCiAgICBAdGltZSBtYWluX2lubGluZSgpCiAgICBAdGltZSBtYWluX2lubGluZSgpCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkYjk2YTIzZWMtZjkxMS00NzZjLTk4NDEtOTMxZWI1NjMxZDdjhKdjZWxsX2lk2SRiOTZhMjNlYy1mOTExLTQ3NmMtOTg0MS05MzFlYjU2MzFkN2OkY29kZdoB+GZ1bmN0aW9uIG1haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgobnQgPSAxMDAwMDAwMDApCiAgICBtYXNzID0gMS4wCiAgICBrID0gMS4wCiAgICBkdCA9IDFlLTIKCiAgICB4dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKICAgIHZ0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQoKICAgIHggPSAwLjAKICAgIHYgPSAxLjAKCiAgICBAaW5saW5lIEBpbmJvdW5kcyBAc2ltZCBmb3IgaXQgPSAxOihudCsxKQogICAgICAgIHh0W2l0XSA9IHgKICAgICAgICB2dFtpdF0gPSB2CiAgICAgICAgeCwgdiA9IEBmYXN0bWF0aCBSdW5nZV9LdXR0YV80dGgoeCwgdiwgZHQsIG1hc3MsIGspCiAgICBlbmQKCiAgICBvcGVuKCJyZXN1bHRfanVsaWFfbWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aC5vdXQiLCAidyIpIGRvIGZpbGUKICAgICAgICBmb3IgaXQgPSAobnQtOTk5KTpudAogICAgICAgICAgICBwcmludGxuKGZpbGUsICIoeHRbaXRdKSAkKHZ0W2l0XSkiKQogICAgICAgIGVuZAogICAgZW5kCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkN2UxNWFkMTktODAwMC00MTY1LWE2Y2ItYmQ1NGRmYzQyMDhhhKdjZWxsX2lk2SQ3ZTE1YWQxOS04MDAwLTQxNjUtYTZjYi1iZDU0ZGZjNDIwOGGkY29kZdkwYmVnaW4KICAgIG50ID0gMTBeNgogICAgcHJpbnRsbigibnQgPSAiLCBudCkKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQwZmZlYTYxMy0xMDQzLTRmMzAtOWNlMi1mYTkzM2YwYzQxZmaEp2NlbGxfaWTZJDBmZmVhNjEzLTEwNDMtNGYzMC05Y2UyLWZhOTMzZjBjNDFmZqRjb2Rl2gOiYmVnaW4KICAgIG1haW4obnQpCiAgICBtYWluX2lubGluZShudCkKICAgIG1haW5faW5saW5lX3NpbWQobnQpCiAgICBtYWluX2Zhc3RtYXRoKG50KQogICAgbWFpbl9pbmxpbmVfZmFzdG1hdGgobnQpCiAgICBtYWluX3NpbWRfaW5saW5lX2Zhc3RtYXRoKG50KQogICAgbWFpbl9pbmJvdW5kc19zaW1kX2lubGluZV9mYXN0bWF0aChudCkKICAgIEBhc3NlcnQgcnVuKGBkaWZmIHJlc3VsdF9qdWxpYV9tYWluLm91dCByZXN1bHRfanVsaWFfbWFpbl9pbmxpbmUub3V0YCkuZXhpdGNvZGUgPT0gMAogICAgQGFzc2VydCBydW4oYGRpZmYgcmVzdWx0X2p1bGlhX21haW4ub3V0IHJlc3VsdF9qdWxpYV9tYWluX2lubGluZV9zaW1kLm91dGApLmV4aXRjb2RlID09CiAgICAgICAgICAgIDAKICAgIEBhc3NlcnQgcnVuKGBkaWZmIHJlc3VsdF9qdWxpYV9tYWluLm91dCByZXN1bHRfanVsaWFfbWFpbl9mYXN0bWF0aC5vdXRgKS5leGl0Y29kZSA9PSAwCiAgICBAYXNzZXJ0IHJ1bihgZGlmZiByZXN1bHRfanVsaWFfbWFpbi5vdXQgcmVzdWx0X2p1bGlhX21haW5fZmFzdG1hdGgub3V0YCkuZXhpdGNvZGUgPT0gMAogICAgQGFzc2VydCBydW4oCiAgICAgICAgYGRpZmYgcmVzdWx0X2p1bGlhX21haW4ub3V0IHJlc3VsdF9qdWxpYV9tYWluX2lubGluZV9mYXN0bWF0aC5vdXRgLAogICAgKS5leGl0Y29kZSA9PSAwCiAgICBAYXNzZXJ0IHJ1bigKICAgICAgICBgZGlmZiByZXN1bHRfanVsaWFfbWFpbi5vdXQgcmVzdWx0X2p1bGlhX21haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgub3V0YCwKICAgICkuZXhpdGNvZGUgPT0gMAogICAgQGFzc2VydCBydW4oCiAgICAgICAgYGRpZmYgcmVzdWx0X2p1bGlhX21haW4ub3V0IHJlc3VsdF9qdWxpYV9tYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRoLm91dGAsCiAgICApLmV4aXRjb2RlID09IDAKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQ2NWQ5NjIzZC1kOGM5LTQ5NWEtOTgyMS1mOWFmYjY0ZThjN2GEp2NlbGxfaWTZJDY1ZDk2MjNkLWQ4YzktNDk1YS05ODIxLWY5YWZiNjRlOGM3YaRjb2Rl2gHeZnVuY3Rpb24gbWFpbl9pbmxpbmVfZmFzdG1hdGgobnQgPSAxMDAwMDAwMDApCiAgICBtYXNzID0gMS4wCiAgICBrID0gMS4wCiAgICBkdCA9IDFlLTIKCiAgICB4dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKICAgIHZ0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQoKICAgIHggPSAwLjAKICAgIHYgPSAxLjAKCiAgICBmb3IgaXQgPSAxOihudCsxKQogICAgICAgIHh0W2l0XSA9IHgKICAgICAgICB2dFtpdF0gPSB2CiAgICAgICAgeCwgdiA9IEBpbmxpbmUgQGZhc3RtYXRoIFJ1bmdlX0t1dHRhXzR0aCh4LCB2LCBkdCwgbWFzcywgaykKICAgIGVuZAoKICAgIG9wZW4oInJlc3VsdF9qdWxpYV9tYWluX2lubGluZV9mYXN0bWF0aC5vdXQiLCAidyIpIGRvIGZpbGUKICAgICAgICBmb3IgaXQgPSAobnQtOTk5KTpudAogICAgICAgICAgICBwcmludGxuKGZpbGUsICIoeHRbaXRdKSAkKHZ0W2l0XSkiKQogICAgICAgIGVuZAogICAgZW5kCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkMTMwMzg5M2YtYmUyZS00OTAzLWFmZDQtODI1YmI2N2QwOWNhhKdjZWxsX2lk2SQxMzAzODkzZi1iZTJlLTQ5MDMtYWZkNC04MjViYjY3ZDA5Y2GkY29kZdoCCmZ1bmN0aW9uIG1haW5faW5ib3VuZHNfc2ltZF9pbmxpbmVfZmFzdG1hdGgobnQgPSAxMDAwMDAwMDApCiAgICBtYXNzID0gMS4wCiAgICBrID0gMS4wCiAgICBkdCA9IDFlLTIKCiAgICB4dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKICAgIHZ0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQoKICAgIHggPSAwLjAKICAgIHYgPSAxLjAKCiAgICBAaW5ib3VuZHMgQHNpbWQgZm9yIGl0ID0gMToobnQrMSkKICAgICAgICB4dFtpdF0gPSB4CiAgICAgICAgdnRbaXRdID0gdgogICAgICAgIHgsIHYgPSBAaW5saW5lIEBmYXN0bWF0aCBSdW5nZV9LdXR0YV80dGgoeCwgdiwgZHQsIG1hc3MsIGspCiAgICBlbmQKCiAgICBvcGVuKCJyZXN1bHRfanVsaWFfbWFpbl9pbmJvdW5kc19zaW1kX2lubGluZV9mYXN0bWF0aC5vdXQiLCAidyIpIGRvIGZpbGUKICAgICAgICBmb3IgaXQgPSAobnQtOTk5KTpudAogICAgICAgICAgICBwcmludGxuKGZpbGUsICIoeHRbaXRdKSAkKHZ0W2l0XSkiKQogICAgICAgIGVuZAogICAgZW5kCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkOWI2MGYxMTItNDE0Yy00ZGEyLTlkYzItZjBiZWFkMTBlZDUwhKdjZWxsX2lk2SQ5YjYwZjExMi00MTRjLTRkYTItOWRjMi1mMGJlYWQxMGVkNTCkY29kZdlvbGV0CiAgICBwcmludCgibWFpbl9pbmJvdW5kc19zaW1kX2lubGluZV9mYXN0bWF0aCgkbnQpIikKICAgIEBidGltZSBtYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRoKCRudCkKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQzNTlkOTE1MC1jZDYyLTQ1Y2YtOTQ0Ni04NTY3YmNlYWJkZGOEp2NlbGxfaWTZJDM1OWQ5MTUwLWNkNjItNDVjZi05NDQ2LTg1NjdiY2VhYmRkY6Rjb2Rl2ZZiZWdpbgogICAgQHRpbWUgbWFpbl9pbmJvdW5kc19zaW1kX2lubGluZV9mYXN0bWF0aCgpCiAgICBAdGltZSBtYWluX2luYm91bmRzX3NpbWRfaW5saW5lX2Zhc3RtYXRoKCkKICAgIEB0aW1lIG1haW5faW5ib3VuZHNfc2ltZF9pbmxpbmVfZmFzdG1hdGgoKQplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDNhMWIzN2RlLWE0OWItMTFlZS0xMDU2LTQ1OTk2ZWZjOWE4MYSnY2VsbF9pZNkkM2ExYjM3ZGUtYTQ5Yi0xMWVlLTEwNTYtNDU5OTZlZmM5YTgxpGNvZGW0dXNpbmcgQmVuY2htYXJrVG9vbHOobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDdhZTMzOTdjLTk0NmQtNGUwYS1iZjRkLWM2NjNiMWExMjcyOISnY2VsbF9pZNkkN2FlMzM5N2MtOTQ2ZC00ZTBhLWJmNGQtYzY2M2IxYTEyNzI4pGNvZGXZXmxldAogICAgcHJpbnQoIm1haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgoJG50KToiKQogICAgQGJ0aW1lIG1haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgoJG50KQplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDk1NjEyYWEzLTBkMzUtNDcyMi1hNDQ2LTVhYjJlZDYzM2ViMISnY2VsbF9pZNkkOTU2MTJhYTMtMGQzNS00NzIyLWE0NDYtNWFiMmVkNjMzZWIwpGNvZGXaAiFiZWdpbgogICAgZnVuY3Rpb24gUnVuZ2VfS3V0dGFfNHRoKHgsIHYsIGR0LCBtYXNzLCBrKQogICAgICAgIHgxID0gdgogICAgICAgIHYxID0gZm9yY2UoeCwgbWFzcywgaykKCiAgICAgICAgeDIgPSB2ICsgMC41ICogZHQgKiB2MQogICAgICAgIHYyID0gZm9yY2UoeCArIDAuNSAqIHgxICogZHQsIG1hc3MsIGspCgogICAgICAgIHgzID0gdiArIDAuNSAqIGR0ICogdjIKICAgICAgICB2MyA9IGZvcmNlKHggKyAwLjUgKiB4MiAqIGR0LCBtYXNzLCBrKQoKICAgICAgICB4NCA9IHYgKyBkdCAqIHYzCiAgICAgICAgdjQgPSBmb3JjZSh4ICsgeDMgKiBkdCwgbWFzcywgaykKCiAgICAgICAgeCArPSAoeDEgKyAyICogeDIgKyAyICogeDMgKyB4NCkgKiBkdCAvIDYKICAgICAgICB2ICs9ICh2MSArIDIgKiB2MiArIDIgKiB2MyArIHY0KSAqIGR0IC8gNgoKICAgICAgICByZXR1cm4geCwgdgogICAgZW5kCgogICAgQGlubGluZSBAZmFzdG1hdGggZnVuY3Rpb24gZm9yY2UoeCwgbWFzcywgaykKICAgICAgICByZXR1cm4gLXggKiBrIC8gbWFzcwogICAgZW5kCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkNjQxMGQ4NDItNjA5Yi00NGNhLTg0MzAtN2YyNjU4YjNjNjVmhKdjZWxsX2lk2SQ2NDEwZDg0Mi02MDliLTQ0Y2EtODQzMC03ZjI2NThiM2M2NWakY29kZdlsYmVnaW4KICAgIEB0aW1lIG1haW5faW5saW5lX2Zhc3RtYXRoKCkKICAgIEB0aW1lIG1haW5faW5saW5lX2Zhc3RtYXRoKCkKICAgIEB0aW1lIG1haW5faW5saW5lX2Zhc3RtYXRoKCkKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SRkOWU4MTE1OS1iOWEyLTQ1MDctOTVhNC04YzFkM2M1Mjc3ODCEp2NlbGxfaWTZJGQ5ZTgxMTU5LWI5YTItNDUwNy05NWE0LThjMWQzYzUyNzc4MKRjb2Rl2VdiZWdpbgogICAgQHRpbWUgbWFpbl9mYXN0bWF0aCgpCiAgICBAdGltZSBtYWluX2Zhc3RtYXRoKCkKICAgIEB0aW1lIG1haW5fZmFzdG1hdGgoKQplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDBlNjBkOWQ2LTUzZDUtNDdjNy05MjBkLWUyZmU3OGZhMTI3ZYSnY2VsbF9pZNkkMGU2MGQ5ZDYtNTNkNS00N2M3LTkyMGQtZTJmZTc4ZmExMjdlpGNvZGXZS2xldAogICAgcHJpbnQoIm1haW5faW5saW5lKCRudCk6ICAgICAgICAgIikKICAgIEBidGltZSBtYWluX2lubGluZSgkbnQpCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkMTZkMWNkMDctMTQxZC00YmNlLWE3ZjgtYTg1ZTViZTVlZWZlhKdjZWxsX2lk2SQxNmQxY2QwNy0xNDFkLTRiY2UtYTdmOC1hODVlNWJlNWVlZmWkY29kZdlNbGV0CiAgICBwcmludCgibWFpbl9mYXN0bWF0aCgkbnQpOiAgICAgICAiKQogICAgQGJ0aW1lIG1haW5fZmFzdG1hdGgoJG50KQplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDE4ODYxM2IyLWRmZjktNDE4MS1hZTQyLTc4MjRhNzNjMmMwMISnY2VsbF9pZNkkMTg4NjEzYjItZGZmOS00MTgxLWFlNDItNzgyNGE3M2MyYzAwpGNvZGXZYGJlZ2luCiAgICBAdGltZSBtYWluX2lubGluZV9zaW1kKCkKICAgIEB0aW1lIG1haW5faW5saW5lX3NpbWQoKQogICAgQHRpbWUgbWFpbl9pbmxpbmVfc2ltZCgpCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkNmJhYTc0NGUtZjQxZS00YTMzLWE0ZDYtMDIyODRiMjdjNWZmhKdjZWxsX2lk2SQ2YmFhNzQ0ZS1mNDFlLTRhMzMtYTRkNi0wMjI4NGIyN2M1ZmakY29kZdk8YmVnaW4KICAgIEB0aW1lIG1haW4oKQogICAgQHRpbWUgbWFpbigpCiAgICBAdGltZSBtYWluKCkKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQ5ZjlmYmVkYy02OGFlLTRmZjAtYmY0MC01YzEzZWY5YTc4MGGEp2NlbGxfaWTZJDlmOWZiZWRjLTY4YWUtNGZmMC1iZjQwLTVjMTNlZjlhNzgwYaRjb2Rl2gHIZnVuY3Rpb24gbWFpbl9mYXN0bWF0aChudCA9IDEwMDAwMDAwMCkKICAgIG1hc3MgPSAxLjAKICAgIGsgPSAxLjAKICAgIGR0ID0gMWUtMgoKICAgIHh0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQogICAgdnQgPSB6ZXJvcyhGbG9hdDY0LCBudCArIDEpCgogICAgeCA9IDAuMAogICAgdiA9IDEuMAoKICAgIGZvciBpdCA9IDE6KG50KzEpCiAgICAgICAgeHRbaXRdID0geAogICAgICAgIHZ0W2l0XSA9IHYKICAgICAgICB4LCB2ID0gQGZhc3RtYXRoIFJ1bmdlX0t1dHRhXzR0aCh4LCB2LCBkdCwgbWFzcywgaykKICAgIGVuZAoKICAgIG9wZW4oInJlc3VsdF9qdWxpYV9tYWluX2Zhc3RtYXRoLm91dCIsICJ3IikgZG8gZmlsZQogICAgICAgIGZvciBpdCA9IChudC05OTkpOm50CiAgICAgICAgICAgIHByaW50bG4oZmlsZSwgIih4dFtpdF0pICQodnRbaXRdKSIpCiAgICAgICAgZW5kCiAgICBlbmQKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SRiZGYxNTkxMi1iOWZiLTRmM2EtODdlOS0yNDVjNjNkMWEwM2aEp2NlbGxfaWTZJGJkZjE1OTEyLWI5ZmItNGYzYS04N2U5LTI0NWM2M2QxYTAzZqRjb2Rl2URsZXQKICAgIHByaW50KCJtYWluKCRudCk6ICAgICAgICAgICAgICAgICIpCiAgICBAYnRpbWUgbWFpbigkbnQpCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkOTI3M2MyNTItYWM0NC00NGNlLTlkMzQtZDk3NDM5ZTQ2ZjAxhKdjZWxsX2lk2SQ5MjczYzI1Mi1hYzQ0LTQ0Y2UtOWQzNC1kOTc0MzllNDZmMDGkY29kZdlUbGV0CiAgICBwcmludCgibWFpbl9pbmxpbmVfZmFzdG1hdGgoJG50KToiKQogICAgQGJ0aW1lIG1haW5faW5saW5lX2Zhc3RtYXRoKCRudCkKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQ3MzdlNGQ3ZC1mNWViLTRjYjQtYmUwMS1hYWQ2ZjBjMjJiOTOEp2NlbGxfaWTZJDczN2U0ZDdkLWY1ZWItNGNiNC1iZTAxLWFhZDZmMGMyMmI5M6Rjb2Rl2gHSZnVuY3Rpb24gbWFpbl9pbmxpbmVfc2ltZChudCA9IDEwMDAwMDAwMCkKICAgIG1hc3MgPSAxLjAKICAgIGsgPSAxLjAKICAgIGR0ID0gMWUtMgoKICAgIHh0ID0gemVyb3MoRmxvYXQ2NCwgbnQgKyAxKQogICAgdnQgPSB6ZXJvcyhGbG9hdDY0LCBudCArIDEpCgogICAgeCA9IDAuMAogICAgdiA9IDEuMAoKICAgIEBzaW1kIGZvciBpdCA9IDE6KG50KzEpCiAgICAgICAgeHRbaXRdID0geAogICAgICAgIHZ0W2l0XSA9IHYKICAgICAgICB4LCB2ID0gQGlubGluZSBSdW5nZV9LdXR0YV80dGgoeCwgdiwgZHQsIG1hc3MsIGspCiAgICBlbmQKCiAgICBvcGVuKCJyZXN1bHRfanVsaWFfbWFpbl9pbmxpbmVfc2ltZC5vdXQiLCAidyIpIGRvIGZpbGUKICAgICAgICBmb3IgaXQgPSAobnQtOTk5KTpudAogICAgICAgICAgICBwcmludGxuKGZpbGUsICIoeHRbaXRdKSAkKHZ0W2l0XSkiKQogICAgICAgIGVuZAogICAgZW5kCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkYTM3MjhkNTYtZTNlNi00OThlLTk2ZjYtZjQxZTg3ZWVlOWVhhKdjZWxsX2lk2SRhMzcyOGQ1Ni1lM2U2LTQ5OGUtOTZmNi1mNDFlODdlZWU5ZWGkY29kZdoBwmZ1bmN0aW9uIG1haW5faW5saW5lKG50ID0gMTAwMDAwMDAwKQogICAgbWFzcyA9IDEuMAogICAgayA9IDEuMAogICAgZHQgPSAxZS0yCgogICAgeHQgPSB6ZXJvcyhGbG9hdDY0LCBudCArIDEpCiAgICB2dCA9IHplcm9zKEZsb2F0NjQsIG50ICsgMSkKCiAgICB4ID0gMC4wCiAgICB2ID0gMS4wCgogICAgZm9yIGl0ID0gMToobnQrMSkKICAgICAgICB4dFtpdF0gPSB4CiAgICAgICAgdnRbaXRdID0gdgogICAgICAgIHgsIHYgPSBAaW5saW5lIFJ1bmdlX0t1dHRhXzR0aCh4LCB2LCBkdCwgbWFzcywgaykKICAgIGVuZAoKICAgIG9wZW4oInJlc3VsdF9qdWxpYV9tYWluX2lubGluZS5vdXQiLCAidyIpIGRvIGZpbGUKICAgICAgICBmb3IgaXQgPSAobnQtOTk5KTpudAogICAgICAgICAgICBwcmludGxuKGZpbGUsICIoeHRbaXRdKSAkKHZ0W2l0XSkiKQogICAgICAgIGVuZAogICAgZW5kCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkYTVmMWEwYTYtYzlhMy00OTUwLThmMzEtZGZmMTE4M2E1NjY3hKdjZWxsX2lk2SRhNWYxYTBhNi1jOWEzLTQ5NTAtOGYzMS1kZmYxMTgzYTU2NjekY29kZdl7YmVnaW4KICAgIEB0aW1lIG1haW5fc2ltZF9pbmxpbmVfZmFzdG1hdGgoKQogICAgQHRpbWUgbWFpbl9zaW1kX2lubGluZV9mYXN0bWF0aCgpCiAgICBAdGltZSBtYWluX3NpbWRfaW5saW5lX2Zhc3RtYXRoKCkKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTCq25vdGVib29rX2lk2SQ2ZmVhMzAwZS1hNGYwLTExZWUtMjRkYy05MzEyY2E4ZjU0NTaraW5fdGVtcF9kaXLCqG1ldGFkYXRhgA==";
window.pluto_preamble_html = undefined;
</script>
<meta name="pluto-insertion-spot-parameters">
<script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.c69300f2.js" type="module" defer="" integrity="sha384-sLMlcWvt4TmaGbLLnhN9nz+JY2xsbCeklFggrWNJ4zBrwPosiufyTbUD6aYbHgE4" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.8a3292da.js" integrity="sha384-itp4oE2PRbSrrTHVpWh8sqAuVUsz7ja6L2Dgp/JRfMCD2AwVdTk56K96POF3oLmu" crossorigin="anonymous"></script><script type="text/javascript" id="MathJax-script" integrity="sha384-4kE/rQ11E8xT9QgrCBTyvenkuPfQo8rXYQvJZuMgxyPOoUfpatjQPlgdv6V5yhUK" crossorigin="" not-the-src-yet="https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-svg-full.js" async=""></script></head><body class="loading no-MαθJax"> <div style="display:flex;min-height:100vh;"> <pluto-editor class="fullscreen"></pluto-editor> </div> </body></html>
function main()
mass = 1.0
k = 1.0
dt = 1e-2
nt = 100_000_000
xt = Vector{Float64}(undef, nt + 1)
vt = Vector{Float64}(undef, nt + 1)
x = 0.0
v = 1.0
@simd for it in eachindex(xt, vt)
xt[it] = x
vt[it] = v
x, v = @inline Runge_Kutta_4th(x, v, dt, mass, k)
end
open("result_julia.out", "w") do file
for it = nt-999:nt
println(file, "$(it*dt) $(xt[it]) $(vt[it])")
end
end
end
function Runge_Kutta_4th(x, v, dt, mass, k)
x1 = v
v1 = force(x, mass, k)
x2 = v + 0.5 * dt * v1
v2 = force(x + 0.5 * x1 * dt, mass, k)
x3 = v + 0.5 * dt * v2
v3 = force(x + 0.5 * x2 * dt, mass, k)
x4 = v + dt * v3
v4 = force(x + x3 * dt, mass, k)
x += (x1 + 2 * x2 + 2 * x3 + x4) * dt / 6
v += (v1 + 2 * v2 + 2 * v3 + v4) * dt / 6
return x, v
end
function force(x, mass, k)
return -x * k / mass
end
if abspath(PROGRAM_FILE) == @__FILE__
@time main()
end
@terasakisatoshi
Copy link
Author

terasakisatoshi commented Dec 26, 2023

$ julia
julia> using Revise
julia> includet("newton.jl") # newton.jl のコードを変更した後に main を実行するとコードの変更が反映された main を実行できるおまじない
julia> main() # main を単に実行
julia> @time main() # main の実行時間を計測

参考情報

元になった記事: https://kamemori.com/research/fortran/speed_harmonic_oscillator_1d_ja.html

いろんなコードによる議論があるスレッド: https://x.com/kame_no_mori/status/1739239579792867458?s=20

Python + Numba 版

https://gist.github.com/terasakisatoshi/522e43f1d6bc914e9939ef81009d52cf

C++ 版

dc1394/newton.cpp

Rust 版

dc1394/newton.rs

例えば下記のように動かす

$ rustc -C opt-level=3 newton. rs
$ ./newton

Julia simd マクロのヒントはここから得た: https://x.com/genkuroki/status/1739564847371862101?s=20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment