[{"Attribute":[{"category":"External analysis","disable_correlation":false,"first_seen":"2024-06-18T05:54:02.801000+00:00","to_ids":false,"type":"link","uuid":"0469fff9-bb39-4f88-aba9-3f3be481cfb7","value":"https://lookyloo.circl.lu/tree/4de851ea-bafa-4c74-9f9d-94a49c99777c"},{"category":"External analysis","comment":"Screenshot of the page at the end of the capture","data":"iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAIAAABnsVYUAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd1RU1/bA8U0bigUQ7B1sIGDsvcQeSzQq9poYu8YWNfaeZu+a2GvsvfeuGEEsIIKo2KUofQYGfn9cnd8EFEZlwot+P+utt849c+45+565rPV++3fcY+IfHiEAAAAAAAAAAGQ008wOAAAAAAAAAADwaSIBDQAAAAAAAAAwChLQAAAAAAAAAACjIAENAAAAAAAAADAKEtAAAAAAAAAAAKMgAQ0AAAAAAAAAMAoS0AAAAAAAAAAAoyABDQAAAAAAAAAwChLQAAAAAAAAAACjIAENAAAAAAAAADAKEtAAAAAAAAAAAKMgAQ0AAAAAAAAAMAoS0AAAAAAAAAAAoyABDQAAAAAAAAAwChLQAAAAAAAAAACjIAENAAAAAAAAADAK88wOAAAAAJ+R0OfPz588cTcg4MXTZ2bmZvkKFnQuWapitWp2OXKkGJmUlOR33df3ypX7d4OjXr2ysrbKX6hw2cqVPcqXNzMzy5TgAQAAALwvEtAAAAD4NzwOCVkyc8axffuSkpJSfGRmZlapRo223XtUqVVLRMJDQ7euXbNr06bw0NDU8+QtUKDnoB++atXKxMTk34gbAAAAwEcw8Q+PyOwYAAAA8Ik7dfjwlB+Hx0RHpz2sXJUqZSpU2LRiRVxsbNoja9avP2XuPEsrq4yLEQAAAEDGIwENAAAA4zp34sTIPr21iYnKpVOJEpVr1MxXqJA6Pu7po0eXzp4NCQ5+642WVlaVa9Ys7uJq7+AQHRkZ6O9/+ugRjVqtfFqxevXZK1aamfNP+gAAAID/XSSgAQAAYERhL150aNggKjJSRLLb2Y399bca9eqlqJ4R6O//27ix169e1fXkypOna99+zTw9LS0t9UdGhIXOmDDx+IH9yuW3Awd+P3iI8R8CAAAAwAcyzewAAAAA8Cn7Y84cJfuczdb2z63batavn7p2c0x09B0/P6VtamratU+fLSdOtO7cOUX2WUTsHRynzp/fol175XLdsmWhz58b+QkAAAAAfDhOQAMAAMBYYqKjm1etohR0njhrdqMWLVKP8fP1Hdils1IeOput7dR58yrVqJn2tGq1umvTpg+C74pI76HDuvfvb2A8zx4/fvbkSXxcrIWFqpCTk0POnO/3PP+UlJQUExWVotPcwsLaxuZjpjWEVquNjY4WEStrawuVKu3BUa9eiYjK0pKS2QAAAPj3UTIPAAAAxnJs/z4l+5y/UKGGX3+dekDUq1c/9e/3OvucPfvcVatdPDzSndbS0rLj9z1/GT1aRPZt25puAjoiLGzj8uXHD+x/9OCBfn/+QoUatWjh2bWbXY4chj+Uzrzp0/5auTJ1v0qlcsydu0yFCrUaNKzVoIGpacb/o8NJQ4cc2btXRJxKlFh/4GAaIzf8+cf8n38WEZWl5QGvKzZZsmR4MAAAAEAaKMEBAAAAY7lx1VtpNGrRInXlDRH5ZcyYZ48fi4iVtfXcNWsMyT4r6jdtZm5hISIP79+PCAtLY+TBnTtb16m9dumSFNlnEXn04MGK+fM7NGp47vhxA9fVp5wsTk2j0TwOCTmwY8dP/fp2/qrxLd9rHzB5OktHRiqN1Eew3zVSo1ar4+MzPBIAAAAgbSSgAQAAYCx37wQojRKupVN/enTfXt3PCQ6bONHF3dDss4hkyZq1YOHCr1cJCHjXsDWLF08aNlQ5hf0uL8PDR/btc+boUcNXN1xwYGCfdu1OHDxgjMmN5P7du96XL18+eyb4zp3MjgUAAAD/eZTgAAAAgLE8efhQaRQqWjTFR2q1esEvvyjtBs2aNWvj+a5JTh46mCVrtorVq6foL+TkFBwYKCJPHj18+40HDy6ZOUN36ZgrV+vOXcpUqKCytHzx7OmZY8eO7t2rUatFRJuYOGXEj5sOH8nh6Ph+T/hG3+E/2trbKe2IsPAb3lcvnj6t1WpFJEGjmTR0aL4CBUu6uX3Y5P+y7La2EWFhQbdvqyypGQ0AAICPRQIaAAAAxqIru2Fmbpbio92bNumKbwweN/6ttz8OCfl9/LiLp08XKFz4r6PHUhRTNjF5fWkibynuodGo50ybmpycrFxWrV176vwF+hWQ6zRq3LZrt+Hf9wx9/lxEol69Wrds2aDRo1NPpVarVSrVW0uI6DT8+us8+fPr9wTcujWqbx8lBa9Wq+dMnbJ4019vndzS0jKNmT9gZIJGY2pmZmaWcs8NZO/gYO/g8EXFih92OwAAAKCPBDQAAACMRZcD1SZq9fuTkpI2r16ltNv16JH63HFiQsLGFcuXz5unlC1+eP/+xdOnq9Wp889JXs9pZv6W/017dO8+JcEtIoWKOk1fuMjK2jrFmJJublPmze/fsYO5hUXtBg3qN2uq/6mfr+/GFcu9zp17GR5uZm7uXKJE/WbNPLt2Sz3PW5VwdZ29clW3Zk3VarWI+Hh5+fn66opcB9y6tW7pkounT0dFRlpZW1er82W/ESO2rVsX6OcnInUaN27VqZMy8nFIyJolS04fORIRFqqytCxToeL3gwe/dcWoV682LP/z6L59D+/dMzMzK+7q2un77/UHJCYm/tSvb0xUtIi4lPHoO/xH3Uehz5//Pn5cXEysmJh07dOnQrVqhjwjAAAAkC4S0AAAADCW7HZ2z58+FZEXz54WLV5c1+9z+fLD+/dFRKVSder5fYq7rl+9+uvYMUG3b+t3bl2zOkUC+sWzZ0rD1t4+9dL6NZ279ev3rqzxFxUr/rl9e/6ChbLb2ek6k5OT/5gze9XChboD1NrExIBbtwJu3dqxYcOvS5YWd3FJ+8EVhZ2cmrZps339euXy/MkTSgJ6+/r1syZP0iYmKv3xcXHHD+z38bqsUaujo6JExMrGWklAXzh1auzAAbExMcpIjVrtde6sj9dl+xw5Uqx1LyhoSI/uTx89eh2wVut//fq4QYPyFyqkG2Nqavr3hQvKzxJeuXC+fY8e9g6vU/9H9+49feSI0m7XvbshTwcAAAAYgh8hBAAAgLEUK1VKaQTcuqXff3TfXqVRrW7dbLa2uv6Y6Ojfxo3t066tLvuct0ABpXH57NmY6GjdSG1i4t03Y5xLlky9dKC/n65do27dNIJ0cffQzz6LyOpFi1YuWKDLPut78vDh4O7ddGer01Wtzpe69r3AIBE5e+zYjAnjddlnnfDQUCX7rBMcGDi6fz9d9lknQaNR0vo6MdHRw777Vpd91vfowQNd29TUtNqXr+NJTk6+cPKU7qMr588pDZVKVb5qVcMeDgAAAEgfCWgAAAAYiy4BfcPbW7//yvkLSqNBs2b6/acOHdqxYUNSUpKImFtYdO/ff+PhI0p+WavV3vC+qht5x89PKW2R3c4uV548qZcOe/FCaVhZW6fIL6ft4b17y+fP013Wadx41LRpvYcO060SHho6b/p0A2fLlTevrv0yIlyr1c7Vq0ydw9Gx15ChP/38c4PmzVPXmF78+2/xcXFK29rGpseAAZPnzO3Su49KpUoxctOKFY9DQpS2mZnZNx07Tpo9p++PI3QHnHVqN2yoa1849ToBnZiQcPXSJaVdrkoVA2uMAAAAAIagBAcAAACMpWzlykrjwsmT0VFRWbNlE5GX4eEh94KV/vJV/nHYtkHz5muXLrkXFFSmQoWRU6cpVTu+qFhRORDtffly5Zq1lJFH9+1TGuXeLJGC+ZvC0AkJCUlJSSl+wPBxSMiuTRtTHHE2tzDv0rvPni2bExMSlJ6ePwz+btAgpf1Nx47dvm6unH0+dfhQeGioITugf37Zytr6po+PUntERHI4Oq7bv1/JEX/dtl0pN7f5P/+sGxwVGalLEJuZmS1Yv97Vo4yyRZVr1hzYpbP+Ae0je3br2iOmTv26bTul3ahFi06NG+mfHK9Sq7ZKpdJoNCJy6ewZbWKimbn5DR+fuNhYZYD+kW0AAADg45GABgAAgLG4uHsUKFz44f37Go3m1KFDTdu0EZEHwa+zz7nz5UtRvtlCpZo6f8EdP79GLVroTgTrCi4H+vsrjaSkpKN79yjt+v88Q63jkDOnUuxYm5gYfOdOijIdXufPrVmyJPVdteo3uH719Tlraxubbn376j6ytbfv+F3P2VMmi4hWq73p42PIDtz0+f+j37nz5tUvRdKyQwf9E8rteny7fN48XcL6XmCgLg9evmo1Jfv85rJq6S++0B0q12jU9+/eVdo5HB2be7bVX/Grb77ZunatrsfaxqZi9ernTpwQkahXr25eu+ZRvryu/oaIVP1noW0AAADgI1GCAwAAAMZiYmKiSxD/tWqlUlvj2ZMnSk+hokVT3+JcsmTjli3161EUKFxEaURHRiqNY/v3K5PYZMlSo269ty7tXq68rr13y5bUgb0r5shXr5RGrjx5zC0s9D/KX7jw/w97+fJdM+ho1OodGzfqLitUqxardxg5T/78+oPNzMxy69Xr0K8HnfefI0WvNLaIREf+/8hcefOmeLQ8qe6t2aCBrn3h1EkRuXz2rHJZ2MmpgN4zAgAAAB+PBDQAAACMqEW79ipLSxG54+d3dO9eEVHHv65rrKuSkTbldnmTk9UmJv4xZ7bS08zT09LK6q131W7USNfeum7ttStX9D+tVufL/iNH9h3+o12OHCluzPHmVPLjhw+j3qS8FX6+vrq2Q65caYedlJQ0Y8KEh/fuKZd2OXJUrlnLzuH/l9Md6FbExcY+elPHWUTs9QILCridYnLdjzSKiK2dnZmZmdIOCQ7WqNXvGqmoVb++riCJUhrl1pvnov4GAAAAMhwJaAAAABhRnvz5W3booLSXzpoZHxdnavo6W5qiLvO76IYlaBJEZPv69SHBwSJiZW3dvV+/d91VrU6dUu7uSjsxIWFw925b16xRv0nOOubKVatBg2tXvF6Gh6e4sUK1am+W0/w2dqwun3v75s2Ny/9U2ipLS4/y5eUd4uPiLp05PaBTxz1bNus6u/frb21jU6ZCRV3Pzg0b/K6/zvxqExNnT56snzt2LlkyS9asSvuGt/fBnTt1H21fv/5uQIDu0szcvPQXXyjtmOjoJTNm6MpDX7ty5fCePSnCs3dwdCtbVmkH3Lp1dO8ebWKickn9DQAAAGQ4akADAADAuLr367dn8+a42NjHISHzpk+r/qZoxtPHjw25/enjR0rDLod9yL3ghb/9qly269FDv4ZyCiYmJqN//qWXZ5v4uDgRiY+Lmzlp4oJffynu4mJtk+X5k8e6uskpNG/bdu3SJcpp66P79vpd9y1bqfLLiPBLZ84kaDTKmJYdOthkyaJ/1ze1aqbxCHUaN/bs1k1ECjs5la1UyfvyZRHRaDS9PD1r1K3rkDPn1UuXgu/c0b/FQqVq5un518qVyuXk4cOO7NldtHiJgFu3vM6dTTF/i/YdfP/+W2lvXLHc9++/y1Ss+Ozx45OHD+mSy/pqNWigjE9OTv5jzhyl0yZLli8qVkw9GAAAAPgYnIAGAACAcdk7OPYeOkxp79iwQfe7fCH37ulSumnQFZHI4ZhzZO/e6vh4ESlQuHC3vu88/qwo7uIyfeEi/UyxOj7+hre317mz+tnnNl27/jNah59+/llXSfnRgwd7t245e+yYLtRipUrpHscQzT3bTpo9W3eOe/ikybqQEhMSTh46tG3duhTZZ8W3AwbqKjInJyefP3ly/R/LUmefRaRxy5aVa9bSXd685rPhzz+O7d/31uyziNSq//9loMNDQ5VGpZo1LVQqw58LAAAAMAQJaAAAABhd2+7dK9V4fUZ47dKlSkOjVp87cTzde08ePKg0zh4/FhwYKCJm5uYTZ822trFJ996qtWv/uW17+apV3/qpkmse+NNPuh4l71z3qyY/L1psa2+f+pbqX365YN36FMef38rU1LRspUpzV68e/csvKpWlrt+pRIk5q1Y7pioh7epRJofjPw50Z7ezm7dmbcnSpVOMzJ0vX0k3txRrTV+4sI5e2WuFpZWVbtv1FSxatGjx4ik6q1F/AwAAAEZg4h8ekdkxAAAA4NMXERbWq62n7kf5FOWqVFmwbr3uuHFqXufPDerSJUXn8EmTW3fu/F6r37zmc/rIkSB///DQMCsb67wFClSpWat63bpKKnnXpo2Rr15ZqFStOnXSJYujo6L2b9t25cL550+eWFpZOZcs2aBZ87KVK+vmvOHt7X35Uuq1rK1tHHPnLlOhgr2Dw7viiYuN3bN586Uzp8NevMhua1ftyy9bde506vCRp48eioiLu4euFLVWqz22b9+pw4cfhTywsbEpV6VKu+49Am7duuV7TUTy5MvfoHlz/e06tGtXcMAdUzPTUu7u7bp1T9Rqzxw9IiKWllae3brptloJ/vyJEz5eXiJiYmKy+/yF1GlxAAAA4CORgAYAAMC/5OG9e73btdXVfFD8OHlKq06d3jo+Jjq6a7Omj0NC9Du79unT98cRRozyc9L96+a3b94UkZJubqt27c7scAAAAPAJMhswclRmxwAAAIDPQnY7u5r16507fjw6MlLXeenMmex2dq5lyqQY/Pzp08Hdut4LCtLv/G7QD+9VfxkpXL96tUeLFpEvIxISEratW3vq8GGlv/P3vdzKls3c2AAAAPBJ4gQ0AAAA/lVhL16MGzTQ+/Jl/c5S7u4tO3Qo7uKSNVu2Rw9Czh47un/79vi4ON0AK2vrHydNbtK69b8e76dDq9V2bNToQfDdFP2OuXJtPnbckJraAAAAwPsiAQ0AAIB/m1arXb9s2YoF89Xx8YaMdy9XbtzvvxcsUtTYgX3a1PHxnZs2SVGG2y5Hjrmr15Rwdc2koAAAAPCJIwENAACAzBH6/PnKBfMP7NgRFxv7rjGl3N279e1Xp1GjfzOwT5harT5x4IDXubMvnj3LbmtXyt2tZYeOWbNly+y4AAAA8MkiAQ0AAIDMFBsTc/LQIe/Ll27fuBERFqbRaLLb2eUvWMitbNlaDRpwMhcAAAD4TyMBDQAAAAAAAAAwCtPMDgAAAAAAAAAA8GkiAQ0AAAAAAAAAMAoS0AAAAAAAAAAAoyABDQAAAAAAAAAwChLQAAAAAAAAAACjIAENAAAAAAAAADAKEtAAAAAAAAAAAKMgAQ0AAAAAAAAAMAoS0AAAAAAAAAAAoyABDQAAAAAAAAAwChLQAAAAAAAAAACjIAENAAAAAAAAADAKEtAAAAAAAAAAAKMgAQ0AAAAAAAAAMAoS0AAAAAAAAAAAoyABDQAAAAAAAAAwChLQAAAAAAAAAACjIAENAAAAAAAAADAKEtAAAAAAAAAAAKMgAQ0AAAAAAAAAMAoS0AAAAAAAAAAAoyABDQAA8FnYt3VrVWenQV27ZHYg/z0ptm735r+qOjsN7t49Q2b7n/KRj6YvIix03KBB9ct41ChRfOLQIR8/IQAAAP6jSEADAAAAyGALfvnl6L69Wq22Su3aBYsUzexwAAAAkGnMMzsAAAAA4L+kaes2jVt+Y2piktmBZLwMfLSbPj4iMvrnXxo0b/7xswEAAOC/iwQ0AAAA8B7MzMzMzMwyOwqjyMBHU6vVIpIrb94MmQ0AAAD/XZTgAAAA+Jwki1qtXvz7b551v6zt6vJVxQpjBgx4EHxXf0hSUtKeLZv7dezQqHy5GiVL1C/j0bN1q50bNyQlJenGbF2zpqqz05QRP6rV6gW//NKqdq3ari5NKlUcO3Dgw3v39Ge7FxQ0ZcSPyoC67m5t69ebMWF8yL1g3YC9W7ZUdXaaNnKkWq2e//PPLWvWqO3q0ubLOmsWL05OThaRPVs2d23WtI6rS8NyZccNGhT24sX7RqtbQqvVrl26pGPjRnVcXeqX8RjUpcv1q1f1Z0vQaFYtXNi2Xj3lcX7q1y/4zp0UW5iiUPKuvzZVdXb6+aefHt6/P6BzpzqlXedMnWL4bIo7fn6Thw9rWaN6LZdSjcqX69eh/f5t25THf98NN2RD3hVz6hrQ6X59qY0bNKiqs9PTR49EpE+7tlWdnYb3/C7tjQIAAMAnjBPQAAAAnxEzc7Oh3/YIuHmzbOXKJUu7+XhdPn5gv9f5cyu27yhQpIgyZvpPo/Zt3WqhUpWtVNkhp2N4aNjfFy/c9PG5dc139C+/KGMsLFUiEhMV9WPPnrd8r7l4eJQsXdrHy+vY/n2Xz51dvm17waJFRcTP17dvh/bq+PgSrq4e5cubmJj4X7++bd26w3v2LFy/obiLi4hYWlmJSFxs7NiBAwJu3vQoX+HZk8fXr15dPON3C5VFXGzcmsWLKtaokStPnr8vXjy6b++jBw9W7NypeyJDotUtMWnY0HPHj1eoVq1gkSI3vL29zp+7dsVr7f79hYo6KSMnDBly4uABSyurmvXqW9vYBN72//ablm26dE1jSy0trUQkNiZm4pAhjx8+LFOhYs7cud9rtmP7900aNixBoyld5ovKNWuFvXh+5cIF78uXL54+NXH2HFNTU8M33NANeXfM+gz5+lKr1aBB3gIFtq9fFxMd3ahFi1x58hZxdjZ8UQAAAHxiSEADAAB8Rq5evOhcqtS2k6ey29mJSHxc3MAunW94ey+eMWPaggUici8oaN/Wraampkv/2uzi4aHcdfvmzZ6tW+3Zsrn9t986lSghIuZm5iJy8dSpoiVK7Dh9JputrYjEREf/0LXrzWs+i37/7edFi0VkzdIl6vj47v379x46TBfDqoULl86auXLBgukLF4qImbmZiFw+e6aUm/umI0etbWxE5I85s1fMn7926VILC4vlO3Y6lywpInf8/Lo1b+Z33Tfo9m2lx8BoXy9x7myefPk2HDqcO29eJdrvvml5/+7dnRs3DRo9WonhxMEDKpXqj63bdNnVrWvXpn1Q10JlISK+f18p5OS048wZS0tLpd/A2Z49fjxl+PDEhITxM2Z+9c03SufD+/eH9Oh+ZO/e8tWqtWjX3vANN3BD3hVzCoZ8fak1aN68QfPmR/buiYmO/qZjpzIVKqS9UQAAAPi0UYIDAADgM6LRaIZNmKhkn0XEytq619ChInL22FF1fLyIZM2Wber8+eNnzNSlL0WkZOnSbl98ISK+f1/Rn02tVg8ZN15JhopIlqxZew8bJiLnTpyIj4sTkScPH4qIW9ly+nd17tVr3tq1/UeOVC5NTExEJDoqaujEiUr2WUS+bttORCLCwjp811PJNYtIcReXUm7uInL3TSELA6NVloh69erHyVNyv6lKnCVr1maeniIS6Oen9BzavVtEGrZooX+2t02XLkWLFUtjS5UTys+fPu0zbLh+UtXA2basWaNWq2s3bKTLPotIgcKFlf3Ztnat/uB0N9zADXlXzCkY8vUZzsBFAQAA8InhBDQAAMBnxNbevvQXX+j3lKlQ0cTERKPR3AsMLOnm5pgrV70mTZWP4mJjI8LCkrRaEbHJkkVEoiIj9e/NZmvrUb78P2erICIJGs2Thw+LFi9exNn59o0by+fNzVegQNHixZUx5hYWFatVTxGYQ86cSqEGheOb4gzu5f6R/cyVN4/fdd/Y6KjXw94z2hSz5c6XX0Sio17P5ufrKyJlK1VOEVulGjUD/f0lTdnt7FzLlNHvMXC2vy9eEJGa9eqlGFalVm1TU9M7fn5Rr17pMs7pbvh7bUjqmFMw/OszXLqLAgAA4BNDAhoAAOAzkr9goRQ9KpXKLkeOiLCw0BcvlJPG94KCls+de+nM6RT5ShHR+1U8EZEChQqnnM3S0iZLltiYmLAXL4oWLz7wp9G3fH39fH07Nm5UtHjxitWrV6pRs2L16iqVKsWNufLk1b80MzNTGo7/LBNsYmIqIklJ/x+H4dHmK1AgxQBzczMRSZbX40KfPRORXHnypBiWr2BBSY+Do6NyzlrHwNmUU8YHd+78+9LFlOFZWGjU6pD791w9Xmds091weZ8NSR1zCoZ/fYZLd1EAAAB8YkhAAwAAfEass9ik7lTyiRp1vIjc8fPr3dYzLja2WKlSHb7rmTtfPmsbaxHZtGKF799/p7jRJmuW1LNlyZo1NiZGOVbskDPn6t17tq9ft3/79rsBAcF37mxetSprtmztv/2ux4ABSk0GhbnF2/93qYWFRRqP817RmpunNZWIxMfHy5tfLNSnskw/32qTJeuHzRYXGysiXufPvWvmmOjo/18lvQ1/v68vVcwpGP71GS7dRQEAAPCJIQENAADwGdGo1W/p1GhExNLKWkSWzPg9Lja2TuPG0+Yv0M8wHty508DZlISp7Zsy09Y2Np2+79Xp+14vnj3zOnfu5KGD50+c+HPunKjIV4PHjvvIx3mvaNOlUqkSNJrUDxUbHWO82axtbDRq9awVK6vWrp3unOlueMZuiBj56wMAAMDngB8hBAAA+Iw8ffQoRY9Go3kZHi5vikXc8PERkVadOqU43xp0+7ZBs6nVsTExIpIjZ84UH+XMnbtJq1a/LV32+x9/isj29esTExI+5lneN9p0OeTMJSKhz5+n6A+5F2y82ZSqGql38q3S3fCM3RB9xvj6AAAA8DkgAQ0AAPAZefHs2b2gIP2ea15eycnJ1jY2hZ2cdJ0qlaX+mJMHDz568EAkZRXh1LNdv3pVRCytrPLmzx/58uXBnTuP7N2bIobKNWsqp4NfRkRkwCMZHG26Sri6ioj3pUv6nVqt9vzJkx8QlYGzla9WVUSO7N2T4naNWn1w587w0FD9zrQ3XNeZIRvyr319AAAA+LSRgAYAAPiMmFtYzJ48WVfJQaNWr5g/T0S+/OorC5VKRIoWKyYiZ44e1d3if/36rMmTylaqJCLPnz5JazaNZvm8uSJSp1EjlaWlRqOZNmrk9FEjr125on/X8QP7NRpNDkfHHI6OH/k47xVtuuo1bSIiB3fu8L9+XelJTk5eMX9eiixwxs72TYeOllZW3pcubfjzD11nYkLCjAkTJg0b+uvYMfqD095wydANMfzrW7NkycyJEy6dOW345AAAAPh8UAMaAADgs5CoTRSRKrVqRb161ebLOu7lymfLngz2BBIAACAASURBVP3KhfOPHjywd3DsNWSoMqxzr97XrlxZ/8eyQH//gkWLPLgb/PeF8/1GjHDImcv78uU9mzdrtUlft22rDK5QtWp0VFSq2Rz6DBsuIo65cg0YOWrutKl92rV18fAoULiwiYlJyL17/tevm5mZDZ0w4cN+xU7fe0WbrtoNG1WsXt3r3LlebT2/qFjJytoq0N//VUTEd4MGLfrtt/eNzcDZ8uTPP+733ycOHTr/558P7dpV3NU1NjrGx8srIiy0QJEiwydN1p8z7Q3P2A0x/Os7unfPHT+/HI45K9es9b67BAAAgE8eJ6ABAAA+C5p4tYhkt7Wdu3pN/WbN/W9c379je0x0dMOvv16+fXvuvHmVYTXq1Rv32+/FSpW6eunikT17EhMTflm8pGPP7+t+9VX9ps1MzcxOHjqoFB0WkaSk5Plr1zX8ukXArZsHdu6IjYlp0Lz5ih0787wpB9GuR4+5q9fUa9L0ZXj46SNHThw8GB4aWr9Zsz+2bavXpOnHP9R7RZsuExOT35Yu69q3b648eXy8Lt/w9i7p5vbn9h0u7h4ioo6Pf6/YDJ+tXpOmq3fvadKq1auXLw/v3n3+5Ikcjg7d+vVbvm17zty59edMd8MzdkOM/fUBAADgc2DiH07tNgAAALyffVu3Th05omL16vPWrM3sWD4LbDgAAAD+ozgBDQAAAAAAAAAwChLQAAAAAAAAAACjIAENAAAAAAAAADAKEtAAAAAAAAAAAKPgRwgBAAAAAAAAAEbBCWgAAAAAAAAAgFGQgAYAAAAAAAAAGAUJaAAAAAAAAACAUZCABgAAAAAAAAAYBQloAAAAAAAAAIBRkIAGAAAAAAAAABgFCWgAAAAAAAAAgFGQgAYAAAAAAAAAGAUJaAAAAAAAAACAUZCABgAAAAAAAAAYBQloAAAAAAAAAIBRkIAGAAAAAAAAABgFCWgAAAAAAAAAgFGQgAYAAAAAAAAAGAUJaAAAAAAAAACAUZCABgAAAAAAAAAYBQloAAAAAAAAAIBRkIAGAAAAAAAAABgFCWgAAPDpmz5qVFVnp6rOTg/v3cvsWN7OSBE2rlC+qrNTx8aN0hgTHBg4oHOn2i6laru6TBnxYwaujn/Hp/oNGvL2GjIGAAAAmcs8swMAAABAZhozoH/wnTsikjVbtsSEhMwO53/C3xcu+Hhdbvj11wWLFM3sWNJn+DeYmJBwcNfOkwcP3r5589XLlyYiOfPkKf3FF01bt65Uo+b7rjtu0KCj+/bqLs3MzbPb2hYtXrxKrVrN2njaOzh8wLMAAADg00MCGgAAfPqGTZo0cPRoEcmSNWtmx/K/JSoyUsldepQvv2jjJjMzs8yO6H/C0lkzr1+9WsrN/X8/AW34NxgSHDyid697QUH6nY8ePHj04MHh3bsbfv31+N9nmJl/+P91oE1MjAgLiwgLu3rx4upFi0ZNn16/abMPng0AAACfDBLQAADg02dpaWlpaZnZUfwviouNVRoFihQh+6x49uTJDW/vzI7CUAZ+gzHR0UO+7fHowQMRyZ03bzPPtoWdndXxcbeuXTu4c2dcbOzh3bsLOzl/O3DgB8Tww5ixRYoVS0xIePr48YmDB65evBgTHT1h8GBrmyzVv/zyw54LAAAAnwxqQAMAgE/fWysse1+6NKpvn1a1a9V2dWlWpfLwnt9dOnM6jUnGDhyoTPIqImL+zz+3rFmjlkupdvXr7926RX/Yg+C7k4cPa1q5Us1SJVvVrjVhyOCQ4GDdpxOGDK7q7FTb1UWj0Yzu379OaddNK1e8dblls2cpy21ZvVrpiXz5cu7UqZ51v6zlUqpR+XIjevcK9PfXv8X/+vWBXTp/6Va6Uflyk4YNjQgLMzExSeOJxg0a1KJ6NaW9f9u2qs5Ow3t+l3aQ6caQ7gBDxMbELJs9q32D+rVdXep5uA/q2sX70iX9AQkazZbVq7/75pt6Hu61XUp51qs7Z+qU0OfPdQN6t/Ws6uxUo0Rx/btS1At+62P269ihZY3qycnJIjL8+55VnZ3OHT9u4KOl8UaNH/yD8m3evOajG6+Oj6/tUirtEsZpP+m7vsHU/lq5Usk+u3qU2Xj4SM8ffmjQrFmzNp4jpkxdvWePvYODi4dHUpL2vTZZx71cuSq1atWoV69Nly4L12/oM2y4iCQlJc2aNFFXEiTtvwsx7O1Ne8wHbPLHv2m6t0hE1ixZ0rxqlXoe7sO++/bZkycism3dutZ1atd2denRskVwYOBbvxoAAIBPHiegAQDA5+jY/n3jBg1KTk5WqVT2jo4vw8PPnThx/uTJsb/+1qR167feYmn1+gz1T/36BgcG5i9YKCIs7EHw3WkjR0qyNPP0FJG7AQHft2kdGxNjoVLlzV/g8cOQw7t3Xzh1asPBQ465comISmUpIhq1evWihScOHhCRuJjY1Gsd3bd35YIFItKuRw/Pbt1E5GV4+PdtWj+8f9/MzKxIsWLPnz49c/To5bNnF2/a5OLuISLBgYH9OnZQzsNaWFgcP3AgODBQSaS+i629XQ5Hx/DQUBGxtLLKbmtrmyNHGkGmG0O6AwwREx3du61n0O3bImJmbq5Rq73OnfM6d27U9Okt2rUXEY1G80PXLj5eXsp4M3Pzh/fu/bVy5eHduxesW+9UooSBC731Me3sc2TLnj0qMlJEbO3tVSqVytLSkEdL+41q0a79kT17ROTUocOly3yhBHDl/HmNRiMiTVq1emuE6T7pu77B1A7u3Kk0fhg71trGRv+jgkWK7rlwMcXp6Y/Z5G79+p05evTmNZ/HISE+Xl4VqlVL9+/CkLc33THvu8kZ8qbp3qJ1y5Yu/v03ZeT5kyfHDhzg2bXbjAnjlR7/69cHdOq448xZlUqVxtYBAAB8kjgBDQAAPkcbly9PTk4u6eZ22Ntn55mzh696V69bNzk5ecPyP9+VtDUze/3/uY+Oitp89Nif27cv27zF3MJCRJbMnJGUlCQiy2bPio2JEZE/tm7bfOzYtPkLRCTq1avVixYq9+oObO7YsKF1587jfvu9Us0aKRbyv3596o8/ikjN+vUHjR6jdC767beH9++LyKwVK9btP7DzzNmSbm7q+PgZ4ycoA/6YPVvJzfX8YfChq94Hr/xtZ5/jVUREGpswfNLklbt2K+16TZvuPn9h3G+/pxFkujGkO8AQf86do+QEewwYcPz6jb0XL5UsXVpEZk6cGBEWJiIr5s9TcoINv/764JW/j/teHzZhoohEhIVNGfGj4Qu99TGnL1zYa8hQpX/cb7/vPn+hYvXqhjxa2m9UuSpVChQpIiInDx3SBXD+5AkRMTU1bdzym7dGmO6TvusbTCE6KirkXrCIOObK5VG+fOoBqWt3fOQm123yldLw/ftvMeDvwpC3N90x77vJGfKm6d6ibevWzVm1av7addnt7ETkhrf33GlTR//yy6rde4oWLy4i4aGh544fS3frAAAAPj0koAEAwOcoJipK+W/l9KjK0nLK3Hknbtxct/9A2mUrRKRzr97ZbG1FpKSbW+WaNUUk7MWLe4GBItLhu57z1q5duH6DksmqVqeOMltQQECKSb5s3Hj4pMlNWrfWHdVUhL54MaJ3L7VaXcrdffKcuaampiKSmJBwdN9eESnh6lqpRk0RscmSpW237iJyy/eaUlpBqfaQzda2a58+JiYm1jY2P4wd+5G7pB9kujEYEmS6kpKS9m3bJiL2Dg7fDfpBpVI55Mz5w5ixTVq3btC8+eOHIcnJybs2bRKR7HZ2Y3751dbeXmVp2aZrV2VF/+vX76ba6vd6zLcOMOTR0n6jTExMmnu2FZGQe8G6nwE8f/KkiFSoVl05BZxCBj7py7AwpZG3QAH9/p/69VNqVuj+c+rw4QxZOl/BgkojIjxMDPi7MOTtTXfMe21yhr9pbbt1q1yzVoVq1XRHrctXqdLcs23J0qW79O6j9Dy4+4+qIwAAAJ8JSnAAAIDPUY169e8FBT28f79V7VpFixf3KFe+QvVqtRo0NOTe4q6uunZhJ2elRvCzJ0+cSpQoU6FCeGjo+ZMnrs69pFGrRcTU1FSr1Wri1SkmqdOo8VsnnzRs6Itnz0Skc69eVtbWSueTRw+Vs5+hz5/rivy+evlSadzxu5Xd1lY5YVrC1dXizb/xL1qsmLWNje5H6j6AfpDpxpCUpE17QP5ChdJd8XFISNSrVyJSrGQp3bHcspUrl61cWWk/vH//ZXi4iJRyc1fp/bCke7myl8+eEZGAW7cMr8KR+jHfKt1nz1+oULpvVLM2bZbNnqVNTDx16FCRfv2C79x5+uiRvLv+xqMHDzLqSU1MXx86SUxINGT8xy+dmPh6IXNzcxFJ++8i6tWrdN9eQ8bI+2xyhr9pHuUrKI2CRYoqjTIVKymNQk6veyJfvUpj0wAAAD5VJKABAMDnqM+wYRqNeueGDRqNJvjOneA7d3b9tcnewXHS7NlKyYU0WL/JC4tItuzZlYZSCmDr2rXzpk9L0GjSDSBnnjxv7VfyZSKybNbsWvUbKLm2mKhopTM8NPTciRMpbgkPDVMyZSJipRebiHxkAlo/yHRjyJMvnQGGrBgdGak0smTPlvaArNn+MSBL1qyvB0RFGbKQvnd9FzrpPrsY8EblcHSsUbfuqcOHTx0+3K1fP6U0hE2WLHUavf0XCDPwSXM4OpqYmCQnJz9+GKLfP3jcuO8HDxaRK+fPz54yOQOX1h31Vc4dp/13Ycjba+AbbvgmZ/ibZmtnpzQs32Srs7/psbB4nTFPuyY7AADAp4oENAAA+ByZmZsPGTe+15ChV86fv371qvelS7d8r0WEhY7s03vH6TO29vZp3BsVGZknf36lrUtC2TvkuBcUNHvypKSkpCLOzj8vXlKwSBFTU9OapUpqE99y7NQ8VdVdRZPWrYu7uMydOvVB8N1NK1co/3hfl/OqUa/e78v+SH2XrhJu5JtjuSKSlJQU8/7Z2HcFmW4MIcHBaQ8wRJZsr1eJesdZ0axvMv5Rb/KDKS6z29rKm8q8Wq02MSFBqdOtUavfNee7vov/jyq9ZxfD3qiv27U/dfiw/43rz58+VRLZX371laWV1cc8qSGsbWyKODsHBwa+iojw/ftvXRno3HnzSt68IhJy714GLp2cnHxs/z6lXa5KlXT/LnSJ2jTeXkPGKAzc5Ix60wAAAJAuakADAIDPkTYx8UHwXXNz89oNGw4YNWr5jh1Dx08QkbjY2IBbt9K+V/ldNcW1K15KI1fefLd8fJSfIqzfrFkRZ2czM7O7AQFvzT6noUe//p5duzmXLCkiKxcsUMpx5CtUyNrGRkSCbt/WHaJUq9Ux0a9P5tra2yvnLu8GBKjVr8t93L55Q9f+eOnGkO4AEdGo1XGxsXGxscpGvWWVgq8nCbh1S3dg1uvc2a7NmnZt1vTEwQP5CxWyy5FDRG76eCs1GRSXz55VGq5lyohevjI4MPDNJOfetei76MYb8miGvFFVatXKlSdPcnLyge3br1+9KiJNvnl7/Q0RMfBJDfTVmxoUv44doztNrIv874sXMnDpFfPnKfWRS7i6lnJzT/fvwpC31/A3/F2bnOLdy6g37cOk+4cAAADwKSEBDQAAPjuhz5/XdXdrV7/+0pkztVqtiCQnJ+sONjrkzJn27asWLgj0909KStq3desNb28RyZM/fxFnZ9256ftBQSISEx09e8pkpbxsWOgLw//1vZmZ2Q9jxohIXGzs/OnTlJ76TZuJyJOHDzf8+UdSUpJGo5k4ZHD9Mh4Ny36h5BMr1aypLLrk9981anXYixczxk94351JO6q0YzAkyBkTJtR1d6vr7ubn6/uuVRq1aCkiUa9eLZ01S6NWR4SFLZkx846f372gIBd3DxMTk5YdOohIbEzMrMmT4uPiNGr1xhXLb/r4iEjFatULFC4sIoWdnJUJZ0+ZHOjv73X+3MxJE5WEY7osrV+flvXx8hKRpKSkdB/NwDfK1NS0edu2IrJq0cLEhIQ8+fPrKg6nZuCTGqhtt+6FijqJyN2AgE5fNV46a+aRvXv3b9++8NdfPevV3bJ6tYhYqFS58uT5gKWvX7168fTpC6dO7d2yZXD37n/OnSsi5hYWwyZOMjExMeTvwpC318A3/F2bPP2nUcq7F+jvLxn3pn2YFMEAAAB82ijBAQAAPjuOuXJ93b791jVrNq5YvuuvTbb29tGRkUq6sE6jxun+sJtbuXJdmjZRWVpq3py+HDBqlImJSZmKFe0dHCPCQo/s3et3/fqLp0/zFSzY6fvv1yxZ8vTRI8+6X06eO9fACCtWr1GtTp3zJ08e2bv3m46dylau3Gf4cK/z554+erTgl1+Wz5uXlJSkjo8XkYGjRyvnNL8bOOjSmTMatXrTyhVb163VJiaWqVDBMVeu0OfPkzPolGW6MaQ7wBB9hw+/evHig+C76/9Ytnn1qsSEBCVHOXjsOKXySY8BA30uX/bx8tq3devBHTvExEQ5Tps7X76ffv5ZmaRF+/Z/rVqZoNF4X7rUpWkTEfmmY8cb3t53/PzSDaCEy+sfmdzw5x/b16/rP3JUmy5d0n00A9+oZm08Vy5YEB8XJyKNW7ZUSoW8iyFPaiBLK6u5q1f/2Ov7QH//8NDQVQsXphhQtHjxUdOmu3h4fMDSc6dNTdFjbWMzcdZspdaHIX8Xhry9hr/hBm5yhrxpAAAASBcnoAEAwOdo2ISJY3799YuKFVWWli+ePbNQqdzLlRs2YeLUefPSvbffjz/2GDAgu62tytKyuIvL9IUL6zVpKiJZs2WbvWJF2cqVbbJkiY6Kqte06aKNm9r1+Na9XDkLlSo5OdnKyjrdyXUGjh5jZm4uIjMmTtAmJuZwdFy+fUebLl3yFiiQkJBgbm5esXr1OatWNfdsq4wv6eY288/lLh4eKkvL7La2zdp4/rZ0mXL4NKMKcaQbQ7oDdMzeXXY5u53dn9u2de7Vu2DRoiJibWNTsVr1pZu3tOrUSRmgUqnmrVn7w5ixLh4eFiqVmalpEWfnrn37rtmzN2+BAsqYAoULL1i3voSrq8rSMmfu3N369Rs2YaJNliwioklvN0q6ufUbMSKHo6OFSmXv4JA3f35DHs3ANypP/vxuZcsq7Sat3ll/w/AnNVye/PlX7do95pdfq9Wp45Azp4VKlc3WtmixYs3aeP66ZOm6/Qd0taE/eGkra2vnkiU79+q95fiJWg0aKJ2G/F0Y8vYa/oYbuMkZ8qYBAAAgXSb+4RGZHQMAAMB/wPRRo/Zs2SwiW44dL1CkSGaH81+1ff3638eP23n2XO68eTM7lkwQ9epVy5o1YmNiylSosOSvzZkdzqeJTQYAAPifQgkOAAAA/HtOHzmSM3fuzzD7HBEWplGrZ02epPyiXedevTM7ok8QmwwAAPA/iAQ0AAAA/iWXzpy+dOZ0/5EjMzuQTNCyZg1d9Y8a9erVqFcvc+P5JLHJAAAA/4NIQAMAAOBfUrlmrQtBdzM7isxh7+AQHhqaw8GhbpOmvYYMyexwPk1sMgAAwP8gakADAAAAAAAAAIzCNLMDAAAAAAAAAAB8mkhAAwAAAAAAAACMggQ0AAAAAAAAAMAoSEADAAAAAAAAAIyCBDQAAAAAAAAAwChIQAMAAAAAAAAAjIIENAAAAAAAAADAKEhAAwAAAAAAAACMggQ0AAAAAAAAAMAoSEADAAAAAAAAAIyCBDQAAAAAAAAAwChIQAMAAAAAAAAAjIIENAAAAAAAAADAKEhAAwAAAAAAAACMggQ0AAAAAAAAAMAoSEADAAAAAAAAAIyCBDQAAAAAAAAAwCjMMzsAAACA/56qzk6ZHQKATHAh6G5mhwAAAPAfwwloAAAAAAAAAIBRkIAGAAAAAAAAABgFCWgAAAAAAAAAgFGQgAYAAAAAAAAAGAUJaAAAAAAAAACAUZCABgAAAAAAAAAYBQloAAAAAAAAAIBRkIAGAAAAAAAAABgFCWgAAAAAAAAAgFGQgAYAAAAAAAAAGAUJaAAAAAAAAACAUZCABgAAAAAAAAAYBQloAAAAAAAAAIBRkIAGAAAAAAAAABgFCWgAAAAAAAAAgFGQgAYAAAAAAAAAGAUJaAAAAAAAAACAUZCABgAAQCYzMTFp27btrl277t69++TJE29v70WLFrm4uHzwhEuXLg1/hx49eojIzZs3x4wZ89Z7AwMDhw8fbvha69at003++PHjixcvTps2LX/+/B8c/Pt634ABAACAf5N5ZgcAAACAz5qJicmyZctatWq1bdu21atXx8bGOjs7d+/e/ciRI56enhcuXEj79p49e5YtW7Z///76nbNnz96wYYPSXrx4sZ+f37x585TLgICAtCccN27crVu33usRgoODf/jhBxGxsbFxd3fv0qVLp06dOnTokG7wGeIDAgYAAAD+NSSgAQAAkJm6du3aunXrfv36bdq0Sde5evXqAwcOjBgx4ptvvkn79jJlyqTu9Pf39/f3V9pxcXFPnz49deqUgfFs3LjRwJE6MTExZ8+eVdqHDx9esmTJli1bVq9eXa5cuejo6Ped7X19QMAAAADAv4YSHAAAAMhMvXr1unjxon72WUSio6MbN26syz6bm5uPHDny8uXLT5488fLy+vbbb5X+PXv2KGeNw8PD3d3d32tdrVY7YsSI27dvP3nyZPPmzTlz5lT69StaVK1add++fffu3QsJCTlw4EC1atUMmTkmJmbw4MGOjo4dOnRQeiwtLSdPnnzjxo1nz575+vqOHTvW3Pz1QZDbt2/37dt3zpw5gYGBwcHBU6ZMyZkz5/r16+/evXv9+vWOHTsqw3LmzLl48eJbt24pO9C7d2/dcvoB3759u3fv3lOmTLl58+b9+/c3btyYK1eu99oWAAAAIGORgAYAAECmsbW1dXFxOX36dOqPYmJidO1JkyYNGjRo1qxZ1atXX7Ro0fTp0zt37iwinTp18vHx2b59e/Hixd+3DEWrVq0cHBzatWvXq1evSpUqjRo1KsUAGxubTZs23b59u2HDhvXr17958+aWLVvs7OwMmTwgICAoKKh69erK5YwZMzp16jRu3LgqVapMmTKlV69ekyZNUj5KTEzs37//gQMHihcvPmnSpP79+2/evHnOnDnOzs4bN26cMWOGsuL8+fMrVarUs2fPGjVqzJkzZ+rUqU2bNk29bmJi4qBBg/z9/cuUKVO1atUvvvhixIgR77UtAAAAQMYiAQ0AAIBMo5zPDQkJ0fWYm5tn0WNmZpYtW7bvvvtu3rx5mzZtunv37sqVK//666/BgweLSGRkpFarVavVYWFhWq32vZaOjIwcOXKkj4/Pnj17Dh48WL58+RQDChQokC1bts2bNwcEBNy+fXvUqFFt27ZVq9UGzv/w4UPl6XLkyNGuXbsZM2bs2LEjODh4y5YtS5cu7datm0qlUkb6+voeOnQoOTl527ZtIuLl5eXl5aVcWllZFStWTERGjx7dqlWr8+fPBwUFrV+//saNG19++eVb1w0ICFi/fn1iYuLjx4+PHj1atmzZ99oWAAAAIGORgAYAAECmSUpKEhFdPQoR6dKlS4ieqlWruru7q1SqEydO6MacPXvWyckpS5YsH7P0pUuXdO3Q0NCsWbOmGBAUFBQYGLhs2bLBgweXKVNGq9WeO3cuLi7OwPnNzMwSExNFxM3Nzdzc3MvLS/eRj4+PjY2Nk5OTchkYGKg0oqKiROTOnTv6l9mzZxeR6Ojo3r17nzlzxs/P7/bt266urvb29m9d9+bNm7r2y5cvbW1tDQwYAAAAMAZ+hBAAAACZ5unTp0lJSYULF9b17Nu3z8/PT0Ry5cq1atUqEcmWLZuI7N69Ozk5WRljamoqIrlz57579+4HLx0bG6trJycnm5iYpBig1WqbNGkyaNCgrl27jh8//uHDh9OmTfvrr78MnL9YsWInT57Uxa9kkxXKLxPqUt4pTlXHx8frX5qYmFhYWGzbts3c3HzUqFF37txJTEzcsGHDu9ZNkSJP/VwAAADAv4kENAAAADJNTEyMt7d3y5Ytp0+frpwXfv78+fPnz0WkUKFCypjIyEgR6d27d4oqz48ePTJ2eKGhoePHjx8/fnzJkiUHDBiwePHi27dv+/j4pHtjlSpV8uTJo5zaVuJX0tAKpa30G6J8+fKlS5du2rTphQsXlB4HB4f79++/7+MAAAAA/z5KcAAAACAzLVy4sEiRIj/88EOKfl3x4hs3bqjV6pw5c955IyIiIiwsTHdw2EiHfAsXLtykSROlffv27aFDh2q1WhcXl3RvtLOzmzlz5oMHD3bt2qXEn5iYWLlyZd2AihUrRkZGGn5829LSUkTCw8N1txcuXJijzQAAAPhP4AQ0AAAAMtPOnTurVKkyZsyYChUq7Ny5Mzw8PE+ePE2aNGnUqNHOnTu9vLzUavXq1atHjRoVFhZ29erVggULTp8+/fHjx+3btxeRly9fenh4uLu7P3r0SJeizRAFChRYvXr1xIkTlV8I9PT0TEpKunz5cuqRWbJkqVGjhohYWFiULl26d+/eWbJkad26tUajEZGIiIj169cPGTIkODjY19e3Ro0aPXv2nDdvnnLi2xA3b95Uq9W9e/f+9ddfXV1dx48ff+LEiWLFiuXMmfPFixcZ+MgAAABAhiMBDQAAgEw2atSoU6dO9ezZc/r06VmzZg0LC/Py8mrTps3x48eVAWPHjn316tWkSZNy5879/PnzAwcOTJkyRflo6dKlS5YsOXDgQNeuXXXjM8S5c+cGDBjQv3//0aNHJyYm+vv7d+nSJSgoKPXIokWL7t69W0S0Wu3Tp0+PHj06c+bMhw8f6gaMHDkyOjp6xowZjo6Ojx49mjFjxpw5cwyPJDQ0tH///uPHj2/fvr23t3f//v3z5s27YsWKXbt2VatW7eOfFAAAADAeE//wiMyOAQAA4D+mqrNTZocAIBNcCPrw370EAAD4PFEDGgAAdo/HaAAAIABJREFUAAAAAABgFCSgAQAAAAAAAABGQQIaAAAAAAAAAGAUJKABAAAAAAAAAEZBAhoAAAAAAAAAYBQkoAEAAAAAAAAARkECGgAAAAAAAABgFCSgAQAAAAAAAABGQQIaAAAAAAAAAGAUJKABAAAAAAAAAEZBAhoAAAAAAAAAYBQkoAEAAAAAAAAARkECGgAAAAAAAABgFCSgAQAAAAAAAABGQQIaAAAAAAAAAGAUJKABAAAAAAAAAEZBAhoAAAAAAAAAYBQkoAEAAAAAAAAARkECGgAAAAAAAABgFCb+4RGZHQMAAAAAAAAA4BPECWgAAAAAAAAAgFGQgAYAAAAAAAAAGAUJaAAAAAAAAACAUZCABgAAAAAAAAAYBQloAAAAAAAAAIBRkIAGAAAAAAAAABgFCWgAAAAAAAAAgFGQgAYAAAAAAAAAGAUJaAAAAAAA/o+9e4+Lusr/B34+M8MwDnJRQa4iIBcBiUwjUgqqbVtjNcVfaJJKq90z3U3DC6AJw+Kl1u2xZluW4i1hQrzrqiV+wVulqCAqqFwUwUC5OjADzOf3x2k/e/rMhdEkwl7PP3rAh/M5533e54zk8fM5BwAAALoFFqABAAAAAAAAAAAAoFtgARoAAAAAAAAAAAAAugUWoAEAAAAAAAAAAACgW2ABGgAAAAAAAAAAAAC6BRagAQAAAAAAAAAAAKBbYAEaAAAAAAAAAAAAALoFFqABAAAAAAAAAAAAoFtgARoAAAAAAAAAAAAAugUWoAEAAAAAAAAAAACgW2ABGgAAAAAAAAAAAAC6BcfzfE/HAAAAAAAAAAAAAAAPIDwBDQAAAAAAAAAAAADdAgvQAAAAAAAAAAAAANAtsAANAAAAAAAAAAAAAN0CC9AAAAAAAAAAAAAA0C2wAA0AAAAAAAAAAAAA3QIL0AAAAAAAAAAAAADQLbAADQAAAAAAAAAAAADdAgvQAAAAAAAAAAAAANAtsAANAAAAAAAAAAAAAN0CC9AAAAAAAAAAAAAA0C2wAA0AAAAAAAAAAAAA3QIL0AAAAAAAAAAAAADQLbAADQAAAAAAAAAAAADdAgvQAAAAAAAAAAAAANAtsAANAAAAAAAAAAAAAN1C1tMBAAAAgFhbW1tra6tWq+3o6NDr9TzP93REAAAAv1Ecx0kkEplMZm1trVQqra2tezoiAAAA+BkOf6cFAAD4jeB5vqmpqbm5WSqV0r9CS6VSmUzGcVxPhwYAAPAbxfN8R0dHZ2enVqvVaDSdnZ12dna2trb47QkAAPAbgQVoAACA3wSNRnP79m1ra2sHBwcrK6ueDgcAAKBXam9vb2ho0Ol0/fr1UyqVPR0OAAAAYAEaAADgN6ChoeHOnTtOTk5yubynYwEAAOj1tFptXV2djY2Ng4NDT8cCAADwe4cFaAAAgB5WX1+v1WqdnJykUmlPxwIAAPCA0Ov1tbW1crm8X79+PR0LAADA7xoWoAEAAHpSfX29Tqdzdnbu6UAAAAAeNDzP//jjj3R7q56OBQAA4PdL0tMBAAAA/H7duXNHo9E4OTn1dCAAAAAPII7jnJyc6G/bno4FAADg9wsL0AAAAD2D5/mGhgZHR0eJBL+OAQAAuoVEInF0dLx9+zbe/QUAAOgp+BsvAABAz2hqarK2tra2tu7pQAAAAB5k9Ldtc3NzTwcCAADwO4UFaAAAgJ7R3Nxsb2/f01EAAAA8+BwcHJqamno6CgAAgN8pLEADAAD0gLa2NqlUamVl1dOBAAAAPPisrKykUqlWq+3pQAAAAH6PsAANAADQA1pbW5VKZU9HAQAA8HuhVCpxFCEAAECPwAI0AABAD9Bqtdj9GQAA4FdjbW2NJ6ABAAB6BBagAQAAekBHR4dUKu3pKAAAAH4vpFJpR0dHT0cBAADwe4QFaAAAgB6g1+tlMllPRwEAAPB7IZPJ9Hp9T0cBAADwe4QFaAAAgB7A8zzHcT0dBQAAwO8Fx3E8z/d0FAAAAL9HWIAGAAAAAAAAAAAAgG6BBWgAAAAAAAAAAAAA6BbYfRIAAKDXoO8O07072K+Fbyl2cw+jxdgajN5ltF1RMTM131VI5usXXe8yZlMFzNxoKs4uQzVTv+GPRPEbHUTzwRgGZiZmUzVYMijmvxbdbuEsMt+u0eZM3W6m/F1F3k2E3XWMds2Q+YxZmCsz089UzYbFfuGfFebLWPhRMpqlLj87dzszu/yUXb9+nRDi4eEhaqiurk6r1To6OlpbWxveBQAAAACm4AloAACA3uH1119/7LHHEhISeJ6/fPmyh4fHoEGDKisreZ5fv379ww8/PHDgQCcnp4ceemjt2rX0nKXGxsYBAwYMGDCgra2NENLW1ka/bWxs5Hne09OTfuvo6Ojn53fgwAHDRvV6/aeffjps2DAnJydHR0dfX9+0tLS2tjZ6u4eHx9WrVwkhPM9HREQ88sgj+fn5PM+bCYm9ked58/UP+C8XF5clS5bwPP/555/7+Pg4OjoOHDhw/Pjx1dXVbLRGO0XjMayNll+3bl1oaCht3cfHZ/78+c3NzbS2ffv20fKFhYWW1+/o6DhkyJD333+/qalJ+JHQX09PT1dX19WrV9MfRUREDB8+PDc3l35rJhjzI6LVaml4ptJu/qdskNevX/f19R0yZEhJSYlh8Hc7Ipa0azQhbA0BAQGOjo4DGMItZiYhG3mXQd4vqampTz311N/+9jee5z/77LPQ0NA//OEPPM9fuHDB29vb19fX1FQUMTX3TE0eo9PPsNru+7NCVMbX13fLli3COq/lH6WhQ4eaGesuu8/OTFMf1c8++8z8ZDh9+vRf/vKX2bNn8zxfXFzs6+vr5eVFu5OdnT179uyVK1ea+ucEAAAAADAKT0ADAAD0DklJSaNGjfrqq69effVVlUrl4eERHR09aNCgxMTErKwsW1vbrVu3chz3/vvvL1u2rKSkZNmyZV3W2adPn//7v/+7evVqfHz8q6++euXKFZnsf/9vwPN8QkLCjh07HBwc1Gq1Vqtdv359ZWXlnTt32AcAhbUY4QvLQzJfPw3Px8eHFj5z5szixYsJIWvXri0uLraxsbG3t7ekU1Kp1LA2nueTkpKysrLs7OyysrKsrKy2bt1qZWUlPD65bdu2/v37y+Xy7OzsYcOGCU9Kmq9fKpXOmzcvJyenqKhoz549hs9Xtre3r1ix4rnnnvP19RWNr6lguhyRlpYWuVxuPu2WDArP83PnznV0dJw0aZKfn5+p3Fo+IjzPd9muqYQILl68SAg5cOBAYmKinZ3doUOHDMsYTkKBhdPmvhg1apRarT5x4gQhJD8/v7q6ura2trGx8dixY4MHD/by8qIDyqbR6OPepuaemVwZnX4SiYSttvv+rBDKHDlypKysLC4ubs6cOU888cSgQYPu6qNkfqy77L4wM03VX1hY2OWM/fjjj6VS6euvv37lypWJEyc2Nzf369eP/jQuLm7NmjWXL1+eM2eOjY1Nl0kDAAAAAAoL0AAAAL2Du7v7G2+8sXPnzrlz5xYWFspksjlz5pSUlGzYsIHjuCNHjri6uhJCdu/eHRYW9tVXX02fPp2+Qk6ZeWQvKiqqs7Ozo6Ojurp60KBBwvWLFy9mZmZyHLd7924nJydCyHPPPSd6vd2wWvMhBQUF3VX9rJs3b9rb2/fp0+dPf/rT+PHjidl9BthOsXkQXLlyJSMjg8bp4uJCCImIiBDq1Gg0Bw8e7OjokEql27ZtS05OFrVltH6O4wYPHrxx48awsLArV64cOnTo2WefFbUrk8lsbGzeeeedPXv2WBhMlxnjed582mUymSWDcujQoYsXL9rZ2c2aNctUYlldjoglk8FoQli0g6IrxOwkvKsg76PHHnvs5s2bhJBbt2599913Uqn0oYceOnr06LFjxyQSyejRoy2pxMzcM58rw+n3xz/+Ufhpt/5ZwcbwzDPPuLm5tba2Xrp0ycPD464+SnTBWlShEFKXU6XLmC2ZDPQB/KioqNbW1g8//PBf//oXfSqcEGJjYxMYGHjr1q0ffvjhySef7Na9XAAAAAAeJNiCAwAAoHfgOO7dd99tbGw8fvy4jY3N/PnzbW1tT5w44eHhMXLkSFdXV47jOI5zdnZ+7LHHBg0adPLkSUuq7ezs/PLLL5VKpbOzs2ih9rvvvqOVOzk5cf/FFmhtbQ0LC3N0dHR0dLxw4cL169d5nrcwJJ7nLazfyclpxIgRHMc9/fTTYWFhdXV1Dz/88IYNGzo7O++qU2xttHfu7u7Dhw93cXER7Q/L8/y+ffvc3NxGjhxpY2PT0dFx8uRJdl3MTNIIIdbW1uHh4S4uLsKGAyyZTNa/f/8bN2589tlnbKpNBWPJiHAcZz7tlgxKW1vbwoULb9y4MXfuXJlMZnRx7W5HxJJ2jSZExMxKn+EkFBWwfNr8ckqlMiQkxNPTU61Wu7i4eHh4KBSKvLy848ePV1VVPfHEE2zMwlQUMTP3LMmVqenXrX9WsL755psbN27U19cPHTrUfHeM1mlmrM1031RKRfV3ORnoCnX//v2trKzs7OzGjBlD/6VH4OPjo1Qq6a4vAAAAAGAhLEADAAD0GjY2Nn/9619tbW05jps2bRohRCqV6vV60TJKR0cHz/OGL8gbam1tDQ8PX7BgQUdHx7Zt20Q/lUgkhpWz+vTp891339XV1dXV1QUGBtL1I8tDsrD+2tra06dPE0LkcnlGRsbGjRv79++/aNGiqKio27dvW94pobZTp04RQvR6PfsIrUqlohvjTpkyhRDy9ddfcxwXHR39/PPPOzo6svWYTxrL1FLakiVLmpqali1bptPp6BXzwViSMfNpt2RQFArFnDlzvL29N27caKpHdzsiFk4Gw4RYzugkZFlZWVkybe6X0aNH29vb79+/39HR8Zlnnrlx48a3335LN+kOCAhgYxbSyKIbDZuae+RuciWaft36Z4VQ5tFHH508eXLfvn3/+c9/uru7E0LMdMfyj5LAVPfZlAodN6y/yxnb1NSkVCrt7OzIfxMoSqOtrS0hpKGhwZJoAQAAAIDCAjQAAECvwXGcu7s7PWiL7jscHh5eVVV16tSpa9eu0Ud3q6qqfvjhh2vXrj322GNKpdLa2loul9fX1xNCbt++LZfLra2tlUolrbBPnz5Hjx51d3dXKBSVlZWi5h599NFr1659//33VVVV/M+xIYkiNB8SW/Ie6ieEREZG5ufnh4aGajQatVptmCUznWJXlEaOHHn9+vVTp07V1NQQQhYtWrR169bhw4fzPH/79u3Dhw9fvHhxwYIFn376aXFx8fbt2zs6OixJGiFEq9WeOHGipqYmODjY8KeEEG9v7zlz5vTv37+mpobu0msqGPLzh6DNZMx82i0clP/3//5fc3NzQUEBPcfPaPB3NSIWtmuYkLtiyU4IoiC76RA5juNGjRp1586dwsLC5ubmcePGabXa2tpaFxeX0aNHs3Gairm+vv7bb781NfeIBbkyNf269c8Kocz3339fV1d35cqVyZMnd9kdS+oUMdN9w5Saqt/MjB00aFBtbS19jt7oJKmqqtLr9YMHD7YkWgAAAACgsAANAADQW3EcN2TIkJkzZyoUirFjx37zzTeHDx8eO3astbX19OnT/f39ZTLZH//4xwEDBsyaNev48ePvv/++o6Pjc889xz7wKJfLFy5cKJfLk5KS9Ho9W39AQEBcXJxQ+Z49e6Kjo//85z/n5+eLwmC/NR/SPdRP/rstRkFBwTvvvPPXv/41Nzf3ypUrjY2Nzs7ORjNjplPkv+tKAQEBsbGxtPXDhw/v2rVryZIlZWVlhJBdu3YNHjx41KhRtbW1P/7446BBg6RS6ZEjR7qsn+f5GzduvPLKKxqNxsfHx3ADaCFjs2bN6t+/v0ajqaqqMh+MhRkzn3YLB0Uul//tb3/r27fv0qVLjUZ+tyNiYbuGCblbZtagz5w5Yxhk9+3eGx4efv369cbGxuvXr48YMSIiIqK9vf3GjRvC/hsswyXOnTt3mp97ZnJlfvp1658VbHj0v1SX3bGkTlH95qeK6F+wRPV3OWMVCoVcLpfJZMIzzqIxunLlSkNDg7e3NzaABgAAALAcFqABAAB6MY7jFi9enJycTAiZPHlybGxsR0fHggULUlNT6QLQP/7xj1GjRh07dmzcuHHffvvt448//tFHH4mexIyNjXVwcGhoaNi8ebOo8vT09Llz5+p0usmTJ0+fPr2kpCQyMjIsLMxUMPQLMyGJbjFfP32j39HR0cXFZcqUKU5OTg0NDVu3bp00aVJTU9PkyZPHjRtnKhLDTolqI4SsWLHinXfeaW5ufvHFF//yl7/U19f369eP47ht27ZxHDdp0iRa1aRJk5ycnLKzs7usPywsLDQ09MSJE+PHj8/KyjKzRCWVSj/55BMrKyvhitFgyM+XVs2MSJczwZJB4Thu6tSper2+oqJi165dhmHf7YhY2K7RhNwbw5xbPm3uC1tbWz8/P1tb26CgIGtr6yeffFKj0TQ2Nj7xxBPs1hBCGl966SX29i7nHjGRK8PpZ/iAcPf9WSFqyPLuWFinJd0XfbqN1m/JZJgwYUJgYOCOHTsyMzM9PDx27dp19uzZd955x9vbu7i4uLq6urW1NTQ01JJQAQAAAIASnyoOAAAAv4KKiop7fomb53nDVTYz21aIftcLP6XX6bfs12ZqNnW70RpMhWT0RlP1i35kqrDRyg2/tqQVMzGLfmSmfsMmjObZfCrM99FUAfMbmFgyKBbmkFg2Ipa3a/itYSVGO9tlqi0M8n4RmmPz0+WEZ2/vcu4Ri6efmfAMi/2SPyvMXL+rj5LRuwzLmB9fUdrvajJcuXJl+vTp1tbWhw4dEv1o+fLl33///dNPP/3WW28R6J1+yS9fAAAAuGdYgAYAAOgB+DswAMBvk9F/5OvyR9Ar4JcvAABAj8AWHAAAAAAAAD8xs8SM1WcAAACAe4AFaAAAAAAAAAAAAADoFrKuiwAAAMBvhuH+reZ30+qRPXABAAAAAAAAKDwBDQAA0DvwPP/ZZ5/5+Pg4OjoOHDhw/PjxN27c4Hne09PTw8OjrKxs6NChjo6OAxiurq6rV6+mZYSLLi4uS5Ys6eneAAAAAAAAwO8CnoAGAADoHc6cObN48WJCyNq1a4uLi21sbOzt7dkCFy9eJIQcOHAgMTHRzs7u0KFD7E/79Onzf//3fz4+PgRPQAMAAAAAAMCvBQvQAAAAvcPNmzft7e379Onzpz/9afz48ZbcYskeHQAAAAAAAADdB1twAAAA9A5PP/10WFhYXV3dww8/vGHDhs7OTlEBjuPMPNrc2toaFhbm5OQ0YsSIbo4UAAAAAAAA4CdYgAYAAOgd5HJ5RkbGxo0b+/fvv2jRoqioqPr6estv79Onz3fffVdbW3v69OnuCxIAAAAAAACAhQVoAACA3iQyMjI/Pz80NFSj0ajV6ru6F1s/AwAAAAAAwK8Me0ADAAD0DmfOnPn888+trKzGjh175cqV9vZ2Z2fne6iH53msRAMAAAAAAMCvA09AAwAA9A5OTk4NDQ1bt26dNGlSU1PT5MmTx40bZ/ntra2tjz76qKOjo4uLy0svvdR9cQIAAAAAAAAIsAANAADQO7i7u2/atKm6urq2traqqio1NVUikXAcV1lZef36dR8fH1rsueee++6777755hvhMWda5tatW3V1dXV1dTU1NV999VXP9QPggZWUlKTT6Xiej4uLq62tJYQkJia2t7ffbT08z6enp2s0mm6IkRBCtB18cxv/y+tZtK1J16GP+dftI5e0hJCV+1tatPeh2h60adOmy5cvs1eMjoVWq21pafklDWVlZRUWFt7VLUVFRWq1urCwcPr06enp6cnJyXfu3BF+2tLSEhERwR5OK4r8l0+qI0eOHDhwgH6dlpam1WpFBfLy8srKyu62WlG/Fi1atH///nsOEgAAAH6bsAUHAABAr2F06wzDi5ZcAYD7bsSIEWfPnh0+fLhcLj927Ni4ceN4nm9ra0tKSlIoFP7+/lOmTCGEFBcXZ2ZmdnR0TJ069dy5cxUVFa2trW1tbSqVqrGxMSUlxd3d/eTJkzz/02Juq45PzGmykXOt7bwqxnZdfusfgqyHDJR9sKM54Xmbr39ovVDdOcRJ9pcnlISQzSc035e12ym4Dj1Jm2hXeL194zFNeyeZ+aSyoFJ3obrTx1E6wsvqYnXHpLA+m09oymo7NTrS2s7/Y7JdcxufmNPcx4oEuspkUkILP+xp9dXJVglH0l+0v9nU+d3V9heGKwgh1+s73R0kR0t1T/hb0VAnP9bnqxOaVyNtCCFqtbqgoMDW1rajoyMxMVGtVpeUlHh5eU2cOFGlUtnY2LS2tiYmJur1+pSUFBsbG4lE8vbbb6tUKpqooKCg7OxsiUSyePHiwsLCr7/+mn4tkUgMK29paRFulMlktKFhw4YJNeh0utTUVKHR7du3CzlPS0tjh0PIOSGkoaGBHQu2WHt7e2lpaUxMjHBx2rRpAQEBhJCzZ88K0W7YsCEyMtLb23vZsmVz5swhhCxdupR21sfHZ//+/du2bdNqtWlpabRFtom2tjYhftprQggNLzo6+sUXXzx37tzu3bsnTZpEf7Rnz57Y2Nj8/PzIyEhR5PX19ampqcK3WVlZNEUvvPCChQk3ilbFzt7q6moHBwehuSNHjmzZskWtVrNJ0Ol0QqP04yDqFyEkJSUlJCTE3d39/nwsAQAA4DcAC9AAAAAAAPfBqFGjMjMzpVLpxIkTCwsLn3jiiQEDBmRkZMTHxwcEBAjrjEFBQUuWLKmpqcnIyPDx8ZFKpUlJSatWrWpoaNi8efPUqVNDQ0OPHz8uVPvv3JaYRxSjfOUHzmvX5Wt4nvD/RQs49OHo6jMhhOf5x7ytJj/WZ+nO5ovV7cPcZctetLvR0Pn5EY2vs5SW/PA/Lacr2h8aZEUIkUpI2kTb9L3N9Xf0X+ZrXo9UBrnJknKah7r+VPifB1tefrxP6CArjiOu9tIXhktpQ0XX2x/ysBrtJ7+j+ykMj37SqoZOIYwRI0bExMQsX76cPlNsb28fFxf36aefjh07Niws7PDhw1u2bNHpdNHR0Y8//rher1+zZo2QqMbGxtjY2GHDhhFCjh07Rr8W/iFNVPl//vMf4UY/Pz+hIaGGdevWsY0qlUoh5/X19YGBgcJwuLu7C1ndtGkTOxZssb59+549ezY4OJi9OH/+fDZaGidrw4YNQmfpam9ycjIddwcHB9HEsLe3F/Wa1dHRcfjw4aeeekq4cv78+aSkpPT09CeffFIUueGkoilavXq1hQk3g5299IqoOVESDD8OLNrin//852PHjtHFaAAAAHgwYAEaAAAAAOA+GDhw4K1bt44dO/byyy+fO3fuxIkTo0ePzs7O3r9//6FDh+zt7fV6vUQiOX/+/O7duxUKBd0PISoqihBCHx29ceNGcHAwISQkJESo9kpt5zvPyAkhEX7y/YXaAJefloCF/S5G+crZMLwcpYSQ0EFW5XUd2nY+p6CtjxVHl4lpyagAa49+0kBX2ekK3bPB1oSQfkrJ7Tv68rrOXWda9xVyDkpOr/+pcHyEcl5W88ODZG8/05dt5Y6Od7EXPx7Lkf8tWXp6ehJChg0bVllZSQgJCwsjhJSXl7/66quEkPDw8G+++Uav18fHxxNCJBJJZWWlkKjJkycvWbIkJCRkxowZU6ZMSU5ODgkJmTlzptHK2Rv1ej1tSLhrxowZokZDQ0PZnFdVVe3Zs0cYDoFoLM6fPy8Ue+6559zc3Pz9/dmL9K64uLikpCTa7v9ydecOIaSsrCw+Pp7jOPpYMV0+pjHQBWh2Yrz55puGvab27NlTUVHx9NNPh4aG0iu3b98uKChYvXr1d999197eLorccFLRFN1Vwim9Xk8X6PV6Pb3CZtJo3kRJEA2WqSes8dYOAADAAwZ7QAMAAAAA3B8ymaypqcne3t7R0fGbb74ZPny4r6/vyJEj33777TfffJMut23dunXevHkRERH0FisrK+F2Z2fnS5cuEULKy8uFNTjfgdKTV3WEkLwSbaCr1NqKq9foCSHfXvhpE96+ip/9L/2pinZCyJlr7V6Oso3HW5PH2kYN/WmF2saa4zjOSkq0HT8tXltJ/7fSF+AiCx8if++5vn/9Y1+J5KfC9n2kn023v1avr23Ws614O8rK636243CHnlhJ/1fgzJkzhJCioiK6WKxUKgkh3t7ep06dIoQcP37c39/f09OTfqvT6dhE2dvbr1q1qqqqqq6uztbWVvjaaOWiDCuVSo7j7OzshLtEjYpynpmZyQ6H8AQ0OxaiYlZWVnQHZNG9hBA2WrlcTp8LzsvLI4TQzvI8r9PphBjYlVZ2YhjtNRUdHT137twRI0YIV3bv3v3RRx/Nnj177ty5ubm5oshF3wpjcVcJJ4R4eHh8//339OuysjJra2tRJo3mTZQEw48Diz4lvXfv3vDwcAIAAAAPEDwBDQAAAABwf/j7+5eWlhJCIiIivv32Wysrq6lTp6pUqqNHjxJCEhISCCFRUVHLly93dXVVKBSEEI4RFxenUqmcnZ3Z8+Vei+yblNN0qFh7R8unTLCtatCn7Gz2dtIOHyxewaQu/9i5fF8LISTARfZMoPyDnc3uDhKFFScUHupm9WmuJsBFx/3cjCeUSdubj1zS8TzxdZbSwpnftV6obtd18I59JTWNnd+XtY99WEEICfGQ7SxoVcq5zO/arGVEKuFatPwzQdZCGGVlZR9//DEhxNfX98yZM7SJ+Ph4lUqVm5ur0WgWLlzY2dmZmpp65MiRtra2hIQEmiie5/38/EpLS3U6naOjY05OTklJiU6nGzBggNHKPTw8hBt9fHxo2OxdokZ37twpdJkQEhkZKQyHr6/vvn376CL1yy+/nJqaKoyFqNi6dev8/PzYizQwtt3Ro0evXLnS09OTPgs8ffp0obMRqGkEAAAgAElEQVTBwcFCAAJ2YuTk5NAMsL2m5Q1vLCoqmjZtGp11ycnJf/3rX9lZJJpUQt+nTZuWmppqPuFXr15VKpUuLi6EkCFDhtjb27///vttbW0TJ07kDNBgaHMuLi6NjY2EEFESDD8OQr/27t1bXl7e0tISHh6u0+lqampouwAAAPAA4NijNgAAAODXUVFRMXjw4J6OAgAeNJtPaILdZA97yrsu+ovtKGijBxJSO8+0jXv4p2/VavXQoUNFmzDcL91aObA+/PDDd955hz7sfFd4nl+2bNm7775Ln7b+1drtEn75AgAA9AgsQAMAAPQA/B0YALrD2WvtznYSF3tp10W7U1FR0cCBAwcOHNjrKof7JS8v77HHHpPLf41/C7EcfvkCAAD0CCxAAwAA9AD8HRgAAOBXhl++AAAAPQKHEAIAAAAAAPx+1dXVFRYW9nQUAAAA8MDCAjQAAAAAwH2gVqt/+SpeXl5eWVmZ5eV5nk9PT9doNOxFrVbb0tJiqvyCBQuOHz9uSeUNDQ2LFi1avHjxxo0bzdR5z0TBp6Wl3d/6zTOa6rvKj1FCou52KO+N0QnAsiSMhoaGy5cv06+LioqmT5+enp6enJzMHob5y23atOny5cuWxNNlpwAAAKB3kfV0AAAAAAAADwKe57Oysg4cOKDRaBITE9VqdUlJiZeX18SJE1UqlY2NTWtra2Ji4uLFi9PS0goKCjIzM9PT09esWePh4fH9999LJJLFixdXV1c7ODhkZWVVVFS0tra2tbWpVKra2tr09HSpVFpQUHDo0CHaXENDQ0pKiru7+8mTJ3meLy4uzszM7OjomDp1ant7e2lpaUxMjHBx2rRpAQEBhJDKykofH5/w8PDW1lY2qu3bt5eUlHh7e//hD384derU888/TwjZvXv3xIkThw8fTggpKiqidba1taWmpopu9PLyeuGFF1QqlUKh8Pf3nzJlCiGEDencuXNsjxobG9ngCSFXr1718vIyFVVcXJyoQi8vr5SUFBsbG4lEMmfOHOHrt99+WwgjKCgoOzubJrawsPDrr7+mX0skEkJITU2NYarN58fLy0sul5eXlzc1NfXr108mk9XU1ERFRXl4eGRlZbHJnzBhAh1Kw3qE5oQFd8OUGpYxHErRBGhubhY6XlhY+Pe//72zs3Pp0qXBwcEODg5tbW1GU0RHSjSNo6OjX3zxxXPnzu3atSs6OlooLJPJaBKGDRsmJFan05kJnh0ynud5nqdpOXPmjFCDRqNJTU2lTYwZMyY1NZWdGAAAAPAAkC5ZsqSnYwAAAPjdaWxsdHBw6OkoAOB+On/+vLOz88yZM0+cOOHs7FxTU9PR0TFz5sy1a9dGRUVNmjSJEJKfn29lZTVkyJCDBw8SQiIiInbu3EkIGTNmTGxsLMdxxcXFTk5OdXV1LS0tCQkJhYWFQ4cO3bhx45QpUyZPnnzo0KGYmBja3Nq1a8eOHTt+/Pjs7Ozx48e7ublFRUUFBQVlZmZWV1fn5+cHBAQMHTqUXty6dWtERAQhJCcnJz8/38fHZ9euXaKoaLR9+/b18/OjTTg6On700UeDBw92dnZWq9W0zpycHKM3fv755zExMRMnTty1a9eTTz5JCHFychJC6tevH9ujzZs3s8HL5fItW7bExMRs2rTJaOU0HrbCkpKSiIiIl156adSoUevXrxe+Xrt2rRDGrVu3hMTm5OTQr+nqMx0vw1Tv27fPfH6Ki4vb2trmz5+/cePGsWPHTps2LSMjIzY21jD5N2/edHJy2rlzp6geobnAwECFQkEI+fzzz7ssI/RdGErRBFi/fr3QcWdnZ1dX1wsXLjg6Oup0Oicnpz179hhNER2p27dv//jjj4GBgYSQH3/8sa6uLiAgICsra+TIkbt27RIKDxgwgCZh+/btQmINpzebz0GDBgmZsbOz8/DwqKmpcXJyOnbsmFADO3NKSkpEE+P+fkjxyxcAAKBHYAsOAACA3oF9LbqlpYW+y/zLq83Kyuq+rT/NVC68pW75rgWmbrHkhW5apjv2ELjv1Gp1UVER/bqbXuE3nDzmd2xg34XvMod3NaMsmcb3MQndOtupIUOGEEKGDRtWWVlJCAkLCyOElJeXjxgxghASHh5eWloaGRl59OhRrVY7ZMiQqqoqhUIxZcqUtWvXfvHFF2xVUVFRhBAHB4f6+vra2lofHx9CiKenp1Dgxo0bwcHBhJCQkBBCyPnz55cvX56VlaXRaEaPHj1mzBh/f3/2Ir0rPDz82WefDQkJEUUlRMtyc3NbtWpVbm5uRkaGUKepGysrK/fv37969Wp7e3u9Xi8KSdQjUfA8z9OVQfNRsRWWlZWNHDmSECKRSNiv2TAmT54sJNZokg1TbUl+6PrvgAEDHn30UUIIx3FGk08LG9bDNmd5GbYJ+miwKIdsx5977rkDBw7k5eXRegghplJER0pkz549q1atioiICA0NFRWmSWCTaT54wxlIsTWwTVy/fp3tFAAAADwYsAUHAABA78C+Fr179276LjP7znVoaKjwDnhbW5vRt5vp29ZarXbp0qX0XWwfH5/9+/dv27ZNq9WqVCqtVsu+TN3Z2cm+PF5cXGym2gULFog2FtBoNBUVFULlLS0tQrQhISH0LXWe59kA2DL0dW/h7fvS0tKSkhLDWwxf6KZPOJ49e1Z4456WKSkpoY2yrdDg1Wp1WVmZmdfqv/jiixUrVhBC5s2bR79Yv359ZGSkt7f3smXL5syZc+HCBQtzPnv2bDaroiTTkT18+HBNTY1UKnVwcGBHmd1SgHbT6H4IQtLUavWlS5dE2yPQJgx3bBBlxui78MIosCVjYmKEt/tFM0qtVrP7G4gmGI1EtEdBQ0ODsN3EwYMH6diZTwI71hs2bGDHhRBidLYb7mwg+uAIz8nelaKiokceeaSoqGjixIm3bt1SKpWEEG9v71OnToWFhR0/ftzf3/+hhx7atWsXfaD1n//856hRo2xtbVetWrV06dK6ujqhKisrK+FrV1fX4uLikJCQyspKnuc5jiOEODs7X7p0KTg4uLy8nBCSmZn5wQcfFBQU7Nixw8rKSqvVii7Squi9hlERQmi0LJ1OZ21tPWvWrISEhJEjR9I6Td3o6+sbFBQ0evRovV5Ps7d161a2dbZHouCrqqrc3Ny6jIqt0NPT89SpU+Hh4Tqdjv2aDYPjOCGxAwYMEL52dHRku8kGJjATCS0vl8s5jqMfDaPJN1UPvV0YCAvLiJJpmENR/jdt2mRlZUWfniaEmEqR4TznOI7+rqGts4Wzs7OVSiXHcXZ2dkIyTQVPiWag8CcJO+fZJv71r38JnWK7DwAAAL0aFqABAAB6k46OjsOHD0dFRdEHOTMyMuLj4wMCAtLS0l566aUlS5bU1NRkZGTY29vHxsYOGzaMELJ+/XqhDK0kIyMjOjr68ccfpwsKEokkOTl51apVDQ0NW7duHTt2bFhY2OHDh7ds2dLa2ir61ky1Li4udXV1J0+epC8437hx46GHHrp27ZpQ+ebNm4Vbbt++ffbsWfqkGxsAW8bPz8/e3p4upBJCcnNzjd5Cf3r8+HEam7BmcezYMSFa6siRI7SGgwcPioLneV6hUMybN++tt9565ZVXHn300eTk5KVLlwopDQ0NPX/+fGtrK/s8Js8QAugy55999pmZJCuVSp1Ot3v37pUrV6rVatEoNzY2irq5bt060e1s0niep9+uXr1aqIQ+RRsYGCj0rm/fvoaZ2bx589SpU0NDQ9kD2YRRYEtu2LDB1IwihEil0qSkJKMTTCqV0nSxF+vr69944w0/P79p06YJ7ZpPAjvW/M+ZiY1O1KCgIMMPzr2tfHEcd/Xq1Y8//pjn+SFDhhQUFHAcx3FcfHy8SqXKzc3VaDSLFi3iOK62tjY6OtrJyamgoCAhISEnJ6e0tFSn0w0YMIA2zf1cXFxcamqqs7NzU1OT0NzLL79ML9KT4iIjI5cvX+7q6qpQKHx9fdetW+fn58deZOMURbVw4cKdO3fSpn/88cfTp0//6U9/IoTk5+fn5ub26dMnIiKC1unv7z99+vS0tDTRjRzHTZs2LTU19ejRo4SQhIQEQkhUVBTbuqhHKpVKCH7fvn3jx483ExXFVjh9+vTU1NQjR460tbW9//77wtcJCQkqlero0aM8z/v5+dHEOjo65uTklJSU0CQLeTBMtcBoJCy2EqPJp8VMpYudOabaYsuwfac/Ek2AqVOnCh1PSEiwtbUdOHCg0EE2XUKKhJEynMlC68Kw8jzv4+NDr7PJNJMow8zs3bvXzc2N7ogizHk28pkzZ7ITAwAAAB4MHM52AAAA+PVVVFQMHjz4rm4pLCxcuXLlsGHDnnrqqREjRmzatCk8PPzzzz93c3OTyWSEkCeffHLfvn0KheLWrVvvvfdecnJySEjIjBkzEhIShDJvvfWWRCJZsGDBBx98IJfLeZ5Xq9W+vr7Dhw+nz/P++9//VqlUUqmUPpTa0dHBfvv++++bqfbMmTPl5eXl5eVubm50V1Z/f3+28k8//VS4ZdSoUeXl5RMmTBAFwJZxdHT09vZ+7LHHaAYKCgrKysoMb/nhhx8CAwM9PT1pbMJ2sU1NTUlJSTRatVodGBjY0dFBazAMPisri9aZlJSUkpJCCFm8eHFsbOyePXtoSufOnbtmzZrOzs7Zs2fb2NgQQtatW0eftE1OTl60aJFWq+0y5/TBwPnz55tJcmho6LFjx3x8fGbNmkXD3rhxo1BbXFzckiVL2G7StST29sGDBwtJy8rKGjx4cFhYGBuSra3tqFGjtFqt0LsJEyYYZub69espKSkymSwlJeW9996jvRZGgS157dq1lJQUozPqhx9+MDPBhg4dGh4evnbtWvYiz/NLly6VSqWJiYmpqamWJIEda+HJdDouH3zwgdHZHhUV5e3tTQg5f/787t27RR8coebfiPb29oaGBp1Op1KpPvnkk54O5/67cuUK3b0EesTly5cLCwsnTJjQ04F0u3v45QsAAAC/HPaABgAA6B3oa9Fz584dOXIkfbKM53lfX9+RI0e+/fbbb775plqtnjdvHt2clL7dXFVVRd9uFsrQt63pu9g8z+t0OvLz16Xpy9SEEPoytehb89WGhoYWFhYqFIqoqKg1a9YMHz5cVDl7i1wuF95SN1VGIpHQRU/K1C0UG5upK8Kr8YbBcxzHvlZPy2dmZrIpbW9v1+l0QkhyuZw+4ZuXl2dhzgkhOp3OfJIJITNmzKirqxMe7mZrs7e3F3XK8HZ2ywKO44TtEdiQeJ5ne2c0M66urpcuXSKEsO/CC6PAlvTy8jI1o8xPMEIIz/Oii3S7CUII3UbZkiSwyReNi9HZLtrZwOgHh/yWtLe3Hz58+MiRIyqVqqdj6RZYfe5Zvr6+v4fVZwAAAOgp2IIDAACg12Bfi/bz89u7d+/rr78uvLnMvuls9O1m8t+3rePj41NSUui72MHBwexL5aK3xfV6Pfut+WoNNxbYv38/Wzn7nvWcOXPYt9SNlqGnrgl8fX2//PJLw1soNjZann1JnJbx8/OjjRoGL0qv4cvjhJDAwMC+ffsK8URERKxYscLT05MelkU3X7Yk5wkJCWaSTHdKfe211z755BM/Pz/y8zfrhS0FhG6a37JA6Bf7Hn1kZOTevXuNbhrQ5bvwwiiwJd99913h7X7RjBIRTbDTp0/TacxevHPnjmi7CdHEMEwCO9ajR49euXKlMC7szgNCbGx+2J0NDGfRb4RSqYyNje3pKAAAAAAA7gW24AAAAOgBeAu417l169bKlSuXLl1q9LwyuI/Y7SZWr17N4SAyALhP8MsXAACgR2ALDgAAAICu7d+/f+rUqVh9/hWw20309tVnnufT09M1Gk2XJbVabUtLCyEkLy+vrKyM/ZHhFQAAAACAXgRbcAAAAAB0LS4urqdD+L3ovdtNFBcXZ2ZmdnR0TJ061dnZOTU11d3d/eTJkzzPL1iw4O9//3tnZ+fSpUvnzp2rUqkUCoW/v79MJispKfHy8goNDS0tLZ0wYUJ1dbWDg8OZM2eys7MlEsnixYvplaysrIqKitbW1ra2NpVKVVtbm56eLpVKCwoKDh061NNdBwAAAAAwCQvQAAAAAAD3QVBQ0JIlS2pqajIyMvr27Tt16tTQ0NDjx48TQgYNGnT9+vVr166Fh4dnZGTEx8cHBASkpaX5+fnZ29vHxcWtXr367NmzwcHBtKrjx4/HxsYOGzaMrV8qlSYlJa1ataqhoWHz5s1vvPGGn5/ftGnTeqCrAAAAAAAWky5ZsqSnYwAAAPjdaWxsdHBwuI8VZmVl6fV6Z2dn9qJarTa8+CvIy8vT6/X9+vUz+tNNmzYplcr+/fsTQrRabVtbm1wu744weJ5ftmzZI488QvfNKCoqmjdv3qVLl8rLy8+dOyfEYMiSvInKHD16tLOz01SXzXczNTX13LlzeXl5o0aNIoTs2rVrw4YNJ06cOHTo0EMPPaRUKs2HwfP8wIEDSVdpX716NW3iX//6V3BwsOU5F6XRQnl5eZ2dnQcPHjSfSVHlZjLPThsLLVq0aPjw4QqF4t///rdCoaBZ6lbnz59ft27dpUuXmpqaGhsbY2NjJRLJxYsXR40a5ebm9s0331y8eHHSpEk7duy4efPmqVOnFApFnz59hg0b5u7uLpfLHR0dIyIiiouLnZycIiIiPvzww6qqqkceeYReqaure+SRR1xdXS9evOjs7Jyfnx8TEyORSE6dOvX000/39r1KAH4d9/2XLwAAAFgCT0ADAAD0DgsWLEhLSysoKMjMzExPT1+zZk1kZOTGjRuFF/mzsrIOHDig0WiSkpLoLTzPCxcTExNbWlqEF/9DQ0OzsrLoXgFeXl4pKSk2NjYSiWT27NkqlcrGxqa1tTUxMXH79u3sW/9nz54VtgWQSP53koRarS4oKLC1te3o6EhMTKQ7Bnz++ecjRoy4efNme3v7U089JTTNHoBcWlpKtx1g9y7o37+/sLfAwYMHTTXK3nLu3Dk2zsbGxpSUFGH3AyEb0dHRL774IiFk06ZNPM+zNbS1tdFWkpOTeZ7fv3//tm3btFptWloavb2trS01NVXIjCi3VVVVdnZ2zc3NQjdjYmKErEZHR9NuGvblxo0brq6uERERer2eEHLhwoWSkpLU1FSO49rb22Uymajdzs5OdoB4nud5/vDhwzU1NVKp1MHBgY0hKChIaO7ZZ5/t7OwkhMTExGRnZ9PHZo1mQIitoaGBTaOpmtvb25cuXUp76uPjQzeUkMvldJXH1AwcM2YMu0NFlzOW9rS1tZXt/uLFi9kPxaeffhodHe3p6Ulre+eddz755JNZs2Zdv359yJAhiYmJwo1btmyJjIz09vZetmzZnDlzrK2t78uHdOvWrR988EFBQcGOHTucnZ0vXboUHBxcXl5OCPHy8rp27ZqVlZVCofD19Q0KCho9erRer8/OzlYqlRzHWVlZabVaoSpbW9tVq1YtXbq0rq5OuMj+G4Crq2txcXFISEhlZeV9CR4AAAAAoJtgARoAAKB3cHFxqaurO3nyJF3Xu3HjxuHDh9kX+UNCQl588cXly5dfvnzZ19eX3sVe/M9//iOUf+mll4S9Avr37x8dHf3444/r9frPPvts7NixYWFhhw8f3rJli1KpZN/6F7YFED1uyfP8iBEjYmJiaEP04vTp05OSkjo6OlauXLl69WqhaU9PT2HBMTc39+zZs0FBQYGBgUI81tbW7N4Cphpltzvw8fER7U7A7n5gCtuovb09u+MBXYmmtdGEr1u3TpQZNrf0LnZrhQ0bNghZXbNmDd1dwbAvFy5cCA4ODggIoN/u3bt32rRp9Kd0tVHUbmtrqygMnU63e/fulStXqtVqUQz0IVzanL+/P23Czc2turraMIdCBoTYNm3axKbRaM30utDT7OxsuqEEDcbMDDQ1RqbK02Xl9evXs90XfSiqqqqE1WdCiKurq1wuT0lJmTNnjuhGnmFmhtytqKio5cuXu7q6KhSKuLg4lUrl7Ox8584djuM4jrO1tR04cCDHcdOmTUtNTT169CjP8z4+PjThfn5+69at8/Pzo4VzcnJKS0t1Ot2AAQNoAe7n4uLiUlNTnZ2dm5qaCCGnT5+Wy+WiLTsAAAAAAH4LsAANAADQO0RGRh49elSr1Q4ZMqSqqkqhUFRWVu7fv//QoUP29vZ6vd7Pz48QMmzYsMrKSmEBesiQIcJFtnxhYeG+ffsUCoVGo2lsbIyPjyeESCSS8vLyV199lRASHh7+zTffhIaGRkVFEUIcHBzq6+unTJmSnJwcEhIyc+ZMUXh04Y82RK9YWVnZ2toOGDCAECIKVbhr9OjRbm5u/v7+58+f37NnD42nqanJx8dHqNNUo+fPn9+9eze9hRDCxnnjxg26l25ISAh7y549e65evfrHP/5RqEFo9M0336StzJgxgxDy1FNPCbXRxU3DzLC5pRWy3bxy5Up8fDzHcVKpVOimi4uLqC8ajYbdcUIikYiWREXtdnR0iMLYuHEjTZdhDJMnT16yZInR8TLMoZABobAojUZrnjFjRllZGe0pfW46LCyMbcLUDLx+/brRMTJVnk4bUTZefPFF0YdC1ME333xz4cKF7u7uohuFD8idO3eMZubePPPMM88884zw7T/+8Q/2p3/729/oFwqFIjU1VXSvtbX1hx9+SAgZOXIkIYRdSqaP7QuJop/W9vb2BQsW6HS6iooKjuMeeeSR+9gRAAAAAID7SNJ1EQAAAPgNCA0NLSwsVCgUUVFRa9asGT58uK+v78iRI99+++0333xTIpEUFRURQoqKigYPHizcxV5ky6vV6nnz5kVERBBCPD09T506RQjR6XTe3t706+PHj9NnZtm3/um2AFVVVey2ANSZM2doQ8IjqI2Nje3t7ZWVlTqdThSqsMYql8vptgOZmZlCPHRvAUIIXdg11ejWrVuFW0Rx0t0PCCHl5eXC87wcx0VHRyckJAwfPpwQwvM826ioFVob+8y1YWYME85208vL69SpUzzP63Q6YXcFw754enqyWyg8//zz69evp1/rdLrm5mZRu4ZhzJgxo66urqGhwTAGe3t7w9R1dHQIuWJzaBgbm0YzNdP5Q3tKCKEbSgjNmZqBrq6uhmNkpjydNqLuP/TQQ6IPBfk5W1tbOzs7w+GTy+U0Y3l5eaR3am9vP3z48JEjR1QqVU/HAgAAAABgDp6ABgAA6B04jqutrY2OjnZyciooKEhISLCyslKpVMKL/FevXv344495nqfPkNJb2Ivu7u5C+cjISGGvgOnTp6emph45cqStrS0hISEtLS03N1ej0SxcuHDnzp3sW//bt28vKSmh2wJcvXpVqVS6uLjQtsrKyj7++GNCiK+v75kzZziOW7NmzcyZM+vr67/44otXXnmFbXrfvn108dTX1/fLL7/08/Nj4xHtLcDuRcA2ym53QH6+QQG7+4Eoh8J2B3v37mUbFe14IJQUxMfHq1QqITM7duxgc0sXN6dOnSp089133xWyumDBgnXr1vn7+1dUVAgJpNUGBQXt37//+eefp98GBAQEBwcnJyfTvTVeeeUVUbt6vZ4doB07dhBCXnvttU8++YQ+As/G4OfnJ3RK6Ehubm5kZCT9ms0hmwH605dffpkOBE2jqZrj4+NTUlJoT4ODg4X9ImglpmbgzJkzDcfI/Izdu3fv66+/LnR/0aJFhh8KoztRcBwnSmN1dfXKlSs9PT1Fz1/3IkqlMjY2tqejAAAAAADoGnd/d74DAAAAS1RUVLDPKfdGH3744TvvvENPb1Or1UOHDr1fa3nt7e0NDQ06nU6lUn3yySemGv3t6OzsTE5OnjdvHt2s427t3btXWID+Fezbt2/MmDG/WnMAAL8dD8AvXwAAgN4IC9AAAAA94AH7O3BRUdHAgQMHDhx4X2rTaDS7d+/u6OgYM2ZMv3797kud3erUqVM6ne7xxx/v6UAAAMCcB+yXLwAAQG+BBWgAAIAegL8DAwAA/MrwyxcAAKBH4BBCAAAAAAAAAAAAAOgWWIAGAAB4AG3atOny5cs9HQXJysoqLCy0sLBWq21paRG+VavVlt9rWIno9ry8vLKyMvP30jKiMH5larW6qKiIjecXVsjzfHp6ukajMVPGcLaYSYKowi7TdVdzwJJ5a0la7m3yAAAAAABAd5D1dAAAAABgEa1Wu3TpUhsbG4lEMm7cuMzMzI6OjqlTp547d66ioqK1tbWtrS0tLU0oz/N8c3OzSqVSKBT+/v6hoaFZWVnCLSUlJV5eXnK53PBetVpdVlbW1NTUr18/mUxWU1MTFRX15JNPqlQqGxub1tbWxMTE7du30xpeeOEFoYkpU6YQQoqLi4XYCCFZWVkHDhzQaDSJiYltbW1sJVu2bImMjPT29l62bNmcOXNKSkouX748YcIEIf79+/dv27ZNq9WqVCqtVpuamircu3jx4rS0tIKCgszMzPT09E8//TQ6OtrT07O0tLSkpGTChAmi26urqx0cHM6cOZOdnS2RSBYvXiyRSAghZ8+e/frrr+kVWqakpKS0tHTChAktLS2irq1fv54N+MKFC0JtGo0mNTWVFg4KChK1wo7d7Nmz2SR0dnay3/I8z/P84cOHa2pqpFKpg4MDO4iGNbPZZmeCSqVqbGxMSUlxd3c/efKksOWaWq2+dOmSaOBoo2xV7e3thkkYM2ZMamqqqEIh4WzJmJiYlJQU2l8fHx92INRqNRukaFhpJK2trWxOGhoa0tPTpVJpQUHBwYMH6TCZTwvP8+zEe//991esWEEImTdvHv0CAAAAAAB+NViABgAA6B0yMjKio6Mff/xxnuc5jluyZElNTU1GRoaPj49UKk1KSlq1alVDQ4ODgwMhhK4PZmRkxMfHBwQEpKWlvfTSS+wt9vb2cXFxarXa6L0KhWLevHlvvfXWK6+88uijjyYnJ1dbBlUAACAASURBVF+9enXs2LFhYWGHDx/esmWLUqmkNaxevVpogsYZFBTENhQSEvLiiy8uX7788uXLhw4dYivhf+7IkSNnz54NDg729/enVUkkkuTkZBrb1q1b2XtdXFzq6upOnjxJY66qqvL09CSE5Obm0kpEt9MKjx8/HhsbO2zYMI7j6JVjx47RK0KehTAOHjwo6hpNjkCojRCyfv16oXBjY6OoFWHs9Hr9Z599xnaktbVVlFidTrd79+6VK1eq1WrRIBrWLMo2O5qbN2+eOnVqaGjo8ePH2fgNB46mLjAwUKiqb9++hkkwWqGQcLbkhg0bhP7SpWF2INggRcMqlUppMtmL9fX1b7zxhp+f37Rp09iPg5m0EELYiRcaGnr+/PnW1tawsLB7+vABAAAAAMC9wxYcAAAAvUNZWdnIkSM5jpNIJOfPn1++fHlWVhbdCSEqKooQ4uDgUF9fz95SWVm5f//+1atX29vbFxYWsrcIK3FG742IiCCEDBgw4NFHHyWEcBxXXl4+YsQIQkh4eHhpaalQA9uEXq8nhIhiGzJkCCFk2LBhlZWVhpVQd+7cIYSMHj16zJgxwuozIeSpp54SYhPdGxkZefToUa1WO2TIkKqqKoVCQW9hK2Fvpz+dMmXK2rVrv/jiC6GJuLg40RWhBsOuCY/90oDZ2tjCkydPFtVJx44QIpFIRB0xzMnGjRvZM7LM12xmJty4cYMuxIeEhLCzwpKBM5qE69evG1ZotOSVK1eEuWo4EGyQRqeE6GJtba2Pjw8hhC6UW5IW0cQbN27c7t27Dxw48PzzzxMAAAAAAPh1YQEaAACgd/D09Dx16hTP81qtNjMzc968eXSZmBBiZWVFCGEf/ySE8Dzv6+s7cuTIt99++80331Sr1ewtSqXS1L0cx9GLcrlcuO7t7X3q1ClCyPHjx+nyLq2BbYKuNm7dupVtiO5oXFRUNHjwYFElcrmcPhKbl5dHI9FqtYZhGA3goYceKiwsVCgUUVFRa9asGT58OC0ml8uFStjbKVtb21WrVlVVVdXV1Zm6IoRh2DVRwOy9bGF7e3tRnXTsCCE6nU7UEcPEzpgxo66uTnhq23zNomyzXXZ2dr506RIhpLy8XBhHjuOMDhzP8+ykMpoEV1dXwwqFhLMlvby86FzV6XSGA2FmWAkhPM+LLrq6uhYXFxNCKisrhRvNp4X8fOLZ2tq2t7frdDobGxsCAAAAAAC/LmzBAQAA0DvEx8enpKQcOXKkra0tMjJy+fLlrq6u9MlfjuNEq89+fn579+59/fXXVSrV0aNHeZ43eotA1BZ7kX4xffr0tLS03NxcjUazcOHCnTt30jLTpk1LTU09evQoISQhIYEQEhUVxTZ09erVjz/+mOf5IUOGeHh4qFQqoZLq6uqVK1d6enrSJ2r9/PzWrVvn7+9Pn34VBckGsGjRIo7jamtro6OjnZycCgoK5s+fT2/x9fX98ssv/fz8OGNycnJKS0t1Ot2AAQNo+ZycnJKSEnqFlqFh+Pn5TZ06lWZP6FpERMSKFSuEgOlG2PReoTDP835+fqJW2LFLSEhgM6nX69lvd+zYQQh57bXXPvnkEz8/P0KI+ZpF2WY7GxcXp1KpnJ2d6fPaosEVBo7Ojb1797IzxNfXV5QEnudnzpxpWKGQcLbku+++m5qaSvsbHBxsdCwMh3XhwoWnT5+m85a9eOfOndTUVGdn56amJqEL5tPCcZww8Xx9fXmeDwwM7Nu371194u5BQ0PDihUrZDKZr68v3QO9O2i12vb29l/YHZ7nly1b9u677wr/FnXfA1Cr1YGBgez+NjzPL1y4cNy4cY8//vhdR9wTRD29L5nvEUaHu8vu5OXleXh4eHt7mypgYULMt65Wq4cOHSp6UQMAAAAeMJzwMikAAAD8aioqKthtFgDAlPb29oaGBp1Op1KpVq9ebfjvJV26ffv2ihUrli5davhQ/P21adOmoKAg+jy+6MjN7du3l5eXi872HDVqlOigS7VaXVBQYGtr29HRkZSUJDpkkp78GRoaSo+IFJ3oyJ4DKZPJaOFhw4aJTmhsaGigp1Pm5eVt2rRJIpEIcSYlJdEUqdXq8vJyU2dFXrp0qbS0NCYmhvaaDbKtrU3Y9Ts7OzswMLCuru7mzZuTJ08mhFRUVBw4cGDmzJmGySkpKfH29o6LiyPMWZHz5s1bunSpqZNLZ8+evXPnTvZGM6d9bt++nc3V2bNnjZ4gKpPJ2GJFRUXsyahFRUUlJSUxMTFtbW1CQtikCWOXmJioVqvpEEycOJGNRK/XC0d0vv3220bP0iwsLBQOR6Wjds85EQ13RUWF6KzRmJgYYQSnTZsWEBAgzGe6NHzhwgVTqSsuLjY8g5Q98NbZ2ZmeXEpbZ19BoMkUprFGo6HnlLJVFRQULF++nOO4+3h8KH75AgAA9AjpkiVLejoGAACA353GxkZ6eh4AmKfVag8cOFBWVvb666/36dPnHmrYtm3bc8895+Lict9jE3F0dPzoo48GDx7s7Oy8du3aqKioSZMmEULy8/OtrKza2trmz5+/cePGsWPHTps2LSMj4/LlyzExMRMnTty1a9eTTz5JCDl//ry7u/urr7564sQJZ2fngICAqKiooKCgzMzMfv36dXR0zJw5U61W5+fnBwQE3Lx5s6WlJSEhobCwcOjQoRs3bhRqGzBgAC28ffv2MWPGxMbG0nVMQsjatWvHjh07fvz47Ozs8ePHZ2RksHE+/PDDNAy25k2bNrFlSktL8/Pzhw4dSh85d3JyEoKsra2lzXEcV1xcbG9vn52d/d5779Gmc3Jy8vPzfXx8du3aJUoOjZYW+/HHH6VSaWVlpVKpPH78OFuS5/nBgwc7ODjk5+eHh4dfunSJvfHLL7+MiIh46aWXRo0a9cUXX4iaYHu0f/9+Ic7PP/+czRtbbNeuXWxPs7KyaOZzcnKMJo0du5qaGhqbaCacPn1aCHLt2rVC07du3RJCysnJEY3aPedENNxubm7CYFVXV9PuDB06lF7cunWrsJ8P7ZGTk1NdXZ2p1AlTcdu2bUJHYmJihCYuXbrEti6Xy4XKhWTevHmzubl5/vz5htM4ICBAJpNVVlba2NjQDeh/OfzyBQAA6BHYAxoAAAAAfruUSmVsbOyUKVP69et3bzXExcUFBQXd36iMcnNzW7VqVW5ubkZGhuH5ioZnexoeBUn+e9YiPT5RdMgkPUCSPWmTPdFRVBstbHjwpuh0SlNHg5o5K1J0XigbpKg5eqKm8MJleHj4s88+GxISYupQU0o4NDI6Otr8yaWiG82c9inqkakTRPV6PVtM1FPhW1NRsWMnxCYqzAZp6ixNw1G755yIhtvoWaOiaWbIVOqMnkHKHnhr6ihUYvrAWLaqP//5zzg+FAAA4MGABWgAAAAAgPtAp9NZW1vPmjWruLjY8HxFw7M9DQ+6JIScOXOGEFJUVOTp6Sk6blSpVNLDOY2etCmqjRa2s7MTndDInk5JjJ0DSbo6AlR0Xih7EqboVE96omZjY6NQrdEKCXMsKiHEzs6OHhqpVCrNn1xKCGF3dTBz2qcoV6ZOEJVIJGwxUU+FIzeNJk00dkKnRIXZIE2dpWl4OOo950Q03EbPGmUvGt2e0VTqjJ5Wyh54K2qdZerAWFFOcHwoAADAgwGHEAIAADxQ6HFPs2bNOn36tPnzo+6vLo+rumebNm0KDw+vrq7usn4zJQ3PQ2OJzsgyf7KWmSOzaAC+vr6W9o2QRYsWvffee/369fv3v/8dERFhKkLzsrKyAgMDTZ3i1R1DY+oAMUvaomXc3NwsP88tLy/P3d396NGj4eHhJ0+eFJL8Wzu+LD8/Pzc3t0+fPhEREc8++6zRcztpSfqF4UGXhJCysrKPP/6YEOLr62t4dij573Gdhidtsgcz+vj40MLsMZu0/pdffpke6kgfmBUd7yn0xcxZkYQQ9rxQ9iRMw3M+X3vttdWrVws10wrj4+PZ80hpcthM0kMjDUuKTi4V3WXmtE8h/5SpE0Rp3gSik1HpkZv+/v6mksaO3ZkzZ4x2trOzUziiMyEhwfAsTUdHR8NRu+eciIbb6Fmj7MWysjKlUkn3q6FViaaZkDpHR0c7OzvD00rZ2kRHoV69elWo3NSBsWxVCQkJv87xoQAAANDdcAghAABAD7iHc5DUavWlS5e8vLxeeOEFS4572rNnT2BgoOj8qNra2vT0dKlUWlBQcOjQ/2fv3uOiLPP/j183AwMiJ/MIeCTQEBHNVNDasDQzS8uyTNRos5OWum1q5fmAldpW/lJrNzNLS8VD7iaammjmaS1RUUywEM8FKqhxGGbm/v1x1b33954BQRhH9PX8Yx9zuOaaz3XdN7J9vL3fm+TM+kCtK0ZalRW0ZTabIyMjv/jiizfffNNms02dOvXxxx/XamvevLmWu3Xu3DktTUs+MMxpCChbtmxZbGxsWlpaZGRkREREOfN8/vnn2kjDwmUDOi8v7+zZsw8++KC2gb169XLMyCo/amz58uXp6elBQUGFhYXjx4/XR2bZbLbY2NjGjRvr6580adKMGTPS0tKWLVv21ltvffjhh71795YXSAohzpw5s2DBgpdffnnWrFnjxo27ury1sLAwfYqXITLuq6++MmxdWdFn8iJcw/mgT2+bMWOGLLusADG5zzabzTDn/v37tVC1FStWREZGCiFkkp5+A2UQ3+uvv67fsfnz5xcWFvbs2XPfvn2xsbG7du2Ki4uTDehyjoWcqsa53lrqbnHNQiOrl0uP3TXbk3feeeell17y9va+HiY/d+7c7Nmzq3fVhBACAOAWXAENAEDNoKpqYGBgQkLC3LlzExMTW7VqNWPGjCeffHLy5Mlnz55dtGiRn5/f4MGDY2Jidu7cqf+gyWSaMGHCe++9l5+fv2TJkhdeeCEiImLIkCHagIULFz700EOdOnVKTU394osvVB05QH6vVkaHDh369es3c+bMo0ePau8mJycLIZo0aXLy5MkTJ07Exsa2bt1aq+2WW27p3bt3XFyc3W7/8ssvDx06VFRUpN2o1DDnpk2b9PWYTCat1M8++6yceQz0CxdCWCyWr7/+evbs2foNXLJkieOmbdmyZf/+/VFRUZs3b9YqWbJkSWJiohwQHR3dv39/We0333yjzSbbyp9++qm+/kaNGuXl5e3evVsmX506dUrrPgshgoODzWbztGnTRo0aZfhg+Qdi0aJF2lbIbu/EiRPlYpcuXaqfR17Wrd+6+fPnazUXFBQ8/vjjbdq00S6cNJwPvr6++p2Uq9C2SAih/2o5w86dOw1z7tixQ76iLXzr1q1yho0bN2rFyLcMO3b69Om2bds6PcTlHIuyxl/nIiMjGzRo4O4q3GzdunWDBw+uWd1n4eJjd832REuMvB4mX79+fU08EwAAgCPuAQ0AQI0hO62VjXvS50fl5uaGhYWJP8OypEpFWokygrakXr16bdiwYdu2bfHx8fpgK5m7pSiKyWTS0rT0uVL6OcuqR/wZMlbOPGUtXPyZh2bYwJMnTzpu2hWjxm699VatWsccOcOn7r777u3bt5eUlNx6662nTp2S91LQe/HFF0tKSkJDQ68ib01RFHmJsT7Fy+k8FYk+k8pPbzNskeGr5buOEWoJCQmGV5zGl8kNvOKO6ZV/LGqcNm3a0IC+ZqGR1culx66G7kkV3ZyrBgDghkQDGgCAmkFRFHkpa2XjnvSXjwUHB2dkZAghjh8/rl1XW6lIK+EsaEu70LV58+YnTpywWq0+Pj76YCt97pa/v79jrpR+TseAL63UK86jv7eY4bo5mYeWn5+v38Dg4GBt07RVXDFq7ODBg/J/mzVrZkgwU1XV8Km2bdump6f7+PjEx8fPnz+/ffv2hiPr7+8fEBBQ2QMht0JVVYvFYlis07IrEn1W1sfl5Pp7y5YVIKatyDCn4ytO48tkMz0mJqasHZPHV3+UyzkWAgAAAMB1gFtwAABQY8iMpiFDhkyfPv2KcU/6j2gSEhJkINXFixe1MZWKtBLOgrb0X+Tv7y8vA9TX9tRTT2m5W5MmTXLMldLP2aRJE309e/fuTUlJCQkJEUKUP09ERIQ2Ur9qbcBzzz03b968V155RQu5Gjp0qOOmlR81pijKL7/8MmfOHFVVb7311tDQUH36VkpKyvPPP6//lKIoubm5vXv3rl+/flpa2tixY/fu3Ws2mw15g1XJW4uKiionMm7NmjWGrXMafabFnTkNiDN8e1kBYpJjEp0+VE0f76aPLxN/BvE57tj69evll6akpHTu3DklJWXkyJHlHAuhy/Rzu88//1y7aXVllRX2qOc0+PGKeZiGKMgKJlWWk89Z8TsgVzEV0+nHyw8OLYvTT7366quzZ88WQthstjfeeKN3795NmjSp9njVBdsK74wwn863Nb3FdGuD//0XWYlVtViFv4/xT11JVcWoLwseu6PWXS3NFfyi8ie88sevamPLmYe7nAMAcHMihBAAADdwVw5SaWlpfn6+xWJJSkqaN2/eVcxQ9faBY67U1c3pinwqoCqcJoXKaMp//vOfhszMqoQ96uMWPT09ZeqmPqNy8eLFnTt3btSokTase/fuWgDpxo0bZVyk+DMKUj49fPjwsWPHLl68WKdOHU9Pz7Nnz8bHxzdu3FhLEy0tLS0rOtIQCLlo0SItQnPUqFGHDx/WcillCqUhJlQ/oT4YMz09XYuvlFe1yz8uDB8/ePCgY2Genp4yIlV/OPSTZ2RkyE/pD+LixYvbtm0bHR29devWS5cuFRUVRUZGNm/eXJshPT3daaxopdJcP/7u9zsjzD8cs7QJ9bLZxZe7izwU8Vb/wPSTpT+dsT7RqZYspsiijl99sbZZKSpVk/r5n7pgX3ug+KV7/2gHL9lVuCe7NMBHsdrFjEcD0k+Wfr6jsNQmhv7FN+245fAZW1g9U4fmXnLCJbsKs3NthRZRVKq+OyDgUrE6fvWlWl4iMtjT0yTk4HZNvbRKPJT/nYFlJbLqw0ULCwunT58ut+ihhx4ynB4VOZOvTXAoIYQAALgF/zgRAICbSGlpaWpq6tatW5OSkq5uhsjIyIYNG1alBsdcqaubk3wqXG+0pNBFixYlJiZOmjQpOztbvhUTE3Po0KEffvhBu5G3DHt87bXX4uPjv/jiC/FnbGb9+vW1OMctW7asW7cuMzNT/Bn2KN91nF84hIUKIfTDZACp/EcJ2ke2bt2qzS/5+PhMmzbt6NGjcXFxM2bM+P7772Wa6EsvvfTVV19p450WEB0d/corr5jN5qNHj6r/l8ylnDx5sv5Sev169RPqB8v4ysmTJ2v3VNGuntF/vKzCHA+HfvItW7akpKToly+EeOihh9atWyeE2Lx5c48ePeSL+hnKihU1HNDyQ0T1tmWWDIqr9Xb/AEWoGw8Vr0krOnzGKt/6aMvlfrf7THnYv3tr74XfF35zsPi7TMu+46XaVnRu4TXlYX9vT/HTmdI2oZ5v9w949f7ayXuKhBBBtZS/3uW7KaPk3/uK5YQmDzHjUf+GAcqF3+3/3Pr783f7vvVYwNHfbNpgrRKPP4+SPAOPHDmiX92SJUvku9rRURTl008/1bbI8fSo1JkMAABuPNyCAwCAm4ivr+/jjz9elRkMN464Co4tmKub02krB3AvfVLopk2btDjEPn36zJ8/32azyZuHCCGOHTv27LPPCiFiY2O//fbbmJgYfdijbG527do1JCSkZcuW+/fv14c9Os4vHMJCDWWcPHnSMYBUP798Rd60vW7duh07dhRCKIpy6NChtWvX+vj4FBYW9uzZU45fsGCBvgDZHdYHQmpfIW9uM3DgwIkTJ0ZHRz/zzDPaW/r16ksdMGDA5MmT5WDtg0OHDjWsTv9xbSGGwhwPh35y7VP6aQMDAy9evFhaWqooire3t+NOdunSxWlIpuGAavc/KSvNVZN4p+/o5ZfaNfEcdk/t+FbejeuYIoP/+G+0n3NtL91rFkLcGWFen17yzF21fLyUdk3/97duzeuZhBAxTbyO5VlLStXVacW1vJTfLaoQoku4WQihTbg3x9IjylsIUcfX4/zv9mN5tv/sK1qXrgT5Knb7H4O1Sob/eZG1tkWffPKJfnXy3YSEhAkTJsjN1G/RsWPHDKdHBc9kbt0OAMCNigY0AAAAUA30SaGtW7fu2rWr3W6XF8PKzEyr1aolScqwx06dOl1F2KN+/pUrV8oXDWGhqqrqh82bNy8jIyM6OlrfHdaiIPWvyO9VlD/u1Lds2bIpU6akpaWtWbNGHx2pzaw1DQ8ePHj77bcfPHjw0UcfPXv2rD5CU6ZQTp06VUuhLGdFiqJog+vWras9rlevnmOphoUYdsbxcOgnd1y+1L59+w8++EA2uJ2Wt3bt2vr168fHx7///vtdunRxekA9PT3LT3PV7oMY4OPxz6cCX195KfeS3cskSqz/u0FieAPT7l8sXcLN2zJLIoNNjqX+mFMae6t534nSAZ1qffxd4cz+AXuOWVb8UCyEqO2tKIqin9DL9L9Tq1Ujz+jGnne38rar4svdhXJwYC2TVkl9fw/hkMiqP10Nh1W/RQsWLDCcHhU5k+k+AwBwA6MBDQDAjUbmj505c8Zp0peqqm+//faIESNka8bpZw3ZZeXco1neanbXrl3lxKy9++67JSUlW7ZsiY+Pj4qKkvdU1WarYiJZBVUkAqu64rauWIP2oLrWvm3bttDQ0O3bt8fGxu7evVs7gtWS9yWLlJPrD/Hy5cv1x/GKqXcVV8W8MkO8XtXrqRSnSaEyNdGQmVmVsEctuVFVVXlds+GDMpDz+eef14Y999xz+gBSQxSkvnhtKvlAnyYaHh5eTnSkPhDS09NTH6H51Vdf6VMohTDmo+pXpAVj1qtXTx9fqa/K8HHHTEu5M46HQz95QEDAwoULW7ZsqSiKPhf0gQceuO+++0aOHOm0vLFjx+pDMl977TWnB7T8ENHbgr3WpBU1vsWkKMqy/xb9dNZqsar1/U2Bvh4fbim8LdjSOcwshHjubr8Jqy9uyij5vUSd9oj/0d9shnmO/mabue6yEKJVI897I81T/n0pNMjDx0vRvvG2EK8PtxS2amQx7Ngzd/lO+OrS1iMWVRXhDU1y8LL/Fh0+U2qxqvX8PPRnYFmJrPqjo9+ikSNHGk6PK57J4noKDgUAANWOEEIAANzgKnKQMjIyli1bJqPADhw4sG/fPn9/f6vVOn78+OTkZP1T2QpMS0szZGf16tVr+vTpoaGh27ZtW7x4sbwcLzc3980339SiyeRnGzdunJSUpI9H0+LFJkyYoK9kz549sbGxu3btchqzplFVddKkSVOmTBFCGEKoZPqZzWbTksG0qLHs7GxDHlqXLl205cTExGjZaAcOHNAnku3fv98wm9MIrBkzZujXIgPW+vXrJ2vWVjF69OipU6fqN6T8eLGygrmio6Nl4pkWmKYlv+mLz83N1YfFOa7l9ddf12egzZ8/X94bYd++ffJYaH8ZYMiFc8z70i9/0aJFb775ps1mmzp16uOPP67f28jISDl5aWmp/iTUTy7PHH3qnfyKikTtGcYcOXJE259ykvfK2nOZcSf+jNcrK93uGl9u6fbMTH0A6dy5cw19TNRES3YVRoV4tmtqdnchNQkhhAAAuAVXQAMAUDPIKLCzZ88uWrQoLCysQ4cO/fr1mzlz5tGjR4UQhqcaGfHUqlWrGTNmLFmyZPDgwTExMTt37tQGLF68+IUXXoiIiBgyZIj24qeffvrQQw916tQpNTX1iy++8PX1jY6O7t+//8yZM7OysiIjI7VKQkNDtU/JmLWioiLHW50aul0yhOq9997TwtZkMlibNm20kaqq+vj4jB49etiwYU8//XTHjh0nTpyYlZWlLefJJ5/Ub4hMJJNzOs62ZcuW/fv3R0VF6b/9woUL+rX4+fnt37+/TZs28h+Ya8vp2LGjYUPKjxeTwVzyakoZzCULPn/+vKxh69atWjGSvngZFqcdEce1GDLQTp8+3bZt27JOG+3AHT169JtvvtGKcTypmjRpcvLkyRMnTsTGxhpONm02/XaFhYXpJ3c83+QrMrtMfy7pFyuXYBhz+fJlx4Mld0abPCIioqw9l7RN3rhxo/apgoICw2ZeM27PzJQBpFarNSkpie7zjaFNqFfDAG5bAQAAagAa0AAA1AyHDh36+uuvZRSY+DNJTMv7MjzVGFLIZFNPf0+D3Nxcx2gyx3g0fbxYSUmJFkqm/y7HmDUDre2lD6GSrziNGnPMQ9MvJz09fd26dVoZ+kQyx9nKisA6deqUY8Ca43KmTp1a8XixsoK5unTpIucvLCw0JL/pizccEce13H333U4z0JzSHzjHvC/9SfXEE09s2LAhLy/v5Zdf1ufO6WczvO4YOuf4FRWJ2jOMeeyxxyqSV1bWnhuOuD6VTgugc0y0czW3Z2ZWPYAU15uYJm77+wwAAIBK4e/MAQCoGZYuXTp69GjZkxVC7Nu3Twhx8OBB2aY0PNWuzA0PD7/jjjuGDx/+4osvBgcHHzlyRAhx7NgxrRccHByckZEhhNB6iKqqyrwpIYSWN3Xw4EH5v82aNVu2bJm+EvldWsyaxWIxZG0ZKIrieB2oDLM6deqUllGmDZN5aI7LSU5O1pehn9NxtrIisPRrMSSSBQQEyOX4+voaNsRsNpcTL6b/dn3BWg1lJb85PSKOa4mJiUlPT/fx8YmPj58/f3779u21z2rHQntFf+D0xcgbUOhPqubNm584ccJqtfr4+BgOsTa54XX95OLP1DvDVzieS45Re4Yx+v0x5JXpJy9rz7UPaql02qcCAwMNwwAAAAC4GldAAwBQM8THx2tRYEKI7OzsOXPmCCHCw8PT0tL0T/Py8lJSUkJCQoQQ+mCooUOHJiUlNWzYULtuVwgxaNCgadOmadFk4eHhMrtMy5t644031qxZo48XM4SSpaSkdO7c2RCzkqXgbQAAIABJREFUtnfvXn2ol4HiYPXq1TIZTIsa04Zpjw3L0ZdhmFOfeCY/7jQCSzgLWGvZsmWHDh3kp+RyFEWpVLxYWcFco0aNkvO3adPGafKblJCQoA+Lc9wZRVH0GWhjx45dv369duy0YyEccuFCQ0MNeV+Gk8rf379BgwaGbdE2MCUlxfC6fvLc3Fx96p32FRWJ2jOMEULI/Skrr0xL3nO653Kw01Q6LYBOf5rVXFeX1ljO4M8//zwuLq6s/NJrVkZlXTEA05BLWcHwz3JSSZ3OcHUppoZPqar6xhtv9OnTJy4urlLzGBjCZqtxt13EUOH27dtDQkLKOkauDowFAADVjhBCAADcoCo5SKqqyvA67b/Vly9frn9aKdUYTeb2mLXqdf78+VmzZl375eiPyLx5867lV6OKkpOT09LStDjQRYsWOYZVNm/e3Gw261NDZfiklsGYkZGhJSXqQywdExSdRmsa0hrT0tJmzpypKIoWqllONKXNZnOaX5qenq4FVL766quGnMmrLqOsOFB9Hqbj12kjhwwZ0qpVKyHE4sWLO3furA/A7N69uz7JU/6BKf7MpdTCP48dO2aIOW3cuLEWvylTSQ05lrIG2S01xIdq4aKOaZnNmzfv27ev0zDMjIwM+Sl5CuXk5GzYsGHo0KGGs0L+pZqWumnIpNWXUVBQMG3aNEPYrH63k5KSSkpK9LGfkyZN0ueafvjhh717927atGkFg1hHjRrl7e0thCgpKZk6dWrt2rU9PDz69OnjtMKyokf1UbcyWddwEvbr12/atGly8t69e+sDYyuFEEIAANyCK6ABAKhhFEVp3bq1vFJVMjytlGqMJnN7zFr1WrdunVuWoz8i1/irUUWqqurjQMsKq0xOTtYP27Rpkz6DsaioyGmIpWOCotNoTUNaY0xMTEZGhiEatKxoSv2N4PV5kvqASsecyasuo6w40PK/Tp+Q+dprr4k/7zljCFx1zFZ1DP90jDmdOnWqIZXUkGOpHWj5QJ+o6TT3UkvLnDt3ruOh1O+evEHN5s2bd+zY0blz5+3btxvSO/Wpm4aYUEOKqWPYrOHQLF26VD+5Idf01KlT8kyoVBCrPAS9e/eOi4tTVVVRlLIqdBo9qo+6dRpq+tlnn8nJ7Xb7/Pnz9YGxAADg+kcDGgCAmsdwa4uy7nRREdUYTeb2mLXq5a7lEBZXozmNA3UMq9QPM2QwjhkzRsZOGkIsHRMUy4rW1H/qwQcf/OijjwzRoOVEU2pj9K/37NlTC6hMTU015ExedRllxYHq8zAdv06fnCkbnY4Fnzx50jFbVV+nfMUx5lQfs6mlkupzLGUN2pz6RE2nuZdaWqbTQ/nMM89on5ITxsbGent7R0dHL1myxJDeqe/dGzJp9WWcPn3aMWzWsNuGU65///5Oc00rFcQqhMjOzk5MTJT3wDl48KA+sPSK0aOGqFvHY/rzzz/LyU0mk2HTAADA9Y8QQgAAAKB66ONAHcMq5Q15DcMMGYxlhVg6JiiWFa1p+JRjNGg50ZRO80vDwsK0gErHnMmrK8MQRqrPt9TnYZafnKl1nw0BmKGhoYZsVVF2+Kc+5tRpKqljDYYZDPMbxsuDXtahNFSlVeKY3qmdPMIhk1ZfRsOGDR3DZg27bZi8bdu2TnNNKxXEKoRo2rTpjz/+qKpqSUmJIbD0itGjwiHU1LBpzZs3l5NbLBbHQwkAAK5zXAENAEDNUJGkrwpGM7kiwan8+1BXMPWrLE5DxsrZB3lP2F27dsXFxZUVTTZu3Li///3vderU+eijj+68886qXEVevqrcodulyjkohgSzK6rseMevNsTEVXAJ1yF9HKiXl5chrFILYNQPa9KkiT6DUR87WX6CotNoTUNa49ixY7VoUKmsaEoZ7Ok0v3Ts2LEyoFJRlCFDhkyfPl2fM3l1ZRg2xJBvWc7XGZIzhRARERH6AExVVZ977jl9kqchl9Lx28WfvVHHVFJ9jqVWgxxsWK/T3MuwsDD5rrYQ/aGsV69eQECAIftUjnea3qltnWET9GUkJCQ4hs0axjz11FNazOy4ceOU/5trKm9sIlUwiFVKTEycNm3a1q1bi4uLnYbE6usxTGiIupW9af1OjhgxYvr06XLy119/3bBpAADgOkcIIQAAbnAVOUhOk74M4V0yNUuLZtq/f/+KFSsc08yio6P1wyqYNKWlqGlBWPrIqbCwsHJCrr766qvIyMiIiAgtRWr48OFOI7nkBYa5ublvvvmmliEmG9CNGzc2pHJpoVUTJkzQ78OePXtiY2N37doVGxv7z3/+U1udfCCdOXNmwYIFL7/88qxZs8aNG1e9+Vpl7YzheBnSw3Jzc/XJaY7RZ1d9pJKTk7Ozsw15awUFBTKK7YoJZpVNPEtOTj5y5IgheE0fZBcVFRUZGWmz2bTjvmLFCi0mrupnpruU85cietfy7ySuk2jQa1xGNWar3szcFcRqs9kmTpw4evRoebOO6kUIIQAAbsEV0AAA1AxOk74M4V0yNUuLZtqxY4fTNLPz58/rh1UqaUofhKVFTtntdtlJLCvkSl4Ya0iRKiddbfHixY4ZYoba9KFVWVlZ+n0IDQ3VPqWtTn8HVSFEcHCw2WyeNm3aqFGjqj1fq6ydMRwvx/Qw/aod49eu+kipquqYt6Y1QK+YYFbZxDNVVR2D1/TJcpcuXRJC7Ny5Uzs/JRnjVvUz010iIyMrEgdaldTQyrpOokGvcRnVmK16M3NXEOu+ffsefPBBV3SfAQCAu3APaAAAaoauXbv26tVLNub0cVKHDh2aOXPm8uXLCwsL9WOEEAkJCR9//PGCBQvEn2lOc+fODQwM7NKli35Ynz59vv766w0bNvTu3fvYsWPyHzXHxsZmZWVp3+6YoiaEyM7OvuOOOxRFkZctG0KuHOeR44UQHh4e+noGDBig1Snl5uY6Zog5zqkPrdLvg37ftNU98MADhi198cUXS0pKQkNDr7hqw2IN36XP17rizpTzWcOq9Vsk0+Gu+kgJZ3lr2ltXTDArp+ayEs/0wWtyCTLIbtu2bfLjQoiBAwcajrvhBK7Ket2iTZs2FeksV3BYtUhISGjduvW1+a7rpwyZ5Dlw4MA6depcsy+98bjr5OnQoUNcXNy1/14AAOA6NKABAKgZykr6cpqaJZWVZqafSlQyaUofZaZFTlksFkNVjgFT2nghhMViKT9dLTg42JAhpqpq+aFVhswreWGsqqr+/v6OIWza/gQEBDhWW/V8rXJ2xulnna7aMfrsqo+UFkGmz1vTXDHB7CoSzxyD1/RBdtr+G4674QS+6vUCAAAAuH5wCw4AAGoGp0lfwllqlhbNtHr16szMTMc0s1GjRhkSnCqYNOWYIqVFTkVFRZUVciUDpoQQTz31lJYiNXbs2HLS1QYNGjRt2jQtQyw8PFyGjBnm1IdWGfYhJSWlc+fOKSkpI0eO1NLP9u7dazabDXmDLsrXcrozwiFszZAepk9Oc4w+u+ojZShS/64hSM1pgtlVJ57pg9e0IDvtXX3annxFxrhV/cx0l/LjPW+YoEUAAACgUgghBADADa6rHCR3JU2VoxozxK6TELaK0K963rx5jgOuwyPlUjVuvTIptF+/fsXFxVoI54QJE2T9MqJQ/N+gRQDX0nX1yxcAgJsHV0ADAHCzc1fSVDmqMUPsOglhqwj9qp0OuA6PlEvVuPVqSaGbN2/WIhOXLFmSmJgo/rwtjCFoEQAAALjhcQU0AABuwEVYwI0nLS0tOzv7kUceee2115KSkkwmU1FRUVJSkvwbheXLl0dGRlqt1uzsbK6ABtyCX74AALgFIYQAAABANdDiPZ2GcMpr+Q1BiwAAAMANzzR58mR31wAAwE2noKAgKCio2qdVVfWNN96oXbt2kyZNqn1yRyUlJcXFxWazuSqf3bZtm91ur1OnTkU+lZycbLfbGzZseBXfWCkVr0pbyBVrmzt37rZt27p06SKE+M9//vPZZ5/t2rVr06ZNbdu29fX1LecrkpOTVVWV8X1lFXbw4MHRo0cfOXJkw4YNnTp1cnpQXHp66FcnhFi8eLGvr++hQ4ccq9UvRypntyu+vRVcXVVO2isKDAz8/PPP69Wr16NHjwULFuzZs+fo0aPDhg0zmUxCiIyMjPr160dERMgxZ8+ePXfunH4fALiai375AgCA8nEPaAAAaobk5OS0tDR/f3+r1Tp+/Pjk5OTMzMzmzZv37ds3KSnJx8enZcuWXbt2DQsLi42NvXTpkvaip6en40hPT8+cnJyioqLi4uIZM2aUlJRMnTq1du3aHh4ew4cP14a1bt165cqVHh4ekyZN8vDwEEJkZGQsW7bMarUOHjy4tLRUH6emf+vAgQPa/ElJSWPGjJk1a5YQYvTo0fJBVlZWZmbmI488cubMmaCgoOXLlx87duzixYt16tTx9PQ8e/ZsfHx8ly5dtEoGDhwohFBVdfny5Rs2bCgsLBw/frzjtPoamjdvPm3aNLmoUaNGaY/LWmB6evqKFSvkY60q/Spyc3Pfeustk8mUlpa2adMmuWptIaqqrl+/ftWqVSUlJUlJSZcvXzYU36NHD5vNJoQ4fPhwZmbm9OnTFUUpLS319PTUZ9aNHz/eZrMlJSVpT1VVVVU1NTX17NmzJpMpKChIf3y1nendu3f//v0PHDjwn//8x8PD4xqfHtrqJFmz023UlvPrr78OGDBACHH27FnDsBkzZlR2e48fPy5XJ+96UdZmZmZmZmVlPfLII/oZ5Ca0aNEiISGhKj+k3t7e77zzjnw8bdo0w7v9+/eXD7QxAAAAwM2ABjQAADWDqqodOnTo16/fzJkzjx49KoQIDAxMSEiYO3duYmJiq1atZKNwx44dnTt3/u6777QXIyIiHEdGRESYTKYJEya89957Fy5cSE5O7t27d1xcnN1unz9/vjasoKDg8ccfb9OmjZYE2Lp168mTJ589e3bRokV+fn76ODX9W2FhYdr8+fn5MTExhw4dKioq6tSpk5xHi2vTFujj4zN69Ohhw4Y9/fTTHTt2nDhxYlZWllaJNiw6Orp///5yExyn1ddwyy23aItasGBB+QsUQuzYsUN7rNGvYsmSJS+88EJERMSQIUO0AfqFeHh4TJw4URtsKF67FUNKSsqQIUO0GzIIIRYuXKhl1n3xxRdFRUX6p76+vhaL5euvv549e3ZycrIQYtGiRY47I4SwWq2pqanx8fGZmZnX+PQoP1JPv41CCLkcrQ+rRZLoh8mrFCu+vZs3b5ar2759ezmbefnyZTnhxo0bHTehnCUAAAAAuDo0oAEAqDGaNm0qhGjTps3x48eFELLrevz48fXr12/atCkwMLBTp07e3t7R0dGLFy/WXrTb7Y4j7XZ7fHy8ECIoKOjChQvZ2dmJiYlCCA8PD/2wAQMGTJ48OTo6eujQobKGQ4cOff311z4+PoWFhT179gwJCdE6j/q3hBD6+fv06TN//nybzTZy5Eg5uGvXrvKz+/fvl6/ceeedQoi6det27NhRCKEoiqFgeQn2rbfeqm2C47T6GgoKCrRFXXGBzzzzzMCBAydOnCgfa3uuX0Vubm5YWJh2IBwX0q1bN22w0+IlDw8PQwr0sWPHnn32WSFEbGzst99+a7Va9U9jYmI+//xz+dWS08nXrl2bk5PTrVu3mJiYzMxMt5weZdHPJoSQy1FVVfuLDcdhsgFd8e2NjY2Vq1uyZEk5m/nYY4/JCRcsWOC4CQAAAACqHQ1oAABqjH379t1xxx0HDx7s16/fuXPn5I2Dw8PDW7du3bVrV7vdnpmZKUfqX1y5cqXjyJUrV8prb6WmTZv++OOPsbGxFotFP0xRlPfee2/q1Kl5eXn16tUTQixdunTKlClpaWlr1qwxxKnp3xJ/Xtsr+fv7l5aWWq3W2rVry1e0uDaNHG82mxVFkf1ZfSVaA/fgwYO33377wYMHH330Ucdp9TXoF1WRBdatW1d7bKhKCg4OzsjIiI6OPn78uNY81S9EP9hp8dIDDzzw6aefjhkzRghhsVhKSkpkZl2nTp1kZl1RUZH+qRDimWeeSU5OlpcPO51cURR5Cw5ZlaIobjk99PRNdv1s2nIcb8Yqh+m70hXfXu1T5W+mdtIa1qudQgAAAACqFw1oAABqjOzs7Dlz5gghwsPD9+3bpyiKoihDhgyZPn369u3bVVV9+OGHHV8MCwsr50Xpqaeemj59+tatW4uLi8eOHZuUlCSHRUREZGVlWSyWunXryhri4+NnzpwZHBzs4+MTHh6+cOHCli1bdujQwfCWEEI/vxAiMjLSz89PW0t4ePgnn3wSEREhn+pHij+biYMHD5aVCCHGjh0rX//ll1/mzJmjqmp4eLiqqoZp9TXoFzVmzJjyF1ivXr3Vq1dnZmbKxWptXL2EhITp06c3bNjw4sWLjgsxDHYsXtOqVauoqKiJEyfKe2s8/fTTiYmJSUlJW7ZsKSwsfOONN+x2+4wZM7SnsqH/3HPPzZs3T+6Y08n1G6g9vcanhyYiIiIlJSUkJMTxTJCee+65uXPnjhs3TjvcjmMqu73yrfI3UwixcOHCiIgIbQa53jJ/6gAAAABUjWL4F6AAAOAayMnJadasWaU+kpycfNttt0VHR7uoJJc6f/78rFmzpk6dargS9vqctiylpaX5+fkWiyUpKWnevHnX4BsBANXoKn75AgCAquMKaAAAaobIyMgGDRq4u4qrtG7dusGDB1d7m9hF05altLQ0NTXVarUmJSVdm28EAAAAgJqOK6ABAHADLsICAOAa45cvAABu4XHlIQAAAAAAAAAAVB4NaAAAaiRVVV9//fWdO3fKpyUlJZcvXxZCJCcnp6ena8O2bduWnZ1d/lRyjDYDAAAAAADVhXtAAwBQMxQXF0+fPr127dpFRUXjx48/c+ZMWFhYXFycfDcrKyszM/ORRx5RVXX9+vWrVq0qKSlJSko6c+ZMUFDQvn37Vq5c6eHhMWnSJA8PDyHE/v37V6xYIV+RYzIzM7Oysh555JHLly8nJSX5+Pi0bNly4MCBbl00AAAAAKBmowENAEDNsHDhwoceeqhTp06pqalffPGFqqo7duyIjY2Njo4WQmzZsmX//v1RUVFCCA8Pj4kTJ7733nv5+fnyszt37nz88cfbtGmjKIp8ZceOHfIVbf6tW7fKGTZu3JiYmNiqVasZM2Zc81UCAAAAAG4o3IIDAICa4dixYx06dBBCxMbGZmVlxcbG9ujRQ3afhRBdu3bt1atXy5YthRDdunUTQgQFBV24cEG+O3DgwI8//njBggXabAkJCYZXtBmOHz++fv36uXPnBgYG2u32a7ZAAAAAAMCNhwY0AAA1Q4sWLX788UchxM6dO2WjWc9sNpeUlMjHXl5ehnf9/f3fe++9U6dO5eXllfWKl5eXnCE8PPyOO+4YPnz4iy++KO/XAQAAAADA1eEWHAAA1AyJiYlJSUlbtmwpLCx84403srOztftpCCHCw8M/+eSTiIgIxZnVq1dnZWVZLJa6devK8atXr87MzJSvyDERERELFy6MiIgYPHhwUlLS9u3bhRA9evQwm836O3UAAAAAAFBxiqqq7q4BAICbTk5OTrNmzdxdBQAANxF++QIA4Bb8u1oAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEt4ursAAADgZus2//TS66tOny1wdyEAgBtKaHDg3Lce7Rnfyt2FAAAAd1JUVXV3DQAA3HRycnKaNWvm7ir+EB47I+eEYle93F0IAOCG4qGUNm8qsna+7u5C/nBd/fIFAODmwS04AAC42Z06U0D3GQBQ7eyq18nT+e6uAgAAuBkNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAMANyGRSTu17Me/wS73uDXN3LX9wLKlunVqpq57YsKy/4TEAAABww6ABDQAAgBtQfJemh7POFRSUDOh72zX70ven3zMn6V4PD+X6KQkAAABwL093FwAAAABUvycfue3ipZKLl0tb3lrHx9uzuMR6Db70jphgRRGK8/6ze0oCAAAA3IsroAEAAHCjMXuZbouoV79e7RVf//RLTn6ve1vI11u3rLt5xRO/HXqp4OjI43tfGDH09vJfj+sQsmf94NyMl3IzXtq5NqF1y7pCCG+z6bs1T55IeyHnh+cvHBmRuWNo/z6thBDPD4mJiap/e9uGu1MGDXqsdQVLAgAAAG5sNKABAABwo+nZrXn28fxvUrOXrzkSFOAjb3lRJ9Bn8bwH69f17frgkltazen39Fff7z5VzusN6/v+6x/3+/h43tr5n3/p+2UtH88F794v5+/cPrhhvdrPvLK+ecePfi8qnfhKlxZNAz/6bP+hI3kHMnI7P7B48YqMipQEAAAA3PC4BQcAAABuNAMejrwvvvmD3cNefub2oADvomKrX22ve//SLPPn84eO5GVlXxBC/LD/rBxc1uvdujYNDDD71Tbv35wohAhu6FdUbPXy8hBC/JyTr6pi03c5QojFKzI6tWvUrWvT7OPplS3JhVsAAAAAXB9oQAMAAOCG4lvLq0WzwCM/n7/zoS+EEGOGd2rXpsFD94XbbKoQQlWN4z0UxenrNru6/b+nDh3Jm/aPnfrXvc2munV8VFXx8FDsdlUIof75cVUVihAmDw+bzVaRkjZsOVZ96wYAAACuR9yCAwAAADeUB3vceur0pU1bc+TTVWszG9TzHfDwbd9uy4mMqDvg4dvCmgUqiuh2Z9P4rk2FEGW+/l1Oq1tveezBVk1C/BVFxLSu3zayvpyzbh3ferfU6tMz3N/P/OTDt90Wfkvq9uNCiOzj+fkXi29v26CCJZVabYH+3nWCfIQQ+scAAADADYMGNAAAAG4oAx6+7ZagWl+ty5JPjx7L9/czNw72t9vVwcPX5p0r2rl20PmfRnw254G7OoUqijh3ocjp6+fzi596OeXChaI93ww+e2D4kvkPxndtIufcn5Gbd77ovandsvc85+3tOeHt74+dKBBCzHh/V0gjvxUf9x3/t7iKlGTy8Pj5WL7ZyzR6WKeLlyza42u4WwAAAIBrKarjvzYEAAAulpOT06xZM3dX8YdazcZaSuu7uwqgxvA2m7b9e6Cqqp17LXZ3LcD1zuyVW5Tztrur+MN19csXAICbB1dAAwAAAAAAAABcghBCAAAAoBJKrfYRb3xr598RAgAAABVAAxoAAACoBLtd3bX3tLurAAAAAGoGbsEBAAAAAAAAAHAJGtAAAAAAAAAAAJegAQ0AAAAAAAAAcAka0AAAAAAAAAAAl6ABDQAAAAAAAABwCRrQAAAAAAAAAACXoAENAAAAAAAAAHAJGtAAAAAAAAAAAJegAQ0AAAAAAAAAcAka0AAAAAAAAAAAl6ABDQAAAAAAAABwCRrQAAAAAAAAAACXoAENAAAAAAAAAHAJGtAAAAAAAAAAAJegAQ0AAAAAAAAAcAka0AAA3OxCgwM9lFJ3VwEAuNF4KKWNQ4LcXQUAAHAzT3cXAAAA3GzuW48Of23lqTO57i4EAHBDaRwSNPfNfu6uAgAAuJmiqqq7awAA4KaTk5PTrFkzd1cBAMBNhF++AAC4BbfgAAAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAAAAAAACAS9CABgAAAAAAAAC4BA1oAAAAAAAAAIBL0IAGAAAAAAAAALgEDWgAAAAAAAAAgEvQgAYAAAAAAAAAuAQNaAAAgKqKi4v7y1/+Eh8ff9ddd/Xt2zc9Pb2yM5w7d65Hjx5CiN9//71jx45VKcZmswUHB6ekpBhm1h4ArjBv3rw+ffroX3nrrbcGDRp07SvZtGlTu3btWrdu3blz5y1btlTqs1X/AQQAAIABDWgAAIBqsG7dui1btmzbtm369OlDhgzZs2fP1c1Tu3bt7du3V6WS1NTUe+65Z+nSpVWZBKisc+fO7dmz5+jRo/Kp1WpdtmxZXl7eNS6joKDgr3/96+rVqzMyMpYtWxYUFFTWyBEjRtjtdsPjqv8AAgAAwIAGNAAAQHWKjo7+9NNP//73v1/1DGazuSoFfPnll2PGjMnKyiouLq7KPEClnDt3LjEx8f/9v/8nn65atapnz57nzp27xmUcP368ffv2LVq0EEI0b968Xbt2ZY3cs2ePqqqOj6v4AwgAAAADGtAAAADVLCYm5vz58xaLRQixc+fOe+65p2fPnvfcc09GRoYckJGR0adPn7vvvrt9+/bvv/++/rMlJSXyDgAlJSVxcXFLly5t165dTEywElTRAAAgAElEQVTMG2+8IQc4nVBjsVh++umnmJiY3r17a3fhAK6Bc+fODRgwYPfu3RcvXhRCzJ8/f8SIEfKnQFXV559//v7772/fvv1rr70myji9HYcJIVatWtWlS5d77703MTGxbdu28sVyfgoiIyN/++23OXPmyK8ua/yHH374008/9evX7/PPP9c/vuIPoGM9paWlw4cP79Wr13333bd27VrX7jIAAEAN5OnuAgAAAG5AoaGhp06d8vX1ff7557///vuAgIDDhw8nJibu3r37woULgwcPXrp0aUREhM1m279/f1mTZGdnp6Wl7d6928vLq3379iNGjFAUxXFC/UfWr19///33CyGeeOKJcePG9evXz+VLBYQQQpw7d65evXpDhw5duHBh165dmzZtGhISIt9SFGXKlCmNGjUSQsTHx+/duzcqKsrx9G7UqJFhWIMGDcaNG7dnzx4/P7/vvvvuiy++EEL8+uuv5fwUeHp6btmyZdasWe3bt58yZcpjjz3mdPwLL7ywYMGCVatWmUwmIYT2uKSkRJvKsUKr1epYz/bt28+dO7du3TpVVWXzHQAAAHo0oAEAAKrfqVOnQkNDV65cWVpa+vzzz8sXf/rpp9LS0k2bNvXt2zciIkIIYTKZbr/99nLmmT59upeXlxCiXbt2p0+fPnLkiOOEcoC0dOnSrKysHTt2CCF27Nhx+fJlFy0QMDh37lzdunUHDx7cvXv3tLS0V155RQjh6ekpT9H8/Px//etfP//8c15eXnZ2dlRUlHA4vRs1amQYduTIkfvvv9/Pz08I8Ze//KVJkyZCiM2bN5f/U+Dt7T1+/PjnnnvuhRdeyMnJCQkJKX98ORx/AB3rad++fW5u7uTJk1944QXZPQcAAIAeDWgAAIBqduDAgaCgILPZbDKZnnzyyYkTJ+rftdvtiqJUZJ7GjRtrbTKz2ayqqtMJNYWFhceOHdPyD99+++1///vfPXv2rMJSgIoqLCz08fERQtx3333btm2LiYkRQtxyyy3nz58/derUq6++Onv27BYtWowbN06Odzy99+7daxjm4eERGBiofYW8TXP5PwWaBg0avP/++wMGDBg5cqTT8Yqi2Gw2eQW0/rHGsUKn9QQGBn777bdr16596qmnEhIShgwZUsmdAwAAuMFxD2gAAIDqdPjw4aeffvqdd94RQnTv3n3NmjUnTpwQQqiqeuDAAfniqlWrfvnlF/liamqqEMLLy+v8+fOGqRz71E4n1PznP//p0aOH9vTRRx9dunSpNrPTrwCqi3a6TpgwYcOGDfJx3bp1z50799133/Xs2fP2229XVfXf//63YbzGcdjdd9+9Zs2a/Px8IcSOHTtOnjwprvRTcPTo0Q8++EBe+//VV1+1bNmyrPFhYWF79+51fOy4Io3Tes6ePfvbb7/17t37rbfe+vLLL69q8wAAAG5kXAENAABQDR588EGTyWSz2fz9/T/55BPt8s+FCxcOGzbMarUqitKzZ8+2bdvWrVt30aJFMp/twoULffr0iY+PDwgIaNGixcyZM0eOHFnOtzidUHt36dKlkyZN0p6Gh4efOXPGZrPJmceMGaM9cN0+4ObkePmwJBvQgwYNGjZsWO/evQMDAwcMGFDWJI7DGjVq9Oabb/bp0ycoKCg8PDwyMlJc6acgODj42LFj7du39/b2DgsL+/jjj8saP27cuMTExIcffnjChAna4/J/OpzWk5eXN2rUKJvNVqdOnfHjx1/tFgIAANywFPkPxwAAwLWUk5PTrFkzd1cBADWGqqodO3b84Ycf3F3IH663elAR/PIFAMAtuAIaAACgSip4Q+frB9cfoNq56Kdg69atXl5eTZs2rV279ltvvdWpUyf3/rhVpB5+vgAAAAy4AhoAADfgIiwAqIg1a9asW7cuNze3e/fuzz77rKenmy+gud7qQaXwyxcAALegAQ0AgBvw38AAAFxj/PIFAMAtPNxdAAAAAAAAAADgxkQDGgAAAAAAAADgEjSgAQAAAAAAAAAuQQMaAAAAAAAAAOASNKABAAAAAAAAAC5BAxoAAAAAAAAA4BI0oAEAAAAAAAAALkEDGgAAAAAAAADgEjSgAQAAAAAAAAAuQQMaAAAAAAAAAOASNKABAAAAAAAAAC5BAxoAAAAAAAAA4BI0oAEAAAAAAAAALkEDGgAAAAAAAADgEjSgAQAAAAAAAAAuQQMaAAAAAAAAAOASNKABAAAAAAAAAC5BAxoAAAAAAAAA4BI0oAEAAAAAAAAALkEDGgAAAAAAAADgEjSgAQAAAAAAAAAuQQMaAAAAAAAAAOASNKABAAAAAAAAAC5BAxoAAAAAAAAA4BKe7i4AAICbVHFxsbtLAAAAAADAtbgCGgAAAAAAAADgEjSgAQAAAAAAAAAuQQMaAAAAAAAAAOASNKABAAAAAAAAAC5BAxoAAAAAAAAA4BI0oAEAAAAAAAAALkEDGgAAAAAAAADgEjSgAQAAAAAAAAAuQQMaAAAAAAAAAOASNKABAAAAAAAAAC5BAxoAAAAAAAAA4BI0oAEAAAAAAAAALkEDGgAAAAAAAADgEjSgAQAAAAAAAAAuQQMaAICaSlVVVVVvpC8CgJsBf6gCAICbiqe7CwAAAFfjtgkX/hLhVWhRbXYxf5BfkK+ivXXotHXrkdJh3Wq5+ouknT9bf8wp7XabVzV+KQDcqDp37tylS5fCwkKbzfbOO+8EBgZegy/929/+NmXKlICAAPn00KFDmzZtGjly5NXNdvRk3nOzVuhf8fU2vz+y762hda/42X1Zp/1qmcMb19OmGjlnTZsWjd5+sffVFQMAAK5/NKABAKh5VFVt29j00eDaQoiU9NIPNheN611LUf5oDUeFeLYONrnoi8Y/6Os4RgjROtgUFcL/rwCA8qiqGhUV9Y9//EMIsXHjxn/961+vvvqqq7+xrNflW9rvjoqr4+/7ZPf2QojpizaF1A14undHs6epjn+F/gIyccbS2KhmH776qHy6fveR7/dn//jTydcG3VPBGQAAQI3DfygCAHAjSD9l+3xnyYkL9pe6+QTUUlLSLRlnbHMG1A7y9Thw0vZVWsmo7rVeWf67hyLMnuIfj/t6mZR5W4p3Z1treSnN63ocOGmTVzf/dkkds+L3T5/2K+uLVFWdm1r8Q47NyyTq+CrTH66lFZCSbhl7f62rmxYAbk6qqn788cf79u3z8vIKDAwcN27cqFGj3nrrLX9//9mzZ5tMpr/97W/5+fmTJk16//3333///V9++aWoqOiJJ5649957MzIyli9ffurUqaFDh3bu3Fn/bvfu3VVVnTRpUnZ2dp06dX799VfD9x46dOjpp5/28fFp1arVqFGjnn32WXk5dl5e3qRJk+bOnTtixIg5c+Y4rbluoO+zD3UWQnywcntYSN1nH4qdu2r7i7NXtgi55fciy/mLhbFtmr386J3b9mfP+HzT1Gfu37gnc3nqfv9a3n974i+FxZYtaT9P+Hj9tKH3W2325NT9fe+KWrfrp7U7Dg/qefuXm9LWbDvYIrjupcKSScMenJX928a8S34mj8GhdZ5uWs+r8r1yAABwPaABDQBAjZR+0jZsye+/W9RSq5iXUPvEBfu3P5V+PyaglllJP2UTQgzo6J38o2Xond6f7SweFu/t7yP+Obi2oojFu0q+/cnq4ykuFKqLnvYTQhRZ1O0/Wz/bWfzyPT6LdhT9tau5nC/akFFaUKQuTKwthFh/qPSdDcV3t/TSBm85UlrBaQHg5pSRkfHqq68WFhaWlpbOnj07NTX14sWLH3zwgRDi22+/nTt3bq9evTZs2PDoo48eP35cXqS8fv36Xr16bd682WQyvf/++6qqPvbYY/fee68QYuvWrevWrfPx8XF8d+PGjV5eXp999pnFYuncubOhjIsXL3755ZeKorz00kuHDx8eNGjQsmXLnn322S+//DIhIUEIUVb32aljZy/8Z8fhxvUDHotvu+mHrIa3BAghzl8q3J1xYnfG8TcXbx76YGeTSZFXY9f2MQfXDRBCHMo+e+R47oTEHoXFpSu3HhjU8/bTeRf/vT2jZ6dWb7/Ye9ThkxvyLr3UrL7Frh64VGy3q8JEAxoAgBqJBjQAADVSdGPTvITaQghFUVRVPXFB9IzyqmVWtH9MfV9rr4EfXxoSaz6db29Rz3SmwP5mSpGiiF8vqndFeF4uUXu18ZIf9/VW7r3N66OtxcO7+ez6xTq6p285X7T7F2vfdmbtKxZs+z8N6N3Z1gpOCwA3p9atW8+ePVv8+Yfqjz/+2KtXL/lWt27dFi9e/Pzzz48ZMyY6OjoyMrK0tPTnn3/+7rvv3n333Q8//DAzM3Py5MlCiOjoaKvVKoS45557fHx8hBDp6emGdw8fPnz33XcLIcxmc1xcnKGMdu3ayd8XXbp0OXLkSN++fT/99NNnnnnmhx9+eOmll65iXXX8a62c/lRo/cDV3x3Uv+7va25Qx2/bgV9e6Bv3QNxtr3+0tu2twcMe6SKE+HpHhsVqS//5jJenx/d7s385fU4I8UBc609ef9zmZVp3+MzfwxqMC290FcUAAIDrCg1oAABqHq3LLB/I/w2spehv5WnyEK0aev5jY3HvaC8hxCfbSxJivTu38Jz2dZEQokMzz3Xppbc39RRC5BeqgbVEj9bmyf8uuq+1ufwvig3z/PqApW3jWkKIDRmldzT3VBRRavtjfAWnBYCbk+Mfqnfcccc333wTFRUlhEhNTW3Xrl2tWrXMZvOyZcv++te/Wq3WxYsX+/r6ent7y5bxiBEjhBAWi8XT01MIERAQIKdyfLdly5a7d+++6667ZDPaUMmOHTvkg++///7ll19WFCU+Pv7tt9/u1q3bVdwVWghRP6h2ZPOGF38vVhTFrtqFEDlnLwghwkLqrZ6R+Mna/77+0brDOb95eHhYbXZVVYtKSlN2/uTtZfpwzU5VFUWW0g3/zWzSIKheVDOLp8lTUTyEsNlVVRVCEZetNn/P6sk2AAAA1x4NaAAAaipDj0D/VD4eHGu+9x8Xf5oWpChKzyiv/7e5eNkexcdLEULpHul18JTt6U9/9zWLwFpK0sO+Azubb59W8OP4wPK/6L4o85FfbUM/+93LJAJrKdP61rpULKavLWodYhJCVGpaALg56f9Q7datW1ZW1siRIz09PQMCAsaNGyeEuO+++xYsWBAaGiqE+PHHH4cPHy4bxBkZGYMGDQoODg4JCXnllVf0Uzm+e//992/btm3UqFG///5748aNDTWEhIT8/e9//+2332JjY1u3bi1v3BEfH5+amioH/O1vf3v33XcrviiTh4enycPf1zvQz2fTD1lj5n395aZ9Qoj9R099++PRu9vdWi/Q95fT56OaN/xu/y+vf5TS9taQI8dzF7z+eN87o6w2e79xi1ZuPbB0euKE7N8eECLI03RfPf95OXl2IVRVPXCp+JOYZnW86EEDAFAjKWXFIgMAANfJyclp2LChu6v4H1VVj5+3f7C5eFb/2tf/tACAilNV1elFzYbXT5w48fHHH0+ZMqXiMz89Y1lYSN3xT907d9WOtKxTC157XAjx9Y6Md5Z+Z7XZ7rk9/IefTr7wcNzXOzL2ZZ2uH1R7YmKPQL9aby/ZfLnIcsdtjf+bcWL+q4/WD6othFix5cDSTftefa7XssuWSS0bBXmafi2xvv3zrzsvXK5l8ujXKHBo03o+Hh5V3Ipff/21WbNmVZwEAABUFg1oAADcoIoN6FrDzlVjMWdm15nzbfGRX23vPeH39+TLyT9YXDRt0by61TIzAKB6zZo1Kysra8aMGfXq1av6bMUWqxCqj/mPhABVVS8XWWp5e3maKt1B/t1q8/LwMHtUT/wgDWgAANyCBjQAAG5w/PjxevXqeVT5Yi4AAFARdrs9Ly+vadOm7i4EAICbDv/dCwCAG3h4eNjtdndXAQDAzcJut/P3vgAAuAW/gAEAcANPT08a0AAAXDN2u93T09PdVQAAcDOiAQ0AgBt4e3uXlpa6uwoAAG4WFovF29vb3VUAAHAzogENAIAb+Pr6FhcXu7sKAABuFhaLxdfX191VAABwM6IBDQCAG3h7e6uqarVa3V0IAAA3PqvVarfbuQIaAAC3oAENAIB7BAQEXL582d1VAABw47t8+XJAQIC7qwAA4CZFAxoAAPfw9/e32WzcCRoAAJcqLS21Wq3+/v7uLgQAgJsUDWgAANxDUZQ6deoUFBTY7XZ31wIAwI1JVdWCgoJbbrlFURR31wIAwE2KBjQAAG7j6+vr5+dXUFCgqqq7awEA4EajquqFCxf8/PyIHwQAwI1oQAMA4E5BQUE+Pj4XLlzgOmgAAKqRqqr5+fm1atUKCgpydy0AANzUFC65AgDA7fLz8y9fvhwYGOjl5eXuWgAAqPFKS0sLCgr8/PzoPgMA4HY0oAEAuC4UFhZeuHDBZDL5+fl5enq6uxwAAGokq9V6+fJlm81Wp04d7rwBAMD1gAY0AADXC1VVL126dPHiRUVRfHx8vLy8PDw8TCYTuUkAAJRFVdX/z969x0dV34kfHsFKVbQOhEsCiCZCJCByMSBaUHbVCqJNoSJdKGzZrl2sFZWqXbwrKOp6xVsUFVYFFEVR8Vp1ZfGyuisK3nCBehfvcpVAyPz+mJ/zmiZkGBI+tXWf56/knDlnvnPO92ReeXOYbN68uaamZuPGjVVVValUavfdd99tt928ewLAXwkBGgD+6lRVVa1fv76qqqq6urqmpsabNQDUZ4cddmjSpMmOO+7YrFmzXXbZpVmzZt/1iACAPyNAAwAAAAAQosl3PQAAAAAAAL6fBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEABJhBRQAACAASURBVA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAAAAhBCgAQAAAAAIIUADAAAAABBCgAYAAAAAIIQADQAAAABACAEaAAAAAIAQAjQAAAAAACEEaAAAAAAAQgjQAAAAAACEEKABAAAAAAghQAMAAAAAEEKABgAAAAAghAANAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoANhuUqnUXXfdNWTIkL322qtdu3Z9+/adPHnyV1999Zd59n322eff/u3ftvqwrl27Tp48uQH7X7BgwfHHH/+zn/3syCOPPOWUU1577bUcD968efPkyZNbtmx5ww03ZC+vqamZOnXqfvvt17Zt2/79+z/++OONXFX3ea+//vp+/fq1a9euT58+11xzzebNmzNrKysre/Xq1bZt2z59+tx11115bpW2YcOGnj17du3atb6nTqVSd999909/+tPi4uLCwsKePXuecMIJb775Zo6jlDFq1KgW3yoqKjrwwAPPPPPMDz/8MJ9t6zr99NMPOuigbV2Ve3gDBgzY1lWJ7XFFjB07tkWLFjNmzKi1PHu25znzoy+Qv3XbOjeyJ22LFi06depUUVHx3HPP1ff4PI9/hG0darYGzLRtFfTGUd9oG/AqGnMAa3n//fcPO+ywwsLCWm8NAMD3247f9QAA4Ptj3Lhxc+bMqaioGDt27E477fTyyy/ffPPN999///z581u3bh397BdeeGFZWVlj9jBt2rRFixZdd911tZZXVVVNmDBh9913P/fcc9u1a5dKpV555ZVJkyYdcMABv//97+vu55NPPvn1r3/92WefNW3atNaqSy+99Oqrrz777LN79+49bdq0UaNGPfbYYz179mzwqlouuuii6667buLEib17937uuecuuOCCJk2anHjiiYlEYsaMGeecc85ZZ53Vu3fv//zP/zzhhBN23333QYMG5d4qY8qUKR999FFBQcEWD10qlTr++OPnzp07bNiwMWPG7LLLLsuXL58+ffrhhx8+Z86cfv36bfXg77333ldffXUikVi/fv2SJUtuv/32O++8c9asWfls+1erkVfEqlWrHnnkka5du86aNWvMmDGNHEzcBfJ/VmbSJhKJTz755LbbbjvmmGOeeOKJLV6bjT/+jbFNQ61P0Ev4C79xNOxVbJcDmEgk7rzzzqVLl957772dOnXa1jEAAH/DUgDA9nDHHXckk8np06dnL1y6dGmHDh3Gjx//XY2qrrKyskmTJm1x1YknnnjCCSfUXT5hwoTZs2dXV1eff/75vXv3HjBgQGVlZU1NzWmnnTZjxoy6j586deqYMWPWrl3btm3b66+/PrN8w4YNhYWFkydPTn+7efPmfv36jRkzpsGratm4cWP79u3PO++8zJIxY8b83d/9XSqVqqmp6d69+8SJEzOrfvWrX/393/997q0yXn/99bZt25500kllZWVbPHTTp09PJpOzZs3KXrhmzZof//jHFRUVW9wk28iRI/v375+9ZO3atYMGDerUqdOaNWu2unktp512Wr9+/bZ11TYNL59Vjb8ibrnlluLi4v/4j/9IJpPLly/PXlVSUnLZZZfV/brxGnCBfD9s69yoe+o3bNhQVlZ2/PHHb++hNVZjhrp9Z1ddcW8c23Hk2/Fcn3766Q34EQQA/K3zERwAsH3cdNNNvXr1qnWfZufOnR966KGLL744/W1VVdU555zTrVu3Nm3adO/efdKkSdXV1elVHTt2vPrqq0888cTOnTsXFRWNGjXqiy++SCQSgwcPHjp0aPY+f/nLXx5xxBGJRKJTp0433HDD8OHDCwsLV69enf0fq1euXDlixIiioqIuXbpMnTp18uTJBx54YGYPTZs2vfTSS0tLSwsLC4cPH/7ZZ58lEomjjz46fcttixYtlixZknnwm2++uXr16uOOO27KlCkffPDBggUL5s2bd9999z344IOTJ0+ePXv2unXrah2KoUOHTp8+fdddd621/E9/+tOGDRv69++f/rZJkyZHH330M8880+BVtTRt2vSZZ54ZP358Zkn79u3T/5N9xYoV77//fvp+57Qjjzzy5ZdfXrNmTY6t0mpqak4++eSxY8fuu+++dZ807aabbjrwwANHjBiRvbB58+aPPvrofffdl/42x9mva9ddd73qqqs+//zzWbNmpZd89tln48aNKysrKywsLC8vr6yszDx45cqV6WlQWlp6ySWXZO+nvlU55tX2ks8VkdvMmTMrKioGDBjQoUOHu+++e1sHEHqBPP/880cdddRee+3VoUOHQYMGbfHjCGoNoLq6+pJLLunTp0/6DN56662ZR9a3txybZO/8oIMO+vnPf5791MOHD//JT36Sew85pk3DNGvWrGvXritWrNjiy88c/yOPPLK+0eaY5Bs3brzwwgu7du3avn37QYMGvfjii4lGTONaQ83z2syeQttrPI1848hz5M8++2zbtm3TH2WT/SpyTI/ccp/r+nY7aNCgm2+++a233mrRosVVV12V5/TOfe2UlpZWVlaeffbZXbt27dix4y9+8YtPP/00vWqL5yj3q87nugYAGuK7LuAA8H2watWqFi1a1HfjZMaJJ55YXFw8d+7cFStW3H333R06dMjck1tSUlJcXDxz5szNmzf/7//+b7du3dI3l82cObNly5Yff/xx+mHr1q0rLCy87bbbUqlUly5d+vbte+6557744oubNm3Kvt9t+PDhXbp0efrpp1977bURI0b07t07c9NZWVlZeXn56aefvmjRogceeKBjx46nnnpq+iUMHDjwn/7pnz7//PPq6urMmM8///wXX3wxlUp17tx55cqV6YVffvnlxo0bU6nUDTfcMG/evPpeb607oBcvXpxMJl944YXMksrKymQy+eWXXzZsVe6jvWnTpoMPPnjcuHGpVOrRRx9NJpMffPBBZu2LL76YTCYXLVqUY6u0adOmde3ade3atddff/0W74D++uuvk8nkxRdfnHs8Oc5+ffcRH3DAAZl7vY877rhevXo9++yzy5Ytu+OOOwoKCh566KH0qoqKim7duj3zzDNLly497bTTSktLM6e7vlU55lVdDbgDOs8rIoe33347mUy+9NJLqVRq8uTJPXr0qKmpyazN5w7ouAtk9erVe+655ymnnLJ06dK33nprwoQJRUVFX331Ve4BTJw4saioaNasWcuXL7/11lvbtGlz++23p1KpdevW1be3+japtfPrr7++devWq1atyhz8Nm3aVFZW5t5DjmmTjy2e+j59+owePTr38a+srKxvtDkm+emnn96pU6f77rtv0aJFJ5xwQvv27d955508p/FWh5r7J/MWZ1pjxpPR+DeOfEa+bNmy4uLizLNkv4oc02ObDmCeU33VqlW/+93v+vTp8/nnn3/zzTd5Tu8cO0ylUmVlZWVlZXfcccemTZs+/PDDfffdd8KECTnOUY5XneNKBAAaSYAGgO0gHcvuuOOOHI/54osvWrVqlR1kJ02a1K5du6qqqlQqVVJSkv1ZDZdffnnbtm3XrVv3zTffdOzYcerUqenlc+fObdu2bbrdlJWVDRw4MLNJJit8+umnLVu2nDZtWnr5mjVr9tprr+y+lv7oibTf/OY3hxxySPrrww47rO4nDIwaNWrDhg2rV6/ee++9676o5557bsqUKfW95FoBes2aNQUFBTfeeGNmyfjx45PJ5HvvvdewVfU9b9rZZ5/dvn37ZcuWpVKpOXPmJJPJTPNKpVJvvPFGMplcsGBBjq1SqdTKlSs7duz44IMPplKp+gJ03bO/adOmtVmqq6tzn/36Mm5FRcWgQYPSXy9fvjxdT9IOPfTQdGf56KOPkslk5nTX1NQccMAB6dOdY1WOeVVXAwJ0PldEbueee255eXn66xUrViSTyWeffTazNp8AHXeBLF26NJlMPv/88+nlmzZtWrhw4fr163MMYPXq1W3atMm+WE466aTevXvn2FuOTWrtfOXKlS1btpwzZ07621mzZhUUFHz66ac59pBjbuQpfeo3feujjz4677zzksnkU089VXeEqazjX99oU/VP8jVr1rRt2/amm25KL6+qqho9evTTTz+d5zTOPdSt/mSuO9MaOZ6MRr5x5DPyL7744oADDsj+F7XMq8g9wfI/gKm8p3oq65Ne8p/eW31k9lvniSeemP4ApfrOUQOuxLoHBADYVj6CAwC2gx122CGRSOy4Y66/7vvaa69VV1eXl5dnlvTo0WP9+vWZ/8XcvXv3zKp99923qqrq448//uEPfzhs2LC77rorvXzevHlDhgzZfffd099m7y1j+fLlNTU1ffv2TX/bvHnzQw45JPsBmVWJRKKgoGDt2rVbfYFNmjTZvHlz3eWpVOoHP/jBVjfPjGTYsGFXXnnlCy+8sGHDhjlz5jzyyCOJROIHP/hBw1ZVV1ev+tY333yT/Vznn3/+zTfffOutt5aUlOQ5vC1udcYZZ/Tr12/IkCE5tmrSpEkikcj+n++33357hyzPP//8Vs/+Fm3evDkzqZo3b15ZWdm/f/8uXbqUlpa+8cYb6c8JefvttxOJRK9evdIP22GHHXr37p3+Oseq3POq8fK5InLYvHnz3XffPXz48Orq6urq6g4dOvTt23f27Nnbup+gC6SkpGSfffY5/vjjr7rqqldffbVp06YHH3zwzjvvnGMAS5Ys2bhx48CBAzOrfvzjH69YsWLdunX17S3HJrV23qZNm4MOOuihhx5Kf/vggw8OGDCgVatWOfaQY27k77XXXmv9ra5du86YMWPq1KnZT7fF41/faBP1T/I333yzqqoqM9qddtppxowZhx56aP7TOMdQG3BtNn48aY1849jqyDdt2jR69OiioqLM3w/MttUJVmsYeZ7rPHeb//Te6iO7du2aWbXHHnusWrUqUf85asCVWPdoAADbqoG/FQAA2dq2bdukSZPcMXHNmjWJRGK33XbLLGnevHkikcjkrewPTU5/nf5F+pe//OVtt9322muv7bPPPn/84x/vuOOOzMO2mDa+/PLLzM7TWrRokf2AXXbZJfP1DjvskEqlcgy7U6dOixcvLi8v33XXXd97770999wzkUh8+OGHVVVVxcXFixcv7tSpU47Na7n44ov/+Z//efDgwYlEory8/NRTTz3zzDOTyWTDVj3zzDPHHntses+/+MUvrrvuukQiUVNTc8opp9x333133XXXgAED0mt/9KMfJRKJ1atXZ45Y+timl9e31RNPPPHUU089++yzuV9U+uy/++67mSVHHXVUly5dEonEp59++o//+I+JPM7+Fi1btuzQQw9NJBKbNm0aNmxYdXX1lClTOnXqtOOOO/7DP/xD+jHpPWdXksxEyrEqkXNeNV4+V0QOTz/99MqVKy+66KKLLroos/CNN9649NJLf/jDH+a/n6ALpGnTpg8//PA111zz7//+7xdccEH79u3PPPPM4447LscA0ufimGOOSTfHRCJRU1OTSCQ++eST4uLiLe4t9ya1Xt3Pfvazs88+u6qqatOmTU899dQVV1yR+0lzz408lZSU3HTTTZmDVlxcXOufo+prr1scbY5J/vXXXyf+/Lxk5DmNcwy1Addm48eT1sg3jq2O/MYbb1y3bl1paWn6vG9xzzkmWLb8z3Weu81/em/1kbUacfqCre8cNeBKrHvoAIBtJUADwHbQvHnz7t27z5o169RTT23WrFn2qgceeGCnnXY68sgj079Op3/7TUt/nfk1O7t3rF69OvFtHu3Ro0f37t3vv//+/fffP5lMZvJofdKFLvuO4Ow/qbetfv7zn19zzTXl5eVjx46dOHHijTfeWFNTM27cuJEjR3bo0GHevHn3339//ntLJpP33HPPxx9/nEgkCgsLL7744pKSkvQRa8CqAw444OGHH07vOX0HZSKROOOMM+bPnz9v3ryePXtmnnefffZJJBLLly9v3759esmyZcuaNm2aqedb3GrevHnr1q3L3EOXSqVqampatWo1adKk3/zmN5mH7brrrj179rz//vsnTpyYvpkxfZ9gIpF477330o/Z6tmv64UXXli5cmX6Tr3/+Z//ef311+fPn9+vX7/02i+++KJjx46Jb7thesKkpdt67lWJbZ9X2ySfKyLH5jNnzuzbt292fd64ceMxxxwzf/78YcOGNXJs2+UCKSgouOCCCy644IKlS5dee+2148aNKy0t7dGjR32PT5/oysrKsrKy7OXt2rWrb2+5N6nl6KOPPv3005966qn060rfs59jD+l/L6lvbuRp5513zr5e8rfF0eaY5AUFBYk/v3wy8pzGOYbagGuz8eNJa+QbR/ro5Rh5aWnp5ZdfPmTIkPPPPz/7asp+4XlOsPzPdZ67zf/Zt2mcGfWdowZciTmuawAgTz6CAwC2j3Hjxn3wwQeXXXZZ9sK33nrr5JNPTn9kRLdu3Xbcccf/+q//yqx96aWXdt9998xNYdl32r7yyiu77LJLppaOGjXq/vvvnzt37ogRI9If+JBDeocvv/xy+tu1a9c+88wzeb6Kujd7lpWV7bzzzvfcc8+pp57atWvXgQMHDh48+Kijjho+fPhZZ501atSoWt0kt7lz5y5atKiwsLCwsLC6uvruu+9O39fcsFU/+tGPDvxW+kMzZs+efeedd86ZM6dWK9l7771LSkrmz5+fWTJ//vzMf6+ub6szzzxz4cKFC771u9/9rlWrVgsWLMjcdp3x29/+9p133qn7/9wXLVqU/mKrZ7+Wr7/+esKECXvuuedPf/rTRCJRVVWVyLpR96WXXnr33XfTJyvd1pcsWZJelf7c0vTXOValbdO82lZbvSLqs2rVqkceeWT48OE9s/Tt2/eQQw5pwKdw1NX4C+Tdd9/N/MtHaWnpFVdc0bRp0zfffDPHht26dWvWrNlnn33W6VvJZLJly5bNmjWrb285Nqm7/4KCgv79+z/++OPz588/4ogj0nfF5tjDVudGqC2ONvck33nnnTM/IWtqaoYMGZKZDI2cxtt6bW7f8TTmjWOrIz/iiCP222+/Sy65pLKy8umnn677wvOfYPnLc7f5P3vDxlnfOWrAldiYowEApLkDGgC2j2OPPXbhwoVXXHHFq6++OnTo0ObNm7/yyivTpk0rLS298MILE4lEMpkcOXLklVdeuffee3fv3n3hwoXTpk076aSTMh8AunLlyksuueS44457++23b7nllqFDh2Z+wT722GPPOeec999///nnn9/qSPbaa6/999//8ssv79y58x577HH++een78bdqj322GPx4sVLlixp165d9ocSTJkyZfz48YsWLRo3bty//uu/plKpxYsXjxo1qlevXiNHjqy7n1dffTV931lNTc2f/vSndNgqLy9v1qzZQw899PLLL19yySUtWrS49tpr169ff8IJJ6S3atiqbBs2bJg0adLhhx++bt267JrWp0+fnXbaacKECSeddFJRUVF5efljjz32xBNPpO/dzrFVOnlnlrRu3XrHHXdMf7ZGLRUVFS+88MLkyZP/+7//u6KiokWLFitXrnz44Ycfe+yxioqK9GvPffYzz75p06bXX3+9srJy3bp1995770477ZRIJLp27dqsWbPKysozzjjjjTfeuOCCCwYOHLhs2bLPPvusQ4cO5eXlV155ZXFxcUFBQWVlZXqTRCKRY1VarXk1ffr0O++889FHH23atGmtF7h27donn3wye0lZWVn64NS3aqtXRCKRuOWWW+65555aPfree++trq6u+7nbFRUV48eP/+STT9q0aVP3FOSv8RfIO++8M3bs2PPOO+8nP/nJDjvsMGfOnCZNmvTp0yfHtrvtttuYMWOmTJnSsmXLXr16vf/++xMnTiwqKpo9e/YHH3wwZsyYunvLsckWn2Lo0KGXXXbZ6tWrr7nmmq0+ae65scXzsn3VHW2OSd6qVatRo0ZdccUVRUVFpaWl06dPX7Ro0dSpU9MbbtOPx7q2+pO5rt122217jacxbxx5jnzEiBGPPvrob3/724ULF2b/YN/WCZanPHeb/7M3bJz1naMGXImNORoAwP/3Xf31QwD4Xpo7d+6QIUM6duzYrl27gw8++Oqrr16/fn1mbVVV1VlnndWlS5dWrVr16NHjiiuuqKmpSa8qKSmZMmXKH/7wh5KSkqKiorFjx37zzTfZex4+fPjgwYOzl5SVlU2aNCnzbUlJyWWXXZb+etmyZYMGDWrbtm2PHj1uv/32U089deDAgVvc6qyzzurVq1f66yeeeKKkpKRdu3ZPPvlk3Zf25JNP/upXvxoyZMjgwYPHjx+/ZMmS+g7CYYcdlqwjfTPj119//etf/7q4uLioqGjYsGFvv/12ZquGrcq2ePHius+bTCY/+eST9AOmTZvWo0eP1q1bH3jggQ888ECeW2Vcf/31ZWVl9b3qVCr18MMPDx06tLi4uHXr1l26dBk9enT2kcxx9keOHJl53oKCgm7dup188snvv/9+9s7vvffe/fffv7CwcPDgwa+//vof//jHPffcs1+/fqlU6t13362oqGjbtm3nzp0vvvjiSZMm9e3bN71VjlVp2fNq0qRJyWRy8+bNtV5X9vAy7rzzztyr0nJfEeedd15BQUGtpzvssMOOOeaYuof366+/bt269dSpU1N/Ptuzv84WeoHMnj27f//+RUVFe+655xFHHPHYY49tdQCbNm266KKL9ttvv9atW3fr1u20005bvXp1elV9e8uxSa2dp1Kpr776qnXr1h07dtywYUM+T5pjbmzxvNQycuTI/v3753hAjuNf32hzTPINGzb84Q9/6Ny5c1FR0eGHH75w4cLs56r743Gbhpr7J/MWZ1pjxlNXg9848hz5F198se+++44ePbrW8hzTY5sOYP5T/bTTTkuf0NwPy3+HOS7Y+s5RA65EAKCRtvJ3hwCAv4x99tnnX/7lX37/+99vce3nn3/es2fPa6+9Nv2BDFv1zTffbNy4MfMX9ioqKvbYY4/p06dvr9Hy/VB3XpWXl7/00kvf7aj+Alwg3yfb+uMx2l/beAAAvnM+ggMA/qp99dVXK1asmDhxYmlp6dFHH53nViNGjPj000+vvPLKVq1aPf744wsWLNguH57L98YW59UTTzzRsL8p9zfHBfL90LAfj/93xgMA8FfCHyEEgL9qM2fOPOqoo3bZZZcZM2bk//e1pk2b1q1bt9GjRw8YMGDmzJnXXXfdEUccETpO/rZscV4dfvjhN91003c7sL8MF8j3Q8N+PP7fGQ8AwF8JH8EBAAAAAEAI/zIPAAAAAEAIARoAAAAAgBACNAAAAAAAIQRoAAAAAABCCNAAAAAAAIQQoAEAAAAACCFAAwAAAAAQQoAGAAAAACCEAA0AAAAAQAgBGgAAAACAEAI0AAAAAAAhBGgAAAAAAEII0AAAAMD/a+/eg6uo7gCOH0JairU0Nw9ykxBybcKjiRYIBCGYBAIJUOIUaRCn+BrHRtuOYWCm4jAOIjPJtENpB6coFqtiiAhFwIDUlNQmJLQWh7Q4RaJixFjMiwAViDGPu/1jx+327tnXzb0E5Pv5i2zOnj3nd37nkTXmAgAQFryABgAAAAAAAACEBS+gAQAAAAAAAABhwQtoAAAAAAAAAEBY8AIaAAAAAAAAABAWvIAGAAAAAAAAAIQFL6ABAAAAAAAAAGHBC2gAAAAAAAAAQFjwAhoAAAAAAAAAEBa8gAYAAAAAAAAAhAUvoAEAAAAAAAAAYcELaOC65vP54uPjExISbrrpptmzZ5eXl3d3dwshWlpaoqOj+/v7nVdlfUsQFQZB605CQsKYMWNycnL+8Ic/WJTfsGFDamrq2rVrw9qqwdi7d+/58+eHuhUhoE8ALexXJiuuaQUFBbt27XJ1y1WVM1fVEGuR6ejoiI6Ovnz5sv67rpra2tpaUlKSnp6elpZ2yy23rFq1Sq1NX8lVNRB6YWqY82q1KLmKuXEuDCa79u/fv3DhwuTk5KSkpJkzZ27cuLGvr8+ivNleGVzLzS5eMT6f789//rOTi0KIqqqq+fPnJyUljR07trCw8LXXXgtVM2yDEI4oXcmJqT3L1coQphYOcjV2fvtVvgzadkQ6auFrg/XGdOUN7dJky1VGmR3yB38YCGGUQjtHBtmwK5D8AK5zvIAGrncvv/xya2vriRMnysvL6+rqgx1EvAAAFJdJREFUbr/99i+++CIpKampqSkyMjJUTwl5hWbU7rS2tp4+ffrxxx8vLS09fvy4WeE9e/Zs3Lhx/fr14W5V0MrKyq62H96Co08ALexXLCuuK1dVzlxVQ2wdGVdN/fGPfxwdHX3s2LFTp04dOnSoqanpscceC6jkqhoIvTA17Krtr9GWLVtKS0vvueeexsbG5ubmTZs27d+/f8WKFdZ3SffKK9PgIVRZWfnII4/ce++9x48ff/fdd0tKSkpLSysrK4e6XcG7komqPcvVyhCmFl6x1fgqXwZt4yAdtfC14SoM0dXMVbjMDvkhPAwM3lWVAFcg+QFc53gBDUAIIW644Ybs7Oxdu3a1tbXt2LHjzJkzEydO7O/v9/v9jz32WGZm5rRp0/Lz899++221fF1d3W233TZhwoR58+Y1NjYG1FZTU5Obmzt58uTMzEz1J1Wtwk8++SQhIeHFF1+86667vve9723ZsmXTpk133nnn1KlT9+7dq95+7NixwsLCrKysrKws9ZetWlpakpKSnnrqqfHjx7e3t+fm5m7dutW6R5GRkfPnz/f5fO+88460znvuueejjz56/PHH1bOp7UONBdS+VFZWLl++PDs7+6GHHvL7/WbBMd5uFlvNfffd19zcXFxcrEbmyJEjc+fOnT59enZ29pYtW4xdNoZd2sKCgoJnnnlGvcXv96enpwf81pu0Yc3NzQkJCU8//XRxcfFtt9326KOPqr8ZYeyXNAJaAujDrl20zSizAsaY2CaYWUdCFT2N9EEBSSUd08rKyilTptx6661r1qxRFEUI8cEHH0RHR2s15+bmVlVVSWMSkDN6xmcFNMY6AaRjra9h0qRJzz77rFpyYGBgwoQJdXV1tkMcxLywGHfjZNQYI3Pw4MEZM2aMGzfupz/9qd/vt1309E6cODF//vyRI0cKIbxeb0VFhfo7VlolAY+TThM9Y/rZrj96Zt03BsoiQ1xNsYBn6at1kuRG0g4a54LRjh07srKyxo8f/+ijjw4MDNjO0MuXL5eXl//yl7/80Y9+FBcXN2LEiOnTp+/bt6+8vNysy3oBe6V07Mxabrxo29pQrXvB6e7ufuKJJ8rLy5cvXx4bG3vjjTcWFxdXVFSkpqYGlHS4fppFRk9awHpQhjz/pYuG/lnSlUG6sLtdOpwv7M6PYWa7pMo2aaWddbKuGrNIepdZVdIksTiNSJ8oHTXnmaDvzqRJk44ePSqEuHTp0ujRo7UmzZw5s6KiQrpTCMPGFPRwS5PH1ay0flZra6vDc0Jwx37bjcY2MgGHfI3zw0BAbK3XLudnS321CxYs0Brj5HjpcLspLCw0nsekcTZrjO2JyLoqs/QAAKEAuI6lpKTU1NTor6xZs+bee+/9+OOPPR5PX1/fm2++OXXq1J6eHkVRqqur1cNNV1dXcnJyXV2doig7duz47ne/29fXp93S09MzZsyYP/3pT4qiNDQ0xMXFdXZ2at9ta2vzeDwVFRWKotTU1MTFxe3cuVNRlAMHDkybNk1RlHPnzo0bN27fvn2Konz00Uc+n+/kyZNtbW3R0dEbNmzw+/2KotTW1jY3N1t3p7e3d8+ePfHx8U1NTdI6FUXJysp64403nDzUrIDH4/ntb3+rKEpPT8+4ceNqa2ulwZHeLo2tXl9fn8fj+fDDD9UWpqSkVFdXK4py5syZ1NTU2tpafWFp2KUtfOGFF2bNmqXeVV9frx4x9VVJG6aO4K9//WtFUbq7uzMzM3fv3i3tl3V66MOuXZTeom+SWVSNMbFNMGlHQhg9jfRBAUllbP+nn34aHx/f2Niotjk2Nnbnzp3vv/++x+PRas7JyXnttdekMdHnjJ5ZrPTTyjoBbOfI1q1bFy5cqNZQW1ubnp4+MDBgPcTBzQuLcQ8YLP1d+si0t7d7PJ61a9cODAycPXs2JSWltrbWetELsHLlyvT09Keffvpf//rXwMBAwKAHDITZ+qMxSz/r9Udfg7T70kCZZYjbKRbwLH21tkmuRUn7h7SD0rmgb7N6+5o1a/x+f1tb28SJE/fu3Ws7Qw8fPhwTE6OOr5HZSmu2V0rHTtpy6UXr1oZw3Qtg7I704uHDh6Ojoz///HNprDTO10/bMZUWsN3+hjz/pYuG/lnSlUG6sLtaOlwt7M6PYdLNS7vddopJO2u7rkqzSHqX2Q5lDEUQh1XpqAW36ZSWlqoxfOONNwoLC++++25FUTo6OhITE9WhDwiRdGMKeridn1qdTzr9s1ydE4I79ltvNLaRUXSnTT3nhwF9fx3uRw7Pllq1+sbYzizn2430PGZ7ipMmf3AHQifnKADXJ34DGsD/iYqKunDhgvbl6NGjOzo6du3a1dnZWVhYWFZWJoT4y1/+kpSUlJubK4S48847Dx8+PHz4cO2WESNGnDhxYt68eUKIWbNmRUZGtrS0aN8dNmyYEGLhwoVCiNTU1P7+/kWLFgkh0tLSPv30UyHEoUOHbrjhhh/84AdCCJ/Pt2DBgr179w4bNkxRlKVLl6q35+Xl3XTTTdL233fffT6fz+fzJSYmbt68+eWXX54wYYK0Tv1dtg81KyCE+OEPf6j22ufz/fvf/5YGR3q7NLZmDh8+HB8fX1hYKIRITEwsKiqqrq7WF5CGXdrCJUuWNDc3/+Mf/xBC7Nmzp7i4WD98ZoOuWr58uRBi5MiRc+bMaWhokPbLOj2kbG+RFpDGxDbBpB0JYfQCBDxIn1TS9h85csTn802ZMkUIsWjRovj4+KCDpmcWK/200kgTwHaO3HHHHY2NjW1tbUKIV199denSpRER/ztjhHBeWIx7wGBZjIsQoqSkJCIiIiYmZty4cfrCTibmr371qyeffPKtt95asmRJamrqI488EvCrZ3q2649Z+lmvP/oapN23XTT03E4xi1DbJrnDEDmcCw8++OCwYcPi4+MLCgoaGhpsZ+iFCxeioqJGjBihfrlq1aoJX2ppaXEeNHWvlI6dtOXSi9atDfm655Yaq2984xvWxZyvn7ZjKi1gOyhDnv+udnPnbCe+q4U9IFxud0ntuttNUGUbImkWSe+SXpSGYjCHVSdxFpYrYX5+/l//+lf19vvvv/+dd95RFOXIkSPZ2dna+mNktjFZNEM63M5Prc4nnf5Zrs4JIqhjv3V4bSNjVth5zPX9dbgfOTxbSofMdmY5326k5zEnP14ZBXcgDNOSCOArgBfQAP7P6dOn9eeqjIyM7du319TUZGVlFRQU/O1vfxNCdHV1RUVFqQUiIiJiY2MDDi6vvPLKggUL5s2bV1BQ0NfXZ/y/CG+88Ub1XiHEN7/5TfXfarELFy60t7dP+tKbb7557tw59a6YmBjb9m/btu306dOnT58uLi5OSUnJz8+3rlNl+1CLAt/61rfUfwwfPtzv90uDI71dGlszHR0dsbGx2pfR0dEdHR0BZczCHtDCUaNGFRUVVVZW9vf379+//6677gqox6Jh3/72t7U6L1y4IO2XbXoY2d4iLWARE4sEk3YkhNELYHyQ+DKppO0/d+6cx+PRLuoLuA2ankWsjNNKmgC2cyQmJmb27Nnqb/C9/vrrAZEJ4byw6EvAYJlFQ6W1JzIyUl/YycSMiIgoLi7etm3be++99/rrr3d1dS1dutTsQbbrjzBPP9v1Ry+g+04WDY3bKWYbaoskdxgih3PB6/VqlZ8/f952hsbGxp4/f/7zzz9Xv1y3bl19fX19ff1nn33W39/vPGjaXmkcO2nLpRetWxvydc8tNaSXLl2yLelw/bQdU2kBh4MyhPnvajd3znbiu1rYAwSxS6rcboIqJyEyZpH0LulFaSgGf1hVBbcS5uXlHTt2bGBgoL6+fvbs2WlpaSdOnGhoaJg7d65FoMw2JutmGIfb+anV7aRTn+X2nBDcsd/hnu5qshtZxFzrr8P9yPnZ0jhkTmaWw+1Geh4L7ser4A6EYVoSAXwF8KflAfzP2bNn//jHP27YsEF/MTc3Nzc3t7e3d+vWrffff/977703evTos2fPqt9VFKWpqSktLU0rX1NTs3HjxpqamuTk5IGBgTFjxrhqQ2JiYmpqqv7XbYQQ6lHS9j2m3hNPPJGVlVVXV5eXlyet09VDLQoEkAbHrAHG2Jq10Ov1dnZ2al+ePXs24PcvXIV9+fLlDz74YGFhYWJiYkZGhrGAWcM6OjqSk5OFEF1dXR6PR9qvffv2WaSHlDRoX/va16wL2MbEQkBHQhs9iwepF9WkkrY/KirqP//5j3ZR/QUW9Wc2v9+v/uPixYtmMTGbIxaxkt5iTAAnE3Pp0qXPP//8d77zneTk5IkTJ+pLhnBeDGbcHbJugPp3jZcsWaJ+mZ6evnr16jlz5ph9JJ3t+mORfhbrjy1XgQr5FLNIcmNhaQd37dplnAtGXV1dasS6urrUH32tZ2hmZmZUVNSOHTseeOABIcSoUaNGjRqlfddhg7W9Ujp20lksvWjd2pAPiluZmZmjRo2qqKj4yU9+ol2srq4+derUz372M+2K8/XTLAjWBYLr8hXOf+e7uUa6sOvZTny3C7sr0s1L5WoT1FiHyCyLpHcZL0pDEarDanAZGBUVpf4tiC+++CIhISE7O7uhoaG+vv7hhx92FC83zTAOt/NTq9tJpz3L1TnBQnB36YV1VVT7a7t2qZyfLaUz1HpmOd9uhOw8FvSPV8EdCINYEgFcD/gNaABCCNHb23vs2LFly5bdcsstixcv1q5v37591apV/f39X//612+++WZFUYQQc+bMaW9vP3jwoBCiqqpq8eLF+rOL+ofbkpKSFEXZtGnTsGHDLl++7Lwlubm5bW1t6idvdHd3r1ix4vjx4wFl6uvrP/74Y+t6vF7vypUrf/7zn/f29trWOfgCGmlwpLdLY6sXERExfPhw9WSZk5PT2dmp1vDJJ58cOHCgqKhIX9hV2HNyckaOHLl69Wrpb1hYNGz79u1CiHPnztXU1OTl5Un7ZZ0ezoNmW8A2JhYCOjLI6B08eLCpqcnJgwLqMbZ/xowZp06dUv8fzN27d6sfR+71eiMjIz/44AMhxN///vczZ86YxUSfM7bPsgiOMQGcTIHvf//77777bmVl5bJlywK+FcJ5Edy4m0XGYff1/H7/ihUrNm/e3N3dLYTo7Ox89tlnp0+frv+/qvWPsw2dbfo5X3/0pIEyi8Mgp9ggE0/aQelcMKqoqBBCdHV1qZ/OJOzWtxEjRqxfv37t2rXPPfdce3t7X1/fP//5z7vvvjsuLi46Otq2wQF7pXTspC03646xtQcOHFB/Vg/5uufWyJEj161bt379+meeeaa1tfXixYs7d+586KGHxo4dqy/mfP20HVNpgeC6fCXzX7poSJ+lvyhd2F0tHWFNBuvNy2KKSTtru65Ks0h6l/SiNBRBHFaloxZ0nPPz8zds2DBr1iwhRHZ2dlVVVW9vr/4luPONyW0znO8awU26oM8Jg2lqSE44rmKucbgfuT1bBjTGemY5326E7DxmG2dpZIIbaLP5ru1uAK5fIf+r0gCuISkpKaNHj/Z6vfHx8VOmTCkrK1M/MkL79InPPvuspKQkIyNjypQpeXl52ieiHDly5NZbb01LS8vLyzt69Kj+losXLy5evHjy5Mn5+fn79u0rLS1NS0urrq5Wv6t+4of+KWqF77//vtfrVf/99ttvFxQUZGZmTp069cknnxwYGFDvunTpklogJyfnd7/7nbQ7+s9Q6unpmTx58saNG6V1Kv//+SS2D7UtsGDBgpdeekkaHOntZrHVKykpSUpK2rx5s1rt3Llzs7KyZs6cuW3btoCS0rDX1tZKW6goSllZWVxcXEdHh/Gh0oapg/X73/8+Nzc3IyNj9erVagylgbVID0X2IYRmQdOTFjDGxDbBpB0ZZPTmzJmzZcuWgAZLHxSQM9Ixfe65526++eZJkyatXr26qKjolVdeURTlqaeemjZt2pIlS9atW7do0SL1s1+kMdHnTEAApbHSGmOdANKxNtbw8MMP6yNjO8TBzQvbvugHS6NFRlrYdtHTa2xsXLZs2fjx48eOHTthwoSVK1e2t7cH9Fc/ENJponGSftY1WKxFxgSzyBDnU8z4LLPwGmswfgihWQelc0Hz4Ycfer3eF198MScnJyMjY82aNVpYLNY31aFDh4qKipKTkxMSEmbMmFFWVnb+/HmzBivme6V07E6ePCltuVl3Alqr3+BCte4FSElJiYmJif3SvHnzzC4qilJVVVVQUJCYmJiSknL77berH+mm52r9tB5TswLW29+Q57/ZoqE9y2xlkC7szpcOJy3UaG0IbpfUd0GxnGLSztquq9IsOnr0qPEui3OpcbjdHlZPnjwpHbXgNp233nrL4/G8+uqriqL09PR4vd5Vq1aZhchJhc6HW3FzanU46fS3uz0nDPLYb9xobCOjmHwIoW3MA2aK9l3rtSvos2VAjyxmlqvtRjGcx5zE2Zj8wR0Ize4y+/ENwPVjmGL4T9AAgK+8l156qbq6urKy0mH5lpaWyZMnd3R0REZe23+7KSQdCYje7t27IyIitL/JEMIHAQiC2/VtaF1brcVXnpPNi6QF9EJ15GNmAfhq46diALjutLe3/+Y3v9m8efNQN+SaZIze8OHD1Y9fBzDkrq317dpqLSBIWiA8mFkAvvL4G9AAcH35xS9+kZub+8ADD2RnZw91W6490ujdcccd6qe6Axha19b6dm21FhAkLRAezCwA1wP+BAcAAAAAAAAAICz4DWgAAAAAAAAAQFjwAhoAAAAAAAAAEBa8gAYAAAAAAAAAhAUvoAEAAAAAAAAAYcELaAAAAAAAAABAWPACGgAAAAAAAAAQFryABgAAAAAAAACEBS+gAQAAAAAAAABhwQtoAAAAAAAAAEBY8AIaAAAAAAAAABAWvIAGAAAAAAAAAIQFL6ABAAAAAAAAAGHBC2gAAAAAAAAAQFjwAhoAAAAAAAAAEBa8gAYAAAAAAAAAhAUvoAEAAAAAAAAAYcELaAAAAAAAAABAWPACGgAAAAAAAAAQFryABgAAAAAAAACEBS+gAQAAAAAAAABh8V/5Ss7Zp3f+zAAAAABJRU5ErkJggg==","disable_correlation":true,"first_seen":"2024-06-18T05:54:02.801000+00:00","to_ids":false,"type":"attachment","uuid":"c634c872-7f66-4228-8b31-d0160fbcdd7f","value":"screenshot_landing_page.png"},{"category":"External analysis","comment":"HTTP Archive (HAR) of the whole capture","data":"eyJsb2ciOiB7InZlcnNpb24iOiAiMS4yIiwgImNyZWF0b3IiOiB7Im5hbWUiOiAiUGxheXdyaWdodCIsICJ2ZXJzaW9uIjogIjEuNDQuMC1iZXRhLTE3MTU4MDI0NzgwMDAifSwgImJyb3dzZXIiOiB7Im5hbWUiOiAid2Via2l0IiwgInZlcnNpb24iOiAiMTcuNCJ9LCAicGFnZXMiOiBbeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQwNTo1NDowMi42NDlaIiwgImlkIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAidGl0bGUiOiAiIiwgInBhZ2VUaW1pbmdzIjogeyJvbkNvbnRlbnRMb2FkIjogMTAwMSwgIm9uTG9hZCI6IDExNTh9fV0sICJlbnRyaWVzIjogW3sic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MDIuODAxWiIsICJ0aW1lIjogMjkzLjM2MSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mci8iLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8xLjEiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICIifSwgeyJuYW1lIjogIkFjY2VwdCIsICJ2YWx1ZSI6ICJ0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwqLyo7cT0wLjgifSwgeyJuYW1lIjogIlVwZ3JhZGUtSW5zZWN1cmUtUmVxdWVzdHMiLCAidmFsdWUiOiAiMSJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE3XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIkNvbm5lY3Rpb24iLCAidmFsdWUiOiAiS2VlcC1BbGl2ZSJ9LCB7Im5hbWUiOiAiSG9zdCIsICJ2YWx1ZSI6ICJiYXBzbWFuZGlyZGVwYXJpcy5mciJ9XSwgInF1ZXJ5U3RyaW5nIjogW10sICJoZWFkZXJzU2l6ZSI6IDM4NywgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzEuMSIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIlR1ZSJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICIxOCBKdW4gMjAyNCAwNTo1NDowMiBHTVQifSwgeyJuYW1lIjogIkNvbnRlbnQtVHlwZSIsICJ2YWx1ZSI6ICJ0ZXh0L2h0bWwifSwgeyJuYW1lIjogIkNvbnRlbnQtTGVuZ3RoIiwgInZhbHVlIjogIjExNCJ9LCB7Im5hbWUiOiAiQ29ubmVjdGlvbiIsICJ2YWx1ZSI6ICJrZWVwLWFsaXZlIn0sIHsibmFtZSI6ICJTZXJ2ZXIiLCAidmFsdWUiOiAib3BlbnJlc3R5In1dLCAiY29udGVudCI6IHsic2l6ZSI6IDExNCwgIm1pbWVUeXBlIjogInRleHQvaHRtbCIsICJjb21wcmVzc2lvbiI6IDAsICJ0ZXh0IjogIjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjxzY3JpcHQ+d2luZG93Lm9ubG9hZD1mdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5ocmVmPVwiL2xhbmRlclwifTwvc2NyaXB0PjwvaGVhZD48L2h0bWw+In0sICJoZWFkZXJzU2l6ZSI6IDE0NSwgImJvZHlTaXplIjogMTE0LCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAyNTl9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IDMuNjEsICJjb25uZWN0IjogMTAuMTkzLCAic3NsIjogMTMuODg3LCAic2VuZCI6IDAsICJ3YWl0IjogMjYxLjA1NCwgInJlY2VpdmUiOiA0LjYxN30sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIjE1LjE5Ny4xNDguMzMiLCAiX3NlcnZlclBvcnQiOiA4MCwgIl9zZWN1cml0eURldGFpbHMiOiB7fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MDMuMTIzWiIsICJ0aW1lIjogMTUyLjQ5MSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mci9sYW5kZXIiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8xLjEiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAidGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksKi8qO3E9MC44In0sIHsibmFtZSI6ICJVcGdyYWRlLUluc2VjdXJlLVJlcXVlc3RzIiwgInZhbHVlIjogIjEifSwgeyJuYW1lIjogIlVzZXItQWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxN18zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNy4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xIn0sIHsibmFtZSI6ICJBY2NlcHQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTIn0sIHsibmFtZSI6ICJDb25uZWN0aW9uIiwgInZhbHVlIjogIktlZXAtQWxpdmUifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAiYmFwc21hbmRpcmRlcGFyaXMuZnIifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA0MjEsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8xLjEiLCAiY29va2llcyI6IFt7Im5hbWUiOiAidHJhZmZpY190YXJnZXQiLCAidmFsdWUiOiAiZ2QiLCAicGF0aCI6ICIvIiwgImV4cGlyZXMiOiAiMjAyNC0wNi0xOVQwNTo1NDowMy4yNjdaIn0sIHsibmFtZSI6ICJjYWZfaXBhZGRyIiwgInZhbHVlIjogIjE4NS4xOTQuOTMuNDkiLCAicGF0aCI6ICIvIiwgImV4cGlyZXMiOiAiMjAyNC0wNi0xOVQwNTo1NDowMy4yNjdaIn0sIHsibmFtZSI6ICJjb3VudHJ5IiwgInZhbHVlIjogIkxVIiwgInBhdGgiOiAiLyIsICJleHBpcmVzIjogIjIwMjQtMDYtMTlUMDU6NTQ6MDMuMjY3WiJ9LCB7Im5hbWUiOiAiY2l0eSIsICJ2YWx1ZSI6ICIiLCAicGF0aCI6ICIvIiwgImV4cGlyZXMiOiAiMjAyNC0wNi0xOVQwNTo1NDowMy4yNjdaIn0sIHsibmFtZSI6ICJsYW5kZXJfdHlwZSIsICJ2YWx1ZSI6ICJwYXJrd2ViIiwgInBhdGgiOiAiLyIsICJleHBpcmVzIjogIjIwMjQtMDYtMTlUMDU6NTQ6MDMuMjY3WiJ9XSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA1OjU0OjAzIEdNVCJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogInRleHQvaHRtbCJ9LCB7Im5hbWUiOiAiVHJhbnNmZXItRW5jb2RpbmciLCAidmFsdWUiOiAiY2h1bmtlZCJ9LCB7Im5hbWUiOiAiQ29ubmVjdGlvbiIsICJ2YWx1ZSI6ICJrZWVwLWFsaXZlIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogInByaXZhdGUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibWF4LWFnZT04NjQwMCJ9LCB7Im5hbWUiOiAiU2V0LUNvb2tpZSIsICJ2YWx1ZSI6ICJ0cmFmZmljX3RhcmdldD1nZDsgUGF0aD0vOyBNYXgtQWdlPTg2NDAwIn0sIHsibmFtZSI6ICJTZXQtQ29va2llIiwgInZhbHVlIjogImNhZl9pcGFkZHI9MTg1LjE5NC45My40OTsgUGF0aD0vOyBNYXgtQWdlPTg2NDAwIn0sIHsibmFtZSI6ICJTZXQtQ29va2llIiwgInZhbHVlIjogImNvdW50cnk9TFU7IFBhdGg9LzsgTWF4LUFnZT04NjQwMCJ9LCB7Im5hbWUiOiAiU2V0LUNvb2tpZSIsICJ2YWx1ZSI6ICJjaXR5PTsgUGF0aD0vOyBNYXgtQWdlPTg2NDAwIn0sIHsibmFtZSI6ICJTZXQtQ29va2llIiwgInZhbHVlIjogImxhbmRlcl90eXBlPXBhcmt3ZWI7IFBhdGg9LzsgTWF4LUFnZT04NjQwMCJ9LCB7Im5hbWUiOiAiWC1Db250ZW50LVR5cGUtT3B0aW9ucyIsICJ2YWx1ZSI6ICJub3NuaWZmIn0sIHsibmFtZSI6ICJTZXJ2ZXIiLCAidmFsdWUiOiAib3BlbnJlc3R5In0sIHsibmFtZSI6ICJYLUFkYmxvY2stS2V5IiwgInZhbHVlIjogIk1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQUpSbXpjcFRldlFxa1duNmRKdVgvTi9IeGw3WXhiT3d5OCs3M2lqcVlTUUVOK1dHeHJydUFLdFp0bGlXQzg2K2V3UTBtc1cxVzhwc09GTC9iMDB6V3FzQ0F3RUFBUV9LeHNOaDZGNXhDNXZaY1Q5MFNrUzhwM1pmMGdMREVPbmpiMnFseTJ1bnFUNTJ0dERQTnhKTWFLQXpjZDhmTC8rRWtWYW1GWSttSis0d3ZHcWpaQlFrQSJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiA2MjAsICJtaW1lVHlwZSI6ICJ0ZXh0L2h0bWwiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICI8IWRvY3R5cGUgaHRtbD48aHRtbCBsYW5nPVwiZW5cIj48aGVhZD48bWV0YSBjaGFyc2V0PVwiVVRGLThcIi8+PG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTFcIi8+PGxpbmsgcmVsPVwiaWNvblwiIGhyZWY9XCJkYXRhOixcIi8+PHNjcmlwdCBzcmM9XCJodHRwczovL3d3dy5nb29nbGUuY29tL2Fkc2Vuc2UvZG9tYWlucy9jYWYuanM/YWJwPTEmZ2RhYnA9dHJ1ZVwiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPVwiaHR0cHM6Ly9idGxvYWRlci5jb20vdGFnP289NTA5NzkyNjc4MjYxNTU1MiZ1cGFwaT10cnVlXCIgYXN5bmM+PC9zY3JpcHQ+PHNjcmlwdD53aW5kb3cuTEFOREVSX1NZU1RFTT1cIlBXXCI8L3NjcmlwdD48c2NyaXB0IGRlZmVyPVwiZGVmZXJcIiBzcmM9XCJodHRwczovL2ltZzEud3NpbWcuY29tL3BhcmtpbmctbGFuZGVyL3N0YXRpYy9qcy9tYWluLjM4YWRmY2ZhLmpzXCI+PC9zY3JpcHQ+PGxpbmsgaHJlZj1cImh0dHBzOi8vaW1nMS53c2ltZy5jb20vcGFya2luZy1sYW5kZXIvc3RhdGljL2Nzcy9tYWluLjExY2UyZWQ5LmNzc1wiIHJlbD1cInN0eWxlc2hlZXRcIj48L2hlYWQ+PGJvZHk+PGRpdiBpZD1cInJvb3RcIj48L2Rpdj48L2JvZHk+PC9odG1sPlxuIn0sICJoZWFkZXJzU2l6ZSI6IDcxNCwgImJvZHlTaXplIjogNjM4LCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAxMzUyfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogMTQ4LjY5MywgInJlY2VpdmUiOiAzLjc5OH0sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIjE1LjE5Ny4xNDguMzMiLCAiX3NlcnZlclBvcnQiOiA4MCwgIl9zZWN1cml0eURldGFpbHMiOiB7fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MDMuMjcyWiIsICJ0aW1lIjogMTU1LjM1NywgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYWRzZW5zZS9kb21haW5zL2NhZi5qcz9hYnA9MSZnZGFicD10cnVlIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogIlJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cDovL2JhcHNtYW5kaXJkZXBhcmlzLmZyLyJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE3XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtRGVzdCIsICJ2YWx1ZSI6ICJzY3JpcHQifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1Nb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1TaXRlIiwgInZhbHVlIjogImNyb3NzLXNpdGUifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAid3d3Lmdvb2dsZS5jb20ifV0sICJxdWVyeVN0cmluZyI6IFt7Im5hbWUiOiAiYWJwIiwgInZhbHVlIjogIjEifSwgeyJuYW1lIjogImdkYWJwIiwgInZhbHVlIjogInRydWUifV0sICJoZWFkZXJzU2l6ZSI6IDM5OCwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQtUmFuZ2VzIiwgInZhbHVlIjogImJ5dGVzIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIkFjY2VwdC1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogInRleHQvamF2YXNjcmlwdDsgY2hhcnNldD1VVEYtOCJ9LCB7Im5hbWUiOiAiQ29udGVudC1TZWN1cml0eS1Qb2xpY3ktUmVwb3J0LU9ubHkiLCAidmFsdWUiOiAicmVxdWlyZS10cnVzdGVkLXR5cGVzLWZvciAnc2NyaXB0JzsgcmVwb3J0LXVyaSBodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9jc3AvYWRzLWFmcy11aSJ9LCB7Im5hbWUiOiAiQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSIsICJ2YWx1ZSI6ICJjcm9zcy1vcmlnaW4ifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA1OjU0OjAzIEdNVCJ9LCB7Im5hbWUiOiAiRXhwaXJlcyIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkV4cGlyZXMiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MDMgR01UIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogInByaXZhdGUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibWF4LWFnZT0zNjAwIn0sIHsibmFtZSI6ICJFVGFnIiwgInZhbHVlIjogIlwiMTQ0NzgxMzUyMjMzOTg0MDUzNTJcIiJ9LCB7Im5hbWUiOiAiWC1Db250ZW50LVR5cGUtT3B0aW9ucyIsICJ2YWx1ZSI6ICJub3NuaWZmIn0sIHsibmFtZSI6ICJMaW5rIiwgInZhbHVlIjogIjxodHRwczovL3d3dy5hZHNlbnNlY3VzdG9tc2VhcmNoYWRzLmNvbT47IHJlbD1cInByZWNvbm5lY3RcIiJ9LCB7Im5hbWUiOiAiQ29udGVudC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJYLVhTUy1Qcm90ZWN0aW9uIiwgInZhbHVlIjogIjAifSwgeyJuYW1lIjogIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IiwgInZhbHVlIjogInNhbWUtb3JpZ2luOyByZXBvcnQtdG89XCJhZHMtYWZzLXVpXCIifSwgeyJuYW1lIjogIlJlcG9ydC1UbyIsICJ2YWx1ZSI6ICJ7XCJncm91cFwiOlwiYWRzLWFmcy11aVwiIn0sIHsibmFtZSI6ICJSZXBvcnQtVG8iLCAidmFsdWUiOiAiXCJtYXhfYWdlXCI6MjU5MjAwMCJ9LCB7Im5hbWUiOiAiUmVwb3J0LVRvIiwgInZhbHVlIjogIlwiZW5kcG9pbnRzXCI6W3tcInVybFwiOlwiaHR0cHM6Ly9jc3Aud2l0aGdvb2dsZS5jb20vY3NwL3JlcG9ydC10by9hZHMtYWZzLXVpXCJ9XX0ifSwgeyJuYW1lIjogIlNlcnZlciIsICJ2YWx1ZSI6ICJzZmZlIn0sIHsibmFtZSI6ICJhbHQtc3ZjIiwgInZhbHVlIjogImgzPVwiOjQ0M1wiOyBtYT0yNTkyMDAwIn0sIHsibmFtZSI6ICJhbHQtc3ZjIiwgInZhbHVlIjogImgzLTI5PVwiOjQ0M1wiOyBtYT0yNTkyMDAwIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDE5MDMxMSwgIm1pbWVUeXBlIjogInRleHQvamF2YXNjcmlwdDsgY2hhcnNldD1VVEYtOCIsICJjb21wcmVzc2lvbiI6IDExNDU4OSwgInRleHQiOiAiaWYoIXdpbmRvd1snZ29vZ2xlTkRUXyddKXt3aW5kb3dbJ2dvb2dsZU5EVF8nXT0obmV3IERhdGUoKSkuZ2V0VGltZSgpO30oZnVuY3Rpb24oKSB7d2luZG93Lmdvb2dsZUFsdExvYWRlcj0zO3ZhciBzZmZlRGF0YV89e3NlcnZpY2VfaG9zdDpcInd3dy5nb29nbGUuY29tXCIsaGFzaDpcIjExNzU0MjcwNzAwOTYzMTI1NDIyXCIscGFja2FnZXM6XCJkb21haW5zXCIsbW9kdWxlOlwiYWRzXCIsdmVyc2lvbjpcIjFcIixtOntjZWk6XCIxNzMwMTQzMSwxNzMwMTQzMywxNzMwMTQzNiwxNzMwMTUwNCwxNzMwMTUwOVwiLGFoOnRydWUsdWF0bTo1MDAsZWNmYzI6dHJ1ZSxsbHJtOjEwMDAsbGxkbDpcImJTNXpaV0Z5Y3k1amIyMD1cIixhYmY6e1wiX2Rpc2FibGVBZFJlcXVlc3RGb3JOZXdDb25zZW50U3RyYXRlZ3lcIjp0cnVlLFwiX2VuYWJsZU5ld0NvbnNlbnRTdHJhdGVneVwiOnRydWUsXCJfZml4Q3RjTGlua3NPbklvc1wiOnRydWUsXCJfZ29vZ0VuYWJsZVF1cFwiOnRydWUsXCJfc3dpdGNoR3dzUmVxdWVzdFRvVXNlQWRzZW5zZURvbWFpblwiOnRydWUsXCJfdXNlU2VydmVyUHJvdmlkZWREb21haW5cIjp0cnVlLFwiX3dhaXRPbkNvbnNlbnRGb3JGaXJzdFBhcnR5Q29va2llXCI6dHJ1ZSxcImVuYWJsZUVuaGFuY2VkVGFyZ2V0aW5nUnNvbmNcIjp0cnVlLFwiZW5hYmxlTm9uYmxvY2tpbmdTYXNDb29raWVcIjp0cnVlfSxtZHA6MTgwMDAwMCxzc2RsOlwiWVhCd2MzQnZkQzVqYjIwc1lteHZaM053YjNRdVkyOXRMR0p5TG1OdmJTeGpieTVqYjIwc1kyeHZkV1JtY205dWRDNXVaWFFzWlhVdVkyOXRMR2h2Y0hSdkxtOXlaeXhwYmk1dVpYUXNkSEpoYm5Oc1lYUmxMbWR2YjJjc2RXc3VZMjl0TEhWekxtTnZiU3gzWldJdVlYQndcIixjZGw6dHJ1ZSxjZGg6XCJcIn19O3ZhciBtO2Z1bmN0aW9uIGNhKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fXZhciBkYT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PVwiZnVuY3Rpb25cIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9O1xuZnVuY3Rpb24gZWEoYSl7YT1bXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSxcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csXCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnNlbGYsXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoXCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0XCIpO312YXIgZmE9ZWEodGhpcyk7ZnVuY3Rpb24gbihhLGIpe2lmKGIpYTp7dmFyIGM9ZmE7YT1hLnNwbGl0KFwiLlwiKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlicmVhayBhO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZiIT1udWxsJiZkYShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9fVxubihcIlN5bWJvbFwiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZil7aWYodGhpcyBpbnN0YW5jZW9mIGIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvclwiKTtyZXR1cm4gbmV3IGMoZCsoZnx8XCJcIikrXCJfXCIrZSsrLGYpfWZ1bmN0aW9uIGMoZixnKXt0aGlzLmRlPWY7ZGEodGhpcyxcImRlc2NyaXB0aW9uXCIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnfSl9aWYoYSlyZXR1cm4gYTtjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRlfTt2YXIgZD1cImpzY29tcF9zeW1ib2xfXCIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCkrXCJfXCIsZT0wO3JldHVybiBifSk7XG5uKFwiU3ltYm9sLml0ZXJhdG9yXCIsZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYTthPVN5bWJvbChcIlN5bWJvbC5pdGVyYXRvclwiKTtmb3IodmFyIGI9XCJBcnJheSBJbnQ4QXJyYXkgVWludDhBcnJheSBVaW50OENsYW1wZWRBcnJheSBJbnQxNkFycmF5IFVpbnQxNkFycmF5IEludDMyQXJyYXkgVWludDMyQXJyYXkgRmxvYXQzMkFycmF5IEZsb2F0NjRBcnJheVwiLnNwbGl0KFwiIFwiKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWZhW2JbY11dO3R5cGVvZiBkPT09XCJmdW5jdGlvblwiJiZ0eXBlb2YgZC5wcm90b3R5cGVbYV0hPVwiZnVuY3Rpb25cIiYmZGEoZC5wcm90b3R5cGUsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGlhKGNhKHRoaXMpKX19KX1yZXR1cm4gYX0pO2Z1bmN0aW9uIGlhKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfVxuZnVuY3Rpb24gamEoYSl7cmV0dXJuIGEucmF3PWF9ZnVuY3Rpb24gdyhhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT1cInVuZGVmaW5lZFwiJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYodHlwZW9mIGEubGVuZ3RoPT1cIm51bWJlclwiKXJldHVybntuZXh0OmNhKGEpfTt0aHJvdyBFcnJvcihTdHJpbmcoYSkrXCIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZVwiKTt9ZnVuY3Rpb24ga2EoYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPXcoYSk7Zm9yKHZhciBiLGM9W107IShiPWEubmV4dCgpKS5kb25lOyljLnB1c2goYi52YWx1ZSk7YT1jfXJldHVybiBhfXZhciBsYT10eXBlb2YgT2JqZWN0LmNyZWF0ZT09XCJmdW5jdGlvblwiP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31iLnByb3RvdHlwZT1hO3JldHVybiBuZXcgYn0sbWE7XG5pZih0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT1cImZ1bmN0aW9uXCIpbWE9T2JqZWN0LnNldFByb3RvdHlwZU9mO2Vsc2V7dmFyIG5hO2E6e3ZhciBvYT17YTohMH0scGE9e307dHJ5e3BhLl9fcHJvdG9fXz1vYTtuYT1wYS5hO2JyZWFrIGF9Y2F0Y2goYSl7fW5hPSExfW1hPW5hP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhK1wiIGlzIG5vdCBleHRlbnNpYmxlXCIpO3JldHVybiBhfTpudWxsfXZhciBxYT1tYTtcbmZ1bmN0aW9uIHJhKGEsYil7YS5wcm90b3R5cGU9bGEoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYocWEpcWEoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPVwicHJvdG90eXBlXCIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EuaGc9Yi5wcm90b3R5cGV9ZnVuY3Rpb24gc2EoKXt0aGlzLk5hPSExO3RoaXMuZmE9bnVsbDt0aGlzLmhkPXZvaWQgMDt0aGlzLmthPTE7dGhpcy53ZD10aGlzLmxiPTA7dGhpcy5sYT1udWxsfWZ1bmN0aW9uIHVhKGEpe2lmKGEuTmEpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmdcIik7YS5OYT0hMH1zYS5wcm90b3R5cGUuU2E9ZnVuY3Rpb24oYSl7dGhpcy5oZD1hfTtcbnNhLnByb3RvdHlwZS5YYT1mdW5jdGlvbihhKXt0aGlzLmxhPXtXZTphLHRmOiEwfTt0aGlzLmthPXRoaXMubGJ8fHRoaXMud2R9O3NhLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5sYT17cmV0dXJuOmF9O3RoaXMua2E9dGhpcy53ZH07ZnVuY3Rpb24gdmEoYSl7dGhpcy5DPW5ldyBzYTt0aGlzLklmPWF9dmEucHJvdG90eXBlLlNhPWZ1bmN0aW9uKGEpe3VhKHRoaXMuQyk7aWYodGhpcy5DLmZhKXJldHVybiB3YSh0aGlzLHRoaXMuQy5mYS5uZXh0LGEsdGhpcy5DLlNhKTt0aGlzLkMuU2EoYSk7cmV0dXJuIHhhKHRoaXMpfTtmdW5jdGlvbiB5YShhLGIpe3VhKGEuQyk7dmFyIGM9YS5DLmZhO2lmKGMpcmV0dXJuIHdhKGEsXCJyZXR1cm5cImluIGM/Y1tcInJldHVyblwiXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLkMucmV0dXJuKTthLkMucmV0dXJuKGIpO3JldHVybiB4YShhKX1cbnZhLnByb3RvdHlwZS5YYT1mdW5jdGlvbihhKXt1YSh0aGlzLkMpO2lmKHRoaXMuQy5mYSlyZXR1cm4gd2EodGhpcyx0aGlzLkMuZmFbXCJ0aHJvd1wiXSxhLHRoaXMuQy5TYSk7dGhpcy5DLlhhKGEpO3JldHVybiB4YSh0aGlzKX07ZnVuY3Rpb24gd2EoYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLkMuZmEsYyk7aWYoIShlIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiSXRlcmF0b3IgcmVzdWx0IFwiK2UrXCIgaXMgbm90IGFuIG9iamVjdFwiKTtpZighZS5kb25lKXJldHVybiBhLkMuTmE9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLkMuZmE9bnVsbCxhLkMuWGEoZykseGEoYSl9YS5DLmZhPW51bGw7ZC5jYWxsKGEuQyxmKTtyZXR1cm4geGEoYSl9XG5mdW5jdGlvbiB4YShhKXtmb3IoO2EuQy5rYTspdHJ5e3ZhciBiPWEuSWYoYS5DKTtpZihiKXJldHVybiBhLkMuTmE9ITEse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goYyl7YS5DLmhkPXZvaWQgMCxhLkMuWGEoYyl9YS5DLk5hPSExO2lmKGEuQy5sYSl7Yj1hLkMubGE7YS5DLmxhPW51bGw7aWYoYi50Zil0aHJvdyBiLldlO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fWZ1bmN0aW9uIHphKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5TYShiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS5YYShiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIHlhKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX1cbmZ1bmN0aW9uIEFhKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX1mdW5jdGlvbiBCYSgpe2Zvcih2YXIgYT1OdW1iZXIodGhpcyksYj1bXSxjPWE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyliW2MtYV09YXJndW1lbnRzW2NdO3JldHVybiBifVxubihcIlByb21pc2VcIixmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGcpe3RoaXMuRz0wO3RoaXMuV2E9dm9pZCAwO3RoaXMuQmE9W107dGhpcy5EZD0hMTt2YXIgaD10aGlzLmtjKCk7dHJ5e2coaC5yZXNvbHZlLGgucmVqZWN0KX1jYXRjaChrKXtoLnJlamVjdChrKX19ZnVuY3Rpb24gYygpe3RoaXMuYWE9bnVsbH1mdW5jdGlvbiBkKGcpe3JldHVybiBnIGluc3RhbmNlb2YgYj9nOm5ldyBiKGZ1bmN0aW9uKGgpe2goZyl9KX1pZihhKXJldHVybiBhO2MucHJvdG90eXBlLm5kPWZ1bmN0aW9uKGcpe2lmKHRoaXMuYWE9PW51bGwpe3RoaXMuYWE9W107dmFyIGg9dGhpczt0aGlzLm9kKGZ1bmN0aW9uKCl7aC5YZSgpfSl9dGhpcy5hYS5wdXNoKGcpfTt2YXIgZT1mYS5zZXRUaW1lb3V0O2MucHJvdG90eXBlLm9kPWZ1bmN0aW9uKGcpe2UoZywwKX07Yy5wcm90b3R5cGUuWGU9ZnVuY3Rpb24oKXtmb3IoO3RoaXMuYWEmJnRoaXMuYWEubGVuZ3RoOyl7dmFyIGc9dGhpcy5hYTt0aGlzLmFhPVtdO2Zvcih2YXIgaD1cbjA7aDxnLmxlbmd0aDsrK2gpe3ZhciBrPWdbaF07Z1toXT1udWxsO3RyeXtrKCl9Y2F0Y2gobCl7dGhpcy5rZShsKX19fXRoaXMuYWE9bnVsbH07Yy5wcm90b3R5cGUua2U9ZnVuY3Rpb24oZyl7dGhpcy5vZChmdW5jdGlvbigpe3Rocm93IGc7fSl9O2IucHJvdG90eXBlLmtjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhsKXtyZXR1cm4gZnVuY3Rpb24ocCl7a3x8KGs9ITAsbC5jYWxsKGgscCkpfX12YXIgaD10aGlzLGs9ITE7cmV0dXJue3Jlc29sdmU6Zyh0aGlzLk9mKSxyZWplY3Q6Zyh0aGlzLlFjKX19O2IucHJvdG90eXBlLk9mPWZ1bmN0aW9uKGcpe2lmKGc9PT10aGlzKXRoaXMuUWMobmV3IFR5cGVFcnJvcihcIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGZcIikpO2Vsc2UgaWYoZyBpbnN0YW5jZW9mIGIpdGhpcy5YZihnKTtlbHNle2E6c3dpdGNoKHR5cGVvZiBnKXtjYXNlIFwib2JqZWN0XCI6dmFyIGg9ZyE9bnVsbDticmVhayBhO2Nhc2UgXCJmdW5jdGlvblwiOmg9ITA7YnJlYWsgYTtcbmRlZmF1bHQ6aD0hMX1oP3RoaXMuTmYoZyk6dGhpcy56ZChnKX19O2IucHJvdG90eXBlLk5mPWZ1bmN0aW9uKGcpe3ZhciBoPXZvaWQgMDt0cnl7aD1nLnRoZW59Y2F0Y2goayl7dGhpcy5RYyhrKTtyZXR1cm59dHlwZW9mIGg9PVwiZnVuY3Rpb25cIj90aGlzLllmKGgsZyk6dGhpcy56ZChnKX07Yi5wcm90b3R5cGUuUWM9ZnVuY3Rpb24oZyl7dGhpcy5VZCgyLGcpfTtiLnByb3RvdHlwZS56ZD1mdW5jdGlvbihnKXt0aGlzLlVkKDEsZyl9O2IucHJvdG90eXBlLlVkPWZ1bmN0aW9uKGcsaCl7aWYodGhpcy5HIT0wKXRocm93IEVycm9yKFwiQ2Fubm90IHNldHRsZShcIitnK1wiLCBcIitoK1wiKTogUHJvbWlzZSBhbHJlYWR5IHNldHRsZWQgaW4gc3RhdGVcIit0aGlzLkcpO3RoaXMuRz1nO3RoaXMuV2E9aDt0aGlzLkc9PT0yJiZ0aGlzLldmKCk7dGhpcy5ZZSgpfTtiLnByb3RvdHlwZS5XZj1mdW5jdGlvbigpe3ZhciBnPXRoaXM7ZShmdW5jdGlvbigpe2lmKGcuRmYoKSl7dmFyIGg9ZmEuY29uc29sZTtcbnR5cGVvZiBoIT09XCJ1bmRlZmluZWRcIiYmaC5lcnJvcihnLldhKX19LDEpfTtiLnByb3RvdHlwZS5GZj1mdW5jdGlvbigpe2lmKHRoaXMuRGQpcmV0dXJuITE7dmFyIGc9ZmEuQ3VzdG9tRXZlbnQsaD1mYS5FdmVudCxrPWZhLmRpc3BhdGNoRXZlbnQ7aWYodHlwZW9mIGs9PT1cInVuZGVmaW5lZFwiKXJldHVybiEwO3R5cGVvZiBnPT09XCJmdW5jdGlvblwiP2c9bmV3IGcoXCJ1bmhhbmRsZWRyZWplY3Rpb25cIix7Y2FuY2VsYWJsZTohMH0pOnR5cGVvZiBoPT09XCJmdW5jdGlvblwiP2c9bmV3IGgoXCJ1bmhhbmRsZWRyZWplY3Rpb25cIix7Y2FuY2VsYWJsZTohMH0pOihnPWZhLmRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiQ3VzdG9tRXZlbnRcIiksZy5pbml0Q3VzdG9tRXZlbnQoXCJ1bmhhbmRsZWRyZWplY3Rpb25cIiwhMSwhMCxnKSk7Zy5wcm9taXNlPXRoaXM7Zy5yZWFzb249dGhpcy5XYTtyZXR1cm4gayhnKX07Yi5wcm90b3R5cGUuWWU9ZnVuY3Rpb24oKXtpZih0aGlzLkJhIT1udWxsKXtmb3IodmFyIGc9XG4wO2c8dGhpcy5CYS5sZW5ndGg7KytnKWYubmQodGhpcy5CYVtnXSk7dGhpcy5CYT1udWxsfX07dmFyIGY9bmV3IGM7Yi5wcm90b3R5cGUuWGY9ZnVuY3Rpb24oZyl7dmFyIGg9dGhpcy5rYygpO2cua2IoaC5yZXNvbHZlLGgucmVqZWN0KX07Yi5wcm90b3R5cGUuWWY9ZnVuY3Rpb24oZyxoKXt2YXIgaz10aGlzLmtjKCk7dHJ5e2cuY2FsbChoLGsucmVzb2x2ZSxrLnJlamVjdCl9Y2F0Y2gobCl7ay5yZWplY3QobCl9fTtiLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gayhyLHQpe3JldHVybiB0eXBlb2Ygcj09XCJmdW5jdGlvblwiP2Z1bmN0aW9uKHUpe3RyeXtsKHIodSkpfWNhdGNoKHYpe3Aodil9fTp0fXZhciBsLHAscT1uZXcgYihmdW5jdGlvbihyLHQpe2w9cjtwPXR9KTt0aGlzLmtiKGsoZyxsKSxrKGgscCkpO3JldHVybiBxfTtiLnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCxnKX07Yi5wcm90b3R5cGUua2I9ZnVuY3Rpb24oZyxcbmgpe2Z1bmN0aW9uIGsoKXtzd2l0Y2gobC5HKXtjYXNlIDE6ZyhsLldhKTticmVhaztjYXNlIDI6aChsLldhKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKFwiVW5leHBlY3RlZCBzdGF0ZTogXCIrbC5HKTt9fXZhciBsPXRoaXM7dGhpcy5CYT09bnVsbD9mLm5kKGspOnRoaXMuQmEucHVzaChrKTt0aGlzLkRkPSEwfTtiLnJlc29sdmU9ZDtiLnJlamVjdD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGIoZnVuY3Rpb24oaCxrKXtrKGcpfSl9O2IucmFjZT1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGIoZnVuY3Rpb24oaCxrKXtmb3IodmFyIGw9dyhnKSxwPWwubmV4dCgpOyFwLmRvbmU7cD1sLm5leHQoKSlkKHAudmFsdWUpLmtiKGgsayl9KX07Yi5hbGw9ZnVuY3Rpb24oZyl7dmFyIGg9dyhnKSxrPWgubmV4dCgpO3JldHVybiBrLmRvbmU/ZChbXSk6bmV3IGIoZnVuY3Rpb24obCxwKXtmdW5jdGlvbiBxKHUpe3JldHVybiBmdW5jdGlvbih2KXtyW3VdPXY7dC0tO3Q9PTAmJmwocil9fXZhciByPVxuW10sdD0wO2RvIHIucHVzaCh2b2lkIDApLHQrKyxkKGsudmFsdWUpLmtiKHEoci5sZW5ndGgtMSkscCksaz1oLm5leHQoKTt3aGlsZSghay5kb25lKX0pfTtyZXR1cm4gYn0pO3ZhciBDYT10eXBlb2YgT2JqZWN0LmFzc2lnbj09XCJmdW5jdGlvblwiP09iamVjdC5hc3NpZ246ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXt2YXIgZD1hcmd1bWVudHNbY107aWYoZClmb3IodmFyIGUgaW4gZClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxlKSYmKGFbZV09ZFtlXSl9cmV0dXJuIGF9O24oXCJPYmplY3QuYXNzaWduXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fENhfSk7XG5mdW5jdGlvbiBEYShhLGIsYyl7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlICd0aGlzJyB2YWx1ZSBmb3IgU3RyaW5nLnByb3RvdHlwZS5cIitjK1wiIG11c3Qgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkXCIpO2lmKGIgaW5zdGFuY2VvZiBSZWdFeHApdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZpcnN0IGFyZ3VtZW50IHRvIFN0cmluZy5wcm90b3R5cGUuXCIrYytcIiBtdXN0IG5vdCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvblwiKTtyZXR1cm4gYStcIlwifW4oXCJTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPURhKHRoaXMsYixcImVuZHNXaXRoXCIpO2IrPVwiXCI7Yz09PXZvaWQgMCYmKGM9ZC5sZW5ndGgpO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGU9Yi5sZW5ndGg7ZT4wJiZjPjA7KWlmKGRbLS1jXSE9YlstLWVdKXJldHVybiExO3JldHVybiBlPD0wfX0pO1xuZnVuY3Rpb24gRWEoYSxiKXthIGluc3RhbmNlb2YgU3RyaW5nJiYoYSs9XCJcIik7dmFyIGM9MCxkPSExLGU9e25leHQ6ZnVuY3Rpb24oKXtpZighZCYmYzxhLmxlbmd0aCl7dmFyIGY9YysrO3JldHVybnt2YWx1ZTpiKGYsYVtmXSksZG9uZTohMX19ZD0hMDtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fX07ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBlfW4oXCJBcnJheS5wcm90b3R5cGUua2V5c1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4gRWEodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYn0pfX0pO1xubihcIlN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aFwiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD1EYSh0aGlzLGIsXCJzdGFydHNXaXRoXCIpO2IrPVwiXCI7dmFyIGU9ZC5sZW5ndGgsZj1iLmxlbmd0aDtjPU1hdGgubWF4KDAsTWF0aC5taW4oY3wwLGQubGVuZ3RoKSk7Zm9yKHZhciBnPTA7ZzxmJiZjPGU7KWlmKGRbYysrXSE9YltnKytdKXJldHVybiExO3JldHVybiBnPj1mfX0pO24oXCJOdW1iZXIuaXNGaW5pdGVcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYiE9PVwibnVtYmVyXCI/ITE6IWlzTmFOKGIpJiZiIT09SW5maW5pdHkmJmIhPT0tSW5maW5pdHl9fSk7XG5uKFwiU3RyaW5nLnByb3RvdHlwZS5yZXBlYXRcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3ZhciBjPURhKHRoaXMsbnVsbCxcInJlcGVhdFwiKTtpZihiPDB8fGI+MTM0MjE3NzI3OSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgY291bnQgdmFsdWVcIik7Ynw9MDtmb3IodmFyIGQ9XCJcIjtiOylpZihiJjEmJihkKz1jKSxiPj4+PTEpYys9YztyZXR1cm4gZH19KTtuKFwiQXJyYXkucHJvdG90eXBlLmZpbmRcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7YTp7dmFyIGQ9dGhpcztkIGluc3RhbmNlb2YgU3RyaW5nJiYoZD1TdHJpbmcoZCkpO2Zvcih2YXIgZT1kLmxlbmd0aCxmPTA7ZjxlO2YrKyl7dmFyIGc9ZFtmXTtpZihiLmNhbGwoYyxnLGYsZCkpe2I9ZzticmVhayBhfX1iPXZvaWQgMH1yZXR1cm4gYn19KTtcbm4oXCJPYmplY3QudmFsdWVzXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsZCkmJmMucHVzaChiW2RdKTtyZXR1cm4gY319KTtuKFwiT2JqZWN0LmlzXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBiPT09Yz9iIT09MHx8MS9iPT09MS9jOmIhPT1iJiZjIT09Y319KTtuKFwiQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXRoaXM7ZCBpbnN0YW5jZW9mIFN0cmluZyYmKGQ9U3RyaW5nKGQpKTt2YXIgZT1kLmxlbmd0aDtjPWN8fDA7Zm9yKGM8MCYmKGM9TWF0aC5tYXgoYytlLDApKTtjPGU7YysrKXt2YXIgZj1kW2NdO2lmKGY9PT1ifHxPYmplY3QuaXMoZixiKSlyZXR1cm4hMH1yZXR1cm4hMX19KTtcbm4oXCJTdHJpbmcucHJvdG90eXBlLmluY2x1ZGVzXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBEYSh0aGlzLGIsXCJpbmNsdWRlc1wiKS5pbmRleE9mKGIsY3x8MCkhPT0tMX19KTtuKFwiTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcIixmdW5jdGlvbigpe3JldHVybiA5MDA3MTk5MjU0NzQwOTkxfSk7bihcIk51bWJlci5pc0ludGVnZXJcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYik/Yj09PU1hdGguZmxvb3IoYik6ITF9fSk7bihcIk51bWJlci5pc1NhZmVJbnRlZ2VyXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihiKSYmTWF0aC5hYnMoYik8PU51bWJlci5NQVhfU0FGRV9JTlRFR0VSfX0pO1xubihcIkFycmF5LnByb3RvdHlwZS52YWx1ZXNcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKCl7cmV0dXJuIEVhKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gY30pfX0pO24oXCJOdW1iZXIuaXNOYU5cIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYj09PVwibnVtYmVyXCImJmlzTmFOKGIpfX0pO24oXCJNYXRoLmltdWxcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7Yj1OdW1iZXIoYik7Yz1OdW1iZXIoYyk7dmFyIGQ9YiY2NTUzNSxlPWMmNjU1MzU7cmV0dXJuIGQqZSsoKGI+Pj4xNiY2NTUzNSkqZStkKihjPj4+MTYmNjU1MzUpPDwxNj4+PjApfDB9fSk7LypcblxuIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuXG4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG52YXIgeD10aGlzfHxzZWxmO2Z1bmN0aW9uIEZhKGEpe3ZhciBiPXR5cGVvZiBhO2I9YiE9XCJvYmplY3RcIj9iOmE/QXJyYXkuaXNBcnJheShhKT9cImFycmF5XCI6YjpcIm51bGxcIjtyZXR1cm4gYj09XCJhcnJheVwifHxiPT1cIm9iamVjdFwiJiZ0eXBlb2YgYS5sZW5ndGg9PVwibnVtYmVyXCJ9ZnVuY3Rpb24gR2EoYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGI9PVwib2JqZWN0XCImJmEhPW51bGx8fGI9PVwiZnVuY3Rpb25cIn1mdW5jdGlvbiBJYShhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5oZz1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EuT2c9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fVxuZnVuY3Rpb24gSmEoYSl7cmV0dXJuIGF9O3ZhciBLYT1udWxsLExhPW51bGwsTWE9bnVsbCxOYT1udWxsLE9hPW51bGw7ZnVuY3Rpb24gUGEoKXt2YXIgYT17fTtyZXR1cm4gd2luZG93LmFkX2pzb24/d2luZG93LmFkX2pzb246dHlwZW9mIGFkX2pzb24hPVwidW5kZWZpbmVkXCImJmFkX2pzb24/YWRfanNvbjphfWZ1bmN0aW9uIFFhKGEpe0thfHwoS2E9UGEoKS5nZHx8bnVsbCk7cmV0dXJuIEthJiZLYVthXXx8e319ZnVuY3Rpb24gUmEoKXt0aGlzLmRhdGE9UWEoXCJmZlwiKX1mdW5jdGlvbiB5KCl7dmFyIGE9TGE7YXx8KGE9bmV3IFJhLFBhKCkuZ2QmJihMYT1hKSk7cmV0dXJuIGF9ZnVuY3Rpb24gU2EoKXt0aGlzLmRhdGE9UWEoXCJjZFwiKX1mdW5jdGlvbiBUYSgpe3ZhciBhPU1hO2F8fChhPW5ldyBTYSxQYSgpLmdkJiYoTWE9YSkpO3JldHVybiBhfWZ1bmN0aW9uIFVhKGEpe3JldHVybiBhLmRhdGEucGlkfHxcIlwifVNhLnByb3RvdHlwZS5kYT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5kYXRhLnJ9O1xuZnVuY3Rpb24gV2EoKXt0aGlzLmRhdGE9UWEoXCJwY1wiKX1mdW5jdGlvbiBYYSgpe3ZhciBhPU5hO2F8fChhPW5ldyBXYSxQYSgpLmdkJiYoTmE9YSkpO3JldHVybiBhfWZ1bmN0aW9uIFlhKGEpe3JldHVybiEhYS5kYXRhLmNnbmF9ZnVuY3Rpb24gWmEoKXt0aGlzLmRhdGE9UWEoXCJkY1wiKX1mdW5jdGlvbiAkYSgpe3ZhciBhPU9hO2F8fChhPW5ldyBaYSxQYSgpLmdkJiYoT2E9YSkpO3JldHVybiBhfTt2YXIgYWI9U3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7cmV0dXJuL15bXFxzXFx4YTBdKihbXFxzXFxTXSo/KVtcXHNcXHhhMF0qJC8uZXhlYyhhKVsxXX0sYmI9LyYvZyxjYj0vPC9nLGRiPS8+L2csZWI9L1wiL2csZmI9LycvZyxpYj0vXFx4MDAvZyxqYj0vW1xceDAwJjw+XCInXS87dmFyIGtiO3ZhciBsYjtmdW5jdGlvbiBtYigpe2lmKGxiPT09dm9pZCAwKXt2YXIgYT1udWxsLGI9eC50cnVzdGVkVHlwZXM7aWYoYiYmYi5jcmVhdGVQb2xpY3kpdHJ5e2E9Yi5jcmVhdGVQb2xpY3koXCJnb29nI2h0bWxcIix7Y3JlYXRlSFRNTDpKYSxjcmVhdGVTY3JpcHQ6SmEsY3JlYXRlU2NyaXB0VVJMOkphfSl9Y2F0Y2goYyl7eC5jb25zb2xlJiZ4LmNvbnNvbGUuZXJyb3IoYy5tZXNzYWdlKX1sYj1hfXJldHVybiBsYn07ZnVuY3Rpb24gbmIoYSl7dGhpcy5RZD1hfW5iLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlFkK1wiXCJ9O2Z1bmN0aW9uIG9iKGEsYil7YT1wYi5leGVjKHFiKGEpLnRvU3RyaW5nKCkpO3ZhciBjPWFbM118fFwiXCI7cmV0dXJuIHJiKGFbMV0rc2IoXCI/XCIsYVsyXXx8XCJcIixiKStzYihcIiNcIixjKSl9ZnVuY3Rpb24gcWIoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBuYiYmYS5jb25zdHJ1Y3Rvcj09PW5iP2EuUWQ6XCJ0eXBlX2Vycm9yOlRydXN0ZWRSZXNvdXJjZVVybFwifXZhciBwYj0vXihbXj8jXSopKFxcP1teI10qKT8oI1tcXHNcXFNdKik/Lyx0Yj17fTtmdW5jdGlvbiByYihhKXt2YXIgYj1tYigpO2E9Yj9iLmNyZWF0ZVNjcmlwdFVSTChhKTphO3JldHVybiBuZXcgbmIoYSx0Yil9XG5mdW5jdGlvbiBzYihhLGIsYyl7aWYoYz09bnVsbClyZXR1cm4gYjtpZih0eXBlb2YgYz09PVwic3RyaW5nXCIpcmV0dXJuIGM/YStlbmNvZGVVUklDb21wb25lbnQoYyk6XCJcIjtmb3IodmFyIGQgaW4gYylpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYyxkKSl7dmFyIGU9Y1tkXTtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBnPWVbZl07ZyE9bnVsbCYmKGJ8fChiPWEpLGIrPShiLmxlbmd0aD5hLmxlbmd0aD9cIiZcIjpcIlwiKStlbmNvZGVVUklDb21wb25lbnQoZCkrXCI9XCIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhnKSkpfX1yZXR1cm4gYn07LypcblxuIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xuZnVuY3Rpb24gdWIoYSl7dGhpcy5SZD1hfXViLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJkfTtmdW5jdGlvbiB2YihhKXtpZihhIGluc3RhbmNlb2YgdWIpcmV0dXJuIGEuUmQ7dGhyb3cgRXJyb3IoXCJcIik7fTt2YXIgd2I9L15cXHMqKD8hamF2YXNjcmlwdDopKD86W1xcdysuLV0rOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pO2Z1bmN0aW9uIHhiKGEpe2E9YSBpbnN0YW5jZW9mIHViP3ZiKGEpOndiLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGF9O3ZhciB5Yj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09XCJzdHJpbmdcIilyZXR1cm4gdHlwZW9mIGIhPT1cInN0cmluZ1wifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfSx6Yj1BcnJheS5wcm90b3R5cGUuZm9yRWFjaD9mdW5jdGlvbihhLGIpe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9dHlwZW9mIGE9PT1cInN0cmluZ1wiP2Euc3BsaXQoXCJcIik6YSxlPTA7ZTxjO2UrKyllIGluIGQmJmIuY2FsbCh2b2lkIDAsZFtlXSxlLGEpfSxBYj1BcnJheS5wcm90b3R5cGUuZmlsdGVyP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChhLFxuYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPVtdLGU9MCxmPXR5cGVvZiBhPT09XCJzdHJpbmdcIj9hLnNwbGl0KFwiXCIpOmEsZz0wO2c8YztnKyspaWYoZyBpbiBmKXt2YXIgaD1mW2ddO2IuY2FsbCh2b2lkIDAsaCxnLGEpJiYoZFtlKytdPWgpfXJldHVybiBkfTtmdW5jdGlvbiBCYihhKXt2YXIgYj1hLmxlbmd0aDtpZihiPjApe2Zvcih2YXIgYz1BcnJheShiKSxkPTA7ZDxiO2QrKyljW2RdPWFbZF07cmV0dXJuIGN9cmV0dXJuW119O2Z1bmN0aW9uIENiKGEpe3ZhciBiPVtdLGM9MCxkO2ZvcihkIGluIGEpYltjKytdPWQ7cmV0dXJuIGJ9O2Z1bmN0aW9uIERiKGEpe3RoaXMuUGQ9YX1EYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5QZC50b1N0cmluZygpfTtmdW5jdGlvbiBFYihhKXt0aGlzLk9kPWF9RWIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuT2QudG9TdHJpbmcoKX07dmFyIEZiPXt9O2Z1bmN0aW9uIEdiKGEpe3RoaXMuTmQ9YX1HYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OZC50b1N0cmluZygpfTtmdW5jdGlvbiBIYihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEdiJiZhLmNvbnN0cnVjdG9yPT09R2I/YS5OZDpcInR5cGVfZXJyb3I6U2FmZUh0bWxcIn1cbmZ1bmN0aW9uIEliKGEpe2EgaW5zdGFuY2VvZiBHYnx8KGE9U3RyaW5nKGEpLGpiLnRlc3QoYSkmJihhLmluZGV4T2YoXCImXCIpIT0tMSYmKGE9YS5yZXBsYWNlKGJiLFwiJmFtcDtcIikpLGEuaW5kZXhPZihcIjxcIikhPS0xJiYoYT1hLnJlcGxhY2UoY2IsXCImbHQ7XCIpKSxhLmluZGV4T2YoXCI+XCIpIT0tMSYmKGE9YS5yZXBsYWNlKGRiLFwiJmd0O1wiKSksYS5pbmRleE9mKCdcIicpIT0tMSYmKGE9YS5yZXBsYWNlKGViLFwiJnF1b3Q7XCIpKSxhLmluZGV4T2YoXCInXCIpIT0tMSYmKGE9YS5yZXBsYWNlKGZiLFwiJiMzOTtcIikpLGEuaW5kZXhPZihcIlxceDAwXCIpIT0tMSYmKGE9YS5yZXBsYWNlKGliLFwiJiMwO1wiKSkpLGE9SmIoYSkpO3JldHVybiBhfWZ1bmN0aW9uIEpiKGEpe3ZhciBiPW1iKCk7YT1iP2IuY3JlYXRlSFRNTChhKTphO3JldHVybiBuZXcgR2IoYSxGYil9dmFyIEtiPW5ldyBHYih4LnRydXN0ZWRUeXBlcyYmeC50cnVzdGVkVHlwZXMuZW1wdHlIVE1MfHxcIlwiLEZiKTt2YXIgTGI9XCJhbHRlcm5hdGUgYXV0aG9yIGJvb2ttYXJrIGNhbm9uaWNhbCBjaXRlIGhlbHAgaWNvbiBsaWNlbnNlIG1vZHVsZXByZWxvYWQgbmV4dCBwcmVmZXRjaCBkbnMtcHJlZmV0Y2ggcHJlcmVuZGVyIHByZWNvbm5lY3QgcHJlbG9hZCBwcmV2IHNlYXJjaCBzdWJyZXNvdXJjZVwiLnNwbGl0KFwiIFwiKTtmdW5jdGlvbiBNYihhLGIpe2Euc3JjPXFiKGIpO3ZhciBjLGQ7KGM9KGI9KGQ9KGM9KGEub3duZXJEb2N1bWVudCYmYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmRvY3VtZW50KS5xdWVyeVNlbGVjdG9yKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMsXCJzY3JpcHRbbm9uY2VdXCIpKT9iLm5vbmNlfHxiLmdldEF0dHJpYnV0ZShcIm5vbmNlXCIpfHxcIlwiOlwiXCIpJiZhLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsYyl9O2Z1bmN0aW9uIE5iKGEpe3ZhciBiPUpiKFwiPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+XCIpO2Eud3JpdGUoSGIoYikpfTtmdW5jdGlvbiBPYihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXFwrL2csXCIgXCIpKX07ZnVuY3Rpb24gUGIoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7YS5vbmxvYWQ9YS5vbmVycm9yPW51bGx9fWZ1bmN0aW9uIFFiKGEpe3ZhciBiPW5ldyBJbWFnZTtiLm9ubG9hZD1iLm9uZXJyb3I9UGIoYik7Yi5zcmM9YX1mdW5jdGlvbiBSYigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjE0NzQ4MzY0OCkudG9TdHJpbmcoMzYpK01hdGguYWJzKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ4KV5EYXRlLm5vdygpKS50b1N0cmluZygzNil9O2Z1bmN0aW9uIFNiKGEpe2lmKGEhPW51bGwpcmV0dXJuIGF9ZnVuY3Rpb24gVGIoKXtyZXR1cm4gdHlwZW9mIHNmZmVEYXRhXz09PVwib2JqZWN0XCI/c2ZmZURhdGFfOnt9fWZ1bmN0aW9uIFViKGEsYil7Yj1ifHxUYigpO3JldHVybiBTYihiW2FdKX1mdW5jdGlvbiBWYihhKXt2YXIgYj1XYigpO2I9Ynx8VGIoKTthPWJbYV07cmV0dXJuIGEhPW51bGw/YTp2b2lkIDB9ZnVuY3Rpb24gWGIoYSxiKXtiPWJ8fFRiKCk7cmV0dXJuISFiW2FdfWZ1bmN0aW9uIFdiKCl7cmV0dXJuIFRiKCkubXx8e319ZnVuY3Rpb24geihhKXtyZXR1cm4gWGIoYSxXYigpLmFiZil9O3ZhciBZYj1udWxsO2Z1bmN0aW9uIFpiKCl7WWJ8fChZYj1iYygpKTtyZXR1cm4gWWJ9ZnVuY3Rpb24gYmMoKXtmdW5jdGlvbiBhKGMsZCxlLGYpe2U9WGIoXCJhaFwiLFdiKCkpP2U6ZjtyZXR1cm4oVWIoXCJjZGhcIixXYigpKXx8XCJcIikhPT1cIlwiP2UrKFViKFwiY2RoXCIsV2IoKSl8fFwiXCIpOnooXCJfc3dpdGNoR3dzUmVxdWVzdFRvVXNlQWRzZW5zZURvbWFpblwiKT9lK2Q6ZStjfXZhciBiPVNiKHguZ3dzQmFzZV8pO3JldHVybiBifHwoYj1VYihcImd3c19ob3N0XCIpKT9iOihiPVViKFwic2VydmljZV9ob3N0XCIpKT9hKGIsXCJ3d3cuYWRzZW5zZWN1c3RvbXNlYXJjaGFkcy5jb21cIixcImh0dHBzOi8vXCIsXCIvL1wiKTphKFwiLy93d3cuZ29vZ2xlLmNvbVwiLFwiLy93d3cuYWRzZW5zZWN1c3RvbXNlYXJjaGFkcy5jb21cIixcImh0dHBzOlwiLFwiXCIpfTtmdW5jdGlvbiBjYyhhKXt0aGlzLlM9W107dGhpcy5yYz1bXTthPWEuc3BsaXQoXCIjXCIpO3RoaXMudmQ9YVswXTt0aGlzLnFjPWFbMV18fFwiXCI7dGhpcy5FYj03OTUwfWZ1bmN0aW9uIEEoYSxiLGMsZCl7KGN8fGM9PT0wfHxjPT09ITEpJiYoZD9hLlM6YS5yYykucHVzaChbZW5jb2RlVVJJQ29tcG9uZW50KGIpLGVuY29kZVVSSUNvbXBvbmVudChcIlwiK2MpXSl9XG5mdW5jdGlvbiBkYyhhKXtmb3IodmFyIGI9YS52ZCxjPWEudmQuaW5kZXhPZihcIj9cIikhPT0tMSxkPTA7ZDxhLnJjLmxlbmd0aDtkKyspe3ZhciBlPShjP1wiJlwiOlwiP1wiKSthLnJjW2RdLmpvaW4oXCI9XCIpO2UubGVuZ3RoK2IubGVuZ3RoPD1hLkViJiYoYis9ZSxjPSEwKX1mb3IoZT1kPTA7ZTxhLlMubGVuZ3RoO2UrKylkKz1hLlNbZV1bMF0ubGVuZ3RoO2Q9YS5FYi1iLmxlbmd0aC1kLWEuUy5sZW5ndGgqMjt2YXIgZj1NYXRoLmZsb29yKGQvYS5TLmxlbmd0aCk7aWYoZj49MSlmb3IoZT0wO2U8YS5TLmxlbmd0aDtlKyspe3ZhciBnPWEuU1tlXVsxXTtmPWcubGVuZ3RoPmY/Zy5zdWJzdHJpbmcoMCxmKTpnO2IrPShjP1wiJlwiOlwiP1wiKSthLlNbZV1bMF0rXCI9XCIrZjtkLT1mLmxlbmd0aDtmPU1hdGguZmxvb3IoZC8oYS5TLmxlbmd0aC1lLTEpKTtjPSEwfWVsc2UgZm9yKGQ9MDtkPGEuUy5sZW5ndGg7ZCsrKWEuU1tkXVswXS5sZW5ndGgrMytiLmxlbmd0aDw9YS5FYiYmKGIrPShjP1wiJlwiOlwiP1wiKStcbmEuU1tkXS5qb2luKFwiPVwiKSxjPSEwKTtiPWIuc3Vic3RyaW5nKDAsYS5FYik7Yj1iLnJlcGxhY2UoLyVcXHc/JC8sXCJcIik7YS5xYy5sZW5ndGg+MCYmKGIrPVwiI1wiK2EucWMpO3JldHVybiBifTt2YXIgZWM9TWF0aC5yYW5kb20oKTwuMDEsZmM9bnVsbDtmdW5jdGlvbiBnYyhhKXt0aGlzLmhmPVJiO3RoaXMuZWE9UWI7dGhpcy5PYz1UYSgpLmRhdGEucWl8fFwiXCI7dGhpcy5OYj1cIlwiO3RoaXMuY2xpZW50PWF8fFwidW5rbm93blwifWZ1bmN0aW9uIGhjKCl7ZmN8fChmYz1uZXcgZ2MobnVsbCkpO3JldHVybiBmY31mdW5jdGlvbiBpYyhhKXt2YXIgYj1uZXcgY2MoWmIoKStcIi9hZnMvZ2VuXzIwNFwiKSxjPWEuY2xpZW50O2M9PT1cInVua25vd25cIiYmVWEoVGEoKSkmJihjPVVhKFRhKCkpKTtBKGIsXCJjbGllbnRcIixjKTtBKGIsXCJvdXRwdXRcIixcInVkc19hZHNfb25seVwiKTtBKGIsXCJ6eFwiLGEuaGYoKSk7YS5PYyYmQShiLFwiYXFpZFwiLGEuT2MpO2EuTmImJkEoYixcInBzaWRcIixhLk5iKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGpjKGEsYixjKXt2YXIgZD1pYyhhKTtBKGQsXCJwYnRcIixiKTtBKGQsXCJhZGJ4XCIsYy5sZWZ0KTtBKGQsXCJhZGJ5XCIsYy50b3ApO0EoZCxcImFkYmhcIixjLmhlaWdodCk7QShkLFwiYWRid1wiLGMud2lkdGgpO0EoZCxcImFkYmFoXCIsYy5lYik7QShkLFwiYWRiblwiLGMudmUpO0EoZCxcImVhd3BcIixjLlRlKTtBKGQsXCJlcnJ2XCIsYy5EZSk7QShkLFwiY3NhbGFcIixjLkNmKTtBKGQsXCJsbGVcIixjLnFnPzE6MCk7QShkLFwiaWZ2XCIsYy52Zj8xOjApO0EoZCxcImhwdFwiLGMuamY/MTowKTthLmVhKGRjKGQpKX1mdW5jdGlvbiBrYyhhLGIpe3ZhciBjPWljKGEpO0EoYyxcInBidFwiLFwidWlcIik7QShjLFwiZW1zZ1wiLGIpO2EuZWEoZGMoYykpfWZ1bmN0aW9uIGxjKGEsYixjKXt2YXIgZD1pYyhhKTtBKGQsXCJwYnRcIixcInRwXCIpO0EoZCxcImVycm1cIixiKTtBKGQsXCJlbXNnXCIsYywhMCk7YS5lYShkYyhkKSl9ZnVuY3Rpb24gbWMoYSxiKXt2YXIgYz1pYyhhKTtBKGMsXCJwYnRcIixiKTthLmVhKGRjKGMpKX07dmFyIG5jPXt9O2Z1bmN0aW9uIG9jKCl7dGhpcy5CZj1cImFkcy5cIitwYzt0aGlzLkVlPTY0MTg4MzUyOTt0aGlzLkhkPVwiZ29vZ2xlLmFkcy5kb21haW5zLkNhZjogXCI7dGhpcy5nZj1oYygpfW9jLnByb3RvdHlwZS5sb2c9ZnVuY3Rpb24oYSxiKXtpZih3aW5kb3cuSVNfR09PR0xFX0FGU19JRlJBTUVfPT09ITAmJndpbmRvdy5wYXJlbnQ9PXdpbmRvdylyZXR1cm4hMTthPUdhKGEpP2EubWVzc2FnZTphO3ZhciBjPWErYjtpZighbmNbY10pe25jW2NdPSEwO2M9dGhpcy5nZjt2YXIgZD10aGlzLkJmLGU9dGhpcy5FZSxmPWljKGMpO0EoZixcInBidFwiLFwiZXJcIik7QShmLFwiZXJydFwiLGQpO0EoZixcImVycnZcIixlKTtBKGYsXCJlcnJtXCIsYik7QShmLFwiZW1zZ1wiLGEsITApO2MuZWEoZGMoZikpO3JldHVybiEwfXJldHVybiExfTtcbmZ1bmN0aW9uIEIoYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCl8fFtdO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGMpfWNhdGNoKGUpe3R5cGVvZiBlPT09XCJzdHJpbmdcIiYmKGU9e21lc3NhZ2U6ZX0pO2M9ZS5tZXNzYWdlO3ZhciBkPWMuaW5kZXhPZihDLkhkKT09LTE7ZCYmQy5sb2coZSxiKTt0aHJvdyBkP0MuSGQrYzpjO319fWZ1bmN0aW9uIHFjKGEpe3JldHVyblwiZ29vZ2xlLmFkcy5kb21haW5zLkNhZjogXCIrYX1mdW5jdGlvbiBFKGEsYil7cmV0dXJuIEIoYSxiKX12YXIgcmM9VWIoXCJwYWNrYWdlc1wiKSxwYz1cInVua25vd25cIjtyYyE9bnVsbCYmKHBjPXJjKTt2YXIgQz1uZXcgb2M7dmFyIHNjO2E6e3ZhciB0Yz13aW5kb3cucGFyZW50O3RyeXtzYz10Yy5wb3N0TWVzc2FnZT90Yzp0Yy5kb2N1bWVudC5wb3N0TWVzc2FnZT90Yy5kb2N1bWVudDpudWxsO2JyZWFrIGF9Y2F0Y2goYSl7fXNjPW51bGx9dmFyIHVjPXNjLHZjPXt9LHdjPUUoZnVuY3Rpb24oKXtmb3IodmFyIGE9dyhDYih2YykpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWI9Yi52YWx1ZSx2Yy5oYXNPd25Qcm9wZXJ0eShiKSYmKHZjW2JdLnZiKCl8fGRlbGV0ZSB2Y1tiXSl9LFwiZnNDRElcIikseGM9ITEsemM9RShmdW5jdGlvbigpe3hjfHwoeGM9ITAsd2luZG93LnNldEludGVydmFsKHdjLDUwMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIseWMpKX0sXCJmc0lMXCIpO2Z1bmN0aW9uIEFjKGEsYil7dGhpcy5WYz1hO3RoaXMuRz17fTt0aGlzLmNiPWI7dmNbdGhpcy5WY109dGhpczt6YygpfVxuZnVuY3Rpb24gQmMoYSxiKXtyZXR1cm4gYS5HLmhhc093blByb3BlcnR5KGIpP2EuR1tiXS52YWx1ZTpudWxsfWZ1bmN0aW9uIENjKGEsYil7cmV0dXJuIGEuRy5oYXNPd25Qcm9wZXJ0eShiKT9hLkdbYl0udmFsdWU6bnVsbH1mdW5jdGlvbiBEYyhhLGIpe3JldHVybiBhLkcuaGFzT3duUHJvcGVydHkoYik/YS5HW2JdLnZhbHVlOm51bGx9ZnVuY3Rpb24gRihhLGIsYyxkKXthLkcuaGFzT3duUHJvcGVydHkoYil8fChhLkdbYl09YygpKTtjPWEuR1tiXTtjLlhiPWR8fGZ1bmN0aW9uKCl7fTtjLnZhbHVlIT1udWxsJiZjLlhiKGEsYS5WYyxiLGMudmFsdWUpfUFjLnByb3RvdHlwZS52Yj1mdW5jdGlvbigpe3JldHVybiEhKHRoaXMuY2ImJnRoaXMuY2IucGFyZW50Tm9kZSYmdGhpcy5jYi5jb250ZW50V2luZG93KX07dmFyIEVjPXt9O2Z1bmN0aW9uIEZjKCl7dGhpcy52YWx1ZT1udWxsO3RoaXMuWGI9ZnVuY3Rpb24oKXt9O3RoaXMudGE9ITF9bT1GYy5wcm90b3R5cGU7bS53YT1mdW5jdGlvbigpe307XG5tLllhPWZ1bmN0aW9uKCl7fTttLlVhPWZ1bmN0aW9uKCl7fTttLkxhPWZ1bmN0aW9uKCl7fTttLk89ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWU9PWF9O2Z1bmN0aW9uIEcoKXtGYy5jYWxsKHRoaXMpfXJhKEcsRmMpO0cucHJvdG90eXBlLndhPWZ1bmN0aW9uKGEsYil7cmV0dXJuISFifTtHLnByb3RvdHlwZS5ZYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlP1widFwiOlwiZlwifTtHLnByb3RvdHlwZS5VYT1mdW5jdGlvbihhKXtyZXR1cm4gYT09XCJ0XCJ9O0cucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7cmV0dXJuIDB9O0cuaj1mdW5jdGlvbigpe3JldHVybiBuZXcgR307ZnVuY3Rpb24gR2MoKXtGYy5jYWxsKHRoaXMpfXJhKEdjLEZjKTtcbkdjLnByb3RvdHlwZS53YT1mdW5jdGlvbihhLGIpe3ZhciBjPXBhcnNlSW50KGIsMTApO2E9YStcIiA9IFwiK2I7aWYoaXNOYU4oYykpcmV0dXJuIEMubG9nKGEsXCJzSUdWVm5uXCIpLG51bGw7Yz45MDA3MTk5MjU0NzQwOTkxJiYoQy5sb2coYSxcInNJR1ZWdGxcIiksYz05MDA3MTk5MjU0NzQwOTkxKTtjPDAmJihDLmxvZyhhLFwic0lHVlZ0c1wiKSxjPTApO3JldHVybiBjfTtHYy5wcm90b3R5cGUuWWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZStcIlwifTtHYy5wcm90b3R5cGUuVWE9ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlSW50KGEsMTApfTtHYy5wcm90b3R5cGUuTGE9ZnVuY3Rpb24oKXtyZXR1cm4gMX07R2Muaj1mdW5jdGlvbigpe3JldHVybiBuZXcgR2N9O2Z1bmN0aW9uIEhjKCl7RmMuY2FsbCh0aGlzKX1yYShIYyxGYyk7SGMucHJvdG90eXBlLndhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/Yi50b1N0cmluZygpOlwiXCJ9O1xuSGMucHJvdG90eXBlLllhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWU/ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMudmFsdWUpOlwiXCJ9O0hjLnByb3RvdHlwZS5VYT1mdW5jdGlvbihhKXtyZXR1cm4gT2IoYSl9O0hjLnByb3RvdHlwZS5MYT1mdW5jdGlvbigpe3JldHVybiAyfTtIYy5qPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBIY307ZnVuY3Rpb24gSWMoKXtGYy5jYWxsKHRoaXMpfXJhKEljLEZjKTttPUljLnByb3RvdHlwZTttLndhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/YjpudWxsfTttLllhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWU/ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpKTpcIlwifTttLlVhPWZ1bmN0aW9uKGEpe3JldHVybiBhP0pTT04ucGFyc2UoT2IoYSkpOm51bGx9O20uTGE9ZnVuY3Rpb24oKXtyZXR1cm4gM307XG5tLk89ZnVuY3Rpb24oYSl7dmFyIGI9SlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSk7YT1KU09OLnN0cmluZ2lmeShhKTtyZXR1cm4gYj09PWF9O0ljLmo9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEljfTt2YXIgSmM9e30sS2M9KEpjWzBdPUcuaixKY1sxXT1HYy5qLEpjWzJdPUhjLmosSmNbM109SWMuaixKYyk7ZnVuY3Rpb24gTGMoYSxiLGMpe0VjLmhhc093blByb3BlcnR5KGEpfHwoRWNbYV09YygpKTtjPUVjW2FdO2E9Yy53YShhLGIpO2E9PW51bGx8fGMuTyhhKXx8KGMudmFsdWU9YSxjLnRhPSEwKX1cbmZ1bmN0aW9uIHljKGEpe2lmKGE9YXx8d2luZG93LmV2ZW50KWZvcih2YXIgYj13KENiKHZjKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoYz12Y1tjLnZhbHVlXSxjLnZiKCkmJmEuc291cmNlPT1jLmNiLmNvbnRlbnRXaW5kb3cpe2I9YztpZigoYT1hLmRhdGEpJiZhLnNwbGl0JiYoYT1hLnNwbGl0KFwiLFwiKSxhWzBdPT1cIkZTWERDXCIpKXtmb3IoYz0xO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLnNwbGl0KFwiOlwiKSxlPU9iKGRbMF0pLGY9S2NbcGFyc2VJbnQoZFsxXSwxMCldO2IuRy5oYXNPd25Qcm9wZXJ0eShlKXx8KGIuR1tlXT1mKCkpO3ZhciBnPWIuR1tlXS5VYShkWzJdKTtkPWI7ZC5HLmhhc093blByb3BlcnR5KGUpfHwoZC5HW2VdPWYoKSk7Zj1kLkdbZV07Zz1mLndhKGUsZyk7ZyE9bnVsbCYmZi52YWx1ZSE9ZyYmKGYudmFsdWU9ZyxmLnRhPSEwKX1hPXcoQ2IoYi5HKSk7Zm9yKGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKWM9Yy52YWx1ZSxmPVxuYi5HW2NdLGYudGEmJihmLnRhPSExLGYuWGIoYixiLlZjLGMsZi52YWx1ZSkpfWJyZWFrfX1BYy5wcm90b3R5cGUudmI9QihBYy5wcm90b3R5cGUudmIsXCJmc2lIVklcIik7dmFyIE1jPUUoZnVuY3Rpb24oKXtpZih1Yyl7Zm9yKHZhciBhPVtdLGI9dyhDYihFYykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXtjPWMudmFsdWU7dmFyIGQ9RWNbY107aWYoZC50YSl7dmFyIGU9ZC5ZYSgpO2EucHVzaChbZW5jb2RlVVJJQ29tcG9uZW50KGMpLGQuTGEoKSxlXS5qb2luKFwiOlwiKSk7ZC50YT0hMX19YS5sZW5ndGghPTAmJnVjLnBvc3RNZXNzYWdlKFtcIkZTWERDXCJdLmNvbmNhdChhKS5qb2luKFwiLFwiKSxcIipcIil9fSxcImZzU0NcIik7ZnVuY3Rpb24gTmMoYSxiKXtMYyhhLGIsR2Muail9ZnVuY3Rpb24gT2MoYSxiKXtMYyhhLGIsRy5qKX07ZnVuY3Rpb24gUGMoYSxiKXtmb3IodmFyIGM9dyhPYmplY3Qua2V5cyhiKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZD1kLnZhbHVlLGFbZF09e30sT2JqZWN0LmFzc2lnbihhW2RdLGJbZF0pfWZ1bmN0aW9uIFFjKGEsYil7Yj13KGIpO2Zvcih2YXIgYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYz1jLnZhbHVlLGEuaGFzT3duUHJvcGVydHkoYyksYVtjXS5FYz0hMH07ZnVuY3Rpb24gUmMoKXt2YXIgYT1TYzt0aGlzLlJhPTEwO3RoaXMuUGE9TWF0aC5mbG9vcihhKX1SYy5wcm90b3R5cGUuSj1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJhK1wicHggLSBcIit0aGlzLlBhK1wicHhcIn07UmMucHJvdG90eXBlLkY9ZnVuY3Rpb24oYSl7YT1wYXJzZUludChhLDEwKTtyZXR1cm4gaXNOYU4oYSk/bnVsbDpNYXRoLm1heCh0aGlzLlJhLE1hdGgubWluKHRoaXMuUGEsYSkpfTtSYy5wcm90b3R5cGUuTD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5GKGEpfTtmdW5jdGlvbiBUYyhhLGIpe3RoaXMueD1hIT09dm9pZCAwP2E6MDt0aGlzLnk9YiE9PXZvaWQgMD9iOjB9bT1UYy5wcm90b3R5cGU7bS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgVGModGhpcy54LHRoaXMueSl9O20uTz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIFRjJiYodGhpcz09YT8hMDp0aGlzJiZhP3RoaXMueD09YS54JiZ0aGlzLnk9PWEueTohMSl9O20uY2VpbD1mdW5jdGlvbigpe3RoaXMueD1NYXRoLmNlaWwodGhpcy54KTt0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSk7cmV0dXJuIHRoaXN9O20uZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpO3RoaXMueT1NYXRoLmZsb29yKHRoaXMueSk7cmV0dXJuIHRoaXN9O20ucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpO3RoaXMueT1NYXRoLnJvdW5kKHRoaXMueSk7cmV0dXJuIHRoaXN9O1xubS50cmFuc2xhdGU9ZnVuY3Rpb24oYSxiKXthIGluc3RhbmNlb2YgVGM/KHRoaXMueCs9YS54LHRoaXMueSs9YS55KToodGhpcy54Kz1OdW1iZXIoYSksdHlwZW9mIGI9PT1cIm51bWJlclwiJiYodGhpcy55Kz1iKSk7cmV0dXJuIHRoaXN9O20uc2NhbGU9ZnVuY3Rpb24oYSxiKXt0aGlzLngqPWE7dGhpcy55Kj10eXBlb2YgYj09PVwibnVtYmVyXCI/YjphO3JldHVybiB0aGlzfTtmdW5jdGlvbiBVYyhhLGIsYyxkKXt0aGlzLnRvcD1hO3RoaXMucmlnaHQ9Yjt0aGlzLmJvdHRvbT1jO3RoaXMubGVmdD1kfW09VWMucHJvdG90eXBlO20uY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFVjKHRoaXMudG9wLHRoaXMucmlnaHQsdGhpcy5ib3R0b20sdGhpcy5sZWZ0KX07bS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcyYmYT9hIGluc3RhbmNlb2YgVWM/YS5sZWZ0Pj10aGlzLmxlZnQmJmEucmlnaHQ8PXRoaXMucmlnaHQmJmEudG9wPj10aGlzLnRvcCYmYS5ib3R0b208PXRoaXMuYm90dG9tOmEueD49dGhpcy5sZWZ0JiZhLng8PXRoaXMucmlnaHQmJmEueT49dGhpcy50b3AmJmEueTw9dGhpcy5ib3R0b206ITF9O1xubS5leHBhbmQ9ZnVuY3Rpb24oYSxiLGMsZCl7R2EoYSk/KHRoaXMudG9wLT1hLnRvcCx0aGlzLnJpZ2h0Kz1hLnJpZ2h0LHRoaXMuYm90dG9tKz1hLmJvdHRvbSx0aGlzLmxlZnQtPWEubGVmdCk6KHRoaXMudG9wLT1hLHRoaXMucmlnaHQrPU51bWJlcihiKSx0aGlzLmJvdHRvbSs9TnVtYmVyKGMpLHRoaXMubGVmdC09TnVtYmVyKGQpKTtyZXR1cm4gdGhpc307bS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy50b3A9TWF0aC5jZWlsKHRoaXMudG9wKTt0aGlzLnJpZ2h0PU1hdGguY2VpbCh0aGlzLnJpZ2h0KTt0aGlzLmJvdHRvbT1NYXRoLmNlaWwodGhpcy5ib3R0b20pO3RoaXMubGVmdD1NYXRoLmNlaWwodGhpcy5sZWZ0KTtyZXR1cm4gdGhpc307XG5tLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy50b3A9TWF0aC5mbG9vcih0aGlzLnRvcCk7dGhpcy5yaWdodD1NYXRoLmZsb29yKHRoaXMucmlnaHQpO3RoaXMuYm90dG9tPU1hdGguZmxvb3IodGhpcy5ib3R0b20pO3RoaXMubGVmdD1NYXRoLmZsb29yKHRoaXMubGVmdCk7cmV0dXJuIHRoaXN9O20ucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLnRvcD1NYXRoLnJvdW5kKHRoaXMudG9wKTt0aGlzLnJpZ2h0PU1hdGgucm91bmQodGhpcy5yaWdodCk7dGhpcy5ib3R0b209TWF0aC5yb3VuZCh0aGlzLmJvdHRvbSk7dGhpcy5sZWZ0PU1hdGgucm91bmQodGhpcy5sZWZ0KTtyZXR1cm4gdGhpc307XG5tLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBUYz8odGhpcy5sZWZ0Kz1hLngsdGhpcy5yaWdodCs9YS54LHRoaXMudG9wKz1hLnksdGhpcy5ib3R0b20rPWEueSk6KHRoaXMubGVmdCs9YSx0aGlzLnJpZ2h0Kz1hLHR5cGVvZiBiPT09XCJudW1iZXJcIiYmKHRoaXMudG9wKz1iLHRoaXMuYm90dG9tKz1iKSk7cmV0dXJuIHRoaXN9O20uc2NhbGU9ZnVuY3Rpb24oYSxiKXtiPXR5cGVvZiBiPT09XCJudW1iZXJcIj9iOmE7dGhpcy5sZWZ0Kj1hO3RoaXMucmlnaHQqPWE7dGhpcy50b3AqPWI7dGhpcy5ib3R0b20qPWI7cmV0dXJuIHRoaXN9O3ZhciBWYyxXYzthOntmb3IodmFyIFhjPVtcIkNMT1NVUkVfRkxBR1NcIl0sWWM9eCxaYz0wO1pjPFhjLmxlbmd0aDtaYysrKWlmKFljPVljW1hjW1pjXV0sWWM9PW51bGwpe1djPW51bGw7YnJlYWsgYX1XYz1ZY312YXIgJGM9V2MmJldjWzYxMDQwMTMwMV07VmM9JGMhPW51bGw/JGM6ITE7ZnVuY3Rpb24gYWQoKXt2YXIgYT14Lm5hdmlnYXRvcjtyZXR1cm4gYSYmKGE9YS51c2VyQWdlbnQpP2E6XCJcIn12YXIgYmQsY2Q9eC5uYXZpZ2F0b3I7YmQ9Y2Q/Y2QudXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2Z1bmN0aW9uIGZkKGEpe3JldHVybiBWYz9iZD9iZC5icmFuZHMuc29tZShmdW5jdGlvbihiKXtyZXR1cm4oYj1iLmJyYW5kKSYmYi5pbmRleE9mKGEpIT0tMX0pOiExOiExfWZ1bmN0aW9uIGdkKGEpe3JldHVybiBhZCgpLmluZGV4T2YoYSkhPS0xfTtmdW5jdGlvbiBoZCgpe3JldHVybiBWYz8hIWJkJiZiZC5icmFuZHMubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gaWQoKXtyZXR1cm4gaGQoKT9mZChcIkNocm9taXVtXCIpOihnZChcIkNocm9tZVwiKXx8Z2QoXCJDcmlPU1wiKSkmJiEoaGQoKT8wOmdkKFwiRWRnZVwiKSl8fGdkKFwiU2lsa1wiKX07ZnVuY3Rpb24gamQoYSl7amRbXCIgXCJdKGEpO3JldHVybiBhfWpkW1wiIFwiXT1mdW5jdGlvbigpe307dmFyIGtkPWFkKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKFwid2Via2l0XCIpIT0tMSYmIWdkKFwiRWRnZVwiKTtmdW5jdGlvbiBsZChhKXt2YXIgYj1hO3JldHVybiBmdW5jdGlvbigpe2lmKGIpe3ZhciBjPWI7Yj1udWxsO2MoKX19fTtmdW5jdGlvbiBtZChhKXt2YXIgYj1CYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoYi5sZW5ndGg9PT0wKXJldHVybiByYihhWzBdKTtmb3IodmFyIGM9YVswXSxkPTA7ZDxiLmxlbmd0aDtkKyspYys9ZW5jb2RlVVJJQ29tcG9uZW50KGJbZF0pK2FbZCsxXTtyZXR1cm4gcmIoYyl9O3ZhciBuZD1mdW5jdGlvbihhKXt2YXIgYj0hMSxjO3JldHVybiBmdW5jdGlvbigpe2J8fChjPWEoKSxiPSEwKTtyZXR1cm4gY319KGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7Yi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKTthLmFwcGVuZENoaWxkKGIpO2I9YS5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7YS5pbm5lckhUTUw9SGIoS2IpO3JldHVybiFiLnBhcmVudEVsZW1lbnR9KTtmdW5jdGlvbiBvZChhLGIpe3RoaXMud2lkdGg9YTt0aGlzLmhlaWdodD1ifW09b2QucHJvdG90eXBlO20uY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG9kKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTttLmFzcGVjdFJhdGlvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2lkdGgvdGhpcy5oZWlnaHR9O20uY2VpbD1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5jZWlsKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguY2VpbCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O20uZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguZmxvb3IodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5mbG9vcih0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O20ucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O1xubS5zY2FsZT1mdW5jdGlvbihhLGIpe3RoaXMud2lkdGgqPWE7dGhpcy5oZWlnaHQqPXR5cGVvZiBiPT09XCJudW1iZXJcIj9iOmE7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIHBkKGEpe3JldHVybiBhP25ldyBxZChyZChhKSk6a2J8fChrYj1uZXcgcWQpfVxuZnVuY3Rpb24gc2QoYSxiLGMpe3ZhciBkPWRvY3VtZW50O2M9Y3x8ZDt2YXIgZT1hJiZhIT1cIipcIj9TdHJpbmcoYSkudG9VcHBlckNhc2UoKTpcIlwiO2lmKGMucXVlcnlTZWxlY3RvckFsbCYmYy5xdWVyeVNlbGVjdG9yJiYoZXx8YikpcmV0dXJuIGMucXVlcnlTZWxlY3RvckFsbChlKyhiP1wiLlwiK2I6XCJcIikpO2lmKGImJmMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSl7YT1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYik7aWYoZSl7Yz17fTtmb3IodmFyIGY9ZD0wLGc7Zz1hW2ZdO2YrKyllPT1nLm5vZGVOYW1lJiYoY1tkKytdPWcpO2MubGVuZ3RoPWQ7cmV0dXJuIGN9cmV0dXJuIGF9YT1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKGV8fFwiKlwiKTtpZihiKXtjPXt9O2ZvcihmPWQ9MDtnPWFbZl07ZisrKXtlPWcuY2xhc3NOYW1lO3ZhciBoO2lmKGg9dHlwZW9mIGUuc3BsaXQ9PVwiZnVuY3Rpb25cIiloPXliKGUuc3BsaXQoL1xccysvKSxiKT49MDtoJiYoY1tkKytdPWcpfWMubGVuZ3RoPWQ7cmV0dXJuIGN9cmV0dXJuIGF9XG5mdW5jdGlvbiB0ZChhKXthPWEuZG9jdW1lbnQ7YT1hLmNvbXBhdE1vZGU9PVwiQ1NTMUNvbXBhdFwiP2EuZG9jdW1lbnRFbGVtZW50OmEuYm9keTtyZXR1cm4gbmV3IG9kKGEuY2xpZW50V2lkdGgsYS5jbGllbnRIZWlnaHQpfWZ1bmN0aW9uIHVkKGEpe3JldHVybiBhLnNjcm9sbGluZ0VsZW1lbnQ/YS5zY3JvbGxpbmdFbGVtZW50OmtkfHxhLmNvbXBhdE1vZGUhPVwiQ1NTMUNvbXBhdFwiP2EuYm9keXx8YS5kb2N1bWVudEVsZW1lbnQ6YS5kb2N1bWVudEVsZW1lbnR9XG5mdW5jdGlvbiB2ZChhLGIsYyl7ZnVuY3Rpb24gZChoKXtoJiZiLmFwcGVuZENoaWxkKHR5cGVvZiBoPT09XCJzdHJpbmdcIj9hLmNyZWF0ZVRleHROb2RlKGgpOmgpfWZvcih2YXIgZT0xO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgZj1jW2VdO2lmKCFGYShmKXx8R2EoZikmJmYubm9kZVR5cGU+MClkKGYpO2Vsc2V7YTp7aWYoZiYmdHlwZW9mIGYubGVuZ3RoPT1cIm51bWJlclwiKXtpZihHYShmKSl7dmFyIGc9dHlwZW9mIGYuaXRlbT09XCJmdW5jdGlvblwifHx0eXBlb2YgZi5pdGVtPT1cInN0cmluZ1wiO2JyZWFrIGF9aWYodHlwZW9mIGY9PT1cImZ1bmN0aW9uXCIpe2c9dHlwZW9mIGYuaXRlbT09XCJmdW5jdGlvblwiO2JyZWFrIGF9fWc9ITF9emIoZz9CYihmKTpmLGQpfX19ZnVuY3Rpb24gd2QoYSxiKXtiPVN0cmluZyhiKTthLmNvbnRlbnRUeXBlPT09XCJhcHBsaWNhdGlvbi94aHRtbCt4bWxcIiYmKGI9Yi50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGIpfVxuZnVuY3Rpb24gcmQoYSl7cmV0dXJuIGEubm9kZVR5cGU9PTk/YTphLm93bmVyRG9jdW1lbnR8fGEuZG9jdW1lbnR9ZnVuY3Rpb24gcWQoYSl7dGhpcy5jYT1hfHx4LmRvY3VtZW50fHxkb2N1bWVudH1tPXFkLnByb3RvdHlwZTttLmdldEVsZW1lbnRzQnlUYWdOYW1lPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGJ8fHRoaXMuY2EpLmdldEVsZW1lbnRzQnlUYWdOYW1lKFN0cmluZyhhKSl9O20uY3JlYXRlRWxlbWVudD1mdW5jdGlvbihhKXtyZXR1cm4gd2QodGhpcy5jYSxhKX07bS5jcmVhdGVUZXh0Tm9kZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5jYS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoYSkpfTttLmFwcGVuZENoaWxkPWZ1bmN0aW9uKGEsYil7YS5hcHBlbmRDaGlsZChiKX07bS5hcHBlbmQ9ZnVuY3Rpb24oYSxiKXt2ZChyZChhKSxhLGFyZ3VtZW50cyl9O20uY2FuSGF2ZUNoaWxkcmVuPWZ1bmN0aW9uKGEpe2lmKGEubm9kZVR5cGUhPTEpcmV0dXJuITE7c3dpdGNoKGEudGFnTmFtZSl7Y2FzZSBcIkFQUExFVFwiOmNhc2UgXCJBUkVBXCI6Y2FzZSBcIkJBU0VcIjpjYXNlIFwiQlJcIjpjYXNlIFwiQ09MXCI6Y2FzZSBcIkNPTU1BTkRcIjpjYXNlIFwiRU1CRURcIjpjYXNlIFwiRlJBTUVcIjpjYXNlIFwiSFJcIjpjYXNlIFwiSU1HXCI6Y2FzZSBcIklOUFVUXCI6Y2FzZSBcIklGUkFNRVwiOmNhc2UgXCJJU0lOREVYXCI6Y2FzZSBcIktFWUdFTlwiOmNhc2UgXCJMSU5LXCI6Y2FzZSBcIk5PRlJBTUVTXCI6Y2FzZSBcIk5PU0NSSVBUXCI6Y2FzZSBcIk1FVEFcIjpjYXNlIFwiT0JKRUNUXCI6Y2FzZSBcIlBBUkFNXCI6Y2FzZSBcIlNDUklQVFwiOmNhc2UgXCJTT1VSQ0VcIjpjYXNlIFwiU1RZTEVcIjpjYXNlIFwiVFJBQ0tcIjpjYXNlIFwiV0JSXCI6cmV0dXJuITF9cmV0dXJuITB9O1xubS5yZW1vdmVOb2RlPWZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnBhcmVudE5vZGU/YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpOm51bGx9O20uY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtpZighYXx8IWIpcmV0dXJuITE7aWYoYS5jb250YWlucyYmYi5ub2RlVHlwZT09MSlyZXR1cm4gYT09Ynx8YS5jb250YWlucyhiKTtpZih0eXBlb2YgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiE9XCJ1bmRlZmluZWRcIilyZXR1cm4gYT09Ynx8ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYj09YX07ZnVuY3Rpb24geGQoYSxiKXthOnt2YXIgYz1yZChhKTtpZihjLmRlZmF1bHRWaWV3JiZjLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJihjPWMuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpKSl7Yz1jW2JdfHxjLmdldFByb3BlcnR5VmFsdWUoYil8fFwiXCI7YnJlYWsgYX1jPVwiXCJ9cmV0dXJuIGN8fChhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZVtiXTpudWxsKXx8YS5zdHlsZSYmYS5zdHlsZVtiXX1mdW5jdGlvbiB5ZChhKXt0cnl7cmV0dXJuIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2goYil7cmV0dXJue2xlZnQ6MCx0b3A6MCxyaWdodDowLGJvdHRvbTowfX19XG5mdW5jdGlvbiB6ZChhKXt2YXIgYj1yZChhKSxjPXhkKGEsXCJwb3NpdGlvblwiKSxkPWM9PVwiZml4ZWRcInx8Yz09XCJhYnNvbHV0ZVwiO2ZvcihhPWEucGFyZW50Tm9kZTthJiZhIT1iO2E9YS5wYXJlbnROb2RlKWlmKGEubm9kZVR5cGU9PTExJiZhLmhvc3QmJihhPWEuaG9zdCksYz14ZChhLFwicG9zaXRpb25cIiksZD1kJiZjPT1cInN0YXRpY1wiJiZhIT1iLmRvY3VtZW50RWxlbWVudCYmYSE9Yi5ib2R5LCFkJiYoYS5zY3JvbGxXaWR0aD5hLmNsaWVudFdpZHRofHxhLnNjcm9sbEhlaWdodD5hLmNsaWVudEhlaWdodHx8Yz09XCJmaXhlZFwifHxjPT1cImFic29sdXRlXCJ8fGM9PVwicmVsYXRpdmVcIikpcmV0dXJuIGE7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBBZChhKXt2YXIgYj1yZChhKSxjPW5ldyBUYygwLDApO2lmKGE9PShiP3JkKGIpOmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQpcmV0dXJuIGM7YT15ZChhKTt2YXIgZD1wZChiKS5jYTtiPXVkKGQpO2Q9ZC5wYXJlbnRXaW5kb3d8fGQuZGVmYXVsdFZpZXc7Yj1uZXcgVGMoZC5wYWdlWE9mZnNldHx8Yi5zY3JvbGxMZWZ0LGQucGFnZVlPZmZzZXR8fGIuc2Nyb2xsVG9wKTtjLng9YS5sZWZ0K2IueDtjLnk9YS50b3ArYi55O3JldHVybiBjfWZ1bmN0aW9uIEJkKGEpe2lmKGEubm9kZVR5cGU9PTEpcmV0dXJuIGE9eWQoYSksbmV3IFRjKGEubGVmdCxhLnRvcCk7YT1hLmNoYW5nZWRUb3VjaGVzP2EuY2hhbmdlZFRvdWNoZXNbMF06YTtyZXR1cm4gbmV3IFRjKGEuY2xpZW50WCxhLmNsaWVudFkpfVxuZnVuY3Rpb24gQ2QoYSl7dmFyIGI9RGQ7aWYoeGQoYSxcImRpc3BsYXlcIikhPVwibm9uZVwiKXJldHVybiBiKGEpO3ZhciBjPWEuc3R5bGUsZD1jLmRpc3BsYXksZT1jLnZpc2liaWxpdHksZj1jLnBvc2l0aW9uO2MudmlzaWJpbGl0eT1cImhpZGRlblwiO2MucG9zaXRpb249XCJhYnNvbHV0ZVwiO2MuZGlzcGxheT1cImlubGluZVwiO2E9YihhKTtjLmRpc3BsYXk9ZDtjLnBvc2l0aW9uPWY7Yy52aXNpYmlsaXR5PWU7cmV0dXJuIGF9ZnVuY3Rpb24gRGQoYSl7dmFyIGI9YS5vZmZzZXRXaWR0aCxjPWEub2Zmc2V0SGVpZ2h0LGQ9a2QmJiFiJiYhYztyZXR1cm4oYj09PXZvaWQgMHx8ZCkmJmEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0PyhhPXlkKGEpLG5ldyBvZChhLnJpZ2h0LWEubGVmdCxhLmJvdHRvbS1hLnRvcCkpOm5ldyBvZChiLGMpfTtmdW5jdGlvbiBFZChhKXt2YXIgYj1hLmluZGV4T2YoXCIjXCIpO3JldHVybiBiPDA/YTphLnNsaWNlKDAsYil9dmFyIEZkPS8jfCQvO2Z1bmN0aW9uIEdkKGEsYil7dmFyIGM9YS5zZWFyY2goRmQpO2E6e3ZhciBkPTA7Zm9yKHZhciBlPWIubGVuZ3RoOyhkPWEuaW5kZXhPZihiLGQpKT49MCYmZDxjOyl7dmFyIGY9YS5jaGFyQ29kZUF0KGQtMSk7aWYoZj09Mzh8fGY9PTYzKWlmKGY9YS5jaGFyQ29kZUF0KGQrZSksIWZ8fGY9PTYxfHxmPT0zOHx8Zj09MzUpYnJlYWsgYTtkKz1lKzF9ZD0tMX1pZihkPDApcmV0dXJuIG51bGw7ZT1hLmluZGV4T2YoXCImXCIsZCk7aWYoZTwwfHxlPmMpZT1jO2QrPWIubGVuZ3RoKzE7cmV0dXJuIE9iKGEuc2xpY2UoZCxlIT09LTE/ZTowKSl9O3ZhciBIZD17fSxJZD0oSGQuYWRzPTAsSGQucGxhcz0xLEhkLnJlbGF0ZWRzZWFyY2g9MyxIZCksSmQ9KCF3aW5kb3cuSVNfR09PR0xFX0FGU19JRlJBTUVffHxYYSgpLDgpLFNjPSghd2luZG93LklTX0dPT0dMRV9BRlNfSUZSQU1FX3x8WGEoKSwyNCksS2Q9bmV3IFJjLExkPXtjb250ZW50OlwiY1wiLHF1ZXJ5OlwicVwiLGRvbWFpbjpcImRcIn07ZnVuY3Rpb24gTWQoYSxiLGMpe2lmKCFiLmcpcmV0dXJuIGM7Yz1iLmcuRihjKTtpZihjPT1udWxsJiYhYi5IKXRocm93IHFjKGErXCIgaGFzIGFuIGludmFsaWQgdmFsdWUuIFZhbGlkIGlucHV0IHZhbHVlczogW1wiK2IuZy5KKCkrXCJdLlwiKTtyZXR1cm4gY31mdW5jdGlvbiBOZChhKXtyZXR1cm4vXig/Oig/OnNsYXZlLVxcZCsoPzotKD86YXxiKSk/KXwoPzptYXN0ZXItKD86YXxiKSkpLVxcZCskLy50ZXN0KGEpfWZ1bmN0aW9uIE9kKGEpe3JldHVybihhPWEubWF0Y2goL3NsYXZlLShcXGQrKS0vKSk/cGFyc2VJbnQoYVsxXSwxMCkrMToxfVxuZnVuY3Rpb24gUGQoYSxiLGMpe2Zvcih2YXIgZD1bXSxlLGY9MDtlPWNbZl07ZisrKWU9bmV3IGNjKGUpLEEoZSxhLGIpLGQucHVzaChkYyhlKSk7cmV0dXJuIGR9ZnVuY3Rpb24gUWQoYSxiKXthPUVkKGEpO2lmKChhPWEubWF0Y2gobmV3IFJlZ0V4cChcIls/Jl1cIitiK1wiPShbXiZdKilcIikpKSYmYVsxXSl0cnl7cmV0dXJuIE9iKGFbMV0pfWNhdGNoKGMpe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBSZChhKXthPUVkKGEpO3ZhciBiPXt9O2EucmVwbGFjZSgvWz8mXSsoW149Jl0rKT0/KFteJl0qKS9naSxmdW5jdGlvbihjLGQsZSl7dHJ5e2JbT2IoZCldPU9iKGUpfWNhdGNoKGYpe319KTtyZXR1cm4gYn1cbmZ1bmN0aW9uIFNkKCl7dmFyIGE9YT09PXZvaWQgMD93aW5kb3cubG9jYXRpb24uaHJlZjphO3ZhciBiPXooXCJfZW5hYmxlTGF6eUxvYWRpbmdcIiksYz1VYihcImxsZGxcIixXYigpKTtyZXR1cm4gYiYmYyYmKGM9bmV3IFJlZ0V4cChcIihcIithdG9iKGMpLnJlcGxhY2UoLywvZyxcIil8KFwiKStcIilcIiksYS5tYXRjaChjKSk/ITE6ISEoXCJJbnRlcnNlY3Rpb25PYnNlcnZlclwiaW4gd2luZG93JiZiKX1cbmZ1bmN0aW9uIFRkKGEsYixjKXtiPWI9PT12b2lkIDA/MDpiO2M9Yz09PXZvaWQgMD9udWxsOmM7dmFyIGQ9bmV3IFVjKDAsSW5maW5pdHksSW5maW5pdHksMCk7Zm9yKHZhciBlPXBkKGEpLGY9ZS5jYS5ib2R5LGc9ZS5jYS5kb2N1bWVudEVsZW1lbnQsaD11ZChlLmNhKSxrPWE7az16ZChrKTspaWYoKCFrZHx8ay5jbGllbnRIZWlnaHQhPTB8fGshPWYpJiZrIT1mJiZrIT1nJiZ4ZChrLFwib3ZlcmZsb3dcIikhPVwidmlzaWJsZVwiKXt2YXIgbD1BZChrKSxwPW5ldyBUYyhrLmNsaWVudExlZnQsay5jbGllbnRUb3ApO2wueCs9cC54O2wueSs9cC55O2QudG9wPU1hdGgubWF4KGQudG9wLGwueSk7ZC5yaWdodD1NYXRoLm1pbihkLnJpZ2h0LGwueCtrLmNsaWVudFdpZHRoKTtkLmJvdHRvbT1NYXRoLm1pbihkLmJvdHRvbSxsLnkray5jbGllbnRIZWlnaHQpO2QubGVmdD1NYXRoLm1heChkLmxlZnQsbC54KX1mPWguc2Nyb2xsTGVmdDtoPWguc2Nyb2xsVG9wO2QubGVmdD1NYXRoLm1heChkLmxlZnQsXG5mKTtkLnRvcD1NYXRoLm1heChkLnRvcCxoKTtlPWUuY2E7ZT10ZChlLnBhcmVudFdpbmRvd3x8ZS5kZWZhdWx0Vmlld3x8d2luZG93KTtkLnJpZ2h0PU1hdGgubWluKGQucmlnaHQsZitlLndpZHRoKTtkLmJvdHRvbT1NYXRoLm1pbihkLmJvdHRvbSxoK2UuaGVpZ2h0KTtkPWQudG9wPj0wJiZkLmxlZnQ+PTAmJmQuYm90dG9tPmQudG9wJiZkLnJpZ2h0PmQubGVmdD9kOm51bGw7ZT1uZXcgVGMoYS5vZmZzZXRMZWZ0LGEub2Zmc2V0VG9wKTthPUNkKGEpO2U9bmV3IFVjKGUueSxlLngrYS53aWR0aCxlLnkrYS5oZWlnaHQsZS54KTtjIT1udWxsJiYoYj0tTWF0aC5hYnMoYS5oZWlnaHQqYykpO3JldHVybiEhKGQmJmQubGVmdDw9ZS5yaWdodCtiJiZlLmxlZnQ8PWQucmlnaHQrYiYmZC50b3A8PWUuYm90dG9tK2ImJmUudG9wPD1kLmJvdHRvbStiKX1mdW5jdGlvbiBVZCgpe3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpIT09bnVsbH07dmFyIFZkPXt9O2Z1bmN0aW9uIFdkKGEpe3ZhciBiPXtuYW1lczpbXSxmcmFtZXM6W119LGM7Zm9yKGMgaW4gVmQpe3ZhciBkPVhkKGMsYSk7ZD09bnVsbD9kZWxldGUgVmRbY106KGIubmFtZXMucHVzaChjKSxiLmZyYW1lcy5wdXNoKGQpKX1yZXR1cm4gYn1XZD1CKFdkLFwiY0ZyXCIpO2Z1bmN0aW9uIFhkKGEsYil7aWYoWWQpcmV0dXJuIFlkKGEsYik7aWYoYT09Yi5uYW1lKXJldHVybiB3aW5kb3c7dHJ5e3ZhciBjPXdpbmRvdy5wYXJlbnQuZnJhbWVzW2ErXCJ8XCIrd2luZG93Lm5hbWVdO2lmKGMpcmV0dXJuIGN9Y2F0Y2goZCl7fXRyeXtyZXR1cm4gd2luZG93LnBhcmVudC5mcmFtZXNbYV18fG51bGx9Y2F0Y2goZCl7fXJldHVybiBudWxsfVhkPUIoWGQsXCJnRkJOXCIpO3ZhciBZZD1udWxsLFpkPVdkLCRkPVhkO2Z1bmN0aW9uIGFlKGEsYixjKXtjPWM9PT12b2lkIDA/W106Yzt0aGlzLmZyYW1lV2lkdGg9YTt0aGlzLmZyYW1lSGVpZ2h0PWI7dGhpcy5lYj1jfTtmdW5jdGlvbiBiZShhLGIsYyl7dmFyIGQ9ITE7YS5hZGRFdmVudExpc3RlbmVyKGIsYyk7YS5hZGRFdmVudExpc3RlbmVyKGIsZnVuY3Rpb24oKXtkfHwoYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyksZD0hMCl9KX07ZnVuY3Rpb24gY2UoKXt2YXIgYSxiO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGMsZCl7YT1jO2I9ZH0pLHJlc29sdmU6YSxyZWplY3Q6Yn19ZnVuY3Rpb24gZGUoYSxiKXt2YXIgYz1jZSgpO2Euc2V0VGltZW91dChmdW5jdGlvbigpe2MucmVzb2x2ZShiKX0sMCk7cmV0dXJuIGMucHJvbWlzZX1mdW5jdGlvbiBlZShhLGIpe3ZhciBjPWNlKCk7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjLnJlc29sdmUoYil9LGEpO3JldHVybiBjLnByb21pc2V9XG5mdW5jdGlvbiBmZShhKXt2YXIgYj1bXSxjPTAsZD1hLmxlbmd0aDtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxmKXtpZihkKWZvcih2YXIgZz17eWE6MH07Zy55YTxkO2c9e3lhOmcueWF9LGcueWErKylQcm9taXNlLnJlc29sdmUoYVtnLnlhXSkudGhlbihmdW5jdGlvbihoKXtyZXR1cm4gZnVuY3Rpb24oayl7YltoLnlhXT1rO2MrPTE7Yz09PWQmJmUoYil9fShnKSkuY2F0Y2goZnVuY3Rpb24oaCl7ZihoKX0pO2Vsc2UgZShiKX0pfTt2YXIgZ2U9bnVsbDtmdW5jdGlvbiBoZSgpe2lmKGdlIT1udWxsKXJldHVybiBnZTt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2Euc3R5bGUud2lkdGg9XCIxcHhcIjthLnN0eWxlLmhlaWdodD1cIjFweFwiO2Euc3R5bGUuYm9yZGVyPVwiMXB4IHNvbGlkIGJsYWNrXCI7YS5zdHlsZS5wYWRkaW5nPVwiMXB4XCI7YS5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTt2YXIgYj1hLm9mZnNldFdpZHRoO2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7cmV0dXJuIGdlPWI9PTV9ZnVuY3Rpb24gaWUoYSl7cmV0dXJuIHBhcnNlRmxvYXQoYS5yZXBsYWNlKFwicHhcIixcIlwiKSl8fDB9XG5mdW5jdGlvbiBqZShhLGIpe3ZhciBjPWI/YS5vZmZzZXRIZWlnaHQ6YS5vZmZzZXRXaWR0aDtiPWI/W1wiVG9wXCIsXCJCb3R0b21cIl06W1wiUmlnaHRcIixcIkxlZnRcIl07dmFyIGQ9ITE7dmFyIGU9aGUoKT9bXCJtYXJnaW5cIl06W1wiYm9yZGVyXCIsXCJtYXJnaW5cIixcInBhZGRpbmdcIl07dmFyIGY9ZS5sZW5ndGgsZz1iLmxlbmd0aCxoPWRvY3VtZW50LmRlZmF1bHRWaWV3O2lmKGgmJmguZ2V0Q29tcHV0ZWRTdHlsZSYmKGg9aC5nZXRDb21wdXRlZFN0eWxlKGEpKSl7ZD0hMDtmb3IodmFyIGs9MDtrPGY7aysrKWZvcih2YXIgbD0wO2w8ZztsKyspYys9aWUoaC5nZXRQcm9wZXJ0eVZhbHVlKFtlW2tdLGJbbF0udG9Mb3dlckNhc2UoKV0uam9pbihcIi1cIikpKX1pZighZCYmKGE9YS5jdXJyZW50U3R5bGUpKXtpZighaGUoKSlmb3IoZD0wO2Q8ZztkKyspYys9aWUoYVtbXCJib3JkZXJcIixiW2RdLFwiV2lkdGhcIl0uam9pbihcIlwiKV0pO2ZvcihkPTA7ZDxmO2QrKylpZihlW2RdIT1cImJvcmRlclwiKWZvcihoPTA7aDxcbmc7aCsrKWMrPWllKGFbW2VbZF0sYltoXV0uam9pbihcIlwiKV0pfXJldHVybiBjfTtmdW5jdGlvbiBrZShhKXtpZihsZSlyZXR1cm4gbGUoYSk7dmFyIGI9WmQoYSk7aWYoeSgpLmRhdGEuZWllbGwpbWUoYik7ZWxzZSByZXR1cm4gbmUoYi5mcmFtZXMpLnRoZW4oZnVuY3Rpb24oKXttZShiKX0pfWtlPUIoa2UsXCJzUEhcIik7dmFyIGxlPW51bGw7ZnVuY3Rpb24gb2UoYSl7dHJ5e3JldHVybiBqZShhLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwhMCl9Y2F0Y2goYil7cmV0dXJuIG51bGx9fW9lPUIob2UsXCJnQkhcIik7ZnVuY3Rpb24gcGUoYSl7dHJ5e3ZhciBiPWEuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJhZEJsb2NrXCIpO3JldHVybiBqZShiLCExKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19cGU9QihwZSxcImdCV1wiKTtcbmZ1bmN0aW9uIHFlKGEpe3ZhciBiPVtdO2E9dyhhLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaW1nXCIpKTtmb3IodmFyIGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKXt2YXIgZD1iLGU9ZC5wdXNoO2M9Yy52YWx1ZTt2YXIgZj1jZSgpO2MuY29tcGxldGU/Zi5yZXNvbHZlKCk6KGJlKGMsXCJsb2FkXCIsZi5yZXNvbHZlKSxiZShjLFwiZXJyb3JcIixmLnJlc29sdmUpKTtlLmNhbGwoZCxmLnByb21pc2UpfXJldHVybiBmZShiKX1xZT1CKHFlLFwiZ0ZIX3dmaXBcIik7XG5mdW5jdGlvbiBtZShhKXtmb3IodmFyIGI9MDtiPGEuZnJhbWVzLmxlbmd0aDtiKyspe3ZhciBjPWEuZnJhbWVzW2JdO2lmKHooXCJfb3B0aW1pemVGcmFtZU1lYXN1cmVtZW50XCIpKXt2YXIgZD1jLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtkPW5ldyBvZChkLm9mZnNldFdpZHRoLGQub2Zmc2V0SGVpZ2h0KTtjPXJlKGMpO2M9bmV3IGFlKGQud2lkdGgsZC5oZWlnaHQsYyl9ZWxzZXtkPW9lKGMpO3ZhciBlPXBlKGMpO3NlKGMsZCxlKT9jPW5ldyBhZSgxLDEpOihjPXJlKGMpLGM9bmV3IGFlKGUsZCxjKSl9ZD17fTtjPShkLmZ3PWMuZnJhbWVXaWR0aCxkLmZoPWMuZnJhbWVIZWlnaHQsZC5haD1jLmViLGQpO0xjKGEubmFtZXNbYl0rXCIuZnNcIixjLEljLmopfU1jKCl9XG5mdW5jdGlvbiBuZShhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKWIucHVzaChxZShhW2NdKSk7cmV0dXJuIFByb21pc2UucmFjZShbUHJvbWlzZS5hbGwoYiksZWUoNTAwLFwidGltZWRPdXRXYWl0aW5nRm9ySW1hZ2VzXCIpXSl9bmU9QihuZSxcImdGSFwiKTt2YXIgcmU9RShmdW5jdGlvbihhKXt2YXIgYj0hIXkoKS5kYXRhLmVjbzt2YXIgYz1bXTthPXcoYj9hLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuY2xpY2t0cmFja2VkQWRfanNcIik6YS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNpMTAxXCIpKTtmb3IoYj1hLm5leHQoKTshYi5kb25lO2I9YS5uZXh0KCkpYj1iLnZhbHVlLGI9eihcIl9vcHRpbWl6ZUZyYW1lTWVhc3VyZW1lbnRcIik/KG5ldyBvZChiLm9mZnNldFdpZHRoLGIub2Zmc2V0SGVpZ2h0KSkuaGVpZ2h0OmplKGIsITApLGMucHVzaChiKTtyZXR1cm4gY30sXCJnQUhJRlwiKTtcbmZ1bmN0aW9uIHNlKGEsYixjKXtyZXR1cm4odHlwZW9mIGI9PVwibnVtYmVyXCImJmI8MTZ8fHR5cGVvZiBjPT1cIm51bWJlclwiJiZjPDE2KSYmKGE9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIikpJiZhLmlubmVySFRNTCE9XCJcIj8hMDohMX1zZT1CKHNlLFwiaUNTSVwiKTt2YXIgdGU9a2U7dmFyIHVlPWphKFtcIi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1cIixcIlwiXSk7ZnVuY3Rpb24gdmUoYSxiKXtiPWJbYV07Ynx8KEMubG9nKFwiZnJhbWVPcHRpb25zIGlzIHVuZGVmaW5lZCBmb3IgXCIrYSxcImZBVVwiKSxiPXt9KTtyZXR1cm4gYn12ZT1CKHZlLFwiZ0ZPXCIpO2Z1bmN0aW9uIHdlKGEpe3JldHVybiBmdW5jdGlvbihiLGMpe3JldHVybiB0eXBlb2YgYVtiXT09XCJ1bmRlZmluZWRcIj9jfHxudWxsOmFbYl19fWZ1bmN0aW9uIHhlKGEpe3JldHVybiBmdW5jdGlvbihiLGMpe2lmKGEuaGFzT3duUHJvcGVydHkoYikpe2I9YVtiXS5zcGxpdChcIixcIik7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspaWYoYltkXT09YylyZXR1cm4hMDtyZXR1cm4hMX1yZXR1cm4hMH19ZnVuY3Rpb24geWUoYSl7cmV0dXJuKGE9YS53aWR0aCkmJmEhPVwiYXV0b1wiP2E6XCIxMDAlXCJ9XG5mdW5jdGlvbiB6ZShhKXt2YXIgYj17eGE6ITEsamQ6bnVsbCxwZDpudWxsfTthLnZlcnRpY2FsU3BhY2luZyYmKGE9YS52ZXJ0aWNhbFNwYWNpbmcvMixiLnhhPSEwLGIuamQ9TWF0aC5mbG9vcihhKSxiLnBkPU1hdGguY2VpbChhKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gQWUoYSl7aWYoYS5mb250U2l6ZVRpdGxlKXJldHVybiBhLmZvbnRTaXplVGl0bGU7YT0kYSgpO3JldHVybiBhLmRhdGEuaG18fGEuZGF0YS50PzE4Om51bGx9ZnVuY3Rpb24gQmUoYSl7dmFyIGI9W107aWYoYS53ZWJGb250RmFtaWx5KXt2YXIgYz1hLndlYkZvbnRGYW1pbHk7YS50aXRsZUJvbGQmJihjKz1cIjo0MDAsNzAwXCIpO2IucHVzaChjKX1hLndlYkZvbnRGYW1pbHlBdHRyaWJ1dGlvbiYmKGM9YS53ZWJGb250RmFtaWx5QXR0cmlidXRpb24sYS5hdHRyaWJ1dGlvbkJvbGQmJihjKz1cIjo0MDAsNzAwXCIpLGIucHVzaChjKSk7cmV0dXJuIGIubGVuZ3RoPT0wP251bGw6bWQodWUsYi5qb2luKFwifFwiKSl9dmFyIENlPXZlOyFnZChcIkFuZHJvaWRcIil8fGlkKCk7aWQoKTtnZChcIlNhZmFyaVwiKSYmKGlkKCl8fChoZCgpPzA6Z2QoXCJDb2FzdFwiKSl8fChoZCgpPzA6Z2QoXCJPcGVyYVwiKSl8fChoZCgpPzA6Z2QoXCJFZGdlXCIpKXx8KGhkKCk/ZmQoXCJNaWNyb3NvZnQgRWRnZVwiKTpnZChcIkVkZy9cIikpfHxoZCgpJiZmZChcIk9wZXJhXCIpKTtNYXRoLm1heC5hcHBseShNYXRoLGthKE9iamVjdC52YWx1ZXMoe0ZnOjEsRGc6MixDZzo0LElnOjgsSGc6MTYsR2c6MzIseGc6NjQsS2c6MTI4LEJnOjI1NixBZzo1MTIsRWc6MTAyNCx5ZzoyMDQ4LEpnOjQwOTYsemc6ODE5Mn0pKSk7ZnVuY3Rpb24gRGUoKXt9T2JqZWN0LmZyZWV6ZShuZXcgZnVuY3Rpb24oKXt9KTtPYmplY3QuZnJlZXplKG5ldyBEZSk7T2JqZWN0LmZyZWV6ZShuZXcgRGUpO3ZhciBFZT17fSxGZT17fSxHZT17fSxIZT17fSxJZT17fTtmdW5jdGlvbiBKZSgpe3Rocm93IEVycm9yKFwiRG8gbm90IGluc3RhbnRpYXRlIGRpcmVjdGx5XCIpO31KZS5wcm90b3R5cGUuc2E9bnVsbDtKZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50fTtKZS5wcm90b3R5cGUuV2Q9ZnVuY3Rpb24oKXtpZih0aGlzLlQhPT1FZSl0aHJvdyBFcnJvcihcIlNhbml0aXplZCBjb250ZW50IHdhcyBub3Qgb2Yga2luZCBIVE1MLlwiKTtyZXR1cm4gSmIodGhpcy50b1N0cmluZygpKX07ZnVuY3Rpb24gS2UoKXtKZS5jYWxsKHRoaXMpfUlhKEtlLEplKTtLZS5wcm90b3R5cGUuVD1FZTtmdW5jdGlvbiBMZSgpe0plLmNhbGwodGhpcyl9SWEoTGUsSmUpO0xlLnByb3RvdHlwZS5UPUZlO0xlLnByb3RvdHlwZS5zYT0xO2Z1bmN0aW9uIE1lKCl7SmUuY2FsbCh0aGlzKX1JYShNZSxKZSk7TWUucHJvdG90eXBlLlQ9R2U7TWUucHJvdG90eXBlLnNhPTE7XG5mdW5jdGlvbiBOZSgpe0plLmNhbGwodGhpcyl9SWEoTmUsSmUpO05lLnByb3RvdHlwZS5UPUhlO05lLnByb3RvdHlwZS5zYT0xO2Z1bmN0aW9uIE9lKCl7SmUuY2FsbCh0aGlzKX1JYShPZSxKZSk7T2UucHJvdG90eXBlLlQ9SWU7T2UucHJvdG90eXBlLnNhPTE7ZnVuY3Rpb24gUGUoYSl7aWYoYSE9bnVsbClzd2l0Y2goYS5zYSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgLTE6cmV0dXJuLTE7Y2FzZSAwOnJldHVybiAwfXJldHVybiBudWxsfWZ1bmN0aW9uIFFlKGEpe3JldHVybiBSZShhLEVlKT9hOmEgaW5zdGFuY2VvZiBHYj9IKEhiKGEpLnRvU3RyaW5nKCkpOkgoU3RyaW5nKFN0cmluZyhhKSkucmVwbGFjZShTZSxUZSksUGUoYSkpfWZ1bmN0aW9uIFVlKGEpe2Z1bmN0aW9uIGIoYyl7dGhpcy5jb250ZW50PWN9Yi5wcm90b3R5cGU9YS5wcm90b3R5cGU7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBuZXcgYihTdHJpbmcoYykpfX1cbnZhciBIPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyl7dGhpcy5jb250ZW50PWN9Yi5wcm90b3R5cGU9YS5wcm90b3R5cGU7cmV0dXJuIGZ1bmN0aW9uKGMsZCl7Yz1uZXcgYihTdHJpbmcoYykpO2QhPT12b2lkIDAmJihjLnNhPWQpO3JldHVybiBjfX0oS2UpLFZlPVVlKExlKSxXZT1VZShNZSksWGU9VWUoTmUpLEo9VWUoT2UpO2Z1bmN0aW9uIFllKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gYSliLnB1c2goYyk7cmV0dXJuIGJ9ZnVuY3Rpb24gTChhLGIpe3JldHVybiBhJiZiJiZhLndmJiZiLndmP2EuVCE9PWIuVD8hMTphLnRvU3RyaW5nKCk9PT1iLnRvU3RyaW5nKCk6YSBpbnN0YW5jZW9mIEplJiZiIGluc3RhbmNlb2YgSmU/YS5UIT1iLlQ/ITE6YS50b1N0cmluZygpPT1iLnRvU3RyaW5nKCk6YT09Yn1mdW5jdGlvbiBaZShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEplPyEhYS5jb250ZW50OiEhYX1cbmZ1bmN0aW9uICRlKGEpe3JldHVybiBhZihTdHJpbmcoYSksZnVuY3Rpb24oKXtyZXR1cm5cIlwifSkucmVwbGFjZShiZixcIiZsdDtcIil9dmFyIGNmPVJlZ0V4cC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoXCJzdGlja3lcIiksZGY9bmV3IFJlZ0V4cCgoY2Y/XCJcIjpcIl5cIikrXCIoPzohfC8/KFthLXpBLVpdW2EtekEtWjAtOTotXSopKVwiLGNmP1wiZ3lcIjpcImdcIik7XG5mdW5jdGlvbiBhZihhLGIpe2Zvcih2YXIgYz1bXSxkPWEubGVuZ3RoLGU9MCxmPVtdLGcsaCxrPTA7azxkOyl7c3dpdGNoKGUpe2Nhc2UgMDp2YXIgbD1hLmluZGV4T2YoXCI8XCIsayk7aWYobDwwKXtpZihjLmxlbmd0aD09PTApcmV0dXJuIGE7Yy5wdXNoKGEuc3Vic3RyaW5nKGspKTtrPWR9ZWxzZSBjLnB1c2goYS5zdWJzdHJpbmcoayxsKSksaD1sLGs9bCsxLGNmPyhkZi5sYXN0SW5kZXg9ayxsPWRmLmV4ZWMoYSkpOihkZi5sYXN0SW5kZXg9MCxsPWRmLmV4ZWMoYS5zdWJzdHJpbmcoaykpKSxsPyhmPVtcIjxcIixsWzBdXSxnPWxbMV0sZT0xLGsrPWxbMF0ubGVuZ3RoKTpjLnB1c2goXCI8XCIpO2JyZWFrO2Nhc2UgMTpsPWEuY2hhckF0KGsrKyk7c3dpdGNoKGwpe2Nhc2UgXCInXCI6Y2FzZSAnXCInOnZhciBwPWEuaW5kZXhPZihsLGspO3A8MD9rPWQ6KGYucHVzaChsLGEuc3Vic3RyaW5nKGsscCsxKSksaz1wKzEpO2JyZWFrO2Nhc2UgXCI+XCI6Zi5wdXNoKGwpO2MucHVzaChiKGYuam9pbihcIlwiKSxcbmcpKTtlPTA7Zj1bXTtoPWc9bnVsbDticmVhaztkZWZhdWx0OmYucHVzaChsKX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCk7fWU9PT0xJiZrPj1kJiYoaz1oKzEsYy5wdXNoKFwiPFwiKSxlPTAsZj1bXSxoPWc9bnVsbCl9cmV0dXJuIGMuam9pbihcIlwiKX1mdW5jdGlvbiBlZihhKXtyZXR1cm4gYS5yZXBsYWNlKC88XFwvL2csXCI8XFxcXC9cIikucmVwbGFjZSgvXFxdXFxdPi9nLFwiXV1cXFxcPlwiKX1mdW5jdGlvbiBNKGEpe3JldHVybiBSZShhLEVlKT9TdHJpbmcoJGUoYS5jb250ZW50KSkucmVwbGFjZShmZixUZSk6U3RyaW5nKGEpLnJlcGxhY2UoU2UsVGUpfWZ1bmN0aW9uIGdmKGEpe1JlKGEsSGUpP2E9YS5jb250ZW50OihhPVN0cmluZyhhKSxhPWhmLnRlc3QoYSk/YTpcInpTb3l6XCIpO3JldHVybiBhfWZ1bmN0aW9uIGpmKGEpe1JlKGEsSGUpJiYoYT1hLmNvbnRlbnQpO3JldHVybihhJiYhYS5zdGFydHNXaXRoKFwiIFwiKT9cIiBcIjpcIlwiKSthfVxuZnVuY3Rpb24ga2YoYSl7UmUoYSxGZSl8fFJlKGEsR2UpP2E9bGYoYSk6YSBpbnN0YW5jZW9mIHViP2E9bGYodmIoYSkpOmEgaW5zdGFuY2VvZiBuYj9hPWxmKHFiKGEpLnRvU3RyaW5nKCkpOihhPVN0cmluZyhhKSxhPW1mLnRlc3QoYSk/YS5yZXBsYWNlKG5mLG9mKTpcImFib3V0OmludmFsaWQjelNveXpcIik7cmV0dXJuIGF9ZnVuY3Rpb24gcGYoYSl7UmUoYSxGZSl8fFJlKGEsR2UpP2E9bGYoYSk6YSBpbnN0YW5jZW9mIHViP2E9bGYodmIoYSkpOmEgaW5zdGFuY2VvZiBuYj9hPWxmKHFiKGEpLnRvU3RyaW5nKCkpOihhPVN0cmluZyhhKSxhPXFmLnRlc3QoYSk/YS5yZXBsYWNlKG5mLG9mKTpcImFib3V0OmludmFsaWQjelNveXpcIik7cmV0dXJuIGF9XG5mdW5jdGlvbiBOKGEpe1JlKGEsSWUpP2E9ZWYoYS5jb250ZW50KTphPT1udWxsP2E9XCJcIjphIGluc3RhbmNlb2YgRGI/YT1lZihhIGluc3RhbmNlb2YgRGImJmEuY29uc3RydWN0b3I9PT1EYj9hLlBkOlwidHlwZV9lcnJvcjpTYWZlU3R5bGVcIik6YSBpbnN0YW5jZW9mIEViP2E9ZWYoYSBpbnN0YW5jZW9mIEViJiZhLmNvbnN0cnVjdG9yPT09RWI/YS5PZDpcInR5cGVfZXJyb3I6U2FmZVN0eWxlU2hlZXRcIik6KGE9U3RyaW5nKGEpLGE9cmYudGVzdChhKT9hOlwielNveXpcIik7cmV0dXJuIGF9ZnVuY3Rpb24gUmUoYSxiKXtyZXR1cm4gYSE9bnVsbCYmYS5UPT09Yn1cbnZhciBzZj17XCJcXHgwMFwiOlwiJiMwO1wiLFwiXFx0XCI6XCImIzk7XCIsXCJcXG5cIjpcIiYjMTA7XCIsXCJcXHZcIjpcIiYjMTE7XCIsXCJcXGZcIjpcIiYjMTI7XCIsXCJcXHJcIjpcIiYjMTM7XCIsXCIgXCI6XCImIzMyO1wiLCdcIic6XCImcXVvdDtcIixcIiZcIjpcIiZhbXA7XCIsXCInXCI6XCImIzM5O1wiLFwiLVwiOlwiJiM0NTtcIixcIi9cIjpcIiYjNDc7XCIsXCI8XCI6XCImbHQ7XCIsXCI9XCI6XCImIzYxO1wiLFwiPlwiOlwiJmd0O1wiLFwiYFwiOlwiJiM5NjtcIixcIlxcdTAwODVcIjpcIiYjMTMzO1wiLFwiXFx1MDBhMFwiOlwiJiMxNjA7XCIsXCJcXHUyMDI4XCI6XCImIzgyMzI7XCIsXCJcXHUyMDI5XCI6XCImIzgyMzM7XCJ9O2Z1bmN0aW9uIFRlKGEpe3JldHVybiBzZlthXX1cbnZhciB0Zj17XCJcXHgwMFwiOlwiXFxcXDAgXCIsXCJcXGJcIjpcIlxcXFw4IFwiLFwiXFx0XCI6XCJcXFxcOSBcIixcIlxcblwiOlwiXFxcXGEgXCIsXCJcXHZcIjpcIlxcXFxiIFwiLFwiXFxmXCI6XCJcXFxcYyBcIixcIlxcclwiOlwiXFxcXGQgXCIsJ1wiJzpcIlxcXFwyMiBcIixcIiZcIjpcIlxcXFwyNiBcIixcIidcIjpcIlxcXFwyNyBcIixcIihcIjpcIlxcXFwyOCBcIixcIilcIjpcIlxcXFwyOSBcIixcIipcIjpcIlxcXFwyYSBcIixcIi9cIjpcIlxcXFwyZiBcIixcIjpcIjpcIlxcXFwzYSBcIixcIjtcIjpcIlxcXFwzYiBcIixcIjxcIjpcIlxcXFwzYyBcIixcIj1cIjpcIlxcXFwzZCBcIixcIj5cIjpcIlxcXFwzZSBcIixcIkBcIjpcIlxcXFw0MCBcIixcIlxcXFxcIjpcIlxcXFw1YyBcIixcIntcIjpcIlxcXFw3YiBcIixcIn1cIjpcIlxcXFw3ZCBcIixcIlxcdTAwODVcIjpcIlxcXFw4NSBcIixcIlxcdTAwYTBcIjpcIlxcXFxhMCBcIixcIlxcdTIwMjhcIjpcIlxcXFwyMDI4IFwiLFwiXFx1MjAyOVwiOlwiXFxcXDIwMjkgXCJ9O2Z1bmN0aW9uIHVmKGEpe3JldHVybiB0ZlthXX1cbnZhciB2Zj17XCJcXHgwMFwiOlwiJTAwXCIsXCJcXHUwMDAxXCI6XCIlMDFcIixcIlxcdTAwMDJcIjpcIiUwMlwiLFwiXFx1MDAwM1wiOlwiJTAzXCIsXCJcXHUwMDA0XCI6XCIlMDRcIixcIlxcdTAwMDVcIjpcIiUwNVwiLFwiXFx1MDAwNlwiOlwiJTA2XCIsXCJcXHUwMDA3XCI6XCIlMDdcIixcIlxcYlwiOlwiJTA4XCIsXCJcXHRcIjpcIiUwOVwiLFwiXFxuXCI6XCIlMEFcIixcIlxcdlwiOlwiJTBCXCIsXCJcXGZcIjpcIiUwQ1wiLFwiXFxyXCI6XCIlMERcIixcIlxcdTAwMGVcIjpcIiUwRVwiLFwiXFx1MDAwZlwiOlwiJTBGXCIsXCJcXHUwMDEwXCI6XCIlMTBcIixcIlxcdTAwMTFcIjpcIiUxMVwiLFwiXFx1MDAxMlwiOlwiJTEyXCIsXCJcXHUwMDEzXCI6XCIlMTNcIixcIlxcdTAwMTRcIjpcIiUxNFwiLFwiXFx1MDAxNVwiOlwiJTE1XCIsXCJcXHUwMDE2XCI6XCIlMTZcIixcIlxcdTAwMTdcIjpcIiUxN1wiLFwiXFx1MDAxOFwiOlwiJTE4XCIsXCJcXHUwMDE5XCI6XCIlMTlcIixcIlxcdTAwMWFcIjpcIiUxQVwiLFwiXFx1MDAxYlwiOlwiJTFCXCIsXCJcXHUwMDFjXCI6XCIlMUNcIixcIlxcdTAwMWRcIjpcIiUxRFwiLFwiXFx1MDAxZVwiOlwiJTFFXCIsXCJcXHUwMDFmXCI6XCIlMUZcIixcIiBcIjpcIiUyMFwiLCdcIic6XCIlMjJcIixcIidcIjpcIiUyN1wiLFwiKFwiOlwiJTI4XCIsXG5cIilcIjpcIiUyOVwiLFwiPFwiOlwiJTNDXCIsXCI+XCI6XCIlM0VcIixcIlxcXFxcIjpcIiU1Q1wiLFwie1wiOlwiJTdCXCIsXCJ9XCI6XCIlN0RcIixcIlxcdTAwN2ZcIjpcIiU3RlwiLFwiXFx1MDA4NVwiOlwiJUMyJTg1XCIsXCJcXHUwMGEwXCI6XCIlQzIlQTBcIixcIlxcdTIwMjhcIjpcIiVFMiU4MCVBOFwiLFwiXFx1MjAyOVwiOlwiJUUyJTgwJUE5XCIsXCJcXHVmZjAxXCI6XCIlRUYlQkMlODFcIixcIlxcdWZmMDNcIjpcIiVFRiVCQyU4M1wiLFwiXFx1ZmYwNFwiOlwiJUVGJUJDJTg0XCIsXCJcXHVmZjA2XCI6XCIlRUYlQkMlODZcIixcIlxcdWZmMDdcIjpcIiVFRiVCQyU4N1wiLFwiXFx1ZmYwOFwiOlwiJUVGJUJDJTg4XCIsXCJcXHVmZjA5XCI6XCIlRUYlQkMlODlcIixcIlxcdWZmMGFcIjpcIiVFRiVCQyU4QVwiLFwiXFx1ZmYwYlwiOlwiJUVGJUJDJThCXCIsXCJcXHVmZjBjXCI6XCIlRUYlQkMlOENcIixcIlxcdWZmMGZcIjpcIiVFRiVCQyU4RlwiLFwiXFx1ZmYxYVwiOlwiJUVGJUJDJTlBXCIsXCJcXHVmZjFiXCI6XCIlRUYlQkMlOUJcIixcIlxcdWZmMWRcIjpcIiVFRiVCQyU5RFwiLFwiXFx1ZmYxZlwiOlwiJUVGJUJDJTlGXCIsXCJcXHVmZjIwXCI6XCIlRUYlQkMlQTBcIixcIlxcdWZmM2JcIjpcIiVFRiVCQyVCQlwiLFxuXCJcXHVmZjNkXCI6XCIlRUYlQkMlQkRcIn07ZnVuY3Rpb24gb2YoYSl7cmV0dXJuIHZmW2FdfVxudmFyIFNlPS9bXFx4MDBcXHgyMlxceDI2XFx4MjdcXHgzY1xceDNlXS9nLGZmPS9bXFx4MDBcXHgyMlxceDI3XFx4M2NcXHgzZV0vZyx3Zj0vW1xceDAwXFx4MDgtXFx4MGRcXHgyMlxceDI2LVxceDJhXFwvXFx4M2EtXFx4M2VAXFxcXFxceDdiXFx4N2RcXHg4NVxceGEwXFx1MjAyOFxcdTIwMjldL2csbmY9L1tcXHgwMC0gXFx4MjJcXHgyNy1cXHgyOVxceDNjXFx4M2VcXFxcXFx4N2JcXHg3ZFxceDdmXFx4ODVcXHhhMFxcdTIwMjhcXHUyMDI5XFx1ZmYwMVxcdWZmMDNcXHVmZjA0XFx1ZmYwNi1cXHVmZjBjXFx1ZmYwZlxcdWZmMWFcXHVmZjFiXFx1ZmYxZFxcdWZmMWZcXHVmZjIwXFx1ZmYzYlxcdWZmM2RdL2cscmY9L14oPyEtKig/OmV4cHJlc3Npb258KD86bW96LSk/YmluZGluZykpKD86KD86Wy4jXT8tPyg/OltfYS16MC05LV0rKSg/Oi1bX2EtejAtOS1dKykqLT98KD86Y2FsY3xjdWJpYy1iZXppZXJ8ZHJvcC1zaGFkb3d8aHNsfGhzbGF8aHVlLXJvdGF0ZXxpbnZlcnR8bGluZWFyLWdyYWRpZW50fG1heHxtaW58cmdifHJnYmF8cm90YXRlfHJvdGF0ZVp8dHJhbnNsYXRlfHRyYW5zbGF0ZTNkfHRyYW5zbGF0ZVh8dHJhbnNsYXRlWXx2YXIpXFwoKD86KD86KD86KD86XFwvKD8hW1xcL1xcKl0pKXwoPzpcXCooPyFcXC8pKSk/Wy1cXHUwMDIwXFx0LCsuISMlXzAtOWEtekEtWl0rKSp8KD86Y2FsY3xjdWJpYy1iZXppZXJ8ZHJvcC1zaGFkb3d8aHNsfGhzbGF8aHVlLXJvdGF0ZXxpbnZlcnR8bGluZWFyLWdyYWRpZW50fG1heHxtaW58cmdifHJnYmF8cm90YXRlfHJvdGF0ZVp8dHJhbnNsYXRlfHRyYW5zbGF0ZTNkfHRyYW5zbGF0ZVh8dHJhbnNsYXRlWXx2YXIpXFwoKD86KD86KD86XFwvKD8hW1xcL1xcKl0pKXwoPzpcXCooPyFcXC8pKSk/Wy1cXHUwMDIwXFx0LCsuISMlXzAtOWEtekEtWl0rKSpcXCkpK1xcKXxbLStdPyg/OlswLTldKyg/OlxcLlswLTldKik/fFxcLlswLTldKykoPzplLT9bMC05XSspPyg/OlthLXpdezEsNH18JSk/fCg/Oig/OlxcLyg/IVtcXC9cXCpdKSl8KD86XFwqKD8hXFwvKSkpfCFpbXBvcnRhbnQpKD86XFxzKlssXFx1MDAyMF1cXHMqfCQpKSokL2ksbWY9XG4vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOlxcLz8jXSooPzpbXFwvPyNdfCQpKS9pLHFmPS9eW14mOlxcLz8jXSooPzpbXFwvPyNdfCQpfF5odHRwcz86fF5mdHA6fF5kYXRhOmltYWdlXFwvW2EtejAtOSstXSs7YmFzZTY0LFthLXowLTkrXFwvXSs9KiR8XmJsb2I6L2ksaGY9L14oPyFvbnxzcmN8KD86YWN0aW9ufGFyY2hpdmV8YmFja2dyb3VuZHxjaXRlfGNsYXNzaWR8Y29kZWJhc2V8Y29udGVudHxkYXRhfGRzeW5jfGhyZWZ8aHR0cC1lcXVpdnxsb25nZGVzY3xzdHlsZXx1c2VtYXApXFxzKiQpKD86W2EtejAtOV8kOi1dKikkL2k7ZnVuY3Rpb24gbGYoYSl7cmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKG5mLG9mKX12YXIgYmY9LzwvZzsvKlxuIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuXG4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5mdW5jdGlvbiB4ZihhLGIpe2I9Ynx8cGQoKTtpZihhJiZhLlJjKWI9YS5SYygpO2Vsc2V7Yj1iLmNyZWF0ZUVsZW1lbnQoXCJESVZcIik7YTppZihHYShhKSl7aWYoYS5XZCYmKGE9YS5XZCgpLGEgaW5zdGFuY2VvZiBHYikpYnJlYWsgYTthPUliKFwielNveXpcIil9ZWxzZSBhPUliKFN0cmluZyhhKSk7dmFyIGM9YjtpZihuZCgpKWZvcig7Yy5sYXN0Q2hpbGQ7KWMucmVtb3ZlQ2hpbGQoYy5sYXN0Q2hpbGQpO2MuaW5uZXJIVE1MPUhiKGEpfXJldHVybiBiLmNoaWxkTm9kZXMubGVuZ3RoPT0xJiYoYT1iLmZpcnN0Q2hpbGQsYS5ub2RlVHlwZT09MSk/YTpifXZhciB5Zj17fTtmdW5jdGlvbiB6ZihhKXt2YXIgYj1hLmRhLGM9YS51ZixkPWEuemYsZT1hLndlLGY9YS5wZyxnPWEuaGUsaD1hLk1lLGs9YS5OZSxsPWEuR2UscD1hLkhlLHE9YS5GZSxyPWEuZm9udEZhbWlseSx0PWEuWmUsdT1hLmVmLHY9YS5hZixEPWEuamcsST1hLmtnLFQ9YS5TZixiYT1hLlRmLEhhPWEuUmYsZ2I9YS5VZixWYT1hLlFmLFk9YS5FZixaPWEuZWUsZGQ9YS5zZSwkYj1hLnRlLGFjPWEudWUsZWQ9YS5yZSxLPWEuRGYsaGI9YS5yZyxhYT1hLnNnLGhhPWEubmUsdGE9YS5yZixVZz1hLkNlO2E9YS5CZTt2YXIgd2o9Zi54YT9cInBhZGRpbmctdG9wOlwiK04oZi5qZCkrXCJweDsgcGFkZGluZy1ib3R0b206XCIrTihmLnBkKStcInB4O1wiOmN8fGQ/XCJwYWRkaW5nOjdweCAwO1wiOlwiXCI7dj12P04odik6ZD9cIjE1XCI6XCIxM1wiO2Y9XCI8c3R5bGU+I3Jlc3BvbnNlX2RlYnVnX291dHB1dHttYXgtaGVpZ2h0OjUwMHB4OyBvdmVyZmxvdzphdXRvO31ib2R5e1wiKyhjP1wiLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7XCI6XG5cIlwiKStcImNvbG9yOlwiKyhoP04oaCk6XCIjMDAwXCIpK1wiOyBmb250LWZhbWlseTpcIisoaGI/XCInXCIrU3RyaW5nKGhiKS5yZXBsYWNlKHdmLHVmKStcIicsXCI6XCJcIikrKFplKHIpP04ocik6XCJhcmlhbFwiKStcIiwgc2Fucy1zZXJpZjsgZm9udC1zaXplOlwiKyhjfHxkP1wiMTRcIjpcIjEyXCIpK1wicHg7IHdpZHRoOlwiK04oZSkrXCI7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4O1wiKyhwJiYoJGJ8fFopP1wicGFkZGluZy1yaWdodDoycHg7XCI6XCJcIikrKHRhJiZiP1wiZGlyZWN0aW9uOnJ0bDtcIjpcIlwiKStcIn1ib2R5ey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApOyAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7fWF7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOmluaXRpYWw7fS5hZHtwYWRkaW5nOjJweCAwOyBtYXJnaW46MHB4OyB3b3JkLXdyYXA6YnJlYWstd29yZDtcIit3aisoZz9cImJvcmRlci1ib3R0b206MXB4IHNvbGlkIFwiK04oZykrXCI7XCI6XCJcIikrXCJ9XCIrKFZhJiZcbiF0YT9cIi5cIitOKFwiYV9cIikrXCI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpcIitOKFZhKStcIjt9XCI6XCJcIikrXCIuYWQuZntcIisoZi54YT9cInBhZGRpbmctdG9wOjJweDtcIjpcIlwiKStcIn0uYWQuZnJ7XCIrKGYueGE/XCJwYWRkaW5nLXRvcDoycHg7XCI6XCJcIikrXCJ9LmFkLmx7XCIrKGYueGE/XCJwYWRkaW5nLWJvdHRvbToycHg7XCI6XCJcIikrKGc/XCJib3JkZXItYm90dG9tOjBweDtcIjpcIlwiKStcIn0uYWQubHJ7XCIrKGYueGE/XCJwYWRkaW5nLWJvdHRvbToycHg7XCI6XCJcIikrXCJ9I2FkQmxvY2sgYntcIisoYXx8dGE/XCJcIjpcImZvbnQtd2VpZ2h0Om5vcm1hbDtcIikrXCJ9LmFkIHNwYW57X3dpZHRoOjk5JTt9I2FkQmxvY2t7YmFja2dyb3VuZDojRkZGIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7IG1hcmdpbjowOyBwYWRkaW5nOjA7XCIrKGw/XCJiYWNrZ3JvdW5kLWNvbG9yOlwiK04obCkrXCI7XCI6XCJcIikrKHAmJmRkP1wiYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIFwiK04ocCkrXCI7XCI6XCJcIikrKHAmJiRiP1wiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCBcIitcbk4ocCkrXCI7XCI6XCJcIikrKHAmJmFjP1wiYm9yZGVyLXRvcDoxcHggc29saWQgXCIrTihwKStcIjtcIjpcIlwiKSsocCYmZWQ/XCJib3JkZXItYm90dG9tOjFweCBzb2xpZCBcIitOKHApK1wiO1wiOlwiXCIpK1wifSNhZEJsb2NrIGgye2ZvbnQtc2l6ZTpcIit2K1wicHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDtcIisoaGE/XCJwYWRkaW5nLWJvdHRvbTpcIitOKGhhKStcInB4O1wiOlwicGFkZGluZzowO1wiKStcIm1hcmdpbjowO1wiKyhaZSh0KXx8YWE/XCJmb250LWZhbWlseTpcIisoYWE/XCInXCIrU3RyaW5nKGFhKS5yZXBsYWNlKHdmLHVmKStcIicsXCI6XCJcIikrKFplKHQpP04odCkrXCIsXCI6XCJcIikrXCIgc2Fucy1zZXJpZjtcIjpcIlwiKStcIn0jYWRCbG9jayBzcGFuLmxoSGVhZGVye21hcmdpbjozcHggNHB4IDA7fSNhZEJsb2NrIGgyIGEsICNhZEJsb2NrIGgye2NvbG9yOlwiKyhxP04ocSk6XCIjNjc2NzY3XCIpK1wiOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9LlwiK04oXCJjX1wiKStcIntjb2xvcjpcIitOKGspK1wiO30uXCIrTihcImNfXCIpK1wie1wiKyh1P1wiZm9udC1zaXplOlwiK1xuTih1KStcInB4O1wiOlwiXCIpK1wiZm9udC13ZWlnaHQ6XCIrKEQ/XCJib2xkXCI6XCJub3JtYWxcIikrXCI7fS5cIitOKFwiY19cIikrXCJ7XCIrKEk/XCJkaXNwbGF5OmlubGluZS1ibG9jaztcIjpcIlwiKStcImxpbmUtaGVpZ2h0OlwiKyhLP04oSykrXCJweFwiOlwiMS40ZW1cIikrXCI7XCIrKFk/XCJ0ZXh0LWRlY29yYXRpb246bm9uZTtcIjpcIlwiKStcIm1hcmdpbjowOyBwYWRkaW5nOjA7fVwiKyhnYj9cIi5cIitOKFwiY19cIikrXCI6aG92ZXIge3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fWF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fVwiOlwiXCIpK1wiaDIgYTpob3Zlcntjb2xvcjpcIisocT9OKHEpOlwiIzY3Njc2N1wiKStcIjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt9YTpob3ZlcntcIisoVD9cImZvbnQtd2VpZ2h0OmJvbGQ7XCI6XCJcIikrKGJhP1wiY29sb3I6XCIrTihiYSkrXCI7XCI6XCJcIikrKEhhP1wiYmFja2dyb3VuZC1jb2xvcjpcIitOKEhhKStcIjtcIjpcIlwiKStcIn1cIjtlPWI/XG5cInJpZ2h0XCI6XCJsZWZ0XCI7Zis9VWc/XCIuYWRJY29ue3Zpc2liaWxpdHk6dmlzaWJsZTsgYm9yZGVyOm5vbmU7IGZsb2F0OlwiK04oZSkrXCI7fS5hZEQsIC5cIitOKFwiYV9cIikrXCJ7ZGlzcGxheTpibG9jazsgb3ZlcmZsb3c6aGlkZGVuO31cIjpcIlwiO2I9Yz9cIi5hZER7Y2xlYXI6XCIrTihiP1wibGVmdFwiOlwicmlnaHRcIikrXCI7fVwiOlwiXCI7Yz1jfHxkP0ooXCJib2R5e2ZvbnQtZmFtaWx5OlwiKyhoYj9cIidcIitTdHJpbmcoaGIpLnJlcGxhY2Uod2YsdWYpK1wiJyxcIjpcIlwiKSsoWmUocik/TihyKStcIixcIjpcIlwiKSsnXCJSb2JvdG9cIixcIkhlbHZldGljYSBOZXVlXCIsYXJpYWwsc2Fucy1zZXJpZjt9LmFke21hcmdpbjowOyBwYWRkaW5nOjA7fS4nK04oXCJjX1wiKStcIntsaW5lLWhlaWdodDpcIisoSz9OKEspOlwiMjBcIikrXCJweDsgbWFyZ2luOjA7fXRke3BhZGRpbmc6MHB4O30uYWRTdGR7Y2xlYXI6bm9uZTt9XCIrKFVnP1wiLmFkSWNvbnttYXJnaW4tXCIrTihlKStcIjowcHg7fVwiOlwiXCIpK1wiLmFkU3Rke2NsZWFyOm5vbmU7fVwiKTpcIlwiO1xucmV0dXJuIEgoZisoYitjK1wiPC9zdHlsZT5cIikpfTtmdW5jdGlvbiBBZihhKXt2YXIgYj1hLmRhLGM9YS50eXBlLGQ9YS5uZixlPWEubWYsZj1hLkllLGc9YS5KZSxoPWEuTGUsaz1hLndnLGw9YS51ZyxwPWEuZGYscT1hLmJmLHI9YS5sZix0PWEua2YsdT1hLktlLHY9YS52ZyxEPWEuSmYsST1hLnRnLFQ9YS5nZTtyZXR1cm4gSChcIjxzdHlsZT5cIisoWmUoSSk/XCJAaW1wb3J0IHVybChcIisoUmUoSSxHZSk/SS5jb250ZW50OkkgaW5zdGFuY2VvZiBuYj9xYihJKS50b1N0cmluZygpOlwiYWJvdXQ6aW52YWxpZCN6U295elwiKStcIik7XCI6XCJcIikrKGEubWU/XCIjYWRCbG9jayBoMiwgaDIgYTpob3Zlcntmb250LXdlaWdodDpib2xkO31cIjpcIlwiKSsoYS5xZT9cIiNhZEJsb2NrIGgye3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9XCI6XCJcIikrKGEubGc/XCIuXCIrTihcImNfXCIpK1wie3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9XCI6XCJcIikrKFQ/XCIuXCIrTihcImFfXCIpK1wie2JvcmRlci13aWR0aDpcIitOKFQpK1wicHg7fVwiOlwiXCIpKyhjPT1cInNlYXJjaGJveFwiP1wiLnNiaXtcIitcbihrP1wid2lkdGg6XCIrTihrKStcInB4O1wiOlwid2lkdGg6MTAwJTtcIikrKHA/XCJmb250LXNpemU6XCIrTihwKStcInB4O1wiOlwiZm9udC1zaXplOjE2cHg7XCIpKyhkP1wiYm9yZGVyOjAgbm9uZTtcIjpcIlwiKSsoZj9cImJhY2tncm91bmQtY29sb3I6XCIrTihmKStcIjtcIjpcIlwiKSsocj9cImhlaWdodDpcIitOKHIpK1wicHg7XCI6XCJcIikrKEQ/XCJib3JkZXItcmFkaXVzOlwiK04oRCkrXCJweDtcIjpcIlwiKStcIn1cIisoaz9cIlwiOlwiLnNiaS10ZHt3aWR0aDoxMDAlO31cIikrXCIuc2Jie2N1cnNvcjpwb2ludGVyO1wiKyhxP1wiZm9udC1zaXplOlwiK04ocSkrXCJweDtcIjpcImZvbnQtc2l6ZToxNnB4O1wiKStcIm1hcmdpbi1cIisoYj9cInJpZ2h0XCI6XCJsZWZ0XCIpK1wiOjE1cHg7XCIrKGU/XCJib3JkZXI6MCBub25lO1wiOih1P1wiYm9yZGVyLWNvbG9yOlwiK04odSkrXCI7XCI6XCJcIikrKHY/XCJib3JkZXItd2lkdGg6XCIrTih2KStcInB4O1wiOlwiXCIpKyhEP1wiYm9yZGVyLXJhZGl1czpcIitOKEQpK1wicHg7XCI6XCJcIikpKyhnP1wiYmFja2dyb3VuZDpcIitOKGcpK1wiO1wiOlwiXCIpKyhoP1xuXCJjb2xvcjpcIitOKGgpK1wiO1wiKyhoPT1cInRyYW5zcGFyZW50XCI/XCJmaWx0ZXI6YWxwaGEob3BhY2l0eT0wKTtcIjpcIlwiKTpcIlwiKSsobD9cIndpZHRoOlwiK04obCkrXCJweDtcIjpcIlwiKSsodD9cImhlaWdodDpcIitOKHQpK1wicHg7XCI6XCJcIikrXCJ9XCI6XCJcIikrXCI8L3N0eWxlPlwiKX07dmFyIEJmPS0xO2Z1bmN0aW9uIENmKGEpe3JldHVybiBhP2E6JGEoKS5kYXRhLmhtfHwkYSgpLmRhdGEudD9cIiNiZGJkYmRcIjpudWxsfVxuZnVuY3Rpb24gRGYoYSxiLGMpe2Z1bmN0aW9uIGQocSl7cmV0dXJuKHE9ZShxKSk/SihxKTp2b2lkIDB9dmFyIGU9d2UoYiksZj14ZShiKSxnPWUoXCJ0eXBlXCIpfHxcImFkc1wiLGg9WGEoKSxrPSRhKCksbD1cIiMwMDAwQ0NcIjtpZihrLmRhdGEuaG18fGsuZGF0YS50KWw9XCIjMWEwZGFiXCI7bD1lKFwiY29sb3JUaXRsZUxpbmtcIixsKTtmPXtkYTpUYSgpLmRhKCksd2U6eWUoYikscGc6emUoYiksaGU6Q2YoZShcImNvbG9yQWRTZXBhcmF0b3JcIikpLFFnOjIwLE1lOmUoXCJjb2xvclRleHRcIiksTmU6bCxHZTplKFwiY29sb3JCYWNrZ3JvdW5kXCIpLEhlOmUoXCJjb2xvckJvcmRlclwiKSxGZTplKFwiY29sb3JBdHRyaWJ1dGlvblwiKSxmb250RmFtaWx5OmQoXCJmb250RmFtaWx5XCIpLFplOmQoXCJmb250RmFtaWx5QXR0cmlidXRpb25cIiksZWY6QWUoYil8fGUoXCJmb250U2l6ZVRpdGxlXCIpLGFmOmUoXCJmb250U2l6ZUF0dHJpYnV0aW9uXCIpLGpnOmUoXCJ0aXRsZUJvbGRcIiksa2c6IWsuZGF0YS5obSxTZjplKFwicm9sbG92ZXJMaW5rQm9sZFwiKSxcblRmOmUoXCJyb2xsb3ZlckxpbmtDb2xvclwiKSxSZjplKFwicm9sbG92ZXJMaW5rQmFja2dyb3VuZENvbG9yXCIpLFVmOmUoXCJyb2xsb3ZlckxpbmtVbmRlcmxpbmVcIiksUWY6ZShcInJvbGxvdmVyQWRCYWNrZ3JvdW5kQ29sb3JcIiksRWY6ZShcIm5vVGl0bGVVbmRlcmxpbmVcIiksTWc6ZihcImFkQm9yZGVyU2VsZWN0aW9uc1wiLFwibGVmdFwiKSxlZTpmKFwiYWRCb3JkZXJTZWxlY3Rpb25zXCIsXCJyaWdodFwiKSxOZzpmKFwiYWRCb3JkZXJTZWxlY3Rpb25zXCIsXCJ0b3BcIiksTGc6ZihcImFkQm9yZGVyU2VsZWN0aW9uc1wiLFwiYm90dG9tXCIpLHNlOmYoXCJib3JkZXJTZWxlY3Rpb25zXCIsXCJsZWZ0XCIpLHRlOmYoXCJib3JkZXJTZWxlY3Rpb25zXCIsXCJyaWdodFwiKSx1ZTpmKFwiYm9yZGVyU2VsZWN0aW9uc1wiLFwidG9wXCIpLHJlOmYoXCJib3JkZXJTZWxlY3Rpb25zXCIsXCJib3R0b21cIiksRGY6ZShcImxpbmVIZWlnaHRUaXRsZVwiKSxuZTplKFwiYXR0cmlidXRpb25TcGFjaW5nQmVsb3dcIikscmY6ITAsdWY6ISFrLmRhdGEuaG0semY6ISFrLmRhdGEudCxcbkNlOiEhaC5kYXRhLmN1Y2FpLEJlOiEhaC5kYXRhLmNnYWJ9O2Yucmc9ZShcIndlYkZvbnRGYW1pbHlcIik7Zi5zZz1lKFwid2ViRm9udEZhbWlseUF0dHJpYnV0aW9uXCIpO2Y9emYoZik7RWYoZixhKTtiPUJlKGIpO2c9e2RhOlRhKCkuZGEoKSx0eXBlOmcsbmY6ZShcImhpZGVTZWFyY2hJbnB1dEJvcmRlclwiKSxtZjplKFwiaGlkZVNlYXJjaEJ1dHRvbkJvcmRlclwiKSxJZTplKFwiY29sb3JTZWFyY2hCb3hcIiksSmU6ZShcImNvbG9yU2VhcmNoQnV0dG9uXCIpLExlOmUoXCJjb2xvclNlYXJjaEJ1dHRvblRleHRcIiksd2c6ZShcIndpZHRoU2VhcmNoSW5wdXRcIiksdWc6ZShcIndpZHRoU2VhcmNoQnV0dG9uXCIpLGRmOmUoXCJmb250U2l6ZVNlYXJjaElucHV0XCIpLGJmOmUoXCJmb250U2l6ZVNlYXJjaEJ1dHRvblwiKSxsZjplKFwiaGVpZ2h0U2VhcmNoSW5wdXRcIiksa2Y6ZShcImhlaWdodFNlYXJjaEJ1dHRvblwiKSxLZTplKFwiY29sb3JTZWFyY2hCdXR0b25Cb3JkZXJcIiksdmc6ZShcIndpZHRoU2VhcmNoQnV0dG9uQm9yZGVyXCIpLFxuSmY6ZShcInJhZGl1c1NlYXJjaElucHV0Qm9yZGVyXCIpLG1lOmUoXCJhdHRyaWJ1dGlvbkJvbGRcIikscWU6ZShcImF0dHJpYnV0aW9uVXBwZXJjYXNlXCIpLGxnOmUoXCJ0aXRsZVVwcGVyY2FzZVwiKSx0ZzpiLGdlOmUoXCJhZEJvcmRlcldpZHRoXCIpfTtpZihiJiZCZj09LTEpe0JmPTU7dmFyIHA9ZnVuY3Rpb24oKXtCZj4wJiYodGUoYyksQmYtLSxzZXRUaW1lb3V0KHAsMUUzKSl9O3AoKX1nPUFmKGcpO0VmKGcsYSl9ZnVuY3Rpb24gRWYoYSxiKXtiLmFwcGVuZENoaWxkKHhmKGEpKX07ZnVuY3Rpb24gRmYoKXt9O2Z1bmN0aW9uIEdmKGEsYil7YS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixmdW5jdGlvbihjKXtjLmJ1dHRvbiE9PTImJmIoYyl9KX07ZnVuY3Rpb24gSGYoYSl7dmFyIGI9d2luZG93LmxvY2F0aW9uLnByb3RvY29sPT1cImh0dHBzXCI7YT1hLmNsaWNrdHJhY2tVcmw7cmV0dXJuIFhhKCkuZGF0YS5jdCYmRmEoYSk/QWIoYSxmdW5jdGlvbihjKXtyZXR1cm4hKGMuaW5kZXhPZihcImh0dHA6XCIpPT0wJiZiKX0pOltdfVxuZnVuY3Rpb24gSWYoYSxiKXthPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJhXCIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdOyhkLmhhc0F0dHJpYnV0ZT9kLmhhc0F0dHJpYnV0ZShcImRhdGEtbm90cmFja1wiKTpkLmdldEF0dHJpYnV0ZShcImRhdGEtbm90cmFja1wiKSl8fEdmKGQsZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sZj13KGIpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWc9bmV3IGNjKGcudmFsdWUpLEEoZyxcIm5jXCIsW01hdGgucm91bmQoTWF0aC5yYW5kb20oKSo5RTYpLChuZXcgRGF0ZSkuZ2V0VGltZSgpXS5qb2luKFwiXCIpKSxlLnB1c2goZGMoZykpO2lmKHdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbilmb3IoZT13KGUpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihmLnZhbHVlKTtlbHNlIGZvcihlPXcoZSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpUWIoZi52YWx1ZSl9KX19XG5mdW5jdGlvbiBKZihhLGIsYyl7aWYoWGEoKS5kYXRhLmN0JiYoYT1IZihhKSxhLmxlbmd0aD4wKSlpZihYYSgpLmRhdGEuYWxjdCl7Yz1QZChcImJsb2NrXCIsXCJcIitjLGEpO3ZhciBkPVVkKCk/XCJjbGlja3RyYWNrZWRBZF9qc1wiOlwiYl9cIjthPUJiKHNkKFwiZGl2XCIsZCxiKSk7YT1hLmNvbmNhdChCYihzZChcInRyXCIsZCxiKSkpO2E9YS5jb25jYXQoQmIoc2QoXCJsaVwiLGQsYikpKTt2YXIgZTtmb3IoYj0wO2U9YVtiXTtiKyspZD1jLGQ9UGQoXCJhZFwiLFwiXCIrKGIrMSksZCksSWYoZSxkKX1lbHNlIElmKGIsYSl9O3ZhciBLZj1FKGZ1bmN0aW9uKGEsYil7dmFyIGM9YS5yZXN1bHRzUGFnZUJhc2VVcmwsZD1hLnJlc3VsdHNQYWdlUXVlcnlQYXJhbSxlPWJbMF0mJmJbMF0uYWR0eXBlO2I9dyhiKTtmb3IodmFyIGY9Yi5uZXh0KCk7IWYuZG9uZTtmPWIubmV4dCgpKXtmPWYudmFsdWU7ZSYmKGY9ZltlXSk7dmFyIGc9Zi5zdCxoPWYuYWZkdDtpZihnIT1udWxsJiZoIT1udWxsKXtpZighYyl0aHJvdyBxYyhcInJlc3VsdHNQYWdlQmFzZVVybCBuZWVkcyB0byBiZSBzZXQuXCIpO3ZhciBrPW5ldyBjYyhjKTtBKGssZCxnKTtBKGssXCJhZmRUb2tlblwiLGgpO2EucGVyc29uYWxpemVkQWRzIT1udWxsJiZBKGssXCJwY3NhXCIsXCJcIithLnBlcnNvbmFsaXplZEFkcyk7Zi5sPWRjKGspO2YudT1kYyhrKX19fSxcImZSU0NMXCIpO2Z1bmN0aW9uIExmKCl7dmFyIGE9e29nOiEheSgpLmRhdGEuZXNyc307YT1hfHx7fTt2YXIgYj1hLm9nO3JldHVybiBIKFwiPHN0eWxlXCIrKGEuU2c/JyBkYXRhLXBlcm1hbmVudD1cInRydWVcIic6XCJcIikrXCI+Ym9keXstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTsgZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjsgbWFyZ2luOjA7fWRpdntcIitNZigwKStcIm1heC13aWR0aDoxMDAlO31zcGFuOmxhc3QtY2hpbGQsIGRpdjpsYXN0LWNoaWxke1wiK01mKDEpK1wifS5cIitOKFwieF9cIikrXCJ7XCIrTWYoMSkrXCJ9LlwiK04oXCJqX1wiKStcIj5zcGFuOmxhc3QtY2hpbGQsIC5cIitOKFwial9cIikrXCI+ZGl2Omxhc3QtY2hpbGQsIC5cIitOKFwieV9cIikrXCIsIC5cIitOKFwieV9cIikrXCI6bGFzdC1jaGlsZHtcIitNZigwKStcIn0uXCIrTihcImxfXCIpK1wiey1tcy1vdmVyZmxvdy1zdHlsZTpub25lOyBzY3JvbGxiYXItd2lkdGg6bm9uZTt9LlwiK04oXCJsX1wiKStcIjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lO31he3RleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBjb2xvcjppbmhlcml0OyBkaXNwbGF5OmlubGluZS1ibG9jazt9c3BhbntcIitcbk1mKDApK1wiZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC10cmFuc2Zvcm06bm9uZTt9aW1ne2JvcmRlcjpub25lOyBtYXgtd2lkdGg6MTAwJTsgbWF4LWhlaWdodDoxMDAlO30uXCIrTihcImlfXCIpK1wie2Rpc3BsYXk6LW1zLWZsZXhib3g7IGRpc3BsYXk6LXdlYmtpdC1ib3g7IGRpc3BsYXk6LXdlYmtpdC1mbGV4OyBkaXNwbGF5OmZsZXg7XCIrTmYoXCJmbGV4LXN0YXJ0XCIpK1wiYm94LXNpemluZzpib3JkZXItYm94OyBvdmVyZmxvdzpoaWRkZW47fS5cIitOKFwidV9cIikrXCJ7cG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrO1wiKyhiP1wid2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7XCI6XCJcIikrXCJ9LlwiK04oXCJ3X1wiKStcIntwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgaGVpZ2h0OjEwMCU7XCIrKGI/XCJiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtcIjpcImJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOmF1dG8gMTAwJTtcIikrXG5cIn0uXCIrTihcInZfXCIpK1wie2Rpc3BsYXk6YmxvY2s7XCIrKGI/XCJoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1zaXplOjIwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtcIjpcIlwiKStcIn0uXCIrTihcInRfXCIpK1wie1wiK09mKCkrXCJ9LlwiK04oXCJxX1wiKStcIntib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0OjEwMCU7IG92ZXJmbG93OmhpZGRlbjtcIitPZigpK1wifS5cIitOKFwibl9cIikrXCJ7LW1zLWZsZXgtbmVnYXRpdmU6MTsgdGV4dC1vdmVyZmxvdzplbGxpcHNpczsgd2hpdGUtc3BhY2U6bm93cmFwO30uXCIrTihcInBfXCIpK1wiey1tcy1mbGV4LW5lZ2F0aXZlOjE7IG1heC13aWR0aDogMTAwJTt9LlwiK04oXCJtX1wiKStcIntvdmVyZmxvdzpoaWRkZW47fS5cIitOKFwib19cIikrXCJ7d2hpdGUtc3BhY2U6bm93cmFwO30uXCIrTihcInpfXCIpK1wie2N1cnNvcjpwb2ludGVyO30uXCIrTihcImFhX1wiKStcIntkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7fS5cIitcbk4oXCJrX1wiKStcIj5kaXY6bm90KC5cIitOKFwiYWFfXCIpK1wiKSB7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7IGRpc3BsYXk6LW1vei1pbmxpbmUtYm94OyBkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4OyBkaXNwbGF5OmlubGluZS1mbGV4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fS5cIitOKFwia19cIikrXCIudG9wQWxpZ24+ZGl2e3ZlcnRpY2FsLWFsaWduOnRvcDt9LlwiK04oXCJrX1wiKStcIi5jZW50ZXJBbGlnbj5kaXZ7dmVydGljYWwtYWxpZ246bWlkZGxlO30uXCIrTihcImtfXCIpK1wiLmJvdHRvbUFsaWduPmRpdnt2ZXJ0aWNhbC1hbGlnbjpib3R0b207fS5cIitOKFwia19cIikrXCI+c3BhbiwgLlwiK04oXCJrX1wiKStcIj5hLCAuXCIrTihcImtfXCIpK1wiPmltZywgLlwiK04oXCJrX1wiKStcIntkaXNwbGF5OmlubGluZTsgdmVydGljYWwtYWxpZ246bWlkZGxlO30uc2kxMDE6bnRoLW9mLXR5cGUoNW4rMSkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICMxZjhhNzAgN3B4IHNvbGlkO30ucnNzQXR0ckNvbnRhaW5lciB+IC5zaTEwMTpudGgtb2YtdHlwZSg1bisyKSA+IC5zaTE0MXtib3JkZXItbGVmdDogIzFmOGE3MCA3cHggc29saWQ7fS5zaTEwMTpudGgtb2YtdHlwZSg1biszKSA+IC5zaTE0MXtib3JkZXItbGVmdDogI2JlZGIzOSA3cHggc29saWQ7fS5yc3NBdHRyQ29udGFpbmVyIH4gLnNpMTAxOm50aC1vZi10eXBlKDVuKzQpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjYmVkYjM5IDdweCBzb2xpZDt9LnNpMTAxOm50aC1vZi10eXBlKDVuKzUpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjZmZlMTFhIDdweCBzb2xpZDt9LnJzc0F0dHJDb250YWluZXIgfiAuc2kxMDE6bnRoLW9mLXR5cGUoNW4rNikgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNmZmUxMWEgN3B4IHNvbGlkfS5zaTEwMTpudGgtb2YtdHlwZSg1bisyKSA+IC5zaTE0MXtib3JkZXItbGVmdDogI2ZkNzQwMCA3cHggc29saWQ7fS5yc3NBdHRyQ29udGFpbmVyIH4gLnNpMTAxOm50aC1vZi10eXBlKDVuKzMpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjZmQ3NDAwIDdweCBzb2xpZDt9LnNpMTAxOm50aC1vZi10eXBlKDVuKzQpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjMDA0MzU4IDdweCBzb2xpZDt9LnJzc0F0dHJDb250YWluZXIgfiAuc2kxMDE6bnRoLW9mLXR5cGUoNW4rNSkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICMwMDQzNTggN3B4IHNvbGlkO30uXCIrXG5OKFwiYmFfXCIpK1wie2N1cnNvcjpwb2ludGVyO30uc2kxMzB7ZGlzcGxheTppbmxpbmU7IHRleHQtdHJhbnNmb3JtOmluaGVyaXQ7fS5cIitOKFwicl9cIikrXCJ7cG9zaXRpb246IHJlbGF0aXZlO308L3N0eWxlPlwiKX1mdW5jdGlvbiBPZigpe3JldHVybiBKKFwiZGlzcGxheTotbXMtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWJveDsgZGlzcGxheTotd2Via2l0LWZsZXg7IGRpc3BsYXk6ZmxleDtcIitOZihcImNlbnRlclwiKStQZihcImNlbnRlclwiKSl9XG5mdW5jdGlvbiBRZihhLGIpe3ZhciBjPVwiXCIsZD1iP1wicmlnaHRcIjpcImxlZnRcIjtiPWI/XCJsZWZ0XCI6XCJyaWdodFwiO2Zvcih2YXIgZT1ZZShhKSxmPWUubGVuZ3RoLGc9MDtnPGY7ZysrKXt2YXIgaD1lW2ddO3N3aXRjaChHYShoKT9oLnRvU3RyaW5nKCk6aCl7Y2FzZSBcImZ3XCI6Yys9XCJmb250LXdlaWdodDpcIjtoPWEuZnc7c3dpdGNoKEdhKGgpP2gudG9TdHJpbmcoKTpoKXtjYXNlIDE6Yys9XCIxMDBcIjticmVhaztjYXNlIDI6Yys9XCI0MDBcIjticmVhaztjYXNlIDQ6Yys9XCI1MDBcIjticmVhaztjYXNlIDM6Yys9XCI3MDBcIjticmVhaztjYXNlIDA6Yys9XCI0MDBcIn1icmVhaztjYXNlIFwiYmFjXCI6Yys9XCJiYWNrZ3JvdW5kLWNvbG9yOlwiK04oYS5iYWMpO2JyZWFrO2Nhc2UgXCJiaW1cIjpjKz0nYmFja2dyb3VuZC1pbWFnZTp1cmwoXCInK3BmKGEuYmltKSsnXCIpJzticmVhaztjYXNlIFwiYnJcIjpjKz1cImJvcmRlci1yYWRpdXM6XCIrTihhLmJyKStcInB4XCI7YnJlYWs7Y2FzZSBcImJ3XCI6Yys9XCJib3JkZXI6XCIrTihhLmJ3KStcblwicHggc29saWQgXCIrTihhLmJvYyk7YnJlYWs7Y2FzZSBcImZmXCI6Yys9XCJmb250LWZhbWlseTpcIitOKGEuZmYpK1wiLGFyaWFsLHNhbnMtc2VyaWY7XCI7YnJlYWs7Y2FzZSBcImZzXCI6Yys9XCJmb250LXNpemU6XCIrTihhLmZzKStcInB4XCI7YnJlYWs7Y2FzZSBcImhcIjpjKz1cImhlaWdodDpcIitOKGEuaCkrKGEuaC5pbmNsdWRlcyhcIiVcIik/XCJcIjpcInB4XCIpO2JyZWFrO2Nhc2UgXCJpXCI6Yys9XCJmb250LXN0eWxlOlwiK04oTChhLmksITApP1wiaXRhbGljXCI6XCJub3JtYWxcIik7YnJlYWs7Y2FzZSBcImxoXCI6Yys9XCJsaW5lLWhlaWdodDpcIitOKGEubGgpK1wicHhcIjticmVhaztjYXNlIFwibWF4aFwiOmMrPVwibWF4LWhlaWdodDpcIitOKGEubWF4aCkrXCJweFwiO2JyZWFrO2Nhc2UgXCJtYXh3XCI6Yys9XCJtYXgtd2lkdGg6XCIrTihhLm1heHcpK1wicHhcIjticmVhaztjYXNlIFwibWJcIjpjKz1cIm1hcmdpbi1ib3R0b206XCIrTihhLm1iKStcInB4XCI7YnJlYWs7Y2FzZSBcIm1pbmhcIjpjKz1cIm1pbi1oZWlnaHQ6XCIrTihhLm1pbmgpK1wicHhcIjticmVhaztcbmNhc2UgXCJtaW53XCI6Yys9XCJtaW4td2lkdGg6XCIrTihhLm1pbncpK1wicHhcIjticmVhaztjYXNlIFwibWxcIjpjKz1cIm1hcmdpbi1cIitOKGQpK1wiOlwiK04oYS5tbCkrXCJweFwiO2JyZWFrO2Nhc2UgXCJtclwiOmMrPVwibWFyZ2luLVwiK04oYikrXCI6XCIrTihhLm1yKStcInB4XCI7YnJlYWs7Y2FzZSBcIm10XCI6Yys9XCJtYXJnaW4tdG9wOlwiK04oYS5tdCkrXCJweFwiO2JyZWFrO2Nhc2UgXCJvcFwiOmMrPVwib3BhY2l0eTpcIitOKGEub3ApO2JyZWFrO2Nhc2UgXCJwYlwiOmMrPVwicGFkZGluZy1ib3R0b206XCIrTihhLnBiKStcInB4XCI7YnJlYWs7Y2FzZSBcInBsXCI6Yys9XCJwYWRkaW5nLVwiK04oZCkrXCI6IFwiK04oYS5wbCkrXCJweFwiO2JyZWFrO2Nhc2UgXCJwclwiOmMrPVwicGFkZGluZy1cIitOKGIpK1wiOiBcIitOKGEucHIpK1wicHhcIjticmVhaztjYXNlIFwicHRcIjpjKz1cInBhZGRpbmctdG9wOlwiK04oYS5wdCkrXCJweFwiO2JyZWFrO2Nhc2UgXCJ0Y1wiOmMrPVwiY29sb3I6XCIrTihhLnRjKTticmVhaztjYXNlIFwidVwiOmMrPVwidGV4dC1kZWNvcmF0aW9uOlwiK1xuTihaZShhLnUpP1widW5kZXJsaW5lXCI6XCJub25lXCIpO2JyZWFrO2Nhc2UgXCJzdFwiOmMrPVwidGV4dC1kZWNvcmF0aW9uOlwiK04oWmUoYS5zdCk/XCJsaW5lLXRocm91Z2hcIjpcIm5vbmVcIik7YnJlYWs7Y2FzZSBcInBvXCI6aD1hLnBvO3ZhciBrPWQsbD1iO2g9SigoaC50P04oKStcInRvcDpcIitOKGgudCkrXCJweDtcIjpcIlwiKSsoaC5yP04oKStOKGwpK1wiOlwiK04oaC5yKStcInB4O1wiOlwiXCIpKyhoLmI/TigpK1wiYm90dG9tOlwiK04oaC5iKStcInB4O1wiOlwiXCIpKyhoLmw/TigpK04oaykrXCI6XCIrTihoLmwpK1wicHg7XCI6XCJcIikpO2MrPWgrXCJwb3NpdGlvbjphYnNvbHV0ZVwiO2JyZWFrO2Nhc2UgXCJib3NcIjpoPWEuYm9zO2s9XCJcIjtsPWg7Zm9yKHZhciBwPWwubGVuZ3RoLHE9MDtxPHA7cSsrKXt2YXIgcj1sW3FdO2srPU4oci54bykrXCJweCBcIitOKHIueW8pK1wicHggXCIrKHIuYnI/TihyLmJyKStcInB4IFwiKyhyLnNyP04oci5zcikrXCJweCBcIjpcIlwiKTpcIlwiKStOKHIuc2MpKyhxIT1oLmxlbmd0aC0xP1wiLFwiOlwiXCIpfWg9SihrKTtoPVxuSihcIlwiK2gpO2g9SihcIi13ZWJraXQtYm94LXNoYWRvdzpcIitOKGgpK1wiOyAtbW96LWJveC1zaGFkb3c6XCIrTihoKStcIjsgLW1zLWJveC1zaGFkb3c6XCIrTihoKStcIjsgYm94LXNoYWRvdzpcIitOKGgpK1wiO1wiKTtjKz1oO2JyZWFrO2Nhc2UgXCJ3XCI6Yys9XCJ3aWR0aDpcIitOKGEudykrKChcIlwiK2EudykuaW5jbHVkZXMoXCIlXCIpP1wiOyAtbXMtZmxleC1uZWdhdGl2ZToxO1wiK01mKDEpOlwicHhcIik7YnJlYWs7Y2FzZSBcInR0XCI6c3dpdGNoKGMrPVwidGV4dC10cmFuc2Zvcm06XCIsaD1hLnR0LEdhKGgpP2gudG9TdHJpbmcoKTpoKXtjYXNlIDE6Yys9XCJ1cHBlcmNhc2VcIjticmVhaztkZWZhdWx0OmMrPVwiaW5pdGlhbFwifX1jKz1cIjtcIn1yZXR1cm4gSihjKX1mdW5jdGlvbiBNZihhKXtyZXR1cm4gSihcIi13ZWJraXQtYm94LWZsZXg6XCIrTihhKStcIiAwOyAtd2Via2l0LWZsZXgtc2hyaW5rOlwiK04oYSkrXCI7IGZsZXgtc2hyaW5rOlwiK04oYSkrXCI7XCIpfVxuZnVuY3Rpb24gTmYoYSl7dmFyIGI9XCItbXMtZmxleC1hbGlnbjpcIixjPVwiXCIrKGEuaW5kZXhPZihcImZsZXgtXCIpPT0wP04oYS5zdWJzdHJpbmcoNSkpOk4oYSkpO2M9SihjKTtiKz1OKGMpK1wiOyAtd2Via2l0LWJveC1hbGlnbjpcIitOKGMpK1wiOyAtd2Via2l0LWFsaWduLWl0ZW1zOlwiK04oYSkrXCI7IGFsaWduLWl0ZW1zOlwiK04oYSkrXCI7XCI7cmV0dXJuIEooYil9ZnVuY3Rpb24gUGYoYSl7dmFyIGI9XCItbXMtZmxleC1wYWNrOlwiLGM9XCJcIisoYS5pbmRleE9mKFwiZmxleC1cIik9PTA/TihhLnN1YnN0cmluZyg1KSk6TihhKSk7Yz1KKGMpO2IrPU4oYykrXCI7IC13ZWJraXQtYm94LXBhY2s6XCIrTihjKStcIjsgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6XCIrTihhKStcIjsganVzdGlmeS1jb250ZW50OlwiK04oYSkrXCI7XCI7cmV0dXJuIEooYil9O2Z1bmN0aW9uIFJmKGEpe3ZhciBiPVtdO2E9dyhhLnN8fFtdKTtmb3IodmFyIGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKXtjPWMudmFsdWU7dmFyIGQ9Yy5yO2QmJmQuaGFzT3duUHJvcGVydHkoXCJmZlwiKSYmKGQuZmY9SihkLmZmKSk7KGQ9Yy5ocikmJmQuaGFzT3duUHJvcGVydHkoXCJmZlwiKSYmKGQuZmY9SihkLmZmKSk7Yi5wdXNoKHtjbGFzc05hbWU6Yy5zayxydWxlczpjLnJ8fHt9LHdiOmMuaHJ8fHt9fSl9YT1UYSgpLmRhKCk7dmFyIGU9XCI8c3R5bGU+XCI7Yz1iLmxlbmd0aDtmb3IoZD0wO2Q8YztkKyspe3ZhciBmPWJbZF07aWYoZi5ydWxlcyYmWWUoZi5ydWxlcykubGVuZ3RoPjApe3ZhciBnPVwiLlwiK04oZi5jbGFzc05hbWUpK1wie1wiK1FmKGYucnVsZXMsYSkrXCJ9XCI7dmFyIGg9Zi5jbGFzc05hbWU7dmFyIGs9Zi5ydWxlcztoPUooWmUoay5pc3MpJiZaZShrLmlzcy5iYykmJlplKGsuaXNzLm8pP1wiLlwiK04oaCkrXCIgPiAuXCIrTihcInNfXCIpK1wie2JhY2tncm91bmQtY29sb3I6XCIrXG5OKGsuaXNzLmJjKStcIjsgb3BhY2l0eTpcIitOKGsuaXNzLm8pK1wiOyBib3R0b206MDsgdG9wOjA7IHJpZ2h0OjA7IGxlZnQ6MDsgcG9zaXRpb246YWJzb2x1dGU7fVwiOlwiXCIpO2crPWh9ZWxzZSBnPVwiXCI7ZSs9ZysoZi53YiYmWWUoZi53YikubGVuZ3RoPjA/XCIuXCIrTihmLmNsYXNzTmFtZSkrXCI6aG92ZXJ7XCIrUWYoZi53YixhKStcIn1cIjpcIlwiKX1yZXR1cm4gSChlK1wiPC9zdHlsZT5cIil9O2Z1bmN0aW9uIFNmKGEsYil7aWYoIWEpcmV0dXJuITE7aWYoYS5ub2RlVHlwZT09MyYmYS5ub2RlVmFsdWUmJihiJiYoYS5ub2RlVmFsdWUrPVwiIC4uLlwiKSxhLm5vZGVWYWx1ZS5sZW5ndGg+NCkpe2I9YS5ub2RlVmFsdWU7dmFyIGM9YS5ub2RlVmFsdWUubGVuZ3RoLTE7Yi5sZW5ndGg+YyYmKGI9Yi5zdWJzdHJpbmcoMCxjLTMpK1wiLi4uXCIpO2Eubm9kZVZhbHVlPWI7cmV0dXJuITF9Yz1hLnRleHRDb250ZW50fHxhLmlubmVyVGV4dDtpZighY3x8Yy5sZW5ndGg8PShiPzA6NCkpcmV0dXJuIGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKSwhMDtmb3IoYj1TZihhLmxhc3RDaGlsZCxiKTtiOyliPVNmKGEubGFzdENoaWxkLGIpO3JldHVybiExfVxuZnVuY3Rpb24gVGYoYSxiKXtpZighKGI8PTApKXtmb3IodmFyIGM9YS5pbm5lckhUTUwubGVuZ3RoO2M+MCYmYS5vZmZzZXRIZWlnaHQ+YjtjLS0pZm9yKHZhciBkPWEsZT1TZihkLmxhc3RDaGlsZCwhMSk7ZTspZT1TZihkLmxhc3RDaGlsZCxlKTthLm9mZnNldEhlaWdodD5iJiYoYS50ZXh0Q29udGVudD1cIlwiKX19O3ZhciBVZj0xO2Z1bmN0aW9uIFZmKGEsYixjKXtpZighYylyZXR1cm4gbnVsbDtpZihjWzBdPT1cIi5cIilyZXR1cm4gYltjLnN1YnN0cmluZygxKV07Yz13KGMuc3BsaXQoXCIuXCIpKTtmb3IoYj1jLm5leHQoKTshYi5kb25lO2I9Yy5uZXh0KCkpe2I9Yi52YWx1ZTtpZihhPT1udWxsKXJldHVybiBudWxsO2lmKEFycmF5LmlzQXJyYXkoYSkpe2I9cGFyc2VJbnQoYiwxMCk7aWYoaXNOYU4oYikpcmV0dXJuIG51bGw7YT1hW2JdfWVsc2UgaWYoR2EoYSkmJmEuaGFzT3duUHJvcGVydHkoYikpYT1hW2JdO2Vsc2UgcmV0dXJuIG51bGx9cmV0dXJuIGF9O3ZhciBXZj1udWxsO2Z1bmN0aW9uIFhmKGEsYixjKXt2YXIgZD1jLnRhZ05hbWU9PT1cIkFcIj9jOmMucXVlcnlTZWxlY3RvcihcImFcIik7Yi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixmdW5jdGlvbihlKXtZZihhLGIsYyk7WmYoZSl9KTtiLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsZnVuY3Rpb24oZSl7aWYoZS5rZXlDb2RlPT0zMnx8ZS5rZXlDb2RlPT0xMylZZihhLGIsYyksWmYoZSksZCYmZC5mb2N1cygpfSk7YS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwkZik7YS5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsJGYpO2Iuc2V0QXR0cmlidXRlKFwicm9sZVwiLFwiYnV0dG9uXCIpO2Iuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiwwKTtkJiZiLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixjLnRleHRDb250ZW50KX1mdW5jdGlvbiBaZihhKXthLnN0b3BQcm9wYWdhdGlvbj9hLnN0b3BQcm9wYWdhdGlvbigpOihhLmNhbmNlbEJ1YmJsZT0hMCxhLnJldHVyblZhbHVlPSExKX1cbmZ1bmN0aW9uIFlmKGEsYixjKXtXZiYmV2YhPWMmJihXZi5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLFdmPW51bGwpO2lmKGMuc3R5bGUuZGlzcGxheSYmYy5zdHlsZS5kaXNwbGF5IT1cIm5vbmVcIiljLnN0eWxlLmRpc3BsYXk9XCJub25lXCIsV2Y9bnVsbDtlbHNle2EuYXBwZW5kQ2hpbGQoYyk7dmFyIGQ9QmQoYiksZT1DZChiKSxmPUNkKGMpLGc9Q2QoYSksaD1CZChhKSxrPWQueCthLnNjcm9sbExlZnQtaC54O2Q9ZC55K2Euc2Nyb2xsVG9wLWgueTtzd2l0Y2goYi5nZXRBdHRyaWJ1dGUoXCJkYXRhLXBvc2l0aW9uXCIpKXtjYXNlIFwib3ZlclwiOmI9ZS53aWR0aC8yLWYud2lkdGgvMjtlPWUuaGVpZ2h0LzItZi5oZWlnaHQvMjticmVhaztkZWZhdWx0OmI9ZS53aWR0aC8yLWYud2lkdGgvMixlPWUuaGVpZ2h0fWg9YS5zY3JvbGxUb3A7dmFyIGw9YS5zY3JvbGxUb3ArZy5oZWlnaHQtZi5oZWlnaHQtMTA7Yy5zdHlsZS5sZWZ0PU1hdGgubWluKE1hdGgubWF4KE1hdGgucm91bmQoaytiKSxhLnNjcm9sbExlZnQpLFxuYS5zY3JvbGxMZWZ0K2cud2lkdGgtZi53aWR0aC0xMCkrXCJweFwiO2Muc3R5bGUudG9wPU1hdGgubWluKE1hdGgubWF4KE1hdGgucm91bmQoZCtlKSxoKSxsKStcInB4XCI7Yy5zdHlsZS5kaXNwbGF5PVwiYmxvY2tcIjtXZj1jfX1mdW5jdGlvbiAkZigpe1dmJiYoV2Yuc3R5bGUuZGlzcGxheT1cIm5vbmVcIixXZj1udWxsKX07ZnVuY3Rpb24gYWcoYSl7dmFyIGI9YS5vcmllbnRhdGlvbixjPWEuaWQsZD1hLlUsZT1hLmplLGY9YS5vdmVyZmxvdyxnPWEuT2UsaD1hLkFlLGs9YS55ZixsPWEuaHJlZixwPVwiXCIscT1MKGUsMCl8fEwoZSwxKXx8TChlLDIpLHI9TChlLDYpfHxMKGUsNyl8fEwoZSw4KSx0PUwoZSwzKXx8TChlLDQpfHxMKGUsNSk7Yz0oYz8naWQ9XCInK00oYykrJ1wiJzpcIlwiKSsnIGNsYXNzPVwiJytNKFwiaV9cIikrKGQ/XCIgXCIrTShkKTpcIlwiKSsoTChmLDMpP1wiIFwiK00oXCJqX1wiKTpcIlwiKTtMKGcsNCkmJihjKz1cIiBcIitNKFwia19cIikrXCIgXCIsYys9TShxP1widG9wQWxpZ25cIjpyP1wiY2VudGVyQWxpZ25cIjp0P1wiYm90dG9tQWxpZ25cIjpcIlwiKSk7Yys9KEwoZiw0KT9cIiBcIitNKFwial9cIikrXCIgXCIrTShcImxfXCIpOlwiXCIpKydcIicrKGg/JyBkYXRhLWRyb3A9XCJ0cnVlXCInOlwiXCIpO2c9XCItbXMtZmxleC1kaXJlY3Rpb246XCI7aD1cIlwiK04oYj09MD9cInJvd1wiOlwiY29sdW1uXCIpO2g9SihoKTtnKz1OKGgpK1wiOyAtd2Via2l0LWJveC1vcmllbnQ6XCIrXG5OKGI9PTA/XCJob3Jpem9udGFsXCI6XCJ2ZXJ0aWNhbFwiKStcIjsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpcIitOKGgpK1wiOyBmbGV4LWRpcmVjdGlvbjpcIitOKGgpK1wiO1wiO2c9SihnKTtoPWUhPW51bGw/UGYoTChlLDApfHxMKGUsMyl8fEwoZSw5KXx8TChlLDYpP1wiZmxleC1zdGFydFwiOkwoZSwxKXx8TChlLDQpfHxMKGUsMTApfHxMKGUsNyk/XCJjZW50ZXJcIjpMKGUsMil8fEwoZSw1KXx8TChlLDExKXx8TChlLDgpP1wiZmxleC1lbmRcIjpcIlwiKTpcIlwiO2g9SihcIlwiK2gpO2U9ZSE9bnVsbD9OZihxP1wiZmxleC1zdGFydFwiOnQ/XCJmbGV4LWVuZFwiOnI/XCJjZW50ZXJcIjpMKGUsOSl8fEwoZSwxMCl8fEwoZSwxMSk/XCJzdHJldGNoXCI6XCJcIik6XCJcIjtlPUooXCJcIitlKTtxPVwiXCI7c3dpdGNoKGYpe2Nhc2UgMjpxKz1cIi1tcy1mbGV4LXdyYXA6d3JhcDsgLXdlYmtpdC1mbGV4LXdyYXA6d3JhcDsgZmxleC13cmFwOndyYXA7XCI7YnJlYWs7Y2FzZSAzOmNhc2UgNDpxKz1cIm92ZXJmbG93LVwiK04oYj09MD9cInhcIjpcInlcIikrXG5cIjphdXRvOyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1wifWI9SihxKTtjKz0nIHN0eWxlPVwiJytNKE4oZykpK00oTihoKSkrTShOKGUpKStNKE4oYikpKyhrP1wicG9zaXRpb246cmVsYXRpdmU7XCI6XCJcIikrJ1wiJztrPVhlKGMpO3ArPVplKGwpP1wiPGFcIitqZihiZyhhKSkramYoZ2YoaykpK1wiPjwvYT5cIjpcIjxkaXZcIitqZihnZihrKSkrXCI+PC9kaXY+XCI7cmV0dXJuIEgocCl9XG5mdW5jdGlvbiBjZyhhKXthPWF8fHt9O3ZhciBiPWEuaWQsYz1hLnRleHQsZD1hLlUsZT1hLkdmLGY9YS5tZyxnPWEuaHJlZixoPWEuTWQsaz1cIlwiLGw9ZSE9bnVsbD8nZGF0YS1saW5lcz1cIicrTShlKSsnXCInKyhmIT1udWxsPycgZGF0YS10cnVuY2F0ZT1cIicrTShmKSsnXCInOicgZGF0YS10cnVuY2F0ZT1cIjBcIicpOlwiXCI7bD1YZShsKTtmPUwoZSwxKT9cIm1fIFwiKyhMKGYsMCk/XCJuX1wiOlwib19cIik6XCJwX1wiO2M9KGUmJmU+MT9cIjxzcGFuXCIramYoZ2YobCkpKycgc3R5bGU9XCJkaXNwbGF5OiAtd2Via2l0LWJveDsgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsgb3ZlcmZsb3c6IGhpZGRlbjsgLXdlYmtpdC1saW5lLWNsYW1wOiAnK00oTihlKSkrJzsgXCI+JzpcIlwiKStRZShjIT1udWxsP2M6XCJcIikrKGUmJmU+MT9cIjwvc3Bhbj5cIjpcIlwiKTtjPUgoYyk7ays9WmUoZyk/XCI8YVwiKyhiPycgaWQ9XCInK00oYikrJ1wiJzpcIlwiKSsnIGNsYXNzPVwiJytNKGYpK1wiIFwiK00oZCE9bnVsbD9kOlwiXCIpKydcIicrKGUmJlxuZT4xP1wiXCI6amYoZ2YobCkpKSsoaD8nIGRhdGEtcGluZ2JhY2stdHlwZT1cIicrTShoKSsnXCInOlwiXCIpK2pmKGJnKGEpKStcIj5cIitjK1wiPC9hPlwiOlwiPHNwYW5cIisoYj8nIGlkPVwiJytNKGIpKydcIic6XCJcIikrKGUmJmU+MT9cIlwiOmpmKGdmKGwpKSkrKGg/JyBkYXRhLXBpbmdiYWNrLXR5cGU9XCInK00oaCkrJ1wiJzpcIlwiKSsnIGNsYXNzPVwiJytNKGYpK1wiIFwiK00oZCE9bnVsbD9kOlwiXCIpKydcIj4nK2MrXCI8L3NwYW4+XCI7cmV0dXJuIEgoayl9XG5mdW5jdGlvbiBkZyhhKXt2YXIgYj1hLnNyYyxjPWEuaWQsZD1hLnFmLGU9YS5hcmlhSGlkZGVuLGY9YS5VLGc9YS5ocmVmLGg9YS5NZCxrPWEuVWUsbD1cIlwiO2M9KGM/J2lkPVwiJytNKGMpKydcIic6XCJcIikrKGU/JyBhcmlhLWhpZGRlbj1cInRydWVcIiB0YWJpbmRleD1cIi0xXCInOlwiXCIpKycgY2xhc3M9XCInK00oXCJxX1wiKSsoZj9cIiBcIitNKGYpOlwiXCIpKyhrP1wiIFwiK00oXCJyX1wiKTpcIlwiKSsnXCInO2M9WGUoYyk7Yj0nPGltZyBzcmM9XCInK00ocGYoYikpKydcIicrKGg/JyBkYXRhLXBpbmdiYWNrLXR5cGU9XCInK00oaCkrJ1wiJzpcIlwiKSsoZD8nIGFyaWEtbGFiZWw9XCInK00oZCkrJ1wiJzpcIlwiKStcIj5cIjtiPUgoYik7ZD0nPGRpdiBjbGFzcz1cIicrTShcInNfXCIpKydcIj48L2Rpdj4nO2Q9SChkKTtsKz1aZShnKT9cIjxhXCIramYoYmcoYSkpK2pmKGdmKGMpKStcIj5cIisoaz9kOlwiXCIpK2IrXCI8L2E+XCI6XCI8ZGl2XCIramYoZ2YoYykpK1wiPlwiKyhrP2Q6XCJcIikrYitcIjwvZGl2PlwiO3JldHVybiBIKGwpfVxuZnVuY3Rpb24gZWcoYSl7dmFyIGI9YS5LZixjPWEuTGYsZD1hLmlkLGU9YS5jZyxmPWEuZGcsZz1hLlRnLGg9YS5VZyxrPWEuVmcsbD1hLlUscD1hLmhyZWYscT1hLmphLHI9YS5ZYyx0PWEubmMsdT1hLndpZHRoLHY9YS5oZWlnaHQsRD1rIT1udWxsP2s6XCJcIjtrPU1hdGgubWF4KE1hdGgubWluKGIsNSksMCk7YT0hKCFhLlZlfHxaZShlKXx8WmUoZikpO2Q9XCI8ZGl2XCIrKGQ/JyBpZD1cIicrTShkKSsnXCInOlwiXCIpKycgY2xhc3M9XCInK00oXCJ0X1wiKSsobD9cIiBcIitNKGwpOlwiXCIpKydcIicrKGE/JyBzdHlsZT1cIndpZHRoOicrTShOKHUhPW51bGw/dTpcIlwiKSkrXCI7aGVpZ2h0OlwiK00oTih2IT1udWxsP3Y6XCJcIikpKyc7XCInOlwiXCIpKyc+PGRpdiBjbGFzcz1cIicrTShcInVfXCIpKydcIj4nO2U9XCJcIitrZigoZz9cIlwiOkQpKyhlIT1udWxsP2U6XCIvaW1hZ2VzL2Fmcy9zci1zdGFyLW9mZi5wbmdcIikpO2U9VmUoZSk7Zz1XZShcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIxIDE5Jz48cG9seWdvbiBmaWxsPSclMjNkYWRjZTAnIHBvaW50cz0nMTAsMTUuMjcgMTYuMTgsMTkgMTQuNTQsMTEuOTcgMjAsNy4yNCAxMi44MSw2LjYzIDEwLDAgNy4xOSw2LjYzIDAsNy4yNCA1LjQ2LDExLjk3IDMuODIsMTknLz48L3N2Zz5cIik7XG5kKz1hPyc8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCcrTShwZihnKSkrJylcIiBjbGFzcz1cIicrTShcInZfXCIpKydcIiByb2xlPVwibm9uZVwiPjwvZGl2Pic6JzxpbWcgc3JjPVwiJytNKHBmKGUpKSsnXCIgY2xhc3M9XCInK00oXCJ2X1wiKSsnXCIgcm9sZT1cIm5vbmVcIi8+JztmPVwiXCIra2YoKGg/XCJcIjpEKSsoZiE9bnVsbD9mOlwiL2ltYWdlcy9hZnMvc3Itc3Rhci1vbi5wbmdcIikpO2Y9VmUoZik7aD1XZShcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIxIDE5Jz48cG9seWdvbiBmaWxsPSclMjNmYmJjMDQnIHBvaW50cz0nMTAsMTUuMjcgMTYuMTgsMTkgMTQuNTQsMTEuOTcgMjAsNy4yNCAxMi44MSw2LjYzIDEwLDAgNy4xOSw2LjYzIDAsNy4yNCA1LjQ2LDExLjk3IDMuODIsMTknLz48L3N2Zz5cIik7ZCs9JzxkaXYgY2xhc3M9XCInK00oXCJ3X1wiKSsnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJytcbk0ocGYoYT9oOmYpKStcIik7XCI7YT8oYj0yMC8xMDUqayoxMDArMS8xMDUqTWF0aC5tYXgoTWF0aC5mbG9vcihrKSwwKSoxMDAsZD1kK1wiYmFja2dyb3VuZC1zaXplOiBcIisoTShOKDJFMy9iKSkrXCIlIDEwMCU7IHdpZHRoOiBcIitNKE4oYikpK1wiJVwiKSk6ZCs9XCJ3aWR0aDogXCIrTShOKE1hdGgubWF4KE1hdGgubWluKGIsNSksMCkqMjApKStcIiVcIjtkKz0nXCIgcm9sZT1cImltZ1wiJysoYz8nIGFyaWEtbGFiZWw9XCInK00oYykrJ1wiJzonIGFyaWEtaGlkZGVuPVwidHJ1ZVwiJykrXCI+PC9kaXY+PC9kaXY+PC9kaXY+XCI7Yz1jPXtocmVmOnAsamE6cSxZYzpyLG5jOnQsUGU6SChkKX07cD1jLlBlO2M9SChaZShjLmhyZWYpP1wiPGFcIitqZihiZyhjKSkrXCI+XCIrUWUocCkrXCI8L2E+XCI6UWUocCkpO3JldHVybiBIKFwiXCIrYyl9XG5mdW5jdGlvbiBiZyhhKXthPWF8fHt9O3ZhciBiPWEuamEsYz1hLlljLGQ9YS5uYyxlPWEuUWU7YT0naHJlZj1cIicrTShrZihhLmhyZWYpKSsnXCInKyhkPycgZGF0YS1ub3RyYWNrPVwidHJ1ZVwiJzpcIlwiKSsoYyE9bnVsbD8nIGRhdGEtbmI9XCInK00oYykrJ1wiJzpcIlwiKSsoYj8nIHRhcmdldD1cIicrTShiKSsnXCInOlwiXCIpO2UhPW51bGw/KGU9WGUoTChlPT1udWxsP3ZvaWQgMDplLmFzLFwidHJ1ZVwiKT8nYXR0cmlidXRpb25zcmM9XCJcIic6J2F0dHJpYnV0aW9uc3JjPVwiJytNKGU9PW51bGw/dm9pZCAwOmUuYXMpKydcIicpLGU9amYoZSkpOmU9XCJcIjtyZXR1cm4gWGUoYStlKX07dmFyIGZnPXdpbmRvdy5uYXZpZ2F0b3I/d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ6XCJcIjtmdW5jdGlvbiBnZygpe3ZhciBhPWhnKGlnKTtyZXR1cm4gYSE9PS0xP2E+Njc6ITB9dmFyIGlnPS9GaXJlZm94XFwvKFxcZCspXFwuLyxqZz0vVmVyc2lvblxcLyhcXGQrKVxcLi4qU2FmYXJpLyxrZz0vQ2hyb21lXFwvKFxcZCspXFwuLyxsZz0vKD86aVBob25lfGlQb2R8aVBhZCkuKkFwcGxlV2ViS2l0XFwvKFxcZCspKD8hLipWZXJzaW9uKS87ZnVuY3Rpb24gaGcoYSl7YT0oYT1hLmV4ZWMoZmcpKT9hWzFdOlwiXCI7cmV0dXJuIGEubGVuZ3RoPjAmJihhPXBhcnNlSW50KGEsMTApKT9hOi0xfTtmdW5jdGlvbiBtZygpe3RoaXMuUmU9cGQoKTt0aGlzLk9iPW51bGx9bWcucHJvdG90eXBlLlJjPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5PYj90aGlzLk9iLmdldERhdGEoKTp7fSxkPXRoaXMuUmU7cmV0dXJuIHhmKGEoYnx8eWYsYyksZCl9O21nLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oYSxiKXthPWEoYnx8e30sdGhpcy5PYj90aGlzLk9iLmdldERhdGEoKTp7fSk7cmV0dXJuIFN0cmluZyhhKX07ZnVuY3Rpb24gbmcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e307YT13KGEpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpYz1jLnZhbHVlLGJbYy5za109e3J1bGVzOmMucix3YjpjLmhyfTtyZXR1cm4gYn12YXIgb2c9bmV3IG1nLHBnPXt9LHFnPShwZ1syXT1cInhfXCIscGdbM109XCJ5X1wiLHBnKTtcbmZ1bmN0aW9uIHJnKGEsYixjLGQsZSxmKXtmdW5jdGlvbiBnKHUsdixEKXt2YXIgST11LmRiaz09XCJhZEJsb2NrXCIsVD1kP1wiX2JsYW5rXCI6XCJfdG9wXCI7dj17aWQ6ST9cImFkQmxvY2tcIjp2LFU6KHUuc2t8fFwiXCIpK1wiIFwiKyhEPT09dm9pZCAwP1wiXCI6RCksamE6VH07dS5wYiYmKHYuTWQ9dS5wYi5wYnQpO0Q9dS5kYms9PT1cImN0Y1wiO3ZhciBiYT11LmRiaz09PVwiY3RjLmJ0XCI7aWYocHx8RHx8YmEpKHkoKS5kYXRhLmN0Y2x0fHxcIlwiKT09PVwiXCI/KHYuamE9XCJfc2VsZlwiLCEvaShQaG9uZXxQYWQpOy9pLnRlc3QoZmcpfHwvQ2hyb21lfENyaU9TL2kudGVzdChmZykmJmhnKGtnKT45OHx8KHYuamE9VCkpOnYuamE9eSgpLmRhdGEuY3RjbHR8fFwiXCI7cSYmKHYuamE9XCJfdG9wXCIpO0Q9dS5kYms/VmYoYyxiLHUuZGJrKTp2b2lkIDA7YmE9dS5hY2MmJnUuYWNjLmFsdD9WZihjLGIsdS5hY2MuYWx0KTp2b2lkIDA7dmFyIEhhPXUuYWNjJiZ1LmFjYy5haCxnYj1WZihjLGIsXCJiY2FsYVwiKTtpZih1LmRiayYmXG4hRCYmIUl8fHUuaG5rJiZWZihjLGIsdS5obmspIT1udWxsKXJldHVybiBudWxsO1Q9bnVsbDt2YXIgVmE9MDtpZih1LmFjKXt2YXIgWT11LmFjWzBdLFo9WS5hY3QsZGQ9WS5kYms/VmYoYyxiLFkuZGJrKTp2b2lkIDAsJGI9WS5lbixhYz12b2lkIDAsZWQ9dm9pZCAwO3N3aXRjaChaKXtjYXNlIDA6di5ocmVmPWRkO3YubmM9ISFZLm5tO3YuWWM9WS5uYjt2LlFlPWdiO2JyZWFrO2Nhc2UgMzp2LlUrPVwiIHpfXCI7ZWQ9XCJhYV9cIjthYz1cImVcIitVZisrO3YuaWR8fCh2LmlkPVwiZVwiK1VmKyspO2wucHVzaCh7cGY6di5pZCx4ZTphY30pO2JyZWFrO2Nhc2UgNTppZihWYT1wYXJzZUludChkZCwxMCkpdi5VKz1cIiBiYV9cIn0kYiYmKFQ9ZygkYixhYyxlZCkpfVo9bnVsbDtnYj11Lm50O1k9dS5scnx8e307Wj0oaFt1LnNrXXx8e30pLnJ1bGVzfHx7fTtzd2l0Y2goZ2Ipe2Nhc2UgMDpEPVkubztEPT1udWxsJiYoRD0wKTt2Lm9yaWVudGF0aW9uPUQ7di5qZT1ZLmE7di5BZT1ZLnQ9PTE7di5vdmVyZmxvdz1cblkub3Y7di5PZT1ZLmNmO3YueWY9WS5hcCYmIVoucG87Wj1hZzticmVhaztjYXNlIDE6di50ZXh0PUgoRCk7di5HZj1ZLm5sO3YubWc9WS50O1o9Y2c7YnJlYWs7Y2FzZSAyOnYuc3JjPVouc2ZjJiZELnN1YnN0cigtMyk9PVwic3ZnXCI/RCtcIj9jPVwiK2VuY29kZVVSSUNvbXBvbmVudChaLnNmYyk6RDt2LlVlPVwiaXNzXCJpbiBaJiZcImJjXCJpbiBaLmlzcyYmXCJvXCJpbiBaLmlzczt2LnFmPWJhO3YuYXJpYUhpZGRlbj1IYTtaPWRnO2JyZWFrO2Nhc2UgNDp0eXBlb2YgRD09XCJzdHJpbmdcIiYmKEQ9cGFyc2VGbG9hdChEKSk7aWYodHlwZW9mIEQhPVwibnVtYmVyXCJ8fGlzTmFOKEQpKXJldHVybiBudWxsO3YuY2c9Wi5idTt2LmRnPVouZnU7di5LZj1EO3YuTGY9YmE7di5WZT0hIXkoKS5kYXRhLmVzcnM7VGEoKS5kYXRhLmluc3ImJms9PTI/KHYud2lkdGg9XCIxNzdweFwiLHYuaGVpZ2h0PVwiMzJweFwiKToodi53aWR0aD1cIjYxcHhcIix2LmhlaWdodD1cIjExcHhcIik7Wj1lZzticmVhaztkZWZhdWx0OnJldHVybiBudWxsfWlmKEQ9XG5xZ1tZLnNiXSl2LlUrPVwiIFwiK0Q7dmFyIEs9b2cuUmMoWix2KTt1Lmhhc093blByb3BlcnR5KFwiaG5lXCIpJiZ0W3UuaG5lXS5wdXNoKEspO2lmKEkpe3ZhciBoYj1FKGZ1bmN0aW9uKCl7Zm9yKHZhciBhYT13KHRbMV0pLGhhPWFhLm5leHQoKTshaGEuZG9uZTtoYT1hYS5uZXh0KCkpe2hhPWhhLnZhbHVlO3ZhciB0YT0hMTtLLnN0eWxlLm92ZXJmbG93WD09PVwiYXV0b1wiP3RhPUsuc2Nyb2xsTGVmdCE9PTA6Sy5zdHlsZS5vdmVyZmxvd1k9PT1cImF1dG9cIiYmKHRhPUsuc2Nyb2xsVG9wIT09MCk7aGEuc3R5bGUudmlzaWJpbGl0eT10YT9cInZpc2libGVcIjpcImhpZGRlblwifWFhPXcodFsyXSk7Zm9yKGhhPWFhLm5leHQoKTshaGEuZG9uZTtoYT1hYS5uZXh0KCkpaGE9aGEudmFsdWUsdGE9ITAsSy5zdHlsZS5vdmVyZmxvd1g9PT1cImF1dG9cIj90YT1NYXRoLmFicyhLLnNjcm9sbExlZnQpIT09Sy5zY3JvbGxXaWR0aC1LLmNsaWVudFdpZHRoOksuc3R5bGUub3ZlcmZsb3dZPT09XCJhdXRvXCImJih0YT1cbksuc2Nyb2xsVG9wIT09Sy5zY3JvbGxIZWlnaHQtSy5jbGllbnRIZWlnaHQpLGhhLnN0eWxlLnZpc2liaWxpdHk9dGE/XCJ2aXNpYmxlXCI6XCJoaWRkZW5cIn0sXCJobmVTY1wiKTtFKGZ1bmN0aW9uKCl7ZSYmKEsuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGhiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixoYikpfSxcImhuZUFzY1wiKSgpfVZhJiZLLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKCl7dmFyIGFhPUsub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIik7YWEuc3R5bGUub3ZlcmZsb3dYPT09XCJhdXRvXCI/YWEuc2Nyb2xsTGVmdCs9VmE6YWEuc3R5bGUub3ZlcmZsb3dZPT09XCJhdXRvXCImJihhYS5zY3JvbGxUb3ArPVZhKTthYT1WYTwwP1wiY2JsY1wiOlwiY2JyY1wiO3ZhciBoYT1oYygpO2VjJiZrYyhoYSxhYSl9KTt1PXUuY2g7aWYoZ2I9PTAmJnUmJnUubGVuZ3RoPjApe0k9ITE7Zm9yKHY9MDt2PHUubGVuZ3RoO3YrKylEPWcodVt2XSksRCE9bnVsbCYmXG4oST0hMCxLLmFwcGVuZENoaWxkKEQpKTtpZighSSlyZXR1cm4gbnVsbH1yZXR1cm4gVD8odT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdS5hcHBlbmRDaGlsZChLKSx1LmFwcGVuZENoaWxkKFQpLHUpOkt9ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwP251bGw6ZTtmPWY9PT12b2lkIDA/W106Zjt2YXIgaD1uZyhhLnMpLGs9YS5hdCxsPVtdLHA9ISFWZihjLGIsXCJjdGMuY290dFwiKSxxPSEhVmYoYyxiLFwiY3RkXCIpLHI9e30sdD0oclsxXT1bXSxyWzJdPVtdLHIpO3I9XCJlXCIrVWYrKzthPWcoYS5sfHx7fSxyLGYuam9pbihcIiBcIikpO2F8fChhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpLGEuaWQ9cik7cmV0dXJue3Jvb3RFbGVtZW50OmEsY2U6bCxWZjpyfX1cbmZ1bmN0aW9uIHNnKGEsYil7ZnVuY3Rpb24gYyhxKXt2YXIgcj1xLnN0eWxlLndvcmRXcmFwLHQ9cS5zdHlsZS53aGl0ZVNwYWNlO3Euc3R5bGUud2hpdGVTcGFjZT1cIm5vd3JhcFwiO3Euc3R5bGUud29yZFdyYXA9XCJub3JtYWxcIjt2YXIgdT1xLm9mZnNldEhlaWdodDtxLnN0eWxlLndoaXRlU3BhY2U9dDtxLnN0eWxlLndvcmRXcmFwPXI7cmV0dXJuIHV9ZnVuY3Rpb24gZChxLHIpe3ZhciB0PXEuY2hpbGRFbGVtZW50Q291bnQ9PTA7cj1yJiZxLmdldEF0dHJpYnV0ZShcImRhdGEtZHJvcFwiKT09XCJ0cnVlXCI7aWYodHx8cil0PXEucGFyZW50Tm9kZSx0LnJlbW92ZUNoaWxkKHEpLHEuaWQhPWImJmQodCxyKX1hPWEucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpbmVzXVwiKTtmb3IodmFyIGU9YS5sZW5ndGgtMTtlPj0wO2UtLSl7dmFyIGY9YVtlXSxnPWYucGFyZW50Tm9kZSxoPXBhcnNlSW50KGYuZ2V0QXR0cmlidXRlKFwiZGF0YS1saW5lc1wiKSwxMCksaz1wYXJzZUludChmLmdldEF0dHJpYnV0ZShcImRhdGEtdHJ1bmNhdGVcIiksXG4xMCk7aWYoaCE9MXx8ayE9MCl7dmFyIGw9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwPWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bD1wLmxlZnQ+bC5sZWZ0fHxwLnJpZ2h0PGwucmlnaHQ7ayE9PTB8fGdnKCk/az09PTEmJihrPWg+MT9jKGYpOnZvaWQgMCwoaD09MT9mLm9mZnNldFdpZHRoPGYuc2Nyb2xsV2lkdGg6aD4xJiZmLm9mZnNldEhlaWdodC9rPmgpfHxsKSYmKGcucmVtb3ZlQ2hpbGQoZiksZChnLCEwKSk6KGc9YyhmKSwoaD4xJiZmLm9mZnNldEhlaWdodC9nPmh8fGwpJiZUZihmLChnKzEpKmgpKX19fWZ1bmN0aW9uIHRnKGEsYil7Yj13KGIpO2Zvcih2YXIgYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7Yz1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGQueGUpO2Q9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChkLnBmKTtjJiZkJiZYZihhLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKSxkLGMpfX07ZnVuY3Rpb24gdWcoYSl7YT1hfHx7fTtyZXR1cm4gSCh2ZyhhLlZhLFwiZ29vZ05vQWRzXCIpKX1mdW5jdGlvbiB2ZyhhLGIpe3JldHVybiBIKCc8ZGl2IHN0eWxlPVwiZGlzcGxheTpub25lO1wiJysoYj8nIGlkPVwiXycrTShiKStcIl9cIitNKGEhPW51bGw/YTpcInVua25vd25fcHViSWRcIikrJ1wiJzpcIlwiKStcIj48L2Rpdj5cIil9O2Z1bmN0aW9uIHdnKGEpe3ZhciBiPWEudXJsO2E9YS5aYTt0aGlzLlBiPWI7dGhpcy5hYj1hO3RoaXMuc2Y9L1s/Jl1jbz0xKCZ8JCkvLnRlc3QoYik7KHRoaXMueGM9L1s/Jl1nY2xpZD0oW14mXSopLy5leGVjKGIpKSYmdGhpcy54Y1sxXSYmKHRoaXMuQmQ9dGhpcy54Y1sxXS50b1N0cmluZygpKTthPS9bPyZdZHNoPTEoJnwkKS8udGVzdChiKTt0aGlzLkFiPSFhJiYvWz8mXWFlPTEoJnwkKS8udGVzdChiKTt0aGlzLkVkPSFhJiYvWz8mXWFlPTIoJnwkKS8udGVzdChiKTtpZigodGhpcy5wYT0vWz8mXWFkdXJsPShbXiZdKikvLmV4ZWMoYikpJiZ0aGlzLnBhWzFdKXt0cnl7dmFyIGM9ZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMucGFbMV0pfWNhdGNoKGQpe2M9bnVsbH10aGlzLlRiPWN9fWZ1bmN0aW9uIHhnKGEsYil7cmV0dXJuIGEuQWImJmEuVGJ8fGEuRWQ/Yj09MT9hLkFiP2EuVGI6eWcoYSxcIiZkY3Q9MVwiKTpiPT0yP3lnKGEsXCImcmk9MlwiKTp5ZyhhLFwiJnJpPTE2XCIpOmEuUGJ9XG5mdW5jdGlvbiB5ZyhhLGIpe3JldHVybiBhLnBhP2EuUGIuc2xpY2UoMCxhLnBhLmluZGV4KStiK2EuUGIuc2xpY2UoYS5wYS5pbmRleCk6YS5QYitifVxuZnVuY3Rpb24gemcoYSl7YT1hLmFiO3ZhciBiPWVuY29kZVVSSUNvbXBvbmVudCxjPVwiXCI7YS5wbGF0Zm9ybSYmKGMrPVwiJnVhcD1cIitiKGEucGxhdGZvcm0pKTthLnBsYXRmb3JtVmVyc2lvbiYmKGMrPVwiJnVhcHY9XCIrYihhLnBsYXRmb3JtVmVyc2lvbikpO2EudWFGdWxsVmVyc2lvbiYmKGMrPVwiJnVhZnY9XCIrYihhLnVhRnVsbFZlcnNpb24pKTthLmFyY2hpdGVjdHVyZSYmKGMrPVwiJnVhYT1cIitiKGEuYXJjaGl0ZWN0dXJlKSk7YS5tb2RlbCYmKGMrPVwiJnVhbT1cIitiKGEubW9kZWwpKTthLmJpdG5lc3MmJihjKz1cIiZ1YWI9XCIrYihhLmJpdG5lc3MpKTthLmZ1bGxWZXJzaW9uTGlzdCYmKGMrPVwiJnVhZnZsPVwiK2IoYS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBiKGQuYnJhbmQpK1wiO1wiK2IoZC52ZXJzaW9uKX0pLmpvaW4oXCJ8XCIpKSk7dHlwZW9mIGEud293NjQhPT1cInVuZGVmaW5lZFwiJiYoYys9XCImdWF3PVwiK051bWJlcihhLndvdzY0KSk7cmV0dXJuIGN9O3ZhciBBZz0vXigobWFya2V0fGl0bXN8aW50ZW50fGl0bXMtYXBwc3MpOlxcL1xcLykvaTtmdW5jdGlvbiBCZygpe3ZhciBhPXRoaXM7dmFyIGI9e30uUmc7dGhpcy5hYj1udWxsO2ImJm5hdmlnYXRvci51c2VyQWdlbnREYXRhJiZuYXZpZ2F0b3IudXNlckFnZW50RGF0YS5nZXRIaWdoRW50cm9weVZhbHVlcyYmKGI9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoXCJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gdWFGdWxsVmVyc2lvbiBhcmNoaXRlY3R1cmUgbW9kZWwgYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjRcIi5zcGxpdChcIiBcIikpKSYmYi50aGVuKGZ1bmN0aW9uKGMpe2EuYWI9Y30pfVxuQmcucHJvdG90eXBlLmhhbmRsZT1mdW5jdGlvbihhKXtpZihhLmhhc0F0dHJpYnV0ZShcImRhdGEtb2hyZWZcIikpdmFyIGI9YS5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9ocmVmXCIpO2Vsc2UgYj1hLmhyZWYsYS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW9ocmVmXCIsYik7dmFyIGM9bmV3IHdnKHt1cmw6YixaYTp7fS5aYX0pO2Muc2YmJihjPVwiaHR0cHM6Ly93d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20vcGFnZWFkL2NvbnZlcnNpb24vMTY1MjE1MzA0NjAvP2dhZF9zb3VyY2U9MSZhZHZpZXdfdHlwZT0zXCIrKGMuQmQ/XCImYWR2aWV3X2djbGlkPVwiK2MuQmQ6XCJcIiksbmF2aWdhdG9yLnNlbmRCZWFjb24oYyxcIlwiKXx8ZmV0Y2goYyx7bWV0aG9kOlwiR0VUXCIsa2VlcGFsaXZlOiEwLG1vZGU6XCJuby1jb3JzXCJ9KSk7dmFyIGQ9YjtjPXtaYTp0aGlzLmFifTtjPW5ldyB3Zyh7dXJsOmQsWmE6KGM9PT12b2lkIDA/e306YykuWmF9KTtpZihjLkFiJiZjLlRifHxjLkVkKWlmKG5hdmlnYXRvci5zZW5kQmVhY29uKXtkPVxubmF2aWdhdG9yO3ZhciBlPWQuc2VuZEJlYWNvbixmPVwiJmFjdD0xJnJpPTFcIjtjLkFiJiZjLmFiJiYoZis9emcoYykpO2M9ZS5jYWxsKGQseWcoYyxmKSxcIlwiKT94ZyhjLDEpOnhnKGMsMil9ZWxzZSBjPXhnKGMsMCk7ZWxzZSBjPWQ7Yz1jIGluc3RhbmNlb2YgdWJ8fCFBZy50ZXN0KGMpP2M6bmV3IHViKGMpO2IhPWMmJihiPXhiKGMpLGIhPT12b2lkIDAmJihhLmhyZWY9YikpfTt2YXIgQ2c9RShmdW5jdGlvbihhKXsobmV3IEJnKS5oYW5kbGUoYSl9LFwibURTXCIpO3ZhciBEZz0vKFs/fCZdezF9bm09KShbXFxkXXsxLH0pLyxFZz0vKFxcP3wmKWNsa3Q9LT9bXFxkXSovZyxGZz0vKFxcP3wmKWJnPVteJl0qL2csR2c9LyhcXD98JilueD0tP1tcXGRdKy9nLEhnPS8oXFw/fCYpbnk9LT9bXFxkXSsvZztmdW5jdGlvbiBJZyhhKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGM9YVtiXTtpZihjLkhhKXt2YXIgZD1jLmVsZW1lbnQuaHJlZixlPWQubWF0Y2goRGcpO2U/ZS5sZW5ndGg9PTMmJihkPWQucmVwbGFjZShEZyxlWzFdKyhwYXJzZUludChlWzJdLDEwKSsxKSkpOmQrPShkLmluZGV4T2YoXCI/XCIpPT0tMT9cIj9cIjpcIiZcIikrXCJubT0xXCI7SmcoYyxkKX19fX1mdW5jdGlvbiBLZyhhKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihhLkdjKXt2YXIgYj1cIiZjbGt0PVwiKygobmV3IERhdGUpLmdldFRpbWUoKS1hLkdjKSxjPWEuZWxlbWVudC5ocmVmO2M9Yy5yZXBsYWNlKEVnLFwiXCIpO0pnKGEsYytiKX19fVxuZnVuY3Rpb24gTGcoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe2EuR2M9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dmFyIGM9QWQoYS5lbGVtZW50KSxkPU1hdGgucm91bmQoYi5jbGllbnRYLWMueCk7Yj1NYXRoLnJvdW5kKGIuY2xpZW50WS1jLnkpO2M9YS5lbGVtZW50LmhyZWY7Yz1jLnJlcGxhY2UoR2csXCJcIik7Yz1jLnJlcGxhY2UoSGcsXCJcIik7SmcoYSxjKyhcIiZueD1cIitkKSsoXCImbnk9XCIrYikpfX1mdW5jdGlvbiBNZyhhKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj1hLmVsZW1lbnQub3duZXJEb2N1bWVudDtpZihiPShiLmRlZmF1bHRWaWV3fHxiLnBhcmVudFdpbmRvdykuY3NhYmcpe2I9XCImYmc9XCIrYi56YygpO3ZhciBjPWEuZWxlbWVudC5ocmVmO2M9Yy5yZXBsYWNlKEZnLFwiXCIpO0pnKGEsYytiKX19fVxuZnVuY3Rpb24gTmcoYSl7YS5IYSYmKGEuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsSWcoW2FdKSksYS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixMZyhhKSkpO3ZhciBiPUtnKGEpLGM9TWcoYSk7R2YoYS5lbGVtZW50LGZ1bmN0aW9uKGQpe05jKFwiLmFDU1wiLERhdGUubm93KCkpO01jKCk7YS5IYSYmKGIoZCksYyhkKSk7dHJ5e0NnKGEuZWxlbWVudCl9Y2F0Y2goZSl7fX0pfWZ1bmN0aW9uIE9nKGEsYixjKXtyZXR1cm4gYS5pbmRleE9mKGIpPT0tMSYmYS5sZW5ndGgrYi5sZW5ndGg8MTYzMzQmJihhKz1iK2VuY29kZVVSSUNvbXBvbmVudChjKSxhLmxlbmd0aD4xNjMzNCk/YS5zdWJzdHJpbmcoMCwxNjMzNCk6YX1cbmZ1bmN0aW9uIFBnKGEsYil7YmUoYS5lbGVtZW50LFwibW91c2Vkb3duXCIsZnVuY3Rpb24oKXt0cnl7dmFyIGM9amUoYiwhMCk7dmFyIGQ9amUoYiwhMSl9Y2F0Y2goZil7fWlmKGMmJmQpe3ZhciBlPWEuZWxlbWVudC5ocmVmO2U9T2coZSxcIiZpcz1cIixbZCxjXS5qb2luKFwieFwiKSk7SmcoYSxlKX19KX1cbmZ1bmN0aW9uIFFnKGEsYixjKXtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YVtkXTtOZyhlKTtpZihlLkhhJiZlLnVkIT09dm9pZCAwKXt2YXIgZj1cIiZuYj1cIisoZS51ZHx8XCJcIiksZz1lLmVsZW1lbnQuaHJlZjtnPWcucmVwbGFjZShSZyxcIlwiKTtnPWcuaW5kZXhPZihcIj9cIik9PS0xP2crZi5yZXBsYWNlKC9eJi8sXCI/XCIpOmcrZjtKZyhlLGcpfWUuSGEmJihQZyhlLGMpLGY9VGEoKS5kYXRhLnJ1fHxudWxsKSYmKGc9ZS5lbGVtZW50LmhyZWYsZz1PZyhnLFwiJnJ1cmw9XCIsZiksSmcoZSxnKSl9YS5sZW5ndGg+MCYmYi5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsSWcoYSkpfTtmdW5jdGlvbiBTZyhhLGIpe3RoaXMudWQ9Yjt0aGlzLkhhPSEwO3RoaXMuZWxlbWVudD1hO3RoaXMuR2M9bnVsbH1mdW5jdGlvbiBKZyhhLGIpe2IubGVuZ3RoPjE2Mzg0fHwoYT1hLmVsZW1lbnQsYj14YihiKSxiIT09dm9pZCAwJiYoYS5ocmVmPWIpKX12YXIgUmc9L1smXFw/XW5iPVxcZC87dmFyIFRnPXtudDowLHNrOlwic2kxMjhcIn0sVmc9e250OjAsc2s6XCJzaTE3N1wifTtmdW5jdGlvbiBXZyhhKXt2YXIgYj1bXTthPXcoYS5zfHxbXSk7Zm9yKHZhciBjPWEubmV4dCgpOyFjLmRvbmU7Yz1hLm5leHQoKSljPWMudmFsdWUsYy5zayE9XCJzaTEyOFwiJiZjLnNrIT1cInNpMTc3XCJ8fCFjLnJ8fChjLnIuYmFjP2IucHVzaChjKTpjLnIuaCYmIWMuci5oLmluY2x1ZGVzKFwiJVwiKSYmcGFyc2VJbnQoYy5yLmgsMTApPjEmJmIucHVzaChjKSk7cmV0dXJuIGIubGVuZ3RoPT09MT9iWzBdOmIuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5zaz09PVwic2kxMjhcIn0pfHxudWxsfVxuZnVuY3Rpb24gWGcoYSxiLGMsZCxlLGYsZyl7Zj1mPT09dm9pZCAwP1tdOmY7Zz1nPT09dm9pZCAwP251bGw6Zzt0aGlzLmxlPVFnO3RoaXMub2E9W107dGhpcy5VYj1bXTt0aGlzLmdiPW51bGw7dGhpcy5SPWU7dGhpcy5mZz14ZihSZihiKSk7dmFyIGg9V2coYik7aCE9bnVsbCYmKHRoaXMuZ2I9cmcoe3M6W2hdLGw6aC5zaz09PVwic2kxMjhcIj9UZzpWZ30se30se30pLnJvb3RFbGVtZW50LHRoaXMuZ2IucmVtb3ZlQXR0cmlidXRlKFwiaWRcIikpO2E9dyhhKTtmb3IodmFyIGs9YS5uZXh0KCk7IWsuZG9uZTtrPWEubmV4dCgpKWs9ay52YWx1ZSx0aGlzLm9hLnB1c2gocmcoYixjLGtbay5hZHR5cGVdLGQsZSxbXCJiX1wiXSkpO3RoaXMubGQ9Yi5hdDt0aGlzLlBmPWM7dGhpcy5IZj1kO3RoaXMuWmI9ZzthOmlmKGQ9Zix0aGlzLmdiKWlmKGg9KChofHx7fSkucnx8e30pLnJzaSliPWg7ZWxzZXtjPWg9ITE7aWYodGhpcy5sZD09NClmb3IoYj13KGIuc3x8W10pLGQ9Yi5uZXh0KCk7IWQuZG9uZTtkPVxuYi5uZXh0KCkpaWYoZD1kLnZhbHVlLGQuc2s9PT1cInNpMTAxXCIpe2lmKGQuci53IT09XCIxMDAlXCIpe2I9W107YnJlYWsgYX19ZWxzZXtpZihkLnNrPT09XCJzaTE0NFwiKXtjPWg9ITA7YnJlYWt9fWVsc2UgaD1kLmluY2x1ZGVzKDIpLGM9ZC5pbmNsdWRlcygzKTtiPVtdO2ZvcihkPTA7ZDx0aGlzLm9hLmxlbmd0aC0xO2QrKyliLnB1c2goZCk7aCYmYi51bnNoaWZ0KC0xKTtjJiZiLnB1c2godGhpcy5vYS5sZW5ndGgtMSl9ZWxzZSBiPVtdO3RoaXMuVGQ9Yn1cbmZ1bmN0aW9uIFlnKGEsYil7dmFyIGM9YS5SLmRvY3VtZW50LmhlYWQsZD1iLnBhcmVudE5vZGU7Yy5hcHBlbmRDaGlsZChhLmZnKTt2YXIgZT1iO2EuWmImJihjLmFwcGVuZENoaWxkKHhmKFJmKGEuWmIpKSksZT1yZyhhLlpiLGEuUGYse30sYS5IZixhLlIpLGM9ZS5yb290RWxlbWVudCxhLlViPWUuY2UsZC5yZXBsYWNlQ2hpbGQoYyxiKSxlPWQucXVlcnlTZWxlY3RvcihcIiNhZEJsb2NrXCIpLGUuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLGRvY3VtZW50LnRpdGxlKSxlLnNldEF0dHJpYnV0ZShcInJvbGVcIixcInJlZ2lvblwiKSk7Yj0wO2ZvcihkPS0xO2Q8YS5vYS5sZW5ndGg7ZCsrKWQ+PTAmJmUuYXBwZW5kQ2hpbGQoYS5vYVtkXS5yb290RWxlbWVudCksYjxhLlRkLmxlbmd0aCYmYS5UZFtiXT09PWQmJihlLmFwcGVuZENoaWxkKGEuZ2IuY2xvbmVOb2RlKCEwKSksYisrKTthPWE9e1ZhOlVhKFRhKCkpLGhiOmEubGR9O2I9YS5WYTtkPVwiXCI7c3dpdGNoKGEuaGIpe2Nhc2UgMTpkKz1cbnZnKGIsXCJnb29nQUZTXCIpO2JyZWFrO2Nhc2UgMjpkKz12ZyhiLFwiZ29vZ0FGU2hQTEFzXCIpO2JyZWFrO2RlZmF1bHQ6ZCs9dmcoKX1hPUgoZCk7YT14ZihhKTtlLmFwcGVuZENoaWxkKGEpO2Euc2V0QXR0cmlidXRlKFwiZGF0YS1yZW5kZXItY29tcGxldGVcIiwhMCk7cmV0dXJuIGV9XG5YZy5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1udWxsLGQ9Y2UoKTtpZihcIk11dGF0aW9uT2JzZXJ2ZXJcImluIHdpbmRvdylyZXR1cm4obmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZSxmKXtlPXcoZSk7Zm9yKHZhciBnPWUubmV4dCgpOyFnLmRvbmU7Zz1lLm5leHQoKSlnLnZhbHVlLmF0dHJpYnV0ZU5hbWU9PVwiZGF0YS1yZW5kZXItY29tcGxldGVcIiYmKGQucmVzb2x2ZShjKSxmLmRpc2Nvbm5lY3QoKSl9KSkub2JzZXJ2ZShhLnBhcmVudEVsZW1lbnQse3N1YnRyZWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6W1wiZGF0YS1yZW5kZXItY29tcGxldGVcIl19KSxjPVlnKHRoaXMsYSksZC5wcm9taXNlLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGRlKGIuUixlKX0pLnRoZW4oZnVuY3Rpb24oZSl7WmcoYixlLGIuUik7cmV0dXJuIGV9KTtjPVlnKHRoaXMsYSk7dGhpcy5SLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtaZyhiLGMsYi5SKTtcblRhKCkuZGF0YS5pY3YyJiZcInJlcXVlc3RBbmltYXRpb25GcmFtZVwiaW4gYi5SP2IuUi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtkLnJlc29sdmUoYyl9KTpkLnJlc29sdmUoYyl9LDApO3JldHVybiBkLnByb21pc2V9O1xuZnVuY3Rpb24gWmcoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPXcoYi5xdWVyeVNlbGVjdG9yQWxsKFwiYVtocmVmXVwiKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpaWYoZj1mLnZhbHVlLGYuZ2V0QXR0cmlidXRlKFwiZGF0YS1ub3RyYWNrXCIpIT1cInRydWVcIil7dmFyIGc9Zi5nZXRBdHRyaWJ1dGUoXCJkYXRhLW5iXCIpfHx2b2lkIDA7ZC5wdXNoKG5ldyBTZyhmLGcpKX1lPXcoYi5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtcGluZ2JhY2stdHlwZV1cIikpO2Y9ZS5uZXh0KCk7Zm9yKGc9e307IWYuZG9uZTtnPXtvYzp2b2lkIDB9LGY9ZS5uZXh0KCkpZy5vYz1mLnZhbHVlLGcub2MuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZnVuY3Rpb24oaCl7cmV0dXJuIGZ1bmN0aW9uKCl7bWMoaGMoKSxoLm9jLmdldEF0dHJpYnV0ZShcImRhdGEtcGluZ2JhY2stdHlwZVwiKSl9fShnKSk7ZT13KGIucXVlcnlTZWxlY3RvckFsbChcIi5iX1wiKSk7Zm9yKGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWYudmFsdWUuc2V0QXR0cmlidXRlKFwiZGF0YS1iZ1wiLFxuXCJ0cnVlXCIpO2EubGUoZCxiLGMuZG9jdW1lbnQuYm9keSk7ZD13KGEub2EpO2ZvcihlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSllPWUudmFsdWUsdGcoYyxlLmNlfHxbXSksc2coYixlLlZmKTthLlViLmxlbmd0aD4wJiZ0ZyhjLGEuVWIpfTt2YXIgYWg9RShmdW5jdGlvbihhLGIsYyxkLGUsZil7Yz1jPT09dm9pZCAwPyExOmM7ZD1kPT09dm9pZCAwP1FnOmQ7ZT1lPT09dm9pZCAwP1hmOmU7Zj1mPT09dm9pZCAwP3NnOmY7Zm9yKHZhciBnPXcoYi5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtd3RhLWJ1YmJsZV1cIikpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXtoPWgudmFsdWU7dmFyIGs9aC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXd0YS1idWJibGVcIik7aWYoayl7dmFyIGw9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChrKTtpZighbCl0aHJvdyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGVsZW1lbnQgd2l0aCBpZDogXCIrayk7ZShiLGgsbCl9fWU9dyhiLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS1waW5nYmFjay10eXBlXVwiKSk7Zz1lLm5leHQoKTtmb3IoaD17fTshZy5kb25lO2g9e3BjOnZvaWQgMH0sZz1lLm5leHQoKSloLnBjPWcudmFsdWUsaC5wYy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixmdW5jdGlvbihwKXtyZXR1cm4gZnVuY3Rpb24oKXttYyhoYygpLFxucC5wYy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXBpbmdiYWNrLXR5cGVcIikpfX0oaCkpO2U9dyhiLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS1zZXQtdGFyZ2V0XVwiKSk7Zm9yKGc9ZS5uZXh0KCk7IWcuZG9uZTtnPWUubmV4dCgpKWc9Zy52YWx1ZSxjJiYoZy50YXJnZXQ9XCJfYmxhbmtcIiksZy5yZW1vdmVBdHRyaWJ1dGUoXCJkYXRhLXNldC10YXJnZXRcIik7Yz13KGIucXVlcnlTZWxlY3RvckFsbChcIi5jbGlja3RyYWNrZWRBZF9qc1wiKSk7Zm9yKGU9Yy5uZXh0KCk7IWUuZG9uZTtlPWMubmV4dCgpKWU9ZS52YWx1ZSxlLnNldEF0dHJpYnV0ZShcImRhdGEtYmdcIixcInRydWVcIiksZihiLGUuaWQpO2Y9W107Yz13KGIucXVlcnlTZWxlY3RvckFsbChcImFbaHJlZl1cIikpO2ZvcihlPWMubmV4dCgpOyFlLmRvbmU7ZT1jLm5leHQoKSllPWUudmFsdWUsZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLW5vdHJhY2tcIikhPT1cInRydWVcIiYmKGc9ZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLW5iXCIpfHx2b2lkIDAsZi5wdXNoKG5ldyBTZyhlLFxuZykpKTtkKGYsYixiKTskZyhhLGIpfSxcImFQUlNcIiksJGc9RShmdW5jdGlvbihhLGIpe3ZhciBjPWIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWFkLWNvbnRhaW5lcl1cIik7aWYoIShjLmxlbmd0aDwxKSl7dmFyIGQ9Y1swXSxlPWIucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtaGlkZS1ub2RlLWV2ZW50PVwiU0NST0xMX0JFR0lOXCJdJyksZj1iLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWhpZGUtbm9kZS1ldmVudD1cIlNDUk9MTF9FTkRcIl0nKTtjPWUubGVuZ3RoPjB8fGYubGVuZ3RoPjA7dmFyIGc9ZnVuY3Rpb24oKXtmb3IodmFyIGs9TWF0aC5hYnMoTWF0aC5yb3VuZChkLnNjcm9sbExlZnQpKSxsPU1hdGgucm91bmQoZC5zY3JvbGxUb3ApLHA9dyhlKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl7cT1xLnZhbHVlO3ZhciByPSExO2Quc3R5bGUub3ZlcmZsb3dYPT09XCJhdXRvXCI/cj1rIT09MDpkLnN0eWxlLm92ZXJmbG93WT09PVwiYXV0b1wiJiYocj1sIT09MCk7cS5zdHlsZS52aXNpYmlsaXR5PVxucj9cInZpc2libGVcIjpcImhpZGRlblwifXA9dyhmKTtmb3IocT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpcT1xLnZhbHVlLHI9ITAsZC5zdHlsZS5vdmVyZmxvd1g9PT1cImF1dG9cIj9yPWshPT1kLnNjcm9sbFdpZHRoLWQuY2xpZW50V2lkdGg6ZC5zdHlsZS5vdmVyZmxvd1k9PT1cImF1dG9cIiYmKHI9bCE9PWQuc2Nyb2xsSGVpZ2h0LWQuY2xpZW50SGVpZ2h0KSxxLnN0eWxlLnZpc2liaWxpdHk9cj9cInZpc2libGVcIjpcImhpZGRlblwifTtjJiYoZC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsZyksdHlwZW9mIFJlc2l6ZU9ic2VydmVyPT09XCJmdW5jdGlvblwiPyhuZXcgUmVzaXplT2JzZXJ2ZXIoZykpLm9ic2VydmUoZCk6YS5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZykpO2E9dyhiLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS1zY3JvbGwtZGlzcGxhY2VtZW50XVwiKSk7dmFyIGg9YS5uZXh0KCk7Zm9yKGI9e307IWguZG9uZTtiPXtRYTp2b2lkIDAsQ2E6dm9pZCAwfSxoPWEubmV4dCgpKWlmKGg9XG5oLnZhbHVlLGIuUWE9aC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXNjcm9sbC1kaXNwbGFjZW1lbnRcIiksYi5RYSl7Yi5DYT1OdW1iZXIoYi5RYSk7aWYoaXNOYU4oYi5DYSkpdGhyb3cgRXJyb3IoXCJTY3JvbGwgRGlzcGxhY2VtZW50IGlzIG5vdCBhIG51bWJlcjogXCIrYi5RYSk7aC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixmdW5jdGlvbihrKXtyZXR1cm4gZnVuY3Rpb24oKXtpZih5KCkuZGF0YS5lcGN1aSl7dmFyIGw9ZC5jbGllbnRXaWR0aCxwPWQuc2Nyb2xsTGVmdCxxPWQuc2Nyb2xsV2lkdGgscj1OdW1iZXIoay5RYSksdD1OdW1iZXIoeSgpLmRhdGEucGNzZHx8XCIwXCIpO2lzTmFOKHQpJiYodD0wKTtwPU1hdGguYWJzKHApPT09cS1sO3E9TWF0aC5hYnMocik7cj1yPDA7dmFyIHU9TnVtYmVyKHkoKS5kYXRhLnBjc2JwfHxcIjUwXCIpO3ZhciB2PU51bWJlcih5KCkuZGF0YS5wY3Nic3x8XCI1MFwiKTtpc05hTih2KSYmKHY9NTApO2lzTmFOKHUpJiYodT01MCk7dT12K3U7bD0oTWF0aC5mbG9vcigocD9cbmwtdTpsKS9xKS10KSpxO3Q9cj8tbDpsO3AmJih0Kz1yPy11OnUpO2w8cSYmKHQ9cj8tcTpxKTtrLkNhPXR9ZC5zdHlsZS5vdmVyZmxvd1g9PT1cImF1dG9cIj9kLnNjcm9sbExlZnQrPWsuQ2E6ZC5zdHlsZS5vdmVyZmxvd1k9PT1cImF1dG9cIiYmKGQuc2Nyb2xsVG9wKz1rLkNhKTtsPWsuQ2E8MD9cImNibGNcIjpcImNicmNcIjt0PWhjKCk7ZWMmJmtjKHQsbCl9fShiKSl9YyYmZygpfX0sXCJhU0hcIik7ZnVuY3Rpb24gYmgoYSxiLGMpe2EuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSl9O2Z1bmN0aW9uIGNoKGEsYil7aWYoYSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihhW2NdLGMsYSl9ZnVuY3Rpb24gZGgoYSxiKXtmb3IodmFyIGM9MDtjPDUwOysrYyl7dHJ5e3ZhciBkPSEoIWEuZnJhbWVzfHwhYS5mcmFtZXNbYl0pfWNhdGNoKGcpe2Q9ITF9aWYoZClyZXR1cm4gYTthOnt0cnl7dmFyIGU9YS5wYXJlbnQ7aWYoZSYmZSE9YSl7dmFyIGY9ZTticmVhayBhfX1jYXRjaChnKXt9Zj1udWxsfWlmKCEoYT1mKSlicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBlaChhKXthPWE9PT12b2lkIDA/ZG9jdW1lbnQ6YTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwiaW1nXCIpfTtmdW5jdGlvbiBmaChhLGIsYyl7Yz1jPT09dm9pZCAwP2RvY3VtZW50OmM7dmFyIGQ9cGQoYykuY3JlYXRlRWxlbWVudChcIlNDUklQVFwiKTtkLnR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIjtiJiYoZC5vbnJlYWR5c3RhdGVjaGFuZ2UhPT12b2lkIDA/ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZihkLnJlYWR5U3RhdGU9PVwiY29tcGxldGVcInx8ZC5yZWFkeVN0YXRlPT1cImxvYWRlZFwiKXRyeXtiJiZiKCl9Y2F0Y2goZil7fX06ZC5vbmxvYWQ9Yik7TWIoZCxyYihhPT09bnVsbD9cIm51bGxcIjphPT09dm9pZCAwP1widW5kZWZpbmVkXCI6YSkpO3ZhciBlPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdO2lmKGUpdHJ5e3guc2V0VGltZW91dChmdW5jdGlvbigpe2UuYXBwZW5kQ2hpbGQoZCl9LDApfWNhdGNoKGYpe319O2Z1bmN0aW9uIGdoKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuZWc9Yjt0aGlzLlNlPWM7dGhpcy5oYT1cIjBcIjt0aGlzLnNkPW51bGw7dGhpcy5SPWE7dGhpcy52YT1udWxsO2EmJmEuZG9jdW1lbnQmJmEuZG9jdW1lbnQucmVhZHlTdGF0ZT09PVwiY29tcGxldGVcIj90aGlzLnFiKCk6YmUoYSxcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBkLnFiKCl9KX1tPWdoLnByb3RvdHlwZTtcbm0ucWI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2lmKCF0aGlzLnZhKXt2YXIgYj0obmV3IHFkKHRoaXMuUi5kb2N1bWVudCkpLmNyZWF0ZUVsZW1lbnQoXCJJRlJBTUVcIik7Yi5mcmFtZUJvcmRlcj1cIjBcIjtiLnN0eWxlLmhlaWdodD0wO2Iuc3R5bGUud2lkdGg9MDtiLnN0eWxlLnBvc2l0aW9uPVwiYWJzb2x1dGVcIjt0aGlzLnZhPWI7dGhpcy5SLmRvY3VtZW50LmJvZHkmJih0aGlzLlIuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChiKSx0aGlzLnZhLmNvbnRlbnREb2N1bWVudD90aGlzLkpiKCk6YmUodGhpcy52YSxcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBhLkpiKCl9KSl9fTtcbm0uSmI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9dGhpcy52YTtiJiYoYj1iLmNvbnRlbnREb2N1bWVudD9iLmNvbnRlbnREb2N1bWVudDpiLmNvbnRlbnRXaW5kb3c/Yi5jb250ZW50V2luZG93LmRvY3VtZW50Om51bGwpJiYodGhpcy5oYT1cIjFcIixiLm9wZW4oKSxOYihiKSxiLmNsb3NlKCksZmgodGhpcy5lZyxmdW5jdGlvbigpe3JldHVybiBhLmZjKCl9LGIpKX07bS5mYz1mdW5jdGlvbigpe3ZhciBhPXRoaXMudmE7aWYoYSlpZihhPWEuY29udGVudFdpbmRvdyx0aGlzLmhhPVwiXCIsYS5ib3RndWFyZClpZihhPWEuYm90Z3VhcmQuYmcpdHJ5e3RoaXMuc2Q9bmV3IGEodGhpcy5TZSl9Y2F0Y2goYil7dGhpcy5oYT1cIjVcIn1lbHNlIHRoaXMuaGE9XCIzXCI7ZWxzZSB0aGlzLmhhPVwiMlwifTtcbm0uemM9ZnVuY3Rpb24oKXtpZih0aGlzLmhhKXJldHVybiB0aGlzLmhhO3ZhciBhPXRoaXMuc2Q7aWYoIWEpcmV0dXJuXCI1XCI7aWYoIWEuaW52b2tlKXJldHVyblwiNFwiO3ZhciBiPVwiXCI7dHJ5e2EuaW52b2tlKGZ1bmN0aW9uKGMpe2I9Y30pfWNhdGNoKGMpe3JldHVyblwiNlwifXJldHVybiB0eXBlb2YgYiE9PVwic3RyaW5nXCJ8fGIubGVuZ3RoPT0wP1wiNlwiOmIubGVuZ3RoPDM/XCI3XCI6Yi5sZW5ndGg+MjU1MD9cIjhcIjpifTttLnFiPUIoZ2gucHJvdG90eXBlLnFiLFwiQkdjSVwiKTttLkpiPUIoZ2gucHJvdG90eXBlLkpiLFwiQkdwSVwiKTttLmZjPUIoZ2gucHJvdG90eXBlLmZjLFwiQkdjQlZcIik7bS56Yz1CKGdoLnByb3RvdHlwZS56YyxcIkJHZ0JSXCIpO2Z1bmN0aW9uIGhoKGEpe3ZhciBiPXt9O2E9dyhhKTtmb3IodmFyIGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKXtjPWMudmFsdWU7dmFyIGQ9Yy5hdDtiW2RdPWJbZF18fHt9O2lmKGMuYyl7YltkXS5jb250YWluZXJNYXA9YltkXS5jb250YWluZXJNYXB8fHt9O2Zvcih2YXIgZT13KGMuYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpYltkXS5jb250YWluZXJNYXBbZi52YWx1ZV09Y31lbHNlIGJbZF1bXCJkZWZhdWx0XCJdPWN9dGhpcy5iZD1ifWZ1bmN0aW9uIGloKGEsYixjKXt2YXIgZD1qaFtiXTtpZighYS5iZFtkXSlyZXR1cm4gbnVsbDtiPWEuYmRbZF1bXCJkZWZhdWx0XCJdO3JldHVybihhPWEuYmRbZF0uY29udGFpbmVyTWFwKT9hW2NdfHxiOmJ9dmFyIGtoPXt9LGpoPShraFswXT0xLGtoWzNdPTIsa2hbMl09NCxraCk7dmFyIGxoPUUoZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e307YT13KGEpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe3ZhciBkPWMudmFsdWU7Yz1kLm47ZD1kLnY7ZD09PVwidFwiP2JbY109ITA6ZCE9PVwiZlwiJiYoYltjXT1kKX1yZXR1cm4gYn0sXCJjSkNUTVwiKTt2YXIgbWg9amEoW1wiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVwiLFwiXCJdKSxuaD1kb2N1bWVudDtmdW5jdGlvbiBvaChhKXt2YXIgYj0hIXkoKS5kYXRhLmFyYndmLGM9YTtiJiYoYz1hLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZCtcIjo0MDAsNzAwXCJ9KSk7YT1tZChtaCxjLmpvaW4oXCJ8XCIpKTsoYj15KCkuZGF0YS5mZHx8bnVsbCkmJihhPW9iKGEse2Rpc3BsYXk6Yn0pKTtyZXR1cm4gYX1mdW5jdGlvbiBwaCgpe3RoaXMud2M9VGEoKS5kYXRhLndmdGx8fFtdO3RoaXMuWWQ9dGhpcy53Yy5sZW5ndGg+MD9vaCh0aGlzLndjKTpudWxsO3RoaXMuT2E9bnVsbDt0aGlzLnhkPSExfVxuZnVuY3Rpb24gcWgoYSxiKXtpZihhLllkKXRyeXt2YXIgYz1iLmRvY3VtZW50LGQ9Yy5jcmVhdGVFbGVtZW50KFwibGlua1wiKTthOnt2YXIgZT1hLllkO2lmKGUgaW5zdGFuY2VvZiBuYilkLmhyZWY9cWIoZSkudG9TdHJpbmcoKTtlbHNle2lmKExiLmluZGV4T2YoXCJzdHlsZXNoZWV0XCIpPT09LTEpdGhyb3cgRXJyb3IoJ1RydXN0ZWRSZXNvdXJjZVVybCBocmVmIGF0dHJpYnV0ZSByZXF1aXJlZCB3aXRoIHJlbD1cInN0eWxlc2hlZXRcIicpO3ZhciBmPXhiKGUpO2lmKGY9PT12b2lkIDApYnJlYWsgYTtkLmhyZWY9Zn1kLnJlbD1cInN0eWxlc2hlZXRcIn1jLmhlYWQuYXBwZW5kQ2hpbGQoZCl9Y2F0Y2goZyl7YS5PYT1nfX1cbmZ1bmN0aW9uIHJoKGEpe2lmKCFhLnhkJiZuaC5mb250cyYmdHlwZW9mIG5oLmZvbnRzLmxvYWQ9PVwiZnVuY3Rpb25cIil7YS54ZD0hMDthPXcoYS53Yyk7Zm9yKHZhciBiPWEubmV4dCgpLGM9e307IWIuZG9uZTtjPXtGYzp2b2lkIDB9LGI9YS5uZXh0KCkpe2I9Yi52YWx1ZTt2YXIgZD1cIlwiLGU9Yi5zcGxpdChcIjpcIik7ZS5sZW5ndGg9PT0yJiYoYj1lWzBdLGVbMV09PT1cIjcwMFwiJiYoZD1cImJvbGQgXCIpKTshKGIuaW5kZXhPZihcIiBcIik+PTApfHxiLnN0YXJ0c1dpdGgoXCInXCIpJiZiLmVuZHNXaXRoKFwiJ1wiKXx8KGI9XCInXCIrYitcIidcIik7Yy5GYz1kK1wiMTJweCBcIitiO25oLmZvbnRzLmxvYWQoYy5GYykuY2F0Y2goZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe0MubG9nKChnIGluc3RhbmNlb2YgRXJyb3I/Zy5tZXNzYWdlOlN0cmluZyhnKSkrXCIgLSBcIitmLkZjLFwibWZmbFwiKX19KGMpKX19fTt2YXIgc2g9bnVsbCx0aD17YWRzOjAscnNzOjIscGJzOjMsYWRfZGF0YTo4LHNiczo1fSx1aD17dGV4dF9hZHM6MCxwbGFfbnBhY2s6MyxyZWxhdGVkX3NlYXJjaDoyfSx2aD17c3RhdHVzQWR1bHQ6XCJzLmFEVUxUXCIsc3RhdHVzRmFpbGxpc3RlZDpcInMuZkxcIixzdGF0dXNUcmFkZW1hcms6XCJzLnRNXCIsc3RhdHVzTmVlZHNSZXZpZXc6XCJzLm5SXCJ9LHdoPXt9LHhoPSExO2Z1bmN0aW9uIHloKGEpeyFzaCYmYS5uYW1lJiYoc2g9KGE9YS5uYW1lLm1hdGNoKC9tYXN0ZXItKFxcZCspLykpJiZhWzFdP2FbMV06bnVsbCk7c2h8fChzaD0tMSk7cmV0dXJuIHNofXloPUIoeWgsXCJnTU5cIik7ZnVuY3Rpb24gemgoYSl7dmFyIGI9XCJtYXN0ZXItXCIreWgoYSk7cmV0dXJuICRkKGIsYSl9emg9Qih6aCxcImdNSVwiKTtcbmZ1bmN0aW9uIEFoKGEsYixjKXt0cnl7aWYoYS5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImh0bWxcIikpe3ZhciBkPWEuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJodG1sXCIpWzBdO2QmJighZC5sYW5nJiZiJiYoZC5sYW5nPWIpLCFkLmRpciYmYyYmKGQuZGlyPWMpKX19Y2F0Y2goZSl7fX1BaD1CKEFoLFwic1NJTERcIik7ZnVuY3Rpb24gQmgoYSxiKXt0cnl7aWYoYiE9PXZvaWQgMCl7dmFyIGM9YS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibWV0YVwiKTtjLmh0dHBFcXVpdj1cIm9yaWdpbi10cmlhbFwiO2MuY29udGVudD1iO2EuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjKX19Y2F0Y2goZCl7fX1CaD1CKEJoLFwic09UT0ZcIik7XG5mdW5jdGlvbiBDaChhLGIpe3ZhciBjPXt9O2E9dyhhKTtmb3IodmFyIGQ9YS5uZXh0KCk7IWQuZG9uZTtkPWEubmV4dCgpKWQ9ZC52YWx1ZSxjW2Qua109ZC52O2I9dyhiKTtmb3IoYT1iLm5leHQoKTshYS5kb25lO2E9Yi5uZXh0KCkpYT1hLnZhbHVlLGNbYS5rXT1hLnY7cmV0dXJuIGN9XG5mdW5jdGlvbiBEaChhLGIsYyxkLGUsZixnLGgsayxsLHApe2Z1bmN0aW9uIHEodil7dmFyIEQ9T2QoYik7SmYoaCx2LEQpO2EucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZhLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3Yuc3R5bGUudHJhbnNmb3JtPVwicm90YXRlWigwZGVnKVwifSl9dmFyIHI9Q2goZy5yfHxbXSxrLnJ8fFtdKSx0PShmPWRbMF0udHlwZT09PTIpPyExOmgubGlua1RhcmdldD09XCJfYmxhbmtcIix1PUxmKCk7RWYodSxhLmRvY3VtZW50LmhlYWQpO2Q9bmV3IFhnKGQsayxyLHQsYSxwLGwpO1wiaWV2XCJpbiBrJiZPYyhiK1wiLmVWXCIsay5pZXYpO0VoKGcsYik7Yz1kLnJlbmRlcihjKS50aGVuKGZ1bmN0aW9uKHYpe3Eodik7cmV0dXJuIHZ9KTtmJiZoLnJlbGF0ZWRTZWFyY2hVc2VSZXN1bHRDYWxsYmFjayYmKGM9Yy50aGVuKGZ1bmN0aW9uKHYpe0ZoKHYsZSk7cmV0dXJuIHZ9KSk7cmV0dXJuIGN9RGg9QihEaCxcImZTQVwiKTtcbmZ1bmN0aW9uIEdoKGEsYixjLGQsZSxmLGcsaCl7VGEoKS5kYSgpJiYoYS5kb2N1bWVudC5kaXI9XCJydGxcIik7YT1kWzBdLnR5cGU7RGYoYyxoLGUpO0hoKGQsYyxoLGYsYSk7Yj1PZChiKTtKZihoLGMsYil9R2g9QihHaCxcImZBXCIpO2Z1bmN0aW9uIEloKGEsYixjLGQsZSxmKXtBaChhLGUsZik7SmgoYSk7cWgoYyxhKTtyaChjKTthPWEuZG9jdW1lbnQuaGVhZDtiIT09bnVsbCYmYS5hcHBlbmRDaGlsZChiLmNsb25lTm9kZSghMCkpO2EuYXBwZW5kQ2hpbGQoZCl9SWg9QihJaCxcInBTUlNcIik7XG5mdW5jdGlvbiBLaChhLGIsYyxkLGUsZixnLGgpe2lmKGIgaW4gd2gpe3ZhciBrPW51bGw7dHJ5e2s9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIiksVmRbYl09ITB9Y2F0Y2gocSl7fWlmKGshPW51bGwpe2suc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLGRvY3VtZW50LnRpdGxlKTtrLnNldEF0dHJpYnV0ZShcInJvbGVcIixcInJlZ2lvblwiKTtpZihjKXtmb3IodmFyIGw9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2MuZmlyc3RFbGVtZW50Q2hpbGQ7KWwuYXBwZW5kQ2hpbGQoYy5maXJzdEVsZW1lbnRDaGlsZCk7ay5hcHBlbmRDaGlsZChsKX12YXIgcD1rO1wicmVxdWVzdEFuaW1hdGlvbkZyYW1lXCJpbiBhP2EucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ZChhLHAsZil9KTpkKGEscCxmKTtjPU9kKGIpO2w9Q2UoYixlKTtKZihsLGssYyk7ZyYmbC5yZWxhdGVkU2VhcmNoVXNlUmVzdWx0Q2FsbGJhY2smJkZoKGssZSk7aC5iZyYmKGU9bmV3IGdoKGEsXG5oLmJnLmksaC5iZy5wKSxhLmNzYWJnPWUpO2RlbGV0ZSB3aFtiXX19fUtoPUIoS2gsXCJwU1JBSFwiKTtmdW5jdGlvbiBMaChhLGIpe2E9JGQoYSxiKTtpZihhPT1udWxsKXJldHVybiBudWxsO2I9bnVsbDt0cnl7Yj1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKX1jYXRjaChjKXt9cmV0dXJuIGI9PW51bGw/bnVsbDphfUxoPUIoTGgsXCJnRklBQlwiKTtcbmZ1bmN0aW9uIE1oKGEsYixjLGQsZSxmKXt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpLGg9eWgoYSksaz1YYSgpLGw9bmV3IHBoLHA9W10scT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzci1ib2lsZXJwbGF0ZVwiKTtpZihOaCgpLmxlbmd0aD4wKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmZcIikhPT1udWxsfHxxaChsLHdpbmRvdyk7cmgobCk7dmFyIHI9XCJtYXN0ZXItXCIraCx0PUNlKHIsYSk7S2god2luZG93LHIsbnVsbCxhaCxhLHQubGlua1RhcmdldD09XCJfYmxhbmtcIix0LnR5cGU9PT1cInJlbGF0ZWRzZWFyY2hcIixjKX1mb3Iocj0wO3I8Zy5jaGlsZEVsZW1lbnRDb3VudDspe3Q9Zy5jaGlsZHJlbltyXTt2YXIgdT10LmlkLnNwbGl0KFwiLVwiKTtyKz0xO2lmKCEodS5sZW5ndGg8Mikpe3ZhciB2PXUuc2hpZnQoKTtpZih2PT09XCJzc3JhZFwifHx2PT09XCJzc3JzXCJ8fHY9PVwic3Nyc2JcIil7dS5wdXNoKGgudG9TdHJpbmcoKSk7dT11LmpvaW4oXCItXCIpO3ZhciBEPVxuQ2UodSxhKSxJPUQubGlua1RhcmdldD09XCJfYmxhbmtcIixUPUQudHlwZT09PVwicmVsYXRlZHNlYXJjaFwiLGJhPUxoKHUsYSk7aWYoYmE9PW51bGwpcC5wdXNoKHUpO2Vsc2UgaWYoZy5yZW1vdmVDaGlsZCh0KSwtLXIsdj09PVwic3Nyc1wiKUloKGJhLHEsbCx0LGQsZSxmKTtlbHNlIGlmKHY9PT1cInNzcmFkXCIpS2goYmEsdSx0LGFoLGEsSSxULGMpO2Vsc2UgaWYodj09PVwic3Nyc2JcIil7dD1udWxsO3RyeXt0PWJhLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKX1jYXRjaChnYil7fXQhPW51bGwmJihHaChiYSx1LHQsYy5zYnMsYSxiLGMsRCksVmRbdV09ITAsZGVsZXRlIHdoW3VdKX19fX1mb3IodmFyIEhhIGluIHdoKXAuaW5kZXhPZihIYSk8MCYmKE9jKEhhK1wiLmhBXCIsITEpLFlhKGspJiZOYyhIYStcIi5hQ1wiLDApLGRlbGV0ZSB3aFtIYV0pO3AubGVuZ3RoPT0wJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGcpO01jKCk7bC5PYSYmQy5sb2cobC5PYSxcImx3ZjJcIil9XG5NaD1CKE1oLFwicFNSQVwiKTtcbmZ1bmN0aW9uIE9oKGEsYixjKXt2YXIgZD16aChhKTtpZihkKXt2YXIgZT1kLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nO3ZhciBmPWQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcjtkLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJoZWFkXCIpJiZKaChkKX12YXIgZz0oZD1jLmF0KSYmZC5sZW5ndGg+MD9uZXcgaGgoZCk6dm9pZCAwLGg9KGQ9Yy5hY3QpP25ldyBoaChkKTp2b2lkIDAsaz1PYmplY3Qua2V5cyh3aCkuc2xpY2UoKSxsPW5ldyBwaDtkPVtdO2lmKFVkKCkpTWgoYSxiLGMsZSxmLFwiQTRUVkQwb0RvUlVuQlpnWURkTlZBUllJUFNtSmd5U0VzWWRQQU5ScnJnUTdRaXRQc090eTBlWklCc2psSEZGSndERlUvOFFtblJGMmtMNXhiNFJQOVE0QUFBQ0VleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMM2QzZHk1bmIyOW5iR1V1WTI5dE9qUTBNeUlzSW1abFlYUjFjbVVpT2lKUWNtbDJZV041VTJGdVpHSnZlRUZrYzBGUVNYTWlMQ0psZUhCcGNua2lPakUyT1RVeE5qYzVPVGtzSW1selUzVmlaRzl0WVdsdUlqcDBjblZsTENKcGMxUm9hWEprVUdGeWRIa2lPblJ5ZFdWOVwiKSxkLnB1c2goUHJvbWlzZS5yZXNvbHZlKCkpO1xuZWxzZSBmb3IodmFyIHAgaW4gd2gpe3ZhciBxPXdoW3BdLHI9cVswXS50eXBlLHQ9JGQocCxhKTtpZih0IT1udWxsKXtBaCh0LGUsZik7QmgodCx2b2lkIDApO3ZhciB1PW51bGw7dHJ5e3U9dC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIil9Y2F0Y2goYmEpe31pZih1IT1udWxsKXt1LnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixkb2N1bWVudC50aXRsZSk7dS5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJyZWdpb25cIik7eSgpLmRhdGEuaWNlbGFlJiZKaCh0KTtxaChsLHQpO3JoKGwpO3ZhciB2PXI9PTIsRD1yPT01LEk9Q2UocCxhKSxUPW51bGw7ZyYmaWgoZyxyLEkuY29udGFpbmVyKT8oVD1paChnLHIsSS5jb250YWluZXIpLHI9aD9paChoLHIsSS5jb250YWluZXIpOm51bGwsdiYmS2YoSSxxKSx2PVBoKHAsayksVD1EaCh0LHAsdSxxLGEsYixjLEksVCxyLHYpKTooRHx8Qy5sb2cocixcInVueExSQlwiKSxUPVByb21pc2UucmVzb2x2ZSgpLEdoKHQscCx1LHEsYSxiLGMsSSkpO1xuYy5iZyYmKHE9bmV3IGdoKHQsYy5iZy5pLGMuYmcucCksdC5jc2FiZz1xKTtkLnB1c2goVCk7VmRbcF09ITA7ZGVsZXRlIHdoW3BdfX19bC5PYSYmQy5sb2cobC5PYSxcImx3ZjJcIik7aWYoeSgpLmRhdGEuZXB0ZSlmb3IoYj13KGspLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWM9JGQoYy52YWx1ZSxhKSxjIT1udWxsJiZRaChjKTtyZXR1cm4gZmUoZCkudGhlbihmdW5jdGlvbigpe3ZhciBiYT16KFwiX29wdGltaXplRnJhbWVNZWFzdXJlbWVudFwiKTtSaChhLCEhZ3x8YmEsYmEpfSl9T2g9QihPaCxcIm1QQUFTSFwiKTt2YXIgU2g9dHlwZW9mIFJlc2l6ZU9ic2VydmVyPT09XCJmdW5jdGlvblwiLFRoPW51bGw7XG5mdW5jdGlvbiBSaChhLGIsYyl7ZnVuY3Rpb24gZCgpe3ZhciBlPVpkKGEpLmZyYW1lcztpZihTaCl7VGgmJlRoLmRpc2Nvbm5lY3QoKTt2YXIgZj1jO1RoPW5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbigpe2Y/Zj0hMTp0ZShhKX0pO2U9dyhlKTtmb3IodmFyIGc9ZS5uZXh0KCk7IWcuZG9uZTtnPWUubmV4dCgpKVRoLm9ic2VydmUoZy52YWx1ZS5kb2N1bWVudC5ib2R5KX1lbHNlIGZvcihlPXcoZSksZz1lLm5leHQoKTshZy5kb25lO2c9ZS5uZXh0KCkpZy52YWx1ZS5vbnJlc2l6ZT1mdW5jdGlvbigpe3RlKGEpfX1jfHxkKCk7Yj90ZShhKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGUoYSl9LDApO2MmJnNldFRpbWVvdXQoZCwwKX1cbmZ1bmN0aW9uIFBoKGEsYil7dmFyIGM9YS5zcGxpdChcIi1cIik7YT1hLnNwbGl0KFwiLVwiKTtjLnNwbGljZShjLmxlbmd0aC0xLDAsXCJhXCIpO2M9Yy5qb2luKFwiLVwiKTthLnNwbGljZShhLmxlbmd0aC0xLDAsXCJiXCIpO2E9YS5qb2luKFwiLVwiKTt2YXIgZD1bXTtiLmluY2x1ZGVzKGMpJiZkLnB1c2goMik7Yi5oYXNPd25Qcm9wZXJ0eShhKSYmZC5wdXNoKDMpO3JldHVybiBkfWZ1bmN0aW9uIFVoKGEsYixjKXt2YXIgZD1NYXRoLm1heC5hcHBseShNYXRoLGEpO2E9TWF0aC5taW4uYXBwbHkoTWF0aCxhKTtpZihkLWE+SmQpZm9yKGE9ZC1KZCxkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07Y1tlXTxhJiYoY1tlXT1hKX1yZXR1cm4gY31VaD1CKFVoLFwicEJERlwiKTtcbmZ1bmN0aW9uIFZoKGEsYil7Zm9yKHZhciBjPXt9LGQ9ITEsZT1bXSxmPVtdLGc9dyhPYmplY3Qua2V5cyhhKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpaWYoaD1oLnZhbHVlLGggaW4gYil7dmFyIGs9YltoXSxsPWFbaF07dHlwZW9mIGwhPVwidW5kZWZpbmVkXCImJihsPU1kKGgsayxsKSxsIT1udWxsJiYoY1toXT1sLGsuZz09S2QmJihlLnB1c2gobCksZi5wdXNoKGgpKSxkPSEwKSl9ZS5sZW5ndGg+MCYmKGM9VWgoZSxmLGMpKTtyZXR1cm4gZD9jOm51bGx9Vmg9QihWaCxcInZPXCIpO2Z1bmN0aW9uIFdoKGEsYil7cmV0dXJuKE5kKGEpfHwvXm1hc3Rlci1cXGQrJC8udGVzdChhKSkmJnR5cGVvZiBiPT1cIm9iamVjdFwifVdoPUIoV2gsXCJpUEFCT1wiKTtcbmZ1bmN0aW9uIFhoKGEpe3RyeXtpZighYSl0aHJvdyBFcnJvcihcIk51bGwsIHVuZGVmaW5lZCBvciBlbXB0eSB3aW5kb3cubmFtZS5cIik7dmFyIGI9SlNPTi5wYXJzZShhKX1jYXRjaChkKXt2YXIgYz1kLm1lc3NhZ2U7YSYmKGM9XCJJbnZhbGlkIHdpbmRvdy5uYW1lOiBcIithLnNwbGl0KFwiLFwiKVswXSk7Qy5sb2coYyxcInBOQU9cIil9cmV0dXJuIGJ8fHt9fVhoPUIoWGgsXCJwTkFPXCIpO2Z1bmN0aW9uIFloKGEsYil7dmFyIGM9e30sZDtmb3IoZCBpbiBhKXt2YXIgZT1hW2RdO2Q9PVwibmFtZVwiP2NbZF09TmQoZSl8fC9ebWFzdGVyLVxcZCskLy50ZXN0KGUpP2U6bnVsbDpXaChkLGUpJiYoZT1WaChlLGIpLGNbZF09ZSx3aFtkXT1bXSl9cmV0dXJuIGN9WWg9QihZaCxcInZOQU9cIik7XG5mdW5jdGlvbiBIaChhLGIsYyxkLGUpe2lmKCEoYS5sZW5ndGg8PTApKXtkPW51bGw7aWYoZT09PTUpe3ZhciBmPWMucmVzdWx0c1BhZ2VCYXNlVXJsO2lmKCFmKXRocm93IHFjKFwicmVzdWx0c1BhZ2VCYXNlVXJsIG5lZWRzIHRvIGJlIHNldCBmb3Igc2VhcmNoYm94IGJsb2Nrcy5cIik7ZD1hWzBdLmFmZHQ7YT1hWzBdLmxhYmVsO2U9UmQoZik7Yy5wZXJzb25hbGl6ZWRBZHMhPW51bGwmJihlLnBjc2E9XCJcIitjLnBlcnNvbmFsaXplZEFkcyk7Yz0nPGRpdiBjbGFzcz1cImFkU3RkXCI+PGZvcm0gYWN0aW9uPVwiJytNKGtmKGYpKSsnXCIgdGFyZ2V0PVwiX3RvcFwiIG1ldGhvZD1cImdldFwiIGFjY2VwdC1jaGFyc2V0PVwiVVRGLThcIj4nO2Y9WWUoZSk7Zm9yKHZhciBnPWYubGVuZ3RoLGg9MDtoPGc7aCsrKXt2YXIgaz1mW2hdO2MrPSc8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCInK00oaykrJ1wiIHZhbHVlPVwiJytNKGVba10pKydcIi8+J31jKz0nPHRhYmxlIGNsYXNzPVwic2ItdGFibGVcIiBjZWxsc3BhY2luZz1cIjBcIiBjZWxscGFkZGluZz1cIjBcIj48dGJvZHk+PHRyPjx0ZCBjbGFzcz1cInNiaS10ZFwiPjxpbnB1dCBjbGFzcz1cInNiaVwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInF1ZXJ5XCIgbWF4bGVuZ3RoPVwiNjNcIiB0aXRsZT1cIkVudGVyIGEgc2VhcmNoXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIvPjwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1cInNiYlwiIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIicrXG4oYT9NKGEpOlwiU2VhcmNoXCIpKydcIi8+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJhZmRUb2tlblwiIHZhbHVlPVwiJytNKGQpKydcIi8+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic2VhcmNoXCIgdmFsdWU9XCIxXCIvPjwvZm9ybT48L2Rpdj4nO2Q9SChjKX1hPWE9e1ZhOlVhKFRhKCkpfTthPUgodmcoYS5WYSxcImdvb2dBRlNcIikpO0VmKGEsYik7ZCYmRWYoZCxiKX19SGg9QihIaCxcImNBTlwiKTtcbmZ1bmN0aW9uIFpoKGEsYixjKXt2YXIgZD0kaChhKSxlPXloKGIpLGY9WGEoKSxnPVRhKCksaD15KCk7Zy5kYXRhLnFpJiZMYyhcInFpXCIsZy5kYXRhLnFpfHxudWxsLEhjLmopO3ZhciBrPWcuZGF0YS5lYXdwfHxudWxsO2smJkxjKFwiZWF3cFwiLGssSGMuaik7KGg9ISFoLmRhdGEuc2JuKSYmT2MoXCJzYm5cIixoKTtoPSExO2lmKCFVZCgpKWZvcihrPTA7azxkLmxlbmd0aDtrKyspe3ZhciBsPWRba10uYWR0eXBlLHA9bCE9dm9pZCAwLHE9ZFtrXSxyPXEuZm47ci5zdGFydHNXaXRoKFwic2xhdmUtMFwiKSYmKHhoPSEwKTtyPXIrXCItXCIrZTt3aFtyXXx8KEMubG9nKHIsXCJwQUoyXCIpLHdoW3JdPVtdKTt3aFtyXS5wdXNoKHEpO3AmJihxPXFbbF0saD0hMCl9aWYoVWQoKSl7Yj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpO2I9dyhiLmNoaWxkcmVuKTtmb3IoZz1iLm5leHQoKTshZy5kb25lO2c9Yi5uZXh0KCkpe2c9Zy52YWx1ZTt2YXIgdD1nLmlkLnNwbGl0KFwiLVwiKTtpZighKHQubGVuZ3RoPFxuMikmJnQuc2hpZnQoKT09PVwic3NyYWRcIil7dC5wdXNoKGUudG9TdHJpbmcoKSk7dD10LmpvaW4oXCItXCIpO3ZhciB1PXBhcnNlSW50KGcuZ2V0QXR0cmlidXRlKFwiZGF0YS1udW0tYWRzXCIpLDEwKXx8MDtPYyh0K1wiLmhBXCIsdT4wKTtZYShmKSYmTmModCtcIi5hQ1wiLHUpO2FpKFtnXSx0KTtFaChhLHQpfX1iPU5oKCk7Yi5sZW5ndGg+MCYmKGc9XCJtYXN0ZXItXCIrZSx0PWIucmVkdWNlKGZ1bmN0aW9uKEQsSSl7cmV0dXJuIEQrcGFyc2VJbnQoSS5nZXRBdHRyaWJ1dGUoXCJkYXRhLW51bS1hZHNcIiksMTApfSwwKSxPYyhnK1wiLmhBXCIsdD4wKSxZYShmKSYmTmMoZytcIi5hQ1wiLHQpLGFpKGIsZyksRWgoYSxnKSl9ZWxzZSBmb3IodCBpbiB3aClpZihhPXdoW3RdLGQ9YS5sZW5ndGgsZD4wJiYhaCYmKGs9YVswXSxrLnR5cGU9PTMmJihkPWsucGxhcz9rLnBsYXMubGVuZ3RoOjApKSx4aCYmL15tYXN0ZXItXFxkKyQvLnRlc3QodCkpZD4wJiZDLmxvZyhhLmxlbmd0aCxcInBBSjNcIiksZGVsZXRlIHdoW3RdO1xuZWxzZSBpZihPYyh0K1wiLmhBXCIsZD4wKSxZYShmKSYmTmModCtcIi5hQ1wiLGQpLGQ8MSl7aWYoYT0kZCh0LGIpKXRyeXsodT1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKSkmJkVmKHVnKHtWYTpVYShnKX0pLHUpfWNhdGNoKEQpe31kZWxldGUgd2hbdF19Zm9yKHZhciB2IGluIHZoKWNbdl0mJk9jKHZoW3ZdLCEwKTsodj1jLnN0YXR1c0Vycm9yQ29kZSkmJk5jKFwicy5lQ1wiLHBhcnNlSW50KHYsMTApKTtPYyhcInMuYlwiLCEhYy5zdGF0dXNCbG9ja2VkKTtUYSgpLmRhdGEuaXNpJiZPYyhcInMuaVNJXCIsITApO1lhKGYpJiZPYyhcImFELlwiK2UsITApO01jKCl9Wmg9QihaaCxcInBBSlwiKTtmdW5jdGlvbiAkaChhKXt2YXIgYj1bXSxjO2ZvcihjIGluIHRoKXt2YXIgZD1hW2NdO2lmKGQpe2Zvcih2YXIgZT10aFtjXSxmPTA7ZjxkLmxlbmd0aDtmKyspZFtmXS50eXBlPWM9PVwiYWRfZGF0YVwiP3VoW2RbZl0uYWR0eXBlXTplO2I9Yi5jb25jYXQoZCl9fXJldHVybiBifVxuJGg9QigkaCxcImNBQVwiKTtmdW5jdGlvbiBiaShhKXtyZXR1cm4gbGgoYSl9Ymk9QihiaSxcImNQQVRPXCIpO2Z1bmN0aW9uIGNpKGEsYixjKXtTaCYmeihcIl9vcHRpbWl6ZUZyYW1lTWVhc3VyZW1lbnRcIil8fCh3aW5kb3cuc1BIPWZ1bmN0aW9uKCl7dGUoYSl9KTt3aW5kb3cubVBBQVNIPWZ1bmN0aW9uKCl7T2goYSxiLGMpfTtyZXR1cm4gT2goYSxiLGMpfWNpPUIoY2ksXCJzQ0ZDXCIpO2Z1bmN0aW9uIGRpKGEsYil7dmFyIGM9UGEoKSxkPWJpKGMuY2FwcyksZT1ZaChiLGEpO1poKGMsZSxkKTthPWNpKGUsZCxjKTskYSgpLmRhdGEuaG0mJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLGZ1bmN0aW9uKGYpe2Y9Zi5kYXRhLnNwbGl0KFwiOlwiKTtmLmxlbmd0aD09MiYmZlswXT09XCJvcmllbnRhdGlvblwiJiZ0ZShlKX0pO3JldHVybiBhfWRpPUIoZGksXCJyYWFcIik7ZnVuY3Rpb24gZWkoYSxiKXtmaSgpO3JldHVybiBkaShhLkxjLGIpfWVpPUIoZWksXCJpbml0XCIpO1xuZnVuY3Rpb24gTmgoKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIiksYj1hLnF1ZXJ5U2VsZWN0b3IoXCIjc3NyYWQtbWFzdGVyXCIpLGM9YS5xdWVyeVNlbGVjdG9yQWxsKCdbaWRePVwic3NyYWQtbWFzdGVyLVwiXScpO2E9W107YiYmYS5wdXNoKGIpO2I9dyhjKTtmb3IoYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpKGM9Yy52YWx1ZSkmJmEucHVzaChjKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIEZoKGEsYil7YT13KGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJhXCIpKTtmb3IodmFyIGM9YS5uZXh0KCksZD17fTshYy5kb25lO2Q9e1BjOnZvaWQgMCxVYzp2b2lkIDB9LGM9YS5uZXh0KCkpYz1jLnZhbHVlLGQuUGM9R2QoYy5ocmVmLGVuY29kZVVSSUNvbXBvbmVudChiW2IubmFtZV0ucmVzdWx0c1BhZ2VRdWVyeVBhcmFtKSksZC5VYz1HZChjLmhyZWYsZW5jb2RlVVJJQ29tcG9uZW50KFwiYWZkVG9rZW5cIikpLGQuUGMmJmQuVWM/KGMuc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsXCJfc2VsZlwiKSxjLmhyZWY9XCIjXCIsYy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixmdW5jdGlvbihlKXtyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpfSksR2YoYyxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtMYyhcInJzcmNcIix7cTplLlBjLHJzVG9rZW46ZS5VYyx1aWQ6RGF0ZS5ub3coKX0sSWMuaik7TWMoKX19KGQpKSk6Qy5sb2coXCJDb3VsZCBub3QgcGFyc2UgcXVlcnkgb3IgcnNUb2tlbiBmcm9tIHVybDogXCIrXG5jLmhyZWYsXCJyUkhXQ1wiKX1GaD1CKEZoLFwiclJIV0NcIik7ZnVuY3Rpb24gZmkoKXtMYyhcIml0XCIsZG9jdW1lbnQudGl0bGUsSGMuaik7TWMoKX1maT1CKGZpLFwic2V0VGl0bGVcIik7XG5mdW5jdGlvbiBRaChhKXtmdW5jdGlvbiBiKGQsZSl7cmV0dXJue3R5cGU6ZCx0b3VjaGVzOmV9fWZ1bmN0aW9uIGMoZCl7dmFyIGU9e30sZjtmb3IoZiBpbiBkKWYhPT1cInRhcmdldFwiJiYoZVtmXT1kW2ZdKTtyZXR1cm4gZX1hLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsZnVuY3Rpb24oZCl7dmFyIGU9W10uY29uY2F0KGthKGQudG91Y2hlcykpLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gYyhmKX0pO3dpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoYihkLnR5cGUsZSksXCIqXCIpfSk7YS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsZnVuY3Rpb24oZCl7dmFyIGU9W10uY29uY2F0KGthKGQudG91Y2hlcykpLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gYyhmKX0pO3dpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoYihkLnR5cGUsZSksXCIqXCIpfSk7YS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixmdW5jdGlvbihkKXt2YXIgZT1cbltdLmNvbmNhdChrYShkLnRvdWNoZXMpKS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGMoZil9KTt3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGIoZC50eXBlLGUpLFwiKlwiKX0pO2EuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoY2FuY2VsXCIsZnVuY3Rpb24oZCl7dmFyIGU9W10uY29uY2F0KGthKGQudG91Y2hlcykpLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gYyhmKX0pO3dpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoYihkLnR5cGUsZSksXCIqXCIpfSl9UWg9QihRaCxcInBURVRQUFwiKTtcbmZ1bmN0aW9uIEpoKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJtZXRhXCIpO2IuaHR0cEVxdWl2PVwib3JpZ2luLXRyaWFsXCI7Yi5jb250ZW50PVwiQTRUVkQwb0RvUlVuQlpnWURkTlZBUllJUFNtSmd5U0VzWWRQQU5ScnJnUTdRaXRQc090eTBlWklCc2psSEZGSndERlUvOFFtblJGMmtMNXhiNFJQOVE0QUFBQ0VleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMM2QzZHk1bmIyOW5iR1V1WTI5dE9qUTBNeUlzSW1abFlYUjFjbVVpT2lKUWNtbDJZV041VTJGdVpHSnZlRUZrYzBGUVNYTWlMQ0psZUhCcGNua2lPakUyT1RVeE5qYzVPVGtzSW1selUzVmlaRzl0WVdsdUlqcDBjblZsTENKcGMxUm9hWEprVUdGeWRIa2lPblJ5ZFdWOVwiO2EuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChiKX1KaD1CKEpoLFwiYU5DT1RcIik7XG5mdW5jdGlvbiBhaShhLGIpe3ZhciBjPW51bGw7YT13KGEpO2Zvcih2YXIgZD1hLm5leHQoKTshZC5kb25lO2Q9YS5uZXh0KCkpaWYoZD1kLnZhbHVlLGQuaGFzQXR0cmlidXRlKFwiZGF0YS1pcy1ldlwiKSYmKGQ9cGFyc2VJbnQoZC5nZXRBdHRyaWJ1dGUoXCJkYXRhLWlzLWV2XCIpLDEwKSxjPT09bnVsbHx8ZD5jKSljPWQ7YyE9PW51bGwmJk9jKGIrXCIuZVZcIixjPT09MSl9YWk9QihhaSxcInNJRVZGU1wiKTtmdW5jdGlvbiBFaChhLGIpe1widHBcImluIGEmJkxjKGIrXCIucHRwXCIsYS50cCxJYy5qKX1FaD1CKEVoLFwic1BUUFwiKTtmdW5jdGlvbiBnaShhLGIpe3RoaXMudWE9YTt0aGlzLkNiPWJ9Z2kucHJvdG90eXBlLko9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnVhLkooKStcIiAob25lIGJ5IGl0c2VsZiwgb3IgbXVsdGlwbGUgaW4gYW4gQXJyYXlcIjt0aGlzLkNiJiYoYSs9XCIgd2l0aCBmZXdlciB0aGFuIFwiKyh0aGlzLkNiKzEpK1wiIGVsZW1lbnRzXCIpO3JldHVybiBhK1wiKVwifTtnaS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXthPUFycmF5LmlzQXJyYXkoYSk/YTpbYV07aWYodGhpcy5DYiYmYS5sZW5ndGg+dGhpcy5DYilyZXR1cm4gbnVsbDtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD10aGlzLnVhLkYoYVtjXSk7aWYoZD09bnVsbClyZXR1cm4gbnVsbDtiLnB1c2goZCl9cmV0dXJuIGIubGVuZ3RoPT0wP251bGw6Yn07Z2kucHJvdG90eXBlLkw9ZnVuY3Rpb24oYSl7YT10aGlzLkYoYSk7cmV0dXJuIGE9PW51bGx8fGEubGVuZ3RoPDE/bnVsbDp0aGlzLnVhLkwoYVswXSl9O2Z1bmN0aW9uIGhpKCl7fWhpLnByb3RvdHlwZS5KPWZ1bmN0aW9uKCl7cmV0dXJuXCJ0cnVlLCBmYWxzZSwgMSwgMFwifTtoaS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXtyZXR1cm4gYT09PTB8fGE9PT0xP2E9PT0xOmE9PVwidHJ1ZVwifHxhPT1cIm9uXCJ8fGE9PTE/ITA6YT09XCJmYWxzZVwifHxhPT1cIm9mZlwifHxhPT09ITE/ITE6bnVsbH07aGkucHJvdG90eXBlLkw9ZnVuY3Rpb24oYSl7YT10aGlzLkYoYSk7cmV0dXJuIGE9PW51bGw/bnVsbDphPzE6MH07dmFyIE89bmV3IGhpO2Z1bmN0aW9uIFAoYSxiKXt0aGlzLlJhPU1hdGguY2VpbChhKTt0aGlzLlBhPU1hdGguZmxvb3IoYil9UC5wcm90b3R5cGUuSj1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJhK1wiIC0gXCIrdGhpcy5QYX07UC5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXthPXBhcnNlSW50KGEsMTApO3JldHVybiBhPj10aGlzLlJhJiZhPD10aGlzLlBhP2E6bnVsbH07UC5wcm90b3R5cGUuTD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5GKGEpfTtmdW5jdGlvbiBpaSgpe31paS5wcm90b3R5cGUuSj1mdW5jdGlvbigpe3JldHVyblwiQSBmdW5jdGlvblwifTtpaS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT1cImZ1bmN0aW9uXCI/ITA6ITF9O2lpLnByb3RvdHlwZS5MPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciBqaT1uZXcgaWk7dmFyIGtpPS8jKC4pKC4pKC4pLztmdW5jdGlvbiBsaShhKXtpZighbWkudGVzdChhKSl0aHJvdyBFcnJvcihcIidcIithK1wiJyBpcyBub3QgYSB2YWxpZCBoZXggY29sb3JcIik7YS5sZW5ndGg9PTQmJihhPWEucmVwbGFjZShraSxcIiMkMSQxJDIkMiQzJDNcIikpO3JldHVybiBhLnRvTG93ZXJDYXNlKCl9dmFyIG1pPS9eIyg/OlswLTlhLWZdezN9KXsxLDJ9JC9pLG5pPS9eKD86cmdiKT9cXCgoMHxbMS05XVxcZHswLDJ9KSxcXHM/KDB8WzEtOV1cXGR7MCwyfSksXFxzPygwfFsxLTldXFxkezAsMn0pXFwpJC9pO3ZhciBvaT17YmxhY2s6XCIjMDAwMDAwXCIsYmx1ZTpcIiMwMDAwZmZcIixkYXJrb3JhbmdlOlwiI2ZmOGMwMFwiLGRhcmtyZWQ6XCIjOGIwMDAwXCIsZnVjaHNpYTpcIiNmZjAwZmZcIixncmF5OlwiIzgwODA4MFwiLGdyZWVuOlwiIzAwODAwMFwiLGdyZXk6XCIjODA4MDgwXCIsb3JhbmdlOlwiI2ZmYTUwMFwiLHJlZDpcIiNmZjAwMDBcIixyb3lhbGJsdWU6XCIjNDE2OWUxXCIsc2t5Ymx1ZTpcIiM4N2NlZWJcIix3aGl0ZTpcIiNmZmZmZmZcIix3aGl0ZXNtb2tlOlwiI2Y1ZjVmNVwiLHllbGxvdzpcIiNmZmZmMDBcIn07ZnVuY3Rpb24gcGkoYSl7dGhpcy5tZD1hfXBpLnByb3RvdHlwZS5KPWZ1bmN0aW9uKCl7dmFyIGE9XCJBIGhleGFkZWNpbWFsIGNvbG9yIHN0cmluZ1wiO3RoaXMubWQmJihhKz1cIiBvciAndHJhbnNwYXJlbnQnXCIpO3JldHVybiBhfTtcbnBpLnByb3RvdHlwZS5GPWZ1bmN0aW9uKGEpe3ZhciBiPWFiKFwiXCIrYSkudG9Mb3dlckNhc2UoKTtpZih0aGlzLm1kJiZiPT1cInRyYW5zcGFyZW50XCIpcmV0dXJuXCJ0cmFuc3BhcmVudFwiO2lmKG9pW2JdKXJldHVybiBvaVtiXTthPW51bGw7dHJ5e2E9bGkoYi5jaGFyQXQoMCk9PVwiI1wiP2I6XCIjXCIrYil9Y2F0Y2gocCl7fWlmKCFhKXRyeXthOnt2YXIgYz1iLm1hdGNoKG5pKTtpZihjKXt2YXIgZD1OdW1iZXIoY1sxXSksZT1OdW1iZXIoY1syXSksZj1OdW1iZXIoY1szXSk7aWYoZD49MCYmZDw9MjU1JiZlPj0wJiZlPD0yNTUmJmY+PTAmJmY8PTI1NSl7dmFyIGc9W2QsZSxmXTticmVhayBhfX1nPVtdfWlmKCFnLmxlbmd0aCl0aHJvdyBFcnJvcihiK1wiIGlzIG5vdCBhIHZhbGlkIFJHQiBjb2xvclwiKTt2YXIgaD1nWzBdLGs9Z1sxXSxsPWdbMl07aD1OdW1iZXIoaCk7az1OdW1iZXIoayk7bD1OdW1iZXIobCk7aWYoaCE9KGgmMjU1KXx8ayE9KGsmMjU1KXx8bCE9KGwmMjU1KSl0aHJvdyBFcnJvcignXCIoJytcbmgrXCIsXCIraytcIixcIitsKydcIikgaXMgbm90IGEgdmFsaWQgUkdCIGNvbG9yJyk7az1oPDwxNnxrPDw4fGw7YT1oPDE2P1wiI1wiKygxNjc3NzIxNnxrKS50b1N0cmluZygxNikuc2xpY2UoMSk6XCIjXCIray50b1N0cmluZygxNil9Y2F0Y2gocCl7fXJldHVybiBhfTtwaS5wcm90b3R5cGUuTD1mdW5jdGlvbigpe3JldHVybiBudWxsfTt2YXIgcWk9bmV3IHBpKCExKSxyaT1uZXcgcGkoITApO2Z1bmN0aW9uIHNpKGEpe3RoaXMudWE9YX1zaS5wcm90b3R5cGUuSj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVhLkooKStcIiAob25lIG9yIG1vcmUsIGNvbW1hIHNlcGFyYXRlZClcIn07c2kucHJvdG90eXBlLkY9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT1cInN0cmluZ1wiKWE9W107ZWxzZXthPWEuc3BsaXQoXCIsXCIpO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKGFiKGFbY10pKTthPWJ9Yj1bXTtmb3IoYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD10aGlzLnVhLkYoYVtjXSk7ZCE9bnVsbCYmYi5wdXNoKGQpfXJldHVybiBiLmxlbmd0aD09MD9udWxsOmIuam9pbihcIixcIil9O3NpLnByb3RvdHlwZS5MPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O2Z1bmN0aW9uIHRpKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7dGhpcy5kZD1hO3RoaXMuZ2c9Yjt0aGlzLlpkPXt9O2ZvcihhPTA7YTx0aGlzLmRkLmxlbmd0aDthKyspYj10aGlzLmRkW2FdLHRoaXMuWmRbYi50b0xvd2VyQ2FzZSgpXT1ifXRpLnByb3RvdHlwZS5KPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGQuam9pbihcIiwgXCIpK1wiIChjYXNlIGluc2Vuc2l0aXZlKVwifTt0aS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXtpZighYXx8dHlwZW9mIGEhPT1cInN0cmluZ1wiKXJldHVybiBudWxsO2E9YS50b0xvd2VyQ2FzZSgpO2E9dGhpcy5nZ1thXXx8YTtyZXR1cm4gdGhpcy5aZFthXXx8bnVsbH07dGkucHJvdG90eXBlLkw9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07dmFyIHVpPS9eXFxkK3B4JC9pLHZpPS9eXFxkKyUkLyx3aT0vXlswLTldK1xcLlswLTldezEsfSQvO2Z1bmN0aW9uIHhpKCl7fXhpLnByb3RvdHlwZS5KPWZ1bmN0aW9uKCl7cmV0dXJuXCJXaWR0aCBpbiBweCAoZS5nLiAnNTAwcHgnKSBvciAnYXV0bydcIn07eGkucHJvdG90eXBlLkY9ZnVuY3Rpb24oYSl7dmFyIGI9eWkoYSk7cmV0dXJuIGIhPW51bGw/YitcInB4XCI6dHlwZW9mIGEhPT1cInN0cmluZ1wifHxhIT1cImF1dG9cIiYmIXZpLnRlc3QoYSk/bnVsbDphfTt4aS5wcm90b3R5cGUuTD1mdW5jdGlvbihhKXtyZXR1cm4geWkoYSl9O2Z1bmN0aW9uIHlpKGEpe3ZhciBiOyhiPXR5cGVvZiBhPT09XCJudW1iZXJcIil8fChiPXR5cGVvZiBhPT09XCJzdHJpbmdcIiYmKCEvW14wLTldLy50ZXN0KGEpfHx3aS50ZXN0KGEpfHx1aS50ZXN0KGEpKSk7cmV0dXJuIGI/KGE9cGFyc2VJbnQoYSwxMCksaXNOYU4oYSk/bnVsbDphKTpudWxsfXZhciB6aT1uZXcgeGk7ZnVuY3Rpb24gQWkoKXt9QWkucHJvdG90eXBlLko9ZnVuY3Rpb24oKXtyZXR1cm4gTy5KKCl9O0FpLnByb3RvdHlwZS5GPWZ1bmN0aW9uKGEpe3JldHVybiBPLkYoYSk/MTowfTtBaS5wcm90b3R5cGUuTD1mdW5jdGlvbihhKXtyZXR1cm4gTy5MKGEpfTt2YXIgQmk9bmV3IEFpO2Z1bmN0aW9uIENpKCl7fUNpLnByb3RvdHlwZS5KPWZ1bmN0aW9uKCl7cmV0dXJuXCJBIHN0cmluZ1wifTtDaS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT1cInN0cmluZ1wiP2E6bnVsbH07Q2kucHJvdG90eXBlLkw9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07dmFyIERpPW5ldyBDaTt2YXIgRWk9L14oWzAtOV17MTB9fFswLTlhLXpBLVpdezMyfSkkLztmdW5jdGlvbiBGaSgpe31GaS5wcm90b3R5cGUuTD1mdW5jdGlvbigpe3JldHVybiBudWxsfTtGaS5wcm90b3R5cGUuSj1mdW5jdGlvbigpe3JldHVyblwiQSAxMCBkaWdpdCBzdHlsZSBJRFwifTtGaS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXtyZXR1cm4odHlwZW9mIGE9PT1cInN0cmluZ1wifHx0eXBlb2YgYT09PVwibnVtYmVyXCImJiFOdW1iZXIuaXNOYU4oYSkpJiZFaS50ZXN0KGEpP1wiXCIrYTpudWxsfTtmdW5jdGlvbiBHaSgpe31HaS5wcm90b3R5cGUuSj1mdW5jdGlvbigpe3JldHVyblwiQW4gaHR0cChzKSB1cmxcIn07R2kucHJvdG90eXBlLkY9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09XCJzdHJpbmdcIiYmSGkudGVzdChhKT9hOm51bGx9O0dpLnByb3RvdHlwZS5MPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciBIaT0vXigoaHR0cHM/KTopP1xcL1xcLyhbYS16QS1aMC05fiFAI1xcJCZcXCpcXChcXClfXFwrXFwtPTo7JyxcXC5cXD9cXC8lXSopJC8sSWk9bmV3IEdpO3ZhciBKaT1uZXcgUCgyLDQwMCksS2k9bmV3IFAoMCw0MDApLExpPW5ldyBQKDgsNTApLE1pPW5ldyBzaShuZXcgdGkoXCJ2ZXJkYW5hO2FyaWFsO3RhaG9tYTt0aW1lcyBuZXcgcm9tYW47Z2VvcmdpYTt0cmVidWNoZXQgbXM7bWVpcnlvO21zIGdvdGhpYztyb2JvdG87aGVsdmV0aWNhIG5ldWVcIi5zcGxpdChcIjtcIikpKSxOaT1uZXcgc2kobmV3IHRpKFtcInJpZ2h0XCIsXCJsZWZ0XCIsXCJ0b3BcIixcImJvdHRvbVwiXSkpLFE9e30sT2k9KFEuYWRzYWZlPXtnOm5ldyB0aShbXCJvZmZcIixcImxvd1wiLFwibWVkaXVtXCIsXCJoaWdoXCIsXCJhZHVsdG9ubHlcIl0se21lZDpcIm1lZGl1bVwifSksSWM6ITB9LFEuYWR0ZXN0PXtnOk8sSWM6ITB9LFEuYWRUZXN0PXtnOk8sSWM6ITB9LFEuY2xpY2t0cmFja1VybD17ZzpuZXcgZ2koSWkpfSxRLmNvbnRhaW5lcj17ZzpEaX0sUS5zdHlsZUlkPXtnOm5ldyBGaX0sUS5wZXJzb25hbGl6ZWRBZHM9e2c6T30sUS5wZXJzb25hbGlzZWRBZHM9e2c6T30sUS5hZHBhZ2U9e30sUS5hZFBhZ2U9XG57fSxRLmFkc1Jlc3BvbnNlQ2FsbGJhY2s9e30sUS5iZ3Jlc3BvbnNlPXt9LFEuY2hhbm5lbD17fSxRLmNtcFNka0lkPXt9LFEuY29udGFpbmVyPXt9LFEuY2hhdGJvdFVzZXJQcm9tcHQ9e2c6RGl9LFEuY3JlZj17fSxRLmN4PXt9LFEuZGViPXt9LFEuZGVidWc9e30sUS5kb21haW5OYW1lPXt9LFEuZT17fSxRLmV4cGZsYWdzPXt9LFEuZmFrZWFkcz17fSxRLmZjYXA9e30sUS5mZXhwPXt9LFEuZm9yY2VFeD17fSxRLmdjc2M9e30sUS5nZHByQXBwbGllcz17fSxRLmlmcmFtZUhlaWdodENhbGxiYWNrPXt9LFEuaXNEYXJrTW9kZT17ZzpPfSxRLmpzU3JjPXt9LFEubWFzdGVyTnVtYmVyPXt9LFEubXM9e30sUS5ub0FkTG9hZGVkQ2FsbGJhY2s9e30sUS5udW1iZXI9e30sUS5wcm9wZXJ0eUNvZGU9e30sUS5wdWJJZD17fSxRLnF1ZXJ5PXt9LFEucm9sZT17fSxRLnJvd2tleVYyPXt9LFEuc2JzaWduYWxzPXt9LFEuc2V0dGluZ3NJZD17fSxRLnNsYXZlTnVtYmVyPXt9LFEuc291cmNlPXt9LFxuUS5zb3VyY2VfaXA9e30sUS50Y1N0cmluZz17fSxRLnVpZGViPXt9LFEudXNlckFnZW50PXt9LFEudXNQcml2YWN5PXt9LFEudXVsZD17fSxRLnNjdD17fSxRLnNjX3N0YXR1cz17fSxRLmFkTG9hZGVkQ2FsbGJhY2s9e2c6aml9LFEuYWRSZXF1ZXN0VXJsUGFyYW1zPXtnOkRpfSxRLmhsPXtnOkRpfSxRLmNwcD17fSxRLmFkZmlsaWF0ZVdwPXtnOkRpfSxRLmhvdHN3YXBzPXt9LFEuc2hvcHBpbmdBZHNJbkNhcm91c2VsPXtnOk99LFEuaG9zdFB1YklkPXt9LFEuaG9zdENoYW5uZWw9e30sUS5pdnQ9e2c6Qml9LFEuY2xpZW50X2dkcHJBcHBsaWVzPXt9LFEpLFI9e30sUGk9KFIuY29sb3JUZXh0PXtnOnFpLEg6ITAsRDohMH0sUi5jb2xvclRpdGxlTGluaz17ZzpxaSxIOiEwLEQ6ITB9LFIuY29sb3JCb3JkZXI9e2c6cWksSDohMCxEOiEwfSxSLmNvbG9yQXR0cmlidXRpb249e2c6cWksRDohMH0sUi5mb250RmFtaWx5PXtnOk1pLEg6ITAsRDohMH0sUi5mb250RmFtaWx5QXR0cmlidXRpb249XG57ZzpNaSxEOiEwfSxSLnRpdGxlQm9sZD17ZzpPLEg6ITAsRDohMH0sUi5yb2xsb3ZlckxpbmtCb2xkPXtnOk8sSDohMCxEOiEwfSxSLnJvbGxvdmVyTGlua0NvbG9yPXtnOnFpLEg6ITAsRDohMH0sUi5yb2xsb3ZlckxpbmtCYWNrZ3JvdW5kQ29sb3I9e2c6cWksSDohMCxEOiEwfSxSLnJvbGxvdmVyTGlua1VuZGVybGluZT17ZzpPLEg6ITAsRDohMH0sUi5ub1RpdGxlVW5kZXJsaW5lPXtnOk8sRDohMH0sUi5hZEJvcmRlclNlbGVjdGlvbnM9e2c6TmksRDohMH0sUi5ib3JkZXJTZWxlY3Rpb25zPXtnOk5pLEQ6ITB9LFIucG9zaXRpb249e2c6bmV3IHRpKFtcInRvcFwiLFwicmlnaHRcIixcImJvdHRvbVwiXSl9LFIuY3NlR29vZ2xlSG9zdGluZz17ZzpuZXcgdGkoW1wiZnVsbFwiLFwiaWZyYW1lXCIsXCJwYXJ0bmVyXCJdKX0sUi5hZEljb25Vcmw9e2c6SWksRDohMH0sUi5hZEljb25XaWR0aD17ZzpKaSxEOiEwfSxSLmFkSWNvbkhlaWdodD17ZzpKaSxEOiEwfSxSLmFkSWNvblNwYWNpbmdBYm92ZT17ZzpLaSxcbkg6ITAsRDohMH0sUi5hZEljb25TcGFjaW5nQmVmb3JlPXtnOktpLEQ6ITB9LFIuYWRJY29uU3BhY2luZ0FmdGVyPXtnOktpLEQ6ITB9LFIuYWRJY29uU3BhY2luZ0JlbG93PXtnOktpLEQ6ITB9LFIubGluZUhlaWdodFRpdGxlPXtnOkxpLEQ6ITB9LFIud2FpdEZvckFkcz17ZzpPfSxSLmhlaWdodENvbnN0cmFpbmVkPXtnOk8sRGE6XCJoY1wifSxSLndpZHRoPXtnOnppLERhOlwid2lcIixIOiEwfSxSLmF0dHJpYnV0aW9uU3BhY2luZ0JlbG93PXtnOm5ldyBQKDAsNDApLEQ6ITB9LFIucmVzdWx0c1BhZ2VCYXNlVXJsPXtnOklpfSxSLmNvbHVtbnM9e2c6bmV3IFAoMSwyMCksYmE6MX0sUi5jb2x1bW5TcGFjaW5nPXtnOm5ldyBQKDIsMTAwKX0sUi5ob3Jpem9udGFsRmxvdz17ZzpPfSxSLmhvcml6b250YWxBbGlnbm1lbnQ9e2c6bmV3IHRpKFtcImNlbnRlclwiLFwibGVmdFwiLFwicmlnaHRcIl0pLGJhOlwibGVmdFwifSxSLnJlc3VsdHNQYWdlUXVlcnlQYXJhbT17ZzpEaSxiYTpcInF1ZXJ5XCJ9LFIucnVybE92ZXJyaWRlPVxue2c6RGl9LFIudGVybXM9e2c6RGl9LFIua3c9e2c6RGl9LFIucmVmZXJyZXJBZENyZWF0aXZlPXtnOkRpfSxSLnJlbGF0ZWRTZWFyY2hSZXN1bHRDbGlja2VkQ2FsbGJhY2s9e2c6aml9LFIucmVsYXRlZFNlYXJjaFVzZVJlc3VsdENhbGxiYWNrPXtnOk99LFIuYWRzdHlsZT17fSxSLmFmZFRva2VuPXt9LFIuYXR0bWFzPXt9LFIuZ2NzPXt9LFIuZ2NzZV9uYz17fSxSLmdsPXt9LFIuZ2xwPXt9LFIuZ209e30sUi5ncj17fSxSLmllPXt9LFIubWF4VGVybUxlbmd0aD17fSxSLm1heFRvcD17fSxSLm1pblRvcD17fSxSLm51bVJlcGVhdGVkPXt9LFIub2U9e30sUi5xdWVyeUNvbnRleHQ9e30sUi5xdWVyeUxpbms9e30sUi5yZWZlcnJlcj17fSxSLnJlbGF0ZWRTZWFyY2hlcz17fSxSLnZpc2libGVVcmxzQ2FsbGJhY2s9e30sUik7ZnVuY3Rpb24gUWkoKXt9UWkucHJvdG90eXBlLko9ZnVuY3Rpb24oKXtyZXR1cm5cIkEgd2ViIGZvbnRcIn07UWkucHJvdG90eXBlLkY9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhIT09XCJzdHJpbmdcInx8L1teYS16QS1aMC05IF0vLnRlc3QoYSk/bnVsbDphfTtRaS5wcm90b3R5cGUuTD1mdW5jdGlvbigpe3JldHVybiBudWxsfTt2YXIgUmk9bmV3IFFpO3ZhciBTaT1uZXcgUCgxMCxTYyksVGk9e30sVWk9KFRpLnR5cGU9e2c6bmV3IHRpKFtcImFkc1wiLFwidGV4dGFkc1wiLFwicmVsYXRlZHNlYXJjaFwiLFwic2VhcmNoYm94XCIsXCJkeW5hbWljXCJdKX0sVGkubGlua1RhcmdldD17ZzpuZXcgdGkoW1wiX3RvcFwiLFwiX2JsYW5rXCJdKSxiYTpcIl9ibGFua1wiLEg6ITB9LFRpLnZlcnRpY2FsU3BhY2luZz17ZzpuZXcgUCgyLDI0KX0sVGkuZm9udFNpemVUaXRsZT17ZzpLZCxIOiEwLGJhOjE4fSxUaS5mb250U2l6ZUF0dHJpYnV0aW9uPXtnOktkLEg6ITAsYmE6MTN9LFRpKSxTPXt9LFZpPShTLmNvbG9yQWRTZXBhcmF0b3I9e2c6cWksRDohMH0sUy5yb2xsb3ZlckFkQmFja2dyb3VuZENvbG9yPXtnOnJpLEg6ITB9LFMuY29sb3JCYWNrZ3JvdW5kPXtnOnJpLEg6ITB9LFMuaGlkZVNlYXJjaElucHV0Qm9yZGVyPXtnOk99LFMuaGlkZVNlYXJjaEJ1dHRvbkJvcmRlcj17ZzpPfSxTLmNvbG9yU2VhcmNoQm94PXtnOnJpfSxTLmNvbG9yU2VhcmNoQnV0dG9uPXtnOnJpfSxcblMuY29sb3JTZWFyY2hCdXR0b25UZXh0PXtnOnJpfSxTLndpZHRoU2VhcmNoSW5wdXQ9e2c6bmV3IFAoMSwxRTMpLEg6ITB9LFMud2lkdGhTZWFyY2hCdXR0b249e2c6bmV3IFAoMTAwLDFFMyksSDohMH0sUy5mb250U2l6ZVNlYXJjaElucHV0PXtnOlNpfSxTLmZvbnRTaXplU2VhcmNoQnV0dG9uPXtnOlNpfSxTLmhlaWdodFNlYXJjaElucHV0PXtnOm5ldyBQKDEsNTApfSxTLmhlaWdodFNlYXJjaEJ1dHRvbj17ZzpuZXcgUCgxLDUwKX0sUy5jb2xvclNlYXJjaEJ1dHRvbkJvcmRlcj17ZzpyaX0sUy53aWR0aFNlYXJjaEJ1dHRvbkJvcmRlcj17ZzpuZXcgUCgwLDUpfSxTLnJhZGl1c1NlYXJjaElucHV0Qm9yZGVyPXtnOm5ldyBQKDAsMjApfSxTLmF0dHJpYnV0aW9uQm9sZD17ZzpPfSxTLmF0dHJpYnV0aW9uVXBwZXJjYXNlPXtnOk99LFMudGl0bGVVcHBlcmNhc2U9e2c6T30sUy53ZWJGb250RmFtaWx5PXtnOlJpfSxTLndlYkZvbnRGYW1pbHlBdHRyaWJ1dGlvbj17ZzpSaX0sUy51aU9wdGltaXplPVxue2c6T30sUy51aV9vcHRpbWl6ZT17ZzpPfSxTLmFkQm9yZGVyV2lkdGg9e2c6bmV3IFAoMCwyMCl9LFMucmVsYXRlZFNlYXJjaFRhcmdldGluZz17ZzpuZXcgdGkoQ2IoTGR8fFtdKSl9LFMuZG9tYWluUmVnaXN0cmFudD17fSxTLmRvbWFpblNlc3Npb25Ub2tlbj17fSxTLmxhbmd1YWdlQ29kZT17fSxTLnBhZ2VMb2FkZWRDYWxsYmFjaz17fSxTLnNpemU9e30sUy5pZ25vcmVkUGFnZVBhcmFtcz17fSxTKSxXaT17fTtQYyhXaSxPaSk7UGMoV2ksUGkpO1BjKFdpLFVpKTtQYyhXaSxWaSk7UWMoV2ksW1tcImNvbnRhaW5lclwiXSxcInJvbGVcIl0pO3ZhciBYaT17TGM6V2l9O3ZhciBZaT17fSxaaT0oWWkucm9sbG92ZXJBZEJhY2tncm91bmRDb2xvcj17ZzpxaSxIOiEwLEQ6ITB9LFlpLmNvbG9yQmFja2dyb3VuZD17ZzpxaSxIOiEwLEQ6ITB9LFlpLnZlcnRpY2FsU3BhY2luZz17ZzpuZXcgUCgyLDM0KX0sWWkudHlwZT17ZzpuZXcgdGkoW1wiYWRzXCIsXCJyZWxhdGVkc2VhcmNoXCJdKX0sWWkuZm9udFNpemVUaXRsZT17ZzpLZCxIOiEwLEQ6ITB9LFlpLmZvbnRTaXplQXR0cmlidXRpb249e2c6S2QsSDohMCxEOiEwfSxZaS5saW5rVGFyZ2V0PXtnOm5ldyB0aShbXCJfdG9wXCIsXCJfYmxhbmtcIl0pLGJhOlwiX3RvcFwiLEg6ITB9LFlpKSwkaT17fTtQYygkaSxPaSk7UGMoJGksUGkpO1BjKCRpLFppKTtRYygkaSxbXCJxdWVyeVwiLFtcImNvbnRhaW5lclwiXSxcInJvbGVcIl0pO3ZhciBhaj17fSxiaj0oYWouaGVpZ2h0PXtnOm5ldyBQKDAsMUU0KSxEYTpcImhlXCJ9LGFqLm1lcmNoYW50RmlsdGVyPXt9LGFqLnByaWNlQ3VycmVuY3k9e30sYWoucHJpY2VNYXg9e30sYWoucHJpY2VNaW49e30sYWoucHJvbW90ZWQ9e30sYWoudGVzdGdsPXt9LGFqLnRleHRDb2xvclBhbGV0dGU9e30sYWoudGhlbWU9e30sYWopLGNqPXt9LGRqPShjai53aWR0aD17ZzpuZXcgUCgwLDFFNCksRGE6XCJ3aVwifSxjai5saW5rVGFyZ2V0PXtnOm5ldyB0aShbXCJfdG9wXCIsXCJfYmxhbmtcIl0pLGJhOlwiX3RvcFwiLEg6ITB9LGNqLnR5cGU9e2c6bmV3IHRpKFtcInBsYXNcIl0pfSxjaiksZWo9e307UGMoZWosZGopO1BjKGVqLE9pKTtQYyhlaixiaik7UWMoZWosW1tcImNvbnRhaW5lclwiXSxbXCJoZWlnaHRcIl0sW1wid2lkdGhcIl0sXCJxdWVyeVwiLFwicm9sZVwiXSk7dmFyIGZqPXtMYzplaixoYjpcInBsYXNcIn07ZnVuY3Rpb24gZ2ooKXt2YXIgYT13aW5kb3cuQUZTX0FEX1JFUVVFU1RfUkVUVVJOX1RJTUVfO2EmJkxjKFwiaXJ0XCIsYStcInxcIitEYXRlLm5vdygpLEhjLmopO2E9WGgod2luZG93Lm5hbWUpO3N3aXRjaCgoYVthLm5hbWVdfHx7fSkudHlwZSl7Y2FzZSBcInBsYXNcIjplaShmaixhKTticmVhaztkZWZhdWx0OmVpKFhpLGEpfXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0cnl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJyZXNwb25zZV9kZWJ1Z19vdXRwdXRcIik7aWYoYil7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJhZEJsb2NrXCIpO2MmJihiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYiksYy5jaGlsZE5vZGVzLmxlbmd0aD09MD9jLmFwcGVuZENoaWxkKGIpOmMuaW5zZXJ0QmVmb3JlKGIsYy5jaGlsZE5vZGVzWzBdKSl9fWNhdGNoKGQpe319LDApfXdpbmRvdy5JU19HT09HTEVfQUZTX0lGUkFNRV8mJmdqKCk7ZnVuY3Rpb24gaGooYSxiKXtiPWI9PT12b2lkIDA/e306Yjt0aGlzLkthPWE7dGhpcy5xYT1udWxsO3RoaXMuS2Q9e307dGhpcy55ZT0wO3RoaXMuVmI9bnVsbDt2YXIgYzt0aGlzLnRpbWVvdXRNcz0oYz1iLnRpbWVvdXRNcykhPW51bGw/Yzo1MDB9cmEoaGosRmYpO2Z1bmN0aW9uIGlqKGEpe3ZhciBiO3JldHVybiB0eXBlb2YoKGI9YS5LYSk9PW51bGw/dm9pZCAwOmIuX191c3BhcGkpPT09XCJmdW5jdGlvblwifHxhLklhKCkhPW51bGx9ZnVuY3Rpb24gamooYSxiKXt2YXIgYz17fTtpZihpaihhKSl7dmFyIGQ9bGQoZnVuY3Rpb24oKXtiKGMpfSk7a2ooYSxmdW5jdGlvbihlLGYpe2YmJihjPWUpO2QoKX0pO3NldFRpbWVvdXQoZCxhLnRpbWVvdXRNcyl9ZWxzZSBiKGMpfVxuZnVuY3Rpb24ga2ooYSxiKXt2YXIgYzt0eXBlb2YoKGM9YS5LYSk9PW51bGw/dm9pZCAwOmMuX191c3BhcGkpPT09XCJmdW5jdGlvblwiPyhhPWEuS2EuX191c3BhcGksYShcImdldFVTUERhdGFcIiwxLGIpKTphLklhKCkmJihsaihhKSxjPSsrYS55ZSxhLktkW2NdPWIsYS5xYSYmKGI9e30sYS5xYS5wb3N0TWVzc2FnZSgoYi5fX3VzcGFwaUNhbGw9e2NvbW1hbmQ6XCJnZXRVU1BEYXRhXCIsdmVyc2lvbjoxLGNhbGxJZDpjfSxiKSxcIipcIikpKX1oai5wcm90b3R5cGUuSWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xYT90aGlzLnFhOnRoaXMucWE9ZGgodGhpcy5LYSxcIl9fdXNwYXBpTG9jYXRvclwiKX07XG5mdW5jdGlvbiBsaihhKXthLlZifHwoYS5WYj1mdW5jdGlvbihiKXt0cnl7dmFyIGM9KHR5cGVvZiBiLmRhdGE9PT1cInN0cmluZ1wiP0pTT04ucGFyc2UoYi5kYXRhKTpiLmRhdGEpLl9fdXNwYXBpUmV0dXJuO3ZhciBkOyhkPWEuS2QpPT1udWxsfHxkW2MuY2FsbElkXShjLnJldHVyblZhbHVlLGMuc3VjY2Vzcyl9Y2F0Y2goZSl7fX0sYmgoYS5LYSxcIm1lc3NhZ2VcIixhLlZiKSl9O3ZhciBuaj1FKGZ1bmN0aW9uKCl7dmFyIGE9VmIoXCJ1YXRtXCIpLGI9YSE9bnVsbD9hOjU7YT1uZXcgaGood2luZG93KTtyZXR1cm4gaWooYSk/KGE9bWooYSksUHJvbWlzZS5yYWNlKFthLGVlKGIsNCldKS50aGVuKGZ1bmN0aW9uKGMpe3JldHVybiBjPT09Mj97SWI6ITEsZ2E6Y306Yz09PTQ/KGNvbnNvbGUud2FybihcIlJlYWNoZWRcIitiK1wibXMgdGltZW91dCBhbmQgYmVmb3JlIFVTUCByZXNwb25zZSB3YXMgcmVjZWl2ZWQuXCIpLHtJYjohMSxnYTpjfSk6Yz09PTY/e0liOiExLGdhOmN9OntJYjohMCxnYTpjfX0pKTpudWxsfSxcImdDQURcIik7XG5mdW5jdGlvbiBtaihhKXtmdW5jdGlvbiBiKGQpe2QmJnR5cGVvZiBkLnVzcFN0cmluZz09PVwic3RyaW5nXCI/Yy5yZXNvbHZlKG9qKGQudXNwU3RyaW5nKSk6Yy5yZXNvbHZlKDMpfXZhciBjPWNlKCk7dHJ5e2pqKGEsYil9Y2F0Y2goZCl7Yy5yZXNvbHZlKDYpLGNvbnNvbGUud2FybihcIlVTUCByZXR1cm5lZCBlcnJvciBzdGF0dXM6IFwiK2QpfXJldHVybiBjLnByb21pc2V9ZnVuY3Rpb24gb2ooYSl7aWYoL15bMS05XVtueU5ZXFwtXVtueU5ZXVtueU5ZXFwtXSQvLnRlc3QoYSkpe3ZhciBiPWEuY2hhckF0KDIpO2lmKC9eWXx5Ly50ZXN0KGIpKXJldHVybiAyO2lmKC9eTnxuLy50ZXN0KGIpKXJldHVybiAxfWlmKGE9PT1cIjEtLS1cIilyZXR1cm4gNTtiPVwiMzpcIithO2NvbnNvbGUud2FybihcIkNDUEEgVVMgUHJpdmFjeSBzdHJpbmcgXCIrYStcIiBpcyBtYWxmb3JtZWQgYW5kIHBlcnNvbmFsaXphdGlvbiBpbnRlbnQgd2FzIHVuYWJsZSB0byBiZSBmZXRjaGVkLlwiKTtyZXR1cm4gYn07ZnVuY3Rpb24gcGooKXt9cGoucHJvdG90eXBlLnViPWZ1bmN0aW9uKCl7cmV0dXJuIFpiKCl9O3BqLnByb3RvdHlwZS5DZD1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IGNjKHRoaXMudWIoYSkrXCIvYWZzL2Fkc1wiKX07cGoucHJvdG90eXBlLkhjPWZ1bmN0aW9uKCl7cmV0dXJuITF9O2Z1bmN0aW9uIHFqKGEsYixjLGQpe3RoaXMuYmU9YTt0aGlzLmNjPWI7dGhpcy5mYj1jO3RoaXMuSWQ9ZDt0aGlzLlJiPSExO3RoaXMudWM9MH1mdW5jdGlvbiByaihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/e306ZDthLmJlLS07YS5SYj1hLlJifHxiO2M+YS51YyYmKGEudWM9Yyk7aWYoYS5iZT09MClpZihhLlJiKXtpZihhLmZiKXtiPXZvaWQgMDtzd2l0Y2goYS51Yyl7Y2FzZSAyOmI9ITA7YnJlYWs7Y2FzZSAxOmI9ITF9dHJ5e2EuZmIoYS5jYywhMCxiLGQpfWNhdGNoKGUpe319fWVsc2V7aWYoYS5JZCl0cnl7YS5JZChhLmNjLCExLHZvaWQgMCxkKX1jYXRjaChlKXt9aWYoYS5mYil0cnl7YS5mYihhLmNjLCExLHZvaWQgMCxkKX1jYXRjaChlKXt9fX07ZnVuY3Rpb24gc2ooKXtpZih0eXBlb2YgeC5leHBlcmltZW50SWRfPT09XCJudW1iZXJcIilyZXR1cm4geC5leHBlcmltZW50SWRfO3ZhciBhPXR5cGVvZiB0ZXN0aW5nRGF0YV89PT1cIm9iamVjdFwiP3Rlc3RpbmdEYXRhXy5leHBlcmltZW50TW9kOlZiKFwicnNtXCIpfHwwO3guZXhwZXJpbWVudElkXz0wO2lmKGE9PT0wKXJldHVybiB4LmV4cGVyaW1lbnRJZF87dmFyIGI9dHlwZW9mIHRlc3RpbmdEYXRhXz09PVwib2JqZWN0XCI/dGVzdGluZ0RhdGFfLnRpbWVJZDoobmV3IERhdGUpLmdldFRpbWUoKS50b1N0cmluZygpLGM9dHlwZW9mIHRlc3RpbmdEYXRhXz09PVwib2JqZWN0XCI/dGVzdGluZ0RhdGFfLmxheWVySWQ6MTczMDEyNzMsZD0zNzM1OTI4NTU5XmM7Y149MTEwMzU0Nzk5MTtmb3IodmFyIGU9MCxmO2U8Yi5sZW5ndGg7ZSsrKWY9Yi5jaGFyQ29kZUF0KGUpLGQ9TWF0aC5pbXVsKGReZiwyNjU0NDM1NzYxKSxjPU1hdGguaW11bChjXmYsMTU5NzMzNDY3Nyk7ZD1NYXRoLmltdWwoZF5kPj4+XG4xNiwyMjQ2ODIyNTA3KTtkXj1NYXRoLmltdWwoY15jPj4+MTMsMzI2NjQ4OTkwOSk7Yz1NYXRoLmltdWwoY15jPj4+MTYsMjI0NjgyMjUwNyk7Y149TWF0aC5pbXVsKGReZD4+PjEzLDMyNjY0ODk5MDkpO2I9KDQyOTQ5NjcyOTYqKDIwOTcxNTEmYykrKGQ+Pj4wKSklMUUzO2I8YT94LmV4cGVyaW1lbnRJZF89dHlwZW9mIHRlc3RpbmdEYXRhXz09PVwib2JqZWN0XCI/dGVzdGluZ0RhdGFfLmV4cGVyaW1lbnRJZDoxNzMwMTM2ODpiPj0xRTMtYSYmKHguZXhwZXJpbWVudElkXz10eXBlb2YgdGVzdGluZ0RhdGFfPT09XCJvYmplY3RcIj90ZXN0aW5nRGF0YV8uY29udHJvbElkOjE3MzAxMzY3KTtyZXR1cm4geC5leHBlcmltZW50SWRffTt2YXIgdGo9XCJiZjAwIGJlODEgYmU3MCBiZTEwIGJlMDcgYmUwMyBiZTAxIGJkZmQgYmRmOSBiZGY3IGJkZjUgYmRmMyBiZGYxIGJkZjAgYmRlZiBiZGVkIGJkZWMgYmRlOSBiZGU3IGJkZTUgYmRlNCBiZGRkIGJkZDAgYmRjNyBiZGM1IGJkYzMgYmRiZiBiZGJkIGJkYmMgYmRiYiBiZGI3IGJkYjUgYmRiMyBiZGIxIGJkYWYgYmRhZCBiZGFjIGJkYTUgYmQ5NyBiZDkzIGJkOTAgYmQ4ZCBiZDhiIGJkMDAgYmM3YyBiYzc5IGJjNzQgYmM1MCBiYzRmIGJjNGQgYmM0YyBiYzRiIGJjNDkgYmM0MCBiYzJiIGJiMDAgYjQwMCBiMDAwIGFjMDAgYWFjMCBhYTlmIGFhOWQgYWE4NCBhYTgzIGFhODEgYWE3ZCBhYTdjIGFhN2IgYWE3OSBhYTc3IGFhNzMgYWE3MSBhYTcwIGFhNmYgYWE2ZCBhYTY1IGE5ZDcgYTlkNSBhOWQzIGE5ZDEgYTlkMCBhOWNkIGE4MmYgYTgyZCBhODJjIGE4MmIgYTgyOSA5Y2Q1IDljZDMgOWNjZCA5Y2NiIDljYzAgOWNiNSA5Y2IzIDljYjAgOWNhZCA5Y2FiIDljMDAgOWI1NSA5YjU0IDliNGMgOWIzNSA5YjMzIDliMmQgOWIyYiA5YjAwIDlhZDUgOWFkMyA5YWNkIDlhY2MgOWFjYiA5YWMwIDlhYjUgOWFiNCA5YWIzIDlhYWQgOWFhYiA5OTQ3IDk2YzAgOTZiZCA5NmJiIDk2YjEgOTZhZiA5NmFkIDk2YWIgOTZhOSA5NmE3IDk2YTUgOTZhNCA5NmEzIDk2YTEgOTY5ZiA5NjlkIDk2OWMgOTY5YiA5Njk5IDk2OTcgOTY5MSA5NjhmIDk2ODkgOTY4NyA5Njg1IDk2ODMgOTY4MSA5NjdmIDk2N2QgOTY3YyA5NjdiIDk2NzkgOTY3NyA5Njc1IDk2NzMgOTY3MSA5NjZmIDk2NmQgOTY2YiA5NjY5IDk2NjcgOTY2NSA5NjY0IDk2NjMgOTY2MSA5NjQzIDk2NDEgOTY0MCA5NjNmIDk2M2QgOTYzYyA5NjI0IDk2MjMgOTYyMSA5NjFmIDk2MWQgOTYxYyA5NjFiIDk2MTkgOTYxNyA5NjE1IDk2MTMgOTYxMSA5NjEwIDk2MGYgOTYwZCA5NjBiIDk2MDkgOTYwNyA5NjA1IDk2MDQgOTVmZCA5NWZjIDk1ZmIgOTVmOSA5NWY3IDk1ZjUgOTVmNCA5NWYzIDk1ZjEgOTVlZiA5NWVkIDk1ZWIgOTVlOSA5NWU3IDk1ZTUgOTVlMyA5NWUxIDk1ZGYgOTVkZCA5NWRjIDk1ZGIgOTVkOSA5NWQ3IDk1ZDUgOTVkNCA5NWQzIDk1ZDEgOTVjZiA5NWNkIDk1Y2MgOTVjYiA5NWM5IDk1YzcgOTVjNSA5NWM0IDk1YzMgOTVjMSA5NWMwIDk1YmYgOTViZCA5NWJiIDk1YjkgOTViNyA5NWI1IDk1YjQgOTViMyA5NWIxIDk1YjAgOTVhZiA5NWFkIDk1YWIgOTVhOSA5NWE3IDk1YTUgOTVhMyA5NWExIDk1OWYgOTU5ZCA5NTljIDk1OWIgOTU5OSA5NTk3IDk1OTUgOTU5NCA5NTkzIDk1OTEgOTU4ZiA5NThkIDk1ODUgOTU4NCA5NTc1IDk1NzQgOTU3MyA5NTQwIDk1MzAgOTUyNyA5NTI0IDk1MjMgOTUyMSA5NTFmIDk1MWQgOTUxYyA5NTFiIDk1MTkgOTUxNyA5NTEzIDk1MTEgOTUwZiA5NTBkIDk1MGIgOTUwOSA5NTA3IDk1MDUgOTUwNCA5NTAzIDk1MDEgOTRmZiA5NGZkIDk0ZmIgOTRmOSA5NGY3IDk0ZjUgOTRmNCA5NGYzIDk0ZjEgOTRmMCA5NGVmIDk0ZWQgOTRlYiA5NGU5IDk0ZTcgOTRlNSA5NGUzIDk0ZTEgOTRkZiA5NGRkIDk0ZGIgOTRkOSA5NGQ0IDk0ZDMgOTRkMSA5NGQwIDk0Y2YgOTRjZCA5NGNjIDk0Y2IgOTRjOSA5NGM3IDk0YzUgOTRjNCA5NGMzIDk0YzEgOTRjMCA5NGJmIDk0YmQgOTRiYyA5NGJiIDk0YjkgOTRiNyA5NGI1IDk0YjQgOTRiMyA5NGIxIDk0YWYgOTRhZCA5NGFiIDk0YTkgOTRhNyA5NGE1IDk0YTQgOTRhMyA5NGExIDk0OWYgOTQ5ZCA5NDljIDk0OWIgOTQ5OSA5NDk3IDk0OTUgOTQ5MyA5NDkxIDk0OGYgOTQ4ZCA5NDhjIDk0OGIgOTQ4OSA5NDg3IDk0ODUgOTQ4MyA5NDgxIDk0N2YgOTQ3ZCA5NDdiIDk0NzkgOTQ3NyA5NDc1IDk0NzMgOTQ3MSA5NDcwIDk0NmYgOTQ2ZCA5NDZiIDk0NjkgOTQ2NyA5NDY1IDk0NjQgOTQ2MyA5NDYxIDk0NWYgOTQ1ZCA5NDViIDk0NTkgOTQ1NyA5NDU1IDk0NTQgOTQ1MyA5NDUxIDk0NTAgOTQ0ZiA5NDRkIDk0NGIgOTQ0OSA5NDQ3IDk0NDUgOTQ0NCA5NDQzIDk0NDEgOTQ0MCA5NDNmIDk0M2QgOTQzYiA5NDM5IDk0MzcgOTQzNSA5NDM0IDk0MzMgOTQzMSA5NDJmIDk0MmQgOTQyYyA5NDJiIDk0MjkgOTQyNyA5NDI1IDk0MjQgOTQyMyA5NDIxIDk0MWYgOTQxZCA5NDFjIDk0MWIgOTQxOSA5NDE3IDk0MTUgOTQxMyA5NDExIDk0MTAgOTQwZiA5NDBkIDk0MGIgOTQwOSA5NDA3IDk0MDUgOTQwMyA5NDAxIDkzZmYgOTNmZCA5M2ZjIDkzZmIgOTNmOSA5M2Y3IDkzZjQgOTNmMyA5M2YxIDkzZWYgOTNlZCA5M2VjIDkzZWIgOTNlOSA5M2U3IDkzZTUgOTNlMyA5M2UxIDkzZGYgOTNkZCA5M2RiIDkzZDkgOTNkNyA5M2Q1IDkzZDQgOTNkMyA5M2QxIDkzY2YgOTNjZCA5M2NjIDkzY2IgOTNjOSA5M2M3IDkzYzUgOTNjNCA5M2MzIDkzYzAgOTNiZiA5M2JkIDkzYmMgOTNiYiA5M2I5IDkzYjcgOTNiNSA5M2I0IDkzYjMgOTNiMSA5M2FmIDkzYWQgOTNhYyA5M2FiIDkzYTkgOTNhNyA5M2E1IDkzYTMgOTNhMSA5MzlmIDkzOWQgOTM5YiA5Mzk5IDkzOTcgOTM5NSA5Mzk0IDkzOTMgOTM5MSA5MzhmIDkzOGQgOTM4YyA5Mzg5IDkzODcgOTM4NCA5MzgzIDkzN2YgOTM3ZCA5MzdiIDkzNzkgOTM3NyA5Mzc1IDkzNzQgOTM3MyA5MzcxIDkzNzAgOTM2ZiA5MzZkIDkzNmIgOTM2OSA5MzY3IDkzNjUgOTM2MyA5MzYxIDkzNWYgOTM1ZCA5MzVjIDkzNWIgOTM1OSA5MzU3IDkzNTUgOTM1NCA5MzUzIDkzNTEgOTM0ZiA5MzRkIDkzNGMgOTM0YiA5MzQ5IDkzNDcgOTM0NSA5MzQ0IDkzNDMgOTM0MSA5MzQwIDkzM2YgOTMzZCA5MzNjIDkzM2IgOTMzOSA5MzM3IDkzMzUgOTMzNCA5MzMzIDkzMzEgOTMyZiA5MzJkIDkzMmIgOTMyOSA5MzI3IDkzMjUgOTMyNCA5MzIzIDkzMjEgOTMxZiA5MzFkIDkzMWIgOTMxOSA5MzE3IDkzMTUgOTMxNCA5MzEzIDkzMTEgOTMxMCA5MzBmIDkzMGQgOTMwYyA5MzBiIDkzMDkgOTMwNyA5MzA1IDkzMDEgOTMwMCA5MmZmIDkyZmMgOTJmOSA5MmY1IDkyZjQgOTJlZiA5MmViIDkyZTkgOTJlNyA5MmU1IDkyZTQgOTJlMSA5MmRmIDkyZGQgOTJkYyA5MmRiIDkyZDkgOTJkNyA5MmQ1IDkyZDMgOTJkMSA5MmQwIDkyY2YgOTJjZCA5MmNiIDkyYzkgOTJjNyA5MmM1IDkyYzMgOTJjMSA5MmMwIDkyYmYgOTJiZCA5MmJjIDkyYmIgOTJiOSA5MmI3IDkyYjUgOTJiMyA5MmIxIDkyYWYgOTJhZCA5MmFjIDkyYTkgOTJhNyA5MmE1IDkyYTQgOTJhMyA5MmExIDkyOWYgOTI5ZCA5MjliIDkyOTkgOTI5NyA5Mjk1IDkyOTQgOTI5MyA5MjkxIDkyOGYgOTI4ZCA5MjhiIDkyODkgOTI4NyA5Mjg1IDkyODQgOTI4MyA5MjdkIDkyN2MgOTI3NyA5Mjc1IDkyNzQgOTI3MyA5MjcxIDkyNmYgOTI2ZCA5MjZiIDkyNjkgOTI2NyA5MjY1IDkyNjQgOTI2MyA5MjYxIDkyNWYgOTI1YiA5MjU5IDkyNTcgOTI1NCA5MjRmIDkyNGIgOTI0OSA5MjQ3IDkyNDQgOTI0MyA5MjQxIDkyNDAgOTIzZCA5MjNjIDkyMzkgOTIzNyA5MjM1IDkyMzQgOTIzMyA5MjMxIDkyMmYgOTIyZCA5MjJjIDkyMmIgOTIyOSA5MjI1IDkyMjQgOTIyMyA5MjIxIDkyMWYgOTIxZCA5MjFjIDkyMWIgOTIxOSA5MjE3IDkyMTUgOTIxNCA5MjBiIDkyMDkgOTIwNyA5MjA1IDkyMDQgOTIwMyA5MjAxIDkxZmQgOTFmYyA5MWY3IDkxZjQgOTFmMyA5MWYxIDkxZWQgOTFlYiA5MWU5IDkxZTQgOTFlMyA5MWUxIDkxZGYgOTFkYyA5MWQ5IDkxZDcgOTFkNSA5MWQ0IDkxZDMgOTFkMSA5MWNmIDkxY2QgOTFjYyA5MWNiIDkxYzkgOTFjNyA5MWM0IDkxYzEgOTFjMCA5MWJmIDkxYmIgOTFiOSA5MWI3IDkxYjUgOTFiNCA5MWIzIDkxYjEgOTFhZiA5MWFkIDkxYWMgOTFhYiA5MWE5IDkxYTcgOTFhNSA5MWEzIDkxYTEgOTE5ZiA5MTlkIDkxOWIgOTE5OSA5MTk0IDkxOTEgOTE5MCA5MThmIDkxODkgOTE4NSA5MTgzIDkxODEgOTE3ZiA5MTdkIDkxN2IgOTE3OSA5MTc1IDkxNzQgOTE3MyA5MTcxIDkxNmYgOTE2ZCA5MTZjIDkxNmIgOTE2OSA5MTY3IDkxNjUgOTE2MyA5MTYxIDkxNWYgOTE1ZCA5MTVjIDkxNWIgOTE1OSA5MTU3IDkxNTUgOTE1MyA5MTUxIDkxNDUgOTE0MyA5MTQxIDkxNDAgOTEzZiA5MTE3IDkxMTUgOTExMyA5MTExIDkxMTAgOTEwZiA5MTBkIDkxMGMgOTEwYiA5MTA5IDkxMDcgOTEwNSA5MTAxIDkxMDAgOTA1MyA5MDRkIDkwNGMgOTA0YiA5MDQ5IDkwMzcgOTAzNSA5MDM0IDkwMzMgOTAyZiA5MDJkIDkwMmMgOTAyYiA5MDI5IDkwMjcgOTAyMSA5MDFmIDkwMWQgOTAxYyA5MDAzIDkwMDEgOTAwMCA4ZmQ1IDhmYjMgOGZiMSA4ZmIwIDhmYWYgOGZhZCA4ZmFiIDhmYTkgOGZhNyA4ZmE1IDhmYTMgOGZhMSA4ZjlmIDhmN2QgOGY3YiA4Zjc3IDhmNzUgOGY3MyA4ZjcxIDhmNzAgOGY2ZiA4ZjZkIDhmNmIgOGY2OSA4ZjY3IDhmNjUgOGY2MyA4ZjYxIDhmNWYgOGY1ZCA4ZjVjIDhmNWIgOGY1OSA4ZjU3IDhmNTUgOGY1NCA4ZjUzIDhmNTEgOGY1MCA4ZjRmIDhmNGQgOGY0YiA4ZjQ5IDhmNDUgOGY0MyA4ZjM1IDhmMzMgOGYzMSA4ZjMwIDhmMmYgOGYyZCA4ZjJjIDhmMmIgOGYyOSA4ZjI1IDhmMjQgOGYxNSA4ZjEzIDhmMTEgOGYxMCA4ZjBmIDhmMGQgOGYwYiA4ZjA5IDhmMDUgOGYwMCA4ZWY3IDhlZjUgOGVmMCA4ZWRjIDhlZGIgOGVkOSA4ZWQ1IDhlZDQgOGVkMyA4ZWQxIDhlY2YgOGVjZCA4ZWNjIDhlY2IgOGVjOSA4ZWM3IDhlYzUgOGVjNCA4ZWMwIDhlYmYgOGViYiA4ZWI5IDhlYjcgOGViNSA4ZWIzIDhlYjEgOGViMCA4ZWFmIDhlYWQgOGVhYyA4ZWFiIDhlYTkgOGVhNyA4ZWE1IDhlOWMgOGU5NCA4ZThmIDhlOGQgOGU4YyA4ZThiIDhlODkgOGU4NyA4ZTg1IDhlODMgOGU4MSA4ZTdmIDhlN2QgOGU3YyA4ZTdiIDhlNzkgOGU3NyA4ZTc1IDhlNzMgOGU3MSA4ZTcwIDhlNmYgOGU2ZCA4ZTZiIDhlNjkgOGU2NyA4ZTY1IDhlNjQgOGU2MyA4ZTYxIDhlNWYgOGU1ZCA4ZTViIDhlNTkgOGU1NSA4ZTU0IDhlNTMgOGU1MSA4ZTUwIDhlNGYgOGU0OSA4ZTQ3IDhlNDUgOGU0NCA4ZTQzIDhlNDEgOGU0MCA4ZTNmIDhlM2QgOGUzYyA4ZTNiIDhlMzkgOGUzNyA4ZTMzIDhlMzEgOGUyZiA4ZTJkIDhlMmMgOGUyYiA4ZTI5IDhlMjcgOGUyNSA4ZTI0IDhlMjMgOGUyMSA4ZTFjIDhlMTkgOGUxNyA4ZTE1IDhlMTMgOGUwZiA4ZTBkIDhlMGMgOGUwYiA4ZTA1IDhlMDQgOGRmYyA4ZGVkIDhkZWMgOGRlYiA4ZGU0IDhkZDkgOGRkNyA4ZGQ1IDhkZDMgOGRkMSA4ZGQwIDhkY2YgOGRjZCA4ZGNiIDhkYzkgOGRjNyA4ZGM1IDhkYzEgOGRjMCA4ZGJmIDhkYmQgOGRiYiA4ZGI5IDhkYjcgOGRiNCA4ZGIzIDhkYjEgOGRhZiA4ZGFjIDhkYTcgOGRhNSA4ZGE0IDhkYTMgOGQ5NyA4ZDk1IDhkOTMgOGQ5MSA4ZDkwIDhkOGQgOGQ4YyA4ZDhiIDhkODkgOGQ3NSA4ZDczIDhkNmYgOGQ2ZCA4ZDZjIDhkNjkgOGQ2NyA4ZDYzIDhkNjEgOGQ1MCA4ZDQwIDhkMTMgOGQxMSA4ZDEwIDhkMGYgOGQwYyA4ZDBiIDhkMDkgOGM2ZCA4YzZjIDhjNmIgOGM0YyA4YzRiIDhjNDkgOGM0NyA4YzQzIDhjNDEgOGM0MCA4YzNmIDhjMzkgOGMzNyA4YzM1IDhjMzQgOGMzMyA4YzMxIDhjMzAgOGMyZiA4YzJkIDhjMmMgOGMyYiA4YzI5IDhjMWQgOGMxYiA4YzE1IDhjMTQgOGMxMyA4YzExIDhjMTAgOGMwZiA4YzBkIDhjMDUgOGMwNCA4YzAzIDhjMDEgOGMwMCA4YmMwIDhiNDAgOGE0MCA4YTJkIDg5ZmQgODlmYyA4OWZiIDg5ZWYgODllYyA4OWU5IDg5ZTcgODllNSA4OWU0IDg5ZTMgODllMSA4OWRmIDg5ZGQgODlkYyA4OWRiIDg5ZDkgODlkNyA4OWQ1IDg5ZDMgODlkMSA4OWQwIDg5Y2YgODljZCA4OWNiIDg5YzkgODljNyA4OWM1IDg5YzQgODljMyA4OWMxIDg5YzAgODliZiA4OWJjIDg5YmIgODliOSA4OWI3IDg5YjUgODliNCA4OWIzIDg5YjEgODlhZiA4OWFkIDg5YWMgODlhYiA4OWE5IDg5YTcgODlhNSA4OWE0IDg5OTAgODk3MCA4OTU0IDg5NTMgODk0ZCA4OTRjIDg5NGIgODk0OSA4OTQwIDg5M2IgODkzNyA4OTM1IDg5MzQgODkzMyA4OTMxIDg5MzAgODkyZiA4OTJkIDg5MmMgODkyYiA4OTI5IDg5MjcgODkyNSA4OTIzIDg5MjEgODkxYyA4OTE0IDg5MTAgODkwNyA4OTAzIDg5MDEgODhmZiA4OGZkIDg4ZmMgODhmYiA4OGY5IDg4ZjcgODhmNSA4OGY0IDg4ZjMgODhmMSA4OGVmIDg4ZWQgODhlYyA4OGViIDg4ZTkgODhlNyA4OGU1IDg4ZTQgODhlMSA4OGRmIDg4ZGQgODhkYyA4OGRiIDg4ZDkgODhkNyA4OGQ1IDg4ZDQgODhkMyA4OGQxIDg4ZDAgODhjZCA4OGNiIDg4YzkgODhjNSA4OGM0IDg4YzMgODhjMCA4OGJjIDg4YjQgODhhZCA4OGFjIDg4YTkgODhhNCA4OGEzIDg4YTEgODg5ZiA4ODlkIDg4OWIgODg5OSA4ODk1IDg4OTQgODg5MyA4ODkxIDg4OGYgODg4ZCA4ODhjIDg4OGIgODg4OSA4ODg3IDg4ODUgODg4NCA4ODgzIDg4ODEgODg3ZiA4ODdkIDg4N2MgODg3YiA4ODc5IDg4NzcgODg3NSA4ODczIDg4NzEgODg2ZiA4ODZkIDg4NmMgODg2YiA4ODY5IDg4NjcgODg2NSA4ODY0IDg4NjMgODg2MSA4ODVmIDg4NWQgODg1YyA4ODViIDg4NTkgODg1NyA4ODU1IDg4NTQgODg1MyA4ODUxIDg4NTAgODg0ZiA4ODRkIDg4NGIgODg0OSA4ODQ3IDg4NDUgODg0MyA4ODQxIDg4NDAgODgzZiA4ODNkIDg4M2MgODgzYiA4ODM5IDg4MzcgODgzNSA4ODM0IDg4MzMgODgzMSA4ODJmIDg4MmQgODgyYyA4ODJiIDg4MjkgODgyNyA4ODI1IDg4MjQgODgyMyA4ODIxIDg4MWYgODgxZCA4ODFjIDg4MWIgODgxOSA4ODE3IDg4MTUgODgxNCA4ODEzIDg4MTEgODgwZiA4ODBkIDg4MGMgODgwYiA4ODA5IDg4MDcgODgwNSA4ODA0IDg4MDMgODgwMSA4N2ZmIDg3ZmQgODdmYiA4N2Y5IDg3ZjcgODdmNSA4N2Y0IDg3ZjMgODdmMSA4N2VmIDg3ZWQgODdlYyA4N2ViIDg3ZTkgODdlNyA4N2U1IDg3ZTQgODdlMyA4N2UxIDg3ZGYgODdkZCA4N2RjIDg3ZGIgODdkOSA4N2Q3IDg3ZDUgODdkNCA4N2QzIDg3ZDEgODdjZiA4N2NkIDg3Y2MgODdjYiA4N2M5IDg3YzcgODdjNSA4N2M0IDg3YzMgODdjMSA4N2MwIDg3YmYgODdiZCA4N2JiIDg3YjkgODdiNyA4N2I1IDg3YjQgODdiMyA4N2IxIDg3YWYgODdhZCA4N2FjIDg3YWIgODdhOSA4N2E3IDg3YTUgODdhMyA4N2ExIDg3OWYgODc5ZCA4NzliIDg3OTkgODc5NyA4Nzk1IDg3OTMgODc5MSA4NzhmIDg3OGQgODc4YiA4Nzg5IDg3ODcgODc4NSA4NzgzIDg3ODEgODc3ZiA4NzdkIDg3N2IgODc3OSA4Nzc3IDg3NzUgODc3NCA4NzczIDg3NzEgODc2ZiA4NzZkIDg3NmMgODc2YiA4NzY5IDg3NjcgODc2NSA4NzYzIDg3NjEgODc1ZiA4NzVkIDg3NWMgODc1YiA4NzU5IDg3NTcgODc1NSA4NzUzIDg3NTEgODc1MCA4NzRmIDg3NGQgODc0YyA4NzRiIDg3NDkgODc0NyA4NzQ1IDg3NDMgODc0MSA4NzQwIDg3M2YgODczZCA4NzNiIDg3MzkgODczNyA4NzM1IDg3MzMgODczMSA4NzMwIDg3MmYgODcyZCA4NzJjIDg3MmIgODcyOSA4NzI3IDg3MjUgODcyMyA4NzIxIDg3MWYgODcxZCA4NzFiIDg3MTkgODcxNyA4NzE1IDg3MTMgODcxMSA4NzEwIDg3MGYgODcwZCA4NzBiIDg3MDkgODcwNyA4NzA1IDg3MDMgODcwMSA4NmZmIDg2ZmQgODZmYiA4NmY5IDg2ZjcgODZmNSA4NmYzIDg2ZjEgODZmMCA4NmVmIDg2ZWQgODZlYyA4NmViIDg2ZTkgODZlNyA4NmU1IDg2ZTMgODZlMSA4NmRmIDg2ZGQgODZkYiA4NmQ5IDg2ZDcgODZkNSA4NmQ0IDg2ZDMgODZkMSA4NmQwIDg2Y2YgODZjZCA4NmNiIDg2YzkgODZjNyA4NmM1IDg2YzMgODZjMSA4NmMwIDg2YmYgODZiZCA4NmJiIDg2YjkgODZiNyA4NmI1IDg2YjQgODZiMyA4NmIxIDg2YWYgODZhYyA4NmE1IDg2YTQgODZhMyA4NjlmIDg2OWQgODY5YyA4NjliIDg2OTkgODY5NyA4Njk1IDg2OTQgODY5MyA4NjkxIDg2OGYgODY4ZCA4NjhiIDg2ODkgODY4NyA4Njg1IDg2ODQgODY4MyA4NjgxIDg2N2YgODY3ZCA4NjdiIDg2NzkgODY3NyA4NjcxIDg2NmYgODY2YyA4NjY5IDg2NjcgODY2NSA4NjYzIDg2NjEgODY1ZiA4NjVkIDg2NWMgODY1YiA4NjU5IDg2NTcgODY1NSA4NjU0IDg2NTMgODY1MSA4NjRmIDg2NGQgODY0YyA4NjRiIDg2NDkgODY0NyA4NjQ1IDg2NDQgODY0MyA4NjQxIDg2NDAgODYzZiA4NjNkIDg2M2IgODYzOSA4NjM3IDg2MzUgODYzNCA4NjMzIDg2MzEgODYyZiA4NjJkIDg2MmMgODYyYiA4NjI5IDg2MjcgODYyNSA4NjI0IDg2MjMgODYyMSA4NjFmIDg2MWQgODYxYyA4NjFiIDg2MTkgODYxNyA4NjE0IDg2MDMgODVmZiA4NWZjIDg1ZjkgODVmNyA4NWY1IDg1ZjQgODVmMyA4NWYxIDg1ZWYgODVlZCA4NWVjIDg1ZWIgODVlOSA4NWRkIDg1ZGIgODVkOSA4NWQ3IDg1ZDUgODVkNCA4NWQzIDg1ZDEgODVkMCA4NWNmIDg1Y2QgODVjYiA4NWM5IDg1YzcgODVjNSA4NWM0IDg1YzMgODVjMSA4NWMwIDg1YmYgODViOSA4NWI3IDg1OTUgODU5NCA4NTkzIDg1OTEgODU4ZiA4NThkIDg1OGMgODU4YiA4NTg5IDg0NDAgODQzYiA4NDM1IDg0MzMgODQzMSA4NDMwIDg0MmYgODQyZCA4NDJjIDg0MmIgODQyOSA4NDI3IDg0MjUgODQyMyA4NDIxIDg0MDAgODE0MCA4MTM3IDgxMzUgODEzNCA4MTMzIDgxMzEgODEzMCA4MTJkIDgxMmMgODEyYiA4MTI5IDgxMjcgODEyNSA4MTAwIDgwZjAgODBlZiA4MGVkIDgwZWIgODBlOSA4MGRmIDgwZGQgODBkYyA4MGRiIDgwZDkgODBkNyA4MGQ1IDgwZDMgODBkMSA4MGNmIDgwY2QgODBjYyA4MGNiIDgwYzkgODBjNyA4MGM1IDgwYzQgODBjMyA4MGMxIDgwYzAgODBiZiA4MGJkIDgwYmMgODBiYiA4MGI5IDgwYjcgODBiNSA4MGIzIDgwYjEgODBhZiA4MGFkIDgwYWMgODBhYiA4MGE5IDgwYTcgODBhNSA4MGEzIDgwYTEgODA5ZiA4MDlkIDgwOWMgODA5YiA4MDk5IDgwOTcgODA5NSA4MDk0IDgwOTMgODA5MSA4MDkwIDgwOGYgODA4ZCA4MDg3IDgwODUgODA4MyA4MDgxIDgwNDAgN2ZjMCA3ZjQwIDdlYzAgN2ViMCA3ZWFiIDdkMDAgN2MwNyA3YzAxIDdiMDAgN2ExMCA3OTU3IDc5NTUgNzk1NCA3OTUzIDc5NTEgNzkwMCA3NzAwIDc2YmQgNzZiMCA3NjliIDc2OTkgNzY5NyA3NjhjIDc2NDAgNzMwMCA3MWY1IDcxZTEgNzFkMCA3MWJiIDcxYTcgNzFhNSA3MWE0IDcxOTMgNzE5MCA3MTU3IDcxNTQgNzEwMCA3MDQwIDcwMDAgNmZmYyA2ZmQ3IDZmZDAgNmZjMCA2ZjhjIDZmN2QgNmYyYyA2ZjI5IDZmMjcgNmYyNCA2ZWYzIDZlZjAgNmVjMCA2ZTlmIDZlOWQgNmU4YyA2ZThiIDZlODkgNmU4NyA2ZTg0IDZlODMgNmU3YyA2ZTQwIDZlMjEgNmUxZiA2ZTFiIDZlMTkgNmUxNyA2ZTExIDZlMTAgNmQ3MyA2ZDcwIDZkNmYgNmQ2ZCA2ZDZiIDZkNjkgNmQ2NyA2ZDY1IDZkNDcgNmQ0NCA2ZDQzIDZkNDEgNmQzZiA2ZDNkIDZkM2MgNmQzYiA2ZDM5IDZkMzcgNmQzMyA2ZDMxIDZkMzAgNmQyZiA2ZDJkIDZkMmIgNmQyOSA2ZDI1IDZkMTUgNmQxMyA2ZDEwIDZkMGQgNmQwYiA2ZDA5IDZkMDAgNmNmMCA2Y2Q1IDZjYzAgNmM5MCA2YzcwIDZjNGIgNmMzMCA2YzI5IDZjMjcgNmMxMCA2YmYwIDZiZWQgNmJlYyA2YmViIDZiZTkgNmJkYiA2YmQ5IDZiZDcgNmJkNSA2YmQ0IDZiZDEgNmJjZiA2YmNjIDZiYzkgNmJjNyA2YmM1IDZiYzQgNmJjMyA2YmMxIDZiYzAgNmJiZiA2YmJkIDZiYmMgNmJiYiA2YmI5IDZiYjUgNmJiNCA2YmIzIDZiYjEgNmJhZCA2YmFjIDZiYTkgNmJhNyA2YmE1IDZiYTMgNmJhMSA2YjlmIDZiOWQgNmI5YyA2YjliIDZiOTkgNmI5NyA2Yjk1IDZiOTQgNmI5MyA2YjkxIDZiNzcgNmI3NSA2Yjc0IDZiNzMgNmI3MCA2YjZjIDZiNDAgNmIzZiA2YjNkIDZiM2MgNmIzYiA2YjM0IDZiMmYgNmIyZCA2YjJiIDZiMjkgNmIyNyA2YjI1IDZiMjMgNmIyMSA2YjFmIDZiMWQgNmIxYiA2YjE5IDZiMTcgNmIxNSA2YjE0IDZiMTMgNmIxMSA2YjEwIDZiMGYgNmIwZCA2YjBjIDZiMGIgNmIwOSA2YjA3IDZiMDUgNmIwMyA2YjAxIDZiMDAgNmFmNSA2YWYwIDZhZWYgNmFlYyA2YWU1IDZhZTQgNmFlMSA2YWRmIDZhZGQgNmFkYyA2YWRiIDZhZDkgNmFkNyA2YWQ1IDZhZDMgNmFkMSA2YWQwIDZhY2YgNmFjZCA2YWNjIDZhY2IgNmFjOSA2YWM3IDZhYzUgNmFjNCA2YWMzIDZhYzEgNmFiZiA2YWJkIDZhYmMgNmFiYiA2YWI5IDZhYjcgNmFiNSA2YWI0IDZhYjMgNmFiMSA2YWFmIDZhYWQgNmFhYyA2YWFiIDZhYTkgNmFhNyA2YWE1IDZhYTQgNmFhMyA2YTljIDZhOTkgNmE5NyA2YTk0IDZhNTAgNmE0YyA2YTNkIDZhM2MgNmEzNyA2YTM1IDZhMzAgNmEyZCA2YTJjIDZhMjQgNmExYyA2YTE3IDZhMTAgNjlmYyA2OWYwIDY5ZTcgNjllNSA2OWUxIDY5ZGQgNjlkMCA2OWJkIDY5YmIgNjliNSA2OWIxIDY5YjAgNjlhZCA2OWEzIDY5OWQgNjk5YyA2OTkwIDY5ODMgNjk4MSA2OTdmIDY5N2MgNjk3OSA2OTQwIDY5MWYgNjkxMCA2OTAzIDY4ZmYgNjhmZCA2OGZiIDY4ZjkgNjhmNyA2OGY1IDY4ZjQgNjhmMCA2OGVjIDY4ZWIgNjhlOSA2OGQzIDY4Y2YgNjhjYyA2OGM5IDY4YzEgNjhjMCA2OGJmIDY4YmQgNjhhNyA2OGExIDY4OWYgNjg5YyA2ODk3IDY4ODUgNjg4NCA2ODdmIDY4N2MgNjg3NyA2ODc1IDY4NmQgNjg2YyA2ODZiIDY4NjkgNjg2NyA2ODVjIDY4NWIgNjg1OSA2ODU3IDY4NTQgNjg1MSA2ODRjIDY4NGIgNjg0OSA2ODQ3IDY4NDQgNjg0MSA2ODQwIDY4M2YgNjgzZCA2ODNjIDY4M2IgNjgzOSA2ODM3IDY4MzUgNjgyNSA2ODI0IDY4MjMgNjgyMSA2ODFmIDY4MWMgNjgxYiA2ODE3IDY4MTUgNjgxNCA2ODEzIDY4MTEgNjgwYiA2ODA5IDY4MDcgNjgwNSA2ODA0IDY4MDMgNjgwMSA2NzcxIDY3NDAgNjcyNCA2NzFmIDY2ZDkgNjZkMCA2NjcwIDY2NjcgNjVkOSA2NWQwIDY1YWYgNjU2NSA2NTQwIDY1MGYgNjUwMCA2NDAwIDYxMDAgNjBmMSA2MGYwIDYwNDAgNjAzZCA2MDMwIDYwMjQgNjAyMyA2MDIxIDYwMWYgNjAxZCA2MDFjIDYwMWIgNjAxOSA2MDE3IDYwMTUgNjAxNCA2MDEwIDYwMGMgNjAwNyA2MDA1IDYwMDQgNjAwMyA2MDAxIDVmZmYgNWZmZCA1ZmY5IDVmZjcgNWZmNSA1ZmY0IDVmZjMgNWZmMSA1ZmYwIDVmZTEgNWZkZiA1ZmRjIDVmZDkgNWZjMCA1ZmI1IDVmYjMgNWZiMSA1ZmIwIDVmYWYgNWZhZCA1ZmFjIDVmYWIgNWZhOSA1ZmExIDVmOWYgNWY5ZCA1ZjljIDVmOWIgNWY5OSA1ZjkxIDVmOGYgNWY4ZCA1ZjhjIDVmOGIgNWY4OSA1Zjg3IDVmODUgNWY4NCA1Zjc3IDVmNzUgNWY3NCA1ZjczIDVmNmQgNWY2YiA1ZjQxIDVmNDAgNWYyMSA1ZjFmIDVmMWIgNWYxOSA1ZjEzIDVmMTEgNWYxMCA1ZjBmIDVmMGQgNWYwYyA1ZjBiIDVlZmYgNWVmYiA1ZWY5IDVlZjcgNWVmNSA1ZWY0IDVlZjMgNWVmMSA1ZWVmIDVlZWQgNWVlYyA1ZWViIDVlZTkgNWVlNyA1ZWU1IDVlZTQgNWVlMSA1ZWRmIDVlZGIgNWVkOSA1ZWQxIDVlY2YgNWVjZCA1ZWNjIDVlYzkgNWVjNSA1ZWM0IDVlYzAgNWViYyA1ZWIwIDVlYTcgNWU5ZiA1ZTlkIDVlOWMgNWU5YiA1ZTk3IDVlOTQgNWU5MyA1ZTkxIDVlOTAgNWU4ZiA1ZThkIDVlOGIgNWU4OSA1ZTg1IDVlNzAgNWU2OSA1ZTU1IDVlNTMgNWU1MCA1ZTRkIDVlNGMgNWU0YiA1ZTQ5IDVlNDUgNWU0MyA1ZTNjIDVlMzkgNWUzNCA1ZTMwIDVlMmYgNWUyOSA1ZTI3IDVlMjUgNWUxMCA1ZGZmIDVkZmMgNWRmNCA1ZGYxIDVkZWQgNWRlYiA1ZGU5IDVkZTcgNWRlNSA1ZGU0IDVkZTEgNWRkZCA1ZGRjIDVkZDcgNWRkNSA1ZGQ0IDVkZDMgNWRkMSA1ZGNmIDVkY2QgNWRjYyA1ZGNiIDVkYzkgNWRjNSA1ZGMzIDVkYzEgNWRjMCA1ZGJkIDVkYmIgNWRiNyA1ZGI1IDVkYjMgNWRiMSA1ZGIwIDVkYWYgNWRhZCA1ZGFjIDVkYWIgNWRhOSA1ZGE3IDVkYTUgNWRhMyA1ZGExIDVkOWYgNWQ5ZCA1ZDljIDVkOWIgNWQ5OSA1ZDk3IDVkOTUgNWQ5MyA1ZDhmIDVkOGQgNWQ4YyA1ZDg1IDVkODQgNWQ4MyA1ZDgxIDVkN2MgNWQ3YiA1ZDc5IDVkNzcgNWQ3NSA1ZDczIDVkNzEgNWQ2ZCA1ZDZiIDVkNjkgNWQ2NyA1ZDY0IDVkNWMgNWQ1YiA1ZDU3IDVkNTQgNWQ0ZiA1ZDRjIDVkNGIgNWQ0OSA1ZDQ3IDVkNDQgNWQ0MCA1ZDNmIDVkM2QgNWQzYiA1ZDM5IDVkMzcgNWQzNSA1ZDM0IDVkMzMgNWQzMSA1ZDJmIDVkMmQgNWQyYyA1ZDJiIDVkMjkgNWQyNyA1ZDI0IDVkMWYgNWQxZCA1ZDFjIDVkMTMgNWQxMCA1ZDBkIDVkMGIgNWQwOSA1ZDA3IDVkMDUgNWQwMyA1ZDAxIDVjZmYgNWNmZCA1Y2ZiIDVjZjkgNWNmNyA1Y2YxIDVjZjAgNWNlOSA1Y2U0IDVjZTMgNWNlMSA1Y2RmIDVjZGQgNWNkYyA1Y2RiIDVjZDkgNWNkNyA1Y2Q1IDVjZDMgNWNkMSA1Y2NmIDVjY2MgNWNjOSA1Y2M1IDVjYzQgNWNjMyA1Y2MwIDVjYjAgNWM3ZCA1YzdiIDVjNzkgNWM3NyA1YzcxIDVjNzAgNWM2ZCA1YzZjIDVjNjcgNWM2NSA1YzYxIDVjNTkgNWM1NyA1YzU1IDVjNTQgNWM1MSA1YzRkIDVjNGMgNWM0YiA1YzQ3IDVjNDQgNWM0MyA1YzQwIDVjM2YgNWMzZCA1YzMzIDVjMzAgNWMyZiA1YzJkIDVjMjcgNWMyMyA1YzIxIDVjMWIgNWMxOSA1YzExIDVjMTAgNWMwYyA1YzBiIDVjMDkgNWMwMCA1YmZmIDViZmMgNWJmYiA1YmY5IDViZjcgNWJmNSA1YmYxIDViZTQgNWJkZCA1YmQwIDViYmMgNWJiMCA1YjkwIDViOGIgNWI4OSA1Yjg0IDViN2YgNWI3YyA1YjQwIDViMDAgNWEzMCA1YTIxIDVhMWIgNTlmZCA1OWYwIDU5OTAgNTk3YyA1OTcwIDU5NmIgNTk2OSA1OTY3IDU5NjUgNTk2NCA1OTYxIDU5NWIgNTk0MCA1OTFkIDU5MWMgNTkxMCA1OTA1IDU5MDAgNThmMCA1OGUxIDU4ZGMgNTdjMCA1N2FiIDU3NTAgNTc0YyA1NzMxIDU3MzAgNTcyYyA1NzI0IDU3MjEgNTcxMCA1NzAwIDU2ZjAgNTZlYiA1NmU3IDU2Y2YgNTZjZCA1NmNjIDU2YzkgNTZjNyA1NmM0IDU2YzEgNTZiNyA1NmI1IDU2YjAgNTUwMCA1NGVjIDU0ZWIgNTRkYiA1NGQ1IDU0ZDQgNTRkMyA1NGQxIDU0Y2YgNTRjZCA1NGNjIDU0Y2IgNTRjOSA1NGM3IDU0YzUgNTRjMyA1NGMxIDU0YzAgNTRiZiA1NGJkIDU0YmIgNTRiOSA1NGI1IDU0YjMgNTRiMSA1NGIwIDU0YWYgNTRhZCA1NGFiIDU0YTkgNTRhNyA1NGE1IDU0YTMgNTRhMSA1NDlmIDU0OWQgNTQ5YiA1NDk5IDU0OTcgNTQ5NSA1NDkzIDU0OTEgNTQ5MCA1NDhmIDU0OGQgNTQ4OSA1NDg3IDU0ODUgNTQ4NCA1NDgzIDU0ODEgNTQ3ZiA1NDdjIDU0NzcgNTQ3NSA1NDc0IDU0NzMgNTQ2ZCA1NDY1IDU0NjQgNTQ2MyA1NDQwIDU0MTQgNTQwZiA1NDBkIDU0MGIgNTQwOSA1NDA3IDU0MDUgNTQwNCA1NDAxIDUzZmMgNTNmYiA1M2YwIDUzZWYgNTNlZCA1M2VjIDUzZDEgNTNkMCA1M2M5IDUzYzUgNTNjMSA1M2JmIDUzYmQgNTNiYiA1M2I0IDUzYjEgNTNiMCA1M2FmIDUzYWQgNTNhYiA1M2E5IDUzYTcgNTNhNSA1M2EzIDUzYTEgNTM5ZiA1MzlkIDUzOWIgNTM5OSA1Mzk3IDUzOTUgNTM5NCA1MzkzIDUzOTEgNTM5MCA1MzhmIDUzOGQgNTM4OSA1Mzg3IDUzODUgNTM4NCA1MzgzIDUzODEgNTM3ZiA1MzdkIDUzN2MgNTM3YiA1Mzc5IDUzNzcgNTM3NSA1MzczIDUzNzEgNTM2ZiA1MzZkIDUzNmMgNTM2YiA1MzY5IDUzNjcgNTM2NSA1MzY0IDUzNjMgNTM2MSA1MzVmIDUzNWQgNTM1YiA1MzU5IDUzNTcgNTM1NSA1MzU0IDUzNTMgNTM1MSA1MzRmIDUzNGQgNTM0YiA1MzQ5IDUzNDcgNTM0NSA1MzQ0IDUzNDMgNTM0MSA1MzNmIDUzM2QgNTMzYiA1MzM5IDUzMzcgNTMzNSA1MzMzIDUzMzEgNTMzMCA1MzJmIDUzMmQgNTMyYiA1MzI5IDUzMjcgNTMyNSA1MzI0IDUzMjMgNTMyMSA1MzFmIDUzMWQgNTMxYiA1MzE5IDUzMTcgNTMxNSA1MzEzIDUzMTEgNTMxMCA1MzBmIDUzMGQgNTMwYiA1MzA5IDUzMDcgNTMwNSA1MzA0IDUzMDMgNTMwMSA1MzAwIDUyZmYgNTJmZCA1MmZiIDUyZjkgNTJmNyA1MmY1IDUyZjQgNTJmMSA1MmYwIDUyZWYgNTJlZCA1MmViIDUyZTkgNTJlNyA1MmU1IDUyZTMgNTJlMSA1MmRmIDUyZGQgNTJkYiA1MmQ5IDUyZDcgNTJkNSA1MmQ0IDUyZDMgNTJkMSA1MmNmIDUyY2QgNTJjYyA1MmNiIDUyYzkgNTJjNyA1MmM1IDUyYzQgNTJjMyA1MmMxIDUyYzAgNTJiZiA1MmJkIDUyYmIgNTJiOSA1MmI3IDUyYjUgNTJiMyA1MmIxIDUyYjAgNTJhZiA1MmFkIDUyYWMgNTJhYiA1MmE5IDUyYTcgNTJhNSA1MmEzIDUyYTEgNTI5YyA1Mjk5IDUyOTcgNTI5NSA1Mjk0IDUyOGYgNTI4OSA1MjcwIDUyNjQgNTI1ZiA1MjVjIDUyNTcgNTI1NSA1MjRjIDUyNDAgNTIyYyA1MjFiIDUyMGIgNTIwOSA1MWMwIDUxOTAgNTE1NSA1MTU0IDUxNTMgNTE0YyA1MTRiIDUxNDAgNTEzNSA1MTM0IDUxMzMgNTEzMCA1MTIxIDUxMTUgNTBkZiA1MGQwIDUwY2QgNTBjMyA1MDAwIDRmNDAgNGYyYiA0ZWYzIDRlYzAgNGVhYiA0ZWEzIDRlOTQgNGU5MSA0ZTkwIDRlOGQgNGU0MCA0ZTE0IDRlMTAgNGRkMyA0ZGQwIDRkY2MgNGRjMCA0ZGIwIDRkN2MgNGQ3MCA0ZDVmIDRkNWQgNGQ1YyA0ZDU5IDRkNTcgNGQ1NSA0ZDU0IDRkNTMgNGQ1MSA0ZDRmIDRkNGQgNGQ0YyA0ZDRiIDRkNDkgNGQ0NyA0ZDQzIDRkNDEgNGQzZiA0ZDNkIDRkM2MgNGQzYiA0ZDM5IDRkMzcgNGQzNSA0ZDM0IDRkMzMgNGQzMSA0ZDJmIDRkMmQgNGQyYiA0ZDI5IDRkMjcgNGQyNSA0ZDIzIDRkMjEgNGQxZiA0ZDE5IDRkMTEgNGQxMCA0ZDA3IDRkMDQgNGQwMCA0Y2Y1IDRjZWMgNGNlYiA0Y2U5IDRjZTcgNGNlNSA0Y2U0IDRjZGYgNGNkZCA0Y2RiIDRjZDkgNGNkNyA0Y2Q1IDRjZDQgNGNkMyA0Y2QxIDRjY2YgNGNjZCA0Y2NjIDRjY2IgNGNjOSA0Y2M3IDRjYzUgNGNjNCA0Y2MzIDRjYzEgNGNjMCA0Y2JmIDRjYmQgNGNiYiA0Y2I5IDRjYjcgNGNiNSA0Y2I0IDRjYjMgNGNiMSA0Y2IwIDRjYWYgNGNhZCA0Y2FjIDRjYTkgNGNhNyA0Y2E1IDRjYTMgNGNhMSA0YzlmIDRjOWIgNGM5OSA0Yzk3IDRjOTUgNGM5NCA0YzkzIDRjOTEgNGM5MCA0YzhmIDRjOGIgNGM4NSA0Yzg0IDRjN2IgNGM3MCA0YzY5IDRjNTAgNGM0OSA0YjkwIDRiODMgNGI4MSA0YjdmIDRiN2MgNGI3YiA0Yjc5IDRiNzcgNGI3NSA0Yjc0IDRiNzMgNGI3MSA0YjZkIDRiNmMgNGI2OSA0YjY3IDRiNjUgNGI2MSA0YjVmIDRiNWQgNGI1YiA0YjU5IDRiNTcgNGI1NSA0YjUwIDRiNDAgNGIwZCA0YjBjIDRiMGIgNGIwMCA0OWMwIDQ5NDAgNDkyYyA0OTJiIDQ5MjkgNDhmNSA0OGQ3IDQ4ZDUgNDhkNCA0OGQzIDQ4ZDEgNDhjZiA0OGNkIDQ4Y2MgNDhjMCA0OGJmIDQ4YmQgNDg5ZiA0ODljIDQ4OWIgNDg5MyA0ODkxIDQ4OTAgNDg4ZiA0ODhkIDQ4OGIgNDg4OSA0ODg3IDQ4ODUgNDg4MyA0ODgxIDQ4N2YgNDg3ZCA0ODdiIDQ4NzkgNDg3NyA0ODc1IDQ4NzQgNDg3MyA0ODcxIDQ4NzAgNDg2ZiA0ODZkIDQ4NmMgNDg2YiA0ODY5IDQ4NjcgNDg2NSA0ODYzIDQ4NjEgNDg1ZiA0ODVkIDQ4NWMgNDg1YiA0ODU5IDQ4NGYgNDg0NSA0ODQzIDQ4NDEgNDg0MCA0ODMwIDQ4MWIgNDgxNyA0ODE1IDQ4MTMgNDgxMSA0ODEwIDQ4MGYgNDgwZCA0ODBjIDQ4MGIgNDgwOSA0ODA3IDQ4MDUgNDgwMyA0ODAxIDQ3ZmYgNDdmZCA0N2ZjIDQ3ZmIgNDdmOSA0N2Y3IDQ3ZjUgNDdmNCA0N2YzIDQ3ZjEgNDdmMCA0N2VmIDQ3ZWQgNDdlYiA0N2U5IDQ3ZTcgNDdlNSA0N2U0IDQ3ZTMgNDdlMSA0N2RmIDQ3ZGQgNDdkYiA0N2Q5IDQ3ZDcgNDdkNCA0N2QxIDQ3ZDAgNDdjZiA0N2NiIDQ3YzkgNDdjNyA0N2M1IDQ3YzQgNDdjMyA0N2MxIDQ3YzAgNDdiZiA0N2JkIDQ3YmMgNDdiYiA0N2I5IDQ3YjcgNDdiNSA0N2I0IDQ3YjMgNDdiMSA0N2IwIDQ3YWYgNDdhZCA0N2FjIDQ3YWIgNDdhOSA0N2E3IDQ3YTUgNDdhNCA0N2EzIDQ3YTEgNDc5ZiA0NzlkIDQ3OWIgNDc5OSA0Nzk3IDQ3OTUgNDc5NCA0NzkzIDQ3OTEgNDc5MCA0NzhmIDQ3OGQgNDc4YiA0Nzg5IDQ3ODcgNDc4NSA0Nzg0IDQ3ODMgNDc4MSA0NzdmIDQ3N2QgNDc3YiA0Nzc5IDQ3NzcgNDc3NSA0NzczIDQ3NzEgNDc3MCA0NzZmIDQ3NmQgNDc2YyA0NzZiIDQ3NjkgNDc2NyA0NzY1IDQ3NjQgNDc2MyA0NzYxIDQ3NWYgNDc1ZCA0NzVjIDQ3NWIgNDc1OSA0NzU3IDQ3NTUgNDc1MyA0NzUxIDQ3NGYgNDc0ZCA0NzRjIDQ3NGIgNDc0OSA0NzQ3IDQ3NDUgNDc0NCA0NzQzIDQ3NDEgNDc0MCA0NzNmIDQ3M2QgNDczYyA0NzNiIDQ3MzkgNDczNyA0NzM1IDQ3MzQgNDczMyA0NzMxIDQ3MzAgNDcyZiA0NzJkIDQ3MmIgNDcyOSA0NzI3IDQ3MjUgNDcyMyA0NzIxIDQ3MWYgNDcxZCA0NzFjIDQ3MWIgNDcxOSA0NzE3IDQ3MTUgNDcxNCA0NzEzIDQ3MTEgNDcxMCA0NzBmIDQ3MGQgNDcwYiA0NzA5IDQ3MDcgNDcwNSA0NzAzIDQ3MDEgNDcwMCA0NmZmIDQ2ZmQgNDZmYyA0NmZiIDQ2ZjkgNDZmNyA0NmY1IDQ2ZjQgNDZmMyA0NmYxIDQ2ZWYgNDZlZCA0NmVjIDQ2ZWIgNDZlOSA0NmU3IDQ2ZTUgNDZlNCA0NmUzIDQ2ZTEgNDZkZiA0NmRkIDQ2ZGMgNDZkYiA0NmQ5IDQ2ZDcgNDZkNSA0NmQ0IDQ2ZDMgNDZkMSA0NmNmIDQ2Y2QgNDZjYyA0NmNiIDQ2YzkgNDZjNyA0NmM1IDQ2YzMgNDZjMSA0NmMwIDQ2YmYgNDZiZCA0NmJiIDQ2YjkgNDZiNyA0NmI1IDQ2YjQgNDZiMyA0NmIxIDQ2YjAgNDZhZiA0NmFkIDQ2YWIgNDZhOSA0NmE3IDQ2YTUgNDZhMyA0NmExIDQ2OWYgNDY5ZCA0NjljIDQ2OWIgNDY5OSA0Njk3IDQ2OTUgNDY5NCA0NjkzIDQ2OTEgNDY4ZiA0NjhkIDQ2OGMgNDY4YiA0Njg5IDQ2ODcgNDY4NSA0NjgzIDQ2ODEgNDY3ZiA0NjdkIDQ2N2IgNDY3OSA0Njc3IDQ2NzUgNDY3MyA0NjcxIDQ2NzAgNDY2ZiA0NjZkIDQ2NmMgNDY2YiA0NjY5IDQ2NjcgNDY2NSA0NjY0IDQ2NjEgNDY1ZiA0NjVkIDQ2NWIgNDY1OSA0NjU3IDQ2NTUgNDY1NCA0NjUzIDQ2NTEgNDY1MCA0NjRmIDQ2NGQgNDY0YiA0NjQ5IDQ2NDcgNDY0NSA0NjQ0IDQ2NDMgNDY0MSA0NjNmIDQ2M2QgNDYzYiA0NjM5IDQ2MzcgNDYzNCA0NjMzIDQ2MzAgNDYyZCA0NjI5IDQ2MjcgNDYyNSA0NjIzIDQ2MjEgNDYxNyA0NjE1IDQ2MTMgNDYxMSA0NjEwIDQ2MGQgNDYwYyA0NWYwIDQ1ZGYgNDVkZCA0NWRjIDQ1ZGIgNDVkOSA0NWQ3IDQ1ZDUgNDVkMyA0NWQxIDQ1Y2YgNDVjZCA0NWNjIDQ1Y2IgNDVjOSA0NWM1IDQ1YzQgNDU5ZCA0NTAwIDQ0YjAgNDRhZiA0NGFkIDQ0YTkgNDRhNyA0NGE0IDQ0YTEgNDQ5ZiA0NDlkIDQ0OTcgNDQ5NSA0NDk0IDQ0OTEgNDQ5MCA0NDg3IDQ0ODQgNDQ4MyA0NDgxIDQ0N2YgNDQ3YyA0NDdiIDQ0NzcgNDQ3NSA0NDc0IDQ0NzMgNDQ2ZiA0NDY1IDQ0NjMgNDQ0MCA0NDM3IDQ0MzUgNDQzNCA0NDMzIDQ0MzEgNDQyZiA0NDJkIDQ0MmIgNDQyOSA0NDI3IDQ0MjUgNDQyNCA0NDIxIDQ0MWQgNDQxYyA0NDFiIDQ0MTkgNDQxNyA0NDE1IDQ0MTEgNDQwZiA0NDBjIDQ0MGIgNDQwOSA0NDA3IDQ0MDUgNDQwMyA0NDAxIDQ0MDAgNDNmZiA0M2ZkIDQzZmIgNDNmOSA0M2Y3IDQzZjUgNDNmNCA0M2YzIDQzZjEgNDNmMCA0M2VmIDQzZWQgNDNlYiA0M2U5IDQzZTcgNDNlNSA0M2U0IDQzZTMgNDNlMSA0M2RmIDQzZGQgNDNkYiA0M2Q5IDQzZDcgNDNkNSA0M2QzIDQzZDEgNDNkMCA0M2NmIDQzY2QgNDNjYyA0M2NiIDQzYzkgNDNjNyA0M2M1IDQzYzQgNDNjMyA0M2MxIDQzYzAgNDNiZiA0M2JkIDQzYmIgNDNiOSA0M2I3IDQzYjUgNDNiNCA0M2IzIDQzYjEgNDNhZiA0M2FkIDQzYWMgNDNhYiA0M2E5IDQzYTcgNDNhNSA0M2EzIDQzYTEgNDM5ZiA0MzlkIDQzOWIgNDM5OSA0Mzk3IDQzOTUgNDM5NCA0MzkzIDQzOTEgNDM4YyA0MzhiIDQzODUgNDM4NCA0MzgzIDQzODEgNDM3ZCA0MzdjIDQzNzkgNDM3NyA0Mzc1IDQzNzQgNDM3MyA0MzcxIDQzNmYgNDM2ZCA0MzZjIDQzNmIgNDM2NyA0MzY1IDQzNjMgNDM2MSA0MzVmIDQzNWMgNDM1MCA0MzQwIDQzM2QgNDMzYyA0MzNiIDQzMzAgNDMyZiA0MzJiIDQzMjkgNDMyNyA0MzI1IDQzMjMgNDMyMSA0MzFkIDQzMWMgNDMxYiA0MzE5IDQzMTcgNDMxNCA0MzEzIDQzMGMgNDMwYiA0MzA3IDQzMDUgNDMwMyA0MzAxIDQyZmYgNDJmZCA0MmZjIDQyZmIgNDJmOSA0MmY3IDQyZjUgNDJmMyA0MmYxIDQyZjAgNDJlZiA0MmVkIDQyZWIgNDJlOSA0MmU3IDQyZTUgNDJlNCA0MmUzIDQyZTEgNDJkZiA0MmRkIDQyZGIgNDJkOSA0MmQ3IDQyZDUgNDJkNCA0MmQzIDQyZDEgNDJjZiA0MmM5IDQyYzcgNDJjNSA0MmMzIDQyYzEgNDJjMCA0MmJmIDQyYmQgNDJiYyA0MmI5IDQyYjUgNDJiNCA0MjlkIDQyOWIgNDI5NyA0Mjk1IDQyOTMgNDI5MSA0MjkwIDQyOGYgNDI4ZCA0MjhiIDQyODkgNDI4NyA0Mjg1IDQyODQgNDI4MyA0MjgxIDQyN2YgNDI3ZCA0MjdjIDQyNzkgNDI3NyA0Mjc1IDQyNzQgNDI3MyA0MjZmIDQyNmMgNDI2YiA0MjY5IDQyNjcgNDI2NSA0MjYzIDQyNjEgNDI1ZiA0MjVkIDQyNWIgNDI1OSA0MjU3IDQyNTUgNDI1MyA0MjUxIDQyNTAgNDI0ZiA0MjRkIDQyNGIgNDI0OSA0MjQ3IDQyNDUgNDI0NCA0MjQzIDQyNDEgNDIzZiA0MjNkIDQyM2MgNDIzYiA0MjM5IDQyMzcgNDIzNSA0MjMzIDQyMzEgNDIzMCA0MjJmIDQyMmQgNDIyYiA0MjI0IDQyMWYgNDIxZCA0MjFiIDQyMTcgNDIxNSA0MjE0IDQyMGMgNDIwYiA0MjA5IDQyMDcgNDIwNSA0MjAzIDQyMDEgNDFmOSA0MWY3IDQxZjUgNDFmMyA0MWYwIDQxZTkgNDFlNyA0MWUzIDQxZTEgNDFkZiA0MWRkIDQxZGMgNDFjZCA0MWNjIDQxYzkgNDFjMyA0MWMxIDQxYzAgNDFiZiA0MWJkIDQxYmMgNDFiYiA0MWI5IDQxYjcgNDFiNSA0MWI0IDQxYjEgNDFhZCA0MWFiIDQxYTkgNDFhNyA0MWEzIDQxYTEgNDE5ZiA0MTlkIDQxOWMgNDE5YiA0MTk5IDQxOTMgNDE5MCA0MThmIDQxOGQgNDE4YyA0MThiIDQxODkgNDE4NyA0MTg1IDQxODMgNDE4MSA0MTdmIDQxN2QgNDE3YyA0MTdiIDQxNzkgNDE3NyA0MTc1IDQxNzQgNDE3MyA0MTcxIDQxNmYgNDE2ZCA0MTZjIDQxNmIgNDE2OSA0MTY3IDQxNjUgNDE2NCA0MTYzIDQxNjEgNDE1ZiA0MTVkIDQxNWMgNDE1YiA0MTU5IDQxNTcgNDE1NSA0MTU0IDQxNTMgNDE1MSA0MTRmIDQxNGQgNDE0YyA0MTRiIDQxNDkgNDE0NyA0MTQ1IDQxNDMgNDE0MSA0MTNmIDQxM2QgNDEzYiA0MTM5IDQxMzcgNDEzNSA0MTM0IDQxMzMgNDEzMSA0MTMwIDQxMmYgNDEyZCA0MTJjIDQxMmIgNDEyOSA0MTI3IDQxMjUgNDEyNCA0MTIzIDQxMjEgNDExZiA0MTFkIDQxMWIgNDExOSA0MTE3IDQxMTUgNDExNCA0MTEzIDQxMTEgNDExMCA0MTBmIDQxMGQgNDEwYiA0MTA5IDQxMDcgNDEwNSA0MTA0IDQxMDMgNDEwMSA0MGZmIDQwZmQgNDBmYiA0MGY5IDQwZjcgNDBmNSA0MGY0IDQwZjMgNDBmMSA0MGVmIDQwZWQgNDBlYyA0MGViIDQwZTkgNDBlNyA0MGU1IDQwZTMgNDBlMSA0MGRmIDQwZGQgNDBkYyA0MGRiIDQwZDkgNDBkNyA0MGQ1IDQwZDQgNDBkMyA0MGQxIDQwZDAgNDBjZiA0MGNkIDQwY2IgNDBjOSA0MGM3IDQwYzUgNDBjNCA0MGMzIDQwYzEgNDBjMCA0MGJiIDQwYjkgNDBiNyA0MGI1IDQwYjQgNDBiMyA0MGIxIDQwYjAgNDBhZiA0MGFkIDQwYWMgNDBhYiA0MGE5IDQwYTcgNDBhNSA0MGExIDQwOWYgNDA5ZCA0MDljIDQwOWIgNDA5NSA0MDk0IDQwOGYgNDA4YyA0MDg5IDQwODcgNDA4NSA0MDgzIDQwODEgNDA3ZiA0MDdkIDQwN2IgNDA3OSA0MDc3IDQwNzUgNDA3MyA0MDcxIDQwNmYgNDA2ZCA0MDZjIDQwNmIgNDA2OSA0MDY3IDQwNjUgNDA2NCA0MDYzIDQwNWYgNDA1ZCA0MDVjIDQwNWIgNDA1OSA0MDU3IDQwNTUgNDA1MyA0MDUxIDQwNTAgNDA0ZiA0MDRkIDQwNGMgNDA0OSA0MDQ3IDQwNDUgNDA0MyA0MDQxIDQwNDAgNDAzZiA0MDNkIDQwM2IgNDAzOSA0MDM3IDQwMzEgNDAyZiA0MDJkIDQwMmMgNDAyYiA0MDI5IDQwMjUgNDAyMyA0MDIxIDQwMWYgNDAxZCA0MDFjIDQwMWIgNDAxOSA0MDE3IDQwMTUgNDAxMyA0MDExIDQwMTAgNDAwZiA0MDBkIDQwMGMgNDAwYiA0MDA5IDQwMDcgNDAwNSA0MDAzIDQwMDEgM2ZmZiAzZmZkIDNmZmIgM2ZmOSAzZmY3IDNmZjUgM2ZmNCAzZmYzIDNmZjEgM2ZlZiAzZmVkIDNmZWMgM2ZlYiAzZmU5IDNmZTcgM2ZlNSAzZmU0IDNmZTMgM2ZlMSAzZmRmIDNmZGQgM2ZkYyAzZmRiIDNmZDkgM2ZkNyAzZmQ1IDNmZDMgM2ZkMSAzZmQwIDNmY2YgM2ZjZCAzZmNiIDNmYzkgM2ZjNyAzZmM1IDNmYzMgM2ZjMSAzZmMwIDNmYmYgM2ZiZCAzZmJiIDNmYjkgM2ZiNyAzZmI1IDNmYjQgM2ZiMyAzZmIxIDNmYjAgM2ZhZiAzZmFkIDNmYWMgM2ZhYiAzZmE5IDNmYTcgM2ZhNSAzZmEzIDNmYTEgM2Y5ZiAzZjlkIDNmOWIgM2Y5NyAzZjk1IDNmOTQgM2Y5MyAzZjkxIDNmOTAgM2Y4ZiAzZjhkIDNmOGMgM2Y4YiAzZjg3IDNmODUgM2Y4MyAzZjgxIDNmN2YgM2Y3YyAzZjdiIDNmNzkgM2Y3NyAzZjc0IDNmNzMgM2Y3MSAzZjZmIDNmNmQgM2Y2YyAzZjZiIDNmNjkgM2Y2NSAzZjYxIDNmNWYgM2Y1YyAzZjViIDNmNTkgM2Y1NyAzZjU0IDNmNTMgM2Y1MSAzZjRmIDNmNGQgM2Y0YyAzZjRiIDNmNDkgM2Y0NSAzZjQzIDNmNDEgM2Y0MCAzZjNmIDNmM2QgM2YzYiAzZjM5IDNmMzcgM2YzNSAzZjMzIDNmMzEgM2YzMCAzZjJmIDNmMmQgM2YyYiAzZjI5IDNmMjcgM2YyNSAzZjIzIDNmMjEgM2YxZiAzZjFkIDNmMWIgM2YxOSAzZjE3IDNmMTUgM2YxNCAzZjEzIDNmMTEgM2YxMCAzZjBmIDNmMGQgM2YwYiAzZjA5IDNmMDcgM2YwNSAzZjAzIDNmMDEgM2VmZiAzZWZkIDNlZmMgM2VmYiAzZWY5IDNlZjcgM2VmNSAzZWYzIDNlZjEgM2VmMCAzZWVmIDNlZWQgM2VlYiAzZWU5IDNlZTcgM2VlNSAzZWUzIDNlZTEgM2VkZiAzZWRkIDNlZGMgM2VkOSAzZWQ3IDNlZDUgM2VkMyAzZWQxIDNlZDAgM2VjZiAzZWNkIDNlY2IgM2VjOSAzZWM3IDNlYzUgM2VjMyAzZWMxIDNlYzAgM2ViZiAzZWI5IDNlYjcgM2ViNSAzZWI0IDNlYjMgM2ViMCAzZTlkIDNlOWIgM2U5NSAzZTk0IDNlOTMgM2U5MSAzZThmIDNlOGQgM2U4YyAzZThiIDNlODkgM2U4NyAzZTg1IDNlODMgM2U4MSAzZTdmIDNlNzAgM2U2OSAzZTY3IDNlNjUgM2U2NCAzZTYzIDNlNjEgM2U1ZiAzZTVkIDNlNWMgM2U1YiAzZTU5IDNlNTcgM2U1NSAzZTUzIDNlNTEgM2U1MCAzZTRmIDNlNGQgM2U0YyAzZTRiIDNlNDkgM2U0NyAzZTQ1IDNlNDMgM2U0MSAzZTQwIDNlM2YgM2UzYiAzZTM5IDNlMzcgM2UzNSAzZTMzIDNlMzEgM2UzMCAzZTJmIDNlMmQgM2UyYyAzZTJiIDNlMjkgM2UyNyAzZTI1IDNlMjMgM2UyMSAzZTFmIDNlMWQgM2UwNyAzZTA0IDNlMDMgM2UwMSAzZGZmIDNkZmQgM2RmYiAzZGY5IDNkZjcgM2RmNSAzZGY0IDNkZjEgM2RmMCAzZGVmIDNkZTkgM2RlNyAzZGU1IDNkZTQgM2RkYyAzZGRiIDNkZDkgM2RkNyAzZGQ1IDNkZDQgM2RkMyAzZGQxIDNkYzUgM2RjMyAzZGMwIDNkYjcgM2RiMCAzZDlkIDNkOWMgM2Q5OSAzZDk3IDNkOTEgM2Q4ZiAzZDg5IDNkODcgM2Q4NCAzZDgzIDNkN2MgM2Q3YiAzZDc5IDNkNzcgM2Q3NCAzZDY1IDNkNjQgM2Q2MyAzZDYxIDNkNWYgM2Q1YyAzZDU5IDNkNTUgM2Q1NCAzZDUzIDNkNGQgM2Q0YiAzZDQwIDNkMzUgM2QzMyAzZDJjIDNkMmIgM2NkNSAzY2QzIDNjY2MgM2NjMCAzY2FjIDNjNDAgM2MyYiAzYzI5IDNiZmQgM2JmYyAzYmViIDNiZTkgM2JlNyAzYmU0IDNiZTMgM2JlMSAzYmRmIDNiZGQgM2JkYyAzYmRiIDNiZDkgM2JkNyAzYmQ1IDNiZDQgM2JkMyAzYmQxIDNiZDAgM2JjZiAzYmNkIDNiY2IgM2JjOSAzYmM3IDNiYzUgM2JjMyAzYmMxIDNiYzAgM2JiZiAzYmJkIDNiYmMgM2JiYiAzYmI5IDNiYjcgM2JiNSAzYmI0IDNiYjMgM2JiMSAzYmFmIDNiYWQgM2JhYyAzYmFiIDNiYTkgM2JhNyAzYmE1IDNiYTQgM2JhMyAzYmExIDNiOWYgM2I5YyAzYjczIDNiNzAgM2I2ZCAzYjZiIDNiNTUgM2I1MyAzYjUwIDNiNGQgM2I0YiAzYjQ5IDNiNDcgM2I0MSAzYjNmIDNiM2MgM2IzOSAzYjM3IDNiMzUgM2IzMyAzYjMwIDNiMmQgM2IyYiAzYjE1IDNiMTAgM2IwYiAzYjA5IDNiMDcgM2IwNSAzYjA0IDNiMDMgM2IwMSAzYjAwIDNhZmYgM2FmZCAzYWZjIDNhZmIgM2FmOSAzYWU3IDNhZTUgM2FlNCAzYWUzIDNhZTEgM2FkNSAzYWQzIDNhZDAgM2FjZCAzYWNiIDNhYzAgM2FiNSAzYWIzIDNhYWQgM2E5MCAzYTU1IDNhNTQgM2E1MyAzYTUwIDNhNGQgM2E0YiAzYTQ5IDNhNDAgM2EzZCAzYTNjIDNhM2IgM2EzOSAzYTM3IDNhMzUgM2EzMyAzYTMxIDNhMzAgM2EyZiAzYTJkIDNhMmMgM2EyYiAzYTI5IDNhMjcgM2EyNSAzYTIzIDNhMjEgM2ExZiAzYTFkIDNhMWMgM2ExYiAzYTE5IDNhMTcgM2ExMCAzYTAzIDNhMDEgMzlmZiAzOWZkIDM5ZmMgMzlmYiAzOWY5IDM5ZjcgMzlmNSAzOWY0IDM5ZjMgMzlmMSAzOWYwIDM5ZWYgMzllZCAzOWVjIDM5ZWIgMzllOSAzOWU3IDM5ZTUgMzllMyAzOWUxIDM5YzAgMzliZiAzOWJkIDM5YTcgMzlhNSAzOWE0IDM5YTMgMzlhMSAzOTlmIDM5OWQgMzk5YyAzOTliIDM5OTkgMzk5NyAzOTk1IDM5OTQgMzk5MyAzOTkxIDM5OGYgMzk4ZCAzOThiIDM5ODkgMzk4NyAzOTg1IDM5ODQgMzk4MyAzOTgxIDM5N2YgMzk3ZCAzOTdjIDM5N2IgMzk3OSAzOTc3IDM5NzUgMzk3NCAzOTczIDM5NzEgMzk3MCAzOTZmIDM5NmQgMzk2YyAzOTZiIDM5NjkgMzk2NyAzOTY1IDM5NjQgMzk2MyAzOTYxIDM5NWYgMzk1ZCAzOTViIDM5NTkgMzk1NyAzOTUzIDM5NTEgMzk1MCAzOTRmIDM5NGQgMzk0YiAzOTQ5IDM5NDcgMzk0NSAzOTQ0IDM5NDMgMzk0MSAzOTQwIDM5M2YgMzkzZCAzOTNiIDM5MzkgMzkzNyAzOTM1IDM5MzMgMzkzMSAzOTMwIDM5MmYgMzkyZCAzOTJjIDM5MjkgMzkyNyAzOTI1IDM5MjMgMzkyMSAzOTFmIDM5MWQgMzkxYyAzOTFiIDM5MTkgMzkxNyAzOTE1IDM5MTQgMzkxMyAzOTExIDM5MTAgMzkwZiAzOTBkIDM5MGMgMzkwYiAzOTA5IDM5MDcgMzkwNSAzOTAzIDM5MDEgMzkwMCAzOGZmIDM4ZmQgMzhmYyAzOGYwIDM4ZWMgMzhlOSAzOGU3IDM4ZTUgMzhlMyAzOGUxIDM4ZGYgMzhkZCAzOGRjIDM4ZGIgMzhkOSAzOGQ3IDM4ZDUgMzhkNCAzOGQzIDM4ZDEgMzhjZiAzOGNkIDM4Y2MgMzhjYiAzOGM5IDM4YzcgMzhjNSAzOGM0IDM4YzMgMzhiZiAzOGJkIDM4YmMgMzhiYiAzOGI5IDM4YjcgMzhiNSAzOGI0IDM4YjMgMzhiMSAzOGIwIDM4YWYgMzhhZCAzOGFiIDM4YTkgMzhhNyAzOGE1IDM4YTMgMzhhMSAzODlmIDM4OWQgMzg5YiAzODk5IDM4OTcgMzg5NSAzODk0IDM4OTMgMzg5MSAzODkwIDM4ODkgMzg4NyAzODg1IDM4ODMgMzg4MSAzODdmIDM4N2QgMzg0MCAzODBjIDM4MDcgMzdjMCAzNzcwIDM3NmIgMzc1ZiAzNzVkIDM3NWMgMzc1YiAzNzU5IDM3NTcgMzc1NSAzNzU0IDM3NTMgMzc1MSAzNzRmIDM3NGQgMzc0YyAzNzRiIDM3NDkgMzc0NyAzNzQ1IDM3NDQgMzc0MyAzNzQxIDM3NDAgMzczZiAzNzNkIDM3M2IgMzczOSAzNzM3IDM3MzUgMzczNCAzNzMzIDM3MzEgMzcyZiAzNzJkIDM3MmMgMzcyNyAzNzI1IDM3MjEgMzcxNSAzNzAwIDM2ZjcgMzZmMyAzNmYxIDM2ZjAgMzZlZiAzNmVkIDM2ZWIgMzZlOSAzNmU1IDM2ZGMgMzZkYiAzNmQ3IDM2ZDUgMzZkMyAzNmQxIDM2Y2YgMzZjZCAzNmNiIDM2YzcgMzZjNSAzNmM0IDM2YzAgMzZiZiAzNmJjIDM2YjUgMzZiMyAzNmIxIDM2YWQgMzZhYyAzNmFiIDM2YTkgMzZhNSAzNmE0IDM2OWYgMzY5ZCAzNjljIDM2OWIgMzY5OSAzNjk0IDM2OTMgMzY4YyAzNjg0IDM2ODMgMzY4MSAzNjdmIDM2N2MgMzY3YiAzNjc5IDM2NzQgMzY2NSAzNjY0IDM2NjMgMzY1YiAzNjU0IDM2NTAgMzY0MSAzNjJkIDM2MmMgMzYyNyAzNjI0IDM2MjEgMzYxZiAzNjFjIDM2MTAgMzYwZiAzNjBiIDM2MDcgMzVmYyAzNWY0IDM1ZjMgMzVmMSAzNWVmIDM1ZWQgMzVlYyAzNWViIDM1ZTkgMzVlNyAzNWU1IDM1ZTQgMzVlMSAzNWRkIDM1ZGIgMzVkOSAzNWQ3IDM1ZDUgMzVkMSAzNWQwIDM1Y2YgMzVjZCAzNWNjIDM1Y2IgMzVjOSAzNWM3IDM1YzUgMzVjNCAzNWMzIDM1YzEgMzViZiAzNWJjIDM1YjkgMzViNyAzNWI1IDM1YjMgMzViMSAzNWIwIDM1YWQgMzVhYyAzNTliIDM1OTcgMzU5NSAzNTkxIDM1OGYgMzU4YyAzNThiIDM1ODUgMzU4NCAzNTdkIDM1N2IgMzU3OSAzNTc1IDM1NzQgMzU3MyAzNTcxIDM1NmYgMzU2ZCAzNTZiIDM1NjkgMzU2NyAzNTY1IDM1NjQgMzU2MyAzNTYxIDM1NWMgMzU1YiAzNTU5IDM1NTcgMzU1NSAzNTU0IDM1NTMgMzU1MSAzNTUwIDM1NGYgMzU0ZCAzNTRjIDM1NDkgMzU0NyAzNTQ1IDM1NDMgMzU0MSAzNTQwIDM1M2YgMzUzZCAzNTM5IDM1MzAgMzUyMSAzNTFmIDM1MTUgMzUxNCAzNTEwIDM1MGQgMzUwYyAzNTBiIDM1MDAgMzRmYiAzNGY1IDM0ZjAgMzRlNSAzNGUzIDM0ZTEgMzRkYyAzNDc5IDM0NzQgMzQ3MSAzNDcwIDM0NmYgMzQ2ZCAzNDZjIDM0NmIgMzQ2OSAzNDY3IDM0NjEgMzQ1ZiAzNDVkIDM0NWMgMzQ1MyAzNDRmIDM0NGQgMzQ0YyAzNDRiIDM0NDkgMzQ0NSAzNDQ0IDM0NDMgMzQ0MSAzNDQwIDM0M2YgMzQzYiAzNDM5IDM0MzcgMzQzNSAzNDMxIDM0MzAgMzQyZiAzNDJkIDM0MmMgMzQyYiAzNDI5IDM0MjcgMzQyMyAzNDIxIDM0MWYgMzQxZCAzNDFiIDM0MTkgMzQxNyAzNDE1IDM0MTQgMzQxMyAzNDExIDM0MTAgMzQwZiAzNDA3IDM0MDUgMzQwMyAzNDAxIDMzZjAgMzNkMCAzM2NiIDMzYmYgMzNiZCAzM2JjIDMzYmIgMzNiOSAzM2I3IDMzYjUgMzNiNCAzM2IxIDMzYjAgMzNhZiAzM2FkIDMzYWMgMzNhYiAzM2E5IDMzYTcgMzNhNSAzM2E0IDMzYTMgMzNhMSAzMzlmIDMzOWMgMzM5YiAzMzk5IDMzOTcgMzM5NSAzMzk0IDMzOTMgMzM5MSAzMzhmIDMzOGMgMzM4OSAzMzg3IDMzODUgMzM0MCAzMzBiIDMzMDkgMzMwNyAzMzA1IDMzMDMgMzMwMSAzMzAwIDMyZmYgMzJmZCAzMmZjIDMyZmIgMzJmOSAzMmY3IDMyZjQgMzJmMyAzMmQ1IDMyYjAgMzJhYiAzMmE5IDMyYTcgMzJhMSAzMjlmIDMyOWQgMzI5YiAzMjkxIDMyOTAgMzI4ZCAzMjhiIDMyODkgMzI4NyAzMjg0IDMyODMgMzI4MSAzMjdmIDMyN2QgMzI3YyAzMjdiIDMyNzkgMzI3NyAzMjc1IDMyNzQgMzI3MyAzMjcxIDMyNmIgMzI1YyAzMjViIDMyNTkgMzI1NyAzMjU1IDMyNTQgMzI1MyAzMjUxIDMyNTAgMzI0NSAzMjQzIDMyNDEgMzIzZiAzMjNkIDMyM2MgMzIzYiAzMjM5IDMyMzcgMzIzNSAzMjM0IDMyMzEgMzIzMCAzMjIzIDMyMjEgMzIxZiAzMjFkIDMyMWMgMzIxYiAzMjE5IDMyMTcgMzIxNSAzMjEzIDMyMTEgMzIwZiAzMjBkIDMyMGMgMzIwYiAzMjA5IDMyMDcgMzIwNSAzMjA0IDMyMDMgMzIwMSAzMWZmIDMxZmQgMzFmYyAzMWZiIDMxZjkgMzFmNyAzMWY1IDMxZjAgMzFlZiAzMWVkIDMxZWIgMzFlOSAzMWU1IDMxZTMgMzFlMSAzMWRmIDMxZGMgMzFkYiAzMWQ5IDMxZDcgMzFkNSAzMWQzIDMxZDEgMzFjZiAzMWNkIDMxY2MgMzFjYiAzMWM5IDMxYzUgMzFjNCAzMWMzIDMxYzAgMzFiZiAzMWI5IDMxYjcgMzFiNSAzMWI0IDMxYjMgMzFiMSAzMWFmIDMxYWQgMzFhYiAzMWE5IDMxYTcgMzFhNSAzMWE0IDMxYTMgMzFhMSAzMTlmIDMxOWMgMzE5OSAzMTk0IDMxOTAgMzE3NyAzMTc1IDMxNzQgMzE3MyAzMTcxIDMxNzAgMzE2ZiAzMTZkIDMxNmMgMzE2YiAzMTY5IDMxNWIgMzE1NCAzMTUzIDMxNTEgMzE1MCAzMTRmIDMxNGQgMzE0YyAzMTRiIDMxNDkgMzE0NyAzMTQ1IDMxNDQgMzE0MyAzMTQxIDMxNDAgMzEzZiAzMTNkIDMxM2MgMzEzYiAzMTM5IDMxMzcgMzEzNSAzMTM0IDMxMzMgMzEzMSAzMTMwIDMxMmYgMzEyZCAzMTJiIDMxMjkgMzEyNyAzMTI1IDMxMjMgMzEyMSAzMTFmIDMxMWQgMzExYiAzMTE5IDMxMTcgMzExNSAzMTE0IDMxMTMgMzExMSAzMTEwIDMxMGYgMzEwZCAzMTBjIDMxMGIgMzEwOSAzMTA3IDMxMDUgMzEwNCAzMTAzIDMwZmYgMzBmZCAzMGZiIDMwZjkgMzBmMCAzMGViIDMwZTkgMzBlNyAzMGU1IDMwZTQgMzBlMyAzMGUxIDMwZGYgMzBkZCAzMGRjIDMwZGIgMzBkOSAzMGQ3IDMwZDUgMzBkMyAzMGQxIDMwY2YgMzBjZCAzMGNiIDMwYzkgMzBjNyAzMGM1IDMwYzQgMzBjMyAzMGMxIDMwYzAgMzBiZiAzMGJiIDMwYjkgMzBiNyAzMGI1IDMwYjQgMzBiMyAzMGIxIDMwYWYgMzBhZCAzMGFjIDMwYWIgMzA5NSAzMDkwIDMwOGYgMzA4OSAzMDZjIDMwNjkgMzA2NSAzMDYzIDMwNWIgMzA1NyAzMDU1IDMwNTQgMzA1MyAzMDUxIDMwNGYgMzA0ZCAzMDRjIDMwNGIgMzA0NyAzMDQxIDMwNDAgMzAzZiAzMDNkIDMwM2MgMzAzYiAzMDM5IDMwMzcgMzAzNSAzMDM0IDMwMzMgMzAzMSAzMDMwIDMwMmYgMzAyZCAzMDJiIDMwMjkgMzAyNyAzMDI1IDMwMjMgMzAyMSAzMDFkIDMwMTAgMzAwMyAzMDAxIDMwMDAgMmZkNyAyZmQ1IDJmZDMgMmZkMSAyZmNkIDJmYzAgMmYwMCAyZWMwIDJlN2MgMmU3YiAyZTc5IDJlNzcgMmU3NSAyZTc0IDJlNzMgMmU3MSAyZTcwIDJlNmYgMmU2YyAyZTZiIDJlNjkgMmU2NyAyZTY1IDJlNDkgMmU0NyAyZTQzIDJlNDEgMmU0MCAyZTNmIDJlM2QgMmUzYiAyZTM5IDJlMzcgMmUzMyAyZTMxIDJlMzAgMmUyZiAyZTJkIDJlMmMgMmUyYiAyZTI5IDJlMjcgMmUyNSAyZTIzIDJlMWQgMmUxYyAyZTE3IDJlMTQgMmUxMSAyZTBmIDJlMDkgMmUwNyAyZTA1IDJlMDQgMmUwMyAyZTAxIDJkZmYgMmRmZCAyZGZiIDJkZjkgMmRmNyAyZGY1IDJkZjQgMmRmMyAyZGYxIDJkZjAgMmRlZiAyZGU5IDJkZTcgMmRlNSAyZGUzIDJkZGYgMmRkZCAyZGRjIDJkZGIgMmRkOSAyZGQ3IDJkZDUgMmRkNCAyZGQzIDJkZDEgMmRjZiAyZGNkIDJkY2MgMmRjYiAyZGM5IDJkYzUgMmRjNCAyZGMwIDJkYmYgMmRiZCAyZGJjIDJkYmIgMmRiOSAyZGI1IDJkYjQgMmRiMyAyZGIxIDJkYWYgMmRhZCAyZGFjIDJkYWIgMmRhNyAyZGE1IDJkYTMgMmRhMSAyZDlmIDJkOWMgMmQ5YiAyZDk5IDJkOTcgMmQ5NSAyZDk0IDJkOTMgMmQ5MSAyZDhmIDJkOGQgMmQ4YyAyZDhiIDJkODkgMmQ4NyAyZDg1IDJkODQgMmQ4MyAyZDgxIDJkN2QgMmQ3YyAyZDdiIDJkNzkgMmQ3NCAyZDczIDJkNzEgMmQ2ZiAyZDZkIDJkNmIgMmQ2OSAyZDY1IDJkNjQgMmQ2MyAyZDYxIDJkNWYgMmQ1ZCAyZDViIDJkNTkgMmQ1NyAyZDU1IDJkNTQgMmQ1MyAyZDUxIDJkNGYgMmQ0ZCAyZDRiIDJkNDkgMmQ0NyAyZDQ1IDJkNDQgMmQ0MSAyZDNmIDJkM2MgMmQzOSAyZDM3IDJkMzQgMmQzMSAyZDJmIDJkMmQgMmQyNyAyZDI0IDJkMjEgMmQxZiAyZDFkIDJkMTUgMmQxMCAyZDAzIDJkMDEgMmQwMCAyY2ZmIDJjZmQgMmNmYyAyY2Y5IDJjZjAgMmNkZiAyY2QwIDJjYzQgMmNjMSAyY2JmIDJjYmMgMmNiYiAyY2I5IDJjYjcgMmNiNSAyY2IwIDJjYWMgMmM5ZCAyYzljIDJjOTkgMmM5NCAyYzgxIDJjN2QgMmM3YyAyYzdiIDJjNjQgMmM1NyAyYzU1IDJjNTQgMmM1MSAyYzRmIDJjNGQgMmM0YiAyYzQwIDJjMGMgMmJmZiAyYmZkIDJiZjkgMmJmNyAyYmY1IDJiZjQgMmJmMyAyYmYxIDJiZjAgMmJlZCAyYmVjIDJiZTMgMmJlMSAyYmRkIDJiZGIgMmJkMyAyYmQxIDJiZDAgMmJjZiAyYmNkIDJiY2MgMmJjYiAyYmM3IDJiYzQgMmJjMSAyYmJkIDJiYmMgMmJiYiAyYmIzIDJiYjEgMmJhZiAyYmFkIDJiYWMgMmI5NCAyYjkzIDJiOTAgMmI4ZCAyYjhiIDJiNzAgMmI1MCAyYjRkIDJiNGMgMmIzYyAyYjM0IDJiMzMgMmIyYyAyYjIzIDJiMTAgMmIwMCAyYWY3IDJhZjEgMmFlYyAyYWU5IDJhZDAgMmFjZCAyYWNjIDJhYzcgMmFjMSAyYWMwIDJhYjcgMmFiNCAyYWIzIDJhYWQgMmE1YyAyYTViIDJhNTcgMmE1NCAyYTUzIDJhNTEgMmE1MCAyYTRkIDJhNGIgMmE0OSAyYTQ3IDJhNDUgMmEzYiAyYTM5IDJhMzcgMmEzNSAyYTM0IDJhMzMgMmEzMSAyYTJmIDJhMmQgMmEyYyAyNTQwIDI1MDAgMjRiNSAyNGI0IDI0OTAgMjNmMCAyM2UzIDIzMWYgMjMwMCAyMmYwIDIyZTEgMjI2YiAyMjQwIDIyM2QgMjIxZiAyMjFiIDIyMTkgMjIxNyAyMjE1IDIyMTQgMjIxMyAyMjBiIDIyMDQgMjIwMyAyMWZjIDIxZmIgMjFmNyAyMWY1IDIxZjQgMjFmMyAyMWYxIDIxZjAgMjFlOSAyMWU3IDIxZTUgMjFlNCAyMWRjIDIxZDQgMjFkMSAyMWM0IDIxYzMgMjE5MCAyMTgzIDIxN2QgMjE3YyAyMTc5IDIxMDAgMWZjMCAxZjY1IDFmNjQgMWY1ZiAxZjQwIDFmMmMgMWYyYiAxZjI5IDFmMjcgMWYyNCAxZjIxIDFmMWYgMWVmYiAxZWY5IDFlZjcgMWVmNSAxZWY0IDFlZjMgMWVmMSAxZWVmIDFlZWQgMWVlYyAxZWViIDFlZTkgMWVlNyAxZWU1IDFlZTQgMWVlMSAxZWRmIDFlZGQgMWVkYiAxZWQ5IDFlZDcgMWVkNSAxZWQzIDFlZDEgMWVjZiAxZWNkIDFlY2MgMWVjYiAxZWM5IDFlYzcgMWVjNSAxZWM0IDFlYzMgMWVjMSAxZWMwIDFlYmYgMWViZCAxZWJiIDFlYjkgMWViNyAxZWI1IDFlYjQgMWViMyAxZWIxIDFlYWQgMWVhYyAxZWE5IDFlYTcgMWVhNSAxZWEzIDFlYTEgMWU5ZiAxZTlkIDFlOWIgMWU5OSAxZTk3IDFlOTUgMWU5NCAxZTkzIDFlOTEgMWU5MCAxZThmIDFlOGQgMWU4YiAxZTg5IDFlODcgMWU4NSAxZTgzIDFlODEgMWU3ZiAxZTdkIDFlN2MgMWU3YiAxZTc5IDFlNjcgMWU2NSAxZTYzIDFlNjEgMWU1ZiAxZTVjIDFlNTkgMWU0MCAxZGQ3IDFkZDUgMWRkMyAxZGQxIDFkY2YgMWRjZCAxZGNjIDFkMzAgMWQwMCAxY2Q0IDFjYzAgMWNiMCAxY2FiIDFjNzcgMWM3NSAxYzc0IDFjNzMgMWM3MCAxYzZiIDFjNTAgMWM0MSAxYzNmIDFjM2QgMWMzYiAxYzM5IDFjMzcgMWMzNSAxYzM0IDFjMzMgMWMzMSAxYzMwIDFjMmYgMWMyZCAxYzJiIDFjMjkgMWMyNyAxYzI1IDFjMjQgMWMyMyAxYzIxIDFjMWYgMWMxOSAxYzE3IDFjMTQgMWMxMyAxYzBmIDFjMGQgMWMwYiAxYzA5IDFjMDcgMWMwNCAxYzAzIDFjMDEgMWJmZCAxYmY3IDFiZjUgMWJmMyAxYmYxIDFiZjAgMWJlZiAxYmVkIDFiZTUgMWJlNCAxYmUzIDFiZDUgMWJkNCAxYmQxIDFiZDAgMWJjYiAxYmM5IDFiYzQgMWJjMSAxYmJmIDFiYmQgMWJiYiAxYmI3IDFiYjUgMWJiMyAxYmIxIDFiYjAgMWJhZiAxYmEzIDFiYTEgMWI5NyAxYjk1IDFiOTMgMWI5MSAxYjkwIDFiOGYgMWI4ZCAxYjhiIDFiODkgMWI1MCAxYjQwIDFhZDAgMWFjMCAxYWIwIDFhYWIgMWE4OSAxYTg3IDFhODQgMWE4MyAxYTgxIDFhN2YgMWE3ZCAxYTdiIDFhNzkgMWE3NyAxYTc1IDFhNzMgMWE3MSAxYTcwIDFhNmMgMWE2YiAxYTY5IDFhNjcgMWE2NCAxYTYzIDFhNjEgMWE1ZiAxYTVkIDFhNWIgMWE1OSAxYTUzIDFhNTEgMWE1MCAxYTRmIDFhNGQgMWE0YiAxYTQ5IDFhNDUgMWE0NCAxYTQzIDFhNDEgMWE0MCAxYTNkIDFhMzUgMWEzMyAxYTMwIDFhMmYgMWEyZCAxYTI5IDFhMjcgMWEyNSAxYTIzIDFhMjEgMWExOSAxYTE1IDFhMTQgMWExMyAxYTBjIDE5ZjUgMTlmNCAxOWYwIDE5ZWYgMTllZCAxOWViIDE5ZTkgMTllNCAxOWRmIDE5ZGQgMTlkYyAxOWRiIDE5ZDkgMTlkNyAxOWQ1IDE5ZDQgMTlkMyAxOWQxIDE5Y2YgMTljZCAxOWNjIDE5Y2IgMTljOSAxOWM3IDE5YzUgMTljMyAxOWMxIDE5YmYgMTliZCAxOWJiIDE5YjkgMTliNyAxOWI1IDE5YjQgMTliMyAxOWIxIDE5YjAgMTlhZiAxOWFjIDE5YWIgMTlhOSAxOWE3IDE5YTUgMTlhMSAxOTljIDE5OTkgMTk5NCAxOTkzIDE5OGYgMTk4YyAxOTg5IDE5ODQgMTk4MyAxOTdjIDE5N2IgMTk3OSAxOTc3IDE5NzUgMTk3MyAxOTcxIDE5NzAgMTk2ZiAxOTZkIDE5NmIgMTk2NyAxOTY1IDE5NjMgMTk2MSAxOTVmIDE5NWMgMTk1YiAxOTU5IDE5NTcgMTk1NSAxOTUxIDE5NGYgMTk0ZCAxOTRjIDE5NGIgMTk0OSAxOTQ3IDE5NDUgMTk0NCAxOTQzIDE5NDEgMTk0MCAxOTNmIDE5M2QgMTkzYiAxOTM5IDE5MzcgMTkzNSAxOTM0IDE5MzMgMTkzMSAxOTMwIDE5MmYgMTkyZCAxOTJiIDE5MjkgMTkyNyAxOTI1IDE5MjMgMTkyMSAxOTFmIDE5MWQgMTkxYyAxOTFiIDE5MTkgMTkxNyAxOTE1IDE5MTQgMTkxMyAxOTExIDE5MGYgMTkwZCAxOTBiIDE5MDkgMTkwNyAxOTA1IDE5MDQgMTkwMyAxOTAxIDE4ZmYgMThmZCAxOGZjIDE4ZmIgMThmOSAxOGY1IDE4ZjMgMThmMSAxOGVmIDE4ZWQgMThlOSAxOGU0IDE4ZTMgMThlMSAxOGRmIDE4ZGQgMThkYiAxOGQ5IDE4ZDcgMThkNSAxOGQ0IDE4ZDMgMThkMSAxOGQwIDE4Y2YgMThjZCAxOGNiIDE4YzkgMThjNyAxOGM1IDE4YzQgMThjMyAxOGMxIDE4YzAgMThiZiAxOGI5IDE4YjAgMThhNCAxOGEzIDE4YTEgMTg5OSAxODk1IDE4OTMgMTg5MCAxODhkIDE4NWYgMTg1ZCAxODVjIDE4NWIgMTg1OSAxODU3IDE4NTUgMTg1NCAxODUzIDE4NTEgMTg1MCAxODRmIDE4NGQgMTg0YiAxODQ5IDE4NDcgMTg0NSAxODQ0IDE4NDMgMTg0MSAxODNmIDE4M2IgMTgzOSAxODM3IDE4MzUgMTgzNCAxODMzIDE4MzEgMTgzMCAxODJmIDE4MmQgMTgyYiAxODI5IDE4MjcgMTgyNSAxODI0IDE4MjMgMTgyMSAxODFmIDE4MWQgMTgxYyAxODE5IDE4MTcgMTgxNSAxODEwIDE4MDMgMTdmZiAxN2ZkIDE3ZmMgMTdmOSAxN2Y3IDE3ZjUgMTdmMyAxN2YwIDE3ZWYgMTdlZCAxN2ViIDE3ZTcgMTdlMyAxN2UxIDE3ZGMgMTdkNSAxN2Q0IDE3ZDEgMTdjYyAxN2NiIDE3YzkgMTdjMyAxN2MxIDE3YzAgMTdiZCAxN2JiIDE3YjkgMTdiNyAxN2I1IDE3YjMgMTdiMSAxN2IwIDE3YWYgMTdhZCAxN2FiIDE3YTkgMTdhNSAxN2EzIDE3OWYgMTc5ZCAxNzljIDE3OWIgMTc5NyAxNzk1IDE3OTQgMTc5MSAxNzhmIDE3OGQgMTc4YyAxNzhiIDE3ODkgMTc4NyAxNzg1IDE3ODQgMTc4MyAxNzgxIDE3N2YgMTc3ZCAxNzdjIDE3N2IgMTc3OSAxNzc3IDE3NzUgMTc3MyAxNzcxIDE3NzAgMTc2ZiAxNzZkIDE3NmIgMTc2OSAxNzY3IDE3NjUgMTc2NCAxNzYzIDE3NjEgMTc1ZiAxNzVkIDE3NWMgMTc1OSAxNzU3IDE3NTUgMTc1NCAxNzRjIDE3NDQgMTc0MyAxNzQwIDE3M2YgMTcyYyAxNzI0IDE3MjMgMTcyMSAxNzFjIDE3MTkgMTcxNCAxNzEzIDE3MTEgMTcxMCAxNzBkIDE3MGIgMTcwMSAxNzAwIDE2ZmQgMTZmYyAxNmY3IDE2ZjUgMTZmMyAxNmYxIDE2ZjAgMTZlZiAxNmVkIDE2ZWIgMTZlOSAxNmU3IDE2ZTUgMTZlMyAxNmUxIDE2ZGYgMTZkZCAxNmRiIDE2ZDcgMTZkNSAxNmQzIDE2ZDEgMTZjZiAxNmNkIDE2Y2MgMTZjYiAxNmM5IDE2YzUgMTZjNCAxNmMzIDE2YzEgMTZiNCAxNmIwIDE2OWQgMTY5YyAxNjliIDE2OTMgMTY5MCAxNjhmIDE2OGQgMTY4YiAxNjg5IDE2ODcgMTY4MyAxNjgxIDE2N2YgMTY3OSAxNjcwIDE2NmQgMTY2YyAxNjZiIDE2NjkgMTY2NyAxNjY1IDE2NjMgMTY2MSAxNjVmIDE2NWQgMTY1YyAxNjViIDE2NTcgMTY1NSAxNjUzIDE2NTEgMTY0ZiAxNjRkIDE2NGIgMTY0OSAxNjQ3IDE2NDUgMTY0NCAxNjQzIDE2NDEgMTYzZiAxNjNkIDE2M2MgMTYzYiAxNjM5IDE2MzcgMTYzNSAxNjMzIDE2MzEgMTYyZiAxNjJkIDE2MmMgMTYyOSAxNjI3IDE2MjUgMTYyNCAxNjIzIDE2MWYgMTYxZCAxNjFjIDE2MWIgMTYxOSAxNjEwIDE2MDkgMTYwNyAxNjA1IDE2MDQgMTYwMyAxNjAxIDE1ZmYgMTVmZCAxNWZiIDE1ZjkgMTVmNyAxNWY1IDE1ZjQgMTVmMyAxNWYxIDE1ZjAgMTVlZiAxNWVkIDE1ZWIgMTVlOSAxNWU3IDE1ZTUgMTVlNCAxNWUzIDE1ZGMgMTVkOSAxNWQ3IDE1ZDUgMTVkNCAxNWQzIDE1ZDEgMTVjZiAxNWNkIDE1Y2MgMTVjYiAxNWM0IDE1YzMgMTVjMSAxNWMwIDE1YmYgMTViZCAxNWJjIDE1YmIgMTViOSAxNWI1IDE1YjQgMTViMyAxNWIxIDE1YWYgMTVhZCAxNWFjIDE1YWIgMTVhOSAxNWE3IDE1YTUgMTVhNCAxNWEzIDE1YTEgMTU5ZiAxNTlkIDE1OWIgMTU5OSAxNTk3IDE1OTUgMTU5MyAxNTkxIDE1OGYgMTU4ZCAxNThjIDE1OGIgMTU4OSAxNTg3IDE1ODUgMTU4MyAxNTgxIDE1N2YgMTU3ZCAxNTdiIDE1NzkgMTU3NyAxNTc1IDE1NzQgMTU3MyAxNTcxIDE1NzAgMTU2ZiAxNTZkIDE1NmMgMTU2YiAxNTY5IDE1NjUgMTU2NCAxNTYzIDE1NWYgMTU1ZCAxNTVjIDE1NWIgMTU1OSAxNTU3IDE1NTUgMTU1MyAxNTUxIDE1NGYgMTU0ZCAxNTRjIDE1NGIgMTU0OSAxNTQ3IDE1NDUgMTU0NCAxNTQzIDE1NDEgMTU0MCAxNTNmIDE1M2QgMTUzYyAxNTNiIDE1MzcgMTUzNSAxNTMzIDE1MzEgMTUzMCAxNTJmIDE1MmQgMTUyYyAxNTJiIDE1MjkgMTUyNyAxNTI1IDE1MjMgMTUyMSAxNTFmIDE1MWQgMTUxYyAxNTFiIDE1MTkgMTUxNyAxNTE1IDE1MTMgMTUxMSAxNTEwIDE1MGYgMTUwZCAxNTBjIDE1MDkgMTUwNyAxNTA1IDE1MDQgMTUwMyAxNTAxIDE0ZmYgMTRmZCAxNGZjIDE0ZjkgMTRmNyAxNGY1IDE0ZWMgMTRlNyAxNGUzIDE0ZTEgMTRkZiAxNGRkIDE0ZGMgMTRkYiAxNGQ5IDE0ZDcgMTRkNSAxNGQ0IDE0ZDMgMTRkMSAxNGNmIDE0Y2QgMTRjYyAxNGNiIDE0YzkgMTRjNyAxNGM1IDE0YzQgMTRjMyAxNGMxIDE0YzAgMTRiZiAxNGJkIDE0YmMgMTRiYiAxNGI5IDE0YjcgMTRiNSAxNGI0IDE0YjMgMTRiMSAxNGFmIDE0YWQgMTRhYyAxNGFiIDE0YTkgMTRhNyAxNGE1IDE0YTQgMTRhMyAxNGExIDE0OWYgMTQ5ZCAxNDliIDE0OTkgMTQ5NyAxNDk1IDE0OTEgMTQ5MCAxNDg0IDE0ODEgMTQ3ZiAxNDdkIDE0N2MgMTQ3YiAxNDcwIDE0NmIgMTQ2OSAxNDY3IDE0NjMgMTQ2MSAxNDVmIDE0NWQgMTQ1YiAxNDU5IDE0NTcgMTQ1NSAxNDU0IDE0NTMgMTQ1MSAxNDUwIDE0NGYgMTQ0ZCAxNDRiIDE0NDkgMTQ0NyAxNDQ1IDE0NDQgMTQ0MyAxNDQxIDE0NDAgMTQzZiAxNDNjIDE0M2IgMTQzOSAxNDM3IDE0MzUgMTQzNCAxNDMxIDE0MmIgMTQyNyAxNDI1IDE0MjQgMTQyMyAxNDE5IDE0MTAgMTQwOSAxNDAzIDEzZjUgMTNmNCAxM2U1IDEzZTQgMTNkZiAxM2RjIDEzZGIgMTNjZiAxM2NjIDEzYzkgMTNjNyAxM2M1IDEzYzQgMTNiZiAxM2JkIDEzYmMgMTNiYiAxM2IwIDEzYWYgMTNhZCAxM2FjIDEzYWIgMTNhOSAxM2E3IDEzYTUgMTNhMyAxM2ExIDEzOWIgMTM5OSAxMzk1IDEzOTQgMTM5MCAxMzhmIDEzOGIgMTM4OSAxMzg1IDEzODMgMTM4MSAxMzdmIDEzNzAgMTM2YiAxMzY3IDEzNjMgMTM2MSAxMzVmIDEzNWQgMTM1YyAxMzViIDEzNTkgMTM1NyAxMzU1IDEzNTQgMTM1MyAxMzUxIDEzNGYgMTM0ZCAxMzRjIDEzNGIgMTM0NyAxMzQ1IDEzNDMgMTM0MSAxMzNmIDEzM2QgMTMzYiAxMzM5IDEzMzcgMTMzNSAxMzMzIDEzMzEgMTMzMCAxMzJmIDEzMmQgMTMyYyAxMzJiIDEzMjkgMTMyNSAxMzI0IDEzMWQgMTMxYiAxMzE5IDEzMTcgMTMxNSAxMzE0IDEzMTMgMTMxMSAxMzEwIDEzMGYgMTMwNSAxMzA0IDEzMDMgMTMwMSAxMzAwIDEyZmYgMTJmZCAxMmZjIDEyZmIgMTJmOSAxMmY3IDEyZjUgMTJmNCAxMmYzIDEyZjEgMTJlYyAxMmU3IDEyZTUgMTJlNCAxMmUzIDEyZTEgMTJkZiAxMmRkIDEyZGMgMTJkYiAxMmQ5IDEyZDcgMTJkNSAxMmQ0IDEyZDMgMTJkMSAxMmNmIDEyY2QgMTJjYyAxMmNiIDEyYzkgMTJjMCAxMmJmIDEyYmMgMTJiYiAxMmI3IDEyYjUgMTJiNCAxMmIzIDEyYjEgMTJiMCAxMmFmIDEyYWQgMTJhYiAxMmE5IDEyYTcgMTJhNSAxMmE0IDEyYTMgMTJhMSAxMjlmIDEyOWQgMTI5OSAxMjk3IDEyOTUgMTI5MCAxMjhmIDEyOGQgMTI4YiAxMjg5IDEyODcgMTI4NSAxMjgzIDEyODEgMTI3ZiAxMjdkIDEyN2MgMTI3OSAxMjc3IDEyNzUgMTI3NCAxMjcwIDEyNmYgMTI2NyAxMjY1IDEyNjMgMTI2MSAxMjVmIDEyNWQgMTI1YyAxMjU5IDEyNTcgMTI1NSAxMjU0IDEyNTMgMTI0ZiAxMjRkIDEyNGIgMTI0OSAxMjQ3IDEyNDUgMTI0MyAxMjQwIDEyMzkgMTIzNyAxMjM1IDEyMzQgMTIzMSAxMjJmIDEyMmQgMTIyMSAxMjFmIDEyMWMgMTIxMyAxMjBmIDEyMGMgMTIwYiAxMjA5IDEyMDcgMTIwMSAxMWZmIDExZmQgMTFmYiAxMWYxIDExZjAgMTFlNCAxMWUzIDExZGYgMTFkYyAxMWRiIDExZDkgMTFkNyAxMWQ1IDExZDMgMTFkMSAxMWNmIDExY2QgMTFjYyAxMWNiIDExYzkgMTFjNyAxMWM1IDExYmYgMTFiYiAxMWI5IDExYjcgMTFiNSAxMWI0IDExYjMgMTFiMSAxMWIwIDExYWYgMTFhZCAxMWFjIDExYWIgMTFhOSAxMWE3IDExYTUgMTE5OSAxMTk0IDExOTEgMTE5MCAxMThkIDExN2YgMTE3MCAxMTVmIDExNTAgMTEzYiAxMTM1IDExMzQgMTEzMyAxMTMxIDExMzAgMTEyZCAxMTJjIDExMjkgMTEyNSAxMTIzIDExMWYgMTExZCAxMTFjIDExMWIgMTExOSAxMTE3IDExMTQgMTExMSAxMTBmIDExMGMgMTEwNyAxMTA1IDExMDMgMTEwMSAxMTAwIDEwZmYgMTBmZCAxMGZiIDEwZjkgMTBmNyAxMGY1IDEwZjMgMTBmMSAxMGYwIDEwZWYgMTBlZCAxMGVjIDEwZWIgMTBlNyAxMGU1IDEwZTQgMTBlMyAxMGUxIDEwZGYgMTBkZCAxMGRjIDEwZDkgMTBjYyAxMGM0IDEwYzAgMTBiYyAxMGI5IDEwYjQgMTBiMSAxMGFkIDEwYWMgMTBhYiAxMGE5IDEwYTcgMTBhMSAxMDlmIDEwOWQgMTA5YyAxMDk5IDEwOTcgMTA5NSAxMDk0IDEwOTMgMTA4ZiAxMDhkIDEwOGMgMTA4YiAxMDg5IDEwODcgMTA4NCAxMDgzIDEwODEgMTA3ZiAxMDdkIDEwN2MgMTA3OSAxMDc3IDEwNzUgMTA3NCAxMDcxIDEwNmMgMTA2YiAxMDY5IDEwNjcgMTA2NSAxMDY0IDEwNjMgMTA2MSAxMDVmIDEwNWQgMTA1YyAxMDViIDEwNTkgMTA1NyAxMDU1IDEwNTQgMTA1MyAxMDUxIDEwNTAgMTA0ZiAxMDRkIDEwNGIgMTA0OSAxMDQ3IDEwNDUgMTA0MyAxMDQxIDEwNDAgMTAzZiAxMDNkIDEwM2MgMTAzYiAxMDM5IDEwMzcgMTAzNSAxMDMzIDEwMzEgMTAzMCAxMDJmIDEwMmQgMTAyYyAxMDJiIDEwMjkgMTAyNyAxMDI1IDEwMjMgMTAyMSAxMDEwIDEwMGIgMTAwOSAxMDA3IDEwMDQgMTAwMSAxMDAwIDBmZmYgMGZmOSAwZmY3IDBmZjUgMGZmNCAwZmYwIDBmZWMgMGZlOSAwZmU3IDBmZTQgMGZkZiAwZmRkIDBmZGMgMGZkYiAwZmQ5IDBmZDcgMGZkNSAwZmQ0IDBmZDMgMGZkMSAwZmNmIDBmY2QgMGZjYiAwZmM5IDBmYzcgMGZjNSAwZmMzIDBmYzEgMGZjMCAwZmJmIDBmYmQgMGZiYiAwZmI5IDBmYjcgMGZiNSAwZmI0IDBmYjMgMGZiMSAwZmIwIDBmYWYgMGZhZCAwZmFiIDBmYTkgMGZhNyAwZmE1IDBmYTQgMGZhMyAwZmExIDBmOTcgMGY5NSAwZjk0IDBmOTAgMGY4YyAwZjhiIDBmODcgMGY3MCAwZjVjIDBmMWQgMGYwZiAwZjBjIDBmMGIgMGYwOSAwZjA3IDBmMDUgMGYwNCAwZjAzIDBmMDEgMGYwMCAwZWZmIDBlZmQgMGVmYiAwZWY5IDBlZjcgMGVmNSAwZWY0IDBlZjMgMGVmMSAwZWYwIDBlZWYgMGVlZCAwZWViIDBlZTkgMGVlNyAwZWU1IDBlZTQgMGVlMyAwZWUxIDBlZGQgMGVjNCAwZWMzIDBlYzEgMGViMCAwZWExIDBlOWYgMGU5YyAwZTliIDBlOTkgMGU5NyAwZTk1IDBlOTQgMGU5MyAwZTkxIDBlOGQgMGU4YyAwZThiIDBlODkgMGU4NSAwZTg0IDBlNjkgMGU2NCAwZTYxIDBlNWYgMGU1ZCAwZTViIDBlNTkgMGU1NyAwZTU1IDBlNTQgMGU1MyAwZTUxIDBlNTAgMGU0ZiAwZTRkIDBlNGMgMGU0YiAwZTQ5IDBlNDcgMGU0NSAwZTQ0IDBlNDMgMGU0MSAwZTQwIDBlM2YgMGUzZCAwZTNiIDBlMzkgMGUzNyAwZTM1IDBlMzMgMGUzMSAwZTMwIDBlMmYgMGUyZCAwZTJjIDBlMmIgMGUyOSAwZTI3IDBlMjUgMGUyNCAwZTIxIDBlMTcgMGRmNyAwZGY1IDBkY2MgMGRjYiAwZGM5IDBkYzQgMGRjMCAwZGJmIDBkYmQgMGRiYiAwZGI5IDBkYjcgMGRiNSAwZGI0IDBkYjMgMGRiMSAwZGIwIDBkYWYgMGRhZCAwZGE5IDBkYTcgMGRhNSAwZGE0IDBkYTMgMGRhMSAwZDlmIDBkOWQgMGQ5YyAwZDliIDBkOTkgMGQ5NyAwZDk0IDBkOTEgMGQ4ZiAwZDhkIDBkOGMgMGQ4YiAwZDg3IDBkODUgMGQ4MyAwZDgxIDBkN2YgMGQ3YyAwZDdiIDBkNzkgMGQ3NyAwZDc1IDBkNzQgMGQ3MyAwZDcxIDBkNmYgMGQ2ZCAwZDZiIDBkNjkgMGQ2NyAwZDY1IDBkNjQgMGQ2MyAwZDYxIDBkNWYgMGQ1ZCAwZDVjIDBkNWIgMGQ1OSAwZDU3IDBkNTUgMGQ1NCAwZDUzIDBkNTEgMGQ0ZiAwZDRjIDBkNDkgMGQ0NyAwZDQ1IDBkNDQgMGQ0MyAwZDQxIDBkNDAgMGQzZiAwZDNkIDBkM2IgMGQzOSAwZDM3IDBkMzQgMGQzMyAwZDMxIDBkMmYgMGQyZCAwZDI5IDBkMjUgMGQyNCAwZDIzIDBkMWYgMGQxYiAwZDE5IDBkMTcgMGQxNSAwZDE0IDBkMTMgMGQxMSAwZDEwIDBkMGYgMGQwZCAwZDBiIDBkMDkgMGQwNSAwY2MwIDBjNzAgMGM2YiAwYzYxIDBjNWYgMGM1YyAwYzUwIDBjNGIgMGM0OSAwYzQ3IDBjNDQgMGM0MSAwYzNmIDBjM2MgMGMzYiAwYzM3IDBjMzUgMGMzMyAwYzMwIDBjMmYgMGMyOSAwYzI3IDBjMjUgMGMyMyAwYzIxIDBjMWYgMGI2NyAwYjVkIDBiNDkgMGI0NyAwYjQ1IDBiNDQgMGI0MyAwYjQwIDBiMzkgMGIzMyAwYjAwIDA5NGYgMDk0ZCAwOTRjIDA5NGIgMDkzNyAwOTM1IDA5MzQgMDkwMCAwODdmIDA4NzcgMDg3NCAwODEwIDA4MGMgMDgwNyAwODAxIDA3ZjkgMDdmNyAwN2Y1IDA3ZjMgMDdmMSAwN2YwIDA3ZWYgMDdlZCAwN2VjIDA3ZWIgMDdlOSAwN2QwIDA3YzcgMDdjMSAwN2JmIDA3YmQgMDdiYyAwN2JiIDA3YjkgMDdiNyAwN2I1IDA3YjMgMDdiMSAwN2IwIDA3YWYgMDdhZCAwN2FiIDA3YTkgMDdhNyAwN2E1IDA3YTMgMDdhMSAwNzlmIDA3OWQgMDc5YyAwNzliIDA3OTkgMDc5NyAwNzk1IDA3OTMgMDc5MSAwNzkwIDA3OGYgMDc4ZCAwNzhiIDA3ODkgMDc4NyAwNzg1IDA3ODMgMDc4MSAwNzdmIDA3N2QgMDc3YyAwNzdiIDA3NzkgMDc3NyAwNzc1IDA3NzMgMDc3MSAwNzZmIDA3NmQgMDc2YyAwNzZiIDA3NjkgMDc2NyAwNzY1IDA3NjMgMDc2MSAwNzVmIDA3NWQgMDc1YiAwNzU5IDA3NTcgMDc1NSAwNzU0IDA3NTMgMDc1MSAwNzRmIDA3NGQgMDc0YyAwNzRiIDA3NDkgMDc0NyAwNzQ1IDA3NDMgMDc0MSAwNzQwIDA3M2YgMDczYyAwNzM5IDA3MzcgMDczNSAwNzM0IDA3MWIgMDcxNyAwNzE1IDA3MTQgMDcxMyAwNzExIDA3MTAgMDcwZiAwNzBkIDA3MGIgMDcwOSAwNzA3IDA3MDUgMDcwMyAwNzAxIDA3MDAgMDY0MCAwNjM3IDA1NTUgMDU1MCAwNTQwIDA1MDAgMDRlYiAwNGMwIDAzMDAgMDEwMCAwMGNjIDAwY2IgMDBjOSAwMGM0IDAwYzEgMDBjMCAwMGJmIDAwYmQgMDBiYyAwMGJiIDAwYjkgMDBiNyAwMGI1IDAwYjMgMDBiMSAwMGIwIDAwYWYgMDBhZCAwMGFiIDAwYTkgMDBhNyAwMGE1IDAwYTQgMDBhMyAwMGExIDAwOWYgMDA5ZCAwMDliIDAwOTkgMDA5NyAwMDk1IDAwOTAgMDA4ZiAwMDg3IDAwODUgMDA4NCAwMDgzXCIuc3BsaXQoXCIgXCIpO3ZhciB1aj13aW5kb3c7ZnVuY3Rpb24gdmooYSxiKXthJiZiIT09bnVsbCYmYiE9Yi50b3AmJihiPWIudG9wKTt0cnl7cmV0dXJuIHRkKGJ8fHdpbmRvdykucm91bmQoKX1jYXRjaChjKXtyZXR1cm4gbmV3IG9kKC0xMjI0NTkzMywtMTIyNDU5MzMpfX07ZnVuY3Rpb24geGooYSxiKXt0aGlzLkI9YXwwO3RoaXMuQT1ifDB9ZnVuY3Rpb24geWooYSl7cmV0dXJuIGEuQSo0Mjk0OTY3Mjk2KyhhLkI+Pj4wKX1tPXhqLnByb3RvdHlwZTttLmlzU2FmZUludGVnZXI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLkE+PjIxO3JldHVybiBhPT0wfHxhPT0tMSYmISh0aGlzLkI9PTAmJnRoaXMuQT09LTIwOTcxNTIpfTtcbm0udG9TdHJpbmc9ZnVuY3Rpb24oYSl7YT1hfHwxMDtpZihhPDJ8fDM2PGEpdGhyb3cgRXJyb3IoXCJyYWRpeCBvdXQgb2YgcmFuZ2U6IFwiK2EpO2lmKHRoaXMuaXNTYWZlSW50ZWdlcigpKXt2YXIgYj15aih0aGlzKTtyZXR1cm4gYT09MTA/XCJcIitiOmIudG9TdHJpbmcoYSl9Yj0xNC0oYT4+Mik7dmFyIGM9TWF0aC5wb3coYSxiKSxkPVUoYyxjLzQyOTQ5NjcyOTYpO2M9emoodGhpcyxkKTtkPU1hdGguYWJzKHlqKEFqKHRoaXMsYy5tdWx0aXBseShkKSkpKTt2YXIgZT1hPT0xMD9cIlwiK2Q6ZC50b1N0cmluZyhhKTtlLmxlbmd0aDxiJiYoZT1cIjAwMDAwMDAwMDAwMDBcIi5zbGljZShlLmxlbmd0aC1iKStlKTtkPXlqKGMpO3JldHVybihhPT0xMD9kOmQudG9TdHJpbmcoYSkpK2V9O2Z1bmN0aW9uIEJqKGEpe3JldHVybiBhLkI9PTAmJmEuQT09MH1tLk89ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuQj09YS5CJiZ0aGlzLkE9PWEuQX07XG5tLmNvbXBhcmU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuQT09YS5BP3RoaXMuQj09YS5CPzA6dGhpcy5CPj4+MD5hLkI+Pj4wPzE6LTE6dGhpcy5BPmEuQT8xOi0xfTtmdW5jdGlvbiBDaihhKXt2YXIgYj1+YS5CKzF8MDtyZXR1cm4gVShiLH5hLkErIWJ8MCl9bS5hZGQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5BPj4+MTYsYz10aGlzLkEmNjU1MzUsZD10aGlzLkI+Pj4xNixlPWEuQT4+PjE2LGY9YS5BJjY1NTM1LGc9YS5CPj4+MTY7YT0odGhpcy5CJjY1NTM1KSsoYS5CJjY1NTM1KTtnPShhPj4+MTYpKyhkK2cpO2Q9Zz4+PjE2O2QrPWMrZjtyZXR1cm4gVSgoZyY2NTUzNSk8PDE2fGEmNjU1MzUsKChkPj4+MTYpKyhiK2UpJjY1NTM1KTw8MTZ8ZCY2NTUzNSl9O2Z1bmN0aW9uIEFqKGEsYil7cmV0dXJuIGEuYWRkKENqKGIpKX1cbm0ubXVsdGlwbHk9ZnVuY3Rpb24oYSl7aWYoQmoodGhpcykpcmV0dXJuIHRoaXM7aWYoQmooYSkpcmV0dXJuIGE7dmFyIGI9dGhpcy5BPj4+MTYsYz10aGlzLkEmNjU1MzUsZD10aGlzLkI+Pj4xNixlPXRoaXMuQiY2NTUzNSxmPWEuQT4+PjE2LGc9YS5BJjY1NTM1LGg9YS5CPj4+MTY7YT1hLkImNjU1MzU7dmFyIGs9ZSphO3ZhciBsPShrPj4+MTYpK2QqYTt2YXIgcD1sPj4+MTY7bD0obCY2NTUzNSkrZSpoO3ArPWw+Pj4xNjtwKz1jKmE7dmFyIHE9cD4+PjE2O3A9KHAmNjU1MzUpK2QqaDtxKz1wPj4+MTY7cD0ocCY2NTUzNSkrZSpnO3E9cSsocD4+PjE2KSsoYiphK2MqaCtkKmcrZSpmKSY2NTUzNTtyZXR1cm4gVSgobCY2NTUzNSk8PDE2fGsmNjU1MzUscTw8MTZ8cCY2NTUzNSl9O1xuZnVuY3Rpb24gemooYSxiKXtpZihCaihiKSl0aHJvdyBFcnJvcihcImRpdmlzaW9uIGJ5IHplcm9cIik7aWYoYS5BPDApe2lmKGEuTyhEaikpe2lmKGIuTyhFail8fGIuTyhGaikpcmV0dXJuIERqO2lmKGIuTyhEaikpcmV0dXJuIEVqO3ZhciBjPXpqKEdqKGEsMSksYikuc2hpZnRMZWZ0KDEpO2lmKGMuTyhIaikpcmV0dXJuIGIuQTwwP0VqOkZqO2E9QWooYSxiLm11bHRpcGx5KGMpKTtyZXR1cm4gYy5hZGQoemooYSxiKSl9cmV0dXJuIGIuQTwwP3pqKENqKGEpLENqKGIpKTpDaih6aihDaihhKSxiKSl9aWYoQmooYSkpcmV0dXJuIEhqO2lmKGIuQTwwKXJldHVybiBiLk8oRGopP0hqOkNqKHpqKGEsQ2ooYikpKTtmb3IodmFyIGQ9SGo7YS5jb21wYXJlKGIpPj0wOyl7Yz1NYXRoLm1heCgxLE1hdGguZmxvb3IoeWooYSkveWooYikpKTt2YXIgZT1NYXRoLmNlaWwoTWF0aC5sb2coYykvTWF0aC5MTjIpO2U9ZTw9NDg/MTpNYXRoLnBvdygyLGUtNDgpO2Zvcih2YXIgZj1JaihjKSxnPWYubXVsdGlwbHkoYik7Zy5BPFxuMHx8Zy5jb21wYXJlKGEpPjA7KWMtPWUsZj1JaihjKSxnPWYubXVsdGlwbHkoYik7QmooZikmJihmPUVqKTtkPWQuYWRkKGYpO2E9QWooYSxnKX1yZXR1cm4gZH1tLmFuZD1mdW5jdGlvbihhKXtyZXR1cm4gVSh0aGlzLkImYS5CLHRoaXMuQSZhLkEpfTttLm9yPWZ1bmN0aW9uKGEpe3JldHVybiBVKHRoaXMuQnxhLkIsdGhpcy5BfGEuQSl9O20ueG9yPWZ1bmN0aW9uKGEpe3JldHVybiBVKHRoaXMuQl5hLkIsdGhpcy5BXmEuQSl9O20uc2hpZnRMZWZ0PWZ1bmN0aW9uKGEpe2EmPTYzO2lmKGE9PTApcmV0dXJuIHRoaXM7dmFyIGI9dGhpcy5CO3JldHVybiBhPDMyP1UoYjw8YSx0aGlzLkE8PGF8Yj4+PjMyLWEpOlUoMCxiPDxhLTMyKX07ZnVuY3Rpb24gR2ooYSxiKXtiJj02MztpZihiPT0wKXJldHVybiBhO3ZhciBjPWEuQTtyZXR1cm4gYjwzMj9VKGEuQj4+PmJ8Yzw8MzItYixjPj5iKTpVKGM+PmItMzIsYz49MD8wOi0xKX1cbmZ1bmN0aW9uIEpqKGEsYil7YiY9NjM7aWYoYj09MClyZXR1cm4gYTt2YXIgYz1hLkE7cmV0dXJuIGI8MzI/VShhLkI+Pj5ifGM8PDMyLWIsYz4+PmIpOmI9PTMyP1UoYywwKTpVKGM+Pj5iLTMyLDApfWZ1bmN0aW9uIElqKGEpe3JldHVybiBhPjA/YT49MHg3ZmZmZmZmZmZmZmZmZmZmP0tqOm5ldyB4aihhLGEvNDI5NDk2NzI5Nik6YTwwP2E8PS0weDdmZmZmZmZmZmZmZmZmZmY/RGo6Q2oobmV3IHhqKC1hLC1hLzQyOTQ5NjcyOTYpKTpIan1mdW5jdGlvbiBVKGEsYil7cmV0dXJuIG5ldyB4aihhLGIpfXZhciBIaj1VKDAsMCksRWo9VSgxLDApLEZqPVUoLTEsLTEpLEtqPVUoNDI5NDk2NzI5NSwyMTQ3NDgzNjQ3KSxEaj1VKDAsMjE0NzQ4MzY0OCk7dmFyIExqPU1hdGguUEkvMTgwLE1qPVtbMCwxLDMsMl0sWzAsMiwzLDFdLFszLDIsMCwxXSxbMywxLDAsMl1dLE5qPVtdLE9qPVsxLDAsMCwzXTtmdW5jdGlvbiBQaihhLGIsYyxkLGUsZil7aWYoYT09NClOalsoKGI8PDQpK2M8PDIpK2RdPShlPDwyKStmO2Vsc2V7YSsrO2I8PD0xO2M8PD0xO2U8PD0yO2Zvcih2YXIgZz0wO2c8NDtnKyspe3ZhciBoPU1qW2ZdW2ddO1BqKGEsYisoaD4+PjEpLGMrKGgmMSksZCxlK2csZl5PaltnXSl9fX1QaigwLDAsMCwwLDAsMCk7UGooMCwwLDAsMSwwLDEpO1BqKDAsMCwwLDIsMCwyKTtQaigwLDAsMCwzLDAsMyk7ZnVuY3Rpb24gUWooYSxiKXt0aGlzLkZkPWE7dGhpcy5HZD1ifVFqLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiKFwiK3RoaXMuRmQrXCIsIFwiK3RoaXMuR2QrXCIpXCJ9O2Z1bmN0aW9uIFJqKGEsYixjKXt0aGlzLmZhY2U9YTt0aGlzLm5nPWI7dGhpcy52PWN9ZnVuY3Rpb24gU2ooYSxiLGMpe3RoaXMueD1hO3RoaXMueT1iO3RoaXMuej1jfVNqLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIDA9PWE/dGhpcy54OjE9PWE/dGhpcy55OnRoaXMuen07U2oucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe3ZhciBhPU1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueik7YSE9MCYmKGE9MS9hKTtyZXR1cm4gbmV3IFNqKGEqdGhpcy54LGEqdGhpcy55LGEqdGhpcy56KX07XG5Tai5wcm90b3R5cGUuZmFjZT1mdW5jdGlvbigpe3ZhciBhPVtNYXRoLmFicyh0aGlzLngpLE1hdGguYWJzKHRoaXMueSksTWF0aC5hYnModGhpcy56KV07YT1hWzBdPmFbMV0/YVswXT5hWzJdPzA6MjphWzFdPmFbMl0/MToyO1t0aGlzLngsdGhpcy55LHRoaXMuel1bYV08MCYmKGErPTMpO3JldHVybiBhfTtmdW5jdGlvbiBUaihhLGIpe2E9W2EueCxhLnksYS56XTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiBuZXcgUmooYixhWzFdL2FbMF0sYVsyXS9hWzBdKTtjYXNlIDE6cmV0dXJuIG5ldyBSaihiLC1hWzBdL2FbMV0sYVsyXS9hWzFdKTtjYXNlIDI6cmV0dXJuIG5ldyBSaihiLC1hWzBdL2FbMl0sLWFbMV0vYVsyXSk7Y2FzZSAzOnJldHVybiBuZXcgUmooYixhWzJdL2FbMF0sYVsxXS9hWzBdKTtjYXNlIDQ6cmV0dXJuIG5ldyBSaihiLGFbMl0vYVsxXSwtYVswXS9hWzFdKTtkZWZhdWx0OnJldHVybiBuZXcgUmooYiwtYVsxXS9hWzJdLC1hWzBdL2FbMl0pfX1cblNqLnByb3RvdHlwZS5hbmdsZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnkqYS56LXRoaXMueiphLnksYz10aGlzLnoqYS54LXRoaXMueCphLnosZD10aGlzLngqYS55LXRoaXMueSphLng7cmV0dXJuIE1hdGguYXRhbjIoTWF0aC5zcXJ0KGIqYitjKmMrZCpkKSx0aGlzLngqYS54K3RoaXMueSphLnkrdGhpcy56KmEueil9O2Z1bmN0aW9uIFVqKGEpe3JldHVybiBhPj0wPy41Kk1hdGguc3FydCgxKzMqYSk6MS0uNSpNYXRoLnNxcnQoMS0zKmEpfTtmdW5jdGlvbiBWaihhKXt0aGlzLkk9YX1tPVZqLnByb3RvdHlwZTttLk89ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPW51bGwmJnRoaXMuSS5PKGEuSSl9O20udG9TdHJpbmc9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09XCJ1bmRlZmluZWRcIj9Xaih0aGlzLDE2KTpXaih0aGlzLGEpfTttLmZhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gSmoodGhpcy5JLDYxKS5CfTttLmxldmVsPWZ1bmN0aW9uKCl7dmFyIGE9RWo7aWYodGhpcy5JLmFuZChhKS5PKGEpKXJldHVybiAzMDthPTA7dmFyIGI9dGhpcy5JLkI+Pj4wO2I9PT0wJiYoYSs9MzIsYj1Kaih0aGlzLkksMzIpLkI+Pj4wKTthKz1NYXRoLmxvZyhiJi1iKS9NYXRoLkxOMjtyZXR1cm4gMzAtKGE+PjEpfTttLnBhcmVudD1mdW5jdGlvbigpe3ZhciBhPVhqKHRoaXMpLnNoaWZ0TGVmdCgyKTtyZXR1cm4gbmV3IFZqKHRoaXMuSS5hbmQoQ2ooYSkpLm9yKGEpKX07bS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWaih0aGlzLkkuYWRkKFhqKHRoaXMpLnNoaWZ0TGVmdCgxKSkpfTtcbm0ucmFuZ2VNaW49ZnVuY3Rpb24oKXt2YXIgYT1FajtyZXR1cm4gbmV3IFZqKEFqKHRoaXMuSSxBaihYaih0aGlzKSxhKSkpfTttLnJhbmdlTWF4PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWaih0aGlzLkkuYWRkKEFqKFhqKHRoaXMpLEVqKSkpfTttLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3ZhciBiPWEuSSxjPXRoaXMucmFuZ2VNYXgoKS5JO2lmKGI9Yi5jb21wYXJlKGMpPD0wKWE9YS5JLGI9dGhpcy5yYW5nZU1pbigpLkksYj1hLmNvbXBhcmUoYik+PTA7cmV0dXJuIGJ9O2Z1bmN0aW9uIFhqKGEpe3JldHVybiBhLkkuYW5kKENqKGEuSSkpfVxuZnVuY3Rpb24gV2ooYSxiKXtpZihCaihhLkkpKXJldHVyblwiMFwiO2lmKGI9PTE2KXt2YXIgYz1BcnJheSg2NCksZD0wLGU9ITE7YT13KFthLkkuQSxhLkkuQl0pO2ZvcihiPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSl7Yj1iLnZhbHVlO2Zvcih2YXIgZj0yODtmPj0wO2YtPTQpe3ZhciBnPWI+Pj5mJjE1OyhlPWV8fGcpJiYoY1tkXT1ZaltnXSk7ZCsrfX1yZXR1cm4gYy5qb2luKFwiXCIpfWM9YS5JO2Q9QXJyYXkoNjQpO2U9NjQ7YT1uZXcgeGooYiwwKTtjLkE8MCYmKGI9emooSmooYywxKSxhKS5zaGlmdExlZnQoMSksZj1BaihjLGIubXVsdGlwbHkoYSkpLGI9Yi5hZGQoZi5jb21wYXJlKGEpPj0wP0VqOkhqKSxmPUFqKGMsYi5tdWx0aXBseShhKSksZFstLWVdPVlqW2YuQl0sYz1uZXcgeGooYi5CPj4+MCxiLkEpKTtmb3IoO2MuY29tcGFyZShIaik+MDspYj0tLWUsZj1jLGc9YSxmPUFqKGYsemooZixnKS5tdWx0aXBseShnKSksZFtiXT1ZaltmLkJdLGM9emooYyxhKTtyZXR1cm4gZC5qb2luKFwiXCIpfVxuKG5ldyB4aig2LDApKS5zaGlmdExlZnQoNjEpO3ZhciBZaj1cIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elwiLnNwbGl0KFwiXCIpO2Z1bmN0aW9uIFpqKCl7dmFyIGE9YT09PXZvaWQgMD9kb2N1bWVudDphO3ZhciBiO3JldHVybiEoKGI9YS5mZWF0dXJlUG9saWN5KT09bnVsbHx8IWIuYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoXCJhdHRyaWJ1dGlvbi1yZXBvcnRpbmdcIikpfTtmdW5jdGlvbiBWKGEsYixjLGQsZSxmLGcsaCxrLGwpe2w9bD09PXZvaWQgMD9bXTpsO3RoaXMuTT1hO3RoaXMuVGE9dGhpcy5HYj10aGlzLkZiPTA7dGhpcy5vcHRpb25zPXt9O3RoaXMuY29udGFpbmVyPW51bGw7dGhpcy5pYT1rPT09dm9pZCAwPzE6azt0aGlzLkxiPWM7dGhpcy5ZPWh8fFtdO3RoaXMuSmQ9ZXx8bnVsbDt0aGlzLk1hPXRoaXMucWQ9dGhpcy5qYj0hMTt0aGlzLlY9bmV3IGdjKG51bGwpO3RoaXMuWmM9dGhpcy5BYT10aGlzLkphPXRoaXMuWGQ9XCJcIjt0aGlzLnpiPXRoaXMuUD0hMTt0aGlzLnlkPVwiXCI7dGhpcy5pYj1uZXcgY2MoXCJcIik7dGhpcy5uYT1sO3RoaXMuU2M9dGhpcy56YT10aGlzLnhiPTA7dGhpcy5NZj1kO3RoaXMuR2E9bnVsbDt0aGlzLmtkPVtdO3RoaXMuVz17fTt0aGlzLm1hPXRoaXMuQmI9bnVsbDt0aGlzLkNjKGIsZixnLGgpfW09Vi5wcm90b3R5cGU7XG5tLmVjPWZ1bmN0aW9uKGEpe2lmKHRoaXMuUClyZXR1cm5cIm4wXCI7dmFyIGI9dGhpcy5HYixjPXRoaXMuRmIsZD10aGlzLlRhO2EhPW51bGwmJihiKz1cIm1pblRvcFwiaW4gYT9hLm1pblRvcDowLGMrPVwibWF4VG9wXCJpbiBhP2EubWF4VG9wOjAsZCs9XCJyaHNcImluIGE/YS5yaHM6MCk7aWYoYyYmYj5jKXRocm93IHFjKFwiQ2Fubm90IHJlcXVlc3QgbW9yZSBtaW5Ub3AgYWRzIHRoYW4gbWF4VG9wLlwiKTtyZXR1cm4oZD4wP1wiblwiK2Q6XCJcIikrKGM+MD9cInBcIitjOlwiXCIpKyhiPjA/XCJhXCIrYjpcIlwiKX07bS5qYz1mdW5jdGlvbihhLGIpe2E9dGhpcy5YKGEpO2ImJmIubGVuZ3RoPjAmJihiLnNwbGljZSgwLDAsYSksYT1iLmpvaW4oXCJ8XCIpKTtyZXR1cm4gYX07bS5YPWZ1bmN0aW9uKGEpe3RoaXMuVGE9YS5udW1iZXI7dmFyIGI7dGhpcy5GYnx8dGhpcy5HYj9iPVwicFwiOnRoaXMuVGEmJihiPVwiblwiKTtyZXR1cm5cIlwiK2IrKHRoaXMuRmJ8fHRoaXMuR2J8fHRoaXMuVGF8fDApfTttLmFlPWZ1bmN0aW9uKCl7fTtcbm0uZWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXt9O2Euc2V0dGluZ3NJZCYmIWEuc3R5bGVJZCYmKGEuc3R5bGVJZD1hLnNldHRpbmdzSWQpO2RlbGV0ZSBhLnNldHRpbmdzSWQ7YS5oYXNPd25Qcm9wZXJ0eShcInBlcnNvbmFsaXNlZEFkc1wiKSYmKGEuaGFzT3duUHJvcGVydHkoXCJwZXJzb25hbGl6ZWRBZHNcIik/YS5wZXJzb25hbGl6ZWRBZHM9YS5wZXJzb25hbGlzZWRBZHMmJmEucGVyc29uYWxpemVkQWRzOmEucGVyc29uYWxpemVkQWRzPWEucGVyc29uYWxpc2VkQWRzKTthLmhhc093blByb3BlcnR5KFwicGVyc29uYWxpemVkQWRzXCIpJiZkZWxldGUgYS5wZXJzb25hbGlzZWRBZHM7YS5yZWZlcnJlckFkQ3JlYXRpdmUmJihhLmt3P2NvbnNvbGUud2FybihcIkNhbm5vdCBzZXQgYm90aCByZWZlcnJlckFkQ3JlYXRpdmUgYW5kIGt3LCBpZ25vcmluZyByZWZlcnJlckFkQ3JlYXRpdmVcIik6YS5rdz1hLnJlZmVycmVyQWRDcmVhdGl2ZSxkZWxldGUgYS5yZWZlcnJlckFkQ3JlYXRpdmUpO2EuY21wU2RrSWQmJlxuIWEudGNTdHJpbmcmJihhLnRjU3RyaW5nPVwidGN1bmF2YWlsYWJsZVwiKTthLmdkcHJBcHBsaWVzPT0xP2EuZ2RwckFwcGxpZXM9ITA6YS5nZHByQXBwbGllcz09MCYmKGEuZ2RwckFwcGxpZXM9ITEpO2lmKGEudXNQcml2YWN5KXt2YXIgZT1vaihhLnVzUHJpdmFjeSk7YS5jcHA9ZTtlPT09MiYmKGQucGVyc29uYWxpemVkQWRzPSExKX1hLnR5cGU9PVwicGxhc1wiJiZhLnN0eWxlSWQmJih0aGlzLk0ud2lkdGguRWM9ITEsdGhpcy5NLmhlaWdodC5FYz0hMSk7ZT1hLmNoYXRib3RVc2VyUHJvbXB0IT09bnVsbCYmYS5jaGF0Ym90VXNlclByb21wdCE9PVwiXCImJmEuY2hhdGJvdFVzZXJQcm9tcHQhPT12b2lkIDA7Zm9yKHZhciBmPXcoT2JqZWN0LmtleXModGhpcy5NKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpaWYoZz1nLnZhbHVlLHRoaXMuTVtnXS5FYyYmKGc9PVwicXVlcnlcIiYmKGFbZ109PW51bGx8fGFbZ109PVwiXCIpfHxnIT1cInF1ZXJ5XCImJiFhW2ddKSl7aWYoIWUmJmc9PVwicXVlcnlcIil0aHJvdyBxYyhcIk1pc3Npbmcgb3B0aW9uICdcIitcbmcrXCInLlwiKTt9ZWxzZSB0eXBlb2YgYVtnXSE9XCJ1bmRlZmluZWRcIiYmYVtnXSE9bnVsbCYmKGRbZ109YVtnXSk7ZSYmKGQucXVlcnk9YS5jaGF0Ym90VXNlclByb21wdCk7YS5zaG9wcGluZ0Fkc0luQ2Fyb3VzZWw9PT0hMSYmZGVsZXRlIGQubnVtUmVwZWF0ZWQ7YS5ydXJsT3ZlcnJpZGUmJihjb25zb2xlLndhcm4oXCJhZHRlc3QgaXMgZW5hYmxlZCB3aGVuIGFuIHJ1cmxPdmVycmlkZSB2YWx1ZSBpcyBwcm92aWRlZFwiKSxkLmFkdGVzdD1cIm9uXCIpO2lmKGU9UWQoeC5sb2NhdGlvbi5ocmVmLFwiZ29vZ2xlX2Fmc2V4cFwiKSlkLmFmc2V4cD1lLGQuYWR0ZXN0PVwib25cIixjb25zb2xlLndhcm4oXCJhZHRlc3QgaXMgZW5hYmxlZCB3aGVuIGdvb2dsZV9hZnNleHAgaXMgdXNlZFwiKTt0aGlzLlA9YS5yb2xlIT1cIm1cIjt0aGlzLkZhKGQpO3RoaXMuUHx8YWsoZCk7ZC5hZExvYWRlZENhbGxiYWNrPWEuYWRMb2FkZWRDYWxsYmFja3x8YS5jYWxsYmFja3x8bnVsbDtkLm9lPWQub2V8fFwiVVRGLThcIjtkLmllPVxuZC5pZXx8XCJVVEYtOFwiO2QubnVtYmVyPWJrKGQubnVtYmVyKTtkLm1pblRvcD1iayhkLm1pblRvcCk7ZC5tYXhUb3A9YmsoZC5tYXhUb3ApO2QuZmV4cD0oZC5mZXhwP2QuZmV4cCtcIixcIjpcIlwiKSsoZC5nY3NjP1wiMjA2MDZcIjpcIjIxNDA0XCIpOyhlPVViKFwiY2VpXCIsV2IoKSl8fFwiXCIpJiYoZC5mZXhwKz1cIixcIitlKTtzaigpPT09MTczMDEzNjcmJihkLmZleHArPVwiLDE3MzAxMzY3XCIpO3NqKCk9PT0xNzMwMTM2OCYmKGQuZmV4cCs9XCIsMTczMDEzNjhcIik7ZC5mb3JjZUV4IT12b2lkIDAmJihkLmZvcmNlRXg9PT1cIk1vc3RMYXVuY2hlc1wiPyhkLmU9XCJNb3N0TGF1bmNoZXNcIixkZWxldGUgZC5mb3JjZUV4KTpkLmV8fChkLmU9XCJPbmx5Rm9yY2VkRXhwZXJpbWVudHNcIikpO2lmKHooXCJfZW5hYmxlTmV3Q29uc2VudFN0cmF0ZWd5XCIpfHxlLmluY2x1ZGVzKFwiMTczMDE0MThcIikpZC5jbGllbnRfZ2RwckFwcGxpZXM9QmkuRihYYihcImNkbFwiLFdiKCkpKTtkLmdjc2MmJmEucG9zaXRpb249PVwidG9wXCImJlxuKGQubWF4VG9wPWEubnVtYmVyLGQubnVtYmVyPW51bGwpO2QuZm9ybWF0PXRoaXMuUD90aGlzLlgoZCk6dGhpcy5qYyhkLGIpO3RoaXMueWQ9ZC5mb3JtYXQ7ZC5hZHM9dGhpcy5lYyhjKTtkLm5vY2FjaGU9W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxRTMpLERhdGUubm93KCldLmpvaW4oXCJcIik7ZC5udW09XCIwXCI7ZC5vdXRwdXQ9dGhpcy5MYi50YigpO2lmKHRoaXMuTGIuSGMoKSl0cnl7ZC5kb21haW5OYW1lfHwoZC5kb21haW5OYW1lPXdpbmRvdy5kb2N1bWVudC5kb21haW4pLGQuZG9tYWluTmFtZT1kLmRvbWFpbk5hbWUuc3Vic3RyaW5nKDAsODApfWNhdGNoKGgpe31lbHNlIGRlbGV0ZSBkLmRvbWFpbk5hbWU7ZC5nY3NjJiYoZC5zb3VyY2U9XCJnY3NjXCIpO2Qudj1cIjNcIjt0eXBlb2YgZC5wdWJJZCE9PVwic3RyaW5nXCImJihkLnB1YklkPVwiXCIrZC5wdWJJZCk7ZC5wdWJJZC5pbmRleE9mKFwicGFydG5lci1cIik9PTAmJihkLnB1YklkPWQucHViSWQuc3Vic3RyaW5nKDgpKTt0eXBlb2YgZC5ob3N0UHViSWQhPT1cblwidW5kZWZpbmVkXCImJihkLmhvc3RQdWJJZD1TdHJpbmcoZC5ob3N0UHViSWQpLnJlcGxhY2UoL15wYXJ0bmVyLS8sXCJcIikpO2Q9Y2soZCk7IWQudGl0bGVCb2xkfHxkLnRpdGxlQm9sZCE9PSEwJiZkLnRpdGxlQm9sZCE9MT9kLnRpdGxlQm9sZCYmZGVsZXRlIGQudGl0bGVCb2xkOmQudGl0bGVCb2xkPTE7dGhpcy5hZShkKTtyZXR1cm4gZH07bS5NYz1mdW5jdGlvbihhKXt2YXIgYj1bXSxjO2ZvcihjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmYyBpbiB0aGlzLk0mJnRoaXMuTVtjXS5EYSYmYi5wdXNoKGRrKGFbY10sdGhpcy5NW2NdKSk7cmV0dXJuIGIuam9pbihcIlwiKX07bS5FYT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYSkhKGEuaGFzT3duUHJvcGVydHkoZCkmJmQgaW4gdGhpcy5NJiZ0aGlzLk1bZF0uRGEpfHxkIGluIGImJmJbZF09PWFbZF18fGMucHVzaChkayhhW2RdLHRoaXMuTVtkXSkpO3JldHVybiBjLmpvaW4oXCJcIil9O1xubS5sYz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGYuaWE9PT0xfSk7aWYoZC5sZW5ndGg9PTApcmV0dXJuIHRoaXMuRWEoYSx7fSkrXCItXCI7Yy5wdWJJZD1hLnB1YklkO2M9Y2soYyk7Yj10aGlzLk1jKGMpO3ZhciBlPVtdO2UucHVzaCh0aGlzLkVhKGEsYykpO2E9dyhkKTtmb3IoZD1hLm5leHQoKTshZC5kb25lO2Q9YS5uZXh0KCkpZD1kLnZhbHVlLGQub3B0aW9ucy5zbGF2ZU51bWJlciYmZC5vcHRpb25zLnNsYXZlTnVtYmVyIT0wJiZlLnB1c2godGhpcy5FYShkLm9wdGlvbnMsYykpO3JldHVybltiLGUuam9pbihcIi1cIildLmpvaW4oXCItXCIpfTtmdW5jdGlvbiBlayhhKXtyZXR1cm4gYS5vcHRpb25zJiZhLm9wdGlvbnMudHlwZT9hLm9wdGlvbnMudHlwZT09PVwic2VhcmNoYm94XCI6ITF9XG5mdW5jdGlvbiBmayhhKXt2YXIgYjtyZXR1cm4oYj1hLm9wdGlvbnMpIT1udWxsJiZiLnR5cGU/YS5vcHRpb25zLnR5cGU9PT1cInJlbGF0ZWRzZWFyY2hcIjohMX1tLmljPWZ1bmN0aW9uKGEsYil7dmFyIGM9L15bQS1aYS16XStbXFx3XFwtOlxcLl0qJC8sZD1bXTt0aGlzLnpifHxlayh0aGlzKXx8KGE9YS5jb250YWluZXIsZC5wdXNoKGMudGVzdChhKT9hOlwiXCIpKTtiPXcoYik7Zm9yKGE9Yi5uZXh0KCk7IWEuZG9uZTthPWIubmV4dCgpKWE9YS52YWx1ZSxlayhhKXx8YS5pYSE9PTF8fChhPWEub3B0aW9ucy5jb250YWluZXIsZC5wdXNoKGMudGVzdChhKT9hOlwiXCIpKTtyZXR1cm4gZC5qb2luKFwifFwiKX07XG5tLm1jPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuTGIuQ2QoYS5wdWJJZCk7dGhpcy5TYihhLGIpO3dpbmRvdy5nb29nbGVBbHRMb2FkZXI9PTM/QShiLFwiYnNsXCIsOCk6d2luZG93Lmdvb2dsZUFsdExvYWRlcj09NCYmQShiLFwiYnNsXCIsMTApO0EoYixcInBhY1wiLGdrKGEpKTtpZighdGhpcy5QKXt2YXIgYz1jPT09dm9pZCAwP3dpbmRvdzpjO3ZhciBkPWQ9PT12b2lkIDA/ZG9jdW1lbnQ6ZDt2YXIgZT1lPT09dm9pZCAwP25ldyBEYXRlOmU7dmFyIGY9YztmPWY9PT12b2lkIDA/dWo6Zjt0cnl7dmFyIGc9Zi5oaXN0b3J5Lmxlbmd0aH1jYXRjaChsKXtnPTB9QShiLFwidV9oaXNcIixnKTtBKGIsXCJ1X3R6XCIsLWUuZ2V0VGltZXpvbmVPZmZzZXQoKSk7QShiLFwiZHRcIixlLmdldFRpbWUoKSk7QShiLFwidV93XCIsYy5zY3JlZW4ud2lkdGgpO0EoYixcInVfaFwiLGMuc2NyZWVuLmhlaWdodCk7ZT12aighMCxjKTtBKGIsXCJiaXdcIixlLndpZHRoKTtBKGIsXCJiaWhcIixlLmhlaWdodCk7Yy50b3AhPWMmJihlPVxudmooITEsYyksQShiLFwiaXN3XCIsZS53aWR0aCksQShiLFwiaXNoXCIsZS5oZWlnaHQpKTtkLmJvZHk/KGU9IWMuc2Nyb2xsWSYmZC5jb21wYXRNb2RlIT1cIkNTUzFDb21wYXRcIixkPW5ldyBvZChlP2QuYm9keS5zY3JvbGxXaWR0aDpkLmJvZHkub2Zmc2V0V2lkdGgsZT9kLmJvZHkuc2Nyb2xsSGVpZ2h0OmQuYm9keS5vZmZzZXRIZWlnaHQpKTpkPW5ldyBvZCgtMSwtMSk7QShiLFwicHN3XCIsZC53aWR0aCk7QShiLFwicHNoXCIsZC5oZWlnaHQpO2lmKGMudG9wPT1jKXZhciBoPTA7ZWxzZXtjPWMudG9wO3RyeXt2YXIgaztpZihrPSEhYyYmYy5sb2NhdGlvbi5ocmVmIT1udWxsKWI6e3RyeXtqZChjLmZvbyk7az0hMDticmVhayBifWNhdGNoKGwpe31rPSExfWg9a31jYXRjaChsKXtoPSExfWg9aD8xOjJ9QShiLFwiZnJtXCIsaCl9aD13aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zJiZ3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zLmxlbmd0aCYmd2luZG93LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucy5sZW5ndGg+XG4wO0EoYixcInVpb1wiLHRoaXMuWGQpO0EoYixcImNvbnRcIix0aGlzLmljKHRoaXMub3B0aW9ucyx0aGlzLlkpKTtBKGIsXCJqc3ZcIiw2NDE4ODM1MjksITApO2EucnVybE92ZXJyaWRlP0EoYixcInJ1cmxcIixhLnJ1cmxPdmVycmlkZSwhMCk6KGs9d2luZG93LmxvY2F0aW9uLmhyZWYsay5pbmRleE9mKFwiYWJvdXQ6XCIpPT0wJiZoJiYoaz13aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zWzBdKSxBKGIsXCJydXJsXCIsaywhMCkpO0EoYixoay5yZWZlcmVyLGRvY3VtZW50LnJlZmVycmVyLCEwKTthLnJlZmVycmVyJiZBKGIsXCJvcHRyZWZcIixhLnJlZmVycmVyLCEwKTtoJiZBKGIsXCJsYW9cIix3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zWzBdLCEwKTtpZihhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQsXCJyZWZlcnJlclwiKSE9PXZvaWQgMCloPXRoaXMuVixrPWljKGgpLEEoayxcInBidFwiLFwicmlcIiksQShrLFwiZW1zZ1wiLFwicm1cIiksaC5lYShkYyhrKSk7QShiLFxuXCJkcnRcIixhPzE6MCk7QShiLFwianNpZFwiLFwiY2FmXCIpOy9DaHJvbWV8Q3JpT1MvaS50ZXN0KGZnKSYmWmooKSYmQShiLFwibmZwXCIsXCIxXCIpO3JldHVybiBifTttLlNiPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShjKSYmaGsuaGFzT3duUHJvcGVydHkoYykpe3ZhciBkPWhrW2NdLGU9YVtjXTtkPT1cImNsa3dkXCImJihlPVwidFwiKTtkPT1cInR5cGVcIiYmKGU9SWRbYVtjXV0pO2M9PVwiZG9tYWluU2Vzc2lvblRva2VuXCImJlwiYWZkVG9rZW5cImluIGEmJmQ9PWhrLmFmZFRva2VufHwoZD09XCJpdnRcIiYmKGU9QmkuRihlKSksQShiLGQsZSkpfX07XG5tLks9ZnVuY3Rpb24oKXt2YXIgYT1bXTt0aGlzLm9wdGlvbnMucm9sZT09XCJtXCJ8fHRoaXMub3B0aW9ucy5zbGF2ZU51bWJlcj09PXZvaWQgMD9hLnB1c2goXCJtYXN0ZXJcIik6KGEucHVzaChcInNsYXZlXCIpLGEucHVzaCh0aGlzLm9wdGlvbnMuc2xhdmVOdW1iZXIpKTt0aGlzLmlhPT0yP2EucHVzaChcImFcIik6dGhpcy5pYT09MyYmYS5wdXNoKFwiYlwiKTthLnB1c2godGhpcy5vcHRpb25zLm1hc3Rlck51bWJlcik7cmV0dXJuIGEuam9pbihcIi1cIil9O1xubS5BYz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17fTtlLm5hbWU9YjthPWMuY29uY2F0KFthXSk7Yj1kLmNvbmNhdChbYl0pO2ZvcihkPTA7ZDxhLmxlbmd0aDtkKyspe2M9YltkXTt2YXIgZj12b2lkIDAsZz1hW2RdLGg9dGhpcy5NLGs9e307Zm9yKGYgaW4gaClpZihoLmhhc093blByb3BlcnR5KGYpJiYhaFtmXS5JYyl7dmFyIGw9Z1tmXSxwPWhbZl0uYmE7dHlwZW9mIGw9PVwidW5kZWZpbmVkXCJ8fGY9PVwiY29udGFpbmVyXCImJnR5cGVvZiBsPT1cIm9iamVjdFwiP3R5cGVvZiBwIT1cInVuZGVmaW5lZFwiJiYoa1tmXT1wKTprW2ZdPWx9ZVtjXT1rfXJldHVybiBKU09OLnN0cmluZ2lmeShlKX07XG5tLnljPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMueGI9RGF0ZS5ub3coKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSYmQy5sb2coXCJpZnJhbWU6IFwiK2ErXCIuIHB1YklkOiBcIitkK1wiLiBcIixcImRJXCIpO2Q9d2QoZG9jdW1lbnQsXCJJRlJBTUVcIik7ZC5mcmFtZUJvcmRlcj1cIjBcIjtkLm1hcmdpbldpZHRoPVwiMFwiO2QubWFyZ2luSGVpZ2h0PVwiMFwiO2QudnNwYWNlPTA7ZC5oc3BhY2U9MDtkLnNldEF0dHJpYnV0ZShcImFsbG93VHJhbnNwYXJlbmN5XCIsXCJ0cnVlXCIpO2Quc2Nyb2xsaW5nPVwibm9cIjtkLnN0eWxlLnZpc2liaWxpdHk9XCJoaWRkZW5cIjtkLndpZHRoPVwiMTAwJVwiO2Quc3R5bGUuaGVpZ2h0PVwiMHB4XCI7ZC5zdHlsZS5kaXNwbGF5PVwiYmxvY2tcIjtkLm5hbWU9YjtkLmlkPWE7ZC5zcmM9YztTZCgpPyhkLmRhdGFzZXQub2JzZXJ2ZT10aGlzLm9wdGlvbnMubWFzdGVyTnVtYmVyLHRoaXMuUHx8KGQuc2V0QXR0cmlidXRlKFwiZGF0YS1hZC1zcmNcIixjKSxkLnNyYz1cImFib3V0OmJsYW5rXCIpKTp0aGlzLnphPVxudGhpcy54Yjt0aGlzLmlhPT09MiYmdGhpcy5jb250YWluZXIuY2hpbGRFbGVtZW50Q291bnQ+PTE/dGhpcy5jb250YWluZXIuaW5zZXJ0QmVmb3JlKGQsdGhpcy5jb250YWluZXIuY2hpbGRyZW5bMF0pOnRoaXMuaWE9PT0xJiZ0aGlzLmNvbnRhaW5lci5jaGlsZEVsZW1lbnRDb3VudD09PTI/dGhpcy5jb250YWluZXIuaW5zZXJ0QmVmb3JlKGQsdGhpcy5jb250YWluZXIuY2hpbGRyZW5bMV0pOnRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGQpO3RyeXtkLmNvbnRlbnRXaW5kb3cubmFtZT1ifWNhdGNoKGUpe315KCkuZGF0YS5pY2VsYWUmJlpqKCkmJmQuc2V0QXR0cmlidXRlKFwiYWxsb3dcIixcImF0dHJpYnV0aW9uLXJlcG9ydGluZ1wiKTtyZXR1cm4gZH07XG5tLlliPWZ1bmN0aW9uKGEpe3ZhciBiPXdpbmRvdy5pbm5lcldpZHRoPHdpbmRvdy5pbm5lckhlaWdodDtpZih0aGlzLk1hJiYhYnx8IXRoaXMuTWEmJmIpe3RoaXMuTWE9Yjt0cnl7YS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKFwib3JpZW50YXRpb246XCIrKHRoaXMuTWE/XCJwb3J0cmFpdFwiOlwibGFuZHNjYXBlXCIpLFwiKlwiKX1jYXRjaChjKXt9fX07bS5CYz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLGY9dGhpcy55YyhhLGIsYyxkKTt0aGlzLlB8fCh0aGlzLkRjKGYpLHRoaXMuTWE9d2luZG93LmlubmVyV2lkdGg8d2luZG93LmlubmVySGVpZ2h0LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZnVuY3Rpb24oKXtyZXR1cm4gZS5ZYihmKX0pKX07XG5tLk5jPWZ1bmN0aW9uKCl7dmFyIGE9e30sYjtmb3IoYiBpbiB0aGlzLm9wdGlvbnMpdGhpcy5vcHRpb25zLmhhc093blByb3BlcnR5KGIpJiYoYVtiXT10aGlzLm9wdGlvbnNbYl0pO2EuYWRzPVwibjBcIjthW1wiXCJdPVwiXCI7YS5zbGF2ZU51bWJlcj1cIjBcIjthLnJvbGU9XCJzXCI7YT1payh0aGlzLk0sYSxEYXRlLm5vdygpLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCwxLHRoaXMubmEpO1dbYS5LKCldPWE7dGhpcy5ZLnNwbGljZSgwLDAsYSk7YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7YS5zdHlsZS5oZWlnaHQ9XCIwcHhcIjthLnN0eWxlLnZpc2liaWxpdHk9XCJoaWRkZW5cIjt0aGlzLm9wdGlvbnMuY29udGFpbmVyPWE7dGhpcy56Yj10aGlzLm9wdGlvbnMucHJlbG9hZD0hMDt0aGlzLm5hPVtdfTtcbm0uQ2M9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5vcHRpb25zPXRoaXMuZWQoYSxiLGMsZCk7dGhpcy5WLmNsaWVudD10aGlzLm9wdGlvbnMucHViSWQ7dGhpcy5WLk5iPXRoaXMub3B0aW9ucy5zdHlsZUlkfHxcIlwiOyF6KFwiX2ZvcmNlSnNQcmVsb2FkRm9yRGVidWdnaW5nXCIpJiZ0aGlzLnJiKCl8fHRoaXMuUHx8IWRvY3VtZW50LmJvZHl8fHRoaXMuTmMoKTt0aGlzLlhkPXRoaXMuSmQ9PW51bGw/XCJcIjp0aGlzLmxjKHRoaXMub3B0aW9ucyx0aGlzLlksdGhpcy5KZCk7dGhpcy5BYT10aGlzLkphPXRoaXMuSygpO3RoaXMuaWIucWM9ZW5jb2RlVVJJKHRoaXMuSmEpO2lmKHRoaXMuaWE9PT0xJiYheihcIl9lbmFibGVVbmlmaWVkTXVkc2tpcHBlcklmcmFtZVwiKSlmb3IodGhpcy5HYT1uZXcgcWoodGhpcy5uYS5sZW5ndGgrMSx0aGlzLm9wdGlvbnMuY29udGFpbmVyLHRoaXMub3B0aW9ucy5hZExvYWRlZENhbGxiYWNrLHRoaXMub3B0aW9ucy5ub0FkTG9hZGVkQ2FsbGJhY2spLGE9dyh0aGlzLm5hKSxcbmI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWIudmFsdWUuR2E9dGhpcy5HYTtpZighdGhpcy5QKXtoYygpLmNsaWVudD10aGlzLm9wdGlvbnMucHViSWQ7aGMoKS5OYj10aGlzLm9wdGlvbnMuc3R5bGVJZHx8XCJcIjthPVtdO2I9W107Zm9yKGM9MDtjPHRoaXMuWS5sZW5ndGg7YysrKWEucHVzaCh0aGlzLllbY10uSygpKSxiLnB1c2godGhpcy5ZW2NdLm9wdGlvbnMpO3RoaXMuQWE9dGhpcy5BYyh0aGlzLm9wdGlvbnMsdGhpcy5KYSxiLGEpfX07XG5tLm9iPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWNlKCksYz1FKGZ1bmN0aW9uKCl7aWYoIWEucmIoKSlyZXR1cm4hMTthLk1iKGEub3B0aW9ucy5jb250YWluZXIpO2lmKGEub3B0aW9ucy53aWR0aCYmIWEuemIpe2lmKGEub3B0aW9ucy50eXBlPT1cInBsYXNcIiYmYS5NLndpZHRoIT12b2lkIDAmJmEuTS53aWR0aC5nLkYoYS5vcHRpb25zLndpZHRoKT09bnVsbCl0aHJvdyBxYyhcIndpZHRoIFwiK2Eub3B0aW9ucy53aWR0aCtcIiBpcyBpbnZhbGlkLlwiKTthLm9wdGlvbnMud2lkdGg9PVwiYXV0b1wiP2EuY29udGFpbmVyLnN0eWxlLndpZHRoPVwiMTAwJVwiOmprKGEub3B0aW9ucy53aWR0aCkmJihhLmNvbnRhaW5lci5zdHlsZS53aWR0aD1hLm9wdGlvbnMud2lkdGgpfWZvcih2YXIgZj13KFtdLmNvbmNhdChhLm5hLGEpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7Zz1nLnZhbHVlO2cuTWIoYS5vcHRpb25zLmNvbnRhaW5lcik7dmFyIGg9Zy5MYi51YihhLm9wdGlvbnMucHViSWQpO1xuaD1uZXcgY2MoaCtcIi9hZnMvYWRzL2kvaWZyYW1lLmh0bWxcIik7Zy5pYj0oZy5QP2g6bnVsbCl8fGcubWMoZy5vcHRpb25zKTtnLlpjPWRjKGcuaWIpfWlmKCFhLlAmJmEub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShcInRjU3RyaW5nXCIpJiZhLm9wdGlvbnMudGNTdHJpbmcubGVuZ3RoPjAmJiFhLlpjLmluY2x1ZGVzKGhrLnRjU3RyaW5nK1wiPVwiKSl0aHJvdyBsYyhhLlYsXCJ0bFwiLFwiVEMgc3RyaW5nIG9mIGxlbmd0aCBcIithLm9wdGlvbnMudGNTdHJpbmcubGVuZ3RoK1wiIGRvZXMgbm90IGZpdCBpbiBVUkxcIikscWMoXCJBIHRyYW5zcGFyZW5jeSBjb25zZW50IHN0cmluZyB3YXMgY29sbGVjdGVkIGJ1dCBpcyB0b28gbG9uZyB0byBmaXQgaW4gdGhlIENTQSBhZCByZXF1ZXN0IFVSTC4gTm8gYWRzIGFyZSBiZWluZyByZXF1ZXN0ZWQuXCIpO2EuY29udGFpbmVyLnRleHRDb250ZW50PVwiXCI7aWYoIXooXCJfZW5hYmxlVW5pZmllZE11ZHNraXBwZXJJZnJhbWVcIikpZm9yKGY9dyhhLm5hKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1cbmYubmV4dCgpKWcudmFsdWUuRGIoKTthLkRiKCk7Yi5yZXNvbHZlKGEpO3JldHVybiEwfSxcImNJX21BXCIpO2lmKCFjKCkpdmFyIGQ9RGF0ZS5ub3coKSxlPXdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKGMoKSljbGVhckludGVydmFsKGUpO2Vsc2UgaWYoRGF0ZS5ub3coKS1kPjZFNCl0aHJvdyBjbGVhckludGVydmFsKGUpLHFjKCdjb250YWluZXIgXCInK2Eub3B0aW9ucy5jb250YWluZXIrJ1wiIGRvZXMgbm90IGV4aXN0LicpO30sNSk7cmV0dXJuIGIucHJvbWlzZX07bS5EYj1mdW5jdGlvbigpe3RoaXMuaWImJnRoaXMuQmModGhpcy5KYSx0aGlzLkFhLHRoaXMuWmMsdGhpcy5vcHRpb25zLnB1YklkKX07bS5jZD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKHRoaXMucWQpe3ZhciBjPXRoaXMuSygpLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYyk7c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBiLktiKGQsYyxhLCEwKX0sMTUwMCl9fTtcbm0uRGM9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPVwiXCIrdGhpcy5vcHRpb25zLm1hc3Rlck51bWJlcixkPW5ldyBBYyhjLGEpO0YoZCxcImFELlwiK2MsRy5qLGtrKTtGKGQsXCJxaVwiLEhjLmosZnVuY3Rpb24oZyxoLGssbCl7Zz13KFtdLmNvbmNhdChiLlksYikpO2ZvcihoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSloLnZhbHVlLlYuT2M9bHx8XCJcIn0pO0YoZCxcImVhd3BcIixIYy5qKTtGKGQsXCJpdFwiLEhjLmosZnVuY3Rpb24oZyxoLGssbCl7YS50aXRsZT1sfSk7RihkLFwiLmFDU1wiLEdjLmosZnVuY3Rpb24oZyxoLGssbCl7bGsoYixsKX0pO0YoZCxcInMuYlwiLEcuaix0aGlzLktjLmJpbmQodGhpcykpO0YoZCxcInMuYURVTFRcIixHLmopO0YoZCxcInMuZkxcIixHLmopO0YoZCxcInMudE1cIixHLmopO0YoZCxcInMublJcIixHLmopO0YoZCxcInMuaVNJXCIsRy5qKTtGKGQsXCJzLmVDXCIsR2Muaik7dmFyIGU9bnVsbDt0aGlzLnpifHwoZT10aGlzLksoKSxGKGQsZStcIi5oQVwiLEcuaixtayksRihkLGUrXCIuZnNcIixcbkljLmosbmspLEYoZCxlK1wiLndcIixHYy5qLGZ1bmN0aW9uKGcsaCxrLGwpe29rKGcsaCxrLGwpfSksRihkLGUrXCIuYUNcIixHYy5qKSk7RihkLFwidi5cIitjLEhjLmoscGspO3ZhciBmPXRoaXMub3B0aW9ucy5yZWxhdGVkU2VhcmNoUmVzdWx0Q2xpY2tlZENhbGxiYWNrO3RoaXMub3B0aW9ucy5yZWxhdGVkU2VhcmNoVXNlUmVzdWx0Q2FsbGJhY2smJmYmJkYoZCxcInJzcmNcIixJYy5qLGZ1bmN0aW9uKGcsaCxrLGwpe3RyeXtmKGwucSxsLnJzVG9rZW4pfWNhdGNoKHApe319KTtjPXcodGhpcy5ZKTtmb3IoZT1jLm5leHQoKTshZS5kb25lO2U9Yy5uZXh0KCkpZT1lLnZhbHVlLksoKSxGKGQsZStcIi5oQVwiLEcuaixtayksRihkLGUrXCIuZnNcIixJYy5qLG5rKSxGKGQsZStcIi5hQ1wiLEdjLmopfTtcbmZ1bmN0aW9uIGxrKGEsYil7YS5CYj1iO2lmKCFhLm1hKXt2YXIgYz1bXCJtb3VzZW1vdmVcIixcIm1vdXNlZG93blwiLFwic2Nyb2xsXCIsXCJrZXlkb3duXCIsXCJ0b3VjaHN0YXJ0XCJdO2EubWE9ZnVuY3Rpb24oKXtpZihhLkJiKXt2YXIgZT1EYXRlLm5vdygpLWEuQmI7aWYoZTw9KFZiKFwibWRwXCIpfHwwKSl7dmFyIGY9YS5WLGc9aWMoZik7QShnLFwicGJ0XCIsXCJjZFwiKTtBKGcsXCJjc2FjZFwiLGUpO2YuZWEoZGMoZykpO2EuQmI9bnVsbH19aWYoYS5tYSl7ZT13KGMpO2ZvcihmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoZi52YWx1ZSxhLm1hKTthLm1hPW51bGx9fTtiPXcoYyk7Zm9yKHZhciBkPWIubmV4dCgpOyFkLmRvbmU7ZD1iLm5leHQoKSlkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoZC52YWx1ZSxhLm1hKX19XG5tLktjPWZ1bmN0aW9uKGEsYil7aWYoKGI9V1tcIm1hc3Rlci1cIitiXSkmJmIub3B0aW9ucyYmYi5vcHRpb25zLnBhZ2VMb2FkZWRDYWxsYmFjayl7dmFyIGM9Q2MoYSxcInMuYlwiKSxkPXt9O2lmKGMpe3ZhciBlPWEuR1tcInMuZUNcIl0udmFsdWU7ZSYmKGQuZXJyb3JfY29kZT1lKTtDYyhhLFwicy5mTFwiKSYmKGQuZmFpbGxpc3RlZD0hMCxDYyhhLFwicy50TVwiKT9kLmZhaWxsaXN0UmVhc29uPVwidHJhZGVtYXJrXCI6ZC5mYWlsbGlzdFJlYXNvbj1cIm90aGVyXCIpfWVsc2V7ZT1SZChxay5sb2NhdGlvbi5ocmVmKTt2YXIgZj1iLm9wdGlvbnMucHViSWR8fFwiXCIsZz1mLmluZGV4T2YoXCJkcC1cIik7Zj1nPDA/XCJcIjpnPT0wP1wicGFydG5lci1cIitmOmYuaW5kZXhPZihcInBhcnRuZXItZHAtXCIpPT0wfHxmLmluZGV4T2YoXCJjYS1kcC1cIik9PTA/XCJwYXJ0bmVyLVwiK2Yuc3Vic3RyKGcpOlwiXCI7ZC5jbGllbnQ9ZjtlLnNlYXJjaD09XCIxXCImJihkLnVzZXJfc2VhcmNoPSEwKTtlLnF1ZXJ5JiYoZC5xdWVyeT1lLnF1ZXJ5KX1kLmFkdWx0PVxuISFDYyhhLFwicy5hRFVMVFwiKTtDYyhhLFwicy5uUlwiKSYmKGQubmVlZHNyZXZpZXc9ITApO0NjKGEsXCJzLmlTSVwiKSYmKGQuaW52YWxpZF9zdHlsZV9pZD0hMCk7dGhpcy5XLmNhZlJlcXVlc3RBY2NlcHRlZD0hYyYmIWQubmVlZHNyZXZpZXc7dGhpcy5XLmNhZlN0YXR1cz1kO3RyeXtiLm9wdGlvbnMucGFnZUxvYWRlZENhbGxiYWNrKHRoaXMuVy5jYWZSZXF1ZXN0QWNjZXB0ZWQsZCl9Y2F0Y2goaCl7fX19O1xubS5KYz1mdW5jdGlvbihhKXtpZighdGhpcy5qYil7dGhpcy5qYj0hMDtpZih6KFwiX2VuYWJsZVVuaWZpZWRNdWRza2lwcGVySWZyYW1lXCIpKXt2YXIgYj10aGlzLm9wdGlvbnMuY29udGFpbmVyLGM9dGhpcy5vcHRpb25zLm5vQWRMb2FkZWRDYWxsYmFjayxkPXRoaXMub3B0aW9ucy5hZExvYWRlZENhbGxiYWNrO2lmKGMpdHJ5e2MoYiwhMSx2b2lkIDAsdGhpcy5XKX1jYXRjaChlKXt9aWYoZCl0cnl7ZChiLCExLHZvaWQgMCx0aGlzLlcpfWNhdGNoKGUpe319ZWxzZSByaih0aGlzLkdhLCExLDAsdGhpcy5XKTtDYyhhLFwic2JuXCIpJiYoYj10aGlzLksoKSxjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIpLHRoaXMuU2M9RGF0ZS5ub3coKSx0aGlzLktiKGMsYixhLCExKSl9fTtcbm0uWGM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1oZyhqZyksZD1oZyhsZyk7L01vYmlsZS9pLnRlc3QoZmcpJiYoYz4wfHxkPjApPyhhLnN0eWxlLndpZHRoPVwiMXB4XCIsYS5zdHlsZS5taW5XaWR0aD1cIjEwMCVcIixhLnJlbW92ZUF0dHJpYnV0ZShcIndpZHRoXCIpKTphLndpZHRoPVwiMTAwJVwiO2Euc3R5bGUudmlzaWJpbGl0eT1iPjA/XCJ2aXNpYmxlXCI6XCJoaWRkZW5cIjthLnN0eWxlLmhlaWdodD1iK1wicHhcIjt0aGlzLmNvbnRhaW5lci5zdHlsZS5oZWlnaHQ9XCJhdXRvXCJ9O20uV2M9ZnVuY3Rpb24oYSl7dGhpcy5jb250YWluZXIuc3R5bGUud2lkdGg9YStcInB4XCI7dmFyIGI9aGcoamcpLGM9aGcobGcpO2lmKGI+MHx8Yz4wKWlmKGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5LKCkpKWIuc3R5bGUud2lkdGg9YStcInB4XCIsYi5yZW1vdmVBdHRyaWJ1dGUoXCJ3aWR0aFwiKX07XG5mdW5jdGlvbiByayhhKXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhLksoKSk7dmFyIGM9Yi5nZXRBdHRyaWJ1dGUoXCJkYXRhLWFkLXNyY1wiKTtjPXJiKGMpO2Iuc3JjPXFiKGMpLnRvU3RyaW5nKCk7YS56YT1EYXRlLm5vdygpO2M9dyhhLlkpO2Zvcih2YXIgZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZC52YWx1ZS56YT1hLnphO2IucmVtb3ZlQXR0cmlidXRlKFwiZGF0YS1hZC1zcmNcIil9XG5mdW5jdGlvbiBzayhhKXtpZihTZCgpJiYhYS5QKXt2YXIgYj0nW2RhdGEtb2JzZXJ2ZT1cIicrYS5vcHRpb25zLm1hc3Rlck51bWJlcisnXCJdJyxjPVZiKFwibGxybVwiKXx8MCxkPWZrKGEpO2Q9eihcIl9lbmFibGVMTElETVwiKXx8eihcIl9lbmFibGVMTElETVJTT25seVwiKSYmZDtmb3IodmFyIGU9dyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaWZyYW1lXCIrYikpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWlmKGY9Zi52YWx1ZSxmLm9mZnNldFBhcmVudD09bnVsbHx8VGQoZixkP2M6MCkpe3JrKGEpO3JldHVybn12YXIgZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaWZyYW1lXCIrYiksaD1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oayl7aWYoay5maW5kKGZ1bmN0aW9uKHApe3JldHVybiBwLmludGVyc2VjdGlvblJhdGlvPjB9KSl7cmsoYSk7az13KGcpO2Zvcih2YXIgbD1rLm5leHQoKTshbC5kb25lO2w9ay5uZXh0KCkpaC51bm9ic2VydmUobC52YWx1ZSl9fSxcbntyb290TWFyZ2luOlwiMHB4IDBweCBcIitjK1wicHggMHB4XCIsdGhyZXNob2xkOjB9KTtiPXcoZyk7Zm9yKGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWM9Yy52YWx1ZSxoLm9ic2VydmUoYyksYy5zZXRBdHRyaWJ1dGUoXCJkYXRhLWxsZVwiLFwiMVwiKX19bS55Yj1mdW5jdGlvbihhKXtyZXR1cm4gVGQoYSwwLC4zKX07XG5tLktiPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMsZj1BZChhKSxnPXt0b3A6Zi55LGxlZnQ6Zi54LGhlaWdodDphLm9mZnNldEhlaWdodCx3aWR0aDphLm9mZnNldFdpZHRoLGViOnRoaXMua2Quam9pbihcIixcIiksdmU6YixUZTpCYyhjLFwiZWF3cFwiKSxEZTo2NDE4ODM1MjkscWc6YS5oYXNBdHRyaWJ1dGUoXCJkYXRhLWxsZVwiKSx2Zjp0aGlzLnliKGEpLGpmOnRoaXMub3B0aW9ucy5jbGlja3RyYWNrVXJsIT1udWxsfTtpZihiPXRrKHRoaXMsYykpZy5DZj1iO2lmKGQpe2pjKHRoaXMuVixcImJzXCIsZyk7dmFyIGg9bnVsbDtoPXNldEludGVydmFsKEUoZnVuY3Rpb24oKXtlLnliKGEpJiYoamMoZS5WLFwiYnZcIixnKSxjbGVhckludGVydmFsKGgpKX0sXCJzUElWXCIpLDUwMCl9ZWxzZSBqYyh0aGlzLlYsXCJiblwiLGcpfTtcbmZ1bmN0aW9uIHRrKGEsYil7aWYoYj1CYyhiLFwiaXJ0XCIpKXt2YXIgYz1iLnNwbGl0KFwifFwiKTtiPXBhcnNlSW50KGNbMF0sMTApO2M9cGFyc2VJbnQoY1sxXSwxMCk7dmFyIGQ9YS54Yi1hLk1mLGU9YS56YS1hLnhiO2EuUCYmKGU9TWF0aC5tYXgoMCxlKSk7cmV0dXJuW2QsZSxiLWEuemEsYy1iLGEuU2MtY10uam9pbihcInxcIil9cmV0dXJuIG51bGx9XG5tLlRjPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcyxkPXRoaXMuSygpLGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZCk7aWYoZSl7dmFyIGY9YS5mcmFtZUhlaWdodDt0aGlzLmtkPWEuZWI7dGhpcy5YYyhlLGYpO2lmKCF0aGlzLmpiJiZmPjApe3RoaXMuU2M9RGF0ZS5ub3coKTt0aGlzLnFkPXRoaXMuamI9ITA7dGhpcy5jZChiKTt2YXIgZzthPShnPUNjKGIsZCtcIi5lVlwiKSkhPW51bGw/Zzp2b2lkIDA7aWYoYj1EYyhiLGQrXCIucHRwXCIpKXRoaXMuVy50ZXJtUG9zaXRpb25zPWI7aWYoeihcIl9lbmFibGVVbmlmaWVkTXVkc2tpcHBlcklmcmFtZVwiKSl7aWYoYj10aGlzLm9wdGlvbnMuYWRMb2FkZWRDYWxsYmFjayl7ZD10aGlzLm9wdGlvbnMuY29udGFpbmVyO3RyeXtiKGQsITAsYSx0aGlzLlcpfWNhdGNoKGgpe319fWVsc2UgYj0wLGE9PT0hMD9iPTI6YT09PSExJiYoYj0xKSxyaih0aGlzLkdhLCEwLGIsdGhpcy5XKTt5KCkuZGF0YS5ldmcmJnVrKCkudGhlbihmdW5jdGlvbihoKXtpZihoKXt2YXIgaz1cbmMuVixsPWljKGspO0EobCxcInBidFwiLFwiZ3RsXCIpO0EobCxcImd0Y1wiLGgpO2suZWEoZGMobCkpfX0pfX19O20ucmI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMuY29udGFpbmVyO3JldHVybiB0eXBlb2YgYT09XCJzdHJpbmdcIj8oYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSwhIWEpOnR5cGVvZiBhLmlubmVySFRNTD09XCJzdHJpbmdcIj8hMDohMX07bS5NYj1mdW5jdGlvbihhKXt0aGlzLmNvbnRhaW5lcj10eXBlb2YgYT09XCJzdHJpbmdcIj9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTphfTtcbm0uRmE9ZnVuY3Rpb24oYSl7YS5udW1iZXI9YS5udW1iZXJ8fGEubWF4VG9wfHxhLm1pblRvcHx8MTA7ZGVsZXRlIGEubWluVG9wO2RlbGV0ZSBhLm1heFRvcDthLmhhc093blByb3BlcnR5KFwicmVzdWx0c1BhZ2VCYXNlVXJsXCIpJiYoYS5yZXN1bHRzUGFnZUJhc2VVcmw9dmsoYS5yZXN1bHRzUGFnZUJhc2VVcmwpKTt2YXIgYj1hLnJlbGF0ZWRTZWFyY2hUYXJnZXRpbmc7YiBpbiBMZCYmKGEucnNfdHQ9TGRbYl0pfTtmdW5jdGlvbiBhayhhKXtpZighYS5xdWVyeSYmIWEuYWZkVG9rZW4pe3ZhciBiPVJkKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxjPWIucXVlcnk7Yj1iLmFmZFRva2VuO2MmJmImJihhLnF1ZXJ5PWMsYS5hZmRUb2tlbj1iKX1jPVFkKHdpbmRvdy5sb2NhdGlvbi5ocmVmLFwicGNzYVwiKTtjIT1udWxsJiZhLnBlcnNvbmFsaXplZEFkcz09bnVsbCYmKGEucGVyc29uYWxpemVkQWRzPWMpfVxudmFyIGRrPUUoZnVuY3Rpb24oYSxiKXt2YXIgYz1iLkRhO2E9Yi5nLkwoYSk7cmV0dXJuIGEhPW51bGwmJmprKGEpP3drLmhhc093blByb3BlcnR5KGMpP2E/Yy5jaGFyQXQoMCkrYy5jaGFyQXQoMSkudG9VcHBlckNhc2UoKTpjOmMrYTpcIlwifSxcImdQRk9cIik7ZnVuY3Rpb24gYmsoYSl7dHJ5e3ZhciBiPXBhcnNlSW50KGEsMTApO3JldHVybiFpc05hTihiKSYmYj49MD9iOm51bGx9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGprKGEpe2E9cGFyc2VJbnQoYSwxMCk7cmV0dXJuIWlzTmFOKGEpJiZhPj0wfVxudmFyIGNrPUUoZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtcImZvbnRTaXplVGl0bGVcIixcImZvbnRTaXplQXR0cmlidXRpb25cIl0sYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2lmKGFbZF0pe3ZhciBlPXR5cGVvZiBhW2RdPT1cInN0cmluZ1wiP3BhcnNlSW50KGFbZF0ucmVwbGFjZShcInB4XCIsXCJcIiksMTApOmFbZF07ZT1lPlNjP1NjOmU7ZT1lPDEwPzEwOmU7YVtkXT1lK1wicHhcIn19cmV0dXJuIGF9LFwidkZTXCIpLHhrPS9eXFwvezMsfS8sdms9RShmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5zdGFydHNXaXRoKFwiLy9cIik/ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wrYS5yZXBsYWNlKHhrLFwiLy9cIik6YX0sXCJyUlBcIiksZ2s9RShmdW5jdGlvbihhKXthPWEuZmV4cHx8XCJcIjtyZXR1cm4gYS5pbmNsdWRlcyhcIjE3MzAwMDAxXCIpPzE6YS5pbmNsdWRlcyhcIjE3MzAwMDAyXCIpPzI6MH0sXCJnUFBWXCIpLHlrPUUoZnVuY3Rpb24oKXtyZXR1cm4gbmF2aWdhdG9yJiZuYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJlxubmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbj9uZXcgUHJvbWlzZShmdW5jdGlvbihhLGIpe25hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24oYyl7YShjKX0sZnVuY3Rpb24oYyl7YihjKX0se2VuYWJsZUhpZ2hBY2N1cmFjeTohMSxtYXhpbXVtQWdlOjAsdGltZW91dDoxRTR9KX0pOlByb21pc2UucmVqZWN0KEVycm9yKFwiR2VvbG9jYXRpb24gdW5zdXBwb3J0ZWRcIikpfSxcImdDUEdcIiksdWs9RShmdW5jdGlvbigpe3ZhciBhLGIsYyxkLGU7cmV0dXJuIEFhKG5ldyB6YShuZXcgdmEoZnVuY3Rpb24oZil7c3dpdGNoKGYua2Epe2Nhc2UgMTppZigheSgpLmRhdGEuZXZnKXtmLmthPTA7YnJlYWt9YT10ajtmLmxiPTM7dmFyIGc9eWsoKTtmLmthPTU7cmV0dXJue3ZhbHVlOmd9O2Nhc2UgNTpiPWYuaGQ7Zi5rYT00O2YubGI9MDticmVhaztjYXNlIDM6cmV0dXJuIGYubGI9MCxmLmxhPW51bGwsZi5yZXR1cm4oXCJGRkZGRkZGRkZGRkZGRkZGXCIpO1xuY2FzZSA0OmlmKGIpZm9yKGM9NjtjPj0wO2MtLSl7Zz1jO3ZhciBoPW5ldyBRaihiLmNvb3Jkcy5sYXRpdHVkZSxiLmNvb3Jkcy5sb25naXR1ZGUpO3ZhciBrPWguRmQqTGo7aD1oLkdkKkxqO3ZhciBsPU1hdGguY29zKGspO2g9bmV3IFNqKE1hdGguY29zKGgpKmwsTWF0aC5zaW4oaCkqbCxNYXRoLnNpbihrKSk7az1oLmZhY2UoKTtoPVRqKGgsayk7dmFyIHA9aztrPU1hdGgubWF4KDAsTWF0aC5taW4oMTA3Mzc0MTgyMyxNYXRoLnJvdW5kKDEwNzM3NDE4MjQqVWooaC5uZyktLjUpKSk7aD1NYXRoLm1heCgwLE1hdGgubWluKDEwNzM3NDE4MjMsTWF0aC5yb3VuZCgxMDczNzQxODI0KlVqKGgudiktLjUpKSk7bD0obmV3IHhqKHAsMCkpLnNoaWZ0TGVmdCgyOCk7bD1bSGosbF07dmFyIHE9cCYxO2ZvcihwPTc7cD49MDstLXApe3ZhciByPWwsdD1wO3E9cSsoKGs+PnQqNCYxNSk8PDYpKygoaD4+dCo0JjE1KTw8Mik7cT1OaltxXTt2YXIgdT10Pj4yO3Q9R2oobmV3IHhqKHEsMCksMikuc2hpZnRMZWZ0KCh0JlxuMykqOCk7clt1XT1yW3VdLm9yKHQpO3EmPTN9aD1uZXcgVmooKG5ldyB4aihsWzBdLkI+Pj4wLGxbMV0uQj4+PjApKS5zaGlmdExlZnQoMSkuYWRkKEVqKSk7az1oLmZhY2UoKTtoPWguSS5hbmQoSmooRmosMykpO2s9bmV3IFZqKChuZXcgeGooaywwKSkuc2hpZnRMZWZ0KDYxKS5hZGQoaC5vcihFaikpKTtnPUVqLnNoaWZ0TGVmdCgyKigzMC1nKSk7ZD1uZXcgVmooay5JLmFuZChDaihnKSkub3IoZykpO2U9ZC50b1N0cmluZygpLnNsaWNlKDAsNCk7aWYoYS5pbmNsdWRlcyhlKSlyZXR1cm4gZi5yZXR1cm4oZStcIjBcIi5yZXBlYXQoMTIpKX1yZXR1cm4gZi5yZXR1cm4oXCJGRkZGRkZGRkZGRkZGRkZGXCIpfX0pKSl9LFwiZ0NGUFwiKSxYPXt9LGhrPShYLmFkUGFnZT1cImFkcGFnZVwiLFguYWRwYWdlPVwiYWRwYWdlXCIsWC5hZHM9XCJhZFwiLFguYWRzYWZlPVwiYWRzYWZlXCIsWC5hZHN0eWxlPVwiYWRzdHlsZVwiLFguYWR0ZXN0PVwiYWR0ZXN0XCIsWC5hZmRUb2tlbj1cImFmZHRcIixYLmFmc2V4cD1cImFmc2V4cFwiLFxuWC5hbGx3Y2FsbGFkPVwiYWxsd2NhbGxhZFwiLFguYmdyZXNwb25zZT1cImJncmVzcG9uc2VcIixYLmNoYW5uZWw9XCJjaGFubmVsXCIsWC5jaGF0Ym90VXNlclByb21wdD1cImNoYXRib3RVc2VyUHJvbXB0XCIsWC5jb250PVwiY29udFwiLFguY3JlZj1cImNyZWZcIixYLmN4PVwiY3hcIixYLmRlYj1cImRlYlwiLFguZGVidWc9XCJkZWJ1Z1wiLFguZG9tYWluTmFtZT1cImRvbWFpbl9uYW1lXCIsWC5lPVwiZVwiLFguZXhwZmxhZ3M9XCJleHBmbGFnc1wiLFguZmFrZWFkcz1cImZha2VhZHNcIixYLmZjYXA9XCJmY2FwXCIsWC5mZXhwPVwiZmV4cFwiLFguZm9yY2VFeD1cImV4cGlkXCIsWC5mb3JjZUdkcHI9XCJmb3JjZUdkcHJcIixYLmZvcm1hdD1cImZvcm1hdFwiLFguZ2NzPVwiZ2NzXCIsWC5nY3NlX25jPVwiZ2NzZV9uY1wiLFguZ2w9XCJnbFwiLFguZ2xwPVwiZ2xwXCIsWC5nbT1cImdtXCIsWC5ncj1cImdyXCIsWC5obD1cImhsXCIsWC5ob3N0Q2hhbm5lbD1cImhjaGFubmVsXCIsWC5ob3N0UHViSWQ9XCJoY2xpZW50XCIsWC5pZT1cImllXCIsWC5pZ25vcmVkUGFnZVBhcmFtcz1cblwiaXBwXCIsWC5pc0RhcmtNb2RlPVwiaXNEYXJrTW9kZVwiLFguanNTcmM9XCJjc2FfanNfc3JjXCIsWC5sYW5ndWFnZUNvZGU9XCJobFwiLFgubWF4VGVybUxlbmd0aD1cIm1heF9yYWRsaW5rX2xlblwiLFgubXM9XCJtc1wiLFgubm9jYWNoZT1cIm5vY2FjaGVcIixYLm51bT1cIm51bVwiLFgubnVtUmVwZWF0ZWQ9XCJhZHJlcFwiLFgub2U9XCJvZVwiLFgub3V0cHV0PVwib3V0cHV0XCIsWC5wcmVsb2FkPVwicHJlbG9hZFwiLFgucHJpY2VDdXJyZW5jeT1cInBmY3JuY3lcIixYLnByaWNlTWF4PVwicGZtYXhcIixYLnByaWNlTWluPVwicGZtaW5cIixYLnB1YklkPVwiY2xpZW50XCIsWC5xdWVyeT1cInFcIixYLnF1ZXJ5Q29udGV4dD1cInFyeV9jdHh0XCIsWC5xdWVyeUxpbms9XCJxcnlfbG5rXCIsWC5yZWZlcmVyPVwicmVmZXJlclwiLFgucm9sZT1cInJcIixYLnJvd2tleVYyPVwicm93a2V5VjJcIixYLnJzX3R0PVwicnNfdHRcIixYLnJ1cmw9XCJydXJsXCIsWC5zYWZlPVwic2FmZVwiLFguc2JzaWduYWxzPVwic2JzaWduYWxzXCIsWC5zb3VyY2U9XCJzb3VyY2VcIixYLnNvdXJjZV9pcD1cblwic291cmNlX2lwXCIsWC5zdHlsZUlkPVwicHNpZFwiLFgudGV4dENvbG9yUGFsZXR0ZT1cInRjcGFsXCIsWC50aGVtZT1cInRoZW1lXCIsWC50eXBlPVwidHlwZVwiLFgudWlkZWI9XCJ1aWRlYlwiLFgudXNlckFnZW50PVwidXNlcmFnZW50XCIsWC51dWxkPVwidXVsZFwiLFgudj1cInZcIixYLmFkZmlsaWF0ZVdwPVwiYWRmd3BcIixYLmNwcD1cImNwcFwiLFguaG90c3dhcHM9XCJob3Rzd2Fwc1wiLFgucmVzdWx0c1BhZ2VCYXNlVXJsPVwicnBidVwiLFgucmVzdWx0c1BhZ2VRdWVyeVBhcmFtPVwicnBxcFwiLFgucGVyc29uYWxpemVkQWRzPVwicGNzYVwiLFguc2hvcHBpbmdBZHNJbkNhcm91c2VsPVwicGxhX2Nhcm91c2VsXCIsWC5hdHRtYXM9XCJhdHRtYXNcIixYLmNtcFNka0lkPVwiaWFiX2NtcFNka0lkXCIsWC5nZHByQXBwbGllcz1cImlhYl9nZHByQXBwbGllc1wiLFgudGNTdHJpbmc9XCJpYWJfdGNTdHJpbmdcIixYLnNjX3N0YXR1cz1cInNjX3N0YXR1c1wiLFguc2N0PVwic2N0XCIsWC5pdnQ9XCJpdnRcIixYLmNsaWVudF9nZHByQXBwbGllcz1cImNsaWVudF9nZHByQXBwbGllc1wiLFxuWC51aU9wdGltaXplPVwidWlvcHRcIixYLnVpX29wdGltaXplPVwidWlvcHRcIixYLmRvbWFpblJlZ2lzdHJhbnQ9XCJzd3BcIixYLmRvbWFpblNlc3Npb25Ub2tlbj1cImFmZHRcIixYLmt3PVwia3dcIixYLnRlcm1zPVwidGVybXNcIixYKSx3az17aGM6MX07bT1WLnByb3RvdHlwZTttLmVjPUIoVi5wcm90b3R5cGUuZWMsXCJjQUFcIik7bS5qYz1CKFYucHJvdG90eXBlLmpjLFwiY0ZBTVwiKTttLlg9QihWLnByb3RvdHlwZS5YLFwiY0ZBXCIpO20uZWQ9QihWLnByb3RvdHlwZS5lZCxcInZBU0RPXCIpO20uTWM9QihWLnByb3RvdHlwZS5NYyxcIm9UUFBcIik7bS5FYT1CKFYucHJvdG90eXBlLkVhLFwib1RCUFwiKTttLmljPUIoVi5wcm90b3R5cGUuaWMsXCJjQ1BcIik7bS5sYz1CKFYucHJvdG90eXBlLmxjLFwiY1VJUFwiKTttLm1jPUIoVi5wcm90b3R5cGUubWMsXCJjVVwiKTttLlNiPUIoVi5wcm90b3R5cGUuU2IsXCJhT1RVXCIpO20uSz1CKFYucHJvdG90eXBlLkssXCJnRk5cIik7bS5BYz1CKFYucHJvdG90eXBlLkFjLFwiZ0ZOQU9BSlwiKTtcbm0ueWM9QihWLnByb3RvdHlwZS55YyxcImdBSVwiKTttLlliPUIoVi5wcm90b3R5cGUuWWIsXCJjT1wiKTttLkJjPUIoVi5wcm90b3R5cGUuQmMsXCJpQUlcIik7bS5OYz1CKFYucHJvdG90eXBlLk5jLFwicE1cIik7bS5DYz1CKFYucHJvdG90eXBlLkNjLFwiaVwiKTttLm9iPUIoVi5wcm90b3R5cGUub2IsXCJjSVwiKTttLkRiPUIoVi5wcm90b3R5cGUuRGIsXCJtQVwiKTttLmNkPUIoVi5wcm90b3R5cGUuY2QsXCJ0U1BcIik7bS5EYz1CKFYucHJvdG90eXBlLkRjLFwiaUZTXCIpO20uSmM9QihWLnByb3RvdHlwZS5KYyxcIm5OQVwiKTttLlhjPUIoVi5wcm90b3R5cGUuWGMsXCJzSUhcIik7bS5XYz1CKFYucHJvdG90eXBlLldjLFwic0NXXCIpO20uS2I9QihWLnByb3RvdHlwZS5LYixcInNQXCIpO20uVGM9QihWLnByb3RvdHlwZS5UYyxcInJJU1wiKTttLnJiPUIoVi5wcm90b3R5cGUucmIsXCJkQ0VcIik7bS5NYj1CKFYucHJvdG90eXBlLk1iLFwic0NcIik7bS5GYT1CKFYucHJvdG90eXBlLkZhLFwiY1ZBU0RPXCIpO1xubS55Yj1CKFYucHJvdG90eXBlLnliLFwiaUlWXCIpO20uS2M9QihWLnByb3RvdHlwZS5LYyxcInBMQ1wiKTthaz1CKGFrLFwiY1ZBU0RQT1wiKTtmdW5jdGlvbiB6aygpe31yYSh6ayxwaik7emsucHJvdG90eXBlLnRiPWZ1bmN0aW9uKCl7cmV0dXJuXCJhZmRfYWRzXCJ9O3prLnByb3RvdHlwZS5IYz1mdW5jdGlvbigpe3JldHVybiEwfTtmdW5jdGlvbiBBaygpe31yYShBayxwaik7QWsucHJvdG90eXBlLnViPWZ1bmN0aW9uKGEpe3ZhciBiPXNqKCk9PT0xNzMwMTM2OCxjPXooXCJfYWZzUnNDb29raWVsZXNzXCIpO3JldHVybihifHxjKSYmYSE9bnVsbCYmYS5pbmRleE9mKFwiZHAtXCIpPT09LTE/XCJodHRwczovL3N5bmRpY2F0ZWRzZWFyY2guZ29vZ1wiOlpiKCl9O0FrLnByb3RvdHlwZS50Yj1mdW5jdGlvbigpe3JldHVyblwiYWZkX2Fkc1wifTtBay5wcm90b3R5cGUuSGM9ZnVuY3Rpb24oKXtyZXR1cm4hMH07ZnVuY3Rpb24gQmsoKXt9cmEoQmsscGopO0JrLnByb3RvdHlwZS5DZD1mdW5jdGlvbihhKXthPXRoaXMudWIoYSkucmVwbGFjZShcInd3dy5nb29nbGVcIixcImNzZS5nb29nbGVcIik7cmV0dXJuIG5ldyBjYyhhK1wiL2NzZV92Mi9hZHNcIil9O0JrLnByb3RvdHlwZS50Yj1mdW5jdGlvbigpe3JldHVyblwidWRzX2Fkc19vbmx5XCJ9O2Z1bmN0aW9uIENrKCl7fXJhKENrLHBqKTtDay5wcm90b3R5cGUudGI9ZnVuY3Rpb24oKXtyZXR1cm5cInVkc19hZHNfb25seVwifTt2YXIgRGs9e2c6bmV3IGdpKHFpLDUpfTtmdW5jdGlvbiBFayhhLGIsYyxkLGUsZixnLGgsayxsKXtsPWw9PT12b2lkIDA/W106bDtWLmNhbGwodGhpcyxhLGIsYyxkLGUsZixnLGgsaz09PXZvaWQgMD8xOmssbCl9cmEoRWssVik7RWsucHJvdG90eXBlLmFlPWZ1bmN0aW9uKGEpe2lmKGEudGV4dENvbG9yUGFsZXR0ZSl7dmFyIGI9YS50ZXh0Q29sb3JQYWxldHRlO0FycmF5LmlzQXJyYXkoYil8fChiPVtiXSk7Yj1NZChcInRleHRDb2xvclBhbGV0dGVcIixEayxiKTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl0cnl7dmFyIGQ9YltjXTtiW2NdPWxpKGQuY2hhckF0KDApPT1cIiNcIj9kOlwiI1wiK2QpLnN1YnN0cigxKX1jYXRjaChlKXt9YS50ZXh0Q29sb3JQYWxldHRlPWIuam9pbihcIixcIil9YS5hZHRlc3Q9PVwib25cIiYmYS50ZXN0Z2wmJihhLmdsPWEudGVzdGdsLGEuZ2xwPVwiMVwiKX07RWsucHJvdG90eXBlLlg9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubnVtYmVyP1wiblwiK2EubnVtYmVyOlwiXCJ9O2Z1bmN0aW9uIEZrKGEsYixjLGQsZSxmLGcsaCxrLGwpe2w9bD09PXZvaWQgMD9bXTpsO1YuY2FsbCh0aGlzLGEsYixjLGQsZSxmLGcsaCxrPT09dm9pZCAwPzE6ayxsKX1yYShGayxWKTtGay5wcm90b3R5cGUuWD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlbGF0ZWRTZWFyY2hlcztifHxiPT09MHx8KGI9YS5udW1iZXIpfHxiPT09MHx8KGI9MTApO3JldHVyblwiclwiK2J9O0ZrLnByb3RvdHlwZS5YPUIoRmsucHJvdG90eXBlLlgsXCJjRkFfUlNcIik7ZnVuY3Rpb24gR2soYSxiLGMsZCxlLGYsZyxoLGssbCl7bD1sPT09dm9pZCAwP1tdOmw7Vi5jYWxsKHRoaXMsYSxiLGMsZCxlLGYsZyxoLGs9PT12b2lkIDA/MTprLGwpfXJhKEdrLFYpO0drLnByb3RvdHlwZS5YPWZ1bmN0aW9uKCl7cmV0dXJuXCJzXCJ9O0drLnByb3RvdHlwZS5GYT1mdW5jdGlvbihhKXtWLnByb3RvdHlwZS5GYS5jYWxsKHRoaXMsYSk7YS5jb2xvckJhY2tncm91bmR8fChhLmNvbG9yQmFja2dyb3VuZD1cInRyYW5zcGFyZW50XCIpfTt2YXIgaWs9RShmdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsayl7ZnVuY3Rpb24gbCgpe31oPWg9PT12b2lkIDA/MTpoO2s9az09PXZvaWQgMD9bXTprO2IucmVsYXRlZFNlYXJjaGVzP2IudHlwZT1cInJlbGF0ZWRzZWFyY2hcIjpiLnR5cGV8fChiLnR5cGU9XCJhZHNcIik7dmFyIHA9bmV3IHprLHE9bnVsbDtzd2l0Y2goYi50eXBlKXtjYXNlIFwicmVsYXRlZHNlYXJjaFwiOmw9Rms7cT1uZXcgQWs7YnJlYWs7Y2FzZSBcImFkc1wiOmNhc2UgXCJ0ZXh0YWRzXCI6Yi50eXBlPVwiYWRzXCI7bD1WO3E9Yi5nY3NjP25ldyBCazpwO2JyZWFrO2Nhc2UgXCJwbGFzXCI6bD1FaztxPW5ldyBDazticmVhaztjYXNlIFwic2VhcmNoYm94XCI6bD1HaztxPXA7cD1zaigpPT09MTczMDEzNjg7dmFyIHI9eihcIl9hZnNSc0Nvb2tpZWxlc3NcIik7aWYocHx8cilxPW5ldyBBazticmVhaztkZWZhdWx0OnRocm93IHFjKFwiaW52YWxpZCBibG9jayB0eXBlOiBcIitiLnR5cGUpO31yZXR1cm4gbmV3IGwoYSxiLHEsYyxkLGUsZixnLGgsayl9LFxuXCJuQUJcIik7ZnVuY3Rpb24gSGsoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHN8fChhLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cz1bXSk7dmFyIGU9ZWgoYS5kb2N1bWVudCk7aWYoYyl7dmFyIGY9ZnVuY3Rpb24oKXtpZihjKXt2YXIgZz1hLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cyxoPXliKGcsZSk7aD49MCYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGcsaCwxKX1lLnJlbW92ZUV2ZW50TGlzdGVuZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImxvYWRcIixmLCExKTtlLnJlbW92ZUV2ZW50TGlzdGVuZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsZiwhMSl9O2JoKGUsXCJsb2FkXCIsZik7YmgoZSxcImVycm9yXCIsZil9ZCYmKGUuYXR0cmlidXRpb25TcmM9XCJcIik7ZS5zcmM9YjthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cy5wdXNoKGUpfVxuZnVuY3Rpb24gSWsoYSl7dmFyIGI9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVwiaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvZ2VuXzIwND9pZD10Y2ZlXCI7Y2goYSxmdW5jdGlvbihkLGUpe2lmKGR8fGQ9PT0wKWMrPVwiJlwiK2UrXCI9XCIrZW5jb2RlVVJJQ29tcG9uZW50KFwiXCIrZCl9KTtKayhjLGIpfVxuZnVuY3Rpb24gSmsoYSxiKXt2YXIgYz13aW5kb3c7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGQ9ZD09PXZvaWQgMD8hMTpkO2MuZmV0Y2g/KGI9e2tlZXBhbGl2ZTohMCxjcmVkZW50aWFsczpcImluY2x1ZGVcIixyZWRpcmVjdDpcImZvbGxvd1wiLG1ldGhvZDpcImdldFwiLG1vZGU6XCJuby1jb3JzXCJ9LGQmJihiLm1vZGU9XCJjb3JzXCIsXCJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZ1wiaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlP2IuYXR0cmlidXRpb25SZXBvcnRpbmc9e2V2ZW50U291cmNlRWxpZ2libGU6XCJ0cnVlXCIsdHJpZ2dlckVsaWdpYmxlOlwiZmFsc2VcIn06Yi5oZWFkZXJzPXtcIkF0dHJpYnV0aW9uLVJlcG9ydGluZy1FbGlnaWJsZVwiOlwiZXZlbnQtc291cmNlXCJ9KSxjLmZldGNoKGEsYikpOkhrKGMsYSxiPT09dm9pZCAwPyExOmIsZD09PXZvaWQgMD8hMTpkKX07ZnVuY3Rpb24gS2soYSl7YS5hZGR0bENvbnNlbnQhPT12b2lkIDAmJnR5cGVvZiBhLmFkZHRsQ29uc2VudCE9PVwic3RyaW5nXCImJihhLmFkZHRsQ29uc2VudD12b2lkIDApO2EuZ2RwckFwcGxpZXMhPT12b2lkIDAmJnR5cGVvZiBhLmdkcHJBcHBsaWVzIT09XCJib29sZWFuXCImJihhLmdkcHJBcHBsaWVzPXZvaWQgMCk7cmV0dXJuIGEudGNTdHJpbmchPT12b2lkIDAmJnR5cGVvZiBhLnRjU3RyaW5nIT09XCJzdHJpbmdcInx8YS5saXN0ZW5lcklkIT09dm9pZCAwJiZ0eXBlb2YgYS5saXN0ZW5lcklkIT09XCJudW1iZXJcIj8yOmEuY21wU3RhdHVzJiZhLmNtcFN0YXR1cyE9PVwiZXJyb3JcIj8wOjN9ZnVuY3Rpb24gTGsoYSxiKXtiPWI9PT12b2lkIDA/e306Yjt0aGlzLmJiPWE7dGhpcy5yYT1udWxsO3RoaXMuTGQ9e307dGhpcy56ZT0wO3ZhciBjO3RoaXMuVmQ9KGM9Yi50aW1lb3V0TXMpIT1udWxsP2M6NTAwO3ZhciBkO3RoaXMucmQ9KGQ9Yi5QZykhPW51bGw/ZDohMTt0aGlzLldiPW51bGx9XG5yYShMayxGZik7XG5May5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGcsaCl7Y2xlYXJUaW1lb3V0KGYpO2c/KGQ9ZyxkLmludGVybmFsRXJyb3JTdGF0ZT1LayhkKSxkLmludGVybmFsQmxvY2tPbkVycm9ycz1jLnJkLGgmJmQuaW50ZXJuYWxFcnJvclN0YXRlPT09MHx8KGQudGNTdHJpbmc9XCJ0Y3VuYXZhaWxhYmxlXCIsaHx8KGQuaW50ZXJuYWxFcnJvclN0YXRlPTMpKSk6KGQudGNTdHJpbmc9XCJ0Y3VuYXZhaWxhYmxlXCIsZC5pbnRlcm5hbEVycm9yU3RhdGU9Myk7YShkKX12YXIgYz10aGlzLGQ9e2ludGVybmFsQmxvY2tPbkVycm9yczp0aGlzLnJkfSxlPWxkKGZ1bmN0aW9uKCl7cmV0dXJuIGEoZCl9KSxmPTA7dGhpcy5WZCE9PS0xJiYoZj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZC50Y1N0cmluZz1cInRjdW5hdmFpbGFibGVcIjtkLmludGVybmFsRXJyb3JTdGF0ZT0xO2UoKX0sdGhpcy5WZCkpO3RyeXtNayh0aGlzLFwiYWRkRXZlbnRMaXN0ZW5lclwiLGIpfWNhdGNoKGcpe2QudGNTdHJpbmc9XG5cInRjdW5hdmFpbGFibGVcIixkLmludGVybmFsRXJyb3JTdGF0ZT0zLGYmJihjbGVhclRpbWVvdXQoZiksZj0wKSxlKCl9fTtMay5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXthJiZhLmxpc3RlbmVySWQmJk1rKHRoaXMsXCJyZW1vdmVFdmVudExpc3RlbmVyXCIsbnVsbCxhLmxpc3RlbmVySWQpfTtmdW5jdGlvbiBNayhhLGIsYyxkKXtjfHwoYz1mdW5jdGlvbigpe30pO2lmKHR5cGVvZiBhLmJiLl9fdGNmYXBpPT09XCJmdW5jdGlvblwiKWE9YS5iYi5fX3RjZmFwaSxhKGIsMixjLGQpO2Vsc2UgaWYoYS5JYSgpKXtOayhhKTt2YXIgZT0rK2EuemU7YS5MZFtlXT1jO2EucmEmJihjPXt9LGEucmEucG9zdE1lc3NhZ2UoKGMuX190Y2ZhcGlDYWxsPXtjb21tYW5kOmIsdmVyc2lvbjoyLGNhbGxJZDplLHBhcmFtZXRlcjpkfSxjKSxcIipcIikpfWVsc2UgYyh7fSwhMSl9XG5May5wcm90b3R5cGUuSWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yYT90aGlzLnJhOnRoaXMucmE9ZGgodGhpcy5iYixcIl9fdGNmYXBpTG9jYXRvclwiKX07ZnVuY3Rpb24gTmsoYSl7YS5XYnx8KGEuV2I9ZnVuY3Rpb24oYil7dHJ5e3ZhciBjPSh0eXBlb2YgYi5kYXRhPT09XCJzdHJpbmdcIj9KU09OLnBhcnNlKGIuZGF0YSk6Yi5kYXRhKS5fX3RjZmFwaVJldHVybjthLkxkW2MuY2FsbElkXShjLnJldHVyblZhbHVlLGMuc3VjY2Vzcyl9Y2F0Y2goZCl7fX0sYmgoYS5iYixcIm1lc3NhZ2VcIixhLldiKSl9XG5mdW5jdGlvbiBPayhhKXtpZihhLmdkcHJBcHBsaWVzPT09ITEpcmV0dXJuITA7YS5pbnRlcm5hbEVycm9yU3RhdGU9PT12b2lkIDAmJihhLmludGVybmFsRXJyb3JTdGF0ZT1LayhhKSk7cmV0dXJuIGEuY21wU3RhdHVzPT09XCJlcnJvclwifHxhLmludGVybmFsRXJyb3JTdGF0ZSE9PTA/YS5pbnRlcm5hbEJsb2NrT25FcnJvcnM/KElrKHtlOlN0cmluZyhhLmludGVybmFsRXJyb3JTdGF0ZSl9KSwhMSk6ITA6YS5jbXBTdGF0dXMhPT1cImxvYWRlZFwifHxhLmV2ZW50U3RhdHVzIT09XCJ0Y2xvYWRlZFwiJiZhLmV2ZW50U3RhdHVzIT09XCJ1c2VyYWN0aW9uY29tcGxldGVcIj8hMTohMH07ZnVuY3Rpb24gUGsoYSl7aWYoIU9rKGEpKXJldHVybiExO2lmKGEuZ2RwckFwcGxpZXM9PT0hMXx8YS50Y1N0cmluZz09PVwidGN1bmF2YWlsYWJsZVwiKXJldHVybiEwO3ZhciBiPWI9PT12b2lkIDA/XCI3NTVcIjpiO2I6e2lmKGEucHVibGlzaGVyJiZhLnB1Ymxpc2hlci5yZXN0cmljdGlvbnMpe3ZhciBjPWEucHVibGlzaGVyLnJlc3RyaWN0aW9uc1tcIjFcIl07aWYoYyE9PXZvaWQgMCl7Yz1jW2I9PT12b2lkIDA/XCI3NTVcIjpiXTticmVhayBifX1jPXZvaWQgMH1jPT09MD9iPSExOmEucHVycG9zZSYmYS52ZW5kb3I/KGM9YS52ZW5kb3IuY29uc2VudHMsKGI9ISghY3x8IWNbYj09PXZvaWQgMD9cIjc1NVwiOmJdKSkmJmEucHVycG9zZU9uZVRyZWF0bWVudCYmYS5wdWJsaXNoZXJDQz09PVwiQ0hcIj9iPSEwOmImJihiPWEucHVycG9zZS5jb25zZW50cyxiPSEoIWJ8fCFiW1wiMVwiXSkpKTpiPSEwO3JldHVybiBiPyEwOihjb25zb2xlLndhcm4ocWMoXCJUQyBzdHJpbmcgbGFja3MgcHVycG9zZSAxIGNvbnNlbnQgZm9yIEdvb2dsZSAoR1ZMIElEOiA3NTUpLiBDU0EgYWRzIHdpbGwgbm90IGJlIHJlcXVlc3RlZCB1bnRpbCBjb25zZW50IGlzIGdpdmVuLiBUQyBzdHJpbmc6IFwiK1xuYS50Y1N0cmluZykpLCExKX1cbnZhciBRaz1FKGZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBMayh3aW5kb3cse3RpbWVvdXRNczotMX0pO2lmKHR5cGVvZiBiLmJiLl9fdGNmYXBpPT09XCJmdW5jdGlvblwifHxiLklhKCkhPW51bGwpe3ZhciBjPWNlKCksZD0wO2Q9c2V0VGltZW91dChmdW5jdGlvbigpe2Q9MDtjb25zb2xlLndhcm4ocWMoXCJObyByZXNwb25zZSByZWNlaXZlZCBmcm9tIENNUCBhZnRlciAxMCBzZWNvbmRzLiBDU0EgYWRzIGhhdmUgbm90IGJlZW4gcmVxdWVzdGVkLlwiKSl9LDFFNCk7Yi5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKGUpe2QmJihjbGVhclRpbWVvdXQoZCksZD0wKTtpZihQayhlKSl7aWYoZS5pbnRlcm5hbEVycm9yU3RhdGUhPT0wKXt2YXIgZj1uZXcgZ2MoYSk7c3dpdGNoKGUuaW50ZXJuYWxFcnJvclN0YXRlKXtjYXNlIDE6bGMoZixcInRvXCIsSlNPTi5zdHJpbmdpZnkoZSkpO2NvbnNvbGUud2FybihxYyhcIlJlYWNoZWQgdGltZW91dCBiZWZvcmUgYSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZnJvbSBDTVAuXCIpKTticmVhaztcbmNhc2UgMjpsYyhmLFwiaXRcIixKU09OLnN0cmluZ2lmeShlKSk7Y29uc29sZS53YXJuKHFjKFwiSW52YWxpZCB0eXBlcyBpbiByZWNlaXZlZCB0Y0RhdGEuXCIpKTticmVhaztjYXNlIDM6bGMoZixcImVyXCIsSlNPTi5zdHJpbmdpZnkoZSkpLGNvbnNvbGUud2FybihxYyhcIkNNUCByZXR1cm5lZCBlcnJvciBzdGF0dXMuXCIpKX19Yi5yZW1vdmVFdmVudExpc3RlbmVyKGUpO2MucmVzb2x2ZSh7dGNTdHJpbmc6ZS50Y1N0cmluZyxnZHByQXBwbGllczplLmdkcHJBcHBsaWVzfSl9fSk7cmV0dXJuIGMucHJvbWlzZX1yZXR1cm4gbnVsbH0sXCJnVEFEXCIpO3ZhciBSaz1qYShbXCJodHRwczovL3BhcnRuZXIuZ29vZ2xlYWRzZXJ2aWNlcy5jb20vZ2FtcGFkL2Nvb2tpZS5qc1wiXSk7ZnVuY3Rpb24gU2soYSxiKXt2YXIgYz1hLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7TWIoYyxiKTsoYT1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpWzBdKSYmYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGMsYSl9ZnVuY3Rpb24gVGsoYSxiLGMsZCxlKXt0aGlzLm5hbWU9YTt0aGlzLnZhbHVlPWI7dGhpcy52Yz1jO3RoaXMucGF0aD1kPT09dm9pZCAwP251bGw6ZDt0aGlzLmRvbWFpbj1lPT09dm9pZCAwP251bGw6ZX1mdW5jdGlvbiBVayhhKXt0aGlzLk49YTt0aGlzLmRjPTA7dGhpcy5TZD1udWxsfVxuZnVuY3Rpb24gVmsoYSxiKXtpZighYi5uYW1lfHwhYi52YWx1ZXx8IWIudmMpdGhyb3dcIlNldHRpbmcgYSBjb29raWUgbXVzdCBpbmNsdWRlIGNvb2tpZSBuYW1lIGFuZCB2YWx1ZSBhbmQgZXhwaXJhdGlvbi5cIjt2YXIgYz1iLm5hbWUrXCI9XCIrYi52YWx1ZSxkPVwiXCIsZT1cIlwiLGY9XCJcIjtiLnBhdGgmJihkPVwiO3BhdGg9XCIrYi5wYXRoKTt2YXIgZz1iLmRvbWFpbjtpZihnKXthOmlmKHooXCJfdXNlU2VydmVyUHJvdmlkZWREb21haW5cIikpe2lmKGU9VWIoXCJzc2RsXCIsV2IoKSkpaWYoZT1uZXcgUmVnRXhwKFwiKFwiK2F0b2IoZSkucmVwbGFjZSgvLC9nLFwiKXwoXCIpK1wiKVwiKSxnLm1hdGNoKGUpKXtlPSExO2JyZWFrIGF9ZT0hMH1lbHNlIGU9ITE7ZT1cIjtkb21haW49XCIrKGU/ZzphLk4ubG9jYXRpb24uaG9zdG5hbWUpfWIudmMmJihmPVwiO2V4cGlyZXM9XCIrYi52Yyk7YS5OLmRvY3VtZW50LmNvb2tpZT1jK2YrZCtlfVxuZnVuY3Rpb24gV2soYSxiKXtpZighYilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtjb29raWU6bnVsbCxzdGF0dXM6NH0pO3ZhciBjPWIuX2Nvb2tpZXNfWzBdO2lmKCFjKXJldHVybiBQcm9taXNlLnJlc29sdmUoe2Nvb2tpZTpudWxsLHN0YXR1czo0fSk7Yj1jLl92YWx1ZV87Yz1uZXcgVGsoXCJfX2dzYXNcIixiLChuZXcgRGF0ZShjLl9leHBpcmVzXyoxRTMpKS50b1VUQ1N0cmluZygpLGMuX3BhdGhfLGMuX2RvbWFpbl8pO3RyeXtWayhhLGMpfWNhdGNoKGQpe3JldHVybiBQcm9taXNlLnJlc29sdmUoe2Nvb2tpZTpudWxsLHN0YXR1czo3fSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7Y29va2llOmIsc3RhdHVzOjN9KX1cbmZ1bmN0aW9uIFhrKGEpe2lmKGEuZGM9PT0wKXthOnt0cnl7dmFyIGI9bmV3IERhdGU7Yi5zZXRUaW1lKGIuZ2V0VGltZSgpKzM2RTUpO1ZrKGEsbmV3IFRrKFwiR29vZ2xlQWRTZXJ2aW5nVGVzdFwiLFwiR29vZFwiLGIudG9VVENTdHJpbmcoKSkpfWNhdGNoKGQpe2I9ITE7YnJlYWsgYX1pZihiPVlrKGEsXCJHb29nbGVBZFNlcnZpbmdUZXN0XCIpPT09XCJHb29kXCIpe3ZhciBjPW5ldyBUayhcIkdvb2dsZUFkU2VydmluZ1Rlc3RcIixcIkdvb2RcIiwobmV3IERhdGUoMCkpLnRvVVRDU3RyaW5nKCkpO3RyeXtWayhhLGMpfWNhdGNoKGQpe2I9ITF9fX1hLmRjPWI/MjoxfXJldHVybiBhLmRjPT09Mn1cbmZ1bmN0aW9uIFlrKGEsYil7aWYodHlwZW9mIGEuTi5kb2N1bWVudC5jb29raWU9PT1cInN0cmluZ1wiKXt2YXIgYz1uZXcgUmVnRXhwKFwiXlxcXFxzKlwiK2IrXCI9KC4qKVwiKTtpZihhPWEuTi5kb2N1bWVudC5jb29raWUuc3BsaXQoXCI7XCIpLmZpbmQoZnVuY3Rpb24oZCl7cmV0dXJuIGQubWF0Y2goYykhPW51bGx9KSlyZXR1cm4gYS5tYXRjaChjKVsxXX19XG5mdW5jdGlvbiBaayhhLGIpe2I9e2RvbWFpbjphLk4ubG9jYXRpb24uaG9zdG5hbWUsY2xpZW50OmJ8fFwidW5kZWZpbmVkXCIscHJvZHVjdDpcIlNBU1wiLGNhbGxiYWNrOlwiX19zYXNDb29raWVcIn07aWYoYS5OIT1hLk4ucGFyZW50JiYhYi5kb21haW4pe3ZhciBjPWEuTi5wYXJlbnQmJmEuTi5wYXJlbnQubG9jYXRpb24mJmEuTi5wYXJlbnQubG9jYXRpb24uaG9zdG5hbWU7Yi5kb21haW49YS5OLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucyYmYS5OLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2luc1swXXx8Y312YXIgZD1vYihtZChSayksYik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe2EuTi5fX3Nhc0Nvb2tpZT1mdW5jdGlvbihmKXtXayhhLGEuU2Q/YS5TZDpmKS50aGVuKGZ1bmN0aW9uKGcpe2UoZyl9KX07U2soYS5OLmRvY3VtZW50LGQpfSl9XG52YXIgJGs9RShmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD9udWxsOlhrKGEpPyhhPVlrKGEsXCJfX2dzYXNcIikpP3taOjYsY29va2llOmF9Om51bGw6e1o6MCxjb29raWU6bnVsbH19LFwic2FzQ2tlRXJyXCIpLGFsPUUoZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFVrKHdpbmRvdyk7cmV0dXJuIFhrKGIpP1prKGIsYSkudGhlbihmdW5jdGlvbihjKXtyZXR1cm57WjpjLnN0YXR1cyxjb29raWU6Yy5jb29raWV9fSk6UHJvbWlzZS5yZXNvbHZlKHtaOjAsY29va2llOm51bGx9KX0sXCJzY0VyclwiKTt2YXIgYmw9bnVsbDtmdW5jdGlvbiBjbChhLGIsYyl7YT8oYi5jb29raWU9YS5jb29raWUsYi5aPWEuWik6KGJsPWFsKGMpLGJsLnRoZW4oZnVuY3Rpb24oZCl7Yi5jb29raWU9ZC5jb29raWU7Yi5aPWQuWn0pKX1cbnZhciBkbD1FKGZ1bmN0aW9uKGEsYixjLGQsZSxmKXtjPWM9PT12b2lkIDA/d2luZG93OmM7ZD1kPT09dm9pZCAwPyEwOmQ7Yj0hMTt2YXIgZz1kPT09ITEsaCxrLGw9KChoPWMubG9jYXRpb24pPT1udWxsP3ZvaWQgMDooaz1oLmhvc3QpPT1udWxsP3ZvaWQgMDprLmluZGV4T2YoXCJzdGFydHBhZ2UuY29tXCIpKSE9PS0xLHA9IShlPT09dm9pZCAwPzA6ZSkmJiFsO2Y9WGIoXCJjZGxcIixXYigpKXx8KGY9PT12b2lkIDA/ITE6Zik7cCYmZz8oYj0hMCxlPW51bGwpOmU9UWsoYSk7dmFyIHE9e2dhOnZvaWQgMCx0ZDp2b2lkIDAsdGNTdHJpbmc6dm9pZCAwLGdkcHJBcHBsaWVzOnZvaWQgMCxaOnZvaWQgMCxjb29raWU6dm9pZCAwLEFmOmQsYWc6Yix4ZjpwLFpmOmZ9LHI9ITE7cCYmKGcmJihyPSEwKSxmfHwocj0hMCkpO3ZhciB0PW51bGw7ciYmKHQ9JGsobmV3IFVrKGMpKSxjbCh0LHEsYSkpO2Q9W25qKCksZV07cmV0dXJuIGQuZXZlcnkoZnVuY3Rpb24odSl7cmV0dXJuIHU9PW51bGx9KT9cbnE6ZmUoZCkudGhlbihmdW5jdGlvbih1KXtmb3IodmFyIHY9MDt2PHUubGVuZ3RoO3YrKyl7dmFyIEQ9dVt2XTtpZihEKXN3aXRjaCh2KXtjYXNlIDA6cS5nYT1ELmdhO3EudGQ9RC5JYjticmVhaztjYXNlIDE6cS50Y1N0cmluZz1ELnRjU3RyaW5nLHEuZ2RwckFwcGxpZXM9RC5nZHByQXBwbGllc319IXB8fHJ8fHEudGNTdHJpbmc9PW51bGwmJnEuZ2RwckFwcGxpZXM9PW51bGx8fCh0PSRrKG5ldyBVayhjKSksY2wodCxxLGEpKTtyZXR1cm4gcX0pLmNhdGNoKGZ1bmN0aW9uKHUpe0MubG9nKHUsXCJ1c2RQckVyclwiKX0pfSxcInVzZEVyclwiKTtmdW5jdGlvbiBlbChhKXtmb3IodmFyIGI9bmV3IGZsLGM9YVswXSxkPSExLGU9MTtlPGEubGVuZ3RoO2UrKyl7dmFyIGY9bmV3IGdsLGc9dm9pZCAwLGg9dm9pZCAwLGs9ZixsPWMscD1hW2VdO2ZvcihoIGluIHApcC5oYXNPd25Qcm9wZXJ0eShoKSYmKGsub3B0aW9uc1toXT1wW2hdKTtmb3IoZyBpbiBsKWwuaGFzT3duUHJvcGVydHkoZykmJihrLm9wdGlvbnNbZ118fChrLm9wdGlvbnNbZ109bFtnXSkpO2R8fChmLm9wdGlvbnMudHlwZXx8Zi5vcHRpb25zLnJlbGF0ZWRTZWFyY2hlcykmJmYub3B0aW9ucy50eXBlIT09XCJhZHNcIiYmZi5vcHRpb25zLnR5cGUhPT1cInRleHRhZHNcInx8KGQ9Zi5vcHRpb25zLmZpcnN0VGV4dEFkQmxvY2s9ITApO2IuUWIucHVzaChmKX1mb3IodmFyIHEgaW4gYyljLmhhc093blByb3BlcnR5KHEpJiYoYi5IYltxXT1jW3FdKTtyZXR1cm4gYn1mdW5jdGlvbiBnbCgpe3RoaXMub3B0aW9ucz17fX1cbmZ1bmN0aW9uIGZsKCl7dGhpcy5IYj17fTt0aGlzLlFiPVtdfTt2YXIgaGw9aGMoKSxpbD1cImNsaWNrdHJhY2tVcmwgY29udGFpbmVyIGNoYXRib3RVc2VyUHJvbXB0IGlmcmFtZUhlaWdodENhbGxiYWNrIGxpbmtUYXJnZXQgaXNEYXJrTW9kZSBwdWJJZCBxdWVyeSBzZXR0aW5nc0lkIHN0eWxlSWQgd2FpdEZvckFkc1wiLnNwbGl0KFwiIFwiKTtmdW5jdGlvbiBqbChhKXtpZihhLmxlbmd0aDwyKXRocm93IHFjKFwiTm8gb3B0aW9ucyBzcGVjaWZpZWQuXCIpO3JldHVybiBhWzFdaW5zdGFuY2VvZiBBcnJheT9bYVswXV0uY29uY2F0KGFbMV0pOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEsMCl9amw9QihqbCxcInBwYXRhXCIpO1xuZnVuY3Rpb24ga2woYSl7dmFyIGI9IVJkKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5xdWVyeSxjPWI/XCJyZWxhdGVkc2VhcmNoXCI6XCJhZHNcIjtiPWI/MTU6NTtmb3IodmFyIGQ9ITEsZT0xO2U8YS5sZW5ndGg7KytlKWlmKGFbZV0udHlwZT09Yyl7ZD0hMDticmVha31lPVtdO2E9dyhhKTtmb3IodmFyIGY9YS5uZXh0KCk7IWYuZG9uZTtmPWEubmV4dCgpKWY9Zi52YWx1ZSxmLnR5cGU9PVwiZHluYW1pY1wiP2R8fChmLnR5cGU9YyxmLm51bWJlcnx8KGYubnVtYmVyPWIpLGUucHVzaChmKSk6ZS5wdXNoKGYpO3JldHVybiBlfVxuZnVuY3Rpb24gbGwoYSl7ZnVuY3Rpb24gYihmKXtzd2l0Y2goZil7Y2FzZSBcInJlbGF0ZWRzZWFyY2hcIjpjYXNlIFwic2VhcmNoYm94XCI6cmV0dXJuIGU/MToyO2RlZmF1bHQ6cmV0dXJuIGU/MjoxfX12YXIgYz1zaigpPT09MTczMDEzNjgsZD16KFwiX2Fmc1JzQ29va2llbGVzc1wiKTtpZighYyYmIWR8fGEubGVuZ3RoPDMpcmV0dXJuIGE7dmFyIGU9IVJkKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5xdWVyeTtyZXR1cm4gYS5zbGljZSgwLDEpLmNvbmNhdChhLnNsaWNlKDEpLnNvcnQoZnVuY3Rpb24oZixnKXtyZXR1cm4gYihmLnR5cGUpLWIoZy50eXBlKX0pKX1cbmZ1bmN0aW9uIG1sKGEsYil7dmFyIGM9Yi5nYSxkPWIudGQsZT1iLnRjU3RyaW5nLGY9Yi5nZHByQXBwbGllcyxnPWIuWjtiPWIuY29va2llO2MhPW51bGwmJihhLmNwcD1jKTtkPT09ITEmJihhLnBlcnNvbmFsaXplZEFkcz0hMSk7ZSYmKGEudGNTdHJpbmc9ZSk7ZiE9bnVsbCYmKGEuZ2RwckFwcGxpZXM9Zik7ZyE9bnVsbCYmKGEuc2Nfc3RhdHVzPWcpO2ImJihhLnNjdD1iKX1tbD1CKG1sLFwiYVVEVEFcIik7XG5mdW5jdGlvbiBubChhLGIsYyxkKXtjPWM9PT12b2lkIDA/bnVsbDpjO3ZhciBlPWEuTGM7ZD1kfHxEYXRlLm5vdygpO2I9amwoYik7aWYoYlswXSl7Yj1rbChiKTtiPWxsKGIpO2EuaGImJihiWzBdLnR5cGU9YS5oYik7aWYoYyYmKG1sKGJbMF0sYyksYy54ZiYmYy5hZz09PSExJiZjLmdkcHJBcHBsaWVzPT09dm9pZCAwJiZjLnRjU3RyaW5nPT09dm9pZCAwJiZjLlpmJiZjLkFmKSlyZXR1cm47YT1lbChiKTt2YXIgZj1bXSxnPVtdLGg9e307Yz1mdW5jdGlvbihsKXtmb3IodmFyIHA9dyhDYihsKSkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3E9cS52YWx1ZTt2YXIgcj1lW3FdO2lmKHImJnIuRClmLnB1c2gocSk7ZWxzZSBpZighciYmcSE9PVwiZmlyc3RUZXh0QWRCbG9ja1wiKWcucHVzaChxKTtlbHNlIGlmKHImJnIuZyl7aWYobFtxXT09PW51bGx8fGxbcV09PT12b2lkIDApYnJlYWs7ci5nLkYobFtxXSkhPW51bGx8fHIuSHx8KGhbcV09bFtxXSl9fX07YyhhLkhiKTtiPVxudyhhLlFiKTtmb3IodmFyIGs9Yi5uZXh0KCk7IWsuZG9uZTtrPWIubmV4dCgpKWMoay52YWx1ZS5vcHRpb25zKTtmLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oXCJUaGUgZm9sbG93aW5nIENTQSBvcHRpb24ocykgd2VyZSBpZ25vcmVkIGR1ZSB0byBiZWluZyBvdmVycmlkZGVuIGJ5IG5hdGl2ZSBzdHlsZSBjb250cm9sczogXCIrZi5qb2luKFwiLCBcIikpO2cubGVuZ3RoPjAmJmNvbnNvbGUud2FybihcIlRoZSBmb2xsb3dpbmcgQ1NBIG9wdGlvbihzKSBhcmUgdW5zdXBwb3J0ZWQ6IFwiK2cuam9pbihcIiwgXCIpKTtPYmplY3Qua2V5cyhoKS5sZW5ndGg+MCYmKGM9T2JqZWN0LmtleXMoaCkubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBsK1wiPVwiK2hbbF19KS5qb2luKFwiLlwiKSxobC5jbGllbnQ9YS5IYi5wdWJJZCxlYyYma2MoaGwsXCJ1b2l1LVwiK2MpKTsoZD1vbChlLGEuSGIsYS5RYixkLHt9KSkmJmQudGhlbihmdW5jdGlvbihsKXtzayhsKX0pfX1ubD1CKG5sLFwiYWFzaVwiKTtcbmZ1bmN0aW9uIG9sKGEsYixjLGQpe2lmKGMubGVuZ3RoPT0wKXJldHVybiBudWxsO3ZhciBlPVtdLGY9W10sZz17bWF4VG9wOjAsbWluVG9wOjAscmhzOjB9LGg9T2JqZWN0LmtleXMoVyk7cGwrKztmb3IodmFyIGs9Yy5sZW5ndGgtMTtrPj0wO2stLSl7dmFyIGw9Y1trXS5vcHRpb25zO2wuYWRUZXN0JiYhbC5hZHRlc3QmJihsLmFkdGVzdD1sLmFkVGVzdCk7ZGVsZXRlIGwuYWRUZXN0O3ZhciBwPXFrLmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoXCJhbXBwcm9qZWN0Lm5ldFwiKSxxPVtdO2lmKGwuZmlyc3RUZXh0QWRCbG9jayYmIXAmJiF6KFwiX2VuYWJsZVVuaWZpZWRNdWRza2lwcGVySWZyYW1lXCIpKXtwPXt9O2Zvcih2YXIgcj13KGlsKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl0PXQudmFsdWUscFt0XT1sW3RdO3Aucm9sZT1cInNcIjtwLm1hc3Rlck51bWJlcj1wbDtrPjAmJihwLnNsYXZlTnVtYmVyPWspO3I9aWsoYSxwLGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLFxuMik7cD1payhhLHAsZCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsMyk7Zi51bnNoaWZ0KHApO2YudW5zaGlmdChyKTtxLnB1c2gocik7cS5wdXNoKHApO1dbci5LKCldPXI7V1twLksoKV09cH1rPT09MD8obC5yb2xlPVwibVwiLGwubWFzdGVyTnVtYmVyPXBsLGw9aWsoYSxsLGQsYixlLGcsZiwxLHEpLFdbbC5LKCldPWwpOihsLnJvbGU9XCJzXCIsbC5zbGF2ZU51bWJlcj1rLGwubWFzdGVyTnVtYmVyPXBsLGw9aWsoYSxsLGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLDEscSksZS51bnNoaWZ0KGwueWQpLGYudW5zaGlmdChsKSxnLm1heFRvcCs9bC5GYixnLm1pblRvcCs9bC5HYixnLnJocys9bC5UYSxXW2wuSygpXT1sKX1hPVwibWFzdGVyLVwiK3BsO2Zvcih2YXIgdSBpbiBXKU5kKHUpJiYhaC5pbmNsdWRlcyh1KSYmKFdbdV0uQWErPVwifFwiK1dbYV0uQWEpO2ZvcihjPWMubGVuZ3RoLTE7Yz49MDtjLS0paD1bXCJzbGF2ZVwiLGMscGxdLmpvaW4oXCItXCIpLFcuaGFzT3duUHJvcGVydHkoaCkmJlxuV1toXS5vYigpO2M9bnVsbDtXLmhhc093blByb3BlcnR5KGEpP2M9V1thXS5vYigpOkMubG9nKFwiTWlzc2luZyBhZCBibG9jayBmb3IgXCIrYSxcImNBRk9NTVwiKTtyZXR1cm4gY31vbD1CKG9sLFwiY0FGT1wiKTtmdW5jdGlvbiBtayhhLGIsYyxkKXtkfHxXW2Muc3BsaXQoXCIuXCIpWzBdXS5KYyhhKX1taz1CKG1rLFwiaEFDXCIpO3ZhciBxbD17fTtcbmZ1bmN0aW9uIG5rKGEsYixjLGQpe2I9ZC5mdzt2YXIgZT1kLmZoO2Q9ZC5haDtkPXR5cGVvZiBiPT09XCJudW1iZXJcIiYmdHlwZW9mIGU9PT1cIm51bWJlclwiJiZkIGluc3RhbmNlb2YgQXJyYXk/bmV3IGFlKGIsZSxkKTpudWxsO2lmKGQhPW51bGwmJihjPWMuc3BsaXQoXCIuXCIpWzBdLGI9V1tjXSxiLlRjKGQsYSksYi5vcHRpb25zJiZiLm9wdGlvbnMuaWZyYW1lSGVpZ2h0Q2FsbGJhY2smJihhPWIuY29udGFpbmVyLm9mZnNldEhlaWdodCxxbFtjXSE9YSkpKXtxbFtjXT1hO3RyeXtiLm9wdGlvbnMuaWZyYW1lSGVpZ2h0Q2FsbGJhY2soYSl9Y2F0Y2goZil7fX19bms9QihuayxcImhDXCIpO1xuZnVuY3Rpb24gb2soYSxiLGMsZCl7YT1XW2Muc3BsaXQoXCIuXCIpWzBdXTtxay5nZXRDb21wdXRlZFN0eWxlJiZhIGluc3RhbmNlb2YgRWsmJihiPXBhcnNlSW50KHFrLmdldENvbXB1dGVkU3R5bGUoYS5jb250YWluZXJ8fGRvY3VtZW50LmJvZHkpLndpZHRoLDEwKSxkPT1iJiYvTW9iaWxlL2kudGVzdChmZykmJmQtLSk7YS5XYyhkKX1vaz1CKG9rLFwid0NcIik7ZnVuY3Rpb24gcmwoYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIFcpaWYoVy5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9V1tkXTtlLm9wdGlvbnMmJmUub3B0aW9ucy5tYXN0ZXJOdW1iZXI9PWImJnR5cGVvZiBlLm9wdGlvbnMuY29udGFpbmVyPT1cInN0cmluZ1wiJiYoZT1lLm9wdGlvbnMuY29udGFpbmVyLGNbZV09KGNbZV18fDApK2EuR1tkK1wiLmFDXCJdLnZhbHVlKX1yZXR1cm4gY31ybD1CKHJsLFwiZ0FDXCIpO1xuZnVuY3Rpb24ga2soYSxiKXt2YXIgYz1XW1wibWFzdGVyLVwiK2JdO2lmKGMmJmMub3B0aW9ucyYmYy5vcHRpb25zLmFkc1Jlc3BvbnNlQ2FsbGJhY2spe2E9cmwoYSxiKTt0cnl7Yy5vcHRpb25zLmFkc1Jlc3BvbnNlQ2FsbGJhY2soYSl9Y2F0Y2goZCl7fX19a2s9QihrayxcImFDQ1wiKTtmdW5jdGlvbiBwayhhLGIsYyxkKXtpZigoYT1XW1wibWFzdGVyLVwiK2JdKSYmYS5vcHRpb25zJiZhLm9wdGlvbnMudmlzaWJsZVVybHNDYWxsYmFjayl7ZD1kP2Quc3BsaXQoXCJ8XCIpOltdO3RyeXthLm9wdGlvbnMudmlzaWJsZVVybHNDYWxsYmFjayhkKX1jYXRjaChlKXt9fX1waz1CKHBrLFwidlVDXCIpO3ZhciBwbD0wLFc9e30scWs9d2luZG93O3ZhciBzbD1ubDtmdW5jdGlvbiB0bChhKXt1bChhcmd1bWVudHMpfXZhciB1bD1FKGZ1bmN0aW9uKGEpe3ZhciBiPWEmJmFbMF18fHt9LGM9Yi5wdWJJZHx8XCJcIixkPSEhYi5nY3NjfHwhMSxlPSEhYi5jeHx8ITEsZj1iLml2dCxnPSEhYi5mb3JjZUdkcHJ8fCExO2Y9PXZvaWQgMCYmKGY9IShkfHxlKSk7Yj1iLnNvdXJjZT09PVwiYWRtb2JcIjtjPWRsKGMsZCx3aW5kb3csTy5GKGYpLGIsZyk7YyBpbnN0YW5jZW9mIFByb21pc2U/Yy50aGVuKGZ1bmN0aW9uKGgpe3NsKFhpLGEsaCl9KTpzbChYaSxhLGMpfSxcImlBQVBSXCIpO1xuaWYoISh3aW5kb3cuSVNfR09PR0xFX0FGU19JRlJBTUVffHx3aW5kb3cuZ29vZ2xlJiZ3aW5kb3cuZ29vZ2xlLmFkcyYmd2luZG93Lmdvb2dsZS5hZHMuZG9tYWlucyYmd2luZG93Lmdvb2dsZS5hZHMuZG9tYWlucy5DYWYpKXt2YXIgdmw9W1wiZ29vZ2xlXCIsXCJhZHNcIixcImRvbWFpbnNcIixcIkNhZlwiXSx3bD14O3ZsWzBdaW4gd2x8fHR5cGVvZiB3bC5leGVjU2NyaXB0PT1cInVuZGVmaW5lZFwifHx3bC5leGVjU2NyaXB0KFwidmFyIFwiK3ZsWzBdKTtmb3IodmFyIHhsO3ZsLmxlbmd0aCYmKHhsPXZsLnNoaWZ0KCkpOyl2bC5sZW5ndGh8fHRsPT09dm9pZCAwP3dsPXdsW3hsXSYmd2xbeGxdIT09T2JqZWN0LnByb3RvdHlwZVt4bF0/d2xbeGxdOndsW3hsXT17fTp3bFt4bF09dGx9O1xufSkoKTsifSwgImhlYWRlcnNTaXplIjogNTU4LCAiYm9keVNpemUiOiA3NTcyMiwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogNzYyODB9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IDEuODk2LCAiY29ubmVjdCI6IDkzLjY0NSwgInNzbCI6IDE5LjAzOSwgInNlbmQiOiAwLCAid2FpdCI6IDI5LjA5OCwgInJlY2VpdmUiOiAxMS42Nzl9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5IiwgInNlcnZlcklQQWRkcmVzcyI6ICIyMTYuNTguMjA2LjY4IiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICJDTj13d3cuZ29vZ2xlLmNvbSIsICJ2YWxpZEZyb20iOiAxNzE2Nzk1MTEzLCAidmFsaWRUbyI6IDE3MjQwNTI3MTJ9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQwNTo1NDowMy4yNzNaIiwgInRpbWUiOiAyMTEuNDYzMDAwMDAwMDAwMDIsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2J0bG9hZGVyLmNvbS90YWc/bz01MDk3OTI2NzgyNjE1NTUyJnVwYXBpPXRydWUiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQWNjZXB0IiwgInZhbHVlIjogIiovKiJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogInNjcmlwdCJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLU1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAiSG9zdCIsICJ2YWx1ZSI6ICJidGxvYWRlci5jb20ifV0sICJxdWVyeVN0cmluZyI6IFt7Im5hbWUiOiAibyIsICJ2YWx1ZSI6ICI1MDk3OTI2NzgyNjE1NTUyIn0sIHsibmFtZSI6ICJ1cGFwaSIsICJ2YWx1ZSI6ICJ0cnVlIn1dLCAiaGVhZGVyc1NpemUiOiAzNzcsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MDMgR01UIn0sIHsibmFtZSI6ICJDb250ZW50LVR5cGUiLCAidmFsdWUiOiAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJ9LCB7Im5hbWUiOiAiQ29udGVudC1MZW5ndGgiLCAidmFsdWUiOiAiMTkwOTcifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAicHVibGljIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzAwIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm11c3QtcmV2YWxpZGF0ZSJ9LCB7Im5hbWUiOiAiQ2FjaGUtQ29udHJvbCIsICJ2YWx1ZSI6ICJzdGFsZS1pZi1lcnJvcj0zNjAwIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogInN0YWxlLXdoaWxlLXJldmFsaWRhdGU9MzAwIn0sIHsibmFtZSI6ICJDb250ZW50LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogIkVUYWciLCAidmFsdWUiOiAiXCJlYjIwOWZhZjUzNDA5OTE1NjMwNmRlOWMzZTIzZjU4OVwiIn0sIHsibmFtZSI6ICJMYXN0LU1vZGlmaWVkIiwgInZhbHVlIjogIlR1ZSJ9LCB7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICIxOCBKdW4gMjAyNCAwNDo1NToyMiBHTVQifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiT3JpZ2luIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIkFjY2VwdC1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiVmlhIiwgInZhbHVlIjogIjEuMSBnb29nbGUifSwgeyJuYW1lIjogIkFnZSIsICJ2YWx1ZSI6ICIzNDAyIn0sIHsibmFtZSI6ICJBY2NlcHQtUmFuZ2VzIiwgInZhbHVlIjogImJ5dGVzIn0sIHsibmFtZSI6ICJTZXJ2ZXIiLCAidmFsdWUiOiAiY2xvdWRmbGFyZSJ9LCB7Im5hbWUiOiAiY2YtY2FjaGUtc3RhdHVzIiwgInZhbHVlIjogIkhJVCJ9LCB7Im5hbWUiOiAiY2YtcmF5IiwgInZhbHVlIjogIjg5NTkwNWMzNGRhYTM1ZjQtRlJBIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDU3NDQwLCAibWltZVR5cGUiOiAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIsICJjb21wcmVzc2lvbiI6IDM4MzA3LCAidGV4dCI6ICIhZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgZT1mdW5jdGlvbigpe3JldHVybiBlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscz1hcmd1bWVudHMubGVuZ3RoO248cztuKyspZm9yKHZhciByIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiYoZVtyXT10W3JdKTtyZXR1cm4gZX0sZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIHQoZSx0LG4scyl7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKHIsaSl7ZnVuY3Rpb24gbyhlKXt0cnl7YyhzLm5leHQoZSkpfWNhdGNoKGUpe2koZSl9fWZ1bmN0aW9uIGEoZSl7dHJ5e2Mocy50aHJvdyhlKSl9Y2F0Y2goZSl7aShlKX19ZnVuY3Rpb24gYyhlKXt2YXIgdDtlLmRvbmU/cihlLnZhbHVlKToodD1lLnZhbHVlLHQgaW5zdGFuY2VvZiBuP3Q6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodCl9KSkpLnRoZW4obyxhKX1jKChzPXMuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KSl9ZnVuY3Rpb24gbihlLHQpe3ZhciBuLHMscixpLG89e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGk9e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gYShpKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGkpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtvOyl0cnl7aWYobj0xLHMmJihyPTImaVswXT9zLnJldHVybjppWzBdP3MudGhyb3d8fCgocj1zLnJldHVybikmJnIuY2FsbChzKSwwKTpzLm5leHQpJiYhKHI9ci5jYWxsKHMsaVsxXSkpLmRvbmUpcmV0dXJuIHI7c3dpdGNoKHM9MCxyJiYoaT1bMiZpWzBdLHIudmFsdWVdKSxpWzBdKXtjYXNlIDA6Y2FzZSAxOnI9aTticmVhaztjYXNlIDQ6cmV0dXJuIG8ubGFiZWwrKyx7dmFsdWU6aVsxXSxkb25lOiExfTtjYXNlIDU6by5sYWJlbCsrLHM9aVsxXSxpPVswXTtjb250aW51ZTtjYXNlIDc6aT1vLm9wcy5wb3AoKSxvLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKHI9by50cnlzLChyPXIubGVuZ3RoPjAmJnJbci5sZW5ndGgtMV0pfHw2IT09aVswXSYmMiE9PWlbMF0pKXtvPTA7Y29udGludWV9aWYoMz09PWlbMF0mJighcnx8aVsxXT5yWzBdJiZpWzFdPHJbM10pKXtvLmxhYmVsPWlbMV07YnJlYWt9aWYoNj09PWlbMF0mJm8ubGFiZWw8clsxXSl7by5sYWJlbD1yWzFdLHI9aTticmVha31pZihyJiZvLmxhYmVsPHJbMl0pe28ubGFiZWw9clsyXSxvLm9wcy5wdXNoKGkpO2JyZWFrfXJbMl0mJm8ub3BzLnBvcCgpLG8udHJ5cy5wb3AoKTtjb250aW51ZX1pPXQuY2FsbChlLG8pfWNhdGNoKGUpe2k9WzYsZV0scz0wfWZpbmFsbHl7bj1yPTB9aWYoNSZpWzBdKXRocm93IGlbMV07cmV0dXJue3ZhbHVlOmlbMF0/aVsxXTp2b2lkIDAsZG9uZTohMH19KFtpLGFdKX19fXZhciBzPVwiaHR0cHM6Ly9hZC1kZWxpdmVyeS5uZXQvcHguZ2lmP2NoPTJcIixyPVwiaHR0cHM6Ly9hZC5kb3VibGVjbGljay5uZXQvZmF2aWNvbi5pY28/YWQ9MzAweDI1MCZhZF9ib3hfPTEmYWRuZXQ9MSZzaG93YWQ9MSZzaXplPTI1MHgyNTBcIixpPVwiaHR0cHM6Ly9hZC1kZWxpdmVyeS5uZXQvcHguZ2lmP2NoPTEmZT1cIitNYXRoLnJhbmRvbSgpO2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9XCJpbWdcIiksbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4pe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7cy5zdHlsZS5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIixcIm5vbmVcIixcImltcG9ydGFudFwiKSxzLnN0eWxlLnNldFByb3BlcnR5KFwid2lkdGhcIixcIjFweFwiLFwiaW1wb3J0YW50XCIpLHMuc3R5bGUuc2V0UHJvcGVydHkoXCJoZWlnaHRcIixcIjFweFwiLFwiaW1wb3J0YW50XCIpO3ZhciByPSExO2Z1bmN0aW9uIGkoZSl7cnx8KHI9ITAsbihlKSl9cy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwoZnVuY3Rpb24oZSl7aSghMCl9KSkscy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLChmdW5jdGlvbihlKXtpKCExKX0pKSxzLnNyYz1lLCh3aW5kb3cuZG9jdW1lbnQuYm9keXx8d2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQocyl9KSl9ZnVuY3Rpb24gYSgpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSx0LGksYSxjO3JldHVybiBuKHRoaXMsKGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6cmV0dXJuIG4udHJ5cy5wdXNoKFswLDMsLDRdKSx3aW5kb3cuX19idD13aW5kb3cuX19idHx8e30sXCJmdW5jdGlvblwiIT10eXBlb2Ygd2luZG93Ll9fYnQuY3VzdG9tRGV0ZWN0QWRCbG9jaz9bMywyXTpbNCx3aW5kb3cuX19idC5jdXN0b21EZXRlY3RBZEJsb2NrKCldO2Nhc2UgMTpyZXR1cm5bMixuLnNlbnQoKV07Y2FzZSAyOnJldHVyblszLDRdO2Nhc2UgMzpyZXR1cm4gZT1uLnNlbnQoKSxjb25zb2xlLmxvZyhcIkVycm9yIGluIGN1c3RvbURldGVjdEFkYmxvY2s6XCIsZSksWzMsNF07Y2FzZSA0OnJldHVybls0LFByb21pc2UuYWxsKFtvKHMpLG8ocildKV07Y2FzZSA1OnJldHVybiB0PW4uc2VudCgpLGk9dFswXSxhPXRbMV0sYz1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7ZS5pbm5lckhUTUw9XCImbmJzcDtcIixlLmNsYXNzTmFtZT1cImFkX3JvdyBhZGJhbm5lcnRvcCBhZC1tb2JpbGUgYWRfc2lkZWJhciBhZHBvcHVwIGJveGFkIGNvbnRlbnRBZFwiLGUuc2V0QXR0cmlidXRlKFwiaWRcIixcImJ0LWJhaXQtZWxlbWVudFwiKSxlLnN0eWxlLmNzc1RleHQ9XCJ3aWR0aDogMXB4ICFpbXBvcnRhbnQ7IGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7IHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyBsZWZ0OiAtNTAwMHB4ICFpbXBvcnRhbnQ7IHRvcDogLTUwMDBweCAhaW1wb3J0YW50O1wiO3RyeXsod2luZG93LmRvY3VtZW50LmJvZHl8fHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKGUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYnQtYmFpdC1lbGVtZW50XCIpO2lmKDA9PT10Lm9mZnNldEhlaWdodHx8MD09PXQuY2xpZW50SGVpZ2h0KXJldHVybiBsKGUpLCEwO2lmKHZvaWQgMCE9PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKXt2YXIgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpO2lmKG4mJihcIm5vbmVcIj09PW4uZ2V0UHJvcGVydHlWYWx1ZShcImRpc3BsYXlcIil8fFwiaGlkZGVuXCI9PT1uLmdldFByb3BlcnR5VmFsdWUoXCJ2aXNpYmlsaXR5XCIpKSlyZXR1cm4gbChlKSwhMH19Y2F0Y2godCl7cmV0dXJuIGwoZSksbnVsbH1yZXR1cm4gbChlKSwhMX0oKSxbMixpP2N8fGE6YyYmYV19fSkpfSkpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWkpLHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsKGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbyhlKV07Y2FzZSAxOnJldHVyblsyLCF0LnNlbnQoKV19fSkpfSkpfWZ1bmN0aW9uIGwoZSl7KHdpbmRvdy5kb2N1bWVudC5ib2R5fHx3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5yZW1vdmVDaGlsZChlKX12YXIgdT1mdW5jdGlvbigpe3ZhciBlPXdpbmRvdzt0cnl7aWYodG9wLmRvY3VtZW50KXJldHVybiB0b3B9Y2F0Y2goZSl7fXRyeXtmb3IoO2UucGFyZW50LmRvY3VtZW50OyllPWUucGFyZW50fWNhdGNoKGUpe31yZXR1cm4gZX0oKTt2YXIgZD1mdW5jdGlvbigpe3RyeXtyZXR1cm5cIlwiIT09ZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUmJmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lIT09d2luZG93LnBhcmVudC5sb2NhdGlvbi5ob3N0bmFtZX1jYXRjaChlKXtyZXR1cm4hMH19KCk7ZnVuY3Rpb24gcCgpe3RyeXtyZXR1cm4gbmV3IFVSTChkP3UuZG9jdW1lbnQucmVmZXJyZXI6dS5sb2NhdGlvbi5ocmVmKX1jYXRjaChlKXtyZXR1cm4gbmV3IFVSTCh1LmxvY2F0aW9uLmhyZWYpfX12YXIgaD1wKCk7ZnVuY3Rpb24gZyhlKXtpZihkKXt2YXIgdD11LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZSk7aWYoXCJCVF9wdlNlbnRcIj09PWUpe3ZhciBuPXZvaWQgMDt0cnl7bj1KU09OLnBhcnNlKHQpfWNhdGNoKGUpe31yZXR1cm4gbShuKT9uOnt9fXJldHVybiB0fX1mdW5jdGlvbiB2KGUsdCl7aWYoZCl7dmFyIG49dm9pZCAwO2lmKFwiQlRfcHZTZW50XCI9PT1lKW0odCkmJihuPUpTT04uc3RyaW5naWZ5KHQpKTtlbHNlIG49dDtuJiZcInN0cmluZ1wiPT10eXBlb2YgbiYmdS5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGUsbil9fWZ1bmN0aW9uIG0oZSl7cmV0dXJuIGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiYhQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBmKGUpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTWF0aC5mbG9vcihlKSl9ZnVuY3Rpb24gYihlKXtyZXR1cm4gZigxMDApPGV9dmFyIHcseSxfLFMsSSxFLEM9XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OVwiO2Z1bmN0aW9uIEwoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe2lmKCFlfHxcIm51bWJlclwiIT10eXBlb2YgdHx8XCJudW1iZXJcIiE9dHlwZW9mIG58fHQ8PTB8fG48PTB8fHQ+bil0aHJvdyBuZXcgVHlwZUVycm9yO2Zvcih2YXIgcz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG4rMS10KSkrdCxyPVwiXCIsaT0wO2k8cztpKyspcis9ZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmUubGVuZ3RoKSk7cmV0dXJuIHJ9KEMsZSx0KX15PVwiNTA5NzkyNjc4MjYxNTU1MlwiLF89XCJidGxvYWRlci5jb21cIixTPVwiYXBpLmJ0bG9hZGVyLmNvbVwiLEk9XCIyLjEuNDYtMS1nZTZkZDQzZFwiO3RyeXtFPXtcIm9yZ1wiOntcImVuYWJsZWRcIjpmYWxzZSwgXCJsb2dvXCI6XCJcIiwgXCJuYW1lXCI6XCJcIiwgXCJ2aWV3XCI6XCJcIiwgXCJzaW5nbGVfY2xpY2tfZW5hYmxlZFwiOmZhbHNlLCBcInBhZ2Vfdmlld3NfdG9fcmVuZGVyXCI6XCIwXCIsIFwicHJlbWl1bV9ieXBhc3NfbW9kZV9lbmFibGVkXCI6ZmFsc2UsIFwiaGFyZF9tZXNzYWdlX3dhbGxfbW9kZV9lbmFibGVkXCI6ZmFsc2UsIFwiYWxsb3dfcmVuZGVyX3RvX2FhX3VzZXJzXCI6ZmFsc2UsIFwibGFuZGluZ190ZXh0X2VuXCI6XCJcIiwgXCJjdGFfYnV0dG9uX2NvbG9yXCI6XCJcIiwgXCJmb250X3R5cGVcIjpcIlwiLCBcInJlbmRlcl9pbnRlcnZhbF9kYXlzXCI6MCwgXCJjb3VudHJ5X2NvZGVfbW9kZVwiOlwiZGlzYWJsZWRcIiwgXCJjb3VudHJ5X2NvZGVfbGlzdFwiOltdLCBcInNjcmlwdF9sb2FkaW5nX21vZGVcIjpcImluamVjdF9mcm9tX3RhZ19zY3JpcHRcIiwgXCJ0aXRsZVwiOlwiXCIsIFwicmVuZGVyX21vZGVcIjpcImFsd2F5c1wiLCBcImFwaV9tb2RlXCI6XCJ3YWl0XCIsIFwiY3VzdG9tX2N0YV9tb2RhbFwiOm51bGwsIFwiYWxsb3dsaXN0ZWRfdXJsc1wiOltdLCBcImFkYXB0aXZlX2hhcmRfbWVzc2FnZV93YWxsX21vZGVfZW5hYmxlZFwiOmZhbHNlfSwgXCJ3ZWJzaXRlc1wiOnt9LCBcInNjcmlwdFwiOlwiaHR0cHM6Ly9jZG4uYnRtZXNzYWdlLmNvbS9zY3JpcHQvcmxpbmsuanM/bz01MDk3OTI2NzgyNjE1NTUyXCJ9fWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoXCJFcnJvciBwYXJzaW5nIFJMIHNldHRpbmdzXCIsZSksRT17c2NyaXB0OlwiXCIsb3JnOntlbmFibGVkOiExLHNjcmlwdF9sb2FkaW5nX21vZGU6XCJpbmplY3RfZnJvbV90YWdfc2NyaXB0XCIsYWxsb3dfcmVuZGVyX3RvX2FhX3VzZXJzOiExfX19dmFyIEE9e1wiYWlweC5jb21cIjp7XCJjZVwiOmZhbHNlLFwibWVcIjpmYWxzZSxcIndcIjpcIjUwODMxNTY4NjA2MzMwODhcIixcIndpZGdldFwiOmZhbHNlLFwiYVwiOmZhbHNlfSxcImFsbHlvdXdhbnQuY29tXCI6e1wiY2VcIjpmYWxzZSxcIm1lXCI6ZmFsc2UsXCJ3XCI6XCI1MTA2MDM1NjgxNjU2ODMyXCIsXCJ3aWRnZXRcIjpmYWxzZSxcImFcIjpmYWxzZX0sXCJiaXJ0aGRheS5jb1wiOntcImNlXCI6ZmFsc2UsXCJtZVwiOmZhbHNlLFwid1wiOlwiNTA3Mjc0MTYzMjA0OTE1MlwiLFwid2lkZ2V0XCI6ZmFsc2UsXCJhXCI6ZmFsc2V9LFwiY2FsY2lvLmNhXCI6e1wiY2VcIjpmYWxzZSxcIm1lXCI6ZmFsc2UsXCJ3XCI6XCI1MDcyMTYzODI0NzMwMTEyXCIsXCJ3aWRnZXRcIjpmYWxzZSxcImFcIjpmYWxzZX0sXCJjYXNoYmFja21vbnN0ZXIuY29tXCI6e1wiY2VcIjpmYWxzZSxcIm1lXCI6ZmFsc2UsXCJ3XCI6XCI1MTg2Njk4OTkyNjgwOTYwXCIsXCJ3aWRnZXRcIjpmYWxzZSxcImFcIjpmYWxzZX0sXCJkZXNjYXJnYXNmdWxsLmNvbVwiOntcImNlXCI6ZmFsc2UsXCJtZVwiOmZhbHNlLFwid1wiOlwiNTA5NTAyNzIxMDcxNTEzNlwiLFwid2lkZ2V0XCI6ZmFsc2UsXCJhXCI6ZmFsc2V9LFwiZG9nbGlua3MuY29tXCI6e1wiY2VcIjpmYWxzZSxcIm1lXCI6ZmFsc2UsXCJ3XCI6XCI1MjA0ODYxMTM0MzA3MzI4XCIsXCJ3aWRnZXRcIjpmYWxzZSxcImFcIjpmYWxzZX0sXCJmb290YmFsbHRpY2tldC5uZXRcIjp7XCJjZVwiOmZhbHNlLFwibWVcIjpmYWxzZSxcIndcIjpcIjUxODg2OTM2Mjc1MDI1OTJcIixcIndpZGdldFwiOmZhbHNlLFwiYVwiOmZhbHNlfSxcIm55ZWRhLmNvbVwiOntcImNlXCI6ZmFsc2UsXCJtZVwiOmZhbHNlLFwid1wiOlwiNTExNDYyOTQ0MTQ1NDA4MFwiLFwid2lkZ2V0XCI6ZmFsc2UsXCJhXCI6ZmFsc2V9LFwib3Njbi5jb21cIjp7XCJjZVwiOmZhbHNlLFwibWVcIjpmYWxzZSxcIndcIjpcIjUxODE0ODU1NzM0NzIyNTZcIixcIndpZGdldFwiOmZhbHNlLFwiYVwiOmZhbHNlfSxcInBob3RvY2hyb25pY2xlcy5jb21cIjp7XCJjZVwiOmZhbHNlLFwibWVcIjpmYWxzZSxcIndcIjpcIjUwNzUwMzE0NTM1OTc2OTZcIixcIndpZGdldFwiOmZhbHNlLFwiYVwiOmZhbHNlfSxcInNlYWFydC5jb21cIjp7XCJjZVwiOmZhbHNlLFwibWVcIjpmYWxzZSxcIndcIjpcIjUwODI4NzAwMzczNDgzNTJcIixcIndpZGdldFwiOmZhbHNlLFwiYVwiOmZhbHNlfSxcInN1cGVybmV0Zm9ybWUuY29tXCI6e1wiY2VcIjpmYWxzZSxcIm1lXCI6ZmFsc2UsXCJ3XCI6XCI1MDk3MDIxODQ1NTM2NzY4XCIsXCJ3aWRnZXRcIjpmYWxzZSxcImFcIjpmYWxzZX0sXCJzdXBlcndlYmJ5c2VhcmNoLmNvbVwiOntcImNlXCI6ZmFsc2UsXCJtZVwiOmZhbHNlLFwid1wiOlwiNTIwNjEzMzYxMDY0MzQ1NlwiLFwid2lkZ2V0XCI6ZmFsc2UsXCJhXCI6ZmFsc2V9LFwidXNlaGFja3MuY29tXCI6e1wiY2VcIjpmYWxzZSxcIm1lXCI6ZmFsc2UsXCJ3XCI6XCI1MTYxNjkwNTM4MTgwNjA4XCIsXCJ3aWRnZXRcIjpmYWxzZSxcImFcIjpmYWxzZX19LE89bmV3IFByb3h5KG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkse2dldDpmdW5jdGlvbihlLHQpe3JldHVybiBlLmdldCh0KX19KTshZnVuY3Rpb24oKXt2YXIgZT1cIkJUX3B2U2VudFwiLHQ9XCJCVF90cmFjZUlEXCI7ZD91LmFkZEV2ZW50TGlzdGVuZXIoXCJ1bmxvYWRcIiwoZnVuY3Rpb24oKXt1LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oZSksdS5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHQpfSkpOih1LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oZSksdS5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHQpKX0oKTt2YXIgUj0obnVsbD09PSh3PXUuX19idF9pbnRybmwpfHx2b2lkIDA9PT13P3ZvaWQgMDp3LnRyYWNlSUQpfHxnKFwiQlRfdHJhY2VJRFwiKXx8TCg4LDEwKTt2KFwiQlRfdHJhY2VJRFwiLFIpO3ZhciBEPXUuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIkJUX3NpZFwiKTtEfHwoRD1MKDgsMTApLHUuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIkJUX3NpZFwiLEQpKTt2YXIgVD17dHJhY2VJRDpSLHNlc3Npb25JRDpEfTt2YXIgVixQLGsseCxOPWZ1bmN0aW9uKCl7dmFyIGUscyxyLGksbyxhLGMsbCxkO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxwLGcsdixtLGYsdyxDLEwsUixELFYsUCxrLHg7cmV0dXJuIG4odGhpcywoZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDppZih0PXt3ZWJzaXRlSUQ6dm9pZCAwLGNvbnRlbnRFbmFibGVkOiExLG1vYmlsZUNvbnRlbnRFbmFibGVkOiExLHdpZGdldDohMX0scD1mdW5jdGlvbihlLHQpe2U9ZS5yZXBsYWNlKC9bXFxbXFxdXS9nLFwiXFxcXCQmXCIpO3ZhciBuPW5ldyBSZWdFeHAoXCJbPyZdXCIrZStcIig9KFteJiNdKil8JnwjfCQpXCIpLmV4ZWModCk7cmV0dXJuIG4/blsyXT9kZWNvZGVVUklDb21wb25lbnQoblsyXS5yZXBsYWNlKC9cXCsvZyxcIiBcIikpOlwiXCI6bnVsbH0sZz1mdW5jdGlvbigpe3RyeXtpZih3aW5kb3cuX19idD13aW5kb3cuX19idHx8e30sXCJmdW5jdGlvblwiPT10eXBlb2Ygd2luZG93Ll9fYnQuY3VzdG9tRGV0ZWN0RG9tYWluKXJldHVybiB3aW5kb3cuX19idC5jdXN0b21EZXRlY3REb21haW4oKX1jYXRjaChlKXt9fSgpfHxmdW5jdGlvbigpe3ZhciBlLHQ9aC5ob3N0bmFtZTt0cnl7aWYoXCJkaXNxdXNzZXJ2aWNlLmNvbVwiPT09dCl7dmFyIG49dS5sb2NhdGlvbi5ocmVmO3Q9KG51bGwhPShlPXAoXCJzb3VyY2VVcmxcIixuKS5tYXRjaCgvOlxcL1xcLyh3d3dbMC05XT9cXC4pPyguW14vOl0rKS9pKSkmJmUubGVuZ3RoPjImJlwic3RyaW5nXCI9PXR5cGVvZiBlWzJdJiZlWzJdLmxlbmd0aD4wP2VbMl06bnVsbCkrXCItZGlzcXVzXCJ9fWNhdGNoKGUpe3Q9dS5sb2NhdGlvbi5ob3N0bmFtZX1yZXR1cm4gMD09PXQuaW5kZXhPZihcInd3dy5cIikmJih0PXQucmVwbGFjZShcInd3dy5cIixcIlwiKSksdH0oKSx2PSExLDAhPT1PYmplY3Qua2V5cyhBKS5sZW5ndGgpcmV0dXJuWzMsNV07KG09bmV3IFVSTChcImh0dHBzOi8vXCIrXytcIi93ZWJzaXRlY29uZmlnXCIpKS5zZWFyY2hQYXJhbXMuc2V0KFwiYnRfZW52XCIsTy5idF9lbnZ8fFwicHJvZFwiKSxtLnNlYXJjaFBhcmFtcy5zZXQoXCJvXCIseSksbS5zZWFyY2hQYXJhbXMuc2V0KFwid1wiLGcpLG4ubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG4udHJ5cy5wdXNoKFsxLDQsLDVdKSxbNCxmZXRjaChtLnRvU3RyaW5nKCkpXTtjYXNlIDI6aWYoIShmPW4uc2VudCgpKS5vayl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuWzQsZi5qc29uKCldO2Nhc2UgMzpyZXR1cm4gdz1uLnNlbnQoKSx0LndlYnNpdGVJRD13LnRhZ0RhdGEudyx0LmNvbnRlbnRFbmFibGVkPXcudGFnRGF0YS5jZSx0Lm1vYmlsZUNvbnRlbnRFbmFibGVkPXcudGFnRGF0YS5tZSx0LndpZGdldD1udWxsIT09KGU9dy50YWdEYXRhLndpZGdldCkmJnZvaWQgMCE9PWUmJmUsWzIse3NpdGVJbmZvOnQsYnVuZGxlRGF0YTp3LmJ1bmRsZURhdGEscmxTZXR0aW5nczp3Lm1lc3NhZ2VXYWxsLGNoZWNrc3VtOncuY2hlY2tzdW19XTtjYXNlIDQ6cmV0dXJuIG4uc2VudCgpLFszLDVdO2Nhc2UgNTppZihnJiZnIGluIEEpTD1BW2ddLHQud2Vic2l0ZUlEPW51bGwhPT0ocz1MLncpJiZ2b2lkIDAhPT1zP3M6TC53ZWJzaXRlX2lkLHQuY29udGVudEVuYWJsZWQ9bnVsbCE9PShyPUwuY2UpJiZ2b2lkIDAhPT1yP3I6TC5jb250ZW50X2VuYWJsZWQsdC5tb2JpbGVDb250ZW50RW5hYmxlZD1udWxsIT09KGk9TC5tZSkmJnZvaWQgMCE9PWk/aTpMLm1vYmlsZV9jb250ZW50X2VuYWJsZWQsdC53aWRnZXQ9bnVsbCE9PShvPUwud2lkZ2V0KSYmdm9pZCAwIT09byYmbyx2PSEwO2Vsc2UgZm9yKEMgaW4gQSkoZy5pbmRleE9mKEMudG9Mb3dlckNhc2UoKSk+LTF8fHUubG9jYXRpb24uaG9zdG5hbWUuaW5kZXhPZihDLnRvTG93ZXJDYXNlKCkpPi0xKSYmKHY9ITAsTD1BW0NdLHQud2Vic2l0ZUlEPW51bGwhPT0oYT1MLncpJiZ2b2lkIDAhPT1hP2E6TC53ZWJzaXRlX2lkLHQuY29udGVudEVuYWJsZWQ9bnVsbCE9PShjPUwuY2UpJiZ2b2lkIDAhPT1jP2M6TC5jb250ZW50X2VuYWJsZWQsdC5tb2JpbGVDb250ZW50RW5hYmxlZD1udWxsIT09KGw9TC5tZSkmJnZvaWQgMCE9PWw/bDpMLm1vYmlsZV9jb250ZW50X2VuYWJsZWQsdC53aWRnZXQ9bnVsbCE9PShkPUwud2lkZ2V0KSYmdm9pZCAwIT09ZCYmZCk7aWYodilyZXR1cm4gUj1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4obnVsbD09PSh0PW51bGw9PUU/dm9pZCAwOkUud2Vic2l0ZXMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0W2VdKXx8KG51bGw9PUU/dm9pZCAwOkUub3JnKX0odC53ZWJzaXRlSUQpLFsyLHtzaXRlSW5mbzp0LHJsU2V0dGluZ3M6Un1dO2lmKGIoMSkpe2lmKEQ9e2RvbWFpbjpnLG9yZ0lEOnBhcnNlSW50KHkpfSxWPXZvaWQgMCx3aW5kb3cuVGV4dEVuY29kZXIpVj0obmV3IHdpbmRvdy5UZXh0RW5jb2RlcikuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEQpKS5idWZmZXI7ZWxzZXtmb3IoUD11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoRCkpKSxrPW5ldyBVaW50OEFycmF5KFAubGVuZ3RoKSx4PTA7eDxQLmxlbmd0aDt4Kyspa1t4XT1QLmNoYXJDb2RlQXQoeCk7Vj1rLmJ1ZmZlcn0hZnVuY3Rpb24oZSx0KXtuZXcgUHJvbWlzZSgoZnVuY3Rpb24obixzKXt2YXIgcj1uZXcgd2luZG93LlhNTEh0dHBSZXF1ZXN0O3Iub3BlbihcIlBPU1RcIixlLCEwKSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtzKFwiRXJyb3IgaW4gZ2V0IHJlcXVlc3RcIil9LHIub25sb2FkPWZ1bmN0aW9uKCl7bihyLnJlc3BvbnNlVGV4dCl9LHIuc2VuZCh0KX0pKX0oXCJodHRwczovL1wiK1MrXCIvZXZlbnRzL3Vua25vd25fZG9tYWlucz91cGFwaT10cnVlJnRpZD1cIitlbmNvZGVVUklDb21wb25lbnQoVC50cmFjZUlEKStcIiZjdj1cIitlbmNvZGVVUklDb21wb25lbnQoSSksVil9cmV0dXJuWzIse3NpdGVJbmZvOnR9XX19KSl9KSl9KCk7ZnVuY3Rpb24gVSgpe3JldHVybiBOfU4udGhlbigoZnVuY3Rpb24oZSl7d2luZG93Ll9fYnRfdGFnX2Q9e29yZ0lEOnksZG9tYWluOl8sc2l0ZUluZm86ZS5zaXRlSW5mbyxhcGlEb21haW46Uyx2ZXJzaW9uOkksd2Vic2l0ZXNEYXRhOkF9fSkpO2NsYXNzIEYgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9XCJEZWNvZGluZ0Vycm9yXCJ9fWNsYXNzIE0gZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9XCJFbmNvZGluZ0Vycm9yXCJ9fWNsYXNzIEIgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9XCJHVkxFcnJvclwifX1jbGFzcyBIIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihgaW52YWxpZCB2YWx1ZSAke3R9IHBhc3NlZCBmb3IgJHtlfSAke2FyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpcIlwifWApLHRoaXMubmFtZT1cIlRDTW9kZWxFcnJvclwifX1jbGFzcyBqe3N0YXRpYyBESUNUPVwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX1wiO3N0YXRpYyBSRVZFUlNFX0RJQ1Q9bmV3IE1hcChbW1wiQVwiLDBdLFtcIkJcIiwxXSxbXCJDXCIsMl0sW1wiRFwiLDNdLFtcIkVcIiw0XSxbXCJGXCIsNV0sW1wiR1wiLDZdLFtcIkhcIiw3XSxbXCJJXCIsOF0sW1wiSlwiLDldLFtcIktcIiwxMF0sW1wiTFwiLDExXSxbXCJNXCIsMTJdLFtcIk5cIiwxM10sW1wiT1wiLDE0XSxbXCJQXCIsMTVdLFtcIlFcIiwxNl0sW1wiUlwiLDE3XSxbXCJTXCIsMThdLFtcIlRcIiwxOV0sW1wiVVwiLDIwXSxbXCJWXCIsMjFdLFtcIldcIiwyMl0sW1wiWFwiLDIzXSxbXCJZXCIsMjRdLFtcIlpcIiwyNV0sW1wiYVwiLDI2XSxbXCJiXCIsMjddLFtcImNcIiwyOF0sW1wiZFwiLDI5XSxbXCJlXCIsMzBdLFtcImZcIiwzMV0sW1wiZ1wiLDMyXSxbXCJoXCIsMzNdLFtcImlcIiwzNF0sW1wialwiLDM1XSxbXCJrXCIsMzZdLFtcImxcIiwzN10sW1wibVwiLDM4XSxbXCJuXCIsMzldLFtcIm9cIiw0MF0sW1wicFwiLDQxXSxbXCJxXCIsNDJdLFtcInJcIiw0M10sW1wic1wiLDQ0XSxbXCJ0XCIsNDVdLFtcInVcIiw0Nl0sW1widlwiLDQ3XSxbXCJ3XCIsNDhdLFtcInhcIiw0OV0sW1wieVwiLDUwXSxbXCJ6XCIsNTFdLFtcIjBcIiw1Ml0sW1wiMVwiLDUzXSxbXCIyXCIsNTRdLFtcIjNcIiw1NV0sW1wiNFwiLDU2XSxbXCI1XCIsNTddLFtcIjZcIiw1OF0sW1wiN1wiLDU5XSxbXCI4XCIsNjBdLFtcIjlcIiw2MV0sW1wiLVwiLDYyXSxbXCJfXCIsNjNdXSk7c3RhdGljIEJBU0lTPTY7c3RhdGljIExDTT0yNDtzdGF0aWMgZW5jb2RlKGUpe2lmKCEvXlswLTFdKyQvLnRlc3QoZSkpdGhyb3cgbmV3IE0oXCJJbnZhbGlkIGJpdEZpZWxkXCIpO2NvbnN0IHQ9ZS5sZW5ndGgldGhpcy5MQ007ZSs9dD9cIjBcIi5yZXBlYXQodGhpcy5MQ00tdCk6XCJcIjtsZXQgbj1cIlwiO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9dGhpcy5CQVNJUyluKz10aGlzLkRJQ1RbcGFyc2VJbnQoZS5zdWJzdHIodCx0aGlzLkJBU0lTKSwyKV07cmV0dXJuIG59c3RhdGljIGRlY29kZShlKXtpZighL15bQS1aYS16MC05XFwtX10rJC8udGVzdChlKSl0aHJvdyBuZXcgRihcIkludmFsaWRseSBlbmNvZGVkIEJhc2U2NFVSTCBzdHJpbmdcIik7bGV0IHQ9XCJcIjtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7Y29uc3Qgcz10aGlzLlJFVkVSU0VfRElDVC5nZXQoZVtuXSkudG9TdHJpbmcoMik7dCs9XCIwXCIucmVwZWF0KHRoaXMuQkFTSVMtcy5sZW5ndGgpK3N9cmV0dXJuIHR9fWNsYXNzIEd7Y2xvbmUoKXtjb25zdCBlPW5ldyB0aGlzLmNvbnN0cnVjdG9yO3JldHVybiBPYmplY3Qua2V5cyh0aGlzKS5mb3JFYWNoKCh0PT57Y29uc3Qgbj10aGlzLmRlZXBDbG9uZSh0aGlzW3RdKTt2b2lkIDAhPT1uJiYoZVt0XT1uKX0pKSxlfWRlZXBDbG9uZShlKXtjb25zdCB0PXR5cGVvZiBlO2lmKFwibnVtYmVyXCI9PT10fHxcInN0cmluZ1wiPT09dHx8XCJib29sZWFuXCI9PT10KXJldHVybiBlO2lmKG51bGwhPT1lJiZcIm9iamVjdFwiPT09dCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZS5jbG9uZSlyZXR1cm4gZS5jbG9uZSgpO2lmKGUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShlLmdldFRpbWUoKSk7aWYodm9pZCAwIT09ZVtTeW1ib2wuaXRlcmF0b3JdKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIGUpdC5wdXNoKHRoaXMuZGVlcENsb25lKG4pKTtyZXR1cm4gZSBpbnN0YW5jZW9mIEFycmF5P3Q6bmV3IGUuY29uc3RydWN0b3IodCl9e2NvbnN0IHQ9e307Zm9yKGNvbnN0IG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT10aGlzLmRlZXBDbG9uZShlW25dKSk7cmV0dXJuIHR9fX19Y2xhc3MgVyBleHRlbmRzIEd7cm9vdD1udWxsO2dldFJvb3QoKXtyZXR1cm4gdGhpcy5yb290fWlzRW1wdHkoKXtyZXR1cm4hdGhpcy5yb290fWFkZChlKXtjb25zdCB0PXt2YWx1ZTplLGxlZnQ6bnVsbCxyaWdodDpudWxsfTtsZXQgbjtpZih0aGlzLmlzRW1wdHkoKSl0aGlzLnJvb3Q9dDtlbHNlIGZvcihuPXRoaXMucm9vdDs7KWlmKGU8bi52YWx1ZSl7aWYobnVsbD09PW4ubGVmdCl7bi5sZWZ0PXQ7YnJlYWt9bj1uLmxlZnR9ZWxzZXtpZighKGU+bi52YWx1ZSkpYnJlYWs7aWYobnVsbD09PW4ucmlnaHQpe24ucmlnaHQ9dDticmVha31uPW4ucmlnaHR9fWdldCgpe2NvbnN0IGU9W107bGV0IHQ9dGhpcy5yb290O2Zvcig7dDspaWYodC5sZWZ0KXtsZXQgbj10LmxlZnQ7Zm9yKDtuLnJpZ2h0JiZuLnJpZ2h0IT10OyluPW4ucmlnaHQ7bi5yaWdodD09dD8obi5yaWdodD1udWxsLGUucHVzaCh0LnZhbHVlKSx0PXQucmlnaHQpOihuLnJpZ2h0PXQsdD10LmxlZnQpfWVsc2UgZS5wdXNoKHQudmFsdWUpLHQ9dC5yaWdodDtyZXR1cm4gZX1jb250YWlucyhlKXtsZXQgdD0hMSxuPXRoaXMucm9vdDtmb3IoO247KXtpZihuLnZhbHVlPT09ZSl7dD0hMDticmVha31lPm4udmFsdWU/bj1uLnJpZ2h0OmU8bi52YWx1ZSYmKG49bi5sZWZ0KX1yZXR1cm4gdH1taW4oKXtsZXQgZSx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnJvb3Q7Zm9yKDt0Oyl0LmxlZnQ/dD10LmxlZnQ6KGU9dC52YWx1ZSx0PW51bGwpO3JldHVybiBlfW1heCgpe2xldCBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMucm9vdDtmb3IoO3Q7KXQucmlnaHQ/dD10LnJpZ2h0OihlPXQudmFsdWUsdD1udWxsKTtyZXR1cm4gZX1yZW1vdmUoZSl7bGV0IHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMucm9vdCxuPW51bGwscz1cImxlZnRcIjtmb3IoO3Q7KWlmKGU8dC52YWx1ZSluPXQsdD10LmxlZnQscz1cImxlZnRcIjtlbHNlIGlmKGU+dC52YWx1ZSluPXQsdD10LnJpZ2h0LHM9XCJyaWdodFwiO2Vsc2V7aWYodC5sZWZ0fHx0LnJpZ2h0KWlmKHQubGVmdClpZih0LnJpZ2h0KXtjb25zdCBlPXRoaXMubWluKHQucmlnaHQpO3RoaXMucmVtb3ZlKGUsdC5yaWdodCksdC52YWx1ZT1lfWVsc2Ugbj9uW3NdPXQubGVmdDp0aGlzLnJvb3Q9dC5sZWZ0O2Vsc2Ugbj9uW3NdPXQucmlnaHQ6dGhpcy5yb290PXQucmlnaHQ7ZWxzZSBuP25bc109bnVsbDp0aGlzLnJvb3Q9bnVsbDt0PW51bGx9fXN0YXRpYyBidWlsZChlKXtpZihlJiYwIT09ZS5sZW5ndGgpe2lmKDE9PT1lLmxlbmd0aCl7Y29uc3QgdD1uZXcgVztyZXR1cm4gdC5hZGQoZVswXSksdH17Y29uc3QgdD1lLmxlbmd0aD4+MSxuPW5ldyBXO24uYWRkKGVbdF0pO2NvbnN0IHM9bi5nZXRSb290KCk7aWYocyl7aWYodCsxPGUubGVuZ3RoKXtjb25zdCBuPVcuYnVpbGQoZS5zbGljZSh0KzEpKTtzLnJpZ2h0PW4/bi5nZXRSb290KCk6bnVsbH1pZih0LTE+MCl7Y29uc3Qgbj1XLmJ1aWxkKGUuc2xpY2UoMCx0LTEpKTtzLmxlZnQ9bj9uLmdldFJvb3QoKTpudWxsfX1yZXR1cm4gbn19cmV0dXJuIG51bGx9fWNsYXNzIHp7c3RhdGljIGxhbmdTZXQ9bmV3IFNldChbXCJCR1wiLFwiQ0FcIixcIkNTXCIsXCJEQVwiLFwiREVcIixcIkVMXCIsXCJFTlwiLFwiRVNcIixcIkVUXCIsXCJGSVwiLFwiRlJcIixcIkhSXCIsXCJIVVwiLFwiSVRcIixcIkpBXCIsXCJMVFwiLFwiTFZcIixcIk1UXCIsXCJOTFwiLFwiTk9cIixcIlBMXCIsXCJQVFwiLFwiUk9cIixcIlJVXCIsXCJTS1wiLFwiU0xcIixcIlNWXCIsXCJUUlwiLFwiWkhcIl0pO2hhcyhlKXtyZXR1cm4gei5sYW5nU2V0LmhhcyhlKX1mb3JFYWNoKGUpe3oubGFuZ1NldC5mb3JFYWNoKGUpfWdldCBzaXplKCl7cmV0dXJuIHoubGFuZ1NldC5zaXplfX1jbGFzcyAke3N0YXRpYyBjbXBJZD1cImNtcElkXCI7c3RhdGljIGNtcFZlcnNpb249XCJjbXBWZXJzaW9uXCI7c3RhdGljIGNvbnNlbnRMYW5ndWFnZT1cImNvbnNlbnRMYW5ndWFnZVwiO3N0YXRpYyBjb25zZW50U2NyZWVuPVwiY29uc2VudFNjcmVlblwiO3N0YXRpYyBjcmVhdGVkPVwiY3JlYXRlZFwiO3N0YXRpYyBzdXBwb3J0T09CPVwic3VwcG9ydE9PQlwiO3N0YXRpYyBpc1NlcnZpY2VTcGVjaWZpYz1cImlzU2VydmljZVNwZWNpZmljXCI7c3RhdGljIGxhc3RVcGRhdGVkPVwibGFzdFVwZGF0ZWRcIjtzdGF0aWMgbnVtQ3VzdG9tUHVycG9zZXM9XCJudW1DdXN0b21QdXJwb3Nlc1wiO3N0YXRpYyBwb2xpY3lWZXJzaW9uPVwicG9saWN5VmVyc2lvblwiO3N0YXRpYyBwdWJsaXNoZXJDb3VudHJ5Q29kZT1cInB1Ymxpc2hlckNvdW50cnlDb2RlXCI7c3RhdGljIHB1Ymxpc2hlckN1c3RvbUNvbnNlbnRzPVwicHVibGlzaGVyQ3VzdG9tQ29uc2VudHNcIjtzdGF0aWMgcHVibGlzaGVyQ3VzdG9tTGVnaXRpbWF0ZUludGVyZXN0cz1cInB1Ymxpc2hlckN1c3RvbUxlZ2l0aW1hdGVJbnRlcmVzdHNcIjtzdGF0aWMgcHVibGlzaGVyTGVnaXRpbWF0ZUludGVyZXN0cz1cInB1Ymxpc2hlckxlZ2l0aW1hdGVJbnRlcmVzdHNcIjtzdGF0aWMgcHVibGlzaGVyQ29uc2VudHM9XCJwdWJsaXNoZXJDb25zZW50c1wiO3N0YXRpYyBwdWJsaXNoZXJSZXN0cmljdGlvbnM9XCJwdWJsaXNoZXJSZXN0cmljdGlvbnNcIjtzdGF0aWMgcHVycG9zZUNvbnNlbnRzPVwicHVycG9zZUNvbnNlbnRzXCI7c3RhdGljIHB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzPVwicHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHNcIjtzdGF0aWMgcHVycG9zZU9uZVRyZWF0bWVudD1cInB1cnBvc2VPbmVUcmVhdG1lbnRcIjtzdGF0aWMgc3BlY2lhbEZlYXR1cmVPcHRpbnM9XCJzcGVjaWFsRmVhdHVyZU9wdGluc1wiO3N0YXRpYyB1c2VOb25TdGFuZGFyZFN0YWNrcz1cInVzZU5vblN0YW5kYXJkU3RhY2tzXCI7c3RhdGljIHZlbmRvckNvbnNlbnRzPVwidmVuZG9yQ29uc2VudHNcIjtzdGF0aWMgdmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cz1cInZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHNcIjtzdGF0aWMgdmVuZG9yTGlzdFZlcnNpb249XCJ2ZW5kb3JMaXN0VmVyc2lvblwiO3N0YXRpYyB2ZW5kb3JzQWxsb3dlZD1cInZlbmRvcnNBbGxvd2VkXCI7c3RhdGljIHZlbmRvcnNEaXNjbG9zZWQ9XCJ2ZW5kb3JzRGlzY2xvc2VkXCI7c3RhdGljIHZlcnNpb249XCJ2ZXJzaW9uXCJ9IWZ1bmN0aW9uKGUpe2VbZS5OT1RfQUxMT1dFRD0wXT1cIk5PVF9BTExPV0VEXCIsZVtlLlJFUVVJUkVfQ09OU0VOVD0xXT1cIlJFUVVJUkVfQ09OU0VOVFwiLGVbZS5SRVFVSVJFX0xJPTJdPVwiUkVRVUlSRV9MSVwifShWfHwoVj17fSkpO2NsYXNzIEogZXh0ZW5kcyBHe3N0YXRpYyBoYXNoU2VwYXJhdG9yPVwiLVwiO3B1cnBvc2VJZF87cmVzdHJpY3Rpb25UeXBlO2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx2b2lkIDAhPT1lJiYodGhpcy5wdXJwb3NlSWQ9ZSksdm9pZCAwIT09dCYmKHRoaXMucmVzdHJpY3Rpb25UeXBlPXQpfXN0YXRpYyB1bkhhc2goZSl7Y29uc3QgdD1lLnNwbGl0KHRoaXMuaGFzaFNlcGFyYXRvciksbj1uZXcgSjtpZigyIT09dC5sZW5ndGgpdGhyb3cgbmV3IEgoXCJoYXNoXCIsZSk7cmV0dXJuIG4ucHVycG9zZUlkPXBhcnNlSW50KHRbMF0sMTApLG4ucmVzdHJpY3Rpb25UeXBlPXBhcnNlSW50KHRbMV0sMTApLG59Z2V0IGhhc2goKXtpZighdGhpcy5pc1ZhbGlkKCkpdGhyb3cgbmV3IEVycm9yKFwiY2Fubm90IGhhc2ggaW52YWxpZCBQdXJwb3NlUmVzdHJpY3Rpb25cIik7cmV0dXJuYCR7dGhpcy5wdXJwb3NlSWR9JHtKLmhhc2hTZXBhcmF0b3J9JHt0aGlzLnJlc3RyaWN0aW9uVHlwZX1gfWdldCBwdXJwb3NlSWQoKXtyZXR1cm4gdGhpcy5wdXJwb3NlSWRffXNldCBwdXJwb3NlSWQoZSl7dGhpcy5wdXJwb3NlSWRfPWV9aXNWYWxpZCgpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHRoaXMucHVycG9zZUlkKSYmdGhpcy5wdXJwb3NlSWQ+MCYmKHRoaXMucmVzdHJpY3Rpb25UeXBlPT09Vi5OT1RfQUxMT1dFRHx8dGhpcy5yZXN0cmljdGlvblR5cGU9PT1WLlJFUVVJUkVfQ09OU0VOVHx8dGhpcy5yZXN0cmljdGlvblR5cGU9PT1WLlJFUVVJUkVfTEkpfWlzU2FtZUFzKGUpe3JldHVybiB0aGlzLnB1cnBvc2VJZD09PWUucHVycG9zZUlkJiZ0aGlzLnJlc3RyaWN0aW9uVHlwZT09PWUucmVzdHJpY3Rpb25UeXBlfX1jbGFzcyBxIGV4dGVuZHMgR3tiaXRMZW5ndGg9MDttYXA9bmV3IE1hcDtndmxfO2hhcyhlKXtyZXR1cm4gdGhpcy5tYXAuaGFzKGUpfWlzT2tUb0hhdmUoZSx0LG4pe2xldCBzPSEwO2lmKHRoaXMuZ3ZsPy52ZW5kb3JzKXtjb25zdCByPXRoaXMuZ3ZsLnZlbmRvcnNbbl07aWYocilpZihlPT09Vi5OT1RfQUxMT1dFRClzPXIubGVnSW50UHVycG9zZXMuaW5jbHVkZXModCl8fHIucHVycG9zZXMuaW5jbHVkZXModCk7ZWxzZSBpZihyLmZsZXhpYmxlUHVycG9zZXMubGVuZ3RoKXN3aXRjaChlKXtjYXNlIFYuUkVRVUlSRV9DT05TRU5UOnM9ci5mbGV4aWJsZVB1cnBvc2VzLmluY2x1ZGVzKHQpJiZyLmxlZ0ludFB1cnBvc2VzLmluY2x1ZGVzKHQpO2JyZWFrO2Nhc2UgVi5SRVFVSVJFX0xJOnM9ci5mbGV4aWJsZVB1cnBvc2VzLmluY2x1ZGVzKHQpJiZyLnB1cnBvc2VzLmluY2x1ZGVzKHQpfWVsc2Ugcz0hMTtlbHNlIHM9ITF9cmV0dXJuIHN9YWRkKGUsdCl7aWYodGhpcy5pc09rVG9IYXZlKHQucmVzdHJpY3Rpb25UeXBlLHQucHVycG9zZUlkLGUpKXtjb25zdCBuPXQuaGFzaDt0aGlzLmhhcyhuKXx8KHRoaXMubWFwLnNldChuLG5ldyBXKSx0aGlzLmJpdExlbmd0aD0wKSx0aGlzLm1hcC5nZXQobikuYWRkKGUpfX1yZXN0cmljdFB1cnBvc2VUb0xlZ2FsQmFzaXMoZSl7Y29uc3QgdD10aGlzLmd2bC52ZW5kb3JJZHMsbj1lLmhhc2gscz1mdW5jdGlvbigpe2xldCBlO2ZvcihlIG9mIHQpO3JldHVybiBlfSgpLHI9Wy4uLkFycmF5KHMpLmtleXMoKV0ubWFwKChlPT5lKzEpKTtmb3IobGV0IGU9MTtlPD1zO2UrKyl0aGlzLmhhcyhuKXx8KHRoaXMubWFwLnNldChuLFcuYnVpbGQocikpLHRoaXMuYml0TGVuZ3RoPTApLHRoaXMubWFwLmdldChuKS5hZGQoZSl9Z2V0VmVuZG9ycyhlKXtsZXQgdD1bXTtpZihlKXtjb25zdCBuPWUuaGFzaDt0aGlzLmhhcyhuKSYmKHQ9dGhpcy5tYXAuZ2V0KG4pLmdldCgpKX1lbHNle2NvbnN0IGU9bmV3IFNldDt0aGlzLm1hcC5mb3JFYWNoKCh0PT57dC5nZXQoKS5mb3JFYWNoKCh0PT57ZS5hZGQodCl9KSl9KSksdD1BcnJheS5mcm9tKGUpfXJldHVybiB0fWdldFJlc3RyaWN0aW9uVHlwZShlLHQpe2xldCBuO3JldHVybiB0aGlzLmdldFJlc3RyaWN0aW9ucyhlKS5mb3JFYWNoKChlPT57ZS5wdXJwb3NlSWQ9PT10JiYodm9pZCAwPT09bnx8bj5lLnJlc3RyaWN0aW9uVHlwZSkmJihuPWUucmVzdHJpY3Rpb25UeXBlKX0pKSxufXZlbmRvckhhc1Jlc3RyaWN0aW9uKGUsdCl7bGV0IG49ITE7Y29uc3Qgcz10aGlzLmdldFJlc3RyaWN0aW9ucyhlKTtmb3IobGV0IGU9MDtlPHMubGVuZ3RoJiYhbjtlKyspbj10LmlzU2FtZUFzKHNbZV0pO3JldHVybiBufWdldE1heFZlbmRvcklkKCl7bGV0IGU9MDtyZXR1cm4gdGhpcy5tYXAuZm9yRWFjaCgodD0+e2U9TWF0aC5tYXgodC5tYXgoKSxlKX0pKSxlfWdldFJlc3RyaWN0aW9ucyhlKXtjb25zdCB0PVtdO3JldHVybiB0aGlzLm1hcC5mb3JFYWNoKCgobixzKT0+e2U/bi5jb250YWlucyhlKSYmdC5wdXNoKEoudW5IYXNoKHMpKTp0LnB1c2goSi51bkhhc2gocykpfSkpLHR9Z2V0UHVycG9zZXMoKXtjb25zdCBlPW5ldyBTZXQ7cmV0dXJuIHRoaXMubWFwLmZvckVhY2goKCh0LG4pPT57ZS5hZGQoSi51bkhhc2gobikucHVycG9zZUlkKX0pKSxBcnJheS5mcm9tKGUpfXJlbW92ZShlLHQpe2NvbnN0IG49dC5oYXNoLHM9dGhpcy5tYXAuZ2V0KG4pO3MmJihzLnJlbW92ZShlKSxzLmlzRW1wdHkoKSYmKHRoaXMubWFwLmRlbGV0ZShuKSx0aGlzLmJpdExlbmd0aD0wKSl9c2V0IGd2bChlKXt0aGlzLmd2bF98fCh0aGlzLmd2bF89ZSx0aGlzLm1hcC5mb3JFYWNoKCgoZSx0KT0+e2NvbnN0IG49Si51bkhhc2godCk7ZS5nZXQoKS5mb3JFYWNoKCh0PT57dGhpcy5pc09rVG9IYXZlKG4ucmVzdHJpY3Rpb25UeXBlLG4ucHVycG9zZUlkLHQpfHxlLnJlbW92ZSh0KX0pKX0pKSl9Z2V0IGd2bCgpe3JldHVybiB0aGlzLmd2bF99aXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5tYXAuc2l6ZX1nZXQgbnVtUmVzdHJpY3Rpb25zKCl7cmV0dXJuIHRoaXMubWFwLnNpemV9fSFmdW5jdGlvbihlKXtlLkNPT0tJRT1cImNvb2tpZVwiLGUuV0VCPVwid2ViXCIsZS5BUFA9XCJhcHBcIn0oUHx8KFA9e30pKSxmdW5jdGlvbihlKXtlLkNPUkU9XCJjb3JlXCIsZS5WRU5ET1JTX0RJU0NMT1NFRD1cInZlbmRvcnNEaXNjbG9zZWRcIixlLlZFTkRPUlNfQUxMT1dFRD1cInZlbmRvcnNBbGxvd2VkXCIsZS5QVUJMSVNIRVJfVEM9XCJwdWJsaXNoZXJUQ1wifShrfHwoaz17fSkpO2NsYXNzIFF7c3RhdGljIElEX1RPX0tFWT1bay5DT1JFLGsuVkVORE9SU19ESVNDTE9TRUQsay5WRU5ET1JTX0FMTE9XRUQsay5QVUJMSVNIRVJfVENdO3N0YXRpYyBLRVlfVE9fSUQ9e1trLkNPUkVdOjAsW2suVkVORE9SU19ESVNDTE9TRURdOjEsW2suVkVORE9SU19BTExPV0VEXToyLFtrLlBVQkxJU0hFUl9UQ106M319Y2xhc3MgSyBleHRlbmRzIEd7Yml0TGVuZ3RoPTA7bWF4SWRfPTA7c2V0Xz1uZXcgU2V0OypbU3ltYm9sLml0ZXJhdG9yXSgpe2ZvcihsZXQgZT0xO2U8PXRoaXMubWF4SWQ7ZSsrKXlpZWxkW2UsdGhpcy5oYXMoZSldfXZhbHVlcygpe3JldHVybiB0aGlzLnNldF8udmFsdWVzKCl9Z2V0IG1heElkKCl7cmV0dXJuIHRoaXMubWF4SWRffWhhcyhlKXtyZXR1cm4gdGhpcy5zZXRfLmhhcyhlKX11bnNldChlKXtBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCgoZT0+dGhpcy51bnNldChlKSkpOlwib2JqZWN0XCI9PXR5cGVvZiBlP3RoaXMudW5zZXQoT2JqZWN0LmtleXMoZSkubWFwKChlPT5OdW1iZXIoZSkpKSk6KHRoaXMuc2V0Xy5kZWxldGUoTnVtYmVyKGUpKSx0aGlzLmJpdExlbmd0aD0wLGU9PT10aGlzLm1heElkJiYodGhpcy5tYXhJZF89MCx0aGlzLnNldF8uZm9yRWFjaCgoZT0+e3RoaXMubWF4SWRfPU1hdGgubWF4KHRoaXMubWF4SWQsZSl9KSkpKX1pc0ludE1hcChlKXtsZXQgdD1cIm9iamVjdFwiPT10eXBlb2YgZTtyZXR1cm4gdD10JiZPYmplY3Qua2V5cyhlKS5ldmVyeSgodD0+e2xldCBuPU51bWJlci5pc0ludGVnZXIocGFyc2VJbnQodCwxMCkpO3JldHVybiBuPW4mJnRoaXMuaXNWYWxpZE51bWJlcihlW3RdLmlkKSxuPW4mJnZvaWQgMCE9PWVbdF0ubmFtZSxufSkpLHR9aXNWYWxpZE51bWJlcihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCk+MH1pc1NldChlKXtsZXQgdD0hMTtyZXR1cm4gZSBpbnN0YW5jZW9mIFNldCYmKHQ9QXJyYXkuZnJvbShlKS5ldmVyeSh0aGlzLmlzVmFsaWROdW1iZXIpKSx0fXNldChlKXtpZihBcnJheS5pc0FycmF5KGUpKWUuZm9yRWFjaCgoZT0+dGhpcy5zZXQoZSkpKTtlbHNlIGlmKHRoaXMuaXNTZXQoZSkpdGhpcy5zZXQoQXJyYXkuZnJvbShlKSk7ZWxzZSBpZih0aGlzLmlzSW50TWFwKGUpKXRoaXMuc2V0KE9iamVjdC5rZXlzKGUpLm1hcCgoZT0+TnVtYmVyKGUpKSkpO2Vsc2V7aWYoIXRoaXMuaXNWYWxpZE51bWJlcihlKSl0aHJvdyBuZXcgSChcInNldCgpXCIsZSxcIm11c3QgYmUgcG9zaXRpdmUgaW50ZWdlciBhcnJheSwgcG9zaXRpdmUgaW50ZWdlciwgU2V0PG51bWJlcj4sIG9yIEludE1hcFwiKTt0aGlzLnNldF8uYWRkKGUpLHRoaXMubWF4SWRfPU1hdGgubWF4KHRoaXMubWF4SWQsZSksdGhpcy5iaXRMZW5ndGg9MH19ZW1wdHkoKXt0aGlzLnNldF89bmV3IFNldH1mb3JFYWNoKGUpe2ZvcihsZXQgdD0xO3Q8PXRoaXMubWF4SWQ7dCsrKWUodGhpcy5oYXModCksdCl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5zZXRfLnNpemV9c2V0QWxsKGUpe3RoaXMuc2V0KGUpfX1jbGFzcyBZe3N0YXRpY1skLmNtcElkXT0xMjtzdGF0aWNbJC5jbXBWZXJzaW9uXT0xMjtzdGF0aWNbJC5jb25zZW50TGFuZ3VhZ2VdPTEyO3N0YXRpY1skLmNvbnNlbnRTY3JlZW5dPTY7c3RhdGljWyQuY3JlYXRlZF09MzY7c3RhdGljWyQuaXNTZXJ2aWNlU3BlY2lmaWNdPTE7c3RhdGljWyQubGFzdFVwZGF0ZWRdPTM2O3N0YXRpY1skLnBvbGljeVZlcnNpb25dPTY7c3RhdGljWyQucHVibGlzaGVyQ291bnRyeUNvZGVdPTEyO3N0YXRpY1skLnB1Ymxpc2hlckxlZ2l0aW1hdGVJbnRlcmVzdHNdPTI0O3N0YXRpY1skLnB1Ymxpc2hlckNvbnNlbnRzXT0yNDtzdGF0aWNbJC5wdXJwb3NlQ29uc2VudHNdPTI0O3N0YXRpY1skLnB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzXT0yNDtzdGF0aWNbJC5wdXJwb3NlT25lVHJlYXRtZW50XT0xO3N0YXRpY1skLnNwZWNpYWxGZWF0dXJlT3B0aW5zXT0xMjtzdGF0aWNbJC51c2VOb25TdGFuZGFyZFN0YWNrc109MTtzdGF0aWNbJC52ZW5kb3JMaXN0VmVyc2lvbl09MTI7c3RhdGljWyQudmVyc2lvbl09NjtzdGF0aWMgYW55Qm9vbGVhbj0xO3N0YXRpYyBlbmNvZGluZ1R5cGU9MTtzdGF0aWMgbWF4SWQ9MTY7c3RhdGljIG51bUN1c3RvbVB1cnBvc2VzPTY7c3RhdGljIG51bUVudHJpZXM9MTI7c3RhdGljIG51bVJlc3RyaWN0aW9ucz0xMjtzdGF0aWMgcHVycG9zZUlkPTY7c3RhdGljIHJlc3RyaWN0aW9uVHlwZT0yO3N0YXRpYyBzZWdtZW50VHlwZT0zO3N0YXRpYyBzaW5nbGVPclJhbmdlPTE7c3RhdGljIHZlbmRvcklkPTE2fWNsYXNzIFh7c3RhdGljIGVuY29kZShlKXtyZXR1cm4gU3RyaW5nKE51bWJlcihlKSl9c3RhdGljIGRlY29kZShlKXtyZXR1cm5cIjFcIj09PWV9fWNsYXNzIFp7c3RhdGljIGVuY29kZShlLHQpe2xldCBuO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiYoZT1wYXJzZUludChlLDEwKSksbj1lLnRvU3RyaW5nKDIpLG4ubGVuZ3RoPnR8fGU8MCl0aHJvdyBuZXcgTShgJHtlfSB0b28gbGFyZ2UgdG8gZW5jb2RlIGludG8gJHt0fWApO3JldHVybiBuLmxlbmd0aDx0JiYobj1cIjBcIi5yZXBlYXQodC1uLmxlbmd0aCkrbiksbn1zdGF0aWMgZGVjb2RlKGUsdCl7aWYodCE9PWUubGVuZ3RoKXRocm93IG5ldyBGKFwiaW52YWxpZCBiaXQgbGVuZ3RoXCIpO3JldHVybiBwYXJzZUludChlLDIpfX1jbGFzcyBlZXtzdGF0aWMgZW5jb2RlKGUsdCl7cmV0dXJuIFouZW5jb2RlKE1hdGgucm91bmQoZS5nZXRUaW1lKCkvMTAwKSx0KX1zdGF0aWMgZGVjb2RlKGUsdCl7aWYodCE9PWUubGVuZ3RoKXRocm93IG5ldyBGKFwiaW52YWxpZCBiaXQgbGVuZ3RoXCIpO2NvbnN0IG49bmV3IERhdGU7cmV0dXJuIG4uc2V0VGltZSgxMDAqWi5kZWNvZGUoZSx0KSksbn19Y2xhc3MgdGV7c3RhdGljIGVuY29kZShlLHQpe2xldCBuPVwiXCI7Zm9yKGxldCBzPTE7czw9dDtzKyspbis9WC5lbmNvZGUoZS5oYXMocykpO3JldHVybiBufXN0YXRpYyBkZWNvZGUoZSx0KXtpZihlLmxlbmd0aCE9PXQpdGhyb3cgbmV3IEYoXCJiaXRmaWVsZCBlbmNvZGluZyBsZW5ndGggbWlzbWF0Y2hcIik7Y29uc3Qgbj1uZXcgSztmb3IobGV0IHM9MTtzPD10O3MrKylYLmRlY29kZShlW3MtMV0pJiZuLnNldChzKTtyZXR1cm4gbi5iaXRMZW5ndGg9ZS5sZW5ndGgsbn19Y2xhc3MgbmV7c3RhdGljIGVuY29kZShlLHQpe2NvbnN0IG49KGU9ZS50b1VwcGVyQ2FzZSgpKS5jaGFyQ29kZUF0KDApLTY1LHM9ZS5jaGFyQ29kZUF0KDEpLTY1O2lmKG48MHx8bj4yNXx8czwwfHxzPjI1KXRocm93IG5ldyBNKGBpbnZhbGlkIGxhbmd1YWdlIGNvZGU6ICR7ZX1gKTtpZih0JTI9PTEpdGhyb3cgbmV3IE0oYG51bUJpdHMgbXVzdCBiZSBldmVuLCAke3R9IGlzIG5vdCB2YWxpZGApO3QvPTI7cmV0dXJuIFouZW5jb2RlKG4sdCkrWi5lbmNvZGUocyx0KX1zdGF0aWMgZGVjb2RlKGUsdCl7bGV0IG47aWYodCE9PWUubGVuZ3RofHxlLmxlbmd0aCUyKXRocm93IG5ldyBGKFwiaW52YWxpZCBiaXQgbGVuZ3RoIGZvciBsYW5ndWFnZVwiKTt7Y29uc3QgdD02NSxzPWUubGVuZ3RoLzIscj1aLmRlY29kZShlLnNsaWNlKDAscykscykrdCxpPVouZGVjb2RlKGUuc2xpY2UocykscykrdDtuPVN0cmluZy5mcm9tQ2hhckNvZGUocikrU3RyaW5nLmZyb21DaGFyQ29kZShpKX1yZXR1cm4gbn19Y2xhc3Mgc2V7c3RhdGljIGVuY29kZShlKXtsZXQgdD1aLmVuY29kZShlLm51bVJlc3RyaWN0aW9ucyxZLm51bVJlc3RyaWN0aW9ucyk7cmV0dXJuIGUuaXNFbXB0eSgpfHxlLmdldFJlc3RyaWN0aW9ucygpLmZvckVhY2goKG49Pnt0Kz1aLmVuY29kZShuLnB1cnBvc2VJZCxZLnB1cnBvc2VJZCksdCs9Wi5lbmNvZGUobi5yZXN0cmljdGlvblR5cGUsWS5yZXN0cmljdGlvblR5cGUpO2NvbnN0IHM9ZS5nZXRWZW5kb3JzKG4pLHI9cy5sZW5ndGg7bGV0IGk9MCxvPTAsYT1cIlwiO2ZvcihsZXQgdD0wO3Q8cjt0Kyspe2NvbnN0IG49c1t0XTswPT09byYmKGkrKyxvPW4pO2NvbnN0IGM9c1tyLTFdLGw9ZS5ndmwudmVuZG9ySWRzLHU9ZT0+e2Zvcig7KytlPD1jJiYhbC5oYXMoZSk7KTtyZXR1cm4gZX07aWYodD09PXItMXx8c1t0KzFdPnUobikpe2NvbnN0IGU9IShuPT09byk7YSs9WC5lbmNvZGUoZSksYSs9Wi5lbmNvZGUobyxZLnZlbmRvcklkKSxlJiYoYSs9Wi5lbmNvZGUobixZLnZlbmRvcklkKSksbz0wfX10Kz1aLmVuY29kZShpLFkubnVtRW50cmllcyksdCs9YX0pKSx0fXN0YXRpYyBkZWNvZGUoZSl7bGV0IHQ9MDtjb25zdCBuPW5ldyBxLHM9Wi5kZWNvZGUoZS5zdWJzdHIodCxZLm51bVJlc3RyaWN0aW9ucyksWS5udW1SZXN0cmljdGlvbnMpO3QrPVkubnVtUmVzdHJpY3Rpb25zO2ZvcihsZXQgcj0wO3I8cztyKyspe2NvbnN0IHM9Wi5kZWNvZGUoZS5zdWJzdHIodCxZLnB1cnBvc2VJZCksWS5wdXJwb3NlSWQpO3QrPVkucHVycG9zZUlkO2NvbnN0IHI9Wi5kZWNvZGUoZS5zdWJzdHIodCxZLnJlc3RyaWN0aW9uVHlwZSksWS5yZXN0cmljdGlvblR5cGUpO3QrPVkucmVzdHJpY3Rpb25UeXBlO2NvbnN0IGk9bmV3IEoocyxyKSxvPVouZGVjb2RlKGUuc3Vic3RyKHQsWS5udW1FbnRyaWVzKSxZLm51bUVudHJpZXMpO3QrPVkubnVtRW50cmllcztmb3IobGV0IHM9MDtzPG87cysrKXtjb25zdCBzPVguZGVjb2RlKGUuc3Vic3RyKHQsWS5hbnlCb29sZWFuKSk7dCs9WS5hbnlCb29sZWFuO2NvbnN0IHI9Wi5kZWNvZGUoZS5zdWJzdHIodCxZLnZlbmRvcklkKSxZLnZlbmRvcklkKTtpZih0Kz1ZLnZlbmRvcklkLHMpe2NvbnN0IHM9Wi5kZWNvZGUoZS5zdWJzdHIodCxZLnZlbmRvcklkKSxZLnZlbmRvcklkKTtpZih0Kz1ZLnZlbmRvcklkLHM8cil0aHJvdyBuZXcgRihgSW52YWxpZCBSYW5nZUVudHJ5OiBlbmRWZW5kb3JJZCAke3N9IGlzIGxlc3MgdGhhbiAke3J9YCk7Zm9yKGxldCBlPXI7ZTw9cztlKyspbi5hZGQoZSxpKX1lbHNlIG4uYWRkKHIsaSl9fXJldHVybiBuLmJpdExlbmd0aD10LG59fSFmdW5jdGlvbihlKXtlW2UuRklFTEQ9MF09XCJGSUVMRFwiLGVbZS5SQU5HRT0xXT1cIlJBTkdFXCJ9KHh8fCh4PXt9KSk7Y2xhc3MgcmV7c3RhdGljIGVuY29kZShlKXtjb25zdCB0PVtdO2xldCBuLHM9W10scj1aLmVuY29kZShlLm1heElkLFkubWF4SWQpLGk9XCJcIjtjb25zdCBvPVkubWF4SWQrWS5lbmNvZGluZ1R5cGUsYT1vK2UubWF4SWQsYz0yKlkudmVuZG9ySWQrWS5zaW5nbGVPclJhbmdlK1kubnVtRW50cmllcztsZXQgbD1vK1kubnVtRW50cmllcztyZXR1cm4gZS5mb3JFYWNoKCgocixvKT0+e2lmKGkrPVguZW5jb2RlKHIpLG49ZS5tYXhJZD5jJiZsPGEsbiYmcil7ZS5oYXMobysxKT8wPT09cy5sZW5ndGgmJihzLnB1c2gobyksbCs9WS5zaW5nbGVPclJhbmdlLGwrPVkudmVuZG9ySWQpOihzLnB1c2gobyksbCs9WS52ZW5kb3JJZCx0LnB1c2gocykscz1bXSl9fSkpLG4/KHIrPVN0cmluZyh4LlJBTkdFKSxyKz10aGlzLmJ1aWxkUmFuZ2VFbmNvZGluZyh0KSk6KHIrPVN0cmluZyh4LkZJRUxEKSxyKz1pKSxyfXN0YXRpYyBkZWNvZGUoZSx0KXtsZXQgbixzPTA7Y29uc3Qgcj1aLmRlY29kZShlLnN1YnN0cihzLFkubWF4SWQpLFkubWF4SWQpO3MrPVkubWF4SWQ7Y29uc3QgaT1aLmRlY29kZShlLmNoYXJBdChzKSxZLmVuY29kaW5nVHlwZSk7aWYocys9WS5lbmNvZGluZ1R5cGUsaT09PXguUkFOR0Upe2lmKG49bmV3IEssMT09PXQpe2lmKFwiMVwiPT09ZS5zdWJzdHIocywxKSl0aHJvdyBuZXcgRihcIlVuYWJsZSB0byBkZWNvZGUgZGVmYXVsdCBjb25zZW50PTFcIik7cysrfWNvbnN0IHI9Wi5kZWNvZGUoZS5zdWJzdHIocyxZLm51bUVudHJpZXMpLFkubnVtRW50cmllcyk7cys9WS5udW1FbnRyaWVzO2ZvcihsZXQgdD0wO3Q8cjt0Kyspe2NvbnN0IHQ9WC5kZWNvZGUoZS5jaGFyQXQocykpO3MrPVkuc2luZ2xlT3JSYW5nZTtjb25zdCByPVouZGVjb2RlKGUuc3Vic3RyKHMsWS52ZW5kb3JJZCksWS52ZW5kb3JJZCk7aWYocys9WS52ZW5kb3JJZCx0KXtjb25zdCB0PVouZGVjb2RlKGUuc3Vic3RyKHMsWS52ZW5kb3JJZCksWS52ZW5kb3JJZCk7cys9WS52ZW5kb3JJZDtmb3IobGV0IGU9cjtlPD10O2UrKyluLnNldChlKX1lbHNlIG4uc2V0KHIpfX1lbHNle2NvbnN0IHQ9ZS5zdWJzdHIocyxyKTtzKz1yLG49dGUuZGVjb2RlKHQscil9cmV0dXJuIG4uYml0TGVuZ3RoPXMsbn1zdGF0aWMgYnVpbGRSYW5nZUVuY29kaW5nKGUpe2NvbnN0IHQ9ZS5sZW5ndGg7bGV0IG49Wi5lbmNvZGUodCxZLm51bUVudHJpZXMpO3JldHVybiBlLmZvckVhY2goKGU9Pntjb25zdCB0PTE9PT1lLmxlbmd0aDtuKz1YLmVuY29kZSghdCksbis9Wi5lbmNvZGUoZVswXSxZLnZlbmRvcklkKSx0fHwobis9Wi5lbmNvZGUoZVsxXSxZLnZlbmRvcklkKSl9KSksbn19ZnVuY3Rpb24gaWUoKXtyZXR1cm57WyQudmVyc2lvbl06WixbJC5jcmVhdGVkXTplZSxbJC5sYXN0VXBkYXRlZF06ZWUsWyQuY21wSWRdOlosWyQuY21wVmVyc2lvbl06WixbJC5jb25zZW50U2NyZWVuXTpaLFskLmNvbnNlbnRMYW5ndWFnZV06bmUsWyQudmVuZG9yTGlzdFZlcnNpb25dOlosWyQucG9saWN5VmVyc2lvbl06WixbJC5pc1NlcnZpY2VTcGVjaWZpY106WCxbJC51c2VOb25TdGFuZGFyZFN0YWNrc106WCxbJC5zcGVjaWFsRmVhdHVyZU9wdGluc106dGUsWyQucHVycG9zZUNvbnNlbnRzXTp0ZSxbJC5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0c106dGUsWyQucHVycG9zZU9uZVRyZWF0bWVudF06WCxbJC5wdWJsaXNoZXJDb3VudHJ5Q29kZV06bmUsWyQudmVuZG9yQ29uc2VudHNdOnJlLFskLnZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHNdOnJlLFskLnB1Ymxpc2hlclJlc3RyaWN0aW9uc106c2Usc2VnbWVudFR5cGU6WixbJC52ZW5kb3JzRGlzY2xvc2VkXTpyZSxbJC52ZW5kb3JzQWxsb3dlZF06cmUsWyQucHVibGlzaGVyQ29uc2VudHNdOnRlLFskLnB1Ymxpc2hlckxlZ2l0aW1hdGVJbnRlcmVzdHNdOnRlLFskLm51bUN1c3RvbVB1cnBvc2VzXTpaLFskLnB1Ymxpc2hlckN1c3RvbUNvbnNlbnRzXTp0ZSxbJC5wdWJsaXNoZXJDdXN0b21MZWdpdGltYXRlSW50ZXJlc3RzXTp0ZX19Y2xhc3Mgb2V7MT17W2suQ09SRV06WyQudmVyc2lvbiwkLmNyZWF0ZWQsJC5sYXN0VXBkYXRlZCwkLmNtcElkLCQuY21wVmVyc2lvbiwkLmNvbnNlbnRTY3JlZW4sJC5jb25zZW50TGFuZ3VhZ2UsJC52ZW5kb3JMaXN0VmVyc2lvbiwkLnB1cnBvc2VDb25zZW50cywkLnZlbmRvckNvbnNlbnRzXX07Mj17W2suQ09SRV06WyQudmVyc2lvbiwkLmNyZWF0ZWQsJC5sYXN0VXBkYXRlZCwkLmNtcElkLCQuY21wVmVyc2lvbiwkLmNvbnNlbnRTY3JlZW4sJC5jb25zZW50TGFuZ3VhZ2UsJC52ZW5kb3JMaXN0VmVyc2lvbiwkLnBvbGljeVZlcnNpb24sJC5pc1NlcnZpY2VTcGVjaWZpYywkLnVzZU5vblN0YW5kYXJkU3RhY2tzLCQuc3BlY2lhbEZlYXR1cmVPcHRpbnMsJC5wdXJwb3NlQ29uc2VudHMsJC5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cywkLnB1cnBvc2VPbmVUcmVhdG1lbnQsJC5wdWJsaXNoZXJDb3VudHJ5Q29kZSwkLnZlbmRvckNvbnNlbnRzLCQudmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cywkLnB1Ymxpc2hlclJlc3RyaWN0aW9uc10sW2suUFVCTElTSEVSX1RDXTpbJC5wdWJsaXNoZXJDb25zZW50cywkLnB1Ymxpc2hlckxlZ2l0aW1hdGVJbnRlcmVzdHMsJC5udW1DdXN0b21QdXJwb3NlcywkLnB1Ymxpc2hlckN1c3RvbUNvbnNlbnRzLCQucHVibGlzaGVyQ3VzdG9tTGVnaXRpbWF0ZUludGVyZXN0c10sW2suVkVORE9SU19BTExPV0VEXTpbJC52ZW5kb3JzQWxsb3dlZF0sW2suVkVORE9SU19ESVNDTE9TRURdOlskLnZlbmRvcnNEaXNjbG9zZWRdfX1jbGFzcyBhZXsxPVtrLkNPUkVdOzI9W2suQ09SRV07Y29uc3RydWN0b3IoZSx0KXtpZigyPT09ZS52ZXJzaW9uKWlmKGUuaXNTZXJ2aWNlU3BlY2lmaWMpdGhpc1syXS5wdXNoKGsuUFVCTElTSEVSX1RDKTtlbHNle2NvbnN0IG49ISghdHx8IXQuaXNGb3JWZW5kb3JzKTtuJiYhMCE9PWVbJC5zdXBwb3J0T09CXXx8dGhpc1syXS5wdXNoKGsuVkVORE9SU19ESVNDTE9TRUQpLG4mJihlWyQuc3VwcG9ydE9PQl0mJmVbJC52ZW5kb3JzQWxsb3dlZF0uc2l6ZT4wJiZ0aGlzWzJdLnB1c2goay5WRU5ET1JTX0FMTE9XRUQpLHRoaXNbMl0ucHVzaChrLlBVQkxJU0hFUl9UQykpfX19Y2xhc3MgY2V7c3RhdGljIGZpZWxkU2VxdWVuY2U9bmV3IG9lO3N0YXRpYyBlbmNvZGUoZSx0KXtsZXQgbjt0cnl7bj10aGlzLmZpZWxkU2VxdWVuY2VbU3RyaW5nKGUudmVyc2lvbildW3RdfWNhdGNoKG4pe3Rocm93IG5ldyBNKGBVbmFibGUgdG8gZW5jb2RlIHZlcnNpb246ICR7ZS52ZXJzaW9ufSwgc2VnbWVudDogJHt0fWApfWxldCBzPVwiXCI7dCE9PWsuQ09SRSYmKHM9Wi5lbmNvZGUoUS5LRVlfVE9fSURbdF0sWS5zZWdtZW50VHlwZSkpO2NvbnN0IHI9aWUoKTtyZXR1cm4gbi5mb3JFYWNoKChuPT57Y29uc3QgaT1lW25dLG89cltuXTtsZXQgYT1ZW25dO3ZvaWQgMD09PWEmJnRoaXMuaXNQdWJsaXNoZXJDdXN0b20obikmJihhPU51bWJlcihlWyQubnVtQ3VzdG9tUHVycG9zZXNdKSk7dHJ5e3MrPW8uZW5jb2RlKGksYSl9Y2F0Y2goZSl7dGhyb3cgbmV3IE0oYEVycm9yIGVuY29kaW5nICR7dH0tPiR7bn06ICR7ZS5tZXNzYWdlfWApfX0pKSxqLmVuY29kZShzKX1zdGF0aWMgZGVjb2RlKGUsdCxuKXtjb25zdCBzPWouZGVjb2RlKGUpO2xldCByPTA7bj09PWsuQ09SRSYmKHQudmVyc2lvbj1aLmRlY29kZShzLnN1YnN0cihyLFlbJC52ZXJzaW9uXSksWVskLnZlcnNpb25dKSksbiE9PWsuQ09SRSYmKHIrPVkuc2VnbWVudFR5cGUpO2NvbnN0IGk9dGhpcy5maWVsZFNlcXVlbmNlW1N0cmluZyh0LnZlcnNpb24pXVtuXSxvPWllKCk7cmV0dXJuIGkuZm9yRWFjaCgoZT0+e2NvbnN0IG49b1tlXTtsZXQgaT1ZW2VdO2lmKHZvaWQgMD09PWkmJnRoaXMuaXNQdWJsaXNoZXJDdXN0b20oZSkmJihpPU51bWJlcih0WyQubnVtQ3VzdG9tUHVycG9zZXNdKSksMCE9PWkpe2NvbnN0IG89cy5zdWJzdHIocixpKTtpZih0W2VdPW49PT1yZT9uLmRlY29kZShvLHQudmVyc2lvbik6bi5kZWNvZGUobyxpKSxOdW1iZXIuaXNJbnRlZ2VyKGkpKXIrPWk7ZWxzZXtpZighTnVtYmVyLmlzSW50ZWdlcih0W2VdLmJpdExlbmd0aCkpdGhyb3cgbmV3IEYoZSk7cis9dFtlXS5iaXRMZW5ndGh9fX0pKSx0fXN0YXRpYyBpc1B1Ymxpc2hlckN1c3RvbShlKXtyZXR1cm4gMD09PWUuaW5kZXhPZihcInB1Ymxpc2hlckN1c3RvbVwiKX19Y2xhc3MgbGV7c3RhdGljIHByb2Nlc3Nvcj1bZT0+ZSwoZSx0KT0+e2UucHVibGlzaGVyUmVzdHJpY3Rpb25zLmd2bD10LGUucHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHMudW5zZXQoMSk7Y29uc3Qgbj1uZXcgTWFwO3JldHVybiBuLnNldChcImxlZ0ludFB1cnBvc2VzXCIsZS52ZW5kb3JMZWdpdGltYXRlSW50ZXJlc3RzKSxuLnNldChcInB1cnBvc2VzXCIsZS52ZW5kb3JDb25zZW50cyksbi5mb3JFYWNoKCgobixzKT0+e24uZm9yRWFjaCgoKHIsaSk9PntpZihyKXtjb25zdCByPXQudmVuZG9yc1tpXTtpZighcnx8ci5kZWxldGVkRGF0ZSluLnVuc2V0KGkpO2Vsc2UgaWYoMD09PXJbc10ubGVuZ3RoKWlmKFwibGVnSW50UHVycG9zZXNcIj09PXMmJjA9PT1yLnB1cnBvc2VzLmxlbmd0aCYmMD09PXIubGVnSW50UHVycG9zZXMubGVuZ3RoJiZyLnNwZWNpYWxQdXJwb3Nlcy5sZW5ndGg+MCk7ZWxzZSBpZihlLmlzU2VydmljZVNwZWNpZmljKWlmKDA9PT1yLmZsZXhpYmxlUHVycG9zZXMubGVuZ3RoKW4udW5zZXQoaSk7ZWxzZXtjb25zdCB0PWUucHVibGlzaGVyUmVzdHJpY3Rpb25zLmdldFJlc3RyaWN0aW9ucyhpKTtsZXQgcj0hMTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8biYmIXI7ZSsrKXI9dFtlXS5yZXN0cmljdGlvblR5cGU9PT1WLlJFUVVJUkVfQ09OU0VOVCYmXCJwdXJwb3Nlc1wiPT09c3x8dFtlXS5yZXN0cmljdGlvblR5cGU9PT1WLlJFUVVJUkVfTEkmJlwibGVnSW50UHVycG9zZXNcIj09PXM7cnx8bi51bnNldChpKX1lbHNlIG4udW5zZXQoaSl9fSkpfSkpLGUudmVuZG9yc0Rpc2Nsb3NlZC5zZXQodC52ZW5kb3JzKSxlfV07c3RhdGljIHByb2Nlc3MoZSx0KXtjb25zdCBuPWUuZ3ZsO2lmKCFuKXRocm93IG5ldyBNKFwiVW5hYmxlIHRvIGVuY29kZSBUQ01vZGVsIHdpdGhvdXQgYSBHVkxcIik7aWYoIW4uaXNSZWFkeSl0aHJvdyBuZXcgTShcIlVuYWJsZSB0byBlbmNvZGUgVENNb2RlbCB0Y01vZGVsLmd2bC5yZWFkeVByb21pc2UgaXMgbm90IHJlc29sdmVkXCIpOyhlPWUuY2xvbmUoKSkuY29uc2VudExhbmd1YWdlPW4ubGFuZ3VhZ2UudG9VcHBlckNhc2UoKSx0Py52ZXJzaW9uPjAmJnQ/LnZlcnNpb248PXRoaXMucHJvY2Vzc29yLmxlbmd0aD9lLnZlcnNpb249dC52ZXJzaW9uOmUudmVyc2lvbj10aGlzLnByb2Nlc3Nvci5sZW5ndGg7Y29uc3Qgcz1lLnZlcnNpb24tMTtpZighdGhpcy5wcm9jZXNzb3Jbc10pdGhyb3cgbmV3IE0oYEludmFsaWQgdmVyc2lvbjogJHtlLnZlcnNpb259YCk7cmV0dXJuIHRoaXMucHJvY2Vzc29yW3NdKGUsbil9fWNsYXNzIHVle3N0YXRpYyBhYnNDYWxsKGUsdCxuLHMpe3JldHVybiBuZXcgUHJvbWlzZSgoKHIsaSk9Pntjb25zdCBvPW5ldyBYTUxIdHRwUmVxdWVzdDtvLndpdGhDcmVkZW50aWFscz1uLG8uYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwoKCk9PntpZihvLnJlYWR5U3RhdGU9PVhNTEh0dHBSZXF1ZXN0LkRPTkUpaWYoby5zdGF0dXM+PTIwMCYmby5zdGF0dXM8MzAwKXtsZXQgZT1vLnJlc3BvbnNlO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXRyeXtlPUpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7fXIoZSl9ZWxzZSBpKG5ldyBFcnJvcihgSFRUUCBTdGF0dXM6ICR7by5zdGF0dXN9IHJlc3BvbnNlIHR5cGU6ICR7by5yZXNwb25zZVR5cGV9YCkpfSkpLG8uYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsKCgpPT57aShuZXcgRXJyb3IoXCJlcnJvclwiKSl9KSksby5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwoKCk9PntpKG5ldyBFcnJvcihcImFib3J0ZWRcIikpfSkpLG51bGw9PT10P28ub3BlbihcIkdFVFwiLGUsITApOm8ub3BlbihcIlBPU1RcIixlLCEwKSxvLnJlc3BvbnNlVHlwZT1cImpzb25cIixvLnRpbWVvdXQ9cyxvLm9udGltZW91dD0oKT0+e2kobmV3IEVycm9yKFwiVGltZW91dCBcIitzK1wibXMgXCIrZSkpfSxvLnNlbmQodCl9KSl9c3RhdGljIHBvc3QoZSx0KXtsZXQgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHM9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjA7cmV0dXJuIHRoaXMuYWJzQ2FsbChlLEpTT04uc3RyaW5naWZ5KHQpLG4scyl9c3RhdGljIGZldGNoKGUpe2xldCB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MDtyZXR1cm4gdGhpcy5hYnNDYWxsKGUsbnVsbCx0LG4pfX1jbGFzcyBkZSBleHRlbmRzIEd7c3RhdGljIExBTkdVQUdFX0NBQ0hFPW5ldyBNYXA7c3RhdGljIENBQ0hFPW5ldyBNYXA7c3RhdGljIExBVEVTVF9DQUNIRV9LRVk9MDtzdGF0aWMgREVGQVVMVF9MQU5HVUFHRT1cIkVOXCI7c3RhdGljIGNvbnNlbnRMYW5ndWFnZXM9bmV3IHo7c3RhdGljIGJhc2VVcmxfO3N0YXRpYyBzZXQgYmFzZVVybChlKXtpZigvXmh0dHBzPzpcXC9cXC92ZW5kb3JsaXN0XFwuY29uc2Vuc3VcXC5vcmdcXC8vLnRlc3QoZSkpdGhyb3cgbmV3IEIoXCJJbnZhbGlkIGJhc2VVcmwhICBZb3UgbWF5IG5vdCBwdWxsIGRpcmVjdGx5IGZyb20gdmVuZG9ybGlzdC5jb25zZW5zdS5vcmcgYW5kIG11c3QgcHJvdmlkZSB5b3VyIG93biBjYWNoZVwiKTtlLmxlbmd0aD4wJiZcIi9cIiE9PWVbZS5sZW5ndGgtMV0mJihlKz1cIi9cIiksdGhpcy5iYXNlVXJsXz1lfXN0YXRpYyBnZXQgYmFzZVVybCgpe3JldHVybiB0aGlzLmJhc2VVcmxffXN0YXRpYyBsYXRlc3RGaWxlbmFtZT1cInZlbmRvci1saXN0Lmpzb25cIjtzdGF0aWMgdmVyc2lvbmVkRmlsZW5hbWU9XCJhcmNoaXZlcy92ZW5kb3ItbGlzdC12W1ZFUlNJT05dLmpzb25cIjtzdGF0aWMgbGFuZ3VhZ2VGaWxlbmFtZT1cInB1cnBvc2VzLVtMQU5HXS5qc29uXCI7cmVhZHlQcm9taXNlO2d2bFNwZWNpZmljYXRpb25WZXJzaW9uO3ZlbmRvckxpc3RWZXJzaW9uO3RjZlBvbGljeVZlcnNpb247bGFzdFVwZGF0ZWQ7cHVycG9zZXM7c3BlY2lhbFB1cnBvc2VzO2ZlYXR1cmVzO3NwZWNpYWxGZWF0dXJlcztpc1JlYWR5Xz0hMTt2ZW5kb3JzXzt2ZW5kb3JJZHM7ZnVsbFZlbmRvckxpc3Q7YnlQdXJwb3NlVmVuZG9yTWFwO2J5U3BlY2lhbFB1cnBvc2VWZW5kb3JNYXA7YnlGZWF0dXJlVmVuZG9yTWFwO2J5U3BlY2lhbEZlYXR1cmVWZW5kb3JNYXA7c3RhY2tzO2xhbmdfO2lzTGF0ZXN0PSExO2NvbnN0cnVjdG9yKGUpe3N1cGVyKCk7bGV0IHQ9ZGUuYmFzZVVybDtpZih0aGlzLmxhbmdfPWRlLkRFRkFVTFRfTEFOR1VBR0UsdGhpcy5pc1ZlbmRvckxpc3QoZSkpdGhpcy5wb3B1bGF0ZShlKSx0aGlzLnJlYWR5UHJvbWlzZT1Qcm9taXNlLnJlc29sdmUoKTtlbHNle2lmKCF0KXRocm93IG5ldyBCKFwibXVzdCBzcGVjaWZ5IEdWTC5iYXNlVXJsIGJlZm9yZSBsb2FkaW5nIEdWTCBqc29uXCIpO2lmKGU+MCl7Y29uc3Qgbj1lO2RlLkNBQ0hFLmhhcyhuKT8odGhpcy5wb3B1bGF0ZShkZS5DQUNIRS5nZXQobikpLHRoaXMucmVhZHlQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpKToodCs9ZGUudmVyc2lvbmVkRmlsZW5hbWUucmVwbGFjZShcIltWRVJTSU9OXVwiLFN0cmluZyhuKSksdGhpcy5yZWFkeVByb21pc2U9dGhpcy5mZXRjaEpzb24odCkpfWVsc2UgZGUuQ0FDSEUuaGFzKGRlLkxBVEVTVF9DQUNIRV9LRVkpPyh0aGlzLnBvcHVsYXRlKGRlLkNBQ0hFLmdldChkZS5MQVRFU1RfQ0FDSEVfS0VZKSksdGhpcy5yZWFkeVByb21pc2U9UHJvbWlzZS5yZXNvbHZlKCkpOih0aGlzLmlzTGF0ZXN0PSEwLHRoaXMucmVhZHlQcm9taXNlPXRoaXMuZmV0Y2hKc29uKHQrZGUubGF0ZXN0RmlsZW5hbWUpKX19c3RhdGljIGVtcHR5TGFuZ3VhZ2VDYWNoZShlKXtsZXQgdD0hMTtyZXR1cm4gdm9pZCAwPT09ZSYmZGUuTEFOR1VBR0VfQ0FDSEUuc2l6ZT4wPyhkZS5MQU5HVUFHRV9DQUNIRT1uZXcgTWFwLHQ9ITApOlwic3RyaW5nXCI9PXR5cGVvZiBlJiZ0aGlzLmNvbnNlbnRMYW5ndWFnZXMuaGFzKGUudG9VcHBlckNhc2UoKSkmJihkZS5MQU5HVUFHRV9DQUNIRS5kZWxldGUoZS50b1VwcGVyQ2FzZSgpKSx0PSEwKSx0fXN0YXRpYyBlbXB0eUNhY2hlKGUpe2xldCB0PSExO3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0wPyhkZS5DQUNIRS5kZWxldGUoZSksdD0hMCk6dm9pZCAwPT09ZSYmKGRlLkNBQ0hFPW5ldyBNYXAsdD0hMCksdH1jYWNoZUxhbmd1YWdlKCl7ZGUuTEFOR1VBR0VfQ0FDSEUuaGFzKHRoaXMubGFuZ18pfHxkZS5MQU5HVUFHRV9DQUNIRS5zZXQodGhpcy5sYW5nXyx7cHVycG9zZXM6dGhpcy5wdXJwb3NlcyxzcGVjaWFsUHVycG9zZXM6dGhpcy5zcGVjaWFsUHVycG9zZXMsZmVhdHVyZXM6dGhpcy5mZWF0dXJlcyxzcGVjaWFsRmVhdHVyZXM6dGhpcy5zcGVjaWFsRmVhdHVyZXMsc3RhY2tzOnRoaXMuc3RhY2tzfSl9YXN5bmMgZmV0Y2hKc29uKGUpe3RyeXt0aGlzLnBvcHVsYXRlKGF3YWl0IHVlLmZldGNoKGUpKX1jYXRjaChlKXt0aHJvdyBuZXcgQihlLm1lc3NhZ2UpfX1nZXRKc29uKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoe2d2bFNwZWNpZmljYXRpb25WZXJzaW9uOnRoaXMuZ3ZsU3BlY2lmaWNhdGlvblZlcnNpb24sdmVuZG9yTGlzdFZlcnNpb246dGhpcy52ZW5kb3JMaXN0VmVyc2lvbix0Y2ZQb2xpY3lWZXJzaW9uOnRoaXMudGNmUG9saWN5VmVyc2lvbixsYXN0VXBkYXRlZDp0aGlzLmxhc3RVcGRhdGVkLHB1cnBvc2VzOnRoaXMucHVycG9zZXMsc3BlY2lhbFB1cnBvc2VzOnRoaXMuc3BlY2lhbFB1cnBvc2VzLGZlYXR1cmVzOnRoaXMuZmVhdHVyZXMsc3BlY2lhbEZlYXR1cmVzOnRoaXMuc3BlY2lhbEZlYXR1cmVzLHN0YWNrczp0aGlzLnN0YWNrcyx2ZW5kb3JzOnRoaXMuZnVsbFZlbmRvckxpc3R9KSl9YXN5bmMgY2hhbmdlTGFuZ3VhZ2UoZSl7Y29uc3QgdD1lLnRvVXBwZXJDYXNlKCk7aWYoIWRlLmNvbnNlbnRMYW5ndWFnZXMuaGFzKHQpKXRocm93IG5ldyBCKGB1bnN1cHBvcnRlZCBsYW5ndWFnZSAke2V9YCk7aWYodCE9PXRoaXMubGFuZ18paWYodGhpcy5sYW5nXz10LGRlLkxBTkdVQUdFX0NBQ0hFLmhhcyh0KSl7Y29uc3QgZT1kZS5MQU5HVUFHRV9DQUNIRS5nZXQodCk7Zm9yKGNvbnN0IHQgaW4gZSllLmhhc093blByb3BlcnR5KHQpJiYodGhpc1t0XT1lW3RdKX1lbHNle2NvbnN0IHQ9ZGUuYmFzZVVybCtkZS5sYW5ndWFnZUZpbGVuYW1lLnJlcGxhY2UoXCJbTEFOR11cIixlKTt0cnl7YXdhaXQgdGhpcy5mZXRjaEpzb24odCksdGhpcy5jYWNoZUxhbmd1YWdlKCl9Y2F0Y2goZSl7dGhyb3cgbmV3IEIoXCJ1bmFibGUgdG8gbG9hZCBsYW5ndWFnZTogXCIrZS5tZXNzYWdlKX19fWdldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLmxhbmdffWlzVmVuZG9yTGlzdChlKXtyZXR1cm4gdm9pZCAwIT09ZSYmdm9pZCAwIT09ZS52ZW5kb3JzfXBvcHVsYXRlKGUpe3RoaXMucHVycG9zZXM9ZS5wdXJwb3Nlcyx0aGlzLnNwZWNpYWxQdXJwb3Nlcz1lLnNwZWNpYWxQdXJwb3Nlcyx0aGlzLmZlYXR1cmVzPWUuZmVhdHVyZXMsdGhpcy5zcGVjaWFsRmVhdHVyZXM9ZS5zcGVjaWFsRmVhdHVyZXMsdGhpcy5zdGFja3M9ZS5zdGFja3MsdGhpcy5pc1ZlbmRvckxpc3QoZSkmJih0aGlzLmd2bFNwZWNpZmljYXRpb25WZXJzaW9uPWUuZ3ZsU3BlY2lmaWNhdGlvblZlcnNpb24sdGhpcy50Y2ZQb2xpY3lWZXJzaW9uPWUudGNmUG9saWN5VmVyc2lvbix0aGlzLnZlbmRvckxpc3RWZXJzaW9uPWUudmVuZG9yTGlzdFZlcnNpb24sdGhpcy5sYXN0VXBkYXRlZD1lLmxhc3RVcGRhdGVkLFwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLmxhc3RVcGRhdGVkJiYodGhpcy5sYXN0VXBkYXRlZD1uZXcgRGF0ZSh0aGlzLmxhc3RVcGRhdGVkKSksdGhpcy52ZW5kb3JzXz1lLnZlbmRvcnMsdGhpcy5mdWxsVmVuZG9yTGlzdD1lLnZlbmRvcnMsdGhpcy5tYXBWZW5kb3JzKCksdGhpcy5pc1JlYWR5Xz0hMCx0aGlzLmlzTGF0ZXN0JiZkZS5DQUNIRS5zZXQoZGUuTEFURVNUX0NBQ0hFX0tFWSx0aGlzLmdldEpzb24oKSksZGUuQ0FDSEUuaGFzKHRoaXMudmVuZG9yTGlzdFZlcnNpb24pfHxkZS5DQUNIRS5zZXQodGhpcy52ZW5kb3JMaXN0VmVyc2lvbix0aGlzLmdldEpzb24oKSkpLHRoaXMuY2FjaGVMYW5ndWFnZSgpfW1hcFZlbmRvcnMoZSl7dGhpcy5ieVB1cnBvc2VWZW5kb3JNYXA9e30sdGhpcy5ieVNwZWNpYWxQdXJwb3NlVmVuZG9yTWFwPXt9LHRoaXMuYnlGZWF0dXJlVmVuZG9yTWFwPXt9LHRoaXMuYnlTcGVjaWFsRmVhdHVyZVZlbmRvck1hcD17fSxPYmplY3Qua2V5cyh0aGlzLnB1cnBvc2VzKS5mb3JFYWNoKChlPT57dGhpcy5ieVB1cnBvc2VWZW5kb3JNYXBbZV09e2xlZ0ludDpuZXcgU2V0LGNvbnNlbnQ6bmV3IFNldCxmbGV4aWJsZTpuZXcgU2V0fX0pKSxPYmplY3Qua2V5cyh0aGlzLnNwZWNpYWxQdXJwb3NlcykuZm9yRWFjaCgoZT0+e3RoaXMuYnlTcGVjaWFsUHVycG9zZVZlbmRvck1hcFtlXT1uZXcgU2V0fSkpLE9iamVjdC5rZXlzKHRoaXMuZmVhdHVyZXMpLmZvckVhY2goKGU9Pnt0aGlzLmJ5RmVhdHVyZVZlbmRvck1hcFtlXT1uZXcgU2V0fSkpLE9iamVjdC5rZXlzKHRoaXMuc3BlY2lhbEZlYXR1cmVzKS5mb3JFYWNoKChlPT57dGhpcy5ieVNwZWNpYWxGZWF0dXJlVmVuZG9yTWFwW2VdPW5ldyBTZXR9KSksQXJyYXkuaXNBcnJheShlKXx8KGU9T2JqZWN0LmtleXModGhpcy5mdWxsVmVuZG9yTGlzdCkubWFwKChlPT4rZSkpKSx0aGlzLnZlbmRvcklkcz1uZXcgU2V0KGUpLHRoaXMudmVuZG9yc189ZS5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgbj10aGlzLnZlbmRvcnNfW1N0cmluZyh0KV07cmV0dXJuIG4mJnZvaWQgMD09PW4uZGVsZXRlZERhdGUmJihuLnB1cnBvc2VzLmZvckVhY2goKGU9Pnt0aGlzLmJ5UHVycG9zZVZlbmRvck1hcFtTdHJpbmcoZSldLmNvbnNlbnQuYWRkKHQpfSkpLG4uc3BlY2lhbFB1cnBvc2VzLmZvckVhY2goKGU9Pnt0aGlzLmJ5U3BlY2lhbFB1cnBvc2VWZW5kb3JNYXBbU3RyaW5nKGUpXS5hZGQodCl9KSksbi5sZWdJbnRQdXJwb3Nlcy5mb3JFYWNoKChlPT57dGhpcy5ieVB1cnBvc2VWZW5kb3JNYXBbU3RyaW5nKGUpXS5sZWdJbnQuYWRkKHQpfSkpLG4uZmxleGlibGVQdXJwb3NlcyYmbi5mbGV4aWJsZVB1cnBvc2VzLmZvckVhY2goKGU9Pnt0aGlzLmJ5UHVycG9zZVZlbmRvck1hcFtTdHJpbmcoZSldLmZsZXhpYmxlLmFkZCh0KX0pKSxuLmZlYXR1cmVzLmZvckVhY2goKGU9Pnt0aGlzLmJ5RmVhdHVyZVZlbmRvck1hcFtTdHJpbmcoZSldLmFkZCh0KX0pKSxuLnNwZWNpYWxGZWF0dXJlcy5mb3JFYWNoKChlPT57dGhpcy5ieVNwZWNpYWxGZWF0dXJlVmVuZG9yTWFwW1N0cmluZyhlKV0uYWRkKHQpfSkpLGVbdF09biksZX0pLHt9KX1nZXRGaWx0ZXJlZFZlbmRvcnMoZSx0LG4scyl7Y29uc3Qgcj1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7bGV0IGk7Y29uc3Qgbz17fTtyZXR1cm4gaT1cInB1cnBvc2VcIj09PWUmJm4/dGhpc1tcImJ5XCIrcitcIlZlbmRvck1hcFwiXVtTdHJpbmcodCldW25dOnRoaXNbXCJieVwiKyhzP1wiU3BlY2lhbFwiOlwiXCIpK3IrXCJWZW5kb3JNYXBcIl1bU3RyaW5nKHQpXSxpLmZvckVhY2goKGU9PntvW1N0cmluZyhlKV09dGhpcy52ZW5kb3JzW1N0cmluZyhlKV19KSksb31nZXRWZW5kb3JzV2l0aENvbnNlbnRQdXJwb3NlKGUpe3JldHVybiB0aGlzLmdldEZpbHRlcmVkVmVuZG9ycyhcInB1cnBvc2VcIixlLFwiY29uc2VudFwiKX1nZXRWZW5kb3JzV2l0aExlZ0ludFB1cnBvc2UoZSl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVyZWRWZW5kb3JzKFwicHVycG9zZVwiLGUsXCJsZWdJbnRcIil9Z2V0VmVuZG9yc1dpdGhGbGV4aWJsZVB1cnBvc2UoZSl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVyZWRWZW5kb3JzKFwicHVycG9zZVwiLGUsXCJmbGV4aWJsZVwiKX1nZXRWZW5kb3JzV2l0aFNwZWNpYWxQdXJwb3NlKGUpe3JldHVybiB0aGlzLmdldEZpbHRlcmVkVmVuZG9ycyhcInB1cnBvc2VcIixlLHZvaWQgMCwhMCl9Z2V0VmVuZG9yc1dpdGhGZWF0dXJlKGUpe3JldHVybiB0aGlzLmdldEZpbHRlcmVkVmVuZG9ycyhcImZlYXR1cmVcIixlKX1nZXRWZW5kb3JzV2l0aFNwZWNpYWxGZWF0dXJlKGUpe3JldHVybiB0aGlzLmdldEZpbHRlcmVkVmVuZG9ycyhcImZlYXR1cmVcIixlLHZvaWQgMCwhMCl9Z2V0IHZlbmRvcnMoKXtyZXR1cm4gdGhpcy52ZW5kb3JzX31uYXJyb3dWZW5kb3JzVG8oZSl7dGhpcy5tYXBWZW5kb3JzKGUpfWdldCBpc1JlYWR5KCl7cmV0dXJuIHRoaXMuaXNSZWFkeV99Y2xvbmUoKXtjb25zdCBlPW5ldyBkZSh0aGlzLmdldEpzb24oKSk7cmV0dXJuIHRoaXMubGFuZ18hPT1kZS5ERUZBVUxUX0xBTkdVQUdFJiZlLmNoYW5nZUxhbmd1YWdlKHRoaXMubGFuZ18pLGV9c3RhdGljIGlzSW5zdGFuY2VPZihlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5uYXJyb3dWZW5kb3JzVG99fWNsYXNzIHBlIGV4dGVuZHMgR3tzdGF0aWMgY29uc2VudExhbmd1YWdlcz1kZS5jb25zZW50TGFuZ3VhZ2VzO2lzU2VydmljZVNwZWNpZmljXz0hMTtzdXBwb3J0T09CXz0hMDt1c2VOb25TdGFuZGFyZFN0YWNrc189ITE7cHVycG9zZU9uZVRyZWF0bWVudF89ITE7cHVibGlzaGVyQ291bnRyeUNvZGVfPVwiQUFcIjt2ZXJzaW9uXz0yO2NvbnNlbnRTY3JlZW5fPTA7cG9saWN5VmVyc2lvbl89Mjtjb25zZW50TGFuZ3VhZ2VfPVwiRU5cIjtjbXBJZF89MDtjbXBWZXJzaW9uXz0wO3ZlbmRvckxpc3RWZXJzaW9uXz0wO251bUN1c3RvbVB1cnBvc2VzXz0wO2d2bF87Y3JlYXRlZDtsYXN0VXBkYXRlZDtzcGVjaWFsRmVhdHVyZU9wdGlucz1uZXcgSztwdXJwb3NlQ29uc2VudHM9bmV3IEs7cHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHM9bmV3IEs7cHVibGlzaGVyQ29uc2VudHM9bmV3IEs7cHVibGlzaGVyTGVnaXRpbWF0ZUludGVyZXN0cz1uZXcgSztwdWJsaXNoZXJDdXN0b21Db25zZW50cz1uZXcgSztwdWJsaXNoZXJDdXN0b21MZWdpdGltYXRlSW50ZXJlc3RzPW5ldyBLO2N1c3RvbVB1cnBvc2VzO3ZlbmRvckNvbnNlbnRzPW5ldyBLO3ZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHM9bmV3IEs7dmVuZG9yc0Rpc2Nsb3NlZD1uZXcgSzt2ZW5kb3JzQWxsb3dlZD1uZXcgSztwdWJsaXNoZXJSZXN0cmljdGlvbnM9bmV3IHE7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSxlJiYodGhpcy5ndmw9ZSksdGhpcy51cGRhdGVkKCl9c2V0IGd2bChlKXtkZS5pc0luc3RhbmNlT2YoZSl8fChlPW5ldyBkZShlKSksdGhpcy5ndmxfPWUsdGhpcy5wdWJsaXNoZXJSZXN0cmljdGlvbnMuZ3ZsPWV9Z2V0IGd2bCgpe3JldHVybiB0aGlzLmd2bF99c2V0IGNtcElkKGUpe2lmKGU9TnVtYmVyKGUpLCEoTnVtYmVyLmlzSW50ZWdlcihlKSYmZT4xKSl0aHJvdyBuZXcgSChcImNtcElkXCIsZSk7dGhpcy5jbXBJZF89ZX1nZXQgY21wSWQoKXtyZXR1cm4gdGhpcy5jbXBJZF99c2V0IGNtcFZlcnNpb24oZSl7aWYoZT1OdW1iZXIoZSksIShOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPi0xKSl0aHJvdyBuZXcgSChcImNtcFZlcnNpb25cIixlKTt0aGlzLmNtcFZlcnNpb25fPWV9Z2V0IGNtcFZlcnNpb24oKXtyZXR1cm4gdGhpcy5jbXBWZXJzaW9uX31zZXQgY29uc2VudFNjcmVlbihlKXtpZihlPU51bWJlcihlKSwhKE51bWJlci5pc0ludGVnZXIoZSkmJmU+LTEpKXRocm93IG5ldyBIKFwiY29uc2VudFNjcmVlblwiLGUpO3RoaXMuY29uc2VudFNjcmVlbl89ZX1nZXQgY29uc2VudFNjcmVlbigpe3JldHVybiB0aGlzLmNvbnNlbnRTY3JlZW5ffXNldCBjb25zZW50TGFuZ3VhZ2UoZSl7dGhpcy5jb25zZW50TGFuZ3VhZ2VfPWV9Z2V0IGNvbnNlbnRMYW5ndWFnZSgpe3JldHVybiB0aGlzLmNvbnNlbnRMYW5ndWFnZV99c2V0IHB1Ymxpc2hlckNvdW50cnlDb2RlKGUpe2lmKCEvXihbQS16XSl7Mn0kLy50ZXN0KGUpKXRocm93IG5ldyBIKFwicHVibGlzaGVyQ291bnRyeUNvZGVcIixlKTt0aGlzLnB1Ymxpc2hlckNvdW50cnlDb2RlXz1lLnRvVXBwZXJDYXNlKCl9Z2V0IHB1Ymxpc2hlckNvdW50cnlDb2RlKCl7cmV0dXJuIHRoaXMucHVibGlzaGVyQ291bnRyeUNvZGVffXNldCB2ZW5kb3JMaXN0VmVyc2lvbihlKXtpZigoZT1OdW1iZXIoZSk+PjApPDApdGhyb3cgbmV3IEgoXCJ2ZW5kb3JMaXN0VmVyc2lvblwiLGUpO3RoaXMudmVuZG9yTGlzdFZlcnNpb25fPWV9Z2V0IHZlbmRvckxpc3RWZXJzaW9uKCl7cmV0dXJuIHRoaXMuZ3ZsP3RoaXMuZ3ZsLnZlbmRvckxpc3RWZXJzaW9uOnRoaXMudmVuZG9yTGlzdFZlcnNpb25ffXNldCBwb2xpY3lWZXJzaW9uKGUpe2lmKHRoaXMucG9saWN5VmVyc2lvbl89cGFyc2VJbnQoZSwxMCksdGhpcy5wb2xpY3lWZXJzaW9uXzwwKXRocm93IG5ldyBIKFwicG9saWN5VmVyc2lvblwiLGUpfWdldCBwb2xpY3lWZXJzaW9uKCl7cmV0dXJuIHRoaXMuZ3ZsP3RoaXMuZ3ZsLnRjZlBvbGljeVZlcnNpb246dGhpcy5wb2xpY3lWZXJzaW9uX31zZXQgdmVyc2lvbihlKXt0aGlzLnZlcnNpb25fPXBhcnNlSW50KGUsMTApfWdldCB2ZXJzaW9uKCl7cmV0dXJuIHRoaXMudmVyc2lvbl99c2V0IGlzU2VydmljZVNwZWNpZmljKGUpe3RoaXMuaXNTZXJ2aWNlU3BlY2lmaWNfPWV9Z2V0IGlzU2VydmljZVNwZWNpZmljKCl7cmV0dXJuIHRoaXMuaXNTZXJ2aWNlU3BlY2lmaWNffXNldCB1c2VOb25TdGFuZGFyZFN0YWNrcyhlKXt0aGlzLnVzZU5vblN0YW5kYXJkU3RhY2tzXz1lfWdldCB1c2VOb25TdGFuZGFyZFN0YWNrcygpe3JldHVybiB0aGlzLnVzZU5vblN0YW5kYXJkU3RhY2tzX31zZXQgc3VwcG9ydE9PQihlKXt0aGlzLnN1cHBvcnRPT0JfPWV9Z2V0IHN1cHBvcnRPT0IoKXtyZXR1cm4gdGhpcy5zdXBwb3J0T09CX31zZXQgcHVycG9zZU9uZVRyZWF0bWVudChlKXt0aGlzLnB1cnBvc2VPbmVUcmVhdG1lbnRfPWV9Z2V0IHB1cnBvc2VPbmVUcmVhdG1lbnQoKXtyZXR1cm4gdGhpcy5wdXJwb3NlT25lVHJlYXRtZW50X31zZXRBbGxWZW5kb3JDb25zZW50cygpe3RoaXMudmVuZG9yQ29uc2VudHMuc2V0KHRoaXMuZ3ZsLnZlbmRvcnMpfXVuc2V0QWxsVmVuZG9yQ29uc2VudHMoKXt0aGlzLnZlbmRvckNvbnNlbnRzLmVtcHR5KCl9c2V0QWxsVmVuZG9yc0Rpc2Nsb3NlZCgpe3RoaXMudmVuZG9yc0Rpc2Nsb3NlZC5zZXQodGhpcy5ndmwudmVuZG9ycyl9dW5zZXRBbGxWZW5kb3JzRGlzY2xvc2VkKCl7dGhpcy52ZW5kb3JzRGlzY2xvc2VkLmVtcHR5KCl9c2V0QWxsVmVuZG9yc0FsbG93ZWQoKXt0aGlzLnZlbmRvcnNBbGxvd2VkLnNldCh0aGlzLmd2bC52ZW5kb3JzKX11bnNldEFsbFZlbmRvcnNBbGxvd2VkKCl7dGhpcy52ZW5kb3JzQWxsb3dlZC5lbXB0eSgpfXNldEFsbFZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHMoKXt0aGlzLnZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHMuc2V0KHRoaXMuZ3ZsLnZlbmRvcnMpfXVuc2V0QWxsVmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cygpe3RoaXMudmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cy5lbXB0eSgpfXNldEFsbFB1cnBvc2VDb25zZW50cygpe3RoaXMucHVycG9zZUNvbnNlbnRzLnNldCh0aGlzLmd2bC5wdXJwb3Nlcyl9dW5zZXRBbGxQdXJwb3NlQ29uc2VudHMoKXt0aGlzLnB1cnBvc2VDb25zZW50cy5lbXB0eSgpfXNldEFsbFB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzKCl7dGhpcy5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cy5zZXQodGhpcy5ndmwucHVycG9zZXMpfXVuc2V0QWxsUHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHMoKXt0aGlzLnB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzLmVtcHR5KCl9c2V0QWxsU3BlY2lhbEZlYXR1cmVPcHRpbnMoKXt0aGlzLnNwZWNpYWxGZWF0dXJlT3B0aW5zLnNldCh0aGlzLmd2bC5zcGVjaWFsRmVhdHVyZXMpfXVuc2V0QWxsU3BlY2lhbEZlYXR1cmVPcHRpbnMoKXt0aGlzLnNwZWNpYWxGZWF0dXJlT3B0aW5zLmVtcHR5KCl9c2V0QWxsKCl7dGhpcy5zZXRBbGxWZW5kb3JDb25zZW50cygpLHRoaXMuc2V0QWxsUHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHMoKSx0aGlzLnNldEFsbFNwZWNpYWxGZWF0dXJlT3B0aW5zKCksdGhpcy5zZXRBbGxQdXJwb3NlQ29uc2VudHMoKSx0aGlzLnNldEFsbFZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHMoKX11bnNldEFsbCgpe3RoaXMudW5zZXRBbGxWZW5kb3JDb25zZW50cygpLHRoaXMudW5zZXRBbGxQdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cygpLHRoaXMudW5zZXRBbGxTcGVjaWFsRmVhdHVyZU9wdGlucygpLHRoaXMudW5zZXRBbGxQdXJwb3NlQ29uc2VudHMoKSx0aGlzLnVuc2V0QWxsVmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cygpfWdldCBudW1DdXN0b21QdXJwb3Nlcygpe2xldCBlPXRoaXMubnVtQ3VzdG9tUHVycG9zZXNfO2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0aGlzLmN1c3RvbVB1cnBvc2VzKXtjb25zdCB0PU9iamVjdC5rZXlzKHRoaXMuY3VzdG9tUHVycG9zZXMpLnNvcnQoKChlLHQpPT5OdW1iZXIoZSktTnVtYmVyKHQpKSk7ZT1wYXJzZUludCh0LnBvcCgpLDEwKX1yZXR1cm4gZX1zZXQgbnVtQ3VzdG9tUHVycG9zZXMoZSl7aWYodGhpcy5udW1DdXN0b21QdXJwb3Nlc189cGFyc2VJbnQoZSwxMCksdGhpcy5udW1DdXN0b21QdXJwb3Nlc188MCl0aHJvdyBuZXcgSChcIm51bUN1c3RvbVB1cnBvc2VzXCIsZSl9dXBkYXRlZCgpe2NvbnN0IGU9bmV3IERhdGUsdD1uZXcgRGF0ZShEYXRlLlVUQyhlLmdldFVUQ0Z1bGxZZWFyKCksZS5nZXRVVENNb250aCgpLGUuZ2V0VVRDRGF0ZSgpKSk7dGhpcy5jcmVhdGVkPXQsdGhpcy5sYXN0VXBkYXRlZD10fX1jbGFzcyBoZXtzdGF0aWMgZW5jb2RlKGUsdCl7bGV0IG4scz1cIlwiO3JldHVybiBlPWxlLnByb2Nlc3MoZSx0KSxuPUFycmF5LmlzQXJyYXkodD8uc2VnbWVudHMpP3Quc2VnbWVudHM6bmV3IGFlKGUsdClbXCJcIitlLnZlcnNpb25dLG4uZm9yRWFjaCgoKHQscik9PntsZXQgaT1cIlwiO3I8bi5sZW5ndGgtMSYmKGk9XCIuXCIpLHMrPWNlLmVuY29kZShlLHQpK2l9KSksc31zdGF0aWMgZGVjb2RlKGUsdCl7Y29uc3Qgbj1lLnNwbGl0KFwiLlwiKSxzPW4ubGVuZ3RoO3R8fCh0PW5ldyBwZSk7Zm9yKGxldCBlPTA7ZTxzO2UrKyl7Y29uc3Qgcz1uW2VdLHI9ai5kZWNvZGUocy5jaGFyQXQoMCkpLnN1YnN0cigwLFkuc2VnbWVudFR5cGUpLGk9US5JRF9UT19LRVlbWi5kZWNvZGUocixZLnNlZ21lbnRUeXBlKS50b1N0cmluZygpXTtjZS5kZWNvZGUocyx0LGkpfXJldHVybiB0fX1mdW5jdGlvbiBnZSgpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLChmdW5jdGlvbihlKXtyZXR1cm5bMixuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dmFyIHQsbjt0cnl7dmFyIHM9KG51bGw9PT0odD13aW5kb3cuX19idCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQudGNmKXx8KG51bGw9PT0obj11Ll9fYnQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnRjZik7aWYoKG51bGw9PXM/dm9pZCAwOnMuaGFzT3duUHJvcGVydHkoXCJHRFBSQXBwbGllc1wiKSkmJihudWxsPT1zP3ZvaWQgMDpzLmhhc093blByb3BlcnR5KFwiVENGU3RyaW5nXCIpKSl7dmFyIHI9aGUuZGVjb2RlKHMuVENGU3RyaW5nKSxpPUFycmF5LmZyb20oci5wdXJwb3NlQ29uc2VudHMpLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHM9dFsxXTtyZXR1cm4gZVtuXT1zLGV9KSx7fSk7ZSh7Z2RwckFwcGxpZXM6cy5HRFBSQXBwbGllcyx0Y1N0cmluZzpzLlRDRlN0cmluZyxwdXJwb3NlOntjb25zZW50czppfX0pfXZhciBvPXdpbmRvdy5fX3RjZmFwaXx8dS5fX3RjZmFwaTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBvJiZvKFwiYWRkRXZlbnRMaXN0ZW5lclwiLDIsKGZ1bmN0aW9uKHQsbil7IW58fFwidGNsb2FkZWRcIiE9PShudWxsPT10P3ZvaWQgMDp0LmV2ZW50U3RhdHVzKSYmXCJ1c2VyYWN0aW9uY29tcGxldGVcIiE9PShudWxsPT10P3ZvaWQgMDp0LmV2ZW50U3RhdHVzKXx8ZSh0KSxlKG51bGwpfSkpLGUobnVsbCl9Y2F0Y2godCl7ZShudWxsKX19KSldfSkpfSkpfWZ1bmN0aW9uIHZlKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsKGZ1bmN0aW9uKGUpe3JldHVyblsyLGdlKCkudGhlbigoZnVuY3Rpb24oZSl7aWYoIWV8fCExPT09ZS5nZHByQXBwbGllcylyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiEoZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciB0PSExO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXtyZXR1cm4gdD10fHxlW25dfSkpLCF0fShudWxsPT09KHQ9ZS5wdXJwb3NlKXx8dm9pZCAwPT09dD92b2lkIDA6dC5jb25zZW50cyl8fChuPWUucHVycG9zZSwhKG1lKG4sMikmJm1lKG4sNykmJm1lKG4sOSkmJm1lKG4sMTApKSkpO3ZhciBufShlKX1jYXRjaChlKXtyZXR1cm4gbnVsbH19KSldfSkpfSkpfWZ1bmN0aW9uIG1lKGUsdCl7dmFyIG4scztyZXR1cm4obnVsbD09PShuPW51bGw9PWU/dm9pZCAwOmUuY29uc2VudHMpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuW3RdKSYmKG51bGw9PT0ocz1udWxsPT1lP3ZvaWQgMDplLmxlZ2l0aW1hdGVJbnRlcmVzdHMpfHx2b2lkIDA9PT1zP3ZvaWQgMDpzW3RdKX1mdW5jdGlvbiBmZSgpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7c3dpdGNoKGZ1bmN0aW9uKCl7dmFyIGU9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7aWYoL2Nocm9tZXxjaHJvbWl1bS9pLnRlc3QoZSkpcmV0dXJuIGJlLkNIUk9NRTtpZigvZmlyZWZveHxpY2V3ZWFzZWx8Znhpb3MvaS50ZXN0KGUpKXJldHVybiBiZS5GSVJFRk9YO2lmKC9tc2llfHRyaWRlbnQvaS50ZXN0KGUpKXJldHVybiBiZS5JRTtpZigvXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KGUpKXJldHVybiBiZS5TQUZBUkk7aWYod2luZG93LmNocm9tZSlyZXR1cm4gYmUuQ0hST01FO3JldHVybn0oKSl7Y2FzZSBiZS5TQUZBUkk6dm9pZCAwIT09d2luZG93Lm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz9mdW5jdGlvbigpe3ZhciB0PVN0cmluZyhNYXRoLnJhbmRvbSgpKTt0cnl7d2luZG93LmluZGV4ZWREQi5vcGVuKHQsMSkub251cGdyYWRlbmVlZGVkPWZ1bmN0aW9uKG4pe3ZhciBzLHIsaT1udWxsPT09KHM9bi50YXJnZXQpfHx2b2lkIDA9PT1zP3ZvaWQgMDpzLnJlc3VsdDt0cnl7aS5jcmVhdGVPYmplY3RTdG9yZShcInRlc3RcIix7YXV0b0luY3JlbWVudDohMH0pLnB1dChuZXcgQmxvYiksZSghMSl9Y2F0Y2godCl7dmFyIG89dDtpZih0IGluc3RhbmNlb2YgRXJyb3ImJihvPW51bGwhPT0ocj10Lm1lc3NhZ2UpJiZ2b2lkIDAhPT1yP3I6dCksXCJzdHJpbmdcIiE9dHlwZW9mIG8pcmV0dXJuIGUoITEpO3ZhciBhPS9CbG9iVVJMcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQvLnRlc3Qobyk7ZShhKX1maW5hbGx5e2kuY2xvc2UoKSx3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKHQpfX19Y2F0Y2godCl7cmV0dXJuIGUoITEpfX0oKTpmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5vcGVuRGF0YWJhc2Usbj13aW5kb3cubG9jYWxTdG9yYWdlO3RyeXt0KG51bGwsbnVsbCxudWxsLG51bGwpfWNhdGNoKHQpe3JldHVybiBlKCEwKX10cnl7bi5zZXRJdGVtKFwidGVzdFwiLFwiMVwiKSxuLnJlbW92ZUl0ZW0oXCJ0ZXN0XCIpfWNhdGNoKHQpe3JldHVybiBlKCEwKX1lKCExKX0oKTticmVhaztjYXNlIGJlLkNIUk9NRTp2b2lkIDAhPT13aW5kb3cuUHJvbWlzZSYmdm9pZCAwIT09d2luZG93LlByb21pc2UuYWxsU2V0dGxlZD9mdW5jdGlvbigpe3RyeXt3aW5kb3cubmF2aWdhdG9yLndlYmtpdFRlbXBvcmFyeVN0b3JhZ2UucXVlcnlVc2FnZUFuZFF1b3RhKChmdW5jdGlvbih0LG4pe3ZhciBzPU1hdGgucm91bmQobi8xMDQ4NTc2KSxyPTIqTWF0aC5yb3VuZChmdW5jdGlvbigpe3ZhciBlLHQ7cmV0dXJuKG51bGw9PT0odD1udWxsPT09KGU9d2luZG93LnBlcmZvcm1hbmNlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tZW1vcnkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmpzSGVhcFNpemVMaW1pdCl8fDEwNzM3NDE4MjR9KCkvMTA0ODU3Nik7ZShzPHIpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIGUobnVsbCl9KSl9Y2F0Y2godCl7cmV0dXJuIGUobnVsbCl9fSgpOmZ1bmN0aW9uKCl7dHJ5eygwLHdpbmRvdy53ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbSkoMCwxLChmdW5jdGlvbigpe3JldHVybiBlKCExKX0pLChmdW5jdGlvbigpe3JldHVybiBlKCEwKX0pKX1jYXRjaCh0KXtyZXR1cm4gZShudWxsKX19KCk7YnJlYWs7Y2FzZSBiZS5GSVJFRk9YOmUodm9pZCAwPT09d2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyKTticmVhaztjYXNlIGJlLklFOmUodm9pZCAwPT09d2luZG93LmluZGV4ZWREQik7YnJlYWs7ZGVmYXVsdDplKG51bGwpfX0pKX12YXIgYmU9e1NBRkFSSTpcInNhZmFyaVwiLENIUk9NRTpcImNocm9tZVwiLEZJUkVGT1g6XCJmaXJlZm94XCIsSUU6XCJpZVwifTt2YXIgd2UseWUsX2U9XCJ3XCIsU2U9XCJvXCIsSWU9XCJyXCIsRWU9XCJhYVwiLENlPVwidGlkXCIsTGU9XCJjdlwiLEFlPVwiYnZcIixPZT1cInJ0XCIsUmU9XCJ2clwiLERlPVwic2lkXCIsVGU9XCJjaGVja3N1bVwiLFZlPVwiY1wiLFBlPVwicG1cIixrZT1cIndpZGdldFwiLHhlPVwic3BhX3ZpZXdfY2hhbmdlXCI7ZnVuY3Rpb24gTmUoZSx0KXt2b2lkIDA9PT10JiYodD17fSksZXx8KGU9XCIvXCIpLGUuc3RhcnRzV2l0aChcIi9cIil8fChlPVwiL1wiK2UpLHQudXBhcGk9ITA7dmFyIG49XCJcIixzPVwiP1wiO2Zvcih2YXIgciBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKXt2YXIgaT10W3JdO24rPVwiXCIrcytyK1wiPVwiK2VuY29kZVVSSUNvbXBvbmVudChpKSxzPVwiJlwifXJldHVyblwiaHR0cHM6Ly9cIitTK2Urbn1mdW5jdGlvbiBVZShlLHMscixpLG8pe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxhLGMsbDtyZXR1cm4gbih0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOnJldHVybih0PXt9KVtDZV09VC50cmFjZUlELHRbX2VdPWUuc2l0ZUluZm8ud2Vic2l0ZUlELHRbU2VdPXksdFtMZV09SSx0W2tlXT1lLnNpdGVJbmZvLndpZGdldCxlLmNoZWNrc3VtJiYodFtUZV09ZS5jaGVja3N1bSksaSYmKHRbQWVdPWkpLHRbSWVdPXMsdFtSZV09d2luZG93LmlubmVyV2lkdGgrXCJ4XCIrd2luZG93LmlubmVySGVpZ2h0LHQucGFnZVVSTD1oLmhyZWYsdFtEZV09VC5zZXNzaW9uSUQscyYmKHRbT2VdPTAsdFtFZV09ciksWzQsUHJvbWlzZS5hbGwoW3ZlKCksZmUoKV0pXTtjYXNlIDE6cmV0dXJuIGE9bi5zZW50KCksYz1hWzBdLGw9YVsxXSxudWxsIT09YyYmKHRbVmVdPWMpLG51bGwhPT1sJiYodFtQZV09bCksbyYmKHRbeGVdPW8pLFs0LCh1PU5lKFwiL3B2XCIsdCksbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsdCl7dmFyIG49bmV3IHdpbmRvdy5YTUxIdHRwUmVxdWVzdDtuLm9wZW4oXCJHRVRcIix1LCEwKSxuLm9uZXJyb3I9ZnVuY3Rpb24oKXtjb25zb2xlLmxvZyhcIkVycm9yIGluIGdldCByZXF1ZXN0IGZvciBcIit1KSx0KCl9LG4ub25sb2FkPWZ1bmN0aW9uKCl7ZShuLnJlc3BvbnNlVGV4dCl9LG4uc2VuZCgpfSkpKV07Y2FzZSAyOnJldHVybiBuLnNlbnQoKSxbMl19dmFyIHV9KSl9KSl9ZnVuY3Rpb24gRmUoZSxzLHIpe3JldHVybiB2b2lkIDA9PT1zJiYocz17fSksdm9pZCAwPT09ciYmKHI9e3NldmVyaXR5OjF9KSx0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxpLG8sYTtyZXR1cm4gbih0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFUoKV07Y2FzZSAxOnJldHVybiB0PW4uc2VudCgpLChhPXt9KVtDZV09VC50cmFjZUlELGFbTGVdPUksYVtEZV09VC5zZXNzaW9uSUQsYS51cGFwaT0hMCxpPWEsbz17ZXZlbnQ6ZSxtZXRhOnMsb3JnSUQ6eSxzZXZlcml0eTpyLnNldmVyaXR5LHdlYnNpdGVJRDp0LnNpdGVJbmZvLndlYnNpdGVJRH0sWzIsZmV0Y2goTmUoXCIvbG9nXCIsaSkse21ldGhvZDpcIlBPU1RcIixib2R5OkpTT04uc3RyaW5naWZ5KG8pfSldfX0pKX0pKX12YXIgTWU9RGF0ZS5ub3coKSxCZT13aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcInJlc291cmNlXCIpLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWUuaW5jbHVkZXMoZG9jdW1lbnQuY3VycmVudFNjcmlwdC5nZXRBdHRyaWJ1dGUoXCJzcmNcIikpfSkpLEhlPU1hdGgucm91bmQoRGF0ZS5ub3coKS0obnVsbCE9PSh5ZT1udWxsIT09KHdlPW51bGw9PUJlP3ZvaWQgMDpCZS5zdGFydFRpbWUpJiZ2b2lkIDAhPT13ZT93ZTowKyhudWxsPT1CZT92b2lkIDA6QmUuZHVyYXRpb24pKSYmdm9pZCAwIT09eWU/eWU6MCkpLGplPUJlJiZiKDEpLEdlPXtzaG91bGRMb2c6amUsdGFnU2NyaXB0TG9hZFRpbWVzdGFtcDpNZSxuYXZpZ2F0aW9uU3RhcnRUaW1lc3RhbXA6SGV9O2Z1bmN0aW9uIFdlKHQpe3ZhciBuPURhdGUubm93KCk7cmV0dXJuIGZ1bmN0aW9uKHMpe2lmKGplKXt2YXIgcj1EYXRlLm5vdygpLGk9ZShlKHt9LHMpLHtldmVudER1cmF0aW9uTVM6ci1uLHRpbWVzdGFtcDpyfSk7RmUodCxpLHtzZXZlcml0eToxfSl9fX12YXIgemUsJGU9NTtmdW5jdGlvbiBKZShlKXt2YXIgdD1XZShcInRpbWluZy5jb3VudHJ5RGV0ZWN0aW9uXCIpLG49dS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ0VXNlckNvdW50cnlFeHBpcnlcIik7IW58fHBhcnNlSW50KG4pPD1EYXRlLm5vdygpP2ZldGNoKFwiaHR0cHM6Ly9hcGkuYnRsb2FkZXIuY29tL2NvdW50cnk/bz1cIitlKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KSkudGhlbigoZnVuY3Rpb24oZSl7dmFyIG49ZS5jb3VudHJ5LHM9ZS5pc1Jlc3RyaWN0ZWQ7dS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImJ0VXNlckNvdW50cnlcIixuKSx1LmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYnRVc2VyQ291bnRyeUV4cGlyeVwiLFN0cmluZyhuZXcgRGF0ZShEYXRlLm5vdygpKzZlNCokZSkuZ2V0VGltZSgpKSksdS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImJ0VXNlcklzRnJvbVJlc3RyaWN0ZWRDb3VudHJ5XCIscyksdCh7Y2FjaGVkOiExfSl9KSk6dCh7Y2FjaGVkOiEwfSl9ZnVuY3Rpb24gcWUoZSl7aWYoIWUpcmV0dXJuIDA7dmFyIHQ9MDtmb3IodmFyIG4gaW4gZSlpZihlLmhhc093blByb3BlcnR5KG4pKXt2YXIgcz1lW25dLm1heDtzPnQmJih0PXMpfXJldHVybiB0LzEwMH1mdW5jdGlvbiBRZShlLHQpe2lmKHZvaWQgMD09PXQmJih0PXt9KSwhZSlyZXR1cm4gbnVsbDt2YXIgbj0wLHM9MSxyPXFlKHQpO3JldHVybiAxPT09cnx8KE9iamVjdC52YWx1ZXModCkubGVuZ3RoJiZyPDEmJihuPXIscz0xLXIpLE9iamVjdC5rZXlzKGUpLnNvcnQoKS5mb3JFYWNoKChmdW5jdGlvbihyKXt2YXIgaT1lW3JdO3Rbcl09e21pbjpNYXRoLnRydW5jKDEwMCpuKSxtYXg6TWF0aC50cnVuYygxMDAqKG4raSpzKSl9LG4rPWkqc30pKSksdH1mdW5jdGlvbiBLZSgpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSx0LHMscixpLG8sYSxjLGwsZCxwO3JldHVybiBuKHRoaXMsKGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9XCJsYXRlc3RcIixbNCxVKCldO2Nhc2UgMTpyZXR1cm4gdD1uLnNlbnQoKSxzPXQuc2l0ZUluZm8scj10LmJ1bmRsZURhdGEsaT1cIkJUX0JVTkRMRV9WRVJTSU9OX1wiK3Mud2Vic2l0ZUlELG89XCJCVF9ESUdFU1RfVkVSU0lPTl9cIitzLndlYnNpdGVJRCwhemVbcy53ZWJzaXRlSURdJiYobnVsbD09cj92b2lkIDA6ci5idW5kbGVzKSYmKHplW3Mud2Vic2l0ZUlEXT1yKSxhPWZ1bmN0aW9uKGUsdCxuKXtpZih2b2lkIDA9PT1uJiYobj1cImxhdGVzdFwiKSwhZSlyZXR1cm4gbnVsbDtpZighdHx8XCJvYmplY3RcIiE9dHlwZW9mIHR8fE9iamVjdC5rZXlzKHQpLmxlbmd0aDw9MClyZXR1cm4gbnVsbDt2YXIgcz17fSxyPXRbZV0saT10WzBdLG89dC5nbG9iYWw7aWYoKG51bGw9PXI/dm9pZCAwOnIuYnVuZGxlcykmJihzPVFlKHIuYnVuZGxlcykpLChudWxsPT1pP3ZvaWQgMDppLmJ1bmRsZXMpJiYocz1RZShpLmJ1bmRsZXMscykpLChudWxsPT1vP3ZvaWQgMDpvLmJ1bmRsZXMpJiYocz1RZShvLmJ1bmRsZXMscykpLE9iamVjdC5rZXlzKHMpLmxlbmd0aDw9MClyZXR1cm4gbnVsbDt2YXIgYT1xZShzKTtyZXR1cm4gYTwxJiYoc1tuXT17bWluOk1hdGgudHJ1bmMoMTAwKmEpLG1heDoxMDB9KSxzfShzLndlYnNpdGVJRCx6ZSxlKSx3aW5kb3cuX19idF90YWdfZCYmKHdpbmRvdy5fX2J0X3RhZ19kLnByb2JhYmlsaXRpZXM9YSksIWF8fE9iamVjdC5rZXlzKGEpLmxlbmd0aDw9MD9bMix2b2lkIDBdOihjPXplW3Mud2Vic2l0ZUlEXXx8emVbMF18fHplLmdsb2JhbCk/KGw9Yy5kaWdlc3QsdS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShvKSE9U3RyaW5nKGwpJiYodS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShvLFN0cmluZyhsKSksdS5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShpKSksKGQ9dS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShpKSl8fChwPWYoMTAwKSxkPWZ1bmN0aW9uKGUsdCl7aWYoXCJudW1iZXJcIiE9dHlwZW9mIGV8fGU8MHx8ZT4xMDApcmV0dXJuIG51bGw7aWYoIXR8fFwib2JqZWN0XCIhPXR5cGVvZiB0KXJldHVybiBudWxsO2Zvcih2YXIgbj1PYmplY3Qua2V5cyh0KSxzPTA7czxuLmxlbmd0aDtzKyspe3ZhciByPW5bc10saT10W3JdO2lmKGkubWluPD1lJiZpLm1heD5lKXJldHVybiByfXJldHVybiBudWxsfShwLGEpfHxlLHUubG9jYWxTdG9yYWdlLnNldEl0ZW0oaSxkKSksWzIsZD09PWU/dm9pZCAwOmRdKTpbMl19fSkpfSkpfXplPXtcImdsb2JhbFwiOntcImRpZ2VzdFwiOjY1NDM4Njg5MzgxNTgwODAsXCJidW5kbGVzXCI6e1wiNTExMzg2MzA2NjYxNTgwOFwiOjAuMSxcIjU5MzQ3Mzk0MjkyNjEzMTJcIjowLjF9fX07dmFyIFllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQsbixzLHIsaSl7dm9pZCAwPT09ZSYmKGU9e2VuYWJsZWQ6ITEsc2NyaXB0X2xvYWRpbmdfbW9kZTpcImluamVjdF9mcm9tX3RhZ19zY3JpcHRcIn0pLHRoaXMucmxpbmtTZXR0aW5ncz1lLHRoaXMuc2NyaXB0U3JjPXQsdGhpcy5yZWNvdmVyeVNjcmlwdFNyYz1uLHRoaXMuc2hvdWxkTG9hZFJlY292ZXJ5U2NyaXB0PXMsdGhpcy5pbnNlcnRTY3JpcHQ9cix0aGlzLmlzQUFFbmFibGVkPWl9cmV0dXJuIHQucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuc2hvdWxkTG9hZFJMaW5rU2NyaXB0KCkpe3RoaXMuc2hvdWxkTG9hZFJlY292ZXJ5U2NyaXB0RnJvbVJMaW5rKCkmJnRoaXMuc2V0UmVjb3ZlcnlTY3JpcHRMb2FkRnVuY3Rpb24oKSx0aGlzLmNhY2hlUkxpbmtTZXR0aW5ncygpLHRoaXMuaW5zZXJ0U2NyaXB0KHRoaXMuc2NyaXB0U3JjLFwibW9kdWxlXCIpO3RyeXtpZihiKDEpKXtGZShcInJsaW5rX3NjcmlwdF9pbmplY3RpbmdcIik7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwic2NyaXB0W3NyYz0nXCIrdC5zY3JpcHRTcmMrXCInXVwiKT9GZShcInJsaW5rX3NjcmlwdF9pbmplY3RlZFwiKTpGZShcInJsaW5rX3NjcmlwdF9ub3RfaW5qZWN0ZWRcIixlKHt9LHdpbmRvdy5fX2J0X2ludHJubC5hYURldGVjdGlvblJlc3VsdHMpKSx3aW5kb3cuX19idF9ybGlua19hbHJlYWR5X2ludm9rZWQmJkZlKFwicmxpbmtfc2NyaXB0X2xvYWRlZFwiKX0pLDFlMyl9fWNhdGNoKGUpe313aW5kb3cuX19idF9ybGlua19sb2FkZWRfZnJvbV90YWc9ITB9fSx0LnByb3RvdHlwZS5zaG91bGRMb2FkUmVjb3ZlcnlTY3JpcHRGcm9tUkxpbms9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaG91bGRMb2FkUkxpbmtTY3JpcHQoKSYmdGhpcy5zaG91bGRMb2FkUmVjb3ZlcnlTY3JpcHQmJnRoaXMuaXNBQUVuYWJsZWQmJnRoaXMucmxpbmtTZXR0aW5ncy5hbGxvd19yZW5kZXJfdG9fYWFfdXNlcnN9LHQucHJvdG90eXBlLnNob3VsZExvYWRSTGlua1NjcmlwdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJsaW5rU2V0dGluZ3MuZW5hYmxlZCYmXCJpbmplY3RfZnJvbV90YWdfc2NyaXB0XCI9PT10aGlzLnJsaW5rU2V0dGluZ3Muc2NyaXB0X2xvYWRpbmdfbW9kZX0sdC5wcm90b3R5cGUuc2V0UmVjb3ZlcnlTY3JpcHRMb2FkRnVuY3Rpb249ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3dpbmRvdy5fX2J0X3JlY292ZXJ5PWZ1bmN0aW9uKCl7cmV0dXJuIGUuaW5zZXJ0U2NyaXB0KGUucmVjb3ZlcnlTY3JpcHRTcmMpfX0sdC5wcm90b3R5cGUuY2FjaGVSTGlua1NldHRpbmdzPWZ1bmN0aW9uKCl7d2luZG93Ll9fYnRfdGFnX2FtPXtzZXR0aW5nczp0aGlzLnJsaW5rU2V0dGluZ3N9fSx0fSgpLFhlPVwiQlRfQU1fU09GVFdBTExfUkVOREVSRURcIixaZT1cIkJUX0FNX1NPRlRXQUxMX1JFQ09WRVJFRFwiO2Z1bmN0aW9uIGV0KCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBlO3JldHVybiBuKHRoaXMsKGZ1bmN0aW9uKHQpe3JldHVybihlPUJvb2xlYW4obG9jYWxTdG9yYWdlLmdldEl0ZW0oWGUpKSk/WzIsZV06WzIsdHQoKS50aGVuKChmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFhlKSl9KSldfSkpfSkpfWZ1bmN0aW9uIHR0KCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBlO3JldHVybiBuKHRoaXMsKGZ1bmN0aW9uKHQpe3JldHVybiBPLmlnbm9yZV9jYWNoZT9bMl06KGU9Ty5idF9lbnZ8fFwicHJvZFwiLFsyLGZldGNoKFwiaHR0cHM6Ly9cIitTK1wiL213L3N0YXRlP2J0X2Vudj1cIitlKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KSkudGhlbigoZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8e30sbj10LnJlbmRlckRhdGUscz10LnJlY292ZXJ5VHlwZTt3aW5kb3cuX19idF9pbnRybmwucmVjb3ZlcnlVc2VyQXR0cj13aW5kb3cuX19idF9pbnRybmwucmVjb3ZlcnlVc2VyQXR0cnx8e213UmVuZGVyZWQ6ITEscmVjb3ZlcnlUeXBlOnZvaWQgMH0sbiYmKGxvY2FsU3RvcmFnZS5zZXRJdGVtKFhlLG5ldyBEYXRlKG4pLnRvVVRDU3RyaW5nKCkpLHdpbmRvdy5fX2J0X2ludHJubC5yZWNvdmVyeVVzZXJBdHRyLm13UmVuZGVyZWQ9ITApLHMmJihsb2NhbFN0b3JhZ2Uuc2V0SXRlbShaZSxzKSx3aW5kb3cuX19idF9pbnRybmwucmVjb3ZlcnlVc2VyQXR0ci5yZWNvdmVyeVR5cGU9cyl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9KSldKX0pKX0pKX1mdW5jdGlvbiBudCgpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLChmdW5jdGlvbihlKXtyZXR1cm5bMixuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dmFyIHQ9V2UoXCJ0aW1pbmcuQUJEZXRlY3Rpb25cIiksbj1cIkJUX0FBX0RFVEVDVElPTlwiLHM9SlNPTi5wYXJzZSh1LmxvY2FsU3RvcmFnZS5nZXRJdGVtKG4pKTtzJiZzLmFiJiZzLmFjY2VwdGFibGUmJih0KHtjYWNoZWQ6ITB9KSxlKHMpKSxQcm9taXNlLmFsbChbYSgpLGMoKV0pLnRoZW4oKGZ1bmN0aW9uKHIpe3ZhciBpPXthYjpyWzBdLGFjY2VwdGFibGU6clsxXX07dS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShuLEpTT04uc3RyaW5naWZ5KGkpKSx3aW5kb3cuX19idF9pbnRybmwuYWFEZXRlY3Rpb25SZXN1bHRzPWksIShzJiZzLmFiJiZzLmFjY2VwdGFibGUpfHxpLmFiJiZpLmFjY2VwdGFibGV8fCh1Ll9fYnRfaW50cm5sLnN0b3BGbGFnPSEwKSx0KHtjYWNoZWQ6ITF9KSxlKGkpfSkpfSkpXX0pKX0pKX1mdW5jdGlvbiBzdChlLHQpe2lmKHZvaWQgMD09PXQmJih0PVwidGV4dC9qYXZhc2NyaXB0XCIpLGUpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7bi50eXBlPXQsbi5hc3luYz0hMCxuLnNyYz1lLG4uY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIiwod2luZG93LmRvY3VtZW50LmhlYWR8fHdpbmRvdy5kb2N1bWVudC5ib2R5fHx3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChuKX19ZnVuY3Rpb24gcnQoZSl7dmFyIHQ9ZS5ldmVudE5hbWUsbj1lLnBheWxvYWR8fHtidWJibGVzOiExLGNhbmNlbGFibGU6ITEsZGV0YWlsOnZvaWQgMH07aWYod2luZG93LkN1c3RvbUV2ZW50KXRyeXt2YXIgcz1uZXcgd2luZG93LkN1c3RvbUV2ZW50KHQsbik7cmV0dXJuIHZvaWQgd2luZG93LmRpc3BhdGNoRXZlbnQocyl9Y2F0Y2goZSl7fXZhciByPWRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiQ3VzdG9tRXZlbnRcIik7ci5pbml0Q3VzdG9tRXZlbnQodCxuLmJ1YmJsZXMsbi5jYW5jZWxhYmxlLG4uZGV0YWlsKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChyKX11Ll9fYnRfaW50cm5sPXUuX19idF9pbnRybmx8fHt0cmFjZUlEOlQudHJhY2VJRCxwdlNlbnQ6ZyhcIkJUX3B2U2VudFwiKSxzdG9wRmxhZzohMSx0aW1pbmdzOkdlLGFhRGV0ZWN0aW9uUmVzdWx0czpudWxsLHJlY292ZXJ5VXNlckF0dHI6bnVsbCxwYWdlVVJMOmgudG9TdHJpbmcoKX0sd2luZG93Ll9fYnRfaW50cm5sPXUuX19idF9pbnRybmw7dHJ5eyFmdW5jdGlvbigpe3ZhciBlO3QodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciB0LHMscixpLG8sYSxjLGwsZCxoLGc7cmV0dXJuIG4odGhpcywoZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gamUmJihGZShcInRpbWluZy5uYXZpZ2F0aW9uU3RhcnRcIix7dGltZXN0YW1wOkhlfSx7c2V2ZXJpdHk6MX0pLEZlKFwidGltaW5nLnRhZ1NjcmlwdExvYWRlZFwiLHtldmVudER1cmF0aW9uTVM6TWF0aC5yb3VuZChCZS5kdXJhdGlvbiksdGltZXN0YW1wOk1lfSx7c2V2ZXJpdHk6MX0pKSxbNCxQcm9taXNlLmFsbChbbnQoKSxldCgpLFUoKV0pXTtjYXNlIDE6cmV0dXJuIHQ9bi5zZW50KCkscz10WzBdLHRbMV0scj10WzJdLGk9ci5zaXRlSW5mbyxvPXIuY2hlY2tzdW0sYT1yLnJsU2V0dGluZ3MscnQoe2V2ZW50TmFtZTpcIkJUQUFEZXRlY3Rpb25cIixwYXlsb2FkOntkZXRhaWw6c319KSx3aW5kb3cuX19idF9hbHJlYWR5X2ludm9rZWR8fCFpLndlYnNpdGVJRD9bMl06KHdpbmRvdy5fX2J0X2FscmVhZHlfaW52b2tlZD0hMCxKZSh5KSxzLmFiP3dpbmRvdy5kaXNhYmxlVXBvbml0P1szLDNdOihmdW5jdGlvbihlKXsodS5sb2NhdGlvbi5ocmVmLmluZGV4T2YoXCJidF9kZWJ1Zz10cnVlXCIpPj0wfHxcInRydWVcIj09dS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ0X2RlYnVnXCIpKSYmKGUuY29udGVudEVuYWJsZWQ9XCJ0cnVlXCI9PXUubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmb3JjZUNvbnRlbnRcIil8fGUuY29udGVudEVuYWJsZWQsZS5tb2JpbGVDb250ZW50RW5hYmxlZD1cInRydWVcIj09dS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZvcmNlTW9iaWxlQ29udGVudFwiKXx8ZS5tb2JpbGVDb250ZW50RW5hYmxlZCl9KGkpLGkuY29udGVudEVuYWJsZWQmJighKGQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygd2luZG93LmJ0X2lzTW9iaWxlQ3VzdG9tP3dpbmRvdy5idF9pc01vYmlsZUN1c3RvbSgpOi8oYW5kcm9pZHxiYlxcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXFwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm98YW5kcm9pZHxpcGFkfHBsYXlib29rfHNpbGsvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnR8fG5hdmlnYXRvci52ZW5kb3J8fHdpbmRvdy5vcGVyYSl8fC8xMjA3fDYzMTB8NjU5MHwzZ3NvfDR0aHB8NTBbMS02XWl8Nzcwc3w4MDJzfGEgd2F8YWJhY3xhYyhlcnxvb3xzXFwtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1xcLShufHUpfGM1NVxcL3xjYXBpfGNjd2F8Y2RtXFwtfGNlbGx8Y2h0bXxjbGRjfGNtZFxcLXxjbyhtcHxuZCl8Y3Jhd3xkYShpdHxsbHxuZyl8ZGJ0ZXxkY1xcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFxcLXxfKXxnMSB1fGc1NjB8Z2VuZXxnZlxcLTV8Z1xcLW1vfGdvKFxcLnd8b2QpfGdyKGFkfHVuKXxoYWllfGhjaXR8aGRcXC0obXxwfHQpfGhlaVxcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXFwtY3xodChjKFxcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XFwtfFxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcXC8pfGtsb258a3B0IHxrd2NcXC18a3lvKGN8ayl8bGUobm98eGkpfGxnKCBnfFxcLyhrfGx8dSl8NTB8NTR8XFwtW2Etd10pfGxpYnd8bHlueHxtMVxcLXd8bTNnYXxtNTBcXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXFwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXFwtfCB8b3x2KXx6eil8bXQoNTB8cDF8diApfG13YnB8bXl3YXxuMTBbMC0yXXxuMjBbMi0zXXxuMzAoMHwyKXxuNTAoMHwyfDUpfG43KDAoMHwxKXwxMCl8bmUoKGN8bSlcXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFxcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblxcLTJ8cG8oY2t8cnR8c2UpfHByb3h8cHNpb3xwdFxcLWd8cWFcXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFxcLVsyLTddfGlcXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XFwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXFwtfG9vfHBcXC0pfHNka1xcL3xzZShjKFxcLXwwfDEpfDQ3fG1jfG5kfHJpKXxzZ2hcXC18c2hhcnxzaWUoXFwtfG0pfHNrXFwtMHxzbCg0NXxpZCl8c20oYWx8YXJ8YjN8aXR8dDUpfHNvKGZ0fG55KXxzcCgwMXxoXFwtfHZcXC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcXC18dGRnXFwtfHRlbChpfG0pfHRpbVxcLXx0XFwtbW98dG8ocGx8c2gpfHRzKDcwfG1cXC18bTN8bTUpfHR4XFwtOXx1cChcXC5ifGcxfHNpKXx1dHN0fHY0MDB8djc1MHx2ZXJpfHZpKHJnfHRlKXx2ayg0MHw1WzAtM118XFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcXC18eW91cnx6ZXRvfHp0ZVxcLS9pLnRlc3QoKG5hdmlnYXRvci51c2VyQWdlbnR8fG5hdmlnYXRvci52ZW5kb3J8fHdpbmRvdy5vcGVyYSkuc3Vic3RyKDAsNCkpKXx8ZCYmaS5tb2JpbGVDb250ZW50RW5hYmxlZCkmJnMuYWNjZXB0YWJsZT9bNCxLZSgpXTpbMywzXSk6WzMsM10pO2Nhc2UgMjpsPW4uc2VudCgpLGM9ITAsbi5sYWJlbD0zO2Nhc2UgMzppZigobnVsbD09PShlPXUuX19idF9pbnRybmwucHZTZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZVtpLndlYnNpdGVJRF0pfHwodS5fX2J0X2ludHJubC5wdlNlbnQ9dS5fX2J0X2ludHJubC5wdlNlbnR8fHt9LHUuX19idF9pbnRybmwucHZTZW50W2kud2Vic2l0ZUlEXT0hMCx2KFwiQlRfcHZTZW50XCIsdS5fX2J0X2ludHJubC5wdlNlbnQpLFVlKHtzaXRlSW5mbzppLGNoZWNrc3VtOm99LHMuYWIscy5hY2NlcHRhYmxlLGwpLGZ1bmN0aW9uKCl7dHJ5e2hpc3RvcnkucHVzaFN0YXRlPShlPWhpc3RvcnkucHVzaFN0YXRlLGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInB1c2hzdGF0ZVwiKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwibG9jYXRpb25DaGFuZ2VcIikpLHR9KSxoaXN0b3J5LnJlcGxhY2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicmVwbGFjZXN0YXRlXCIpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJsb2NhdGlvbkNoYW5nZVwiKSksdH19KGhpc3RvcnkucmVwbGFjZVN0YXRlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvcHN0YXRlXCIsKGZ1bmN0aW9uKCl7d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwibG9jYXRpb25DaGFuZ2VcIikpfSkpfWNhdGNoKGUpe312YXIgZX0oKSx1LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2NhdGlvbkNoYW5nZVwiLChmdW5jdGlvbigpe3ZhciBlPXAoKTtlLnNlYXJjaD1cIlwiO3ZhciB0PWUudG9TdHJpbmcoKS5zcGxpdChcIiNcIilbMF07dS5fX2J0X2ludHJubC5wYWdlVVJMLnNwbGl0KFwiI1wiKVswXSE9PXQmJih1Ll9fYnRfaW50cm5sLnBhZ2VVUkw9ZS50b1N0cmluZygpLFI9TCg4LDEwKSx1Ll9fYnRfaW50cm5sLnRyYWNlSUQ9Uix2KFwiQlRfdHJhY2VJRFwiLFIpLFQ9e3RyYWNlSUQ6UixzZXNzaW9uSUQ6RH0sVWUoe3NpdGVJbmZvOmksY2hlY2tzdW06b30scy5hYixzLmFjY2VwdGFibGUsbCwhMCkpfSkpKSxoPWZ1bmN0aW9uKGUsdCxuLHMpe3ZhciByPW5ldyBVUkwoXCJodHRwczovL1wiK2UpO3JldHVybiByLnBhdGhuYW1lPVwicmVjb3ZlcnlcIixyLnNlYXJjaFBhcmFtcy5hcHBlbmQoXCJ3XCIsdCkscyYmci5zZWFyY2hQYXJhbXMuYXBwZW5kKFwiYlwiLHMpLG4mJm4uc3BsaXQoXCImXCIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoXCI9XCIpOzI9PXQubGVuZ3RoJiZ0WzBdJiZ0WzFdJiZyLnNlYXJjaFBhcmFtcy5hcHBlbmQodFswXSx0WzFdKX0pKSxyLnNlYXJjaFBhcmFtcy5hcHBlbmQoXCJ1cGFwaVwiLFwidHJ1ZVwiKSxyLnRvU3RyaW5nKCl9KF8saS53ZWJzaXRlSUQsXCJcIixsKSwoZz1uZXcgWWUoYSxFLnNjcmlwdCxoLGMsc3Qscy5hY2NlcHRhYmxlKSkubG9hZCgpLGMmJiFnLnNob3VsZExvYWRSZWNvdmVyeVNjcmlwdEZyb21STGluaygpKXN0KGgpO2Vsc2UgdHJ5e3J0KHtldmVudE5hbWU6XCJBY2NlcHRhYmxlQWRzSW5pdFwiLHBheWxvYWQ6e2RldGFpbDohMX19KSxydCh7ZXZlbnROYW1lOlwidXBvbml0SW5pdFwiLHBheWxvYWQ6e2RldGFpbDohMX19KX1jYXRjaChlKXt9cmV0dXJuWzJdfX0pKX0pKX0oKX1jYXRjaChlKXt9fSgpO1xuIn0sICJoZWFkZXJzU2l6ZSI6IDI2OCwgImJvZHlTaXplIjogMTkxMzMsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDE5NDAxfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAyLjIyMywgImNvbm5lY3QiOiAxMjMuNjgyLCAic3NsIjogMzMuOTI5LCAic2VuZCI6IDAsICJ3YWl0IjogMjAuNTc5LCAicmVjZWl2ZSI6IDMxLjA1fSwgInBhZ2VyZWYiOiAicGFnZUA1YzA5MWM3ZWQxODA4OTZlYWIzYjIwZmJhOWZlOTRhOSIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiWzI2MDY6NDcwMDoxMDo6NjgxNjo0YmQ4XSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiQ049YnRsb2FkZXIuY29tIiwgInZhbGlkRnJvbSI6IDE3MTgxNzgyNDAsICJ2YWxpZFRvIjogMTcyNTk1NDIzOX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjAzLjI3NFoiLCAidGltZSI6IDMwNS42MzQsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2ltZzEud3NpbWcuY29tL3BhcmtpbmctbGFuZGVyL3N0YXRpYy9qcy9tYWluLjM4YWRmY2ZhLmpzIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogIlJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cDovL2JhcHNtYW5kaXJkZXBhcmlzLmZyLyJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE3XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtRGVzdCIsICJ2YWx1ZSI6ICJzY3JpcHQifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1Nb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1TaXRlIiwgInZhbHVlIjogImNyb3NzLXNpdGUifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAiaW1nMS53c2ltZy5jb20ifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA0MTcsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICJNb24ifSwgeyJuYW1lIjogIkxhc3QtTW9kaWZpZWQiLCAidmFsdWUiOiAiMjAgTWF5IDIwMjQgMjE6MTg6MDcgR01UIn0sIHsibmFtZSI6ICJFVGFnIiwgInZhbHVlIjogIlwiY2M1N2M3MjFjMGEzZGMxNzg4YTk5Nzk3NzkzMDE3NGJcIiJ9LCB7Im5hbWUiOiAiQWNjZXB0LVJhbmdlcyIsICJ2YWx1ZSI6ICJieXRlcyJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJDb250ZW50LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibWF4LWFnZT0zMTUzNjAwMCJ9LCB7Im5hbWUiOiAiRXhwaXJlcyIsICJ2YWx1ZSI6ICJXZWQifSwgeyJuYW1lIjogIkV4cGlyZXMiLCAidmFsdWUiOiAiMTggSnVuIDIwMjUgMDU6NTQ6MDMgR01UIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIlR1ZSJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICIxOCBKdW4gMjAyNCAwNTo1NDowMyBHTVQifSwgeyJuYW1lIjogIkNvbnRlbnQtTGVuZ3RoIiwgInZhbHVlIjogIjE3NzI2NiJ9LCB7Im5hbWUiOiAiVGltaW5nLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAidmFsdWUiOiAiKiJ9LCB7Im5hbWUiOiAieC1hbXotaWQtMiIsICJ2YWx1ZSI6ICJVT3N5SVltWW91bDJodkFiSzl5enlBdFRHN3lpcGRlV2RRKzE5d2FHa2FVbURPTEJWbmFQN1NwYkVZQUZFQThKMktZZStBeWNoOVE9In0sIHsibmFtZSI6ICJ4LWFtei1yZXF1ZXN0LWlkIiwgInZhbHVlIjogIkpURlo4SDFXWlcxUzVKR0MifSwgeyJuYW1lIjogIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24iLCAidmFsdWUiOiAiQUVTMjU2In0sIHsibmFtZSI6ICJ4LWFtei12ZXJzaW9uLWlkIiwgInZhbHVlIjogInAyZkFXZ2pBMEkuRm4ub3NjTmhpc2NneThKNjRVa3d1In1dLCAiY29udGVudCI6IHsic2l6ZSI6IDY0NjU0NSwgIm1pbWVUeXBlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiLCAiY29tcHJlc3Npb24iOiA0NjkxODAsICJ0ZXh0IjogIi8qISBGb3IgbGljZW5zZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIG1haW4uMzhhZGZjZmEuanMuTElDRU5TRS50eHQgKi9cbigoKT0+e3ZhciBlPXs3MTQyOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuLmQodCx7TjooKT0+cixfOigpPT5vfSk7Y29uc3Qgcj1cImFicD0xJmdkYWJwPXRydWVcIixvPVwiYWJwPTImZ2RhYnA9dHJ1ZVwifSw5MDQwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUpe3JldHVybiEwPT09ZXx8XCJ0cnVlXCI9PT1lfHwxPT09ZXx8XCIxXCI9PT1lfHwhMSE9PWUmJlwiZmFsc2VcIiE9PWUmJjAhPT1lJiZcIjBcIiE9PWUmJm51bGx9bi5kKHQse2c6KCk9PnJ9KX0sOTYzMTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0E6KCk9PmksVTooKT0+YX0pO3ZhciByPW4oNzE0Miksbz1uKDk0Nyk7ZnVuY3Rpb24gaShlKXtsZXQgdDt0cnl7dD1KU09OLnN0cmluZ2lmeShlLCgoZSx0KT0+e2lmKG51bGwhPT10JiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIHQmJlwiXCIhPT10KXJldHVybiB0fSkpfWNhdGNoKG4pe28uWi5lcnJvcihuKX1yZXR1cm4gby5aLmRlYnVnKFwibGFuZGVyIGV2ZW50OiBcIit0KSx0fWZ1bmN0aW9uIGEoZSx0KXtjb25zdCBuPWkodCk7cmV0dXJuIGUrPVwiP1wiK3IuTixmZXRjaChlLHttZXRob2Q6XCJQT1NUXCIsY3JlZGVudGlhbHM6XCJvbWl0XCIsYm9keTpuLGhlYWRlcnM6e1wiQ29udGVudC1UeXBlXCI6XCJhcHBsaWNhdGlvbi9qc29uXCJ9fSkudGhlbigoZT0+e2Uub2t8fG8uWi5lcnJvcihcImVycm9yIHB1Ymxpc2hpbmcgZXZlbnQgLSBIVFRQIFN0YXR1czogXCIrZS5zdGF0dXMpfSkpLmNhdGNoKChlPT57by5aLmVycm9yKFwiZXJyb3IgcHVibGlzaGluZyBldmVudCAtIFwiK2UudG9TdHJpbmcoKSl9KSl9fSw5NDc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHtCOigpPT5vLFo6KCk9PnJ9KTtjbGFzcyBye3N0YXRpYyBsb2dNZXNzYWdlKGUsdCl7aWYoci5TZXZlcml0eVtyLmxldmVsXT49ci5TZXZlcml0eVtlXSl7bGV0IG49XCJ3YXJuXCI7ZT09PXIuTGV2ZWwuRVJST1ImJihuPVwiZXJyb3JcIiksY29uc29sZVtuXShcIlwiLmNvbmNhdChlLFwiOiBcIikuY29uY2F0KG8odCkpKX19c3RhdGljIGVycm9yKGUpe3JldHVybiByLmxvZ01lc3NhZ2Uoci5MZXZlbC5FUlJPUixlKX1zdGF0aWMgd2FybihlKXtyZXR1cm4gci5sb2dNZXNzYWdlKHIuTGV2ZWwuV0FSTixlKX1zdGF0aWMgaW5mbyhlKXtyZXR1cm4gci5sb2dNZXNzYWdlKHIuTGV2ZWwuSU5GTyxlKX1zdGF0aWMgZGVidWcoZSl7cmV0dXJuIHIubG9nTWVzc2FnZShyLkxldmVsLkRFQlVHLGUpfXN0YXRpYyB0cmFjZShlKXtyZXR1cm4gci5sb2dNZXNzYWdlKHIuTGV2ZWwuVFJBQ0UsZSl9fWZ1bmN0aW9uIG8oZSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlKXRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2godCl7cmV0dXJuIHIuZXJyb3IodCksZX1yZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLnRvU3RyaW5nKCk6ZX1yLkxldmVsPXtOT05FOlwiTk9ORVwiLEVSUk9SOlwiRVJST1JcIixXQVJOOlwiV0FSTlwiLElORk86XCJJTkZPXCIsREVCVUc6XCJERUJVR1wiLFRSQUNFOlwiVFJBQ0VcIn0sci5TZXZlcml0eT17Tk9ORTowLEVSUk9SOjEsV0FSTjoyLElORk86MyxERUJVRzo0LFRSQUNFOjV9LHIubGV2ZWw9ci5MZXZlbC5OT05FfSw3NzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1NldHRpbmdzOigpPT5yfSk7Y29uc3Qgcj17RE9NQUlOX0NPTkZJR19BUEk6XCJodHRwczovL2FwaS5hd3MucGFya2luZy5nb2RhZGR5LmNvbVwiLFBBUktXRUJfTEFOREVSX0FQSTpcImh0dHBzOi8vYXBpLmF3cy5wYXJraW5nLmdvZGFkZHkuY29tXCIsRVZFTlRfUFVCTElTSF9BUEk6XCJodHRwczovL2FwaS5hd3MucGFya2luZy5nb2RhZGR5LmNvbS92MS9wYXJraW5nRXZlbnRzXCIsR09EQUREWV9IT1NUOlwiaHR0cHM6Ly93d3cuZ29kYWRkeS5jb21cIixHT09HTEVfQURTRU5TRV9BRFRFU1Q6XCJvZmZcIixERUJVR19NT0RFOigwLG4oOTA0MCkuZykoXCJmYWxzZVwiKSxWRVJJWk9OX0ZFRURfUEFSVE5FUjp7VEVTVDp7Tk9ERV9FTlY6XCJwcm9kdWN0aW9uXCIsUFVCTElDX1VSTDpcImh0dHBzOi8vaW1nMS53c2ltZy5jb20vcGFya2luZy1sYW5kZXJcIixXRFNfU09DS0VUX0hPU1Q6dm9pZCAwLFdEU19TT0NLRVRfUEFUSDp2b2lkIDAsV0RTX1NPQ0tFVF9QT1JUOnZvaWQgMCxGQVNUX1JFRlJFU0g6ITAsUkVBQ1RfQVBQX0RPTUFJTl9DT05GSUdfQVBJOlwiaHR0cHM6Ly9hcGkuYXdzLnBhcmtpbmcuZ29kYWRkeS5jb21cIixSRUFDVF9BUFBfUEFSS1dFQl9MQU5ERVJfQVBJOlwiaHR0cHM6Ly9hcGkuYXdzLnBhcmtpbmcuZ29kYWRkeS5jb21cIixSRUFDVF9BUFBfRVZFTlRfUFVCTElTSF9BUEk6XCJodHRwczovL2FwaS5hd3MucGFya2luZy5nb2RhZGR5LmNvbS92MS9wYXJraW5nRXZlbnRzXCIsUkVBQ1RfQVBQX0dPREFERFlfSE9TVDpcImh0dHBzOi8vd3d3LmdvZGFkZHkuY29tXCIsUkVBQ1RfQVBQX0FEU0VOU0VfQURURVNUOlwib2ZmXCIsUkVBQ1RfQVBQX0RFQlVHX01PREU6XCJmYWxzZVwiLFJFQUNUX0FQUF9WRVJJWk9OX0ZFRURfUEFSVE5FUl9QVzpcIm5hbWVhZG1pbl9wYXJrX2RtXzI5MDNfcGFya3dlYlwiLFJFQUNUX0FQUF9WRVJJWk9OX0ZFRURfUEFSVE5FUl9TTjpcIm5hbWVhZG1pbl9wYXJrX2RtXzI5MDNfYWZ0ZXJuaWNcIixSRUFDVF9BUFBfVkVSSVpPTl9GRUVEX1BBUlRORVJfQ1A6XCJuYW1lYWRtaW5fcGFya19kbV8yOTAzX2dvZGFkZHlcIixSRUFDVF9BUFBfVkVSSVpPTl9GRUVEX1BST1hZOlwiaHR0cHM6Ly9hcGkuYXdzLnBhcmtpbmcuZ29kYWRkeS5jb21cIixSRUFDVF9BUFBfRk9SV0FSREVSX0xBTkRFUl9VUkxfREFOOlwiaHR0cHM6Ly9kYW4uY29tL2J1eS1kb21haW4ve0RPTUFJTn1cIixSRUFDVF9BUFBfRk9SV0FSREVSX0xBTkRFUl9VUkxfVERGU19HRDpcImh0dHBzOi8vd3d3LmdvZGFkZHkuY29tL2ZvcnNhbGUve0RPTUFJTn0/dXRtX3NvdXJjZT1UREZTX0JJTk5TJnV0bV9tZWRpdW09QklOTlMmdXRtX2NhbXBhaWduPVRERlNfQklOTlMmdHJhZmZpY190eXBlPVRERlNfQklOTlMmdHJhZmZpY19pZD1iaW5ucyZ7UVVFUll9XCIsUkVBQ1RfQVBQX0ZPUldBUkRFUl9MQU5ERVJfVVJMX1RERlNfQUZURVJOSUM6XCJodHRwczovL3d3dy5hZnRlcm5pYy5jb20vZm9yc2FsZS97RE9NQUlOfT91dG1fc291cmNlPVRERlNfREFTTE5DJnV0bV9tZWRpdW09REFTTE5DJnV0bV9jYW1wYWlnbj1UREZTX0RBU0xOQyZ0cmFmZmljX3R5cGU9VERGU19EQVNMTkMmdHJhZmZpY19pZD1kYXNsbmMme1FVRVJZfVwiLFJFQUNUX0FQUF9GT1JXQVJERVJfTEFOREVSX0FQSTpcIlwiLFJFQUNUX0FQUF9QQVJLSU5HX0VOVjpcInByb2RcIixSRUFDVF9BUFBfVFJVU1RBUkNfRE9NQUlOX0lEOlwiZ29kYWRkeV9wYXJraW5nX2lhYi5jb21cIixSRUFDVF9BUFBfVFJVU1RBUkNfU0NSSVBUX1VSSTpcIi8vY29uc2VudC50cnVzdGUuY29tL25vdGljZVwifS5SRUFDVF9BUFBfVkVSSVpPTl9GRUVEX1BBUlRORVJfVEVTVCxQVzpcIm5hbWVhZG1pbl9wYXJrX2RtXzI5MDNfcGFya3dlYlwiLFNOOlwibmFtZWFkbWluX3BhcmtfZG1fMjkwM19hZnRlcm5pY1wiLENQOlwibmFtZWFkbWluX3BhcmtfZG1fMjkwM19nb2RhZGR5XCJ9LFZFUklaT05fRkVFRF9QUk9YWTpcImh0dHBzOi8vYXBpLmF3cy5wYXJraW5nLmdvZGFkZHkuY29tXCIsVkVSSVpPTl9GRUVEX1BBVEg6XCJodHRwczovL2FwaS5hd3MucGFya2luZy5nb2RhZGR5LmNvbS9kL3NlYXJjaC9wL2dvZGFkZHkveG1sL2RvbWFpbi9tdWx0aXNldC92NC9cIixQUklWQUNZX1BPTElDWV9VUkw6XCJodHRwczovL3d3dy5nb2RhZGR5LmNvbS9hZ3JlZW1lbnRzL3Nob3dkb2M/cGFnZWlkPVBSSVZBQ1lcIixGb3J3YXJkZXJMYW5kZXJUb1VybDp7REFOOlwiaHR0cHM6Ly9kYW4uY29tL2J1eS1kb21haW4ve0RPTUFJTn1cIixUREZTX0dEOlwiaHR0cHM6Ly93d3cuZ29kYWRkeS5jb20vZm9yc2FsZS97RE9NQUlOfT91dG1fc291cmNlPVRERlNfQklOTlMmdXRtX21lZGl1bT1CSU5OUyZ1dG1fY2FtcGFpZ249VERGU19CSU5OUyZ0cmFmZmljX3R5cGU9VERGU19CSU5OUyZ0cmFmZmljX2lkPWJpbm5zJntRVUVSWX1cIixUREZTX0FGVEVSTklDOlwiaHR0cHM6Ly93d3cuYWZ0ZXJuaWMuY29tL2ZvcnNhbGUve0RPTUFJTn0/dXRtX3NvdXJjZT1UREZTX0RBU0xOQyZ1dG1fbWVkaXVtPURBU0xOQyZ1dG1fY2FtcGFpZ249VERGU19EQVNMTkMmdHJhZmZpY190eXBlPVRERlNfREFTTE5DJnRyYWZmaWNfaWQ9ZGFzbG5jJntRVUVSWX1cIn0sRk9SV0FSREVSX0xBTkRFUl9BUEk6XCJcIixOT1JNQUxfRE9NQUlOX0xFTkdUSF9MSU1JVDoyMCxDT05TRU5UX01BTkFHRVJfSlM6e05PREVfRU5WOlwicHJvZHVjdGlvblwiLFBVQkxJQ19VUkw6XCJodHRwczovL2ltZzEud3NpbWcuY29tL3BhcmtpbmctbGFuZGVyXCIsV0RTX1NPQ0tFVF9IT1NUOnZvaWQgMCxXRFNfU09DS0VUX1BBVEg6dm9pZCAwLFdEU19TT0NLRVRfUE9SVDp2b2lkIDAsRkFTVF9SRUZSRVNIOiEwLFJFQUNUX0FQUF9ET01BSU5fQ09ORklHX0FQSTpcImh0dHBzOi8vYXBpLmF3cy5wYXJraW5nLmdvZGFkZHkuY29tXCIsUkVBQ1RfQVBQX1BBUktXRUJfTEFOREVSX0FQSTpcImh0dHBzOi8vYXBpLmF3cy5wYXJraW5nLmdvZGFkZHkuY29tXCIsUkVBQ1RfQVBQX0VWRU5UX1BVQkxJU0hfQVBJOlwiaHR0cHM6Ly9hcGkuYXdzLnBhcmtpbmcuZ29kYWRkeS5jb20vdjEvcGFya2luZ0V2ZW50c1wiLFJFQUNUX0FQUF9HT0RBRERZX0hPU1Q6XCJodHRwczovL3d3dy5nb2RhZGR5LmNvbVwiLFJFQUNUX0FQUF9BRFNFTlNFX0FEVEVTVDpcIm9mZlwiLFJFQUNUX0FQUF9ERUJVR19NT0RFOlwiZmFsc2VcIixSRUFDVF9BUFBfVkVSSVpPTl9GRUVEX1BBUlRORVJfUFc6XCJuYW1lYWRtaW5fcGFya19kbV8yOTAzX3Bhcmt3ZWJcIixSRUFDVF9BUFBfVkVSSVpPTl9GRUVEX1BBUlRORVJfU046XCJuYW1lYWRtaW5fcGFya19kbV8yOTAzX2FmdGVybmljXCIsUkVBQ1RfQVBQX1ZFUklaT05fRkVFRF9QQVJUTkVSX0NQOlwibmFtZWFkbWluX3BhcmtfZG1fMjkwM19nb2RhZGR5XCIsUkVBQ1RfQVBQX1ZFUklaT05fRkVFRF9QUk9YWTpcImh0dHBzOi8vYXBpLmF3cy5wYXJraW5nLmdvZGFkZHkuY29tXCIsUkVBQ1RfQVBQX0ZPUldBUkRFUl9MQU5ERVJfVVJMX0RBTjpcImh0dHBzOi8vZGFuLmNvbS9idXktZG9tYWluL3tET01BSU59XCIsUkVBQ1RfQVBQX0ZPUldBUkRFUl9MQU5ERVJfVVJMX1RERlNfR0Q6XCJodHRwczovL3d3dy5nb2RhZGR5LmNvbS9mb3JzYWxlL3tET01BSU59P3V0bV9zb3VyY2U9VERGU19CSU5OUyZ1dG1fbWVkaXVtPUJJTk5TJnV0bV9jYW1wYWlnbj1UREZTX0JJTk5TJnRyYWZmaWNfdHlwZT1UREZTX0JJTk5TJnRyYWZmaWNfaWQ9YmlubnMme1FVRVJZfVwiLFJFQUNUX0FQUF9GT1JXQVJERVJfTEFOREVSX1VSTF9UREZTX0FGVEVSTklDOlwiaHR0cHM6Ly93d3cuYWZ0ZXJuaWMuY29tL2ZvcnNhbGUve0RPTUFJTn0/dXRtX3NvdXJjZT1UREZTX0RBU0xOQyZ1dG1fbWVkaXVtPURBU0xOQyZ1dG1fY2FtcGFpZ249VERGU19EQVNMTkMmdHJhZmZpY190eXBlPVRERlNfREFTTE5DJnRyYWZmaWNfaWQ9ZGFzbG5jJntRVUVSWX1cIixSRUFDVF9BUFBfRk9SV0FSREVSX0xBTkRFUl9BUEk6XCJcIixSRUFDVF9BUFBfUEFSS0lOR19FTlY6XCJwcm9kXCIsUkVBQ1RfQVBQX1RSVVNUQVJDX0RPTUFJTl9JRDpcImdvZGFkZHlfcGFya2luZ19pYWIuY29tXCIsUkVBQ1RfQVBQX1RSVVNUQVJDX1NDUklQVF9VUkk6XCIvL2NvbnNlbnQudHJ1c3RlLmNvbS9ub3RpY2VcIn0uUkVBQ1RfQVBQX0NPTlNFTlRfTUFOQUdFUl9KUyxDT05TRU5UX01BTkFHRVJfQ1NTOntOT0RFX0VOVjpcInByb2R1Y3Rpb25cIixQVUJMSUNfVVJMOlwiaHR0cHM6Ly9pbWcxLndzaW1nLmNvbS9wYXJraW5nLWxhbmRlclwiLFdEU19TT0NLRVRfSE9TVDp2b2lkIDAsV0RTX1NPQ0tFVF9QQVRIOnZvaWQgMCxXRFNfU09DS0VUX1BPUlQ6dm9pZCAwLEZBU1RfUkVGUkVTSDohMCxSRUFDVF9BUFBfRE9NQUlOX0NPTkZJR19BUEk6XCJodHRwczovL2FwaS5hd3MucGFya2luZy5nb2RhZGR5LmNvbVwiLFJFQUNUX0FQUF9QQVJLV0VCX0xBTkRFUl9BUEk6XCJodHRwczovL2FwaS5hd3MucGFya2luZy5nb2RhZGR5LmNvbVwiLFJFQUNUX0FQUF9FVkVOVF9QVUJMSVNIX0FQSTpcImh0dHBzOi8vYXBpLmF3cy5wYXJraW5nLmdvZGFkZHkuY29tL3YxL3BhcmtpbmdFdmVudHNcIixSRUFDVF9BUFBfR09EQUREWV9IT1NUOlwiaHR0cHM6Ly93d3cuZ29kYWRkeS5jb21cIixSRUFDVF9BUFBfQURTRU5TRV9BRFRFU1Q6XCJvZmZcIixSRUFDVF9BUFBfREVCVUdfTU9ERTpcImZhbHNlXCIsUkVBQ1RfQVBQX1ZFUklaT05fRkVFRF9QQVJUTkVSX1BXOlwibmFtZWFkbWluX3BhcmtfZG1fMjkwM19wYXJrd2ViXCIsUkVBQ1RfQVBQX1ZFUklaT05fRkVFRF9QQVJUTkVSX1NOOlwibmFtZWFkbWluX3BhcmtfZG1fMjkwM19hZnRlcm5pY1wiLFJFQUNUX0FQUF9WRVJJWk9OX0ZFRURfUEFSVE5FUl9DUDpcIm5hbWVhZG1pbl9wYXJrX2RtXzI5MDNfZ29kYWRkeVwiLFJFQUNUX0FQUF9WRVJJWk9OX0ZFRURfUFJPWFk6XCJodHRwczovL2FwaS5hd3MucGFya2luZy5nb2RhZGR5LmNvbVwiLFJFQUNUX0FQUF9GT1JXQVJERVJfTEFOREVSX1VSTF9EQU46XCJodHRwczovL2Rhbi5jb20vYnV5LWRvbWFpbi97RE9NQUlOfVwiLFJFQUNUX0FQUF9GT1JXQVJERVJfTEFOREVSX1VSTF9UREZTX0dEOlwiaHR0cHM6Ly93d3cuZ29kYWRkeS5jb20vZm9yc2FsZS97RE9NQUlOfT91dG1fc291cmNlPVRERlNfQklOTlMmdXRtX21lZGl1bT1CSU5OUyZ1dG1fY2FtcGFpZ249VERGU19CSU5OUyZ0cmFmZmljX3R5cGU9VERGU19CSU5OUyZ0cmFmZmljX2lkPWJpbm5zJntRVUVSWX1cIixSRUFDVF9BUFBfRk9SV0FSREVSX0xBTkRFUl9VUkxfVERGU19BRlRFUk5JQzpcImh0dHBzOi8vd3d3LmFmdGVybmljLmNvbS9mb3JzYWxlL3tET01BSU59P3V0bV9zb3VyY2U9VERGU19EQVNMTkMmdXRtX21lZGl1bT1EQVNMTkMmdXRtX2NhbXBhaWduPVRERlNfREFTTE5DJnRyYWZmaWNfdHlwZT1UREZTX0RBU0xOQyZ0cmFmZmljX2lkPWRhc2xuYyZ7UVVFUll9XCIsUkVBQ1RfQVBQX0ZPUldBUkRFUl9MQU5ERVJfQVBJOlwiXCIsUkVBQ1RfQVBQX1BBUktJTkdfRU5WOlwicHJvZFwiLFJFQUNUX0FQUF9UUlVTVEFSQ19ET01BSU5fSUQ6XCJnb2RhZGR5X3BhcmtpbmdfaWFiLmNvbVwiLFJFQUNUX0FQUF9UUlVTVEFSQ19TQ1JJUFRfVVJJOlwiLy9jb25zZW50LnRydXN0ZS5jb20vbm90aWNlXCJ9LlJFQUNUX0FQUF9DT05TRU5UX01BTkFHRVJfQ1NTLFBBUktJTkdfRU5WOlwicHJvZFwiLFRSVVNUQVJDX1NDUklQVF9VUkk6XCIvL2NvbnNlbnQudHJ1c3RlLmNvbS9ub3RpY2VcIixUUlVTVEFSQ19ET01BSU5fSUQ6XCJnb2RhZGR5X3BhcmtpbmdfaWFiLmNvbVwifX0sNjEzODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse2tHOigpPT5yfSk7ZnVuY3Rpb24gcihlLHQsbil7aWYodm9pZCAwPT09biYmKG49RXJyb3IpLCFlKXRocm93IG5ldyBuKHQpfX0sMzUzMTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcihlLHQpe3ZhciBuPXQmJnQuY2FjaGU/dC5jYWNoZTp1LHI9dCYmdC5zZXJpYWxpemVyP3Quc2VyaWFsaXplcjpsO3JldHVybih0JiZ0LnN0cmF0ZWd5P3Quc3RyYXRlZ3k6cykoZSx7Y2FjaGU6bixzZXJpYWxpemVyOnJ9KX1mdW5jdGlvbiBvKGUsdCxuLHIpe3ZhciBvLGk9bnVsbD09KG89cil8fFwibnVtYmVyXCI9PT10eXBlb2Ygb3x8XCJib29sZWFuXCI9PT10eXBlb2Ygbz9yOm4ociksYT10LmdldChpKTtyZXR1cm5cInVuZGVmaW5lZFwiPT09dHlwZW9mIGEmJihhPWUuY2FsbCh0aGlzLHIpLHQuc2V0KGksYSkpLGF9ZnVuY3Rpb24gaShlLHQsbil7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpLG89bihyKSxpPXQuZ2V0KG8pO3JldHVyblwidW5kZWZpbmVkXCI9PT10eXBlb2YgaSYmKGk9ZS5hcHBseSh0aGlzLHIpLHQuc2V0KG8saSkpLGl9ZnVuY3Rpb24gYShlLHQsbixyLG8pe3JldHVybiBuLmJpbmQodCxlLHIsbyl9ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBhKGUsdGhpcywxPT09ZS5sZW5ndGg/bzppLHQuY2FjaGUuY3JlYXRlKCksdC5zZXJpYWxpemVyKX1uLmQodCx7QTooKT0+ZCxaOigpPT5yfSk7dmFyIGw9ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJndW1lbnRzKX07ZnVuY3Rpb24gYygpe3RoaXMuY2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKX1jLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FjaGVbZV19LGMucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe3RoaXMuY2FjaGVbZV09dH07dmFyIHU9e2NyZWF0ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgY319LGQ9e3ZhcmlhZGljOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGEoZSx0aGlzLGksdC5jYWNoZS5jcmVhdGUoKSx0LnNlcmlhbGl6ZXIpfSxtb25hZGljOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGEoZSx0aGlzLG8sdC5jYWNoZS5jcmVhdGUoKSx0LnNlcmlhbGl6ZXIpfX19LDUzNjg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHt3RDooKT0+byxWRzooKT0+bCxycDooKT0+dSxJaTooKT0+eSxPNDooKT0+cyx1ZjooKT0+YyxXaDooKT0+ZyxKbzooKT0+Zix5eDooKT0+aCxXaTooKT0+cCxISTooKT0+bSxwZTooKT0+ZCxRYzooKT0+aWV9KTt2YXIgcixvLGksYT1uKDU5NzEpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGUudHlwZT09PW8ubGl0ZXJhbH1mdW5jdGlvbiBsKGUpe3JldHVybiBlLnR5cGU9PT1vLmFyZ3VtZW50fWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUudHlwZT09PW8ubnVtYmVyfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIGUudHlwZT09PW8uZGF0ZX1mdW5jdGlvbiBkKGUpe3JldHVybiBlLnR5cGU9PT1vLnRpbWV9ZnVuY3Rpb24gcChlKXtyZXR1cm4gZS50eXBlPT09by5zZWxlY3R9ZnVuY3Rpb24gZihlKXtyZXR1cm4gZS50eXBlPT09by5wbHVyYWx9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZS50eXBlPT09by5wb3VuZH1mdW5jdGlvbiBtKGUpe3JldHVybiBlLnR5cGU9PT1vLnRhZ31mdW5jdGlvbiBnKGUpe3JldHVybiEoIWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZXx8ZS50eXBlIT09aS5udW1iZXIpfWZ1bmN0aW9uIHkoZSl7cmV0dXJuISghZXx8XCJvYmplY3RcIiE9PXR5cGVvZiBlfHxlLnR5cGUhPT1pLmRhdGVUaW1lKX0hZnVuY3Rpb24oZSl7ZVtlLkVYUEVDVF9BUkdVTUVOVF9DTE9TSU5HX0JSQUNFPTFdPVwiRVhQRUNUX0FSR1VNRU5UX0NMT1NJTkdfQlJBQ0VcIixlW2UuRU1QVFlfQVJHVU1FTlQ9Ml09XCJFTVBUWV9BUkdVTUVOVFwiLGVbZS5NQUxGT1JNRURfQVJHVU1FTlQ9M109XCJNQUxGT1JNRURfQVJHVU1FTlRcIixlW2UuRVhQRUNUX0FSR1VNRU5UX1RZUEU9NF09XCJFWFBFQ1RfQVJHVU1FTlRfVFlQRVwiLGVbZS5JTlZBTElEX0FSR1VNRU5UX1RZUEU9NV09XCJJTlZBTElEX0FSR1VNRU5UX1RZUEVcIixlW2UuRVhQRUNUX0FSR1VNRU5UX1NUWUxFPTZdPVwiRVhQRUNUX0FSR1VNRU5UX1NUWUxFXCIsZVtlLklOVkFMSURfTlVNQkVSX1NLRUxFVE9OPTddPVwiSU5WQUxJRF9OVU1CRVJfU0tFTEVUT05cIixlW2UuSU5WQUxJRF9EQVRFX1RJTUVfU0tFTEVUT049OF09XCJJTlZBTElEX0RBVEVfVElNRV9TS0VMRVRPTlwiLGVbZS5FWFBFQ1RfTlVNQkVSX1NLRUxFVE9OPTldPVwiRVhQRUNUX05VTUJFUl9TS0VMRVRPTlwiLGVbZS5FWFBFQ1RfREFURV9USU1FX1NLRUxFVE9OPTEwXT1cIkVYUEVDVF9EQVRFX1RJTUVfU0tFTEVUT05cIixlW2UuVU5DTE9TRURfUVVPVEVfSU5fQVJHVU1FTlRfU1RZTEU9MTFdPVwiVU5DTE9TRURfUVVPVEVfSU5fQVJHVU1FTlRfU1RZTEVcIixlW2UuRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9PUFRJT05TPTEyXT1cIkVYUEVDVF9TRUxFQ1RfQVJHVU1FTlRfT1BUSU9OU1wiLGVbZS5FWFBFQ1RfUExVUkFMX0FSR1VNRU5UX09GRlNFVF9WQUxVRT0xM109XCJFWFBFQ1RfUExVUkFMX0FSR1VNRU5UX09GRlNFVF9WQUxVRVwiLGVbZS5JTlZBTElEX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUU9MTRdPVwiSU5WQUxJRF9QTFVSQUxfQVJHVU1FTlRfT0ZGU0VUX1ZBTFVFXCIsZVtlLkVYUEVDVF9TRUxFQ1RfQVJHVU1FTlRfU0VMRUNUT1I9MTVdPVwiRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUlwiLGVbZS5FWFBFQ1RfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SPTE2XT1cIkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JcIixlW2UuRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUl9GUkFHTUVOVD0xN109XCJFWFBFQ1RfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SX0ZSQUdNRU5UXCIsZVtlLkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JfRlJBR01FTlQ9MThdPVwiRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUl9GUkFHTUVOVFwiLGVbZS5JTlZBTElEX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUj0xOV09XCJJTlZBTElEX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUlwiLGVbZS5EVVBMSUNBVEVfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SPTIwXT1cIkRVUExJQ0FURV9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JcIixlW2UuRFVQTElDQVRFX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUj0yMV09XCJEVVBMSUNBVEVfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SXCIsZVtlLk1JU1NJTkdfT1RIRVJfQ0xBVVNFPTIyXT1cIk1JU1NJTkdfT1RIRVJfQ0xBVVNFXCIsZVtlLklOVkFMSURfVEFHPTIzXT1cIklOVkFMSURfVEFHXCIsZVtlLklOVkFMSURfVEFHX05BTUU9MjVdPVwiSU5WQUxJRF9UQUdfTkFNRVwiLGVbZS5VTk1BVENIRURfQ0xPU0lOR19UQUc9MjZdPVwiVU5NQVRDSEVEX0NMT1NJTkdfVEFHXCIsZVtlLlVOQ0xPU0VEX1RBRz0yN109XCJVTkNMT1NFRF9UQUdcIn0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlW2UubGl0ZXJhbD0wXT1cImxpdGVyYWxcIixlW2UuYXJndW1lbnQ9MV09XCJhcmd1bWVudFwiLGVbZS5udW1iZXI9Ml09XCJudW1iZXJcIixlW2UuZGF0ZT0zXT1cImRhdGVcIixlW2UudGltZT00XT1cInRpbWVcIixlW2Uuc2VsZWN0PTVdPVwic2VsZWN0XCIsZVtlLnBsdXJhbD02XT1cInBsdXJhbFwiLGVbZS5wb3VuZD03XT1cInBvdW5kXCIsZVtlLnRhZz04XT1cInRhZ1wifShvfHwobz17fSkpLGZ1bmN0aW9uKGUpe2VbZS5udW1iZXI9MF09XCJudW1iZXJcIixlW2UuZGF0ZVRpbWU9MV09XCJkYXRlVGltZVwifShpfHwoaT17fSkpO3ZhciB2PS9bIFxceEEwXFx1MTY4MFxcdTIwMDAtXFx1MjAwQVxcdTIwMkZcXHUyMDVGXFx1MzAwMF0vLGI9Lyg/OltFZWNdezEsNn18R3sxLDV9fFtRcV17MSw1fXwoPzpbeVl1cl0rfFV7MSw1fSl8W01MXXsxLDV9fGR7MSwyfXxEezEsM318RnsxfXxbYWJCXXsxLDV9fFtoa0hLXXsxLDJ9fHd7MSwyfXxXezF9fG17MSwyfXxzezEsMn18W3paT3ZWeFhdezEsNH0pKD89KFteJ10qJ1teJ10qJykqW14nXSokKS9nO2Z1bmN0aW9uIFQoZSl7dmFyIHQ9e307cmV0dXJuIGUucmVwbGFjZShiLChmdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aDtzd2l0Y2goZVswXSl7Y2FzZVwiR1wiOnQuZXJhPTQ9PT1uP1wibG9uZ1wiOjU9PT1uP1wibmFycm93XCI6XCJzaG9ydFwiO2JyZWFrO2Nhc2VcInlcIjp0LnllYXI9Mj09PW4/XCIyLWRpZ2l0XCI6XCJudW1lcmljXCI7YnJlYWs7Y2FzZVwiWVwiOmNhc2VcInVcIjpjYXNlXCJVXCI6Y2FzZVwiclwiOnRocm93IG5ldyBSYW5nZUVycm9yKFwiYFkvdS9VL3JgICh5ZWFyKSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZCwgdXNlIGB5YCBpbnN0ZWFkXCIpO2Nhc2VcInFcIjpjYXNlXCJRXCI6dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJgcS9RYCAocXVhcnRlcikgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWRcIik7Y2FzZVwiTVwiOmNhc2VcIkxcIjp0Lm1vbnRoPVtcIm51bWVyaWNcIixcIjItZGlnaXRcIixcInNob3J0XCIsXCJsb25nXCIsXCJuYXJyb3dcIl1bbi0xXTticmVhaztjYXNlXCJ3XCI6Y2FzZVwiV1wiOnRocm93IG5ldyBSYW5nZUVycm9yKFwiYHcvV2AgKHdlZWspIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkXCIpO2Nhc2VcImRcIjp0LmRheT1bXCJudW1lcmljXCIsXCIyLWRpZ2l0XCJdW24tMV07YnJlYWs7Y2FzZVwiRFwiOmNhc2VcIkZcIjpjYXNlXCJnXCI6dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJgRC9GL2dgIChkYXkpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYGRgIGluc3RlYWRcIik7Y2FzZVwiRVwiOnQud2Vla2RheT00PT09bj9cInNob3J0XCI6NT09PW4/XCJuYXJyb3dcIjpcInNob3J0XCI7YnJlYWs7Y2FzZVwiZVwiOmlmKG48NCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcImBlLi5lZWVgICh3ZWVrZGF5KSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZFwiKTt0LndlZWtkYXk9W1wic2hvcnRcIixcImxvbmdcIixcIm5hcnJvd1wiLFwic2hvcnRcIl1bbi00XTticmVhaztjYXNlXCJjXCI6aWYobjw0KXRocm93IG5ldyBSYW5nZUVycm9yKFwiYGMuLmNjY2AgKHdlZWtkYXkpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkXCIpO3Qud2Vla2RheT1bXCJzaG9ydFwiLFwibG9uZ1wiLFwibmFycm93XCIsXCJzaG9ydFwiXVtuLTRdO2JyZWFrO2Nhc2VcImFcIjp0LmhvdXIxMj0hMDticmVhaztjYXNlXCJiXCI6Y2FzZVwiQlwiOnRocm93IG5ldyBSYW5nZUVycm9yKFwiYGIvQmAgKHBlcmlvZCkgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgYWAgaW5zdGVhZFwiKTtjYXNlXCJoXCI6dC5ob3VyQ3ljbGU9XCJoMTJcIix0LmhvdXI9W1wibnVtZXJpY1wiLFwiMi1kaWdpdFwiXVtuLTFdO2JyZWFrO2Nhc2VcIkhcIjp0LmhvdXJDeWNsZT1cImgyM1wiLHQuaG91cj1bXCJudW1lcmljXCIsXCIyLWRpZ2l0XCJdW24tMV07YnJlYWs7Y2FzZVwiS1wiOnQuaG91ckN5Y2xlPVwiaDExXCIsdC5ob3VyPVtcIm51bWVyaWNcIixcIjItZGlnaXRcIl1bbi0xXTticmVhaztjYXNlXCJrXCI6dC5ob3VyQ3ljbGU9XCJoMjRcIix0LmhvdXI9W1wibnVtZXJpY1wiLFwiMi1kaWdpdFwiXVtuLTFdO2JyZWFrO2Nhc2VcImpcIjpjYXNlXCJKXCI6Y2FzZVwiQ1wiOnRocm93IG5ldyBSYW5nZUVycm9yKFwiYGovSi9DYCAoaG91cikgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgaC9IL0sva2AgaW5zdGVhZFwiKTtjYXNlXCJtXCI6dC5taW51dGU9W1wibnVtZXJpY1wiLFwiMi1kaWdpdFwiXVtuLTFdO2JyZWFrO2Nhc2VcInNcIjp0LnNlY29uZD1bXCJudW1lcmljXCIsXCIyLWRpZ2l0XCJdW24tMV07YnJlYWs7Y2FzZVwiU1wiOmNhc2VcIkFcIjp0aHJvdyBuZXcgUmFuZ2VFcnJvcihcImBTL0FgIChzZWNvbmQpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYHNgIGluc3RlYWRcIik7Y2FzZVwielwiOnQudGltZVpvbmVOYW1lPW48ND9cInNob3J0XCI6XCJsb25nXCI7YnJlYWs7Y2FzZVwiWlwiOmNhc2VcIk9cIjpjYXNlXCJ2XCI6Y2FzZVwiVlwiOmNhc2VcIlhcIjpjYXNlXCJ4XCI6dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJgWi9PL3YvVi9YL3hgICh0aW1lWm9uZSkgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgemAgaW5zdGVhZFwiKX1yZXR1cm5cIlwifSkpLHR9dmFyIHg9L1tcXHQtXFxyIFxceDg1XFx1MjAwRVxcdTIwMEZcXHUyMDI4XFx1MjAyOV0vaTt2YXIgdz0vXlxcLig/OigwKykoXFwqKT98KCMrKXwoMCspKCMrKSkkL2csaz0vXihAKyk/KFxcK3wjKyk/W3JzXT8kL2csRT0vKFxcKikoMCspfCgjKykoMCspfCgwKykvZyxTPS9eKDArKSQvO2Z1bmN0aW9uIEEoZSl7dmFyIHQ9e307cmV0dXJuXCJyXCI9PT1lW2UubGVuZ3RoLTFdP3Qucm91bmRpbmdQcmlvcml0eT1cIm1vcmVQcmVjaXNpb25cIjpcInNcIj09PWVbZS5sZW5ndGgtMV0mJih0LnJvdW5kaW5nUHJpb3JpdHk9XCJsZXNzUHJlY2lzaW9uXCIpLGUucmVwbGFjZShrLChmdW5jdGlvbihlLG4scil7cmV0dXJuXCJzdHJpbmdcIiE9PXR5cGVvZiByPyh0Lm1pbmltdW1TaWduaWZpY2FudERpZ2l0cz1uLmxlbmd0aCx0Lm1heGltdW1TaWduaWZpY2FudERpZ2l0cz1uLmxlbmd0aCk6XCIrXCI9PT1yP3QubWluaW11bVNpZ25pZmljYW50RGlnaXRzPW4ubGVuZ3RoOlwiI1wiPT09blswXT90Lm1heGltdW1TaWduaWZpY2FudERpZ2l0cz1uLmxlbmd0aDoodC5taW5pbXVtU2lnbmlmaWNhbnREaWdpdHM9bi5sZW5ndGgsdC5tYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM9bi5sZW5ndGgrKFwic3RyaW5nXCI9PT10eXBlb2Ygcj9yLmxlbmd0aDowKSksXCJcIn0pKSx0fWZ1bmN0aW9uIEMoZSl7c3dpdGNoKGUpe2Nhc2VcInNpZ24tYXV0b1wiOnJldHVybntzaWduRGlzcGxheTpcImF1dG9cIn07Y2FzZVwic2lnbi1hY2NvdW50aW5nXCI6Y2FzZVwiKClcIjpyZXR1cm57Y3VycmVuY3lTaWduOlwiYWNjb3VudGluZ1wifTtjYXNlXCJzaWduLWFsd2F5c1wiOmNhc2VcIishXCI6cmV0dXJue3NpZ25EaXNwbGF5OlwiYWx3YXlzXCJ9O2Nhc2VcInNpZ24tYWNjb3VudGluZy1hbHdheXNcIjpjYXNlXCIoKSFcIjpyZXR1cm57c2lnbkRpc3BsYXk6XCJhbHdheXNcIixjdXJyZW5jeVNpZ246XCJhY2NvdW50aW5nXCJ9O2Nhc2VcInNpZ24tZXhjZXB0LXplcm9cIjpjYXNlXCIrP1wiOnJldHVybntzaWduRGlzcGxheTpcImV4Y2VwdFplcm9cIn07Y2FzZVwic2lnbi1hY2NvdW50aW5nLWV4Y2VwdC16ZXJvXCI6Y2FzZVwiKCk/XCI6cmV0dXJue3NpZ25EaXNwbGF5OlwiZXhjZXB0WmVyb1wiLGN1cnJlbmN5U2lnbjpcImFjY291bnRpbmdcIn07Y2FzZVwic2lnbi1uZXZlclwiOmNhc2VcIitfXCI6cmV0dXJue3NpZ25EaXNwbGF5OlwibmV2ZXJcIn19fWZ1bmN0aW9uIF8oZSl7dmFyIHQ7aWYoXCJFXCI9PT1lWzBdJiZcIkVcIj09PWVbMV0/KHQ9e25vdGF0aW9uOlwiZW5naW5lZXJpbmdcIn0sZT1lLnNsaWNlKDIpKTpcIkVcIj09PWVbMF0mJih0PXtub3RhdGlvbjpcInNjaWVudGlmaWNcIn0sZT1lLnNsaWNlKDEpKSx0KXt2YXIgbj1lLnNsaWNlKDAsMik7aWYoXCIrIVwiPT09bj8odC5zaWduRGlzcGxheT1cImFsd2F5c1wiLGU9ZS5zbGljZSgyKSk6XCIrP1wiPT09biYmKHQuc2lnbkRpc3BsYXk9XCJleGNlcHRaZXJvXCIsZT1lLnNsaWNlKDIpKSwhUy50ZXN0KGUpKXRocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBjb25jaXNlIGVuZy9zY2llbnRpZmljIG5vdGF0aW9uXCIpO3QubWluaW11bUludGVnZXJEaWdpdHM9ZS5sZW5ndGh9cmV0dXJuIHR9ZnVuY3Rpb24gRChlKXt2YXIgdD1DKGUpO3JldHVybiB0fHx7fX1mdW5jdGlvbiBSKGUpe2Zvcih2YXIgdD17fSxuPTAscj1lO248ci5sZW5ndGg7bisrKXt2YXIgbz1yW25dO3N3aXRjaChvLnN0ZW0pe2Nhc2VcInBlcmNlbnRcIjpjYXNlXCIlXCI6dC5zdHlsZT1cInBlcmNlbnRcIjtjb250aW51ZTtjYXNlXCIleDEwMFwiOnQuc3R5bGU9XCJwZXJjZW50XCIsdC5zY2FsZT0xMDA7Y29udGludWU7Y2FzZVwiY3VycmVuY3lcIjp0LnN0eWxlPVwiY3VycmVuY3lcIix0LmN1cnJlbmN5PW8ub3B0aW9uc1swXTtjb250aW51ZTtjYXNlXCJncm91cC1vZmZcIjpjYXNlXCIsX1wiOnQudXNlR3JvdXBpbmc9ITE7Y29udGludWU7Y2FzZVwicHJlY2lzaW9uLWludGVnZXJcIjpjYXNlXCIuXCI6dC5tYXhpbXVtRnJhY3Rpb25EaWdpdHM9MDtjb250aW51ZTtjYXNlXCJtZWFzdXJlLXVuaXRcIjpjYXNlXCJ1bml0XCI6dC5zdHlsZT1cInVuaXRcIix0LnVuaXQ9by5vcHRpb25zWzBdLnJlcGxhY2UoL14oLio/KS0vLFwiXCIpO2NvbnRpbnVlO2Nhc2VcImNvbXBhY3Qtc2hvcnRcIjpjYXNlXCJLXCI6dC5ub3RhdGlvbj1cImNvbXBhY3RcIix0LmNvbXBhY3REaXNwbGF5PVwic2hvcnRcIjtjb250aW51ZTtjYXNlXCJjb21wYWN0LWxvbmdcIjpjYXNlXCJLS1wiOnQubm90YXRpb249XCJjb21wYWN0XCIsdC5jb21wYWN0RGlzcGxheT1cImxvbmdcIjtjb250aW51ZTtjYXNlXCJzY2llbnRpZmljXCI6dD0oMCxhLnBpKSgoMCxhLnBpKSgoMCxhLnBpKSh7fSx0KSx7bm90YXRpb246XCJzY2llbnRpZmljXCJ9KSxvLm9wdGlvbnMucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybigwLGEucGkpKCgwLGEucGkpKHt9LGUpLEQodCkpfSkse30pKTtjb250aW51ZTtjYXNlXCJlbmdpbmVlcmluZ1wiOnQ9KDAsYS5waSkoKDAsYS5waSkoKDAsYS5waSkoe30sdCkse25vdGF0aW9uOlwiZW5naW5lZXJpbmdcIn0pLG8ub3B0aW9ucy5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsYS5waSkoKDAsYS5waSkoe30sZSksRCh0KSl9KSx7fSkpO2NvbnRpbnVlO2Nhc2VcIm5vdGF0aW9uLXNpbXBsZVwiOnQubm90YXRpb249XCJzdGFuZGFyZFwiO2NvbnRpbnVlO2Nhc2VcInVuaXQtd2lkdGgtbmFycm93XCI6dC5jdXJyZW5jeURpc3BsYXk9XCJuYXJyb3dTeW1ib2xcIix0LnVuaXREaXNwbGF5PVwibmFycm93XCI7Y29udGludWU7Y2FzZVwidW5pdC13aWR0aC1zaG9ydFwiOnQuY3VycmVuY3lEaXNwbGF5PVwiY29kZVwiLHQudW5pdERpc3BsYXk9XCJzaG9ydFwiO2NvbnRpbnVlO2Nhc2VcInVuaXQtd2lkdGgtZnVsbC1uYW1lXCI6dC5jdXJyZW5jeURpc3BsYXk9XCJuYW1lXCIsdC51bml0RGlzcGxheT1cImxvbmdcIjtjb250aW51ZTtjYXNlXCJ1bml0LXdpZHRoLWlzby1jb2RlXCI6dC5jdXJyZW5jeURpc3BsYXk9XCJzeW1ib2xcIjtjb250aW51ZTtjYXNlXCJzY2FsZVwiOnQuc2NhbGU9cGFyc2VGbG9hdChvLm9wdGlvbnNbMF0pO2NvbnRpbnVlO2Nhc2VcImludGVnZXItd2lkdGhcIjppZihvLm9wdGlvbnMubGVuZ3RoPjEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJpbnRlZ2VyLXdpZHRoIHN0ZW1zIG9ubHkgYWNjZXB0IGEgc2luZ2xlIG9wdGlvbmFsIG9wdGlvblwiKTtvLm9wdGlvbnNbMF0ucmVwbGFjZShFLChmdW5jdGlvbihlLG4scixvLGksYSl7aWYobil0Lm1pbmltdW1JbnRlZ2VyRGlnaXRzPXIubGVuZ3RoO2Vsc2V7aWYobyYmaSl0aHJvdyBuZXcgRXJyb3IoXCJXZSBjdXJyZW50bHkgZG8gbm90IHN1cHBvcnQgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0c1wiKTtpZihhKXRocm93IG5ldyBFcnJvcihcIldlIGN1cnJlbnRseSBkbyBub3Qgc3VwcG9ydCBleGFjdCBpbnRlZ2VyIGRpZ2l0c1wiKX1yZXR1cm5cIlwifSkpO2NvbnRpbnVlfWlmKFMudGVzdChvLnN0ZW0pKXQubWluaW11bUludGVnZXJEaWdpdHM9by5zdGVtLmxlbmd0aDtlbHNlIGlmKHcudGVzdChvLnN0ZW0pKXtpZihvLm9wdGlvbnMubGVuZ3RoPjEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJGcmFjdGlvbi1wcmVjaXNpb24gc3RlbXMgb25seSBhY2NlcHQgYSBzaW5nbGUgb3B0aW9uYWwgb3B0aW9uXCIpO28uc3RlbS5yZXBsYWNlKHcsKGZ1bmN0aW9uKGUsbixyLG8saSxhKXtyZXR1cm5cIipcIj09PXI/dC5taW5pbXVtRnJhY3Rpb25EaWdpdHM9bi5sZW5ndGg6byYmXCIjXCI9PT1vWzBdP3QubWF4aW11bUZyYWN0aW9uRGlnaXRzPW8ubGVuZ3RoOmkmJmE/KHQubWluaW11bUZyYWN0aW9uRGlnaXRzPWkubGVuZ3RoLHQubWF4aW11bUZyYWN0aW9uRGlnaXRzPWkubGVuZ3RoK2EubGVuZ3RoKToodC5taW5pbXVtRnJhY3Rpb25EaWdpdHM9bi5sZW5ndGgsdC5tYXhpbXVtRnJhY3Rpb25EaWdpdHM9bi5sZW5ndGgpLFwiXCJ9KSk7dmFyIGk9by5vcHRpb25zWzBdO1wid1wiPT09aT90PSgwLGEucGkpKCgwLGEucGkpKHt9LHQpLHt0cmFpbGluZ1plcm9EaXNwbGF5Olwic3RyaXBJZkludGVnZXJcIn0pOmkmJih0PSgwLGEucGkpKCgwLGEucGkpKHt9LHQpLEEoaSkpKX1lbHNlIGlmKGsudGVzdChvLnN0ZW0pKXQ9KDAsYS5waSkoKDAsYS5waSkoe30sdCksQShvLnN0ZW0pKTtlbHNle3ZhciBzPUMoby5zdGVtKTtzJiYodD0oMCxhLnBpKSgoMCxhLnBpKSh7fSx0KSxzKSk7dmFyIGw9XyhvLnN0ZW0pO2wmJih0PSgwLGEucGkpKCgwLGEucGkpKHt9LHQpLGwpKX19cmV0dXJuIHR9dmFyIE8sUD17QVg6W1wiSFwiXSxCUTpbXCJIXCJdLENQOltcIkhcIl0sQ1o6W1wiSFwiXSxESzpbXCJIXCJdLEZJOltcIkhcIl0sSUQ6W1wiSFwiXSxJUzpbXCJIXCJdLE1MOltcIkhcIl0sTkU6W1wiSFwiXSxSVTpbXCJIXCJdLFNFOltcIkhcIl0sU0o6W1wiSFwiXSxTSzpbXCJIXCJdLEFTOltcImhcIixcIkhcIl0sQlQ6W1wiaFwiLFwiSFwiXSxESjpbXCJoXCIsXCJIXCJdLEVSOltcImhcIixcIkhcIl0sR0g6W1wiaFwiLFwiSFwiXSxJTjpbXCJoXCIsXCJIXCJdLExTOltcImhcIixcIkhcIl0sUEc6W1wiaFwiLFwiSFwiXSxQVzpbXCJoXCIsXCJIXCJdLFNPOltcImhcIixcIkhcIl0sVE86W1wiaFwiLFwiSFwiXSxWVTpbXCJoXCIsXCJIXCJdLFdTOltcImhcIixcIkhcIl0sXCIwMDFcIjpbXCJIXCIsXCJoXCJdLEFMOltcImhcIixcIkhcIixcImhCXCJdLFREOltcImhcIixcIkhcIixcImhCXCJdLFwiY2EtRVNcIjpbXCJIXCIsXCJoXCIsXCJoQlwiXSxDRjpbXCJIXCIsXCJoXCIsXCJoQlwiXSxDTTpbXCJIXCIsXCJoXCIsXCJoQlwiXSxcImZyLUNBXCI6W1wiSFwiLFwiaFwiLFwiaEJcIl0sXCJnbC1FU1wiOltcIkhcIixcImhcIixcImhCXCJdLFwiaXQtQ0hcIjpbXCJIXCIsXCJoXCIsXCJoQlwiXSxcIml0LUlUXCI6W1wiSFwiLFwiaFwiLFwiaEJcIl0sTFU6W1wiSFwiLFwiaFwiLFwiaEJcIl0sTlA6W1wiSFwiLFwiaFwiLFwiaEJcIl0sUEY6W1wiSFwiLFwiaFwiLFwiaEJcIl0sU0M6W1wiSFwiLFwiaFwiLFwiaEJcIl0sU006W1wiSFwiLFwiaFwiLFwiaEJcIl0sU046W1wiSFwiLFwiaFwiLFwiaEJcIl0sVEY6W1wiSFwiLFwiaFwiLFwiaEJcIl0sVkE6W1wiSFwiLFwiaFwiLFwiaEJcIl0sQ1k6W1wiaFwiLFwiSFwiLFwiaGJcIixcImhCXCJdLEdSOltcImhcIixcIkhcIixcImhiXCIsXCJoQlwiXSxDTzpbXCJoXCIsXCJIXCIsXCJoQlwiLFwiaGJcIl0sRE86W1wiaFwiLFwiSFwiLFwiaEJcIixcImhiXCJdLEtQOltcImhcIixcIkhcIixcImhCXCIsXCJoYlwiXSxLUjpbXCJoXCIsXCJIXCIsXCJoQlwiLFwiaGJcIl0sTkE6W1wiaFwiLFwiSFwiLFwiaEJcIixcImhiXCJdLFBBOltcImhcIixcIkhcIixcImhCXCIsXCJoYlwiXSxQUjpbXCJoXCIsXCJIXCIsXCJoQlwiLFwiaGJcIl0sVkU6W1wiaFwiLFwiSFwiLFwiaEJcIixcImhiXCJdLEFDOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxBSTpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sQlc6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLEJaOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxDQzpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sQ0s6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLENYOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxERzpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sRks6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLEdCOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxHRzpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sR0k6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLElFOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxJTTpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sSU86W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLEpFOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxMVDpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sTUs6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLE1OOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxNUzpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sTkY6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLE5HOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxOUjpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sTlU6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLFBOOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxTSDpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sU1g6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLFRBOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxaQTpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sXCJhZi1aQVwiOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxBUjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sQ0w6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLENSOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxDVTpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sRUE6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLFwiZXMtQk9cIjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sXCJlcy1CUlwiOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxcImVzLUVDXCI6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLFwiZXMtRVNcIjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sXCJlcy1HUVwiOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxcImVzLVBFXCI6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLEdUOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxITjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sSUM6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLEtHOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxLTTpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sTEs6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLE1BOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxNWDpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sTkk6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLFBZOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxTVjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sVVk6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLEpQOltcIkhcIixcImhcIixcIktcIl0sQUQ6W1wiSFwiLFwiaEJcIl0sQU06W1wiSFwiLFwiaEJcIl0sQU86W1wiSFwiLFwiaEJcIl0sQVQ6W1wiSFwiLFwiaEJcIl0sQVc6W1wiSFwiLFwiaEJcIl0sQkU6W1wiSFwiLFwiaEJcIl0sQkY6W1wiSFwiLFwiaEJcIl0sQko6W1wiSFwiLFwiaEJcIl0sQkw6W1wiSFwiLFwiaEJcIl0sQlI6W1wiSFwiLFwiaEJcIl0sQ0c6W1wiSFwiLFwiaEJcIl0sQ0k6W1wiSFwiLFwiaEJcIl0sQ1Y6W1wiSFwiLFwiaEJcIl0sREU6W1wiSFwiLFwiaEJcIl0sRUU6W1wiSFwiLFwiaEJcIl0sRlI6W1wiSFwiLFwiaEJcIl0sR0E6W1wiSFwiLFwiaEJcIl0sR0Y6W1wiSFwiLFwiaEJcIl0sR046W1wiSFwiLFwiaEJcIl0sR1A6W1wiSFwiLFwiaEJcIl0sR1c6W1wiSFwiLFwiaEJcIl0sSFI6W1wiSFwiLFwiaEJcIl0sSUw6W1wiSFwiLFwiaEJcIl0sSVQ6W1wiSFwiLFwiaEJcIl0sS1o6W1wiSFwiLFwiaEJcIl0sTUM6W1wiSFwiLFwiaEJcIl0sTUQ6W1wiSFwiLFwiaEJcIl0sTUY6W1wiSFwiLFwiaEJcIl0sTVE6W1wiSFwiLFwiaEJcIl0sTVo6W1wiSFwiLFwiaEJcIl0sTkM6W1wiSFwiLFwiaEJcIl0sTkw6W1wiSFwiLFwiaEJcIl0sUE06W1wiSFwiLFwiaEJcIl0sUFQ6W1wiSFwiLFwiaEJcIl0sUkU6W1wiSFwiLFwiaEJcIl0sUk86W1wiSFwiLFwiaEJcIl0sU0k6W1wiSFwiLFwiaEJcIl0sU1I6W1wiSFwiLFwiaEJcIl0sU1Q6W1wiSFwiLFwiaEJcIl0sVEc6W1wiSFwiLFwiaEJcIl0sVFI6W1wiSFwiLFwiaEJcIl0sV0Y6W1wiSFwiLFwiaEJcIl0sWVQ6W1wiSFwiLFwiaEJcIl0sQkQ6W1wiaFwiLFwiaEJcIixcIkhcIl0sUEs6W1wiaFwiLFwiaEJcIixcIkhcIl0sQVo6W1wiSFwiLFwiaEJcIixcImhcIl0sQkE6W1wiSFwiLFwiaEJcIixcImhcIl0sQkc6W1wiSFwiLFwiaEJcIixcImhcIl0sQ0g6W1wiSFwiLFwiaEJcIixcImhcIl0sR0U6W1wiSFwiLFwiaEJcIixcImhcIl0sTEk6W1wiSFwiLFwiaEJcIixcImhcIl0sTUU6W1wiSFwiLFwiaEJcIixcImhcIl0sUlM6W1wiSFwiLFwiaEJcIixcImhcIl0sVUE6W1wiSFwiLFwiaEJcIixcImhcIl0sVVo6W1wiSFwiLFwiaEJcIixcImhcIl0sWEs6W1wiSFwiLFwiaEJcIixcImhcIl0sQUc6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEFVOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxCQjpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sQk06W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEJTOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxDQTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sRE06W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFwiZW4tMDAxXCI6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEZKOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxGTTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sR0Q6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEdNOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxHVTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sR1k6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEpNOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxLSTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sS046W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEtZOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxMQzpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sTFI6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLE1IOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxNUDpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sTVc6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLE5aOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxTQjpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sU0c6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFNMOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxTUzpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sU1o6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFRDOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxUVDpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sVU06W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFVTOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxWQzpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sVkc6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFZJOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxaTTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sQk86W1wiSFwiLFwiaEJcIixcImhcIixcImhiXCJdLEVDOltcIkhcIixcImhCXCIsXCJoXCIsXCJoYlwiXSxFUzpbXCJIXCIsXCJoQlwiLFwiaFwiLFwiaGJcIl0sR1E6W1wiSFwiLFwiaEJcIixcImhcIixcImhiXCJdLFBFOltcIkhcIixcImhCXCIsXCJoXCIsXCJoYlwiXSxBRTpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sXCJhci0wMDFcIjpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sQkg6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLERaOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxFRzpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sRUg6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLEhLOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxJUTpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sSk86W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLEtXOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxMQjpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sTFk6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLE1POltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxNUjpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sT006W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLFBIOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxQUzpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sUUE6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLFNBOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxTRDpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sU1k6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLFROOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxZRTpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sQUY6W1wiSFwiLFwiaGJcIixcImhCXCIsXCJoXCJdLExBOltcIkhcIixcImhiXCIsXCJoQlwiLFwiaFwiXSxDTjpbXCJIXCIsXCJoQlwiLFwiaGJcIixcImhcIl0sTFY6W1wiSFwiLFwiaEJcIixcImhiXCIsXCJoXCJdLFRMOltcIkhcIixcImhCXCIsXCJoYlwiLFwiaFwiXSxcInp1LVpBXCI6W1wiSFwiLFwiaEJcIixcImhiXCIsXCJoXCJdLENEOltcImhCXCIsXCJIXCJdLElSOltcImhCXCIsXCJIXCJdLFwiaGktSU5cIjpbXCJoQlwiLFwiaFwiLFwiSFwiXSxcImtuLUlOXCI6W1wiaEJcIixcImhcIixcIkhcIl0sXCJtbC1JTlwiOltcImhCXCIsXCJoXCIsXCJIXCJdLFwidGUtSU5cIjpbXCJoQlwiLFwiaFwiLFwiSFwiXSxLSDpbXCJoQlwiLFwiaFwiLFwiSFwiLFwiaGJcIl0sXCJ0YS1JTlwiOltcImhCXCIsXCJoXCIsXCJoYlwiLFwiSFwiXSxCTjpbXCJoYlwiLFwiaEJcIixcImhcIixcIkhcIl0sTVk6W1wiaGJcIixcImhCXCIsXCJoXCIsXCJIXCJdLEVUOltcImhCXCIsXCJoYlwiLFwiaFwiLFwiSFwiXSxcImd1LUlOXCI6W1wiaEJcIixcImhiXCIsXCJoXCIsXCJIXCJdLFwibXItSU5cIjpbXCJoQlwiLFwiaGJcIixcImhcIixcIkhcIl0sXCJwYS1JTlwiOltcImhCXCIsXCJoYlwiLFwiaFwiLFwiSFwiXSxUVzpbXCJoQlwiLFwiaGJcIixcImhcIixcIkhcIl0sS0U6W1wiaEJcIixcImhiXCIsXCJIXCIsXCJoXCJdLE1NOltcImhCXCIsXCJoYlwiLFwiSFwiLFwiaFwiXSxUWjpbXCJoQlwiLFwiaGJcIixcIkhcIixcImhcIl0sVUc6W1wiaEJcIixcImhiXCIsXCJIXCIsXCJoXCJdfTtmdW5jdGlvbiBMKGUpe3ZhciB0PWUuaG91ckN5Y2xlO2lmKHZvaWQgMD09PXQmJmUuaG91ckN5Y2xlcyYmZS5ob3VyQ3ljbGVzLmxlbmd0aCYmKHQ9ZS5ob3VyQ3ljbGVzWzBdKSx0KXN3aXRjaCh0KXtjYXNlXCJoMjRcIjpyZXR1cm5cImtcIjtjYXNlXCJoMjNcIjpyZXR1cm5cIkhcIjtjYXNlXCJoMTJcIjpyZXR1cm5cImhcIjtjYXNlXCJoMTFcIjpyZXR1cm5cIktcIjtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihcIkludmFsaWQgaG91ckN5Y2xlXCIpfXZhciBuLHI9ZS5sYW5ndWFnZTtyZXR1cm5cInJvb3RcIiE9PXImJihuPWUubWF4aW1pemUoKS5yZWdpb24pLChQW258fFwiXCJdfHxQW3J8fFwiXCJdfHxQW1wiXCIuY29uY2F0KHIsXCItMDAxXCIpXXx8UFtcIjAwMVwiXSlbMF19dmFyIE49bmV3IFJlZ0V4cChcIl5cIi5jb25jYXQodi5zb3VyY2UsXCIqXCIpKSxJPW5ldyBSZWdFeHAoXCJcIi5jb25jYXQodi5zb3VyY2UsXCIqJFwiKSk7ZnVuY3Rpb24gaihlLHQpe3JldHVybntzdGFydDplLGVuZDp0fX12YXIgQj0hIVN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aCxIPSEhU3RyaW5nLmZyb21Db2RlUG9pbnQsRj0hIU9iamVjdC5mcm9tRW50cmllcyxNPSEhU3RyaW5nLnByb3RvdHlwZS5jb2RlUG9pbnRBdCxHPSEhU3RyaW5nLnByb3RvdHlwZS50cmltU3RhcnQsVT0hIVN0cmluZy5wcm90b3R5cGUudHJpbUVuZCx6PSEhTnVtYmVyLmlzU2FmZUludGVnZXI/TnVtYmVyLmlzU2FmZUludGVnZXI6ZnVuY3Rpb24oZSl7cmV0dXJuXCJudW1iZXJcIj09PXR5cGVvZiBlJiZpc0Zpbml0ZShlKSYmTWF0aC5mbG9vcihlKT09PWUmJk1hdGguYWJzKGUpPD05MDA3MTk5MjU0NzQwOTkxfSxWPSEwO3RyeXtWPVwiYVwiPT09KG51bGw9PT0oTz1RKFwiKFteXFxcXHB7V2hpdGVfU3BhY2V9XFxcXHB7UGF0dGVybl9TeW50YXh9XSopXCIsXCJ5dVwiKS5leGVjKFwiYVwiKSl8fHZvaWQgMD09PU8/dm9pZCAwOk9bMF0pfWNhdGNoKGFlKXtWPSExfXZhciBXLHE9Qj9mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuc3RhcnRzV2l0aCh0LG4pfTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuc2xpY2UobixuK3QubGVuZ3RoKT09PXR9LEs9SD9TdHJpbmcuZnJvbUNvZGVQb2ludDpmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtmb3IodmFyIG4scj1cIlwiLG89ZS5sZW5ndGgsaT0wO28+aTspe2lmKChuPWVbaSsrXSk+MTExNDExMSl0aHJvdyBSYW5nZUVycm9yKG4rXCIgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludFwiKTtyKz1uPDY1NTM2P1N0cmluZy5mcm9tQ2hhckNvZGUobik6U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoKG4tPTY1NTM2KT4+MTApLG4lMTAyNCs1NjMyMCl9cmV0dXJuIHJ9LFo9Rj9PYmplY3QuZnJvbUVudHJpZXM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49MCxyPWU7bjxyLmxlbmd0aDtuKyspe3ZhciBvPXJbbl0saT1vWzBdLGE9b1sxXTt0W2ldPWF9cmV0dXJuIHR9LFk9TT9mdW5jdGlvbihlLHQpe3JldHVybiBlLmNvZGVQb2ludEF0KHQpfTpmdW5jdGlvbihlLHQpe3ZhciBuPWUubGVuZ3RoO2lmKCEodDwwfHx0Pj1uKSl7dmFyIHIsbz1lLmNoYXJDb2RlQXQodCk7cmV0dXJuIG88NTUyOTZ8fG8+NTYzMTl8fHQrMT09PW58fChyPWUuY2hhckNvZGVBdCh0KzEpKTw1NjMyMHx8cj41NzM0Mz9vOnItNTYzMjArKG8tNTUyOTY8PDEwKSs2NTUzNn19LCQ9Rz9mdW5jdGlvbihlKXtyZXR1cm4gZS50cmltU3RhcnQoKX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShOLFwiXCIpfSxYPVU/ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbUVuZCgpfTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKEksXCJcIil9O2Z1bmN0aW9uIFEoZSx0KXtyZXR1cm4gbmV3IFJlZ0V4cChlLHQpfWlmKFYpe3ZhciBKPVEoXCIoW15cXFxccHtXaGl0ZV9TcGFjZX1cXFxccHtQYXR0ZXJuX1N5bnRheH1dKilcIixcInl1XCIpO1c9ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4gSi5sYXN0SW5kZXg9dCxudWxsIT09KG49Si5leGVjKGUpWzFdKSYmdm9pZCAwIT09bj9uOlwiXCJ9fWVsc2UgVz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bXTs7KXt2YXIgcj1ZKGUsdCk7aWYodm9pZCAwPT09cnx8bmUocil8fHJlKHIpKWJyZWFrO24ucHVzaChyKSx0Kz1yPj02NTUzNj8yOjF9cmV0dXJuIEsuYXBwbHkodm9pZCAwLG4pfTt2YXIgZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dm9pZCAwPT09dCYmKHQ9e30pLHRoaXMubWVzc2FnZT1lLHRoaXMucG9zaXRpb249e29mZnNldDowLGxpbmU6MSxjb2x1bW46MX0sdGhpcy5pZ25vcmVUYWc9ISF0Lmlnbm9yZVRhZyx0aGlzLmxvY2FsZT10LmxvY2FsZSx0aGlzLnJlcXVpcmVzT3RoZXJDbGF1c2U9ISF0LnJlcXVpcmVzT3RoZXJDbGF1c2UsdGhpcy5zaG91bGRQYXJzZVNrZWxldG9ucz0hIXQuc2hvdWxkUGFyc2VTa2VsZXRvbnN9cmV0dXJuIGUucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMub2Zmc2V0KCkpdGhyb3cgRXJyb3IoXCJwYXJzZXIgY2FuIG9ubHkgYmUgdXNlZCBvbmNlXCIpO3JldHVybiB0aGlzLnBhcnNlTWVzc2FnZSgwLFwiXCIsITEpfSxlLnByb3RvdHlwZS5wYXJzZU1lc3NhZ2U9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaT1bXTshdGhpcy5pc0VPRigpOyl7dmFyIGE9dGhpcy5jaGFyKCk7aWYoMTIzPT09YSl7aWYoKHM9dGhpcy5wYXJzZUFyZ3VtZW50KGUsbikpLmVycilyZXR1cm4gcztpLnB1c2gocy52YWwpfWVsc2V7aWYoMTI1PT09YSYmZT4wKWJyZWFrO2lmKDM1IT09YXx8XCJwbHVyYWxcIiE9PXQmJlwic2VsZWN0b3JkaW5hbFwiIT09dCl7aWYoNjA9PT1hJiYhdGhpcy5pZ25vcmVUYWcmJjQ3PT09dGhpcy5wZWVrKCkpe2lmKG4pYnJlYWs7cmV0dXJuIHRoaXMuZXJyb3Ioci5VTk1BVENIRURfQ0xPU0lOR19UQUcsaih0aGlzLmNsb25lUG9zaXRpb24oKSx0aGlzLmNsb25lUG9zaXRpb24oKSkpfWlmKDYwPT09YSYmIXRoaXMuaWdub3JlVGFnJiZ0ZSh0aGlzLnBlZWsoKXx8MCkpe2lmKChzPXRoaXMucGFyc2VUYWcoZSx0KSkuZXJyKXJldHVybiBzO2kucHVzaChzLnZhbCl9ZWxzZXt2YXIgcztpZigocz10aGlzLnBhcnNlTGl0ZXJhbChlLHQpKS5lcnIpcmV0dXJuIHM7aS5wdXNoKHMudmFsKX19ZWxzZXt2YXIgbD10aGlzLmNsb25lUG9zaXRpb24oKTt0aGlzLmJ1bXAoKSxpLnB1c2goe3R5cGU6by5wb3VuZCxsb2NhdGlvbjpqKGwsdGhpcy5jbG9uZVBvc2l0aW9uKCkpfSl9fX1yZXR1cm57dmFsOmksZXJyOm51bGx9fSxlLnByb3RvdHlwZS5wYXJzZVRhZz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY2xvbmVQb3NpdGlvbigpO3RoaXMuYnVtcCgpO3ZhciBpPXRoaXMucGFyc2VUYWdOYW1lKCk7aWYodGhpcy5idW1wU3BhY2UoKSx0aGlzLmJ1bXBJZihcIi8+XCIpKXJldHVybnt2YWw6e3R5cGU6by5saXRlcmFsLHZhbHVlOlwiPFwiLmNvbmNhdChpLFwiLz5cIiksbG9jYXRpb246aihuLHRoaXMuY2xvbmVQb3NpdGlvbigpKX0sZXJyOm51bGx9O2lmKHRoaXMuYnVtcElmKFwiPlwiKSl7dmFyIGE9dGhpcy5wYXJzZU1lc3NhZ2UoZSsxLHQsITApO2lmKGEuZXJyKXJldHVybiBhO3ZhciBzPWEudmFsLGw9dGhpcy5jbG9uZVBvc2l0aW9uKCk7aWYodGhpcy5idW1wSWYoXCI8L1wiKSl7aWYodGhpcy5pc0VPRigpfHwhdGUodGhpcy5jaGFyKCkpKXJldHVybiB0aGlzLmVycm9yKHIuSU5WQUxJRF9UQUcsaihsLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk7dmFyIGM9dGhpcy5jbG9uZVBvc2l0aW9uKCk7cmV0dXJuIGkhPT10aGlzLnBhcnNlVGFnTmFtZSgpP3RoaXMuZXJyb3Ioci5VTk1BVENIRURfQ0xPU0lOR19UQUcsaihjLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk6KHRoaXMuYnVtcFNwYWNlKCksdGhpcy5idW1wSWYoXCI+XCIpP3t2YWw6e3R5cGU6by50YWcsdmFsdWU6aSxjaGlsZHJlbjpzLGxvY2F0aW9uOmoobix0aGlzLmNsb25lUG9zaXRpb24oKSl9LGVycjpudWxsfTp0aGlzLmVycm9yKHIuSU5WQUxJRF9UQUcsaihsLHRoaXMuY2xvbmVQb3NpdGlvbigpKSkpfXJldHVybiB0aGlzLmVycm9yKHIuVU5DTE9TRURfVEFHLGoobix0aGlzLmNsb25lUG9zaXRpb24oKSkpfXJldHVybiB0aGlzLmVycm9yKHIuSU5WQUxJRF9UQUcsaihuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSl9LGUucHJvdG90eXBlLnBhcnNlVGFnTmFtZT1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5vZmZzZXQoKTtmb3IodGhpcy5idW1wKCk7IXRoaXMuaXNFT0YoKSYmKDQ1PT09KGU9dGhpcy5jaGFyKCkpfHw0Nj09PWV8fGU+PTQ4JiZlPD01N3x8OTU9PT1lfHxlPj05NyYmZTw9MTIyfHxlPj02NSYmZTw9OTB8fDE4Mz09ZXx8ZT49MTkyJiZlPD0yMTR8fGU+PTIxNiYmZTw9MjQ2fHxlPj0yNDgmJmU8PTg5M3x8ZT49ODk1JiZlPD04MTkxfHxlPj04MjA0JiZlPD04MjA1fHxlPj04MjU1JiZlPD04MjU2fHxlPj04MzA0JiZlPD04NTkxfHxlPj0xMTI2NCYmZTw9MTIyNzF8fGU+PTEyMjg5JiZlPD01NTI5NXx8ZT49NjM3NDQmJmU8PTY0OTc1fHxlPj02NTAwOCYmZTw9NjU1MzN8fGU+PTY1NTM2JiZlPD05ODMwMzkpOyl0aGlzLmJ1bXAoKTtyZXR1cm4gdGhpcy5tZXNzYWdlLnNsaWNlKHQsdGhpcy5vZmZzZXQoKSl9LGUucHJvdG90eXBlLnBhcnNlTGl0ZXJhbD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj10aGlzLmNsb25lUG9zaXRpb24oKSxyPVwiXCI7Oyl7dmFyIGk9dGhpcy50cnlQYXJzZVF1b3RlKHQpO2lmKGkpcis9aTtlbHNle3ZhciBhPXRoaXMudHJ5UGFyc2VVbnF1b3RlZChlLHQpO2lmKGEpcis9YTtlbHNle3ZhciBzPXRoaXMudHJ5UGFyc2VMZWZ0QW5nbGVCcmFja2V0KCk7aWYoIXMpYnJlYWs7cis9c319fXZhciBsPWoobix0aGlzLmNsb25lUG9zaXRpb24oKSk7cmV0dXJue3ZhbDp7dHlwZTpvLmxpdGVyYWwsdmFsdWU6cixsb2NhdGlvbjpsfSxlcnI6bnVsbH19LGUucHJvdG90eXBlLnRyeVBhcnNlTGVmdEFuZ2xlQnJhY2tldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzRU9GKCl8fDYwIT09dGhpcy5jaGFyKCl8fCF0aGlzLmlnbm9yZVRhZyYmKHRlKGU9dGhpcy5wZWVrKCl8fDApfHw0Nz09PWUpP251bGw6KHRoaXMuYnVtcCgpLFwiPFwiKTt2YXIgZX0sZS5wcm90b3R5cGUudHJ5UGFyc2VRdW90ZT1mdW5jdGlvbihlKXtpZih0aGlzLmlzRU9GKCl8fDM5IT09dGhpcy5jaGFyKCkpcmV0dXJuIG51bGw7c3dpdGNoKHRoaXMucGVlaygpKXtjYXNlIDM5OnJldHVybiB0aGlzLmJ1bXAoKSx0aGlzLmJ1bXAoKSxcIidcIjtjYXNlIDEyMzpjYXNlIDYwOmNhc2UgNjI6Y2FzZSAxMjU6YnJlYWs7Y2FzZSAzNTppZihcInBsdXJhbFwiPT09ZXx8XCJzZWxlY3RvcmRpbmFsXCI9PT1lKWJyZWFrO3JldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9dGhpcy5idW1wKCk7dmFyIHQ9W3RoaXMuY2hhcigpXTtmb3IodGhpcy5idW1wKCk7IXRoaXMuaXNFT0YoKTspe3ZhciBuPXRoaXMuY2hhcigpO2lmKDM5PT09bil7aWYoMzkhPT10aGlzLnBlZWsoKSl7dGhpcy5idW1wKCk7YnJlYWt9dC5wdXNoKDM5KSx0aGlzLmJ1bXAoKX1lbHNlIHQucHVzaChuKTt0aGlzLmJ1bXAoKX1yZXR1cm4gSy5hcHBseSh2b2lkIDAsdCl9LGUucHJvdG90eXBlLnRyeVBhcnNlVW5xdW90ZWQ9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmlzRU9GKCkpcmV0dXJuIG51bGw7dmFyIG49dGhpcy5jaGFyKCk7cmV0dXJuIDYwPT09bnx8MTIzPT09bnx8MzU9PT1uJiYoXCJwbHVyYWxcIj09PXR8fFwic2VsZWN0b3JkaW5hbFwiPT09dCl8fDEyNT09PW4mJmU+MD9udWxsOih0aGlzLmJ1bXAoKSxLKG4pKX0sZS5wcm90b3R5cGUucGFyc2VBcmd1bWVudD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKHRoaXMuYnVtcCgpLHRoaXMuYnVtcFNwYWNlKCksdGhpcy5pc0VPRigpKXJldHVybiB0aGlzLmVycm9yKHIuRVhQRUNUX0FSR1VNRU5UX0NMT1NJTkdfQlJBQ0UsaihuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk7aWYoMTI1PT09dGhpcy5jaGFyKCkpcmV0dXJuIHRoaXMuYnVtcCgpLHRoaXMuZXJyb3Ioci5FTVBUWV9BUkdVTUVOVCxqKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTt2YXIgaT10aGlzLnBhcnNlSWRlbnRpZmllcklmUG9zc2libGUoKS52YWx1ZTtpZighaSlyZXR1cm4gdGhpcy5lcnJvcihyLk1BTEZPUk1FRF9BUkdVTUVOVCxqKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTtpZih0aGlzLmJ1bXBTcGFjZSgpLHRoaXMuaXNFT0YoKSlyZXR1cm4gdGhpcy5lcnJvcihyLkVYUEVDVF9BUkdVTUVOVF9DTE9TSU5HX0JSQUNFLGoobix0aGlzLmNsb25lUG9zaXRpb24oKSkpO3N3aXRjaCh0aGlzLmNoYXIoKSl7Y2FzZSAxMjU6cmV0dXJuIHRoaXMuYnVtcCgpLHt2YWw6e3R5cGU6by5hcmd1bWVudCx2YWx1ZTppLGxvY2F0aW9uOmoobix0aGlzLmNsb25lUG9zaXRpb24oKSl9LGVycjpudWxsfTtjYXNlIDQ0OnJldHVybiB0aGlzLmJ1bXAoKSx0aGlzLmJ1bXBTcGFjZSgpLHRoaXMuaXNFT0YoKT90aGlzLmVycm9yKHIuRVhQRUNUX0FSR1VNRU5UX0NMT1NJTkdfQlJBQ0UsaihuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk6dGhpcy5wYXJzZUFyZ3VtZW50T3B0aW9ucyhlLHQsaSxuKTtkZWZhdWx0OnJldHVybiB0aGlzLmVycm9yKHIuTUFMRk9STUVEX0FSR1VNRU5ULGoobix0aGlzLmNsb25lUG9zaXRpb24oKSkpfX0sZS5wcm90b3R5cGUucGFyc2VJZGVudGlmaWVySWZQb3NzaWJsZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuY2xvbmVQb3NpdGlvbigpLHQ9dGhpcy5vZmZzZXQoKSxuPVcodGhpcy5tZXNzYWdlLHQpLHI9dCtuLmxlbmd0aDtyZXR1cm4gdGhpcy5idW1wVG8ocikse3ZhbHVlOm4sbG9jYXRpb246aihlLHRoaXMuY2xvbmVQb3NpdGlvbigpKX19LGUucHJvdG90eXBlLnBhcnNlQXJndW1lbnRPcHRpb25zPWZ1bmN0aW9uKGUsdCxuLHMpe3ZhciBsLGM9dGhpcy5jbG9uZVBvc2l0aW9uKCksdT10aGlzLnBhcnNlSWRlbnRpZmllcklmUG9zc2libGUoKS52YWx1ZSxkPXRoaXMuY2xvbmVQb3NpdGlvbigpO3N3aXRjaCh1KXtjYXNlXCJcIjpyZXR1cm4gdGhpcy5lcnJvcihyLkVYUEVDVF9BUkdVTUVOVF9UWVBFLGooYyxkKSk7Y2FzZVwibnVtYmVyXCI6Y2FzZVwiZGF0ZVwiOmNhc2VcInRpbWVcIjp0aGlzLmJ1bXBTcGFjZSgpO3ZhciBwPW51bGw7aWYodGhpcy5idW1wSWYoXCIsXCIpKXt0aGlzLmJ1bXBTcGFjZSgpO3ZhciBmPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKCh3PXRoaXMucGFyc2VTaW1wbGVBcmdTdHlsZUlmUG9zc2libGUoKSkuZXJyKXJldHVybiB3O2lmKDA9PT0oeT1YKHcudmFsKSkubGVuZ3RoKXJldHVybiB0aGlzLmVycm9yKHIuRVhQRUNUX0FSR1VNRU5UX1NUWUxFLGoodGhpcy5jbG9uZVBvc2l0aW9uKCksdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTtwPXtzdHlsZTp5LHN0eWxlTG9jYXRpb246aihmLHRoaXMuY2xvbmVQb3NpdGlvbigpKX19aWYoKGs9dGhpcy50cnlQYXJzZUFyZ3VtZW50Q2xvc2UocykpLmVycilyZXR1cm4gazt2YXIgaD1qKHMsdGhpcy5jbG9uZVBvc2l0aW9uKCkpO2lmKHAmJnEobnVsbD09PXB8fHZvaWQgMD09PXA/dm9pZCAwOnAuc3R5bGUsXCI6OlwiLDApKXt2YXIgbT0kKHAuc3R5bGUuc2xpY2UoMikpO2lmKFwibnVtYmVyXCI9PT11KXJldHVybih3PXRoaXMucGFyc2VOdW1iZXJTa2VsZXRvbkZyb21TdHJpbmcobSxwLnN0eWxlTG9jYXRpb24pKS5lcnI/dzp7dmFsOnt0eXBlOm8ubnVtYmVyLHZhbHVlOm4sbG9jYXRpb246aCxzdHlsZTp3LnZhbH0sZXJyOm51bGx9O2lmKDA9PT1tLmxlbmd0aClyZXR1cm4gdGhpcy5lcnJvcihyLkVYUEVDVF9EQVRFX1RJTUVfU0tFTEVUT04saCk7dmFyIGc9bTt0aGlzLmxvY2FsZSYmKGc9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49XCJcIixyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBvPWUuY2hhckF0KHIpO2lmKFwialwiPT09byl7Zm9yKHZhciBpPTA7cisxPGUubGVuZ3RoJiZlLmNoYXJBdChyKzEpPT09bzspaSsrLHIrKzt2YXIgYT0xKygxJmkpLHM9aTwyPzE6MysoaT4+MSksbD1MKHQpO2ZvcihcIkhcIiE9bCYmXCJrXCIhPWx8fChzPTApO3MtLSA+MDspbis9XCJhXCI7Zm9yKDthLS0gPjA7KW49bCtufWVsc2Ugbis9XCJKXCI9PT1vP1wiSFwiOm99cmV0dXJuIG59KG0sdGhpcy5sb2NhbGUpKTt2YXIgeT17dHlwZTppLmRhdGVUaW1lLHBhdHRlcm46Zyxsb2NhdGlvbjpwLnN0eWxlTG9jYXRpb24scGFyc2VkT3B0aW9uczp0aGlzLnNob3VsZFBhcnNlU2tlbGV0b25zP1QoZyk6e319O3JldHVybnt2YWw6e3R5cGU6XCJkYXRlXCI9PT11P28uZGF0ZTpvLnRpbWUsdmFsdWU6bixsb2NhdGlvbjpoLHN0eWxlOnl9LGVycjpudWxsfX1yZXR1cm57dmFsOnt0eXBlOlwibnVtYmVyXCI9PT11P28ubnVtYmVyOlwiZGF0ZVwiPT09dT9vLmRhdGU6by50aW1lLHZhbHVlOm4sbG9jYXRpb246aCxzdHlsZTpudWxsIT09KGw9bnVsbD09PXB8fHZvaWQgMD09PXA/dm9pZCAwOnAuc3R5bGUpJiZ2b2lkIDAhPT1sP2w6bnVsbH0sZXJyOm51bGx9O2Nhc2VcInBsdXJhbFwiOmNhc2VcInNlbGVjdG9yZGluYWxcIjpjYXNlXCJzZWxlY3RcIjp2YXIgdj10aGlzLmNsb25lUG9zaXRpb24oKTtpZih0aGlzLmJ1bXBTcGFjZSgpLCF0aGlzLmJ1bXBJZihcIixcIikpcmV0dXJuIHRoaXMuZXJyb3Ioci5FWFBFQ1RfU0VMRUNUX0FSR1VNRU5UX09QVElPTlMsaih2LCgwLGEucGkpKHt9LHYpKSk7dGhpcy5idW1wU3BhY2UoKTt2YXIgYj10aGlzLnBhcnNlSWRlbnRpZmllcklmUG9zc2libGUoKSx4PTA7aWYoXCJzZWxlY3RcIiE9PXUmJlwib2Zmc2V0XCI9PT1iLnZhbHVlKXtpZighdGhpcy5idW1wSWYoXCI6XCIpKXJldHVybiB0aGlzLmVycm9yKHIuRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUUsaih0aGlzLmNsb25lUG9zaXRpb24oKSx0aGlzLmNsb25lUG9zaXRpb24oKSkpO3ZhciB3O2lmKHRoaXMuYnVtcFNwYWNlKCksKHc9dGhpcy50cnlQYXJzZURlY2ltYWxJbnRlZ2VyKHIuRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUUsci5JTlZBTElEX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUUpKS5lcnIpcmV0dXJuIHc7dGhpcy5idW1wU3BhY2UoKSxiPXRoaXMucGFyc2VJZGVudGlmaWVySWZQb3NzaWJsZSgpLHg9dy52YWx9dmFyIGssRT10aGlzLnRyeVBhcnNlUGx1cmFsT3JTZWxlY3RPcHRpb25zKGUsdSx0LGIpO2lmKEUuZXJyKXJldHVybiBFO2lmKChrPXRoaXMudHJ5UGFyc2VBcmd1bWVudENsb3NlKHMpKS5lcnIpcmV0dXJuIGs7dmFyIFM9aihzLHRoaXMuY2xvbmVQb3NpdGlvbigpKTtyZXR1cm5cInNlbGVjdFwiPT09dT97dmFsOnt0eXBlOm8uc2VsZWN0LHZhbHVlOm4sb3B0aW9uczpaKEUudmFsKSxsb2NhdGlvbjpTfSxlcnI6bnVsbH06e3ZhbDp7dHlwZTpvLnBsdXJhbCx2YWx1ZTpuLG9wdGlvbnM6WihFLnZhbCksb2Zmc2V0OngscGx1cmFsVHlwZTpcInBsdXJhbFwiPT09dT9cImNhcmRpbmFsXCI6XCJvcmRpbmFsXCIsbG9jYXRpb246U30sZXJyOm51bGx9O2RlZmF1bHQ6cmV0dXJuIHRoaXMuZXJyb3Ioci5JTlZBTElEX0FSR1VNRU5UX1RZUEUsaihjLGQpKX19LGUucHJvdG90eXBlLnRyeVBhcnNlQXJndW1lbnRDbG9zZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pc0VPRigpfHwxMjUhPT10aGlzLmNoYXIoKT90aGlzLmVycm9yKHIuRVhQRUNUX0FSR1VNRU5UX0NMT1NJTkdfQlJBQ0UsaihlLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk6KHRoaXMuYnVtcCgpLHt2YWw6ITAsZXJyOm51bGx9KX0sZS5wcm90b3R5cGUucGFyc2VTaW1wbGVBcmdTdHlsZUlmUG9zc2libGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCx0PXRoaXMuY2xvbmVQb3NpdGlvbigpOyF0aGlzLmlzRU9GKCk7KXtzd2l0Y2godGhpcy5jaGFyKCkpe2Nhc2UgMzk6dGhpcy5idW1wKCk7dmFyIG49dGhpcy5jbG9uZVBvc2l0aW9uKCk7aWYoIXRoaXMuYnVtcFVudGlsKFwiJ1wiKSlyZXR1cm4gdGhpcy5lcnJvcihyLlVOQ0xPU0VEX1FVT1RFX0lOX0FSR1VNRU5UX1NUWUxFLGoobix0aGlzLmNsb25lUG9zaXRpb24oKSkpO3RoaXMuYnVtcCgpO2JyZWFrO2Nhc2UgMTIzOmUrPTEsdGhpcy5idW1wKCk7YnJlYWs7Y2FzZSAxMjU6aWYoIShlPjApKXJldHVybnt2YWw6dGhpcy5tZXNzYWdlLnNsaWNlKHQub2Zmc2V0LHRoaXMub2Zmc2V0KCkpLGVycjpudWxsfTtlLT0xO2JyZWFrO2RlZmF1bHQ6dGhpcy5idW1wKCl9fXJldHVybnt2YWw6dGhpcy5tZXNzYWdlLnNsaWNlKHQub2Zmc2V0LHRoaXMub2Zmc2V0KCkpLGVycjpudWxsfX0sZS5wcm90b3R5cGUucGFyc2VOdW1iZXJTa2VsZXRvbkZyb21TdHJpbmc9ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXTt0cnl7bj1mdW5jdGlvbihlKXtpZigwPT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiTnVtYmVyIHNrZWxldG9uIGNhbm5vdCBiZSBlbXB0eVwiKTtmb3IodmFyIHQ9W10sbj0wLHI9ZS5zcGxpdCh4KS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aD4wfSkpO248ci5sZW5ndGg7bisrKXt2YXIgbz1yW25dLnNwbGl0KFwiL1wiKTtpZigwPT09by5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBudW1iZXIgc2tlbGV0b25cIik7Zm9yKHZhciBpPW9bMF0sYT1vLnNsaWNlKDEpLHM9MCxsPWE7czxsLmxlbmd0aDtzKyspaWYoMD09PWxbc10ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbnVtYmVyIHNrZWxldG9uXCIpO3QucHVzaCh7c3RlbTppLG9wdGlvbnM6YX0pfXJldHVybiB0fShlKX1jYXRjaChvKXtyZXR1cm4gdGhpcy5lcnJvcihyLklOVkFMSURfTlVNQkVSX1NLRUxFVE9OLHQpfXJldHVybnt2YWw6e3R5cGU6aS5udW1iZXIsdG9rZW5zOm4sbG9jYXRpb246dCxwYXJzZWRPcHRpb25zOnRoaXMuc2hvdWxkUGFyc2VTa2VsZXRvbnM/UihuKTp7fX0sZXJyOm51bGx9fSxlLnByb3RvdHlwZS50cnlQYXJzZVBsdXJhbE9yU2VsZWN0T3B0aW9ucz1mdW5jdGlvbihlLHQsbixvKXtmb3IodmFyIGksYT0hMSxzPVtdLGw9bmV3IFNldCxjPW8udmFsdWUsdT1vLmxvY2F0aW9uOzspe2lmKDA9PT1jLmxlbmd0aCl7dmFyIGQ9dGhpcy5jbG9uZVBvc2l0aW9uKCk7aWYoXCJzZWxlY3RcIj09PXR8fCF0aGlzLmJ1bXBJZihcIj1cIikpYnJlYWs7dmFyIHA9dGhpcy50cnlQYXJzZURlY2ltYWxJbnRlZ2VyKHIuRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUixyLklOVkFMSURfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SKTtpZihwLmVycilyZXR1cm4gcDt1PWooZCx0aGlzLmNsb25lUG9zaXRpb24oKSksYz10aGlzLm1lc3NhZ2Uuc2xpY2UoZC5vZmZzZXQsdGhpcy5vZmZzZXQoKSl9aWYobC5oYXMoYykpcmV0dXJuIHRoaXMuZXJyb3IoXCJzZWxlY3RcIj09PXQ/ci5EVVBMSUNBVEVfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SOnIuRFVQTElDQVRFX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUix1KTtcIm90aGVyXCI9PT1jJiYoYT0hMCksdGhpcy5idW1wU3BhY2UoKTt2YXIgZj10aGlzLmNsb25lUG9zaXRpb24oKTtpZighdGhpcy5idW1wSWYoXCJ7XCIpKXJldHVybiB0aGlzLmVycm9yKFwic2VsZWN0XCI9PT10P3IuRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUl9GUkFHTUVOVDpyLkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JfRlJBR01FTlQsaih0aGlzLmNsb25lUG9zaXRpb24oKSx0aGlzLmNsb25lUG9zaXRpb24oKSkpO3ZhciBoPXRoaXMucGFyc2VNZXNzYWdlKGUrMSx0LG4pO2lmKGguZXJyKXJldHVybiBoO3ZhciBtPXRoaXMudHJ5UGFyc2VBcmd1bWVudENsb3NlKGYpO2lmKG0uZXJyKXJldHVybiBtO3MucHVzaChbYyx7dmFsdWU6aC52YWwsbG9jYXRpb246aihmLHRoaXMuY2xvbmVQb3NpdGlvbigpKX1dKSxsLmFkZChjKSx0aGlzLmJ1bXBTcGFjZSgpLGM9KGk9dGhpcy5wYXJzZUlkZW50aWZpZXJJZlBvc3NpYmxlKCkpLnZhbHVlLHU9aS5sb2NhdGlvbn1yZXR1cm4gMD09PXMubGVuZ3RoP3RoaXMuZXJyb3IoXCJzZWxlY3RcIj09PXQ/ci5FWFBFQ1RfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SOnIuRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUixqKHRoaXMuY2xvbmVQb3NpdGlvbigpLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk6dGhpcy5yZXF1aXJlc090aGVyQ2xhdXNlJiYhYT90aGlzLmVycm9yKHIuTUlTU0lOR19PVEhFUl9DTEFVU0Usaih0aGlzLmNsb25lUG9zaXRpb24oKSx0aGlzLmNsb25lUG9zaXRpb24oKSkpOnt2YWw6cyxlcnI6bnVsbH19LGUucHJvdG90eXBlLnRyeVBhcnNlRGVjaW1hbEludGVnZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbj0xLHI9dGhpcy5jbG9uZVBvc2l0aW9uKCk7dGhpcy5idW1wSWYoXCIrXCIpfHx0aGlzLmJ1bXBJZihcIi1cIikmJihuPS0xKTtmb3IodmFyIG89ITEsaT0wOyF0aGlzLmlzRU9GKCk7KXt2YXIgYT10aGlzLmNoYXIoKTtpZighKGE+PTQ4JiZhPD01NykpYnJlYWs7bz0hMCxpPTEwKmkrKGEtNDgpLHRoaXMuYnVtcCgpfXZhciBzPWoocix0aGlzLmNsb25lUG9zaXRpb24oKSk7cmV0dXJuIG8/eihpKj1uKT97dmFsOmksZXJyOm51bGx9OnRoaXMuZXJyb3IodCxzKTp0aGlzLmVycm9yKGUscyl9LGUucHJvdG90eXBlLm9mZnNldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uLm9mZnNldH0sZS5wcm90b3R5cGUuaXNFT0Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXQoKT09PXRoaXMubWVzc2FnZS5sZW5ndGh9LGUucHJvdG90eXBlLmNsb25lUG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm57b2Zmc2V0OnRoaXMucG9zaXRpb24ub2Zmc2V0LGxpbmU6dGhpcy5wb3NpdGlvbi5saW5lLGNvbHVtbjp0aGlzLnBvc2l0aW9uLmNvbHVtbn19LGUucHJvdG90eXBlLmNoYXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc2l0aW9uLm9mZnNldDtpZihlPj10aGlzLm1lc3NhZ2UubGVuZ3RoKXRocm93IEVycm9yKFwib3V0IG9mIGJvdW5kXCIpO3ZhciB0PVkodGhpcy5tZXNzYWdlLGUpO2lmKHZvaWQgMD09PXQpdGhyb3cgRXJyb3IoXCJPZmZzZXQgXCIuY29uY2F0KGUsXCIgaXMgYXQgaW52YWxpZCBVVEYtMTYgY29kZSB1bml0IGJvdW5kYXJ5XCIpKTtyZXR1cm4gdH0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oZSx0KXtyZXR1cm57dmFsOm51bGwsZXJyOntraW5kOmUsbWVzc2FnZTp0aGlzLm1lc3NhZ2UsbG9jYXRpb246dH19fSxlLnByb3RvdHlwZS5idW1wPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNFT0YoKSl7dmFyIGU9dGhpcy5jaGFyKCk7MTA9PT1lPyh0aGlzLnBvc2l0aW9uLmxpbmUrPTEsdGhpcy5wb3NpdGlvbi5jb2x1bW49MSx0aGlzLnBvc2l0aW9uLm9mZnNldCs9MSk6KHRoaXMucG9zaXRpb24uY29sdW1uKz0xLHRoaXMucG9zaXRpb24ub2Zmc2V0Kz1lPDY1NTM2PzE6Mil9fSxlLnByb3RvdHlwZS5idW1wSWY9ZnVuY3Rpb24oZSl7aWYocSh0aGlzLm1lc3NhZ2UsZSx0aGlzLm9mZnNldCgpKSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy5idW1wKCk7cmV0dXJuITB9cmV0dXJuITF9LGUucHJvdG90eXBlLmJ1bXBVbnRpbD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLm9mZnNldCgpLG49dGhpcy5tZXNzYWdlLmluZGV4T2YoZSx0KTtyZXR1cm4gbj49MD8odGhpcy5idW1wVG8obiksITApOih0aGlzLmJ1bXBUbyh0aGlzLm1lc3NhZ2UubGVuZ3RoKSwhMSl9LGUucHJvdG90eXBlLmJ1bXBUbz1mdW5jdGlvbihlKXtpZih0aGlzLm9mZnNldCgpPmUpdGhyb3cgRXJyb3IoXCJ0YXJnZXRPZmZzZXQgXCIuY29uY2F0KGUsXCIgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2Zmc2V0IFwiKS5jb25jYXQodGhpcy5vZmZzZXQoKSkpO2ZvcihlPU1hdGgubWluKGUsdGhpcy5tZXNzYWdlLmxlbmd0aCk7Oyl7dmFyIHQ9dGhpcy5vZmZzZXQoKTtpZih0PT09ZSlicmVhaztpZih0PmUpdGhyb3cgRXJyb3IoXCJ0YXJnZXRPZmZzZXQgXCIuY29uY2F0KGUsXCIgaXMgYXQgaW52YWxpZCBVVEYtMTYgY29kZSB1bml0IGJvdW5kYXJ5XCIpKTtpZih0aGlzLmJ1bXAoKSx0aGlzLmlzRU9GKCkpYnJlYWt9fSxlLnByb3RvdHlwZS5idW1wU3BhY2U9ZnVuY3Rpb24oKXtmb3IoOyF0aGlzLmlzRU9GKCkmJm5lKHRoaXMuY2hhcigpKTspdGhpcy5idW1wKCl9LGUucHJvdG90eXBlLnBlZWs9ZnVuY3Rpb24oKXtpZih0aGlzLmlzRU9GKCkpcmV0dXJuIG51bGw7dmFyIGU9dGhpcy5jaGFyKCksdD10aGlzLm9mZnNldCgpLG49dGhpcy5tZXNzYWdlLmNoYXJDb2RlQXQodCsoZT49NjU1MzY/MjoxKSk7cmV0dXJuIG51bGwhPT1uJiZ2b2lkIDAhPT1uP246bnVsbH0sZX0oKTtmdW5jdGlvbiB0ZShlKXtyZXR1cm4gZT49OTcmJmU8PTEyMnx8ZT49NjUmJmU8PTkwfWZ1bmN0aW9uIG5lKGUpe3JldHVybiBlPj05JiZlPD0xM3x8MzI9PT1lfHwxMzM9PT1lfHxlPj04MjA2JiZlPD04MjA3fHw4MjMyPT09ZXx8ODIzMz09PWV9ZnVuY3Rpb24gcmUoZSl7cmV0dXJuIGU+PTMzJiZlPD0zNXx8MzY9PT1lfHxlPj0zNyYmZTw9Mzl8fDQwPT09ZXx8NDE9PT1lfHw0Mj09PWV8fDQzPT09ZXx8NDQ9PT1lfHw0NT09PWV8fGU+PTQ2JiZlPD00N3x8ZT49NTgmJmU8PTU5fHxlPj02MCYmZTw9NjJ8fGU+PTYzJiZlPD02NHx8OTE9PT1lfHw5Mj09PWV8fDkzPT09ZXx8OTQ9PT1lfHw5Nj09PWV8fDEyMz09PWV8fDEyND09PWV8fDEyNT09PWV8fDEyNj09PWV8fDE2MT09PWV8fGU+PTE2MiYmZTw9MTY1fHwxNjY9PT1lfHwxNjc9PT1lfHwxNjk9PT1lfHwxNzE9PT1lfHwxNzI9PT1lfHwxNzQ9PT1lfHwxNzY9PT1lfHwxNzc9PT1lfHwxODI9PT1lfHwxODc9PT1lfHwxOTE9PT1lfHwyMTU9PT1lfHwyNDc9PT1lfHxlPj04MjA4JiZlPD04MjEzfHxlPj04MjE0JiZlPD04MjE1fHw4MjE2PT09ZXx8ODIxNz09PWV8fDgyMTg9PT1lfHxlPj04MjE5JiZlPD04MjIwfHw4MjIxPT09ZXx8ODIyMj09PWV8fDgyMjM9PT1lfHxlPj04MjI0JiZlPD04MjMxfHxlPj04MjQwJiZlPD04MjQ4fHw4MjQ5PT09ZXx8ODI1MD09PWV8fGU+PTgyNTEmJmU8PTgyNTR8fGU+PTgyNTcmJmU8PTgyNTl8fDgyNjA9PT1lfHw4MjYxPT09ZXx8ODI2Mj09PWV8fGU+PTgyNjMmJmU8PTgyNzN8fDgyNzQ9PT1lfHw4Mjc1PT09ZXx8ZT49ODI3NyYmZTw9ODI4Nnx8ZT49ODU5MiYmZTw9ODU5Nnx8ZT49ODU5NyYmZTw9ODYwMXx8ZT49ODYwMiYmZTw9ODYwM3x8ZT49ODYwNCYmZTw9ODYwN3x8ODYwOD09PWV8fGU+PTg2MDkmJmU8PTg2MTB8fDg2MTE9PT1lfHxlPj04NjEyJiZlPD04NjEzfHw4NjE0PT09ZXx8ZT49ODYxNSYmZTw9ODYyMXx8ODYyMj09PWV8fGU+PTg2MjMmJmU8PTg2NTN8fGU+PTg2NTQmJmU8PTg2NTV8fGU+PTg2NTYmJmU8PTg2NTd8fDg2NTg9PT1lfHw4NjU5PT09ZXx8ODY2MD09PWV8fGU+PTg2NjEmJmU8PTg2OTF8fGU+PTg2OTImJmU8PTg5NTl8fGU+PTg5NjAmJmU8PTg5Njd8fDg5Njg9PT1lfHw4OTY5PT09ZXx8ODk3MD09PWV8fDg5NzE9PT1lfHxlPj04OTcyJiZlPD04OTkxfHxlPj04OTkyJiZlPD04OTkzfHxlPj04OTk0JiZlPD05ZTN8fDkwMDE9PT1lfHw5MDAyPT09ZXx8ZT49OTAwMyYmZTw9OTA4M3x8OTA4ND09PWV8fGU+PTkwODUmJmU8PTkxMTR8fGU+PTkxMTUmJmU8PTkxMzl8fGU+PTkxNDAmJmU8PTkxNzl8fGU+PTkxODAmJmU8PTkxODV8fGU+PTkxODYmJmU8PTkyNTR8fGU+PTkyNTUmJmU8PTkyNzl8fGU+PTkyODAmJmU8PTkyOTB8fGU+PTkyOTEmJmU8PTkzMTF8fGU+PTk0NzImJmU8PTk2NTR8fDk2NTU9PT1lfHxlPj05NjU2JiZlPD05NjY0fHw5NjY1PT09ZXx8ZT49OTY2NiYmZTw9OTcxOXx8ZT49OTcyMCYmZTw9OTcyN3x8ZT49OTcyOCYmZTw9OTgzOHx8OTgzOT09PWV8fGU+PTk4NDAmJmU8PTEwMDg3fHwxMDA4OD09PWV8fDEwMDg5PT09ZXx8MTAwOTA9PT1lfHwxMDA5MT09PWV8fDEwMDkyPT09ZXx8MTAwOTM9PT1lfHwxMDA5ND09PWV8fDEwMDk1PT09ZXx8MTAwOTY9PT1lfHwxMDA5Nz09PWV8fDEwMDk4PT09ZXx8MTAwOTk9PT1lfHwxMDEwMD09PWV8fDEwMTAxPT09ZXx8ZT49MTAxMzImJmU8PTEwMTc1fHxlPj0xMDE3NiYmZTw9MTAxODB8fDEwMTgxPT09ZXx8MTAxODI9PT1lfHxlPj0xMDE4MyYmZTw9MTAyMTN8fDEwMjE0PT09ZXx8MTAyMTU9PT1lfHwxMDIxNj09PWV8fDEwMjE3PT09ZXx8MTAyMTg9PT1lfHwxMDIxOT09PWV8fDEwMjIwPT09ZXx8MTAyMjE9PT1lfHwxMDIyMj09PWV8fDEwMjIzPT09ZXx8ZT49MTAyMjQmJmU8PTEwMjM5fHxlPj0xMDI0MCYmZTw9MTA0OTV8fGU+PTEwNDk2JiZlPD0xMDYyNnx8MTA2Mjc9PT1lfHwxMDYyOD09PWV8fDEwNjI5PT09ZXx8MTA2MzA9PT1lfHwxMDYzMT09PWV8fDEwNjMyPT09ZXx8MTA2MzM9PT1lfHwxMDYzND09PWV8fDEwNjM1PT09ZXx8MTA2MzY9PT1lfHwxMDYzNz09PWV8fDEwNjM4PT09ZXx8MTA2Mzk9PT1lfHwxMDY0MD09PWV8fDEwNjQxPT09ZXx8MTA2NDI9PT1lfHwxMDY0Mz09PWV8fDEwNjQ0PT09ZXx8MTA2NDU9PT1lfHwxMDY0Nj09PWV8fDEwNjQ3PT09ZXx8MTA2NDg9PT1lfHxlPj0xMDY0OSYmZTw9MTA3MTF8fDEwNzEyPT09ZXx8MTA3MTM9PT1lfHwxMDcxND09PWV8fDEwNzE1PT09ZXx8ZT49MTA3MTYmJmU8PTEwNzQ3fHwxMDc0OD09PWV8fDEwNzQ5PT09ZXx8ZT49MTA3NTAmJmU8PTExMDA3fHxlPj0xMTAwOCYmZTw9MTEwNTV8fGU+PTExMDU2JiZlPD0xMTA3Nnx8ZT49MTEwNzcmJmU8PTExMDc4fHxlPj0xMTA3OSYmZTw9MTEwODR8fGU+PTExMDg1JiZlPD0xMTEyM3x8ZT49MTExMjQmJmU8PTExMTI1fHxlPj0xMTEyNiYmZTw9MTExNTd8fDExMTU4PT09ZXx8ZT49MTExNTkmJmU8PTExMjYzfHxlPj0xMTc3NiYmZTw9MTE3Nzd8fDExNzc4PT09ZXx8MTE3Nzk9PT1lfHwxMTc4MD09PWV8fDExNzgxPT09ZXx8ZT49MTE3ODImJmU8PTExNzg0fHwxMTc4NT09PWV8fDExNzg2PT09ZXx8MTE3ODc9PT1lfHwxMTc4OD09PWV8fDExNzg5PT09ZXx8ZT49MTE3OTAmJmU8PTExNzk4fHwxMTc5OT09PWV8fGU+PTExODAwJiZlPD0xMTgwMXx8MTE4MDI9PT1lfHwxMTgwMz09PWV8fDExODA0PT09ZXx8MTE4MDU9PT1lfHxlPj0xMTgwNiYmZTw9MTE4MDd8fDExODA4PT09ZXx8MTE4MDk9PT1lfHwxMTgxMD09PWV8fDExODExPT09ZXx8MTE4MTI9PT1lfHwxMTgxMz09PWV8fDExODE0PT09ZXx8MTE4MTU9PT1lfHwxMTgxNj09PWV8fDExODE3PT09ZXx8ZT49MTE4MTgmJmU8PTExODIyfHwxMTgyMz09PWV8fGU+PTExODI0JiZlPD0xMTgzM3x8ZT49MTE4MzQmJmU8PTExODM1fHxlPj0xMTgzNiYmZTw9MTE4Mzl8fDExODQwPT09ZXx8MTE4NDE9PT1lfHwxMTg0Mj09PWV8fGU+PTExODQzJiZlPD0xMTg1NXx8ZT49MTE4NTYmJmU8PTExODU3fHwxMTg1OD09PWV8fGU+PTExODU5JiZlPD0xMTkwM3x8ZT49MTIyODkmJmU8PTEyMjkxfHwxMjI5Nj09PWV8fDEyMjk3PT09ZXx8MTIyOTg9PT1lfHwxMjI5OT09PWV8fDEyMzAwPT09ZXx8MTIzMDE9PT1lfHwxMjMwMj09PWV8fDEyMzAzPT09ZXx8MTIzMDQ9PT1lfHwxMjMwNT09PWV8fGU+PTEyMzA2JiZlPD0xMjMwN3x8MTIzMDg9PT1lfHwxMjMwOT09PWV8fDEyMzEwPT09ZXx8MTIzMTE9PT1lfHwxMjMxMj09PWV8fDEyMzEzPT09ZXx8MTIzMTQ9PT1lfHwxMjMxNT09PWV8fDEyMzE2PT09ZXx8MTIzMTc9PT1lfHxlPj0xMjMxOCYmZTw9MTIzMTl8fDEyMzIwPT09ZXx8MTIzMzY9PT1lfHw2NDgzMD09PWV8fDY0ODMxPT09ZXx8ZT49NjUwOTMmJmU8PTY1MDk0fWZ1bmN0aW9uIG9lKGUpe2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZGVsZXRlIGUubG9jYXRpb24scChlKXx8ZihlKSlmb3IodmFyIHQgaW4gZS5vcHRpb25zKWRlbGV0ZSBlLm9wdGlvbnNbdF0ubG9jYXRpb24sb2UoZS5vcHRpb25zW3RdLnZhbHVlKTtlbHNlIGMoZSkmJmcoZS5zdHlsZSl8fCh1KGUpfHxkKGUpKSYmeShlLnN0eWxlKT9kZWxldGUgZS5zdHlsZS5sb2NhdGlvbjptKGUpJiZvZShlLmNoaWxkcmVuKX0pKX1mdW5jdGlvbiBpZShlLHQpe3ZvaWQgMD09PXQmJih0PXt9KSx0PSgwLGEucGkpKHtzaG91bGRQYXJzZVNrZWxldG9uczohMCxyZXF1aXJlc090aGVyQ2xhdXNlOiEwfSx0KTt2YXIgbj1uZXcgZWUoZSx0KS5wYXJzZSgpO2lmKG4uZXJyKXt2YXIgbz1TeW50YXhFcnJvcihyW24uZXJyLmtpbmRdKTt0aHJvdyBvLmxvY2F0aW9uPW4uZXJyLmxvY2F0aW9uLG8ub3JpZ2luYWxNZXNzYWdlPW4uZXJyLm1lc3NhZ2Usb31yZXR1cm4obnVsbD09PXR8fHZvaWQgMD09PXQ/dm9pZCAwOnQuY2FwdHVyZUxvY2F0aW9uKXx8b2Uobi52YWwpLG4udmFsfX0sMTczNjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bi5kKHQseyQ2OigpPT5kLE9WOigpPT5zLFFlOigpPT5jLFJ3OigpPT5pLFg5OigpPT51LGJjOigpPT5yLGdiOigpPT5sLHdJOigpPT5hfSk7dmFyIHIsbz1uKDU5NzEpOyFmdW5jdGlvbihlKXtlLkZPUk1BVF9FUlJPUj1cIkZPUk1BVF9FUlJPUlwiLGUuVU5TVVBQT1JURURfRk9STUFUVEVSPVwiVU5TVVBQT1JURURfRk9STUFUVEVSXCIsZS5JTlZBTElEX0NPTkZJRz1cIklOVkFMSURfQ09ORklHXCIsZS5NSVNTSU5HX0RBVEE9XCJNSVNTSU5HX0RBVEFcIixlLk1JU1NJTkdfVFJBTlNMQVRJT049XCJNSVNTSU5HX1RSQU5TTEFUSU9OXCJ9KHJ8fChyPXt9KSk7dmFyIGk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuLHIsbyl7dmFyIGk9dGhpcyxhPW8/byBpbnN0YW5jZW9mIEVycm9yP286bmV3IEVycm9yKFN0cmluZyhvKSk6dm9pZCAwO3JldHVybihpPWUuY2FsbCh0aGlzLFwiW0Bmb3JtYXRqcy9pbnRsIEVycm9yIFwiLmNvbmNhdChuLFwiXSBcIikuY29uY2F0KHIsXCIgXFxuXCIpLmNvbmNhdChhP1wiXFxuXCIuY29uY2F0KGEubWVzc2FnZSxcIlxcblwiKS5jb25jYXQoYS5zdGFjayk6XCJcIikpfHx0aGlzKS5jb2RlPW4sXCJmdW5jdGlvblwiPT09dHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShpLHQpLGl9cmV0dXJuKDAsby5aVCkodCxlKSx0fShFcnJvciksYT1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7cmV0dXJuIGUuY2FsbCh0aGlzLHIuVU5TVVBQT1JURURfRk9STUFUVEVSLHQsbil8fHRoaXN9cmV0dXJuKDAsby5aVCkodCxlKSx0fShpKSxzPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuKXtyZXR1cm4gZS5jYWxsKHRoaXMsci5JTlZBTElEX0NPTkZJRyx0LG4pfHx0aGlzfXJldHVybigwLG8uWlQpKHQsZSksdH0oaSksbD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7cmV0dXJuIGUuY2FsbCh0aGlzLHIuTUlTU0lOR19EQVRBLHQsbil8fHRoaXN9cmV0dXJuKDAsby5aVCkodCxlKSx0fShpKSxjPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuLG8pe3JldHVybiBlLmNhbGwodGhpcyxyLkZPUk1BVF9FUlJPUixcIlwiLmNvbmNhdCh0LFwiIFxcbkxvY2FsZTogXCIpLmNvbmNhdChuLFwiXFxuXCIpLG8pfHx0aGlzfXJldHVybigwLG8uWlQpKHQsZSksdH0oaSksdT1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbixyLG8pe3ZhciBpPWUuY2FsbCh0aGlzLFwiXCIuY29uY2F0KHQsXCIgXFxuTWVzc2FnZUlEOiBcIikuY29uY2F0KG51bGw9PT1yfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLmlkLFwiXFxuRGVmYXVsdCBNZXNzYWdlOiBcIikuY29uY2F0KG51bGw9PT1yfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLmRlZmF1bHRNZXNzYWdlLFwiXFxuRGVzY3JpcHRpb246IFwiKS5jb25jYXQobnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuZGVzY3JpcHRpb24sXCIgXFxuXCIpLG4sbyl8fHRoaXM7cmV0dXJuIGkuZGVzY3JpcHRvcj1yLGl9cmV0dXJuKDAsby5aVCkodCxlKSx0fShjKSxkPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuKXt2YXIgbz1lLmNhbGwodGhpcyxyLk1JU1NJTkdfVFJBTlNMQVRJT04sJ01pc3NpbmcgbWVzc2FnZTogXCInLmNvbmNhdCh0LmlkLCdcIiBmb3IgbG9jYWxlIFwiJykuY29uY2F0KG4sJ1wiLCB1c2luZyAnKS5jb25jYXQodC5kZWZhdWx0TWVzc2FnZT9cImRlZmF1bHQgbWVzc2FnZVwiOlwiaWRcIixcIiBhcyBmYWxsYmFjay5cIikpfHx0aGlzO3JldHVybiBvLmRlc2NyaXB0b3I9dCxvfXJldHVybigwLG8uWlQpKHQsZSksdH0oaSl9LDQ3MzY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHtMNjooKT0+cyxTbjooKT0+YyxUQjooKT0+cCxaMDooKT0+bCxheDooKT0+ZH0pO3ZhciByPW4oNTk3MSksbz1uKDE0NDIpLGk9bigzNTMxKSxhPW4oMTczNik7ZnVuY3Rpb24gcyhlLHQsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPXt9KSx0LnJlZHVjZSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gciBpbiBlP3Rbcl09ZVtyXTpyIGluIG4mJih0W3JdPW5bcl0pLHR9KSx7fSl9dmFyIGw9e2Zvcm1hdHM6e30sbWVzc2FnZXM6e30sdGltZVpvbmU6dm9pZCAwLGRlZmF1bHRMb2NhbGU6XCJlblwiLGRlZmF1bHRGb3JtYXRzOnt9LGZhbGxiYWNrT25FbXB0eVN0cmluZzohMCxvbkVycm9yOmZ1bmN0aW9uKGUpezB9LG9uV2FybjpmdW5jdGlvbihlKXswfX07ZnVuY3Rpb24gYygpe3JldHVybntkYXRlVGltZTp7fSxudW1iZXI6e30sbWVzc2FnZTp7fSxyZWxhdGl2ZVRpbWU6e30scGx1cmFsUnVsZXM6e30sbGlzdDp7fSxkaXNwbGF5TmFtZXM6e319fWZ1bmN0aW9uIHUoZSl7cmV0dXJue2NyZWF0ZTpmdW5jdGlvbigpe3JldHVybntnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19LHNldDpmdW5jdGlvbih0LG4pe2VbdF09bn19fX19ZnVuY3Rpb24gZChlKXt2b2lkIDA9PT1lJiYoZT17ZGF0ZVRpbWU6e30sbnVtYmVyOnt9LG1lc3NhZ2U6e30scmVsYXRpdmVUaW1lOnt9LHBsdXJhbFJ1bGVzOnt9LGxpc3Q6e30sZGlzcGxheU5hbWVzOnt9fSk7dmFyIHQ9SW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQsbj1JbnRsLkxpc3RGb3JtYXQsYT1JbnRsLkRpc3BsYXlOYW1lcyxzPSgwLGkuWikoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIG5ldygoZT1JbnRsLkRhdGVUaW1lRm9ybWF0KS5iaW5kLmFwcGx5KGUsKDAsci5ldikoW3ZvaWQgMF0sdCwhMSkpKX0pLHtjYWNoZTp1KGUuZGF0ZVRpbWUpLHN0cmF0ZWd5OmkuQS52YXJpYWRpY30pLGw9KDAsaS5aKSgoZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KChlPUludGwuTnVtYmVyRm9ybWF0KS5iaW5kLmFwcGx5KGUsKDAsci5ldikoW3ZvaWQgMF0sdCwhMSkpKX0pLHtjYWNoZTp1KGUubnVtYmVyKSxzdHJhdGVneTppLkEudmFyaWFkaWN9KSxjPSgwLGkuWikoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIG5ldygoZT1JbnRsLlBsdXJhbFJ1bGVzKS5iaW5kLmFwcGx5KGUsKDAsci5ldikoW3ZvaWQgMF0sdCwhMSkpKX0pLHtjYWNoZTp1KGUucGx1cmFsUnVsZXMpLHN0cmF0ZWd5OmkuQS52YXJpYWRpY30pO3JldHVybntnZXREYXRlVGltZUZvcm1hdDpzLGdldE51bWJlckZvcm1hdDpsLGdldE1lc3NhZ2VGb3JtYXQ6KDAsaS5aKSgoZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuIG5ldyBvLkMoZSx0LG4sKDAsci5waSkoe2Zvcm1hdHRlcnM6e2dldE51bWJlckZvcm1hdDpsLGdldERhdGVUaW1lRm9ybWF0OnMsZ2V0UGx1cmFsUnVsZXM6Y319LGl8fHt9KSl9KSx7Y2FjaGU6dShlLm1lc3NhZ2UpLHN0cmF0ZWd5OmkuQS52YXJpYWRpY30pLGdldFJlbGF0aXZlVGltZUZvcm1hdDooMCxpLlopKChmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KHQuYmluZC5hcHBseSh0LCgwLHIuZXYpKFt2b2lkIDBdLGUsITEpKSl9KSx7Y2FjaGU6dShlLnJlbGF0aXZlVGltZSksc3RyYXRlZ3k6aS5BLnZhcmlhZGljfSksZ2V0UGx1cmFsUnVsZXM6YyxnZXRMaXN0Rm9ybWF0OigwLGkuWikoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBuZXcobi5iaW5kLmFwcGx5KG4sKDAsci5ldikoW3ZvaWQgMF0sZSwhMSkpKX0pLHtjYWNoZTp1KGUubGlzdCksc3RyYXRlZ3k6aS5BLnZhcmlhZGljfSksZ2V0RGlzcGxheU5hbWVzOigwLGkuWikoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBuZXcoYS5iaW5kLmFwcGx5KGEsKDAsci5ldikoW3ZvaWQgMF0sZSwhMSkpKX0pLHtjYWNoZTp1KGUuZGlzcGxheU5hbWVzKSxzdHJhdGVneTppLkEudmFyaWFkaWN9KX19ZnVuY3Rpb24gcChlLHQsbixyKXt2YXIgbyxpPWUmJmVbdF07aWYoaSYmKG89aVtuXSksbylyZXR1cm4gbztyKG5ldyBhLndJKFwiTm8gXCIuY29uY2F0KHQsXCIgZm9ybWF0IG5hbWVkOiBcIikuY29uY2F0KG4pKSl9fSw4NjY1OmU9PntcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiB0KGUpe3JldHVybih0PVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1lLmV4cG9ydHM9ZnVuY3Rpb24oKXtmb3IodmFyIGUsbixyPVtdLG89d2luZG93LGk9bztpOyl7dHJ5e2lmKGkuZnJhbWVzLl9fdGNmYXBpTG9jYXRvcil7ZT1pO2JyZWFrfX1jYXRjaChlKXt9aWYoaT09PW8udG9wKWJyZWFrO2k9aS5wYXJlbnR9ZXx8KGZ1bmN0aW9uIGUoKXt2YXIgdD1vLmRvY3VtZW50LG49ISFvLmZyYW1lcy5fX3RjZmFwaUxvY2F0b3I7aWYoIW4paWYodC5ib2R5KXt2YXIgcj10LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7ci5zdHlsZS5jc3NUZXh0PVwiZGlzcGxheTpub25lXCIsci5uYW1lPVwiX190Y2ZhcGlMb2NhdG9yXCIsdC5ib2R5LmFwcGVuZENoaWxkKHIpfWVsc2Ugc2V0VGltZW91dChlLDUpO3JldHVybiFufSgpLG8uX190Y2ZhcGk9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxvPTA7bzxlO28rKyl0W29dPWFyZ3VtZW50c1tvXTtpZighdC5sZW5ndGgpcmV0dXJuIHI7XCJzZXRHZHByQXBwbGllc1wiPT09dFswXT90Lmxlbmd0aD4zJiYyPT09cGFyc2VJbnQodFsxXSwxMCkmJlwiYm9vbGVhblwiPT10eXBlb2YgdFszXSYmKG49dFszXSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0WzJdJiZ0WzJdKFwic2V0XCIsITApKTpcInBpbmdcIj09PXRbMF0/XCJmdW5jdGlvblwiPT10eXBlb2YgdFsyXSYmdFsyXSh7Z2RwckFwcGxpZXM6bixjbXBMb2FkZWQ6ITEsY21wU3RhdHVzOlwic3R1YlwifSk6ci5wdXNoKHQpfSxvLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsKGZ1bmN0aW9uKGUpe3ZhciBuPVwic3RyaW5nXCI9PXR5cGVvZiBlLmRhdGEscj17fTtpZihuKXRyeXtyPUpTT04ucGFyc2UoZS5kYXRhKX1jYXRjaChlKXt9ZWxzZSByPWUuZGF0YTt2YXIgbz1cIm9iamVjdFwiPT09dChyKSYmbnVsbCE9PXI/ci5fX3RjZmFwaUNhbGw6bnVsbDtvJiZ3aW5kb3cuX190Y2ZhcGkoby5jb21tYW5kLG8udmVyc2lvbiwoZnVuY3Rpb24odCxyKXt2YXIgaT17X190Y2ZhcGlSZXR1cm46e3JldHVyblZhbHVlOnQsc3VjY2VzczpyLGNhbGxJZDpvLmNhbGxJZH19O2UmJmUuc291cmNlJiZlLnNvdXJjZS5wb3N0TWVzc2FnZSYmZS5zb3VyY2UucG9zdE1lc3NhZ2Uobj9KU09OLnN0cmluZ2lmeShpKTppLFwiKlwiKX0pLG8ucGFyYW1ldGVyKX0pLCExKSl9fSw1MzE2OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUpe2kubGVuZ3RofHwobygpLCEwKSxpW2kubGVuZ3RoXT1lfWUuZXhwb3J0cz1yO3ZhciBvLGk9W10sYT0wO2Z1bmN0aW9uIHMoKXtmb3IoO2E8aS5sZW5ndGg7KXt2YXIgZT1hO2lmKGErPTEsaVtlXS5jYWxsKCksYT4xMDI0KXtmb3IodmFyIHQ9MCxuPWkubGVuZ3RoLWE7dDxuO3QrKylpW3RdPWlbdCthXTtpLmxlbmd0aC09YSxhPTB9fWkubGVuZ3RoPTAsYT0wLCExfXZhciBsPVwidW5kZWZpbmVkXCIhPT10eXBlb2Ygbi5nP24uZzpzZWxmLGM9bC5NdXRhdGlvbk9ic2VydmVyfHxsLldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7ZnVuY3Rpb24gdShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1zZXRUaW1lb3V0KHIsMCksbj1zZXRJbnRlcnZhbChyLDUwKTtmdW5jdGlvbiByKCl7Y2xlYXJUaW1lb3V0KHQpLGNsZWFySW50ZXJ2YWwobiksZSgpfX19bz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgYz9mdW5jdGlvbihlKXt2YXIgdD0xLG49bmV3IGMoZSkscj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIlwiKTtyZXR1cm4gbi5vYnNlcnZlKHIse2NoYXJhY3RlckRhdGE6ITB9KSxmdW5jdGlvbigpe3Q9LXQsci5kYXRhPXR9fShzKTp1KHMpLHIucmVxdWVzdEZsdXNoPW8sci5tYWtlUmVxdWVzdENhbGxGcm9tVGltZXI9dX0sNDAzNzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyNTA2KSxvPW4oOTcyMiksaT1vKHIoXCJTdHJpbmcucHJvdG90eXBlLmluZGV4T2ZcIikpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXIoZSwhIXQpO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBuJiZpKGUsXCIucHJvdG90eXBlLlwiKT4tMT9vKG4pOm59fSw5NzIyOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzNTApLG89bigyNTA2KSxpPW4oNTk4NiksYT1vKFwiJVR5cGVFcnJvciVcIikscz1vKFwiJUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSVcIiksbD1vKFwiJUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsJVwiKSxjPW8oXCIlUmVmbGVjdC5hcHBseSVcIiwhMCl8fHIuY2FsbChsLHMpLHU9byhcIiVPYmplY3QuZGVmaW5lUHJvcGVydHklXCIsITApLGQ9byhcIiVNYXRoLm1heCVcIik7aWYodSl0cnl7dSh7fSxcImFcIix7dmFsdWU6MX0pfWNhdGNoKGYpe3U9bnVsbH1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGUpdGhyb3cgbmV3IGEoXCJhIGZ1bmN0aW9uIGlzIHJlcXVpcmVkXCIpO3ZhciB0PWMocixsLGFyZ3VtZW50cyk7cmV0dXJuIGkodCwxK2QoMCxlLmxlbmd0aC0oYXJndW1lbnRzLmxlbmd0aC0xKSksITApfTt2YXIgcD1mdW5jdGlvbigpe3JldHVybiBjKHIscyxhcmd1bWVudHMpfTt1P3UoZS5leHBvcnRzLFwiYXBwbHlcIix7dmFsdWU6cH0pOmUuZXhwb3J0cy5hcHBseT1wfSwyNjUxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDQ1MTApKCksbz1uKDI1MDYpLGk9ciYmbyhcIiVPYmplY3QuZGVmaW5lUHJvcGVydHklXCIsITApO2lmKGkpdHJ5e2koe30sXCJhXCIse3ZhbHVlOjF9KX1jYXRjaChjKXtpPSExfXZhciBhPW8oXCIlU3ludGF4RXJyb3IlXCIpLHM9byhcIiVUeXBlRXJyb3IlXCIpLGw9bigzMzQ3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2lmKCFlfHxcIm9iamVjdFwiIT09dHlwZW9mIGUmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlKXRocm93IG5ldyBzKFwiYG9iamAgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbmBcIik7aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiB0JiZcInN5bWJvbFwiIT09dHlwZW9mIHQpdGhyb3cgbmV3IHMoXCJgcHJvcGVydHlgIG11c3QgYmUgYSBzdHJpbmcgb3IgYSBzeW1ib2xgXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MyYmXCJib29sZWFuXCIhPT10eXBlb2YgYXJndW1lbnRzWzNdJiZudWxsIT09YXJndW1lbnRzWzNdKXRocm93IG5ldyBzKFwiYG5vbkVudW1lcmFibGVgLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBhIGJvb2xlYW4gb3IgbnVsbFwiKTtpZihhcmd1bWVudHMubGVuZ3RoPjQmJlwiYm9vbGVhblwiIT09dHlwZW9mIGFyZ3VtZW50c1s0XSYmbnVsbCE9PWFyZ3VtZW50c1s0XSl0aHJvdyBuZXcgcyhcImBub25Xcml0YWJsZWAsIGlmIHByb3ZpZGVkLCBtdXN0IGJlIGEgYm9vbGVhbiBvciBudWxsXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+NSYmXCJib29sZWFuXCIhPT10eXBlb2YgYXJndW1lbnRzWzVdJiZudWxsIT09YXJndW1lbnRzWzVdKXRocm93IG5ldyBzKFwiYG5vbkNvbmZpZ3VyYWJsZWAsIGlmIHByb3ZpZGVkLCBtdXN0IGJlIGEgYm9vbGVhbiBvciBudWxsXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+NiYmXCJib29sZWFuXCIhPT10eXBlb2YgYXJndW1lbnRzWzZdKXRocm93IG5ldyBzKFwiYGxvb3NlYCwgaWYgcHJvdmlkZWQsIG11c3QgYmUgYSBib29sZWFuXCIpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106bnVsbCxvPWFyZ3VtZW50cy5sZW5ndGg+ND9hcmd1bWVudHNbNF06bnVsbCxjPWFyZ3VtZW50cy5sZW5ndGg+NT9hcmd1bWVudHNbNV06bnVsbCx1PWFyZ3VtZW50cy5sZW5ndGg+NiYmYXJndW1lbnRzWzZdLGQ9ISFsJiZsKGUsdCk7aWYoaSlpKGUsdCx7Y29uZmlndXJhYmxlOm51bGw9PT1jJiZkP2QuY29uZmlndXJhYmxlOiFjLGVudW1lcmFibGU6bnVsbD09PXImJmQ/ZC5lbnVtZXJhYmxlOiFyLHZhbHVlOm4sd3JpdGFibGU6bnVsbD09PW8mJmQ/ZC53cml0YWJsZTohb30pO2Vsc2V7aWYoIXUmJihyfHxvfHxjKSl0aHJvdyBuZXcgYShcIlRoaXMgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCBkZWZpbmluZyBhIHByb3BlcnR5IGFzIG5vbi1jb25maWd1cmFibGUsIG5vbi13cml0YWJsZSwgb3Igbm9uLWVudW1lcmFibGUuXCIpO2VbdF09bn19fSw4NzAzOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbigpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGUodCl7cmV0dXJuIGU9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0sZSh0KX1mdW5jdGlvbiB0KGUsbil7cmV0dXJuIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LHQoZSxuKX1mdW5jdGlvbiBuKCl7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiByKGUsbyxpKXtyZXR1cm4gcj1uKCk/UmVmbGVjdC5jb25zdHJ1Y3Q6ZnVuY3Rpb24oZSxuLHIpe3ZhciBvPVtudWxsXTtvLnB1c2guYXBwbHkobyxuKTt2YXIgaT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseShlLG8pKTtyZXR1cm4gciYmdChpLHIucHJvdG90eXBlKSxpfSxyLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBvKGUpe3JldHVybiBpKGUpfHxhKGUpfHxzKGUpfHxjKCl9ZnVuY3Rpb24gaShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBsKGUpfWZ1bmN0aW9uIGEoZSl7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVtcIkBAaXRlcmF0b3JcIl0pcmV0dXJuIEFycmF5LmZyb20oZSl9ZnVuY3Rpb24gcyhlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZSlyZXR1cm4gbChlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4/QXJyYXkuZnJvbShlKTpcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/bChlLHQpOnZvaWQgMH19ZnVuY3Rpb24gbChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGMoKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX12YXIgdT1PYmplY3QuaGFzT3duUHJvcGVydHksZD1PYmplY3Quc2V0UHJvdG90eXBlT2YscD1PYmplY3QuaXNGcm96ZW4sZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsaD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLG09T2JqZWN0LmZyZWV6ZSxnPU9iamVjdC5zZWFsLHk9T2JqZWN0LmNyZWF0ZSx2PVwidW5kZWZpbmVkXCIhPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdCxiPXYuYXBwbHksVD12LmNvbnN0cnVjdDtifHwoYj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuYXBwbHkodCxuKX0pLG18fChtPWZ1bmN0aW9uKGUpe3JldHVybiBlfSksZ3x8KGc9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSxUfHwoVD1mdW5jdGlvbihlLHQpe3JldHVybiByKGUsbyh0KSl9KTt2YXIgeD1QKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSx3PVAoQXJyYXkucHJvdG90eXBlLnBvcCksaz1QKEFycmF5LnByb3RvdHlwZS5wdXNoKSxFPVAoU3RyaW5nLnByb3RvdHlwZS50b0xvd2VyQ2FzZSksUz1QKFN0cmluZy5wcm90b3R5cGUudG9TdHJpbmcpLEE9UChTdHJpbmcucHJvdG90eXBlLm1hdGNoKSxDPVAoU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKSxfPVAoU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mKSxEPVAoU3RyaW5nLnByb3RvdHlwZS50cmltKSxSPVAoUmVnRXhwLnByb3RvdHlwZS50ZXN0KSxPPUwoVHlwZUVycm9yKTtmdW5jdGlvbiBQKGUpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShuPjE/bi0xOjApLG89MTtvPG47bysrKXJbby0xXT1hcmd1bWVudHNbb107cmV0dXJuIGIoZSx0LHIpfX1mdW5jdGlvbiBMKGUpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHQpLHI9MDtyPHQ7cisrKW5bcl09YXJndW1lbnRzW3JdO3JldHVybiBUKGUsbil9fWZ1bmN0aW9uIE4oZSx0LG4pe3ZhciByO249bnVsbCE9PShyPW4pJiZ2b2lkIDAhPT1yP3I6RSxkJiZkKGUsbnVsbCk7Zm9yKHZhciBvPXQubGVuZ3RoO28tLTspe3ZhciBpPXRbb107aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBpKXt2YXIgYT1uKGkpO2EhPT1pJiYocCh0KXx8KHRbb109YSksaT1hKX1lW2ldPSEwfXJldHVybiBlfWZ1bmN0aW9uIEkoZSl7dmFyIHQsbj15KG51bGwpO2Zvcih0IGluIGUpITA9PT1iKHUsZSxbdF0pJiYoblt0XT1lW3RdKTtyZXR1cm4gbn1mdW5jdGlvbiBqKGUsdCl7Zm9yKDtudWxsIT09ZTspe3ZhciBuPWgoZSx0KTtpZihuKXtpZihuLmdldClyZXR1cm4gUChuLmdldCk7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIG4udmFsdWUpcmV0dXJuIFAobi52YWx1ZSl9ZT1mKGUpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGNvbnNvbGUud2FybihcImZhbGxiYWNrIHZhbHVlIGZvclwiLGUpLG51bGx9cmV0dXJuIHJ9dmFyIEI9bShbXCJhXCIsXCJhYmJyXCIsXCJhY3JvbnltXCIsXCJhZGRyZXNzXCIsXCJhcmVhXCIsXCJhcnRpY2xlXCIsXCJhc2lkZVwiLFwiYXVkaW9cIixcImJcIixcImJkaVwiLFwiYmRvXCIsXCJiaWdcIixcImJsaW5rXCIsXCJibG9ja3F1b3RlXCIsXCJib2R5XCIsXCJiclwiLFwiYnV0dG9uXCIsXCJjYW52YXNcIixcImNhcHRpb25cIixcImNlbnRlclwiLFwiY2l0ZVwiLFwiY29kZVwiLFwiY29sXCIsXCJjb2xncm91cFwiLFwiY29udGVudFwiLFwiZGF0YVwiLFwiZGF0YWxpc3RcIixcImRkXCIsXCJkZWNvcmF0b3JcIixcImRlbFwiLFwiZGV0YWlsc1wiLFwiZGZuXCIsXCJkaWFsb2dcIixcImRpclwiLFwiZGl2XCIsXCJkbFwiLFwiZHRcIixcImVsZW1lbnRcIixcImVtXCIsXCJmaWVsZHNldFwiLFwiZmlnY2FwdGlvblwiLFwiZmlndXJlXCIsXCJmb250XCIsXCJmb290ZXJcIixcImZvcm1cIixcImgxXCIsXCJoMlwiLFwiaDNcIixcImg0XCIsXCJoNVwiLFwiaDZcIixcImhlYWRcIixcImhlYWRlclwiLFwiaGdyb3VwXCIsXCJoclwiLFwiaHRtbFwiLFwiaVwiLFwiaW1nXCIsXCJpbnB1dFwiLFwiaW5zXCIsXCJrYmRcIixcImxhYmVsXCIsXCJsZWdlbmRcIixcImxpXCIsXCJtYWluXCIsXCJtYXBcIixcIm1hcmtcIixcIm1hcnF1ZWVcIixcIm1lbnVcIixcIm1lbnVpdGVtXCIsXCJtZXRlclwiLFwibmF2XCIsXCJub2JyXCIsXCJvbFwiLFwib3B0Z3JvdXBcIixcIm9wdGlvblwiLFwib3V0cHV0XCIsXCJwXCIsXCJwaWN0dXJlXCIsXCJwcmVcIixcInByb2dyZXNzXCIsXCJxXCIsXCJycFwiLFwicnRcIixcInJ1YnlcIixcInNcIixcInNhbXBcIixcInNlY3Rpb25cIixcInNlbGVjdFwiLFwic2hhZG93XCIsXCJzbWFsbFwiLFwic291cmNlXCIsXCJzcGFjZXJcIixcInNwYW5cIixcInN0cmlrZVwiLFwic3Ryb25nXCIsXCJzdHlsZVwiLFwic3ViXCIsXCJzdW1tYXJ5XCIsXCJzdXBcIixcInRhYmxlXCIsXCJ0Ym9keVwiLFwidGRcIixcInRlbXBsYXRlXCIsXCJ0ZXh0YXJlYVwiLFwidGZvb3RcIixcInRoXCIsXCJ0aGVhZFwiLFwidGltZVwiLFwidHJcIixcInRyYWNrXCIsXCJ0dFwiLFwidVwiLFwidWxcIixcInZhclwiLFwidmlkZW9cIixcIndiclwiXSksSD1tKFtcInN2Z1wiLFwiYVwiLFwiYWx0Z2x5cGhcIixcImFsdGdseXBoZGVmXCIsXCJhbHRnbHlwaGl0ZW1cIixcImFuaW1hdGVjb2xvclwiLFwiYW5pbWF0ZW1vdGlvblwiLFwiYW5pbWF0ZXRyYW5zZm9ybVwiLFwiY2lyY2xlXCIsXCJjbGlwcGF0aFwiLFwiZGVmc1wiLFwiZGVzY1wiLFwiZWxsaXBzZVwiLFwiZmlsdGVyXCIsXCJmb250XCIsXCJnXCIsXCJnbHlwaFwiLFwiZ2x5cGhyZWZcIixcImhrZXJuXCIsXCJpbWFnZVwiLFwibGluZVwiLFwibGluZWFyZ3JhZGllbnRcIixcIm1hcmtlclwiLFwibWFza1wiLFwibWV0YWRhdGFcIixcIm1wYXRoXCIsXCJwYXRoXCIsXCJwYXR0ZXJuXCIsXCJwb2x5Z29uXCIsXCJwb2x5bGluZVwiLFwicmFkaWFsZ3JhZGllbnRcIixcInJlY3RcIixcInN0b3BcIixcInN0eWxlXCIsXCJzd2l0Y2hcIixcInN5bWJvbFwiLFwidGV4dFwiLFwidGV4dHBhdGhcIixcInRpdGxlXCIsXCJ0cmVmXCIsXCJ0c3BhblwiLFwidmlld1wiLFwidmtlcm5cIl0pLEY9bShbXCJmZUJsZW5kXCIsXCJmZUNvbG9yTWF0cml4XCIsXCJmZUNvbXBvbmVudFRyYW5zZmVyXCIsXCJmZUNvbXBvc2l0ZVwiLFwiZmVDb252b2x2ZU1hdHJpeFwiLFwiZmVEaWZmdXNlTGlnaHRpbmdcIixcImZlRGlzcGxhY2VtZW50TWFwXCIsXCJmZURpc3RhbnRMaWdodFwiLFwiZmVGbG9vZFwiLFwiZmVGdW5jQVwiLFwiZmVGdW5jQlwiLFwiZmVGdW5jR1wiLFwiZmVGdW5jUlwiLFwiZmVHYXVzc2lhbkJsdXJcIixcImZlSW1hZ2VcIixcImZlTWVyZ2VcIixcImZlTWVyZ2VOb2RlXCIsXCJmZU1vcnBob2xvZ3lcIixcImZlT2Zmc2V0XCIsXCJmZVBvaW50TGlnaHRcIixcImZlU3BlY3VsYXJMaWdodGluZ1wiLFwiZmVTcG90TGlnaHRcIixcImZlVGlsZVwiLFwiZmVUdXJidWxlbmNlXCJdKSxNPW0oW1wiYW5pbWF0ZVwiLFwiY29sb3ItcHJvZmlsZVwiLFwiY3Vyc29yXCIsXCJkaXNjYXJkXCIsXCJmZWRyb3BzaGFkb3dcIixcImZvbnQtZmFjZVwiLFwiZm9udC1mYWNlLWZvcm1hdFwiLFwiZm9udC1mYWNlLW5hbWVcIixcImZvbnQtZmFjZS1zcmNcIixcImZvbnQtZmFjZS11cmlcIixcImZvcmVpZ25vYmplY3RcIixcImhhdGNoXCIsXCJoYXRjaHBhdGhcIixcIm1lc2hcIixcIm1lc2hncmFkaWVudFwiLFwibWVzaHBhdGNoXCIsXCJtZXNocm93XCIsXCJtaXNzaW5nLWdseXBoXCIsXCJzY3JpcHRcIixcInNldFwiLFwic29saWRjb2xvclwiLFwidW5rbm93blwiLFwidXNlXCJdKSxHPW0oW1wibWF0aFwiLFwibWVuY2xvc2VcIixcIm1lcnJvclwiLFwibWZlbmNlZFwiLFwibWZyYWNcIixcIm1nbHlwaFwiLFwibWlcIixcIm1sYWJlbGVkdHJcIixcIm1tdWx0aXNjcmlwdHNcIixcIm1uXCIsXCJtb1wiLFwibW92ZXJcIixcIm1wYWRkZWRcIixcIm1waGFudG9tXCIsXCJtcm9vdFwiLFwibXJvd1wiLFwibXNcIixcIm1zcGFjZVwiLFwibXNxcnRcIixcIm1zdHlsZVwiLFwibXN1YlwiLFwibXN1cFwiLFwibXN1YnN1cFwiLFwibXRhYmxlXCIsXCJtdGRcIixcIm10ZXh0XCIsXCJtdHJcIixcIm11bmRlclwiLFwibXVuZGVyb3ZlclwiXSksVT1tKFtcIm1hY3Rpb25cIixcIm1hbGlnbmdyb3VwXCIsXCJtYWxpZ25tYXJrXCIsXCJtbG9uZ2RpdlwiLFwibXNjYXJyaWVzXCIsXCJtc2NhcnJ5XCIsXCJtc2dyb3VwXCIsXCJtc3RhY2tcIixcIm1zbGluZVwiLFwibXNyb3dcIixcInNlbWFudGljc1wiLFwiYW5ub3RhdGlvblwiLFwiYW5ub3RhdGlvbi14bWxcIixcIm1wcmVzY3JpcHRzXCIsXCJub25lXCJdKSx6PW0oW1wiI3RleHRcIl0pLFY9bShbXCJhY2NlcHRcIixcImFjdGlvblwiLFwiYWxpZ25cIixcImFsdFwiLFwiYXV0b2NhcGl0YWxpemVcIixcImF1dG9jb21wbGV0ZVwiLFwiYXV0b3BpY3R1cmVpbnBpY3R1cmVcIixcImF1dG9wbGF5XCIsXCJiYWNrZ3JvdW5kXCIsXCJiZ2NvbG9yXCIsXCJib3JkZXJcIixcImNhcHR1cmVcIixcImNlbGxwYWRkaW5nXCIsXCJjZWxsc3BhY2luZ1wiLFwiY2hlY2tlZFwiLFwiY2l0ZVwiLFwiY2xhc3NcIixcImNsZWFyXCIsXCJjb2xvclwiLFwiY29sc1wiLFwiY29sc3BhblwiLFwiY29udHJvbHNcIixcImNvbnRyb2xzbGlzdFwiLFwiY29vcmRzXCIsXCJjcm9zc29yaWdpblwiLFwiZGF0ZXRpbWVcIixcImRlY29kaW5nXCIsXCJkZWZhdWx0XCIsXCJkaXJcIixcImRpc2FibGVkXCIsXCJkaXNhYmxlcGljdHVyZWlucGljdHVyZVwiLFwiZGlzYWJsZXJlbW90ZXBsYXliYWNrXCIsXCJkb3dubG9hZFwiLFwiZHJhZ2dhYmxlXCIsXCJlbmN0eXBlXCIsXCJlbnRlcmtleWhpbnRcIixcImZhY2VcIixcImZvclwiLFwiaGVhZGVyc1wiLFwiaGVpZ2h0XCIsXCJoaWRkZW5cIixcImhpZ2hcIixcImhyZWZcIixcImhyZWZsYW5nXCIsXCJpZFwiLFwiaW5wdXRtb2RlXCIsXCJpbnRlZ3JpdHlcIixcImlzbWFwXCIsXCJraW5kXCIsXCJsYWJlbFwiLFwibGFuZ1wiLFwibGlzdFwiLFwibG9hZGluZ1wiLFwibG9vcFwiLFwibG93XCIsXCJtYXhcIixcIm1heGxlbmd0aFwiLFwibWVkaWFcIixcIm1ldGhvZFwiLFwibWluXCIsXCJtaW5sZW5ndGhcIixcIm11bHRpcGxlXCIsXCJtdXRlZFwiLFwibmFtZVwiLFwibm9uY2VcIixcIm5vc2hhZGVcIixcIm5vdmFsaWRhdGVcIixcIm5vd3JhcFwiLFwib3BlblwiLFwib3B0aW11bVwiLFwicGF0dGVyblwiLFwicGxhY2Vob2xkZXJcIixcInBsYXlzaW5saW5lXCIsXCJwb3N0ZXJcIixcInByZWxvYWRcIixcInB1YmRhdGVcIixcInJhZGlvZ3JvdXBcIixcInJlYWRvbmx5XCIsXCJyZWxcIixcInJlcXVpcmVkXCIsXCJyZXZcIixcInJldmVyc2VkXCIsXCJyb2xlXCIsXCJyb3dzXCIsXCJyb3dzcGFuXCIsXCJzcGVsbGNoZWNrXCIsXCJzY29wZVwiLFwic2VsZWN0ZWRcIixcInNoYXBlXCIsXCJzaXplXCIsXCJzaXplc1wiLFwic3BhblwiLFwic3JjbGFuZ1wiLFwic3RhcnRcIixcInNyY1wiLFwic3Jjc2V0XCIsXCJzdGVwXCIsXCJzdHlsZVwiLFwic3VtbWFyeVwiLFwidGFiaW5kZXhcIixcInRpdGxlXCIsXCJ0cmFuc2xhdGVcIixcInR5cGVcIixcInVzZW1hcFwiLFwidmFsaWduXCIsXCJ2YWx1ZVwiLFwid2lkdGhcIixcInhtbG5zXCIsXCJzbG90XCJdKSxXPW0oW1wiYWNjZW50LWhlaWdodFwiLFwiYWNjdW11bGF0ZVwiLFwiYWRkaXRpdmVcIixcImFsaWdubWVudC1iYXNlbGluZVwiLFwiYXNjZW50XCIsXCJhdHRyaWJ1dGVuYW1lXCIsXCJhdHRyaWJ1dGV0eXBlXCIsXCJhemltdXRoXCIsXCJiYXNlZnJlcXVlbmN5XCIsXCJiYXNlbGluZS1zaGlmdFwiLFwiYmVnaW5cIixcImJpYXNcIixcImJ5XCIsXCJjbGFzc1wiLFwiY2xpcFwiLFwiY2xpcHBhdGh1bml0c1wiLFwiY2xpcC1wYXRoXCIsXCJjbGlwLXJ1bGVcIixcImNvbG9yXCIsXCJjb2xvci1pbnRlcnBvbGF0aW9uXCIsXCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnNcIixcImNvbG9yLXByb2ZpbGVcIixcImNvbG9yLXJlbmRlcmluZ1wiLFwiY3hcIixcImN5XCIsXCJkXCIsXCJkeFwiLFwiZHlcIixcImRpZmZ1c2Vjb25zdGFudFwiLFwiZGlyZWN0aW9uXCIsXCJkaXNwbGF5XCIsXCJkaXZpc29yXCIsXCJkdXJcIixcImVkZ2Vtb2RlXCIsXCJlbGV2YXRpb25cIixcImVuZFwiLFwiZmlsbFwiLFwiZmlsbC1vcGFjaXR5XCIsXCJmaWxsLXJ1bGVcIixcImZpbHRlclwiLFwiZmlsdGVydW5pdHNcIixcImZsb29kLWNvbG9yXCIsXCJmbG9vZC1vcGFjaXR5XCIsXCJmb250LWZhbWlseVwiLFwiZm9udC1zaXplXCIsXCJmb250LXNpemUtYWRqdXN0XCIsXCJmb250LXN0cmV0Y2hcIixcImZvbnQtc3R5bGVcIixcImZvbnQtdmFyaWFudFwiLFwiZm9udC13ZWlnaHRcIixcImZ4XCIsXCJmeVwiLFwiZzFcIixcImcyXCIsXCJnbHlwaC1uYW1lXCIsXCJnbHlwaHJlZlwiLFwiZ3JhZGllbnR1bml0c1wiLFwiZ3JhZGllbnR0cmFuc2Zvcm1cIixcImhlaWdodFwiLFwiaHJlZlwiLFwiaWRcIixcImltYWdlLXJlbmRlcmluZ1wiLFwiaW5cIixcImluMlwiLFwia1wiLFwiazFcIixcImsyXCIsXCJrM1wiLFwiazRcIixcImtlcm5pbmdcIixcImtleXBvaW50c1wiLFwia2V5c3BsaW5lc1wiLFwia2V5dGltZXNcIixcImxhbmdcIixcImxlbmd0aGFkanVzdFwiLFwibGV0dGVyLXNwYWNpbmdcIixcImtlcm5lbG1hdHJpeFwiLFwia2VybmVsdW5pdGxlbmd0aFwiLFwibGlnaHRpbmctY29sb3JcIixcImxvY2FsXCIsXCJtYXJrZXItZW5kXCIsXCJtYXJrZXItbWlkXCIsXCJtYXJrZXItc3RhcnRcIixcIm1hcmtlcmhlaWdodFwiLFwibWFya2VydW5pdHNcIixcIm1hcmtlcndpZHRoXCIsXCJtYXNrY29udGVudHVuaXRzXCIsXCJtYXNrdW5pdHNcIixcIm1heFwiLFwibWFza1wiLFwibWVkaWFcIixcIm1ldGhvZFwiLFwibW9kZVwiLFwibWluXCIsXCJuYW1lXCIsXCJudW1vY3RhdmVzXCIsXCJvZmZzZXRcIixcIm9wZXJhdG9yXCIsXCJvcGFjaXR5XCIsXCJvcmRlclwiLFwib3JpZW50XCIsXCJvcmllbnRhdGlvblwiLFwib3JpZ2luXCIsXCJvdmVyZmxvd1wiLFwicGFpbnQtb3JkZXJcIixcInBhdGhcIixcInBhdGhsZW5ndGhcIixcInBhdHRlcm5jb250ZW50dW5pdHNcIixcInBhdHRlcm50cmFuc2Zvcm1cIixcInBhdHRlcm51bml0c1wiLFwicG9pbnRzXCIsXCJwcmVzZXJ2ZWFscGhhXCIsXCJwcmVzZXJ2ZWFzcGVjdHJhdGlvXCIsXCJwcmltaXRpdmV1bml0c1wiLFwiclwiLFwicnhcIixcInJ5XCIsXCJyYWRpdXNcIixcInJlZnhcIixcInJlZnlcIixcInJlcGVhdGNvdW50XCIsXCJyZXBlYXRkdXJcIixcInJlc3RhcnRcIixcInJlc3VsdFwiLFwicm90YXRlXCIsXCJzY2FsZVwiLFwic2VlZFwiLFwic2hhcGUtcmVuZGVyaW5nXCIsXCJzcGVjdWxhcmNvbnN0YW50XCIsXCJzcGVjdWxhcmV4cG9uZW50XCIsXCJzcHJlYWRtZXRob2RcIixcInN0YXJ0b2Zmc2V0XCIsXCJzdGRkZXZpYXRpb25cIixcInN0aXRjaHRpbGVzXCIsXCJzdG9wLWNvbG9yXCIsXCJzdG9wLW9wYWNpdHlcIixcInN0cm9rZS1kYXNoYXJyYXlcIixcInN0cm9rZS1kYXNob2Zmc2V0XCIsXCJzdHJva2UtbGluZWNhcFwiLFwic3Ryb2tlLWxpbmVqb2luXCIsXCJzdHJva2UtbWl0ZXJsaW1pdFwiLFwic3Ryb2tlLW9wYWNpdHlcIixcInN0cm9rZVwiLFwic3Ryb2tlLXdpZHRoXCIsXCJzdHlsZVwiLFwic3VyZmFjZXNjYWxlXCIsXCJzeXN0ZW1sYW5ndWFnZVwiLFwidGFiaW5kZXhcIixcInRhcmdldHhcIixcInRhcmdldHlcIixcInRyYW5zZm9ybVwiLFwidHJhbnNmb3JtLW9yaWdpblwiLFwidGV4dC1hbmNob3JcIixcInRleHQtZGVjb3JhdGlvblwiLFwidGV4dC1yZW5kZXJpbmdcIixcInRleHRsZW5ndGhcIixcInR5cGVcIixcInUxXCIsXCJ1MlwiLFwidW5pY29kZVwiLFwidmFsdWVzXCIsXCJ2aWV3Ym94XCIsXCJ2aXNpYmlsaXR5XCIsXCJ2ZXJzaW9uXCIsXCJ2ZXJ0LWFkdi15XCIsXCJ2ZXJ0LW9yaWdpbi14XCIsXCJ2ZXJ0LW9yaWdpbi15XCIsXCJ3aWR0aFwiLFwid29yZC1zcGFjaW5nXCIsXCJ3cmFwXCIsXCJ3cml0aW5nLW1vZGVcIixcInhjaGFubmVsc2VsZWN0b3JcIixcInljaGFubmVsc2VsZWN0b3JcIixcInhcIixcIngxXCIsXCJ4MlwiLFwieG1sbnNcIixcInlcIixcInkxXCIsXCJ5MlwiLFwielwiLFwiem9vbWFuZHBhblwiXSkscT1tKFtcImFjY2VudFwiLFwiYWNjZW50dW5kZXJcIixcImFsaWduXCIsXCJiZXZlbGxlZFwiLFwiY2xvc2VcIixcImNvbHVtbnNhbGlnblwiLFwiY29sdW1ubGluZXNcIixcImNvbHVtbnNwYW5cIixcImRlbm9tYWxpZ25cIixcImRlcHRoXCIsXCJkaXJcIixcImRpc3BsYXlcIixcImRpc3BsYXlzdHlsZVwiLFwiZW5jb2RpbmdcIixcImZlbmNlXCIsXCJmcmFtZVwiLFwiaGVpZ2h0XCIsXCJocmVmXCIsXCJpZFwiLFwibGFyZ2VvcFwiLFwibGVuZ3RoXCIsXCJsaW5ldGhpY2tuZXNzXCIsXCJsc3BhY2VcIixcImxxdW90ZVwiLFwibWF0aGJhY2tncm91bmRcIixcIm1hdGhjb2xvclwiLFwibWF0aHNpemVcIixcIm1hdGh2YXJpYW50XCIsXCJtYXhzaXplXCIsXCJtaW5zaXplXCIsXCJtb3ZhYmxlbGltaXRzXCIsXCJub3RhdGlvblwiLFwibnVtYWxpZ25cIixcIm9wZW5cIixcInJvd2FsaWduXCIsXCJyb3dsaW5lc1wiLFwicm93c3BhY2luZ1wiLFwicm93c3BhblwiLFwicnNwYWNlXCIsXCJycXVvdGVcIixcInNjcmlwdGxldmVsXCIsXCJzY3JpcHRtaW5zaXplXCIsXCJzY3JpcHRzaXplbXVsdGlwbGllclwiLFwic2VsZWN0aW9uXCIsXCJzZXBhcmF0b3JcIixcInNlcGFyYXRvcnNcIixcInN0cmV0Y2h5XCIsXCJzdWJzY3JpcHRzaGlmdFwiLFwic3Vwc2NyaXB0c2hpZnRcIixcInN5bW1ldHJpY1wiLFwidm9mZnNldFwiLFwid2lkdGhcIixcInhtbG5zXCJdKSxLPW0oW1wieGxpbms6aHJlZlwiLFwieG1sOmlkXCIsXCJ4bGluazp0aXRsZVwiLFwieG1sOnNwYWNlXCIsXCJ4bWxuczp4bGlua1wiXSksWj1nKC9cXHtcXHtbXFx3XFxXXSp8W1xcd1xcV10qXFx9XFx9L2dtKSxZPWcoLzwlW1xcd1xcV10qfFtcXHdcXFddKiU+L2dtKSwkPWcoL1xcJHtbXFx3XFxXXSp9L2dtKSxYPWcoL15kYXRhLVtcXC1cXHcuXFx1MDBCNy1cXHVGRkZGXS8pLFE9ZygvXmFyaWEtW1xcLVxcd10rJC8pLEo9ZygvXig/Oig/Oig/OmZ8aHQpdHBzP3xtYWlsdG98dGVsfGNhbGx0b3xjaWR8eG1wcCk6fFteYS16XXxbYS16Ky5cXC1dKyg/OlteYS16Ky5cXC06XXwkKSkvaSksZWU9ZygvXig/OlxcdytzY3JpcHR8ZGF0YSk6L2kpLHRlPWcoL1tcXHUwMDAwLVxcdTAwMjBcXHUwMEEwXFx1MTY4MFxcdTE4MEVcXHUyMDAwLVxcdTIwMjlcXHUyMDVGXFx1MzAwMF0vZyksbmU9ZygvXmh0bWwkL2kpLHJlPWZ1bmN0aW9uKCl7cmV0dXJuXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3c/bnVsbDp3aW5kb3d9LG9lPWZ1bmN0aW9uKHQsbil7aWYoXCJvYmplY3RcIiE9PWUodCl8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiB0LmNyZWF0ZVBvbGljeSlyZXR1cm4gbnVsbDt2YXIgcj1udWxsLG89XCJkYXRhLXR0LXBvbGljeS1zdWZmaXhcIjtuLmN1cnJlbnRTY3JpcHQmJm4uY3VycmVudFNjcmlwdC5oYXNBdHRyaWJ1dGUobykmJihyPW4uY3VycmVudFNjcmlwdC5nZXRBdHRyaWJ1dGUobykpO3ZhciBpPVwiZG9tcHVyaWZ5XCIrKHI/XCIjXCIrcjpcIlwiKTt0cnl7cmV0dXJuIHQuY3JlYXRlUG9saWN5KGkse2NyZWF0ZUhUTUw6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNyZWF0ZVNjcmlwdFVSTDpmdW5jdGlvbihlKXtyZXR1cm4gZX19KX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS53YXJuKFwiVHJ1c3RlZFR5cGVzIHBvbGljeSBcIitpK1wiIGNvdWxkIG5vdCBiZSBjcmVhdGVkLlwiKSxudWxsfX07ZnVuY3Rpb24gaWUoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06cmUoKSxuPWZ1bmN0aW9uKGUpe3JldHVybiBpZShlKX07aWYobi52ZXJzaW9uPVwiMi40LjdcIixuLnJlbW92ZWQ9W10sIXR8fCF0LmRvY3VtZW50fHw5IT09dC5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gbi5pc1N1cHBvcnRlZD0hMSxuO3ZhciByPXQuZG9jdW1lbnQsaT10LmRvY3VtZW50LGE9dC5Eb2N1bWVudEZyYWdtZW50LHM9dC5IVE1MVGVtcGxhdGVFbGVtZW50LGw9dC5Ob2RlLGM9dC5FbGVtZW50LHU9dC5Ob2RlRmlsdGVyLGQ9dC5OYW1lZE5vZGVNYXAscD12b2lkIDA9PT1kP3QuTmFtZWROb2RlTWFwfHx0Lk1vek5hbWVkQXR0ck1hcDpkLGY9dC5IVE1MRm9ybUVsZW1lbnQsaD10LkRPTVBhcnNlcixnPXQudHJ1c3RlZFR5cGVzLHk9Yy5wcm90b3R5cGUsdj1qKHksXCJjbG9uZU5vZGVcIiksYj1qKHksXCJuZXh0U2libGluZ1wiKSxUPWooeSxcImNoaWxkTm9kZXNcIiksUD1qKHksXCJwYXJlbnROb2RlXCIpO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBzKXt2YXIgTD1pLmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKTtMLmNvbnRlbnQmJkwuY29udGVudC5vd25lckRvY3VtZW50JiYoaT1MLmNvbnRlbnQub3duZXJEb2N1bWVudCl9dmFyIGFlPW9lKGcsciksc2U9YWU/YWUuY3JlYXRlSFRNTChcIlwiKTpcIlwiLGxlPWksY2U9bGUuaW1wbGVtZW50YXRpb24sdWU9bGUuY3JlYXRlTm9kZUl0ZXJhdG9yLGRlPWxlLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQscGU9bGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUsZmU9ci5pbXBvcnROb2RlLGhlPXt9O3RyeXtoZT1JKGkpLmRvY3VtZW50TW9kZT9pLmRvY3VtZW50TW9kZTp7fX1jYXRjaChMdCl7fXZhciBtZT17fTtuLmlzU3VwcG9ydGVkPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBQJiZjZSYmdm9pZCAwIT09Y2UuY3JlYXRlSFRNTERvY3VtZW50JiY5IT09aGU7dmFyIGdlLHllLHZlPVosYmU9WSxUZT0kLHhlPVgsd2U9USxrZT1lZSxFZT10ZSxTZT1KLEFlPW51bGwsQ2U9Tih7fSxbXS5jb25jYXQobyhCKSxvKEgpLG8oRiksbyhHKSxvKHopKSksX2U9bnVsbCxEZT1OKHt9LFtdLmNvbmNhdChvKFYpLG8oVyksbyhxKSxvKEspKSksUmU9T2JqZWN0LnNlYWwoT2JqZWN0LmNyZWF0ZShudWxsLHt0YWdOYW1lQ2hlY2s6e3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOm51bGx9LGF0dHJpYnV0ZU5hbWVDaGVjazp7d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsdmFsdWU6bnVsbH0sYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzOnt3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTohMX19KSksT2U9bnVsbCxQZT1udWxsLExlPSEwLE5lPSEwLEllPSExLGplPSEwLEJlPSExLEhlPSExLEZlPSExLE1lPSExLEdlPSExLFVlPSExLHplPSExLFZlPSEwLFdlPSExLHFlPVwidXNlci1jb250ZW50LVwiLEtlPSEwLFplPSExLFllPXt9LCRlPW51bGwsWGU9Tih7fSxbXCJhbm5vdGF0aW9uLXhtbFwiLFwiYXVkaW9cIixcImNvbGdyb3VwXCIsXCJkZXNjXCIsXCJmb3JlaWdub2JqZWN0XCIsXCJoZWFkXCIsXCJpZnJhbWVcIixcIm1hdGhcIixcIm1pXCIsXCJtblwiLFwibW9cIixcIm1zXCIsXCJtdGV4dFwiLFwibm9lbWJlZFwiLFwibm9mcmFtZXNcIixcIm5vc2NyaXB0XCIsXCJwbGFpbnRleHRcIixcInNjcmlwdFwiLFwic3R5bGVcIixcInN2Z1wiLFwidGVtcGxhdGVcIixcInRoZWFkXCIsXCJ0aXRsZVwiLFwidmlkZW9cIixcInhtcFwiXSksUWU9bnVsbCxKZT1OKHt9LFtcImF1ZGlvXCIsXCJ2aWRlb1wiLFwiaW1nXCIsXCJzb3VyY2VcIixcImltYWdlXCIsXCJ0cmFja1wiXSksZXQ9bnVsbCx0dD1OKHt9LFtcImFsdFwiLFwiY2xhc3NcIixcImZvclwiLFwiaWRcIixcImxhYmVsXCIsXCJuYW1lXCIsXCJwYXR0ZXJuXCIsXCJwbGFjZWhvbGRlclwiLFwicm9sZVwiLFwic3VtbWFyeVwiLFwidGl0bGVcIixcInZhbHVlXCIsXCJzdHlsZVwiLFwieG1sbnNcIl0pLG50PVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLHJ0PVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixvdD1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIixpdD1vdCxhdD0hMSxzdD1udWxsLGx0PU4oe30sW250LHJ0LG90XSxTKSxjdD1bXCJhcHBsaWNhdGlvbi94aHRtbCt4bWxcIixcInRleHQvaHRtbFwiXSx1dD1cInRleHQvaHRtbFwiLGR0PW51bGwscHQ9aS5jcmVhdGVFbGVtZW50KFwiZm9ybVwiKSxmdD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFJlZ0V4cHx8ZSBpbnN0YW5jZW9mIEZ1bmN0aW9ufSxodD1mdW5jdGlvbih0KXtkdCYmZHQ9PT10fHwodCYmXCJvYmplY3RcIj09PWUodCl8fCh0PXt9KSx0PUkodCksZ2U9Z2U9LTE9PT1jdC5pbmRleE9mKHQuUEFSU0VSX01FRElBX1RZUEUpP3V0OnQuUEFSU0VSX01FRElBX1RZUEUseWU9XCJhcHBsaWNhdGlvbi94aHRtbCt4bWxcIj09PWdlP1M6RSxBZT1cIkFMTE9XRURfVEFHU1wiaW4gdD9OKHt9LHQuQUxMT1dFRF9UQUdTLHllKTpDZSxfZT1cIkFMTE9XRURfQVRUUlwiaW4gdD9OKHt9LHQuQUxMT1dFRF9BVFRSLHllKTpEZSxzdD1cIkFMTE9XRURfTkFNRVNQQUNFU1wiaW4gdD9OKHt9LHQuQUxMT1dFRF9OQU1FU1BBQ0VTLFMpOmx0LGV0PVwiQUREX1VSSV9TQUZFX0FUVFJcImluIHQ/TihJKHR0KSx0LkFERF9VUklfU0FGRV9BVFRSLHllKTp0dCxRZT1cIkFERF9EQVRBX1VSSV9UQUdTXCJpbiB0P04oSShKZSksdC5BRERfREFUQV9VUklfVEFHUyx5ZSk6SmUsJGU9XCJGT1JCSURfQ09OVEVOVFNcImluIHQ/Tih7fSx0LkZPUkJJRF9DT05URU5UUyx5ZSk6WGUsT2U9XCJGT1JCSURfVEFHU1wiaW4gdD9OKHt9LHQuRk9SQklEX1RBR1MseWUpOnt9LFBlPVwiRk9SQklEX0FUVFJcImluIHQ/Tih7fSx0LkZPUkJJRF9BVFRSLHllKTp7fSxZZT1cIlVTRV9QUk9GSUxFU1wiaW4gdCYmdC5VU0VfUFJPRklMRVMsTGU9ITEhPT10LkFMTE9XX0FSSUFfQVRUUixOZT0hMSE9PXQuQUxMT1dfREFUQV9BVFRSLEllPXQuQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFN8fCExLGplPSExIT09dC5BTExPV19TRUxGX0NMT1NFX0lOX0FUVFIsQmU9dC5TQUZFX0ZPUl9URU1QTEFURVN8fCExLEhlPXQuV0hPTEVfRE9DVU1FTlR8fCExLEdlPXQuUkVUVVJOX0RPTXx8ITEsVWU9dC5SRVRVUk5fRE9NX0ZSQUdNRU5UfHwhMSx6ZT10LlJFVFVSTl9UUlVTVEVEX1RZUEV8fCExLE1lPXQuRk9SQ0VfQk9EWXx8ITEsVmU9ITEhPT10LlNBTklUSVpFX0RPTSxXZT10LlNBTklUSVpFX05BTUVEX1BST1BTfHwhMSxLZT0hMSE9PXQuS0VFUF9DT05URU5ULFplPXQuSU5fUExBQ0V8fCExLFNlPXQuQUxMT1dFRF9VUklfUkVHRVhQfHxTZSxpdD10Lk5BTUVTUEFDRXx8b3QsUmU9dC5DVVNUT01fRUxFTUVOVF9IQU5ETElOR3x8e30sdC5DVVNUT01fRUxFTUVOVF9IQU5ETElORyYmZnQodC5DVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2spJiYoUmUudGFnTmFtZUNoZWNrPXQuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKSx0LkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HJiZmdCh0LkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjaykmJihSZS5hdHRyaWJ1dGVOYW1lQ2hlY2s9dC5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2spLHQuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcmJlwiYm9vbGVhblwiPT09dHlwZW9mIHQuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzJiYoUmUuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzPXQuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzKSxCZSYmKE5lPSExKSxVZSYmKEdlPSEwKSxZZSYmKEFlPU4oe30sbyh6KSksX2U9W10sITA9PT1ZZS5odG1sJiYoTihBZSxCKSxOKF9lLFYpKSwhMD09PVllLnN2ZyYmKE4oQWUsSCksTihfZSxXKSxOKF9lLEspKSwhMD09PVllLnN2Z0ZpbHRlcnMmJihOKEFlLEYpLE4oX2UsVyksTihfZSxLKSksITA9PT1ZZS5tYXRoTWwmJihOKEFlLEcpLE4oX2UscSksTihfZSxLKSkpLHQuQUREX1RBR1MmJihBZT09PUNlJiYoQWU9SShBZSkpLE4oQWUsdC5BRERfVEFHUyx5ZSkpLHQuQUREX0FUVFImJihfZT09PURlJiYoX2U9SShfZSkpLE4oX2UsdC5BRERfQVRUUix5ZSkpLHQuQUREX1VSSV9TQUZFX0FUVFImJk4oZXQsdC5BRERfVVJJX1NBRkVfQVRUUix5ZSksdC5GT1JCSURfQ09OVEVOVFMmJigkZT09PVhlJiYoJGU9SSgkZSkpLE4oJGUsdC5GT1JCSURfQ09OVEVOVFMseWUpKSxLZSYmKEFlW1wiI3RleHRcIl09ITApLEhlJiZOKEFlLFtcImh0bWxcIixcImhlYWRcIixcImJvZHlcIl0pLEFlLnRhYmxlJiYoTihBZSxbXCJ0Ym9keVwiXSksZGVsZXRlIE9lLnRib2R5KSxtJiZtKHQpLGR0PXQpfSxtdD1OKHt9LFtcIm1pXCIsXCJtb1wiLFwibW5cIixcIm1zXCIsXCJtdGV4dFwiXSksZ3Q9Tih7fSxbXCJmb3JlaWdub2JqZWN0XCIsXCJkZXNjXCIsXCJ0aXRsZVwiLFwiYW5ub3RhdGlvbi14bWxcIl0pLHl0PU4oe30sW1widGl0bGVcIixcInN0eWxlXCIsXCJmb250XCIsXCJhXCIsXCJzY3JpcHRcIl0pLHZ0PU4oe30sSCk7Tih2dCxGKSxOKHZ0LE0pO3ZhciBidD1OKHt9LEcpO04oYnQsVSk7dmFyIFR0PWZ1bmN0aW9uKGUpe3ZhciB0PVAoZSk7dCYmdC50YWdOYW1lfHwodD17bmFtZXNwYWNlVVJJOml0LHRhZ05hbWU6XCJ0ZW1wbGF0ZVwifSk7dmFyIG49RShlLnRhZ05hbWUpLHI9RSh0LnRhZ05hbWUpO3JldHVybiEhc3RbZS5uYW1lc3BhY2VVUkldJiYoZS5uYW1lc3BhY2VVUkk9PT1ydD90Lm5hbWVzcGFjZVVSST09PW90P1wic3ZnXCI9PT1uOnQubmFtZXNwYWNlVVJJPT09bnQ/XCJzdmdcIj09PW4mJihcImFubm90YXRpb24teG1sXCI9PT1yfHxtdFtyXSk6Qm9vbGVhbih2dFtuXSk6ZS5uYW1lc3BhY2VVUkk9PT1udD90Lm5hbWVzcGFjZVVSST09PW90P1wibWF0aFwiPT09bjp0Lm5hbWVzcGFjZVVSST09PXJ0P1wibWF0aFwiPT09biYmZ3Rbcl06Qm9vbGVhbihidFtuXSk6ZS5uYW1lc3BhY2VVUkk9PT1vdD8hKHQubmFtZXNwYWNlVVJJPT09cnQmJiFndFtyXSkmJiEodC5uYW1lc3BhY2VVUkk9PT1udCYmIW10W3JdKSYmIWJ0W25dJiYoeXRbbl18fCF2dFtuXSk6IShcImFwcGxpY2F0aW9uL3hodG1sK3htbFwiIT09Z2V8fCFzdFtlLm5hbWVzcGFjZVVSSV0pKX0seHQ9ZnVuY3Rpb24oZSl7ayhuLnJlbW92ZWQse2VsZW1lbnQ6ZX0pO3RyeXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9Y2F0Y2goTHQpe3RyeXtlLm91dGVySFRNTD1zZX1jYXRjaChMdCl7ZS5yZW1vdmUoKX19fSx3dD1mdW5jdGlvbihlLHQpe3RyeXtrKG4ucmVtb3ZlZCx7YXR0cmlidXRlOnQuZ2V0QXR0cmlidXRlTm9kZShlKSxmcm9tOnR9KX1jYXRjaChMdCl7ayhuLnJlbW92ZWQse2F0dHJpYnV0ZTpudWxsLGZyb206dH0pfWlmKHQucmVtb3ZlQXR0cmlidXRlKGUpLFwiaXNcIj09PWUmJiFfZVtlXSlpZihHZXx8VWUpdHJ5e3h0KHQpfWNhdGNoKEx0KXt9ZWxzZSB0cnl7dC5zZXRBdHRyaWJ1dGUoZSxcIlwiKX1jYXRjaChMdCl7fX0sa3Q9ZnVuY3Rpb24oZSl7dmFyIHQsbjtpZihNZSllPVwiPHJlbW92ZT48L3JlbW92ZT5cIitlO2Vsc2V7dmFyIHI9QShlLC9eW1xcclxcblxcdCBdKy8pO249ciYmclswXX1cImFwcGxpY2F0aW9uL3hodG1sK3htbFwiPT09Z2UmJml0PT09b3QmJihlPSc8aHRtbCB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj48aGVhZD48L2hlYWQ+PGJvZHk+JytlK1wiPC9ib2R5PjwvaHRtbD5cIik7dmFyIG89YWU/YWUuY3JlYXRlSFRNTChlKTplO2lmKGl0PT09b3QpdHJ5e3Q9KG5ldyBoKS5wYXJzZUZyb21TdHJpbmcobyxnZSl9Y2F0Y2goTHQpe31pZighdHx8IXQuZG9jdW1lbnRFbGVtZW50KXt0PWNlLmNyZWF0ZURvY3VtZW50KGl0LFwidGVtcGxhdGVcIixudWxsKTt0cnl7dC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MPWF0P3NlOm99Y2F0Y2goTHQpe319dmFyIGE9dC5ib2R5fHx0LmRvY3VtZW50RWxlbWVudDtyZXR1cm4gZSYmbiYmYS5pbnNlcnRCZWZvcmUoaS5jcmVhdGVUZXh0Tm9kZShuKSxhLmNoaWxkTm9kZXNbMF18fG51bGwpLGl0PT09b3Q/cGUuY2FsbCh0LEhlP1wiaHRtbFwiOlwiYm9keVwiKVswXTpIZT90LmRvY3VtZW50RWxlbWVudDphfSxFdD1mdW5jdGlvbihlKXtyZXR1cm4gdWUuY2FsbChlLm93bmVyRG9jdW1lbnR8fGUsZSx1LlNIT1dfRUxFTUVOVHx1LlNIT1dfQ09NTUVOVHx1LlNIT1dfVEVYVCxudWxsLCExKX0sU3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBmJiYoXCJzdHJpbmdcIiE9PXR5cGVvZiBlLm5vZGVOYW1lfHxcInN0cmluZ1wiIT09dHlwZW9mIGUudGV4dENvbnRlbnR8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLnJlbW92ZUNoaWxkfHwhKGUuYXR0cmlidXRlcyBpbnN0YW5jZW9mIHApfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5yZW1vdmVBdHRyaWJ1dGV8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLnNldEF0dHJpYnV0ZXx8XCJzdHJpbmdcIiE9PXR5cGVvZiBlLm5hbWVzcGFjZVVSSXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGUuaW5zZXJ0QmVmb3JlfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5oYXNDaGlsZE5vZGVzKX0sQXQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJvYmplY3RcIj09PWUobCk/dCBpbnN0YW5jZW9mIGw6dCYmXCJvYmplY3RcIj09PWUodCkmJlwibnVtYmVyXCI9PT10eXBlb2YgdC5ub2RlVHlwZSYmXCJzdHJpbmdcIj09PXR5cGVvZiB0Lm5vZGVOYW1lfSxDdD1mdW5jdGlvbihlLHQscil7bWVbZV0mJngobWVbZV0sKGZ1bmN0aW9uKGUpe2UuY2FsbChuLHQscixkdCl9KSl9LF90PWZ1bmN0aW9uKGUpe3ZhciB0O2lmKEN0KFwiYmVmb3JlU2FuaXRpemVFbGVtZW50c1wiLGUsbnVsbCksU3QoZSkpcmV0dXJuIHh0KGUpLCEwO2lmKFIoL1tcXHUwMDgwLVxcdUZGRkZdLyxlLm5vZGVOYW1lKSlyZXR1cm4geHQoZSksITA7dmFyIHI9eWUoZS5ub2RlTmFtZSk7aWYoQ3QoXCJ1cG9uU2FuaXRpemVFbGVtZW50XCIsZSx7dGFnTmFtZTpyLGFsbG93ZWRUYWdzOkFlfSksZS5oYXNDaGlsZE5vZGVzKCkmJiFBdChlLmZpcnN0RWxlbWVudENoaWxkKSYmKCFBdChlLmNvbnRlbnQpfHwhQXQoZS5jb250ZW50LmZpcnN0RWxlbWVudENoaWxkKSkmJlIoLzxbL1xcd10vZyxlLmlubmVySFRNTCkmJlIoLzxbL1xcd10vZyxlLnRleHRDb250ZW50KSlyZXR1cm4geHQoZSksITA7aWYoXCJzZWxlY3RcIj09PXImJlIoLzx0ZW1wbGF0ZS9pLGUuaW5uZXJIVE1MKSlyZXR1cm4geHQoZSksITA7aWYoIUFlW3JdfHxPZVtyXSl7aWYoIU9lW3JdJiZSdChyKSl7aWYoUmUudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZSKFJlLnRhZ05hbWVDaGVjayxyKSlyZXR1cm4hMTtpZihSZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiYmUmUudGFnTmFtZUNoZWNrKHIpKXJldHVybiExfWlmKEtlJiYhJGVbcl0pe3ZhciBvPVAoZSl8fGUucGFyZW50Tm9kZSxpPVQoZSl8fGUuY2hpbGROb2RlcztpZihpJiZvKWZvcih2YXIgYT1pLmxlbmd0aC0xO2E+PTA7LS1hKW8uaW5zZXJ0QmVmb3JlKHYoaVthXSwhMCksYihlKSl9cmV0dXJuIHh0KGUpLCEwfXJldHVybiBlIGluc3RhbmNlb2YgYyYmIVR0KGUpPyh4dChlKSwhMCk6XCJub3NjcmlwdFwiIT09ciYmXCJub2VtYmVkXCIhPT1yJiZcIm5vZnJhbWVzXCIhPT1yfHwhUigvPFxcL25vKHNjcmlwdHxlbWJlZHxmcmFtZXMpL2ksZS5pbm5lckhUTUwpPyhCZSYmMz09PWUubm9kZVR5cGUmJih0PWUudGV4dENvbnRlbnQsdD1DKHQsdmUsXCIgXCIpLHQ9Qyh0LGJlLFwiIFwiKSx0PUModCxUZSxcIiBcIiksZS50ZXh0Q29udGVudCE9PXQmJihrKG4ucmVtb3ZlZCx7ZWxlbWVudDplLmNsb25lTm9kZSgpfSksZS50ZXh0Q29udGVudD10KSksQ3QoXCJhZnRlclNhbml0aXplRWxlbWVudHNcIixlLG51bGwpLCExKTooeHQoZSksITApfSxEdD1mdW5jdGlvbihlLHQsbil7aWYoVmUmJihcImlkXCI9PT10fHxcIm5hbWVcIj09PXQpJiYobiBpbiBpfHxuIGluIHB0KSlyZXR1cm4hMTtpZihOZSYmIVBlW3RdJiZSKHhlLHQpKTtlbHNlIGlmKExlJiZSKHdlLHQpKTtlbHNlIGlmKCFfZVt0XXx8UGVbdF0pe2lmKCEoUnQoZSkmJihSZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJlIoUmUudGFnTmFtZUNoZWNrLGUpfHxSZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiYmUmUudGFnTmFtZUNoZWNrKGUpKSYmKFJlLmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCYmUihSZS5hdHRyaWJ1dGVOYW1lQ2hlY2ssdCl8fFJlLmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZSZS5hdHRyaWJ1dGVOYW1lQ2hlY2sodCkpfHxcImlzXCI9PT10JiZSZS5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMmJihSZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJlIoUmUudGFnTmFtZUNoZWNrLG4pfHxSZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiYmUmUudGFnTmFtZUNoZWNrKG4pKSkpcmV0dXJuITF9ZWxzZSBpZihldFt0XSk7ZWxzZSBpZihSKFNlLEMobixFZSxcIlwiKSkpO2Vsc2UgaWYoXCJzcmNcIiE9PXQmJlwieGxpbms6aHJlZlwiIT09dCYmXCJocmVmXCIhPT10fHxcInNjcmlwdFwiPT09ZXx8MCE9PV8obixcImRhdGE6XCIpfHwhUWVbZV0paWYoSWUmJiFSKGtlLEMobixFZSxcIlwiKSkpO2Vsc2UgaWYobilyZXR1cm4hMTtyZXR1cm4hMH0sUnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5kZXhPZihcIi1cIik+MH0sT3Q9ZnVuY3Rpb24odCl7dmFyIHIsbyxpLGE7Q3QoXCJiZWZvcmVTYW5pdGl6ZUF0dHJpYnV0ZXNcIix0LG51bGwpO3ZhciBzPXQuYXR0cmlidXRlcztpZihzKXt2YXIgbD17YXR0ck5hbWU6XCJcIixhdHRyVmFsdWU6XCJcIixrZWVwQXR0cjohMCxhbGxvd2VkQXR0cmlidXRlczpfZX07Zm9yKGE9cy5sZW5ndGg7YS0tOyl7dmFyIGM9cj1zW2FdLHU9Yy5uYW1lLGQ9Yy5uYW1lc3BhY2VVUkk7aWYobz1cInZhbHVlXCI9PT11P3IudmFsdWU6RChyLnZhbHVlKSxpPXllKHUpLGwuYXR0ck5hbWU9aSxsLmF0dHJWYWx1ZT1vLGwua2VlcEF0dHI9ITAsbC5mb3JjZUtlZXBBdHRyPXZvaWQgMCxDdChcInVwb25TYW5pdGl6ZUF0dHJpYnV0ZVwiLHQsbCksbz1sLmF0dHJWYWx1ZSwhbC5mb3JjZUtlZXBBdHRyJiYod3QodSx0KSxsLmtlZXBBdHRyKSlpZihqZXx8IVIoL1xcLz4vaSxvKSl7QmUmJihvPUMobyx2ZSxcIiBcIiksbz1DKG8sYmUsXCIgXCIpLG89QyhvLFRlLFwiIFwiKSk7dmFyIHA9eWUodC5ub2RlTmFtZSk7aWYoRHQocCxpLG8pKXtpZighV2V8fFwiaWRcIiE9PWkmJlwibmFtZVwiIT09aXx8KHd0KHUsdCksbz1xZStvKSxhZSYmXCJvYmplY3RcIj09PWUoZykmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldEF0dHJpYnV0ZVR5cGUpaWYoZCk7ZWxzZSBzd2l0Y2goZy5nZXRBdHRyaWJ1dGVUeXBlKHAsaSkpe2Nhc2VcIlRydXN0ZWRIVE1MXCI6bz1hZS5jcmVhdGVIVE1MKG8pO2JyZWFrO2Nhc2VcIlRydXN0ZWRTY3JpcHRVUkxcIjpvPWFlLmNyZWF0ZVNjcmlwdFVSTChvKX10cnl7ZD90LnNldEF0dHJpYnV0ZU5TKGQsdSxvKTp0LnNldEF0dHJpYnV0ZSh1LG8pLHcobi5yZW1vdmVkKX1jYXRjaChMdCl7fX19ZWxzZSB3dCh1LHQpfUN0KFwiYWZ0ZXJTYW5pdGl6ZUF0dHJpYnV0ZXNcIix0LG51bGwpfX0sUHQ9ZnVuY3Rpb24gZSh0KXt2YXIgbixyPUV0KHQpO2ZvcihDdChcImJlZm9yZVNhbml0aXplU2hhZG93RE9NXCIsdCxudWxsKTtuPXIubmV4dE5vZGUoKTspQ3QoXCJ1cG9uU2FuaXRpemVTaGFkb3dOb2RlXCIsbixudWxsKSxfdChuKXx8KG4uY29udGVudCBpbnN0YW5jZW9mIGEmJmUobi5jb250ZW50KSxPdChuKSk7Q3QoXCJhZnRlclNhbml0aXplU2hhZG93RE9NXCIsdCxudWxsKX07cmV0dXJuIG4uc2FuaXRpemU9ZnVuY3Rpb24obyl7dmFyIGkscyxjLHUsZCxwPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZigoYXQ9IW8pJiYobz1cIlxceDNjIS0tXFx4M2VcIiksXCJzdHJpbmdcIiE9PXR5cGVvZiBvJiYhQXQobykpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvLnRvU3RyaW5nKXRocm93IE8oXCJ0b1N0cmluZyBpcyBub3QgYSBmdW5jdGlvblwiKTtpZihcInN0cmluZ1wiIT09dHlwZW9mKG89by50b1N0cmluZygpKSl0aHJvdyBPKFwiZGlydHkgaXMgbm90IGEgc3RyaW5nLCBhYm9ydGluZ1wiKX1pZighbi5pc1N1cHBvcnRlZCl7aWYoXCJvYmplY3RcIj09PWUodC50b1N0YXRpY0hUTUwpfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC50b1N0YXRpY0hUTUwpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgbylyZXR1cm4gdC50b1N0YXRpY0hUTUwobyk7aWYoQXQobykpcmV0dXJuIHQudG9TdGF0aWNIVE1MKG8ub3V0ZXJIVE1MKX1yZXR1cm4gb31pZihGZXx8aHQocCksbi5yZW1vdmVkPVtdLFwic3RyaW5nXCI9PT10eXBlb2YgbyYmKFplPSExKSxaZSl7aWYoby5ub2RlTmFtZSl7dmFyIGY9eWUoby5ub2RlTmFtZSk7aWYoIUFlW2ZdfHxPZVtmXSl0aHJvdyBPKFwicm9vdCBub2RlIGlzIGZvcmJpZGRlbiBhbmQgY2Fubm90IGJlIHNhbml0aXplZCBpbi1wbGFjZVwiKX19ZWxzZSBpZihvIGluc3RhbmNlb2YgbCkxPT09KHM9KGk9a3QoXCJcXHgzYyEtLS0tXFx4M2VcIikpLm93bmVyRG9jdW1lbnQuaW1wb3J0Tm9kZShvLCEwKSkubm9kZVR5cGUmJlwiQk9EWVwiPT09cy5ub2RlTmFtZXx8XCJIVE1MXCI9PT1zLm5vZGVOYW1lP2k9czppLmFwcGVuZENoaWxkKHMpO2Vsc2V7aWYoIUdlJiYhQmUmJiFIZSYmLTE9PT1vLmluZGV4T2YoXCI8XCIpKXJldHVybiBhZSYmemU/YWUuY3JlYXRlSFRNTChvKTpvO2lmKCEoaT1rdChvKSkpcmV0dXJuIEdlP251bGw6emU/c2U6XCJcIn1pJiZNZSYmeHQoaS5maXJzdENoaWxkKTtmb3IodmFyIGg9RXQoWmU/bzppKTtjPWgubmV4dE5vZGUoKTspMz09PWMubm9kZVR5cGUmJmM9PT11fHxfdChjKXx8KGMuY29udGVudCBpbnN0YW5jZW9mIGEmJlB0KGMuY29udGVudCksT3QoYyksdT1jKTtpZih1PW51bGwsWmUpcmV0dXJuIG87aWYoR2Upe2lmKFVlKWZvcihkPWRlLmNhbGwoaS5vd25lckRvY3VtZW50KTtpLmZpcnN0Q2hpbGQ7KWQuYXBwZW5kQ2hpbGQoaS5maXJzdENoaWxkKTtlbHNlIGQ9aTtyZXR1cm4oX2Uuc2hhZG93cm9vdHx8X2Uuc2hhZG93cm9vdG1vZCkmJihkPWZlLmNhbGwocixkLCEwKSksZH12YXIgbT1IZT9pLm91dGVySFRNTDppLmlubmVySFRNTDtyZXR1cm4gSGUmJkFlW1wiIWRvY3R5cGVcIl0mJmkub3duZXJEb2N1bWVudCYmaS5vd25lckRvY3VtZW50LmRvY3R5cGUmJmkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUmJlIobmUsaS5vd25lckRvY3VtZW50LmRvY3R5cGUubmFtZSkmJihtPVwiPCFET0NUWVBFIFwiK2kub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUrXCI+XFxuXCIrbSksQmUmJihtPUMobSx2ZSxcIiBcIiksbT1DKG0sYmUsXCIgXCIpLG09QyhtLFRlLFwiIFwiKSksYWUmJnplP2FlLmNyZWF0ZUhUTUwobSk6bX0sbi5zZXRDb25maWc9ZnVuY3Rpb24oZSl7aHQoZSksRmU9ITB9LG4uY2xlYXJDb25maWc9ZnVuY3Rpb24oKXtkdD1udWxsLEZlPSExfSxuLmlzVmFsaWRBdHRyaWJ1dGU9ZnVuY3Rpb24oZSx0LG4pe2R0fHxodCh7fSk7dmFyIHI9eWUoZSksbz15ZSh0KTtyZXR1cm4gRHQocixvLG4pfSxuLmFkZEhvb2s9ZnVuY3Rpb24oZSx0KXtcImZ1bmN0aW9uXCI9PT10eXBlb2YgdCYmKG1lW2VdPW1lW2VdfHxbXSxrKG1lW2VdLHQpKX0sbi5yZW1vdmVIb29rPWZ1bmN0aW9uKGUpe2lmKG1lW2VdKXJldHVybiB3KG1lW2VdKX0sbi5yZW1vdmVIb29rcz1mdW5jdGlvbihlKXttZVtlXSYmKG1lW2VdPVtdKX0sbi5yZW1vdmVBbGxIb29rcz1mdW5jdGlvbigpe21lPXt9fSxufXJldHVybiBpZSgpfSgpfSwyMjI6ZT0+e1widXNlIHN0cmljdFwiO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsbj1NYXRoLm1heCxyPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdLHI9MDtyPGUubGVuZ3RoO3IrPTEpbltyXT1lW3JdO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bys9MSluW28rZS5sZW5ndGhdPXRbb107cmV0dXJuIG59O2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbz10aGlzO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvfHxcIltvYmplY3QgRnVuY3Rpb25dXCIhPT10LmFwcGx5KG8pKXRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbi5wcm90b3R5cGUuYmluZCBjYWxsZWQgb24gaW5jb21wYXRpYmxlIFwiK28pO2Zvcih2YXIgaSxhPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdLHI9dHx8MCxvPTA7cjxlLmxlbmd0aDtyKz0xLG8rPTEpbltvXT1lW3JdO3JldHVybiBufShhcmd1bWVudHMsMSkscz1uKDAsby5sZW5ndGgtYS5sZW5ndGgpLGw9W10sYz0wO2M8cztjKyspbFtjXT1cIiRcIitjO2lmKGk9RnVuY3Rpb24oXCJiaW5kZXJcIixcInJldHVybiBmdW5jdGlvbiAoXCIrZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49XCJcIixyPTA7cjxlLmxlbmd0aDtyKz0xKW4rPWVbcl0scisxPGUubGVuZ3RoJiYobis9dCk7cmV0dXJuIG59KGwsXCIsXCIpK1wiKXsgcmV0dXJuIGJpbmRlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7IH1cIikoKGZ1bmN0aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIGkpe3ZhciB0PW8uYXBwbHkodGhpcyxyKGEsYXJndW1lbnRzKSk7cmV0dXJuIE9iamVjdCh0KT09PXQ/dDp0aGlzfXJldHVybiBvLmFwcGx5KGUscihhLGFyZ3VtZW50cykpfSkpLG8ucHJvdG90eXBlKXt2YXIgdT1mdW5jdGlvbigpe307dS5wcm90b3R5cGU9by5wcm90b3R5cGUsaS5wcm90b3R5cGU9bmV3IHUsdS5wcm90b3R5cGU9bnVsbH1yZXR1cm4gaX19LDMzNTA6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjIyKTtlLmV4cG9ydHM9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmR8fHJ9LDI1MDY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByLG89U3ludGF4RXJyb3IsaT1GdW5jdGlvbixhPVR5cGVFcnJvcixzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gaSgnXCJ1c2Ugc3RyaWN0XCI7IHJldHVybiAoJytlK1wiKS5jb25zdHJ1Y3RvcjtcIikoKX1jYXRjaCh0KXt9fSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7aWYobCl0cnl7bCh7fSxcIlwiKX1jYXRjaChSKXtsPW51bGx9dmFyIGM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgYX0sdT1sP2Z1bmN0aW9uKCl7dHJ5e3JldHVybiBjfWNhdGNoKGUpe3RyeXtyZXR1cm4gbChhcmd1bWVudHMsXCJjYWxsZWVcIikuZ2V0fWNhdGNoKHQpe3JldHVybiBjfX19KCk6YyxkPW4oNjk3KSgpLHA9bigyMjAzKSgpLGY9T2JqZWN0LmdldFByb3RvdHlwZU9mfHwocD9mdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX199Om51bGwpLGg9e30sbT1cInVuZGVmaW5lZFwiIT09dHlwZW9mIFVpbnQ4QXJyYXkmJmY/ZihVaW50OEFycmF5KTpyLGc9e1wiJUFnZ3JlZ2F0ZUVycm9yJVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgQWdncmVnYXRlRXJyb3I/cjpBZ2dyZWdhdGVFcnJvcixcIiVBcnJheSVcIjpBcnJheSxcIiVBcnJheUJ1ZmZlciVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIEFycmF5QnVmZmVyP3I6QXJyYXlCdWZmZXIsXCIlQXJyYXlJdGVyYXRvclByb3RvdHlwZSVcIjpkJiZmP2YoW11bU3ltYm9sLml0ZXJhdG9yXSgpKTpyLFwiJUFzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZSVcIjpyLFwiJUFzeW5jRnVuY3Rpb24lXCI6aCxcIiVBc3luY0dlbmVyYXRvciVcIjpoLFwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lXCI6aCxcIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJVwiOmgsXCIlQXRvbWljcyVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIEF0b21pY3M/cjpBdG9taWNzLFwiJUJpZ0ludCVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIEJpZ0ludD9yOkJpZ0ludCxcIiVCaWdJbnQ2NEFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgQmlnSW50NjRBcnJheT9yOkJpZ0ludDY0QXJyYXksXCIlQmlnVWludDY0QXJyYXklXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBCaWdVaW50NjRBcnJheT9yOkJpZ1VpbnQ2NEFycmF5LFwiJUJvb2xlYW4lXCI6Qm9vbGVhbixcIiVEYXRhVmlldyVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIERhdGFWaWV3P3I6RGF0YVZpZXcsXCIlRGF0ZSVcIjpEYXRlLFwiJWRlY29kZVVSSSVcIjpkZWNvZGVVUkksXCIlZGVjb2RlVVJJQ29tcG9uZW50JVwiOmRlY29kZVVSSUNvbXBvbmVudCxcIiVlbmNvZGVVUkklXCI6ZW5jb2RlVVJJLFwiJWVuY29kZVVSSUNvbXBvbmVudCVcIjplbmNvZGVVUklDb21wb25lbnQsXCIlRXJyb3IlXCI6RXJyb3IsXCIlZXZhbCVcIjpldmFsLFwiJUV2YWxFcnJvciVcIjpFdmFsRXJyb3IsXCIlRmxvYXQzMkFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgRmxvYXQzMkFycmF5P3I6RmxvYXQzMkFycmF5LFwiJUZsb2F0NjRBcnJheSVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIEZsb2F0NjRBcnJheT9yOkZsb2F0NjRBcnJheSxcIiVGaW5hbGl6YXRpb25SZWdpc3RyeSVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5P3I6RmluYWxpemF0aW9uUmVnaXN0cnksXCIlRnVuY3Rpb24lXCI6aSxcIiVHZW5lcmF0b3JGdW5jdGlvbiVcIjpoLFwiJUludDhBcnJheSVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIEludDhBcnJheT9yOkludDhBcnJheSxcIiVJbnQxNkFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgSW50MTZBcnJheT9yOkludDE2QXJyYXksXCIlSW50MzJBcnJheSVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIEludDMyQXJyYXk/cjpJbnQzMkFycmF5LFwiJWlzRmluaXRlJVwiOmlzRmluaXRlLFwiJWlzTmFOJVwiOmlzTmFOLFwiJUl0ZXJhdG9yUHJvdG90eXBlJVwiOmQmJmY/ZihmKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkpOnIsXCIlSlNPTiVcIjpcIm9iamVjdFwiPT09dHlwZW9mIEpTT04/SlNPTjpyLFwiJU1hcCVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIE1hcD9yOk1hcCxcIiVNYXBJdGVyYXRvclByb3RvdHlwZSVcIjpcInVuZGVmaW5lZFwiIT09dHlwZW9mIE1hcCYmZCYmZj9mKChuZXcgTWFwKVtTeW1ib2wuaXRlcmF0b3JdKCkpOnIsXCIlTWF0aCVcIjpNYXRoLFwiJU51bWJlciVcIjpOdW1iZXIsXCIlT2JqZWN0JVwiOk9iamVjdCxcIiVwYXJzZUZsb2F0JVwiOnBhcnNlRmxvYXQsXCIlcGFyc2VJbnQlXCI6cGFyc2VJbnQsXCIlUHJvbWlzZSVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIFByb21pc2U/cjpQcm9taXNlLFwiJVByb3h5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgUHJveHk/cjpQcm94eSxcIiVSYW5nZUVycm9yJVwiOlJhbmdlRXJyb3IsXCIlUmVmZXJlbmNlRXJyb3IlXCI6UmVmZXJlbmNlRXJyb3IsXCIlUmVmbGVjdCVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIFJlZmxlY3Q/cjpSZWZsZWN0LFwiJVJlZ0V4cCVcIjpSZWdFeHAsXCIlU2V0JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgU2V0P3I6U2V0LFwiJVNldEl0ZXJhdG9yUHJvdG90eXBlJVwiOlwidW5kZWZpbmVkXCIhPT10eXBlb2YgU2V0JiZkJiZmP2YoKG5ldyBTZXQpW1N5bWJvbC5pdGVyYXRvcl0oKSk6cixcIiVTaGFyZWRBcnJheUJ1ZmZlciVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyP3I6U2hhcmVkQXJyYXlCdWZmZXIsXCIlU3RyaW5nJVwiOlN0cmluZyxcIiVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSVcIjpkJiZmP2YoXCJcIltTeW1ib2wuaXRlcmF0b3JdKCkpOnIsXCIlU3ltYm9sJVwiOmQ/U3ltYm9sOnIsXCIlU3ludGF4RXJyb3IlXCI6byxcIiVUaHJvd1R5cGVFcnJvciVcIjp1LFwiJVR5cGVkQXJyYXklXCI6bSxcIiVUeXBlRXJyb3IlXCI6YSxcIiVVaW50OEFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgVWludDhBcnJheT9yOlVpbnQ4QXJyYXksXCIlVWludDhDbGFtcGVkQXJyYXklXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBVaW50OENsYW1wZWRBcnJheT9yOlVpbnQ4Q2xhbXBlZEFycmF5LFwiJVVpbnQxNkFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgVWludDE2QXJyYXk/cjpVaW50MTZBcnJheSxcIiVVaW50MzJBcnJheSVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIFVpbnQzMkFycmF5P3I6VWludDMyQXJyYXksXCIlVVJJRXJyb3IlXCI6VVJJRXJyb3IsXCIlV2Vha01hcCVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIFdlYWtNYXA/cjpXZWFrTWFwLFwiJVdlYWtSZWYlXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBXZWFrUmVmP3I6V2Vha1JlZixcIiVXZWFrU2V0JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgV2Vha1NldD9yOldlYWtTZXR9O2lmKGYpdHJ5e251bGwuZXJyb3J9Y2F0Y2goUil7dmFyIHk9ZihmKFIpKTtnW1wiJUVycm9yLnByb3RvdHlwZSVcIl09eX12YXIgdj1mdW5jdGlvbiBlKHQpe3ZhciBuO2lmKFwiJUFzeW5jRnVuY3Rpb24lXCI9PT10KW49cyhcImFzeW5jIGZ1bmN0aW9uICgpIHt9XCIpO2Vsc2UgaWYoXCIlR2VuZXJhdG9yRnVuY3Rpb24lXCI9PT10KW49cyhcImZ1bmN0aW9uKiAoKSB7fVwiKTtlbHNlIGlmKFwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lXCI9PT10KW49cyhcImFzeW5jIGZ1bmN0aW9uKiAoKSB7fVwiKTtlbHNlIGlmKFwiJUFzeW5jR2VuZXJhdG9yJVwiPT09dCl7dmFyIHI9ZShcIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJVwiKTtyJiYobj1yLnByb3RvdHlwZSl9ZWxzZSBpZihcIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJVwiPT09dCl7dmFyIG89ZShcIiVBc3luY0dlbmVyYXRvciVcIik7byYmZiYmKG49ZihvLnByb3RvdHlwZSkpfXJldHVybiBnW3RdPW4sbn0sYj17XCIlQXJyYXlCdWZmZXJQcm90b3R5cGUlXCI6W1wiQXJyYXlCdWZmZXJcIixcInByb3RvdHlwZVwiXSxcIiVBcnJheVByb3RvdHlwZSVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJUFycmF5UHJvdG9fZW50cmllcyVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJlbnRyaWVzXCJdLFwiJUFycmF5UHJvdG9fZm9yRWFjaCVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJmb3JFYWNoXCJdLFwiJUFycmF5UHJvdG9fa2V5cyVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJrZXlzXCJdLFwiJUFycmF5UHJvdG9fdmFsdWVzJVwiOltcIkFycmF5XCIsXCJwcm90b3R5cGVcIixcInZhbHVlc1wiXSxcIiVBc3luY0Z1bmN0aW9uUHJvdG90eXBlJVwiOltcIkFzeW5jRnVuY3Rpb25cIixcInByb3RvdHlwZVwiXSxcIiVBc3luY0dlbmVyYXRvciVcIjpbXCJBc3luY0dlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUlXCI6W1wiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblwiLFwicHJvdG90eXBlXCIsXCJwcm90b3R5cGVcIl0sXCIlQm9vbGVhblByb3RvdHlwZSVcIjpbXCJCb29sZWFuXCIsXCJwcm90b3R5cGVcIl0sXCIlRGF0YVZpZXdQcm90b3R5cGUlXCI6W1wiRGF0YVZpZXdcIixcInByb3RvdHlwZVwiXSxcIiVEYXRlUHJvdG90eXBlJVwiOltcIkRhdGVcIixcInByb3RvdHlwZVwiXSxcIiVFcnJvclByb3RvdHlwZSVcIjpbXCJFcnJvclwiLFwicHJvdG90eXBlXCJdLFwiJUV2YWxFcnJvclByb3RvdHlwZSVcIjpbXCJFdmFsRXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVGbG9hdDMyQXJyYXlQcm90b3R5cGUlXCI6W1wiRmxvYXQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlRmxvYXQ2NEFycmF5UHJvdG90eXBlJVwiOltcIkZsb2F0NjRBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJUZ1bmN0aW9uUHJvdG90eXBlJVwiOltcIkZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlR2VuZXJhdG9yJVwiOltcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlR2VuZXJhdG9yUHJvdG90eXBlJVwiOltcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIixcInByb3RvdHlwZVwiXSxcIiVJbnQ4QXJyYXlQcm90b3R5cGUlXCI6W1wiSW50OEFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSW50MTZBcnJheVByb3RvdHlwZSVcIjpbXCJJbnQxNkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSW50MzJBcnJheVByb3RvdHlwZSVcIjpbXCJJbnQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSlNPTlBhcnNlJVwiOltcIkpTT05cIixcInBhcnNlXCJdLFwiJUpTT05TdHJpbmdpZnklXCI6W1wiSlNPTlwiLFwic3RyaW5naWZ5XCJdLFwiJU1hcFByb3RvdHlwZSVcIjpbXCJNYXBcIixcInByb3RvdHlwZVwiXSxcIiVOdW1iZXJQcm90b3R5cGUlXCI6W1wiTnVtYmVyXCIsXCJwcm90b3R5cGVcIl0sXCIlT2JqZWN0UHJvdG90eXBlJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCJdLFwiJU9ialByb3RvX3RvU3RyaW5nJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCIsXCJ0b1N0cmluZ1wiXSxcIiVPYmpQcm90b192YWx1ZU9mJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCIsXCJ2YWx1ZU9mXCJdLFwiJVByb21pc2VQcm90b3R5cGUlXCI6W1wiUHJvbWlzZVwiLFwicHJvdG90eXBlXCJdLFwiJVByb21pc2VQcm90b190aGVuJVwiOltcIlByb21pc2VcIixcInByb3RvdHlwZVwiLFwidGhlblwiXSxcIiVQcm9taXNlX2FsbCVcIjpbXCJQcm9taXNlXCIsXCJhbGxcIl0sXCIlUHJvbWlzZV9yZWplY3QlXCI6W1wiUHJvbWlzZVwiLFwicmVqZWN0XCJdLFwiJVByb21pc2VfcmVzb2x2ZSVcIjpbXCJQcm9taXNlXCIsXCJyZXNvbHZlXCJdLFwiJVJhbmdlRXJyb3JQcm90b3R5cGUlXCI6W1wiUmFuZ2VFcnJvclwiLFwicHJvdG90eXBlXCJdLFwiJVJlZmVyZW5jZUVycm9yUHJvdG90eXBlJVwiOltcIlJlZmVyZW5jZUVycm9yXCIsXCJwcm90b3R5cGVcIl0sXCIlUmVnRXhwUHJvdG90eXBlJVwiOltcIlJlZ0V4cFwiLFwicHJvdG90eXBlXCJdLFwiJVNldFByb3RvdHlwZSVcIjpbXCJTZXRcIixcInByb3RvdHlwZVwiXSxcIiVTaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZSVcIjpbXCJTaGFyZWRBcnJheUJ1ZmZlclwiLFwicHJvdG90eXBlXCJdLFwiJVN0cmluZ1Byb3RvdHlwZSVcIjpbXCJTdHJpbmdcIixcInByb3RvdHlwZVwiXSxcIiVTeW1ib2xQcm90b3R5cGUlXCI6W1wiU3ltYm9sXCIsXCJwcm90b3R5cGVcIl0sXCIlU3ludGF4RXJyb3JQcm90b3R5cGUlXCI6W1wiU3ludGF4RXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVUeXBlZEFycmF5UHJvdG90eXBlJVwiOltcIlR5cGVkQXJyYXlcIixcInByb3RvdHlwZVwiXSxcIiVUeXBlRXJyb3JQcm90b3R5cGUlXCI6W1wiVHlwZUVycm9yXCIsXCJwcm90b3R5cGVcIl0sXCIlVWludDhBcnJheVByb3RvdHlwZSVcIjpbXCJVaW50OEFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUlXCI6W1wiVWludDhDbGFtcGVkQXJyYXlcIixcInByb3RvdHlwZVwiXSxcIiVVaW50MTZBcnJheVByb3RvdHlwZSVcIjpbXCJVaW50MTZBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJVVpbnQzMkFycmF5UHJvdG90eXBlJVwiOltcIlVpbnQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlVVJJRXJyb3JQcm90b3R5cGUlXCI6W1wiVVJJRXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVXZWFrTWFwUHJvdG90eXBlJVwiOltcIldlYWtNYXBcIixcInByb3RvdHlwZVwiXSxcIiVXZWFrU2V0UHJvdG90eXBlJVwiOltcIldlYWtTZXRcIixcInByb3RvdHlwZVwiXX0sVD1uKDMzNTApLHg9big5NjcwKSx3PVQuY2FsbChGdW5jdGlvbi5jYWxsLEFycmF5LnByb3RvdHlwZS5jb25jYXQpLGs9VC5jYWxsKEZ1bmN0aW9uLmFwcGx5LEFycmF5LnByb3RvdHlwZS5zcGxpY2UpLEU9VC5jYWxsKEZ1bmN0aW9uLmNhbGwsU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKSxTPVQuY2FsbChGdW5jdGlvbi5jYWxsLFN0cmluZy5wcm90b3R5cGUuc2xpY2UpLEE9VC5jYWxsKEZ1bmN0aW9uLmNhbGwsUmVnRXhwLnByb3RvdHlwZS5leGVjKSxDPS9bXiUuW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxcXF18XFxcXC4pKj8pXFwyKVxcXXwoPz0oPzpcXC58XFxbXFxdKSg/OlxcLnxcXFtcXF18JSQpKS9nLF89L1xcXFwoXFxcXCk/L2csRD1mdW5jdGlvbihlLHQpe3ZhciBuLHI9ZTtpZih4KGIscikmJihyPVwiJVwiKyhuPWJbcl0pWzBdK1wiJVwiKSx4KGcscikpe3ZhciBpPWdbcl07aWYoaT09PWgmJihpPXYocikpLFwidW5kZWZpbmVkXCI9PT10eXBlb2YgaSYmIXQpdGhyb3cgbmV3IGEoXCJpbnRyaW5zaWMgXCIrZStcIiBleGlzdHMsIGJ1dCBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZSFcIik7cmV0dXJue2FsaWFzOm4sbmFtZTpyLHZhbHVlOml9fXRocm93IG5ldyBvKFwiaW50cmluc2ljIFwiK2UrXCIgZG9lcyBub3QgZXhpc3QhXCIpfTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGV8fDA9PT1lLmxlbmd0aCl0aHJvdyBuZXcgYShcImludHJpbnNpYyBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSYmXCJib29sZWFuXCIhPT10eXBlb2YgdCl0aHJvdyBuZXcgYSgnXCJhbGxvd01pc3NpbmdcIiBhcmd1bWVudCBtdXN0IGJlIGEgYm9vbGVhbicpO2lmKG51bGw9PT1BKC9eJT9bXiVdKiU/JC8sZSkpdGhyb3cgbmV3IG8oXCJgJWAgbWF5IG5vdCBiZSBwcmVzZW50IGFueXdoZXJlIGJ1dCBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGludHJpbnNpYyBuYW1lXCIpO3ZhciBuPWZ1bmN0aW9uKGUpe3ZhciB0PVMoZSwwLDEpLG49UyhlLC0xKTtpZihcIiVcIj09PXQmJlwiJVwiIT09bil0aHJvdyBuZXcgbyhcImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgY2xvc2luZyBgJWBcIik7aWYoXCIlXCI9PT1uJiZcIiVcIiE9PXQpdGhyb3cgbmV3IG8oXCJpbnZhbGlkIGludHJpbnNpYyBzeW50YXgsIGV4cGVjdGVkIG9wZW5pbmcgYCVgXCIpO3ZhciByPVtdO3JldHVybiBFKGUsQywoZnVuY3Rpb24oZSx0LG4sbyl7cltyLmxlbmd0aF09bj9FKG8sXyxcIiQxXCIpOnR8fGV9KSkscn0oZSkscj1uLmxlbmd0aD4wP25bMF06XCJcIixpPUQoXCIlXCIrcitcIiVcIix0KSxzPWkubmFtZSxjPWkudmFsdWUsdT0hMSxkPWkuYWxpYXM7ZCYmKHI9ZFswXSxrKG4sdyhbMCwxXSxkKSkpO2Zvcih2YXIgcD0xLGY9ITA7cDxuLmxlbmd0aDtwKz0xKXt2YXIgaD1uW3BdLG09UyhoLDAsMSkseT1TKGgsLTEpO2lmKCgnXCInPT09bXx8XCInXCI9PT1tfHxcImBcIj09PW18fCdcIic9PT15fHxcIidcIj09PXl8fFwiYFwiPT09eSkmJm0hPT15KXRocm93IG5ldyBvKFwicHJvcGVydHkgbmFtZXMgd2l0aCBxdW90ZXMgbXVzdCBoYXZlIG1hdGNoaW5nIHF1b3Rlc1wiKTtpZihcImNvbnN0cnVjdG9yXCIhPT1oJiZmfHwodT0hMCkseChnLHM9XCIlXCIrKHIrPVwiLlwiK2gpK1wiJVwiKSljPWdbc107ZWxzZSBpZihudWxsIT1jKXtpZighKGggaW4gYykpe2lmKCF0KXRocm93IG5ldyBhKFwiYmFzZSBpbnRyaW5zaWMgZm9yIFwiK2UrXCIgZXhpc3RzLCBidXQgdGhlIHByb3BlcnR5IGlzIG5vdCBhdmFpbGFibGUuXCIpO3JldHVybn1pZihsJiZwKzE+PW4ubGVuZ3RoKXt2YXIgdj1sKGMsaCk7Yz0oZj0hIXYpJiZcImdldFwiaW4gdiYmIShcIm9yaWdpbmFsVmFsdWVcImluIHYuZ2V0KT92LmdldDpjW2hdfWVsc2UgZj14KGMsaCksYz1jW2hdO2YmJiF1JiYoZ1tzXT1jKX19cmV0dXJuIGN9fSwzMzQ3OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI1MDYpKFwiJU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IlXCIsITApO2lmKHIpdHJ5e3IoW10sXCJsZW5ndGhcIil9Y2F0Y2gobyl7cj1udWxsfWUuZXhwb3J0cz1yfSw0NTEwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI1MDYpKFwiJU9iamVjdC5kZWZpbmVQcm9wZXJ0eSVcIiwhMCksbz1mdW5jdGlvbigpe2lmKHIpdHJ5e3JldHVybiByKHt9LFwiYVwiLHt2YWx1ZToxfSksITB9Y2F0Y2goZSl7cmV0dXJuITF9cmV0dXJuITF9O28uaGFzQXJyYXlMZW5ndGhEZWZpbmVCdWc9ZnVuY3Rpb24oKXtpZighbygpKXJldHVybiBudWxsO3RyeXtyZXR1cm4gMSE9PXIoW10sXCJsZW5ndGhcIix7dmFsdWU6MX0pLmxlbmd0aH1jYXRjaChlKXtyZXR1cm4hMH19LGUuZXhwb3J0cz1vfSwyMjAzOmU9PntcInVzZSBzdHJpY3RcIjt2YXIgdD17Zm9vOnt9fSxuPU9iamVjdDtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm57X19wcm90b19fOnR9LmZvbz09PXQuZm9vJiYhKHtfX3Byb3RvX186bnVsbH1pbnN0YW5jZW9mIG4pfX0sNjk3OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1cInVuZGVmaW5lZFwiIT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLG89bigzMjk3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgciYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJihcInN5bWJvbFwiPT09dHlwZW9mIHIoXCJmb29cIikmJihcInN5bWJvbFwiPT09dHlwZW9mIFN5bWJvbChcImJhclwiKSYmbygpKSkpfX0sMzI5NzplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIFN5bWJvbHx8XCJmdW5jdGlvblwiIT09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpcmV0dXJuITE7aWYoXCJzeW1ib2xcIj09PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IpcmV0dXJuITA7dmFyIGU9e30sdD1TeW1ib2woXCJ0ZXN0XCIpLG49T2JqZWN0KHQpO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgdClyZXR1cm4hMTtpZihcIltvYmplY3QgU3ltYm9sXVwiIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKXJldHVybiExO2lmKFwiW29iamVjdCBTeW1ib2xdXCIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobikpcmV0dXJuITE7Zm9yKHQgaW4gZVt0XT00MixlKXJldHVybiExO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBPYmplY3Qua2V5cyYmMCE9PU9iamVjdC5rZXlzKGUpLmxlbmd0aClyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMmJjAhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5sZW5ndGgpcmV0dXJuITE7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtpZigxIT09ci5sZW5ndGh8fHJbMF0hPT10KXJldHVybiExO2lmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSlyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcil7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpO2lmKDQyIT09by52YWx1ZXx8ITAhPT1vLmVudW1lcmFibGUpcmV0dXJuITF9cmV0dXJuITB9fSw5NjcwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCxvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksaT1uKDMzNTApO2UuZXhwb3J0cz1pLmNhbGwocixvKX0sMjExMDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MzA5KSxvPXtjaGlsZENvbnRleHRUeXBlczohMCxjb250ZXh0VHlwZTohMCxjb250ZXh0VHlwZXM6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLGdldERlZmF1bHRQcm9wczohMCxnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiEwLG1peGluczohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0saT17bmFtZTohMCxsZW5ndGg6ITAscHJvdG90eXBlOiEwLGNhbGxlcjohMCxjYWxsZWU6ITAsYXJndW1lbnRzOiEwLGFyaXR5OiEwfSxhPXskJHR5cGVvZjohMCxjb21wYXJlOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0scz17fTtmdW5jdGlvbiBsKGUpe3JldHVybiByLmlzTWVtbyhlKT9hOnNbZS4kJHR5cGVvZl18fG99c1tyLkZvcndhcmRSZWZdPXskJHR5cGVvZjohMCxyZW5kZXI6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMH0sc1tyLk1lbW9dPWE7dmFyIGM9T2JqZWN0LmRlZmluZVByb3BlcnR5LHU9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsZD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixmPU9iamVjdC5nZXRQcm90b3R5cGVPZixoPU9iamVjdC5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uIGUodCxuLHIpe2lmKFwic3RyaW5nXCIhPT10eXBlb2Ygbil7aWYoaCl7dmFyIG89ZihuKTtvJiZvIT09aCYmZSh0LG8scil9dmFyIGE9dShuKTtkJiYoYT1hLmNvbmNhdChkKG4pKSk7Zm9yKHZhciBzPWwodCksbT1sKG4pLGc9MDtnPGEubGVuZ3RoOysrZyl7dmFyIHk9YVtnXTtpZighaVt5XSYmKCFyfHwhclt5XSkmJighbXx8IW1beV0pJiYoIXN8fCFzW3ldKSl7dmFyIHY9cChuLHkpO3RyeXtjKHQseSx2KX1jYXRjaChiKXt9fX19cmV0dXJuIHR9fSw3NDY6KGUsdCk9PntcInVzZSBzdHJpY3RcIjt2YXIgbj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yLHI9bj9TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKTo2MDEwMyxvPW4/U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKTo2MDEwNixpPW4/U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpOjYwMTA3LGE9bj9TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIik6NjAxMDgscz1uP1N5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKTo2MDExNCxsPW4/U3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpOjYwMTA5LGM9bj9TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKTo2MDExMCx1PW4/U3ltYm9sLmZvcihcInJlYWN0LmFzeW5jX21vZGVcIik6NjAxMTEsZD1uP1N5bWJvbC5mb3IoXCJyZWFjdC5jb25jdXJyZW50X21vZGVcIik6NjAxMTEscD1uP1N5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKTo2MDExMixmPW4/U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpOjYwMTEzLGg9bj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKTo2MDEyMCxtPW4/U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIik6NjAxMTUsZz1uP1N5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpOjYwMTE2LHk9bj9TeW1ib2wuZm9yKFwicmVhY3QuYmxvY2tcIik6NjAxMjEsdj1uP1N5bWJvbC5mb3IoXCJyZWFjdC5mdW5kYW1lbnRhbFwiKTo2MDExNyxiPW4/U3ltYm9sLmZvcihcInJlYWN0LnJlc3BvbmRlclwiKTo2MDExOCxUPW4/U3ltYm9sLmZvcihcInJlYWN0LnNjb3BlXCIpOjYwMTE5O2Z1bmN0aW9uIHgoZSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlJiZudWxsIT09ZSl7dmFyIHQ9ZS4kJHR5cGVvZjtzd2l0Y2godCl7Y2FzZSByOnN3aXRjaChlPWUudHlwZSl7Y2FzZSB1OmNhc2UgZDpjYXNlIGk6Y2FzZSBzOmNhc2UgYTpjYXNlIGY6cmV0dXJuIGU7ZGVmYXVsdDpzd2l0Y2goZT1lJiZlLiQkdHlwZW9mKXtjYXNlIGM6Y2FzZSBwOmNhc2UgZzpjYXNlIG06Y2FzZSBsOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuIHR9fWNhc2UgbzpyZXR1cm4gdH19fWZ1bmN0aW9uIHcoZSl7cmV0dXJuIHgoZSk9PT1kfXQuQXN5bmNNb2RlPXUsdC5Db25jdXJyZW50TW9kZT1kLHQuQ29udGV4dENvbnN1bWVyPWMsdC5Db250ZXh0UHJvdmlkZXI9bCx0LkVsZW1lbnQ9cix0LkZvcndhcmRSZWY9cCx0LkZyYWdtZW50PWksdC5MYXp5PWcsdC5NZW1vPW0sdC5Qb3J0YWw9byx0LlByb2ZpbGVyPXMsdC5TdHJpY3RNb2RlPWEsdC5TdXNwZW5zZT1mLHQuaXNBc3luY01vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSl8fHgoZSk9PT11fSx0LmlzQ29uY3VycmVudE1vZGU9dyx0LmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGUpe3JldHVybiB4KGUpPT09Y30sdC5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihlKXtyZXR1cm4geChlKT09PWx9LHQuaXNFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1yfSx0LmlzRm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm4geChlKT09PXB9LHQuaXNGcmFnbWVudD1mdW5jdGlvbihlKXtyZXR1cm4geChlKT09PWl9LHQuaXNMYXp5PWZ1bmN0aW9uKGUpe3JldHVybiB4KGUpPT09Z30sdC5pc01lbW89ZnVuY3Rpb24oZSl7cmV0dXJuIHgoZSk9PT1tfSx0LmlzUG9ydGFsPWZ1bmN0aW9uKGUpe3JldHVybiB4KGUpPT09b30sdC5pc1Byb2ZpbGVyPWZ1bmN0aW9uKGUpe3JldHVybiB4KGUpPT09c30sdC5pc1N0cmljdE1vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHgoZSk9PT1hfSx0LmlzU3VzcGVuc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHgoZSk9PT1mfSx0LmlzVmFsaWRFbGVtZW50VHlwZT1mdW5jdGlvbihlKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGV8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlfHxlPT09aXx8ZT09PWR8fGU9PT1zfHxlPT09YXx8ZT09PWZ8fGU9PT1ofHxcIm9iamVjdFwiPT09dHlwZW9mIGUmJm51bGwhPT1lJiYoZS4kJHR5cGVvZj09PWd8fGUuJCR0eXBlb2Y9PT1tfHxlLiQkdHlwZW9mPT09bHx8ZS4kJHR5cGVvZj09PWN8fGUuJCR0eXBlb2Y9PT1wfHxlLiQkdHlwZW9mPT09dnx8ZS4kJHR5cGVvZj09PWJ8fGUuJCR0eXBlb2Y9PT1UfHxlLiQkdHlwZW9mPT09eSl9LHQudHlwZU9mPXh9LDgzMDk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1uKDc0Nil9LDU2ODM6ZT0+e2UuZXhwb3J0cz17Q0FTRV9TRU5TSVRJVkVfVEFHX05BTUVTOltcImFuaW1hdGVNb3Rpb25cIixcImFuaW1hdGVUcmFuc2Zvcm1cIixcImNsaXBQYXRoXCIsXCJmZUJsZW5kXCIsXCJmZUNvbG9yTWF0cml4XCIsXCJmZUNvbXBvbmVudFRyYW5zZmVyXCIsXCJmZUNvbXBvc2l0ZVwiLFwiZmVDb252b2x2ZU1hdHJpeFwiLFwiZmVEaWZmdXNlTGlnaHRpbmdcIixcImZlRGlzcGxhY2VtZW50TWFwXCIsXCJmZURyb3BTaGFkb3dcIixcImZlRmxvb2RcIixcImZlRnVuY0FcIixcImZlRnVuY0JcIixcImZlRnVuY0dcIixcImZlRnVuY1JcIixcImZlR2F1c3NhaW5CbHVyXCIsXCJmZUltYWdlXCIsXCJmZU1lcmdlXCIsXCJmZU1lcmdlTm9kZVwiLFwiZmVNb3JwaG9sb2d5XCIsXCJmZU9mZnNldFwiLFwiZmVQb2ludExpZ2h0XCIsXCJmZVNwZWN1bGFyTGlnaHRpbmdcIixcImZlU3BvdExpZ2h0XCIsXCJmZVRpbGVcIixcImZlVHVyYnVsZW5jZVwiLFwiZm9yZWlnbk9iamVjdFwiLFwibGluZWFyR3JhZGllbnRcIixcInJhZGlhbEdyYWRpZW50XCIsXCJ0ZXh0UGF0aFwiXX19LDM0ODI6KGUsdCxuKT0+e3ZhciByPW4oMTI0MSksbz1cImh0bWxcIixpPVwiaGVhZFwiLGE9XCJib2R5XCIscz0vPChbYS16QS1aXStbMC05XT8pLyxsPS88aGVhZC4qPi9pLGM9Lzxib2R5Lio+L2ksdT0vPChhcmVhfGJhc2V8YnJ8Y29sfGVtYmVkfGhyfGltZ3xpbnB1dHxrZXlnZW58bGlua3xtZW51aXRlbXxtZXRhfHBhcmFtfHNvdXJjZXx0cmFja3x3YnIpKC4qPylcXC8/Pi9naSxkPXIuaXNJRSg5KSxwPWR8fHIuaXNJRSgpLGY9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50YFwiKX0saD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcIlRoaXMgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGBET01QYXJzZXIucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZ2BcIil9O2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB3aW5kb3cuRE9NUGFyc2VyKXt2YXIgbT1uZXcgd2luZG93LkRPTVBhcnNlcixnPWQ/XCJ0ZXh0L3htbFwiOlwidGV4dC9odG1sXCI7Zj1oPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQmJihlPVwiPFwiK3QrXCI+XCIrZStcIjwvXCIrdCtcIj5cIiksZCYmKGU9ZS5yZXBsYWNlKHUsXCI8JDEkMiQzLz5cIikpLG0ucGFyc2VGcm9tU3RyaW5nKGUsZyl9fWlmKGRvY3VtZW50LmltcGxlbWVudGF0aW9uKXt2YXIgeT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQocD9cImh0bWwtZG9tLXBhcnNlclwiOnZvaWQgMCk7Zj1mdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuIHkuZG9jdW1lbnRFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpWzBdLmlubmVySFRNTD1lLHk7dHJ5e3JldHVybiB5LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUw9ZSx5fWNhdGNoKG4pe2lmKGgpcmV0dXJuIGgoZSl9fX12YXIgdixiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKTtiLmNvbnRlbnQmJih2PWZ1bmN0aW9uKGUpe3JldHVybiBiLmlubmVySFRNTD1lLGIuY29udGVudC5jaGlsZE5vZGVzfSksZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0LG4scix1LGQ9ZS5tYXRjaChzKTtzd2l0Y2goZCYmZFsxXSYmKHQ9ZFsxXS50b0xvd2VyQ2FzZSgpKSx0KXtjYXNlIG86cmV0dXJuIG49aChlKSxsLnRlc3QoZSl8fChyPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoaSlbMF0pJiZyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQociksYy50ZXN0KGUpfHwocj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpWzBdKSYmci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpLG4uZ2V0RWxlbWVudHNCeVRhZ05hbWUobyk7Y2FzZSBpOmNhc2UgYTpyZXR1cm4gdT1mKGUpLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpLGMudGVzdChlKSYmbC50ZXN0KGUpP3VbMF0ucGFyZW50Tm9kZS5jaGlsZE5vZGVzOnU7ZGVmYXVsdDpyZXR1cm4gdj92KGUpOmYoZSxhKS5nZXRFbGVtZW50c0J5VGFnTmFtZShhKVswXS5jaGlsZE5vZGVzfX19LDEyNjQ6KGUsdCxuKT0+e3ZhciByPW4oMzQ4Miksbz1uKDEyNDEpLGk9by5mb3JtYXRET00sYT1vLmlzSUUoOSkscz0vPCghW2EtekEtWlxcc10rKT4vO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmdcIik7aWYoIWUpcmV0dXJuW107dmFyIHQsbj1lLm1hdGNoKHMpO3JldHVybiBuJiZuWzFdJiYodD1uWzFdLGEmJihlPWUucmVwbGFjZShuWzBdLFwiXCIpKSksaShyKGUpLG51bGwsdCl9fSwxMjQxOihlLHQsbik9Pntmb3IodmFyIHIsbz1uKDU2ODMpLkNBU0VfU0VOU0lUSVZFX1RBR19OQU1FUyxpPXt9LGE9MCxzPW8ubGVuZ3RoO2E8czthKyspcj1vW2FdLGlbci50b0xvd2VyQ2FzZSgpXT1yO2Z1bmN0aW9uIGwoZSl7Zm9yKHZhciB0LG49e30scj0wLG89ZS5sZW5ndGg7cjxvO3IrKyluWyh0PWVbcl0pLm5hbWVdPXQudmFsdWU7cmV0dXJuIG59ZnVuY3Rpb24gYyhlKXt2YXIgdD1mdW5jdGlvbihlKXtyZXR1cm4gaVtlXX0oZT1lLnRvTG93ZXJDYXNlKCkpO3JldHVybiB0fHxlfWUuZXhwb3J0cz17Zm9ybWF0QXR0cmlidXRlczpsLGZvcm1hdERPTTpmdW5jdGlvbiBlKHQsbixyKXtuPW58fG51bGw7Zm9yKHZhciBvLGksYSxzPVtdLHU9MCxkPXQubGVuZ3RoO3U8ZDt1Kyspe3N3aXRjaChvPXRbdV0sYT17bmV4dDpudWxsLHByZXY6c1t1LTFdfHxudWxsLHBhcmVudDpufSwoaT1zW3UtMV0pJiYoaS5uZXh0PWEpLFwiI1wiIT09by5ub2RlTmFtZVswXSYmKGEubmFtZT1jKG8ubm9kZU5hbWUpLGEuYXR0cmlicz17fSxvLmF0dHJpYnV0ZXMmJm8uYXR0cmlidXRlcy5sZW5ndGgmJihhLmF0dHJpYnM9bChvLmF0dHJpYnV0ZXMpKSksby5ub2RlVHlwZSl7Y2FzZSAxOlwic2NyaXB0XCI9PT1hLm5hbWV8fFwic3R5bGVcIj09PWEubmFtZT9hLnR5cGU9YS5uYW1lOmEudHlwZT1cInRhZ1wiLGEuY2hpbGRyZW49ZShvLmNoaWxkTm9kZXMsYSk7YnJlYWs7Y2FzZSAzOmEudHlwZT1cInRleHRcIixhLmRhdGE9by5ub2RlVmFsdWU7YnJlYWs7Y2FzZSA4OmEudHlwZT1cImNvbW1lbnRcIixhLmRhdGE9by5ub2RlVmFsdWV9cy5wdXNoKGEpfXJldHVybiByJiYocy51bnNoaWZ0KHtuYW1lOnIuc3Vic3RyaW5nKDAsci5pbmRleE9mKFwiIFwiKSkudG9Mb3dlckNhc2UoKSxkYXRhOnIsdHlwZTpcImRpcmVjdGl2ZVwiLG5leHQ6c1swXT9zWzBdOm51bGwscHJldjpudWxsLHBhcmVudDpufSksc1sxXSYmKHNbMV0ucHJldj1zWzBdKSksc30saXNJRTpmdW5jdGlvbihlKXtyZXR1cm4gZT9kb2N1bWVudC5kb2N1bWVudE1vZGU9PT1lOi8oTVNJRSB8VHJpZGVudFxcL3xFZGdlXFwvKS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KX19fSw2ODU0OihlLHQsbik9Pnt2YXIgcj1uKDQ1OTUpLG89big4MTMxKSxpPW4oMTI2NCksYT17ZGVjb2RlRW50aXRpZXM6ITAsbG93ZXJDYXNlQXR0cmlidXRlTmFtZXM6ITF9O2Z1bmN0aW9uIHMoZSx0KXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmdcIik7cmV0dXJuXCJcIj09PWU/W106cihpKGUsKHQ9dHx8e30pLmh0bWxwYXJzZXIyfHxhKSx0KX1zLmRvbVRvUmVhY3Q9cixzLmh0bWxUb0RPTT1pLHMuYXR0cmlidXRlc1RvUHJvcHM9byxlLmV4cG9ydHM9cyxlLmV4cG9ydHMuZGVmYXVsdD1zfSw4MTMxOihlLHQsbik9Pnt2YXIgcj1uKDU3NDgpLG89big0MTQxKSxpPW8uc2V0U3R5bGVQcm9wLGE9ci5odG1sLHM9ci5zdmcsbD1yLmlzQ3VzdG9tQXR0cmlidXRlLGM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLHU7ZT1lfHx7fTt2YXIgZD17fTtmb3IodCBpbiBlKXI9ZVt0XSxsKHQpP2RbdF09cjoobj10LnRvTG93ZXJDYXNlKCksYy5jYWxsKGEsbik/ZFsodT1hW25dKS5wcm9wZXJ0eU5hbWVdPSEhKHUuaGFzQm9vbGVhblZhbHVlfHx1Lmhhc092ZXJsb2FkZWRCb29sZWFuVmFsdWUmJiFyKXx8cjpjLmNhbGwocyx0KT9kWyh1PXNbdF0pLnByb3BlcnR5TmFtZV09cjpvLlBSRVNFUlZFX0NVU1RPTV9BVFRSSUJVVEVTJiYoZFt0XT1yKSk7cmV0dXJuIGkoZS5zdHlsZSxkKSxkfX0sNDU5NTooZSx0LG4pPT57dmFyIHI9bigyNzkxKSxvPW4oODEzMSksaT1uKDQxNDEpLGE9aS5zZXRTdHlsZVByb3A7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gaS5QUkVTRVJWRV9DVVNUT01fQVRUUklCVVRFUyYmXCJ0YWdcIj09PWUudHlwZSYmaS5pc0N1c3RvbUNvbXBvbmVudChlLm5hbWUsZS5hdHRyaWJzKX1lLmV4cG9ydHM9ZnVuY3Rpb24gZSh0LG4pe2Zvcih2YXIgaSxsLGMsdSxkPShuPW58fHt9KS5saWJyYXJ5fHxyLHA9ZC5jbG9uZUVsZW1lbnQsZj1kLmNyZWF0ZUVsZW1lbnQsaD1kLmlzVmFsaWRFbGVtZW50LG09W10sZz1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi5yZXBsYWNlLHk9bi50cmltLHY9MCxiPXQubGVuZ3RoO3Y8Yjt2KyspaWYoaT10W3ZdLGcmJmgobD1uLnJlcGxhY2UoaSkpKWI+MSYmKGw9cChsLHtrZXk6bC5rZXl8fHZ9KSksbS5wdXNoKGwpO2Vsc2UgaWYoXCJ0ZXh0XCIhPT1pLnR5cGUpe3N3aXRjaChjPWkuYXR0cmlicyxzKGkpP2EoYy5zdHlsZSxjKTpjJiYoYz1vKGMpKSx1PW51bGwsaS50eXBlKXtjYXNlXCJzY3JpcHRcIjpjYXNlXCJzdHlsZVwiOmkuY2hpbGRyZW5bMF0mJihjLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXtfX2h0bWw6aS5jaGlsZHJlblswXS5kYXRhfSk7YnJlYWs7Y2FzZVwidGFnXCI6XCJ0ZXh0YXJlYVwiPT09aS5uYW1lJiZpLmNoaWxkcmVuWzBdP2MuZGVmYXVsdFZhbHVlPWkuY2hpbGRyZW5bMF0uZGF0YTppLmNoaWxkcmVuJiZpLmNoaWxkcmVuLmxlbmd0aCYmKHU9ZShpLmNoaWxkcmVuLG4pKTticmVhaztkZWZhdWx0OmNvbnRpbnVlfWI+MSYmKGMua2V5PXYpLG0ucHVzaChmKGkubmFtZSxjLHUpKX1lbHNlIHk/aS5kYXRhLnRyaW0oKSYmbS5wdXNoKGkuZGF0YSk6bS5wdXNoKGkuZGF0YSk7cmV0dXJuIDE9PT1tLmxlbmd0aD9tWzBdOm19fSw0MTQxOihlLHQsbik9Pnt2YXIgcj1uKDI3OTEpLG89big1NzkyKS5kZWZhdWx0O3ZhciBpPXtyZWFjdENvbXBhdDohMH07dmFyIGE9ci52ZXJzaW9uLnNwbGl0KFwiLlwiKVswXT49MTY7ZS5leHBvcnRzPXtQUkVTRVJWRV9DVVNUT01fQVRUUklCVVRFUzphLGludmVydE9iamVjdDpmdW5jdGlvbihlLHQpe2lmKCFlfHxcIm9iamVjdFwiIT09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0XCIpO3ZhciBuLHIsbz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgdCxpPXt9LGE9e307Zm9yKG4gaW4gZSlyPWVbbl0sbyYmKGk9dChuLHIpKSYmMj09PWkubGVuZ3RoP2FbaVswXV09aVsxXTpcInN0cmluZ1wiPT09dHlwZW9mIHImJihhW3JdPW4pO3JldHVybiBhfSxpc0N1c3RvbUNvbXBvbmVudDpmdW5jdGlvbihlLHQpe2lmKC0xPT09ZS5pbmRleE9mKFwiLVwiKSlyZXR1cm4gdCYmXCJzdHJpbmdcIj09PXR5cGVvZiB0LmlzO3N3aXRjaChlKXtjYXNlXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2VcImNvbG9yLXByb2ZpbGVcIjpjYXNlXCJmb250LWZhY2VcIjpjYXNlXCJmb250LWZhY2Utc3JjXCI6Y2FzZVwiZm9udC1mYWNlLXVyaVwiOmNhc2VcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlXCJmb250LWZhY2UtbmFtZVwiOmNhc2VcIm1pc3NpbmctZ2x5cGhcIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX0sc2V0U3R5bGVQcm9wOmZ1bmN0aW9uKGUsdCl7bnVsbCE9PWUmJnZvaWQgMCE9PWUmJih0LnN0eWxlPW8oZSxpKSl9fX0sMTA2NTplPT57dmFyIHQ9L1xcL1xcKlteKl0qXFwqKyhbXi8qXVteKl0qXFwqKykqXFwvL2csbj0vXFxuL2cscj0vXlxccyovLG89L14oXFwqP1stIy8qXFxcXFxcd10rKFxcW1swLTlhLXpfLV0rXFxdKT8pXFxzKi8saT0vXjpcXHMqLyxhPS9eKCg/OicoPzpcXFxcJ3wuKSo/J3xcIig/OlxcXFxcInwuKSo/XCJ8XFwoW14pXSo/XFwpfFtefTtdKSspLyxzPS9eWztcXHNdKi8sbD0vXlxccyt8XFxzKyQvZyxjPVwiXCI7ZnVuY3Rpb24gdShlKXtyZXR1cm4gZT9lLnJlcGxhY2UobCxjKTpjfWUuZXhwb3J0cz1mdW5jdGlvbihlLGwpe2lmKFwic3RyaW5nXCIhPT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZ1wiKTtpZighZSlyZXR1cm5bXTtsPWx8fHt9O3ZhciBkPTEscD0xO2Z1bmN0aW9uIGYoZSl7dmFyIHQ9ZS5tYXRjaChuKTt0JiYoZCs9dC5sZW5ndGgpO3ZhciByPWUubGFzdEluZGV4T2YoXCJcXG5cIik7cD1+cj9lLmxlbmd0aC1yOnArZS5sZW5ndGh9ZnVuY3Rpb24gaCgpe3ZhciBlPXtsaW5lOmQsY29sdW1uOnB9O3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdC5wb3NpdGlvbj1uZXcgbShlKSxiKCksdH19ZnVuY3Rpb24gbShlKXt0aGlzLnN0YXJ0PWUsdGhpcy5lbmQ9e2xpbmU6ZCxjb2x1bW46cH0sdGhpcy5zb3VyY2U9bC5zb3VyY2V9bS5wcm90b3R5cGUuY29udGVudD1lO3ZhciBnPVtdO2Z1bmN0aW9uIHkodCl7dmFyIG49bmV3IEVycm9yKGwuc291cmNlK1wiOlwiK2QrXCI6XCIrcCtcIjogXCIrdCk7aWYobi5yZWFzb249dCxuLmZpbGVuYW1lPWwuc291cmNlLG4ubGluZT1kLG4uY29sdW1uPXAsbi5zb3VyY2U9ZSwhbC5zaWxlbnQpdGhyb3cgbjtnLnB1c2gobil9ZnVuY3Rpb24gdih0KXt2YXIgbj10LmV4ZWMoZSk7aWYobil7dmFyIHI9blswXTtyZXR1cm4gZihyKSxlPWUuc2xpY2Uoci5sZW5ndGgpLG59fWZ1bmN0aW9uIGIoKXt2KHIpfWZ1bmN0aW9uIFQoZSl7dmFyIHQ7Zm9yKGU9ZXx8W107dD14KCk7KSExIT09dCYmZS5wdXNoKHQpO3JldHVybiBlfWZ1bmN0aW9uIHgoKXt2YXIgdD1oKCk7aWYoXCIvXCI9PWUuY2hhckF0KDApJiZcIipcIj09ZS5jaGFyQXQoMSkpe2Zvcih2YXIgbj0yO2MhPWUuY2hhckF0KG4pJiYoXCIqXCIhPWUuY2hhckF0KG4pfHxcIi9cIiE9ZS5jaGFyQXQobisxKSk7KSsrbjtpZihuKz0yLGM9PT1lLmNoYXJBdChuLTEpKXJldHVybiB5KFwiRW5kIG9mIGNvbW1lbnQgbWlzc2luZ1wiKTt2YXIgcj1lLnNsaWNlKDIsbi0yKTtyZXR1cm4gcCs9MixmKHIpLGU9ZS5zbGljZShuKSxwKz0yLHQoe3R5cGU6XCJjb21tZW50XCIsY29tbWVudDpyfSl9fWZ1bmN0aW9uIHcoKXt2YXIgZT1oKCksbj12KG8pO2lmKG4pe2lmKHgoKSwhdihpKSlyZXR1cm4geShcInByb3BlcnR5IG1pc3NpbmcgJzonXCIpO3ZhciByPXYoYSksbD1lKHt0eXBlOlwiZGVjbGFyYXRpb25cIixwcm9wZXJ0eTp1KG5bMF0ucmVwbGFjZSh0LGMpKSx2YWx1ZTpyP3UoclswXS5yZXBsYWNlKHQsYykpOmN9KTtyZXR1cm4gdihzKSxsfX1yZXR1cm4gYigpLGZ1bmN0aW9uKCl7dmFyIGUsdD1bXTtmb3IoVCh0KTtlPXcoKTspITEhPT1lJiYodC5wdXNoKGUpLFQodCkpO3JldHVybiB0fSgpfX0sMTQ0MjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0M6KCk9PmN9KTt2YXIgcj1uKDU5NzEpLG89big1MzY4KSxpPW4oMzUzMSksYT1uKDk3NzQpO2Z1bmN0aW9uIHMoZSx0KXtyZXR1cm4gdD9PYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGZ1bmN0aW9uKG4sbyl7dmFyIGksYTtyZXR1cm4gbltvXT0oaT1lW29dLChhPXRbb10pPygwLHIucGkpKCgwLHIucGkpKCgwLHIucGkpKHt9LGl8fHt9KSxhfHx7fSksT2JqZWN0LmtleXMoaSkucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiBlW3RdPSgwLHIucGkpKCgwLHIucGkpKHt9LGlbdF0pLGFbdF18fHt9KSxlfSkse30pKTppKSxufSksKDAsci5waSkoe30sZSkpOmV9ZnVuY3Rpb24gbChlKXtyZXR1cm57Y3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJue2dldDpmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0sc2V0OmZ1bmN0aW9uKHQsbil7ZVt0XT1ufX19fX12YXIgYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxuLG8sYyl7dmFyIHUsZD10aGlzO2lmKHZvaWQgMD09PW4mJihuPWUuZGVmYXVsdExvY2FsZSksdGhpcy5mb3JtYXR0ZXJDYWNoZT17bnVtYmVyOnt9LGRhdGVUaW1lOnt9LHBsdXJhbFJ1bGVzOnt9fSx0aGlzLmZvcm1hdD1mdW5jdGlvbihlKXt2YXIgdD1kLmZvcm1hdFRvUGFydHMoZSk7aWYoMT09PXQubGVuZ3RoKXJldHVybiB0WzBdLnZhbHVlO3ZhciBuPXQucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiBlLmxlbmd0aCYmdC50eXBlPT09YS5kdS5saXRlcmFsJiZcInN0cmluZ1wiPT09dHlwZW9mIGVbZS5sZW5ndGgtMV0/ZVtlLmxlbmd0aC0xXSs9dC52YWx1ZTplLnB1c2godC52YWx1ZSksZX0pLFtdKTtyZXR1cm4gbi5sZW5ndGg8PTE/blswXXx8XCJcIjpufSx0aGlzLmZvcm1hdFRvUGFydHM9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsYS5GSykoZC5hc3QsZC5sb2NhbGVzLGQuZm9ybWF0dGVycyxkLmZvcm1hdHMsZSx2b2lkIDAsZC5tZXNzYWdlKX0sdGhpcy5yZXNvbHZlZE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm57bG9jYWxlOmQucmVzb2x2ZWRMb2NhbGUudG9TdHJpbmcoKX19LHRoaXMuZ2V0QXN0PWZ1bmN0aW9uKCl7cmV0dXJuIGQuYXN0fSx0aGlzLmxvY2FsZXM9bix0aGlzLnJlc29sdmVkTG9jYWxlPWUucmVzb2x2ZUxvY2FsZShuKSxcInN0cmluZ1wiPT09dHlwZW9mIHQpe2lmKHRoaXMubWVzc2FnZT10LCFlLl9fcGFyc2UpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludGxNZXNzYWdlRm9ybWF0Ll9fcGFyc2UgbXVzdCBiZSBzZXQgdG8gcHJvY2VzcyBgbWVzc2FnZWAgb2YgdHlwZSBgc3RyaW5nYFwiKTt0aGlzLmFzdD1lLl9fcGFyc2UodCx7aWdub3JlVGFnOm51bGw9PT1jfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmlnbm9yZVRhZyxsb2NhbGU6dGhpcy5yZXNvbHZlZExvY2FsZX0pfWVsc2UgdGhpcy5hc3Q9dDtpZighQXJyYXkuaXNBcnJheSh0aGlzLmFzdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkEgbWVzc2FnZSBtdXN0IGJlIHByb3ZpZGVkIGFzIGEgU3RyaW5nIG9yIEFTVC5cIik7dGhpcy5mb3JtYXRzPXMoZS5mb3JtYXRzLG8pLHRoaXMuZm9ybWF0dGVycz1jJiZjLmZvcm1hdHRlcnN8fCh2b2lkIDA9PT0odT10aGlzLmZvcm1hdHRlckNhY2hlKSYmKHU9e251bWJlcjp7fSxkYXRlVGltZTp7fSxwbHVyYWxSdWxlczp7fX0pLHtnZXROdW1iZXJGb3JtYXQ6KDAsaS5aKSgoZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KChlPUludGwuTnVtYmVyRm9ybWF0KS5iaW5kLmFwcGx5KGUsKDAsci5ldikoW3ZvaWQgMF0sdCwhMSkpKX0pLHtjYWNoZTpsKHUubnVtYmVyKSxzdHJhdGVneTppLkEudmFyaWFkaWN9KSxnZXREYXRlVGltZUZvcm1hdDooMCxpLlopKChmdW5jdGlvbigpe2Zvcih2YXIgZSx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiBuZXcoKGU9SW50bC5EYXRlVGltZUZvcm1hdCkuYmluZC5hcHBseShlLCgwLHIuZXYpKFt2b2lkIDBdLHQsITEpKSl9KSx7Y2FjaGU6bCh1LmRhdGVUaW1lKSxzdHJhdGVneTppLkEudmFyaWFkaWN9KSxnZXRQbHVyYWxSdWxlczooMCxpLlopKChmdW5jdGlvbigpe2Zvcih2YXIgZSx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiBuZXcoKGU9SW50bC5QbHVyYWxSdWxlcykuYmluZC5hcHBseShlLCgwLHIuZXYpKFt2b2lkIDBdLHQsITEpKSl9KSx7Y2FjaGU6bCh1LnBsdXJhbFJ1bGVzKSxzdHJhdGVneTppLkEudmFyaWFkaWN9KX0pfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRMb2NhbGVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUubWVtb2l6ZWREZWZhdWx0TG9jYWxlfHwoZS5tZW1vaXplZERlZmF1bHRMb2NhbGU9KG5ldyBJbnRsLk51bWJlckZvcm1hdCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlKSxlLm1lbW9pemVkRGVmYXVsdExvY2FsZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLm1lbW9pemVkRGVmYXVsdExvY2FsZT1udWxsLGUucmVzb2x2ZUxvY2FsZT1mdW5jdGlvbihlKXt2YXIgdD1JbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoZSk7cmV0dXJuIHQubGVuZ3RoPjA/bmV3IEludGwuTG9jYWxlKHRbMF0pOm5ldyBJbnRsLkxvY2FsZShcInN0cmluZ1wiPT09dHlwZW9mIGU/ZTplWzBdKX0sZS5fX3BhcnNlPW8uUWMsZS5mb3JtYXRzPXtudW1iZXI6e2ludGVnZXI6e21heGltdW1GcmFjdGlvbkRpZ2l0czowfSxjdXJyZW5jeTp7c3R5bGU6XCJjdXJyZW5jeVwifSxwZXJjZW50OntzdHlsZTpcInBlcmNlbnRcIn19LGRhdGU6e3Nob3J0Onttb250aDpcIm51bWVyaWNcIixkYXk6XCJudW1lcmljXCIseWVhcjpcIjItZGlnaXRcIn0sbWVkaXVtOnttb250aDpcInNob3J0XCIsZGF5OlwibnVtZXJpY1wiLHllYXI6XCJudW1lcmljXCJ9LGxvbmc6e21vbnRoOlwibG9uZ1wiLGRheTpcIm51bWVyaWNcIix5ZWFyOlwibnVtZXJpY1wifSxmdWxsOnt3ZWVrZGF5OlwibG9uZ1wiLG1vbnRoOlwibG9uZ1wiLGRheTpcIm51bWVyaWNcIix5ZWFyOlwibnVtZXJpY1wifX0sdGltZTp7c2hvcnQ6e2hvdXI6XCJudW1lcmljXCIsbWludXRlOlwibnVtZXJpY1wifSxtZWRpdW06e2hvdXI6XCJudW1lcmljXCIsbWludXRlOlwibnVtZXJpY1wiLHNlY29uZDpcIm51bWVyaWNcIn0sbG9uZzp7aG91cjpcIm51bWVyaWNcIixtaW51dGU6XCJudW1lcmljXCIsc2Vjb25kOlwibnVtZXJpY1wiLHRpbWVab25lTmFtZTpcInNob3J0XCJ9LGZ1bGw6e2hvdXI6XCJudW1lcmljXCIsbWludXRlOlwibnVtZXJpY1wiLHNlY29uZDpcIm51bWVyaWNcIix0aW1lWm9uZU5hbWU6XCJzaG9ydFwifX19LGV9KCl9LDkzNjk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHtDODooKT0+YSxIUjooKT0+bCxZUjooKT0+cyxqSzooKT0+cix1XzooKT0+aX0pO3ZhciByLG89big1OTcxKTshZnVuY3Rpb24oZSl7ZS5NSVNTSU5HX1ZBTFVFPVwiTUlTU0lOR19WQUxVRVwiLGUuSU5WQUxJRF9WQUxVRT1cIklOVkFMSURfVkFMVUVcIixlLk1JU1NJTkdfSU5UTF9BUEk9XCJNSVNTSU5HX0lOVExfQVBJXCJ9KHJ8fChyPXt9KSk7dmFyIGk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4scil7dmFyIG89ZS5jYWxsKHRoaXMsdCl8fHRoaXM7cmV0dXJuIG8uY29kZT1uLG8ub3JpZ2luYWxNZXNzYWdlPXIsb31yZXR1cm4oMCxvLlpUKSh0LGUpLHQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJbZm9ybWF0anMgRXJyb3I6IFwiLmNvbmNhdCh0aGlzLmNvZGUsXCJdIFwiKS5jb25jYXQodGhpcy5tZXNzYWdlKX0sdH0oRXJyb3IpLGE9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4sbyxpKXtyZXR1cm4gZS5jYWxsKHRoaXMsJ0ludmFsaWQgdmFsdWVzIGZvciBcIicuY29uY2F0KHQsJ1wiOiBcIicpLmNvbmNhdChuLCdcIi4gT3B0aW9ucyBhcmUgXCInKS5jb25jYXQoT2JqZWN0LmtleXMobykuam9pbignXCIsIFwiJyksJ1wiJyksci5JTlZBTElEX1ZBTFVFLGkpfHx0aGlzfXJldHVybigwLG8uWlQpKHQsZSksdH0oaSkscz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbixvKXtyZXR1cm4gZS5jYWxsKHRoaXMsJ1ZhbHVlIGZvciBcIicuY29uY2F0KHQsJ1wiIG11c3QgYmUgb2YgdHlwZSAnKS5jb25jYXQobiksci5JTlZBTElEX1ZBTFVFLG8pfHx0aGlzfXJldHVybigwLG8uWlQpKHQsZSksdH0oaSksbD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7cmV0dXJuIGUuY2FsbCh0aGlzLCdUaGUgaW50bCBzdHJpbmcgY29udGV4dCB2YXJpYWJsZSBcIicuY29uY2F0KHQsJ1wiIHdhcyBub3QgcHJvdmlkZWQgdG8gdGhlIHN0cmluZyBcIicpLmNvbmNhdChuLCdcIicpLHIuTUlTU0lOR19WQUxVRSxuKXx8dGhpc31yZXR1cm4oMCxvLlpUKSh0LGUpLHR9KGkpfSw5Nzc0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuLmQodCx7Rks6KCk9PnMsR3Q6KCk9PmEsZHU6KCk9PnJ9KTt2YXIgcixvPW4oNTM2OCksaT1uKDkzNjkpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGV9ZnVuY3Rpb24gcyhlLHQsbixsLGMsdSxkKXtpZigxPT09ZS5sZW5ndGgmJigwLG8uTzQpKGVbMF0pKXJldHVyblt7dHlwZTpyLmxpdGVyYWwsdmFsdWU6ZVswXS52YWx1ZX1dO2Zvcih2YXIgcD1bXSxmPTAsaD1lO2Y8aC5sZW5ndGg7ZisrKXt2YXIgbT1oW2ZdO2lmKCgwLG8uTzQpKG0pKXAucHVzaCh7dHlwZTpyLmxpdGVyYWwsdmFsdWU6bS52YWx1ZX0pO2Vsc2UgaWYoKDAsby55eCkobSkpXCJudW1iZXJcIj09PXR5cGVvZiB1JiZwLnB1c2goe3R5cGU6ci5saXRlcmFsLHZhbHVlOm4uZ2V0TnVtYmVyRm9ybWF0KHQpLmZvcm1hdCh1KX0pO2Vsc2V7dmFyIGc9bS52YWx1ZTtpZighY3x8IShnIGluIGMpKXRocm93IG5ldyBpLkhSKGcsZCk7dmFyIHk9Y1tnXTtpZigoMCxvLlZHKShtKSl5JiZcInN0cmluZ1wiIT09dHlwZW9mIHkmJlwibnVtYmVyXCIhPT10eXBlb2YgeXx8KHk9XCJzdHJpbmdcIj09PXR5cGVvZiB5fHxcIm51bWJlclwiPT09dHlwZW9mIHk/U3RyaW5nKHkpOlwiXCIpLHAucHVzaCh7dHlwZTpcInN0cmluZ1wiPT09dHlwZW9mIHk/ci5saXRlcmFsOnIub2JqZWN0LHZhbHVlOnl9KTtlbHNlIGlmKCgwLG8ucnApKG0pKXt2YXIgdj1cInN0cmluZ1wiPT09dHlwZW9mIG0uc3R5bGU/bC5kYXRlW20uc3R5bGVdOigwLG8uSWkpKG0uc3R5bGUpP20uc3R5bGUucGFyc2VkT3B0aW9uczp2b2lkIDA7cC5wdXNoKHt0eXBlOnIubGl0ZXJhbCx2YWx1ZTpuLmdldERhdGVUaW1lRm9ybWF0KHQsdikuZm9ybWF0KHkpfSl9ZWxzZSBpZigoMCxvLnBlKShtKSl7dj1cInN0cmluZ1wiPT09dHlwZW9mIG0uc3R5bGU/bC50aW1lW20uc3R5bGVdOigwLG8uSWkpKG0uc3R5bGUpP20uc3R5bGUucGFyc2VkT3B0aW9uczpsLnRpbWUubWVkaXVtO3AucHVzaCh7dHlwZTpyLmxpdGVyYWwsdmFsdWU6bi5nZXREYXRlVGltZUZvcm1hdCh0LHYpLmZvcm1hdCh5KX0pfWVsc2UgaWYoKDAsby51ZikobSkpeyh2PVwic3RyaW5nXCI9PT10eXBlb2YgbS5zdHlsZT9sLm51bWJlclttLnN0eWxlXTooMCxvLldoKShtLnN0eWxlKT9tLnN0eWxlLnBhcnNlZE9wdGlvbnM6dm9pZCAwKSYmdi5zY2FsZSYmKHkqPXYuc2NhbGV8fDEpLHAucHVzaCh7dHlwZTpyLmxpdGVyYWwsdmFsdWU6bi5nZXROdW1iZXJGb3JtYXQodCx2KS5mb3JtYXQoeSl9KX1lbHNle2lmKCgwLG8uSEkpKG0pKXt2YXIgYj1tLmNoaWxkcmVuLFQ9bS52YWx1ZSx4PWNbVF07aWYoIWEoeCkpdGhyb3cgbmV3IGkuWVIoVCxcImZ1bmN0aW9uXCIsZCk7dmFyIHc9eChzKGIsdCxuLGwsYyx1KS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlfSkpKTtBcnJheS5pc0FycmF5KHcpfHwodz1bd10pLHAucHVzaC5hcHBseShwLHcubWFwKChmdW5jdGlvbihlKXtyZXR1cm57dHlwZTpcInN0cmluZ1wiPT09dHlwZW9mIGU/ci5saXRlcmFsOnIub2JqZWN0LHZhbHVlOmV9fSkpKX1pZigoMCxvLldpKShtKSl7aWYoIShrPW0ub3B0aW9uc1t5XXx8bS5vcHRpb25zLm90aGVyKSl0aHJvdyBuZXcgaS5DOChtLnZhbHVlLHksT2JqZWN0LmtleXMobS5vcHRpb25zKSxkKTtwLnB1c2guYXBwbHkocCxzKGsudmFsdWUsdCxuLGwsYykpfWVsc2UgaWYoKDAsby5KbykobSkpe3ZhciBrO2lmKCEoaz1tLm9wdGlvbnNbXCI9XCIuY29uY2F0KHkpXSkpe2lmKCFJbnRsLlBsdXJhbFJ1bGVzKXRocm93IG5ldyBpLnVfKCdJbnRsLlBsdXJhbFJ1bGVzIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC5cXG5UcnkgcG9seWZpbGxpbmcgaXQgdXNpbmcgXCJAZm9ybWF0anMvaW50bC1wbHVyYWxydWxlc1wiXFxuJyxpLmpLLk1JU1NJTkdfSU5UTF9BUEksZCk7dmFyIEU9bi5nZXRQbHVyYWxSdWxlcyh0LHt0eXBlOm0ucGx1cmFsVHlwZX0pLnNlbGVjdCh5LShtLm9mZnNldHx8MCkpO2s9bS5vcHRpb25zW0VdfHxtLm9wdGlvbnMub3RoZXJ9aWYoIWspdGhyb3cgbmV3IGkuQzgobS52YWx1ZSx5LE9iamVjdC5rZXlzKG0ub3B0aW9ucyksZCk7cC5wdXNoLmFwcGx5KHAscyhrLnZhbHVlLHQsbixsLGMseS0obS5vZmZzZXR8fDApKSl9ZWxzZTt9fX1yZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RoPDI/ZTplLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXt2YXIgbj1lW2UubGVuZ3RoLTFdO3JldHVybiBuJiZuLnR5cGU9PT1yLmxpdGVyYWwmJnQudHlwZT09PXIubGl0ZXJhbD9uLnZhbHVlKz10LnZhbHVlOmUucHVzaCh0KSxlfSksW10pfShwKX0hZnVuY3Rpb24oZSl7ZVtlLmxpdGVyYWw9MF09XCJsaXRlcmFsXCIsZVtlLm9iamVjdD0xXT1cIm9iamVjdFwifShyfHwocj17fSkpfSwxNzI1OmU9PntcInVzZSBzdHJpY3RcIjt2YXIgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLG49T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxyPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dHJ5e2lmKCFPYmplY3QuYXNzaWduKXJldHVybiExO3ZhciBlPW5ldyBTdHJpbmcoXCJhYmNcIik7aWYoZVs1XT1cImRlXCIsXCI1XCI9PT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKVswXSlyZXR1cm4hMTtmb3IodmFyIHQ9e30sbj0wO248MTA7bisrKXRbXCJfXCIrU3RyaW5nLmZyb21DaGFyQ29kZShuKV09bjtpZihcIjAxMjM0NTY3ODlcIiE9PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSkuam9pbihcIlwiKSlyZXR1cm4hMTt2YXIgcj17fTtyZXR1cm5cImFiY2RlZmdoaWprbG1ub3BxcnN0XCIuc3BsaXQoXCJcIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cltlXT1lfSkpLFwiYWJjZGVmZ2hpamtsbW5vcHFyc3RcIj09PU9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30scikpLmpvaW4oXCJcIil9Y2F0Y2gobyl7cmV0dXJuITF9fSgpP09iamVjdC5hc3NpZ246ZnVuY3Rpb24oZSxvKXtmb3IodmFyIGksYSxzPWZ1bmN0aW9uKGUpe2lmKG51bGw9PT1lfHx2b2lkIDA9PT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gT2JqZWN0KGUpfShlKSxsPTE7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyl7Zm9yKHZhciBjIGluIGk9T2JqZWN0KGFyZ3VtZW50c1tsXSkpbi5jYWxsKGksYykmJihzW2NdPWlbY10pO2lmKHQpe2E9dChpKTtmb3IodmFyIHU9MDt1PGEubGVuZ3RoO3UrKylyLmNhbGwoaSxhW3VdKSYmKHNbYVt1XV09aVthW3VdXSl9fXJldHVybiBzfX0sMjU4NDooZSx0LG4pPT57dmFyIHI9XCJmdW5jdGlvblwiPT09dHlwZW9mIE1hcCYmTWFwLnByb3RvdHlwZSxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ImJnI/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihNYXAucHJvdG90eXBlLFwic2l6ZVwiKTpudWxsLGk9ciYmbyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIG8uZ2V0P28uZ2V0Om51bGwsYT1yJiZNYXAucHJvdG90eXBlLmZvckVhY2gscz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU2V0JiZTZXQucHJvdG90eXBlLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciYmcz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFNldC5wcm90b3R5cGUsXCJzaXplXCIpOm51bGwsYz1zJiZsJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgbC5nZXQ/bC5nZXQ6bnVsbCx1PXMmJlNldC5wcm90b3R5cGUuZm9yRWFjaCxkPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrTWFwJiZXZWFrTWFwLnByb3RvdHlwZT9XZWFrTWFwLnByb3RvdHlwZS5oYXM6bnVsbCxwPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrU2V0JiZXZWFrU2V0LnByb3RvdHlwZT9XZWFrU2V0LnByb3RvdHlwZS5oYXM6bnVsbCxmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrUmVmJiZXZWFrUmVmLnByb3RvdHlwZT9XZWFrUmVmLnByb3RvdHlwZS5kZXJlZjpudWxsLGg9Qm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZixtPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsZz1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcseT1TdHJpbmcucHJvdG90eXBlLm1hdGNoLHY9U3RyaW5nLnByb3RvdHlwZS5zbGljZSxiPVN0cmluZy5wcm90b3R5cGUucmVwbGFjZSxUPVN0cmluZy5wcm90b3R5cGUudG9VcHBlckNhc2UseD1TdHJpbmcucHJvdG90eXBlLnRvTG93ZXJDYXNlLHc9UmVnRXhwLnByb3RvdHlwZS50ZXN0LGs9QXJyYXkucHJvdG90eXBlLmNvbmNhdCxFPUFycmF5LnByb3RvdHlwZS5qb2luLFM9QXJyYXkucHJvdG90eXBlLnNsaWNlLEE9TWF0aC5mbG9vcixDPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBCaWdJbnQ/QmlnSW50LnByb3RvdHlwZS52YWx1ZU9mOm51bGwsXz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLEQ9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/U3ltYm9sLnByb3RvdHlwZS50b1N0cmluZzpudWxsLFI9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmXCJvYmplY3RcIj09PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IsTz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJih0eXBlb2YgU3ltYm9sLnRvU3RyaW5nVGFnPT09Unx8XCJzeW1ib2xcIik/U3ltYm9sLnRvU3RyaW5nVGFnOm51bGwsUD1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLEw9KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBSZWZsZWN0P1JlZmxlY3QuZ2V0UHJvdG90eXBlT2Y6T2JqZWN0LmdldFByb3RvdHlwZU9mKXx8KFtdLl9fcHJvdG9fXz09PUFycmF5LnByb3RvdHlwZT9mdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX199Om51bGwpO2Z1bmN0aW9uIE4oZSx0KXtpZihlPT09MS8wfHxlPT09LTEvMHx8ZSE9PWV8fGUmJmU+LTFlMyYmZTwxZTN8fHcuY2FsbCgvZS8sdCkpcmV0dXJuIHQ7dmFyIG49L1swLTldKD89KD86WzAtOV17M30pKyg/IVswLTldKSkvZztpZihcIm51bWJlclwiPT09dHlwZW9mIGUpe3ZhciByPWU8MD8tQSgtZSk6QShlKTtpZihyIT09ZSl7dmFyIG89U3RyaW5nKHIpLGk9di5jYWxsKHQsby5sZW5ndGgrMSk7cmV0dXJuIGIuY2FsbChvLG4sXCIkJl9cIikrXCIuXCIrYi5jYWxsKGIuY2FsbChpLC8oWzAtOV17M30pL2csXCIkJl9cIiksL18kLyxcIlwiKX19cmV0dXJuIGIuY2FsbCh0LG4sXCIkJl9cIil9dmFyIEk9big0NjU0KSxqPUkuY3VzdG9tLEI9VShqKT9qOm51bGw7ZnVuY3Rpb24gSChlLHQsbil7dmFyIHI9XCJkb3VibGVcIj09PShuLnF1b3RlU3R5bGV8fHQpPydcIic6XCInXCI7cmV0dXJuIHIrZStyfWZ1bmN0aW9uIEYoZSl7cmV0dXJuIGIuY2FsbChTdHJpbmcoZSksL1wiL2csXCImcXVvdDtcIil9ZnVuY3Rpb24gTShlKXtyZXR1cm5cIltvYmplY3QgQXJyYXldXCI9PT1XKGUpJiYoIU98fCEoXCJvYmplY3RcIj09PXR5cGVvZiBlJiZPIGluIGUpKX1mdW5jdGlvbiBHKGUpe3JldHVyblwiW29iamVjdCBSZWdFeHBdXCI9PT1XKGUpJiYoIU98fCEoXCJvYmplY3RcIj09PXR5cGVvZiBlJiZPIGluIGUpKX1mdW5jdGlvbiBVKGUpe2lmKFIpcmV0dXJuIGUmJlwib2JqZWN0XCI9PT10eXBlb2YgZSYmZSBpbnN0YW5jZW9mIFN5bWJvbDtpZihcInN5bWJvbFwiPT09dHlwZW9mIGUpcmV0dXJuITA7aWYoIWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZXx8IUQpcmV0dXJuITE7dHJ5e3JldHVybiBELmNhbGwoZSksITB9Y2F0Y2godCl7fXJldHVybiExfWUuZXhwb3J0cz1mdW5jdGlvbiBlKHQscixvLHMpe3ZhciBsPXJ8fHt9O2lmKFYobCxcInF1b3RlU3R5bGVcIikmJlwic2luZ2xlXCIhPT1sLnF1b3RlU3R5bGUmJlwiZG91YmxlXCIhPT1sLnF1b3RlU3R5bGUpdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIFwicXVvdGVTdHlsZVwiIG11c3QgYmUgXCJzaW5nbGVcIiBvciBcImRvdWJsZVwiJyk7aWYoVihsLFwibWF4U3RyaW5nTGVuZ3RoXCIpJiYoXCJudW1iZXJcIj09PXR5cGVvZiBsLm1heFN0cmluZ0xlbmd0aD9sLm1heFN0cmluZ0xlbmd0aDwwJiZsLm1heFN0cmluZ0xlbmd0aCE9PTEvMDpudWxsIT09bC5tYXhTdHJpbmdMZW5ndGgpKXRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBcIm1heFN0cmluZ0xlbmd0aFwiLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIEluZmluaXR5LCBvciBgbnVsbGAnKTt2YXIgbT0hVihsLFwiY3VzdG9tSW5zcGVjdFwiKXx8bC5jdXN0b21JbnNwZWN0O2lmKFwiYm9vbGVhblwiIT09dHlwZW9mIG0mJlwic3ltYm9sXCIhPT1tKXRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gXFxcImN1c3RvbUluc3BlY3RcXFwiLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBgdHJ1ZWAsIGBmYWxzZWAsIG9yIGAnc3ltYm9sJ2BcIik7aWYoVihsLFwiaW5kZW50XCIpJiZudWxsIT09bC5pbmRlbnQmJlwiXFx0XCIhPT1sLmluZGVudCYmIShwYXJzZUludChsLmluZGVudCwxMCk9PT1sLmluZGVudCYmbC5pbmRlbnQ+MCkpdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIFwiaW5kZW50XCIgbXVzdCBiZSBcIlxcXFx0XCIsIGFuIGludGVnZXIgPiAwLCBvciBgbnVsbGAnKTtpZihWKGwsXCJudW1lcmljU2VwYXJhdG9yXCIpJiZcImJvb2xlYW5cIiE9PXR5cGVvZiBsLm51bWVyaWNTZXBhcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIFwibnVtZXJpY1NlcGFyYXRvclwiLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBgdHJ1ZWAgb3IgYGZhbHNlYCcpO3ZhciBUPWwubnVtZXJpY1NlcGFyYXRvcjtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIHQpcmV0dXJuXCJ1bmRlZmluZWRcIjtpZihudWxsPT09dClyZXR1cm5cIm51bGxcIjtpZihcImJvb2xlYW5cIj09PXR5cGVvZiB0KXJldHVybiB0P1widHJ1ZVwiOlwiZmFsc2VcIjtpZihcInN0cmluZ1wiPT09dHlwZW9mIHQpcmV0dXJuIEsodCxsKTtpZihcIm51bWJlclwiPT09dHlwZW9mIHQpe2lmKDA9PT10KXJldHVybiAxLzAvdD4wP1wiMFwiOlwiLTBcIjt2YXIgdz1TdHJpbmcodCk7cmV0dXJuIFQ/Tih0LHcpOnd9aWYoXCJiaWdpbnRcIj09PXR5cGVvZiB0KXt2YXIgQT1TdHJpbmcodCkrXCJuXCI7cmV0dXJuIFQ/Tih0LEEpOkF9dmFyIF89XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBsLmRlcHRoPzU6bC5kZXB0aDtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIG8mJihvPTApLG8+PV8mJl8+MCYmXCJvYmplY3RcIj09PXR5cGVvZiB0KXJldHVybiBNKHQpP1wiW0FycmF5XVwiOlwiW09iamVjdF1cIjt2YXIgaj1mdW5jdGlvbihlLHQpe3ZhciBuO2lmKFwiXFx0XCI9PT1lLmluZGVudCluPVwiXFx0XCI7ZWxzZXtpZighKFwibnVtYmVyXCI9PT10eXBlb2YgZS5pbmRlbnQmJmUuaW5kZW50PjApKXJldHVybiBudWxsO249RS5jYWxsKEFycmF5KGUuaW5kZW50KzEpLFwiIFwiKX1yZXR1cm57YmFzZTpuLHByZXY6RS5jYWxsKEFycmF5KHQrMSksbil9fShsLG8pO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgcylzPVtdO2Vsc2UgaWYocShzLHQpPj0wKXJldHVyblwiW0NpcmN1bGFyXVwiO2Z1bmN0aW9uIHoodCxuLHIpe2lmKG4mJihzPVMuY2FsbChzKSkucHVzaChuKSxyKXt2YXIgaT17ZGVwdGg6bC5kZXB0aH07cmV0dXJuIFYobCxcInF1b3RlU3R5bGVcIikmJihpLnF1b3RlU3R5bGU9bC5xdW90ZVN0eWxlKSxlKHQsaSxvKzEscyl9cmV0dXJuIGUodCxsLG8rMSxzKX1pZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgdCYmIUcodCkpe3ZhciBaPWZ1bmN0aW9uKGUpe2lmKGUubmFtZSlyZXR1cm4gZS5uYW1lO3ZhciB0PXkuY2FsbChnLmNhbGwoZSksL15mdW5jdGlvblxccyooW1xcdyRdKykvKTtpZih0KXJldHVybiB0WzFdO3JldHVybiBudWxsfSh0KSxlZT1KKHQseik7cmV0dXJuXCJbRnVuY3Rpb25cIisoWj9cIjogXCIrWjpcIiAoYW5vbnltb3VzKVwiKStcIl1cIisoZWUubGVuZ3RoPjA/XCIgeyBcIitFLmNhbGwoZWUsXCIsIFwiKStcIiB9XCI6XCJcIil9aWYoVSh0KSl7dmFyIHRlPVI/Yi5jYWxsKFN0cmluZyh0KSwvXihTeW1ib2xcXCguKlxcKSlfW14pXSokLyxcIiQxXCIpOkQuY2FsbCh0KTtyZXR1cm5cIm9iamVjdFwiIT09dHlwZW9mIHR8fFI/dGU6WSh0ZSl9aWYoZnVuY3Rpb24oZSl7aWYoIWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZSlyZXR1cm4hMTtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIEhUTUxFbGVtZW50JiZlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpcmV0dXJuITA7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBlLm5vZGVOYW1lJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5nZXRBdHRyaWJ1dGV9KHQpKXtmb3IodmFyIG5lPVwiPFwiK3guY2FsbChTdHJpbmcodC5ub2RlTmFtZSkpLHJlPXQuYXR0cmlidXRlc3x8W10sb2U9MDtvZTxyZS5sZW5ndGg7b2UrKyluZSs9XCIgXCIrcmVbb2VdLm5hbWUrXCI9XCIrSChGKHJlW29lXS52YWx1ZSksXCJkb3VibGVcIixsKTtyZXR1cm4gbmUrPVwiPlwiLHQuY2hpbGROb2RlcyYmdC5jaGlsZE5vZGVzLmxlbmd0aCYmKG5lKz1cIi4uLlwiKSxuZSs9XCI8L1wiK3guY2FsbChTdHJpbmcodC5ub2RlTmFtZSkpK1wiPlwifWlmKE0odCkpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm5cIltdXCI7dmFyIGllPUoodCx6KTtyZXR1cm4gaiYmIWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKHEoZVt0XSxcIlxcblwiKT49MClyZXR1cm4hMTtyZXR1cm4hMH0oaWUpP1wiW1wiK1EoaWUsaikrXCJdXCI6XCJbIFwiK0UuY2FsbChpZSxcIiwgXCIpK1wiIF1cIn1pZihmdW5jdGlvbihlKXtyZXR1cm5cIltvYmplY3QgRXJyb3JdXCI9PT1XKGUpJiYoIU98fCEoXCJvYmplY3RcIj09PXR5cGVvZiBlJiZPIGluIGUpKX0odCkpe3ZhciBhZT1KKHQseik7cmV0dXJuXCJjYXVzZVwiaW4gRXJyb3IucHJvdG90eXBlfHwhKFwiY2F1c2VcImluIHQpfHxQLmNhbGwodCxcImNhdXNlXCIpPzA9PT1hZS5sZW5ndGg/XCJbXCIrU3RyaW5nKHQpK1wiXVwiOlwieyBbXCIrU3RyaW5nKHQpK1wiXSBcIitFLmNhbGwoYWUsXCIsIFwiKStcIiB9XCI6XCJ7IFtcIitTdHJpbmcodCkrXCJdIFwiK0UuY2FsbChrLmNhbGwoXCJbY2F1c2VdOiBcIit6KHQuY2F1c2UpLGFlKSxcIiwgXCIpK1wiIH1cIn1pZihcIm9iamVjdFwiPT09dHlwZW9mIHQmJm0pe2lmKEImJlwiZnVuY3Rpb25cIj09PXR5cGVvZiB0W0JdJiZJKXJldHVybiBJKHQse2RlcHRoOl8tb30pO2lmKFwic3ltYm9sXCIhPT1tJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5pbnNwZWN0KXJldHVybiB0Lmluc3BlY3QoKX1pZihmdW5jdGlvbihlKXtpZighaXx8IWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZSlyZXR1cm4hMTt0cnl7aS5jYWxsKGUpO3RyeXtjLmNhbGwoZSl9Y2F0Y2gobmUpe3JldHVybiEwfXJldHVybiBlIGluc3RhbmNlb2YgTWFwfWNhdGNoKHQpe31yZXR1cm4hMX0odCkpe3ZhciBzZT1bXTtyZXR1cm4gYSYmYS5jYWxsKHQsKGZ1bmN0aW9uKGUsbil7c2UucHVzaCh6KG4sdCwhMCkrXCIgPT4gXCIreihlLHQpKX0pKSxYKFwiTWFwXCIsaS5jYWxsKHQpLHNlLGopfWlmKGZ1bmN0aW9uKGUpe2lmKCFjfHwhZXx8XCJvYmplY3RcIiE9PXR5cGVvZiBlKXJldHVybiExO3RyeXtjLmNhbGwoZSk7dHJ5e2kuY2FsbChlKX1jYXRjaCh0KXtyZXR1cm4hMH1yZXR1cm4gZSBpbnN0YW5jZW9mIFNldH1jYXRjaChuKXt9cmV0dXJuITF9KHQpKXt2YXIgbGU9W107cmV0dXJuIHUmJnUuY2FsbCh0LChmdW5jdGlvbihlKXtsZS5wdXNoKHooZSx0KSl9KSksWChcIlNldFwiLGMuY2FsbCh0KSxsZSxqKX1pZihmdW5jdGlvbihlKXtpZighZHx8IWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZSlyZXR1cm4hMTt0cnl7ZC5jYWxsKGUsZCk7dHJ5e3AuY2FsbChlLHApfWNhdGNoKG5lKXtyZXR1cm4hMH1yZXR1cm4gZSBpbnN0YW5jZW9mIFdlYWtNYXB9Y2F0Y2godCl7fXJldHVybiExfSh0KSlyZXR1cm4gJChcIldlYWtNYXBcIik7aWYoZnVuY3Rpb24oZSl7aWYoIXB8fCFlfHxcIm9iamVjdFwiIT09dHlwZW9mIGUpcmV0dXJuITE7dHJ5e3AuY2FsbChlLHApO3RyeXtkLmNhbGwoZSxkKX1jYXRjaChuZSl7cmV0dXJuITB9cmV0dXJuIGUgaW5zdGFuY2VvZiBXZWFrU2V0fWNhdGNoKHQpe31yZXR1cm4hMX0odCkpcmV0dXJuICQoXCJXZWFrU2V0XCIpO2lmKGZ1bmN0aW9uKGUpe2lmKCFmfHwhZXx8XCJvYmplY3RcIiE9PXR5cGVvZiBlKXJldHVybiExO3RyeXtyZXR1cm4gZi5jYWxsKGUpLCEwfWNhdGNoKHQpe31yZXR1cm4hMX0odCkpcmV0dXJuICQoXCJXZWFrUmVmXCIpO2lmKGZ1bmN0aW9uKGUpe3JldHVyblwiW29iamVjdCBOdW1iZXJdXCI9PT1XKGUpJiYoIU98fCEoXCJvYmplY3RcIj09PXR5cGVvZiBlJiZPIGluIGUpKX0odCkpcmV0dXJuIFkoeihOdW1iZXIodCkpKTtpZihmdW5jdGlvbihlKXtpZighZXx8XCJvYmplY3RcIiE9PXR5cGVvZiBlfHwhQylyZXR1cm4hMTt0cnl7cmV0dXJuIEMuY2FsbChlKSwhMH1jYXRjaCh0KXt9cmV0dXJuITF9KHQpKXJldHVybiBZKHooQy5jYWxsKHQpKSk7aWYoZnVuY3Rpb24oZSl7cmV0dXJuXCJbb2JqZWN0IEJvb2xlYW5dXCI9PT1XKGUpJiYoIU98fCEoXCJvYmplY3RcIj09PXR5cGVvZiBlJiZPIGluIGUpKX0odCkpcmV0dXJuIFkoaC5jYWxsKHQpKTtpZihmdW5jdGlvbihlKXtyZXR1cm5cIltvYmplY3QgU3RyaW5nXVwiPT09VyhlKSYmKCFPfHwhKFwib2JqZWN0XCI9PT10eXBlb2YgZSYmTyBpbiBlKSl9KHQpKXJldHVybiBZKHooU3RyaW5nKHQpKSk7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3cmJnQ9PT13aW5kb3cpcmV0dXJuXCJ7IFtvYmplY3QgV2luZG93XSB9XCI7aWYodD09PW4uZylyZXR1cm5cInsgW29iamVjdCBnbG9iYWxUaGlzXSB9XCI7aWYoIWZ1bmN0aW9uKGUpe3JldHVyblwiW29iamVjdCBEYXRlXVwiPT09VyhlKSYmKCFPfHwhKFwib2JqZWN0XCI9PT10eXBlb2YgZSYmTyBpbiBlKSl9KHQpJiYhRyh0KSl7dmFyIGNlPUoodCx6KSx1ZT1MP0wodCk9PT1PYmplY3QucHJvdG90eXBlOnQgaW5zdGFuY2VvZiBPYmplY3R8fHQuY29uc3RydWN0b3I9PT1PYmplY3QsZGU9dCBpbnN0YW5jZW9mIE9iamVjdD9cIlwiOlwibnVsbCBwcm90b3R5cGVcIixwZT0hdWUmJk8mJk9iamVjdCh0KT09PXQmJk8gaW4gdD92LmNhbGwoVyh0KSw4LC0xKTpkZT9cIk9iamVjdFwiOlwiXCIsZmU9KHVlfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgdC5jb25zdHJ1Y3Rvcj9cIlwiOnQuY29uc3RydWN0b3IubmFtZT90LmNvbnN0cnVjdG9yLm5hbWUrXCIgXCI6XCJcIikrKHBlfHxkZT9cIltcIitFLmNhbGwoay5jYWxsKFtdLHBlfHxbXSxkZXx8W10pLFwiOiBcIikrXCJdIFwiOlwiXCIpO3JldHVybiAwPT09Y2UubGVuZ3RoP2ZlK1wie31cIjpqP2ZlK1wie1wiK1EoY2UsaikrXCJ9XCI6ZmUrXCJ7IFwiK0UuY2FsbChjZSxcIiwgXCIpK1wiIH1cIn1yZXR1cm4gU3RyaW5nKHQpfTt2YXIgej1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5fHxmdW5jdGlvbihlKXtyZXR1cm4gZSBpbiB0aGlzfTtmdW5jdGlvbiBWKGUsdCl7cmV0dXJuIHouY2FsbChlLHQpfWZ1bmN0aW9uIFcoZSl7cmV0dXJuIG0uY2FsbChlKX1mdW5jdGlvbiBxKGUsdCl7aWYoZS5pbmRleE9mKXJldHVybiBlLmluZGV4T2YodCk7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIEsoZSx0KXtpZihlLmxlbmd0aD50Lm1heFN0cmluZ0xlbmd0aCl7dmFyIG49ZS5sZW5ndGgtdC5tYXhTdHJpbmdMZW5ndGgscj1cIi4uLiBcIituK1wiIG1vcmUgY2hhcmFjdGVyXCIrKG4+MT9cInNcIjpcIlwiKTtyZXR1cm4gSyh2LmNhbGwoZSwwLHQubWF4U3RyaW5nTGVuZ3RoKSx0KStyfXJldHVybiBIKGIuY2FsbChiLmNhbGwoZSwvKFsnXFxcXF0pL2csXCJcXFxcJDFcIiksL1tcXHgwMC1cXHgxZl0vZyxaKSxcInNpbmdsZVwiLHQpfWZ1bmN0aW9uIFooZSl7dmFyIHQ9ZS5jaGFyQ29kZUF0KDApLG49ezg6XCJiXCIsOTpcInRcIiwxMDpcIm5cIiwxMjpcImZcIiwxMzpcInJcIn1bdF07cmV0dXJuIG4/XCJcXFxcXCIrbjpcIlxcXFx4XCIrKHQ8MTY/XCIwXCI6XCJcIikrVC5jYWxsKHQudG9TdHJpbmcoMTYpKX1mdW5jdGlvbiBZKGUpe3JldHVyblwiT2JqZWN0KFwiK2UrXCIpXCJ9ZnVuY3Rpb24gJChlKXtyZXR1cm4gZStcIiB7ID8gfVwifWZ1bmN0aW9uIFgoZSx0LG4scil7cmV0dXJuIGUrXCIgKFwiK3QrXCIpIHtcIisocj9RKG4scik6RS5jYWxsKG4sXCIsIFwiKSkrXCJ9XCJ9ZnVuY3Rpb24gUShlLHQpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm5cIlwiO3ZhciBuPVwiXFxuXCIrdC5wcmV2K3QuYmFzZTtyZXR1cm4gbitFLmNhbGwoZSxcIixcIituKStcIlxcblwiK3QucHJldn1mdW5jdGlvbiBKKGUsdCl7dmFyIG49TShlKSxyPVtdO2lmKG4pe3IubGVuZ3RoPWUubGVuZ3RoO2Zvcih2YXIgbz0wO288ZS5sZW5ndGg7bysrKXJbb109VihlLG8pP3QoZVtvXSxlKTpcIlwifXZhciBpLGE9XCJmdW5jdGlvblwiPT09dHlwZW9mIF8/XyhlKTpbXTtpZihSKXtpPXt9O2Zvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKWlbXCIkXCIrYVtzXV09YVtzXX1mb3IodmFyIGwgaW4gZSlWKGUsbCkmJihuJiZTdHJpbmcoTnVtYmVyKGwpKT09PWwmJmw8ZS5sZW5ndGh8fFImJmlbXCIkXCIrbF1pbnN0YW5jZW9mIFN5bWJvbHx8KHcuY2FsbCgvW15cXHckXS8sbCk/ci5wdXNoKHQobCxlKStcIjogXCIrdChlW2xdLGUpKTpyLnB1c2gobCtcIjogXCIrdChlW2xdLGUpKSkpO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBfKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKVAuY2FsbChlLGFbY10pJiZyLnB1c2goXCJbXCIrdChhW2NdKStcIl06IFwiK3QoZVthW2NdXSxlKSk7cmV0dXJuIHJ9fSw4ODcyOmZ1bmN0aW9uKGUpeyhmdW5jdGlvbigpe3ZhciB0LG4scixvLGksYTtcInVuZGVmaW5lZFwiIT09dHlwZW9mIHBlcmZvcm1hbmNlJiZudWxsIT09cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9lLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2Uubm93KCl9OlwidW5kZWZpbmVkXCIhPT10eXBlb2YgcHJvY2VzcyYmbnVsbCE9PXByb2Nlc3MmJnByb2Nlc3MuaHJ0aW1lPyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4odCgpLWkpLzFlNn0sbj1wcm9jZXNzLmhydGltZSxvPSh0PWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIDFlOSooZT1uKCkpWzBdK2VbMV19KSgpLGE9MWU5KnByb2Nlc3MudXB0aW1lKCksaT1vLWEpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1yfSxyPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1yfSxyPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9LDkwNjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzE2KTtmdW5jdGlvbiBvKCl7fXZhciBpPW51bGwsYT17fTtmdW5jdGlvbiBzKGUpe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgdGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJvbWlzZXMgbXVzdCBiZSBjb25zdHJ1Y3RlZCB2aWEgbmV3XCIpO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJQcm9taXNlIGNvbnN0cnVjdG9yJ3MgYXJndW1lbnQgaXMgbm90IGEgZnVuY3Rpb25cIik7dGhpcy5feD0wLHRoaXMuX3k9MCx0aGlzLl96PW51bGwsdGhpcy5fQT1udWxsLGUhPT1vJiZmKGUsdGhpcyl9ZnVuY3Rpb24gbChlLHQpe2Zvcig7Mz09PWUuX3k7KWU9ZS5fejtpZihzLl9CJiZzLl9CKGUpLDA9PT1lLl95KXJldHVybiAwPT09ZS5feD8oZS5feD0xLHZvaWQoZS5fQT10KSk6MT09PWUuX3g/KGUuX3g9Mix2b2lkKGUuX0E9W2UuX0EsdF0pKTp2b2lkIGUuX0EucHVzaCh0KTshZnVuY3Rpb24oZSx0KXtyKChmdW5jdGlvbigpe3ZhciBuPTE9PT1lLl95P3Qub25GdWxmaWxsZWQ6dC5vblJlamVjdGVkO2lmKG51bGwhPT1uKXt2YXIgcj1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZSh0KX1jYXRjaChuKXtyZXR1cm4gaT1uLGF9fShuLGUuX3opO3I9PT1hP3UodC5wcm9taXNlLGkpOmModC5wcm9taXNlLHIpfWVsc2UgMT09PWUuX3k/Yyh0LnByb21pc2UsZS5feik6dSh0LnByb21pc2UsZS5feil9KSl9KGUsdCl9ZnVuY3Rpb24gYyhlLHQpe2lmKHQ9PT1lKXJldHVybiB1KGUsbmV3IFR5cGVFcnJvcihcIkEgcHJvbWlzZSBjYW5ub3QgYmUgcmVzb2x2ZWQgd2l0aCBpdHNlbGYuXCIpKTtpZih0JiYoXCJvYmplY3RcIj09PXR5cGVvZiB0fHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgdCkpe3ZhciBuPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gZS50aGVufWNhdGNoKHQpe3JldHVybiBpPXQsYX19KHQpO2lmKG49PT1hKXJldHVybiB1KGUsaSk7aWYobj09PWUudGhlbiYmdCBpbnN0YW5jZW9mIHMpcmV0dXJuIGUuX3k9MyxlLl96PXQsdm9pZCBkKGUpO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuKXJldHVybiB2b2lkIGYobi5iaW5kKHQpLGUpfWUuX3k9MSxlLl96PXQsZChlKX1mdW5jdGlvbiB1KGUsdCl7ZS5feT0yLGUuX3o9dCxzLl9DJiZzLl9DKGUsdCksZChlKX1mdW5jdGlvbiBkKGUpe2lmKDE9PT1lLl94JiYobChlLGUuX0EpLGUuX0E9bnVsbCksMj09PWUuX3gpe2Zvcih2YXIgdD0wO3Q8ZS5fQS5sZW5ndGg7dCsrKWwoZSxlLl9BW3RdKTtlLl9BPW51bGx9fWZ1bmN0aW9uIHAoZSx0LG4pe3RoaXMub25GdWxmaWxsZWQ9XCJmdW5jdGlvblwiPT09dHlwZW9mIGU/ZTpudWxsLHRoaXMub25SZWplY3RlZD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgdD90Om51bGwsdGhpcy5wcm9taXNlPW59ZnVuY3Rpb24gZihlLHQpe3ZhciBuPSExLHI9ZnVuY3Rpb24oZSx0LG4pe3RyeXtlKHQsbil9Y2F0Y2gocil7cmV0dXJuIGk9cixhfX0oZSwoZnVuY3Rpb24oZSl7bnx8KG49ITAsYyh0LGUpKX0pLChmdW5jdGlvbihlKXtufHwobj0hMCx1KHQsZSkpfSkpO258fHIhPT1hfHwobj0hMCx1KHQsaSkpfWUuZXhwb3J0cz1zLHMuX0I9bnVsbCxzLl9DPW51bGwscy5fRD1vLHMucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmNvbnN0cnVjdG9yIT09cylyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcigoZnVuY3Rpb24ocixpKXt2YXIgYT1uZXcgcyhvKTthLnRoZW4ocixpKSxsKGUsbmV3IHAodCxuLGEpKX0pKX0odGhpcyxlLHQpO3ZhciBuPW5ldyBzKG8pO3JldHVybiBsKHRoaXMsbmV3IHAoZSx0LG4pKSxufX0sNTkwNjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big5MDYpO2UuZXhwb3J0cz1yO3ZhciBvPXUoITApLGk9dSghMSksYT11KG51bGwpLHM9dSh2b2lkIDApLGw9dSgwKSxjPXUoXCJcIik7ZnVuY3Rpb24gdShlKXt2YXIgdD1uZXcgcihyLl9EKTtyZXR1cm4gdC5feT0xLHQuX3o9ZSx0fXIucmVzb2x2ZT1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgcilyZXR1cm4gZTtpZihudWxsPT09ZSlyZXR1cm4gYTtpZih2b2lkIDA9PT1lKXJldHVybiBzO2lmKCEwPT09ZSlyZXR1cm4gbztpZighMT09PWUpcmV0dXJuIGk7aWYoMD09PWUpcmV0dXJuIGw7aWYoXCJcIj09PWUpcmV0dXJuIGM7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSl0cnl7dmFyIHQ9ZS50aGVuO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0KXJldHVybiBuZXcgcih0LmJpbmQoZSkpfWNhdGNoKG4pe3JldHVybiBuZXcgcigoZnVuY3Rpb24oZSx0KXt0KG4pfSkpfXJldHVybiB1KGUpfTt2YXIgZD1mdW5jdGlvbihlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgQXJyYXkuZnJvbT8oZD1BcnJheS5mcm9tLEFycmF5LmZyb20oZSkpOihkPWZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKX0sQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfTtmdW5jdGlvbiBwKGUpe3JldHVybntzdGF0dXM6XCJmdWxmaWxsZWRcIix2YWx1ZTplfX1mdW5jdGlvbiBmKGUpe3JldHVybntzdGF0dXM6XCJyZWplY3RlZFwiLHJlYXNvbjplfX1mdW5jdGlvbiBoKGUpe2lmKGUmJihcIm9iamVjdFwiPT09dHlwZW9mIGV8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKSl7aWYoZSBpbnN0YW5jZW9mIHImJmUudGhlbj09PXIucHJvdG90eXBlLnRoZW4pcmV0dXJuIGUudGhlbihwLGYpO3ZhciB0PWUudGhlbjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgdClyZXR1cm4gbmV3IHIodC5iaW5kKGUpKS50aGVuKHAsZil9cmV0dXJuIHAoZSl9ZnVuY3Rpb24gbShlKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgQWdncmVnYXRlRXJyb3IpcmV0dXJuIG5ldyBBZ2dyZWdhdGVFcnJvcihlLFwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWRcIik7dmFyIHQ9bmV3IEVycm9yKFwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWRcIik7cmV0dXJuIHQubmFtZT1cIkFnZ3JlZ2F0ZUVycm9yXCIsdC5lcnJvcnM9ZSx0fXIuYWxsPWZ1bmN0aW9uKGUpe3ZhciB0PWQoZSk7cmV0dXJuIG5ldyByKChmdW5jdGlvbihlLG4pe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gZShbXSk7dmFyIG89dC5sZW5ndGg7ZnVuY3Rpb24gaShhLHMpe2lmKHMmJihcIm9iamVjdFwiPT09dHlwZW9mIHN8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBzKSl7aWYocyBpbnN0YW5jZW9mIHImJnMudGhlbj09PXIucHJvdG90eXBlLnRoZW4pe2Zvcig7Mz09PXMuX3k7KXM9cy5fejtyZXR1cm4gMT09PXMuX3k/aShhLHMuX3opOigyPT09cy5feSYmbihzLl96KSx2b2lkIHMudGhlbigoZnVuY3Rpb24oZSl7aShhLGUpfSksbikpfXZhciBsPXMudGhlbjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgbClyZXR1cm4gdm9pZCBuZXcgcihsLmJpbmQocykpLnRoZW4oKGZ1bmN0aW9uKGUpe2koYSxlKX0pLG4pfXRbYV09cywwPT09LS1vJiZlKHQpfWZvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKWkoYSx0W2FdKX0pKX0sci5hbGxTZXR0bGVkPWZ1bmN0aW9uKGUpe3JldHVybiByLmFsbChkKGUpLm1hcChoKSl9LHIucmVqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgcigoZnVuY3Rpb24odCxuKXtuKGUpfSkpfSxyLnJhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyByKChmdW5jdGlvbih0LG4pe2QoZSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ci5yZXNvbHZlKGUpLnRoZW4odCxuKX0pKX0pKX0sci5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudGhlbihudWxsLGUpfSxyLmFueT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHIoKGZ1bmN0aW9uKHQsbil7dmFyIG89ZChlKSxpPSExLGE9W107ZnVuY3Rpb24gcyhlKXtpfHwoaT0hMCx0KGUpKX1mdW5jdGlvbiBsKGUpe2EucHVzaChlKSxhLmxlbmd0aD09PW8ubGVuZ3RoJiZuKG0oYSkpfTA9PT1vLmxlbmd0aD9uKG0oYSkpOm8uZm9yRWFjaCgoZnVuY3Rpb24oZSl7ci5yZXNvbHZlKGUpLnRoZW4ocyxsKX0pKX0pKX19LDYxNjI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oOTA2KSxvPVtSZWZlcmVuY2VFcnJvcixUeXBlRXJyb3IsUmFuZ2VFcnJvcl0saT0hMTtmdW5jdGlvbiBhKCl7aT0hMSxyLl9CPW51bGwsci5fQz1udWxsfWZ1bmN0aW9uIHMoZSx0KXtyZXR1cm4gdC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIHR9KSl9dC5kaXNhYmxlPWEsdC5lbmFibGU9ZnVuY3Rpb24oZSl7ZT1lfHx7fSxpJiZhKCk7aT0hMDt2YXIgdD0wLG49MCxsPXt9O2Z1bmN0aW9uIGModCl7KGUuYWxsUmVqZWN0aW9uc3x8cyhsW3RdLmVycm9yLGUud2hpdGVsaXN0fHxvKSkmJihsW3RdLmRpc3BsYXlJZD1uKyssZS5vblVuaGFuZGxlZD8obFt0XS5sb2dnZWQ9ITAsZS5vblVuaGFuZGxlZChsW3RdLmRpc3BsYXlJZCxsW3RdLmVycm9yKSk6KGxbdF0ubG9nZ2VkPSEwLGZ1bmN0aW9uKGUsdCl7Y29uc29sZS53YXJuKFwiUG9zc2libGUgVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uIChpZDogXCIrZStcIik6XCIpLCgodCYmKHQuc3RhY2t8fHQpKStcIlwiKS5zcGxpdChcIlxcblwiKS5mb3JFYWNoKChmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oXCIgIFwiK2UpfSkpfShsW3RdLmRpc3BsYXlJZCxsW3RdLmVycm9yKSkpfXIuX0I9ZnVuY3Rpb24odCl7Mj09PXQuX3kmJmxbdC5fRV0mJihsW3QuX0VdLmxvZ2dlZD9mdW5jdGlvbih0KXtsW3RdLmxvZ2dlZCYmKGUub25IYW5kbGVkP2Uub25IYW5kbGVkKGxbdF0uZGlzcGxheUlkLGxbdF0uZXJyb3IpOmxbdF0ub25VbmhhbmRsZWR8fChjb25zb2xlLndhcm4oXCJQcm9taXNlIFJlamVjdGlvbiBIYW5kbGVkIChpZDogXCIrbFt0XS5kaXNwbGF5SWQrXCIpOlwiKSxjb25zb2xlLndhcm4oJyAgVGhpcyBtZWFucyB5b3UgY2FuIGlnbm9yZSBhbnkgcHJldmlvdXMgbWVzc2FnZXMgb2YgdGhlIGZvcm0gXCJQb3NzaWJsZSBVbmhhbmRsZWQgUHJvbWlzZSBSZWplY3Rpb25cIiB3aXRoIGlkICcrbFt0XS5kaXNwbGF5SWQrXCIuXCIpKSl9KHQuX0UpOmNsZWFyVGltZW91dChsW3QuX0VdLnRpbWVvdXQpLGRlbGV0ZSBsW3QuX0VdKX0sci5fQz1mdW5jdGlvbihlLG4pezA9PT1lLl94JiYoZS5fRT10KyssbFtlLl9FXT17ZGlzcGxheUlkOm51bGwsZXJyb3I6bix0aW1lb3V0OnNldFRpbWVvdXQoYy5iaW5kKG51bGwsZS5fRSkscyhuLG8pPzEwMDoyZTMpLGxvZ2dlZDohMX0pfX19LDYyOTM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHtaUDooKT0+dn0pO2NvbnN0IHI9MjE0NzQ4MzY0NyxvPTM2LGk9L154bi0tLyxhPS9bXlxcMC1cXHg3Rl0vLHM9L1tcXHgyRVxcdTMwMDJcXHVGRjBFXFx1RkY2MV0vZyxsPXtvdmVyZmxvdzpcIk92ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzXCIsXCJub3QtYmFzaWNcIjpcIklsbGVnYWwgaW5wdXQgPj0gMHg4MCAobm90IGEgYmFzaWMgY29kZSBwb2ludClcIixcImludmFsaWQtaW5wdXRcIjpcIkludmFsaWQgaW5wdXRcIn0sYz1NYXRoLmZsb29yLHU9U3RyaW5nLmZyb21DaGFyQ29kZTtmdW5jdGlvbiBkKGUpe3Rocm93IG5ldyBSYW5nZUVycm9yKGxbZV0pfWZ1bmN0aW9uIHAoZSx0KXtjb25zdCBuPWUuc3BsaXQoXCJAXCIpO2xldCByPVwiXCI7bi5sZW5ndGg+MSYmKHI9blswXStcIkBcIixlPW5bMV0pO2NvbnN0IG89ZnVuY3Rpb24oZSx0KXtjb25zdCBuPVtdO2xldCByPWUubGVuZ3RoO2Zvcig7ci0tOyluW3JdPXQoZVtyXSk7cmV0dXJuIG59KChlPWUucmVwbGFjZShzLFwiLlwiKSkuc3BsaXQoXCIuXCIpLHQpLmpvaW4oXCIuXCIpO3JldHVybiByK299ZnVuY3Rpb24gZihlKXtjb25zdCB0PVtdO2xldCBuPTA7Y29uc3Qgcj1lLmxlbmd0aDtmb3IoO248cjspe2NvbnN0IG89ZS5jaGFyQ29kZUF0KG4rKyk7aWYobz49NTUyOTYmJm88PTU2MzE5JiZuPHIpe2NvbnN0IHI9ZS5jaGFyQ29kZUF0KG4rKyk7NTYzMjA9PSg2NDUxMiZyKT90LnB1c2goKCgxMDIzJm8pPDwxMCkrKDEwMjMmcikrNjU1MzYpOih0LnB1c2gobyksbi0tKX1lbHNlIHQucHVzaChvKX1yZXR1cm4gdH1jb25zdCBoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUrMjIrNzUqKGU8MjYpLSgoMCE9dCk8PDUpfSxtPWZ1bmN0aW9uKGUsdCxuKXtsZXQgcj0wO2ZvcihlPW4/YyhlLzcwMCk6ZT4+MSxlKz1jKGUvdCk7ZT40NTU7cis9byllPWMoZS8zNSk7cmV0dXJuIGMociszNiplLyhlKzM4KSl9LGc9ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXSxuPWUubGVuZ3RoO2xldCBpPTAsYT0xMjgscz03MixsPWUubGFzdEluZGV4T2YoXCItXCIpO2w8MCYmKGw9MCk7Zm9yKGxldCByPTA7cjxsOysrcillLmNoYXJDb2RlQXQocik+PTEyOCYmZChcIm5vdC1iYXNpY1wiKSx0LnB1c2goZS5jaGFyQ29kZUF0KHIpKTtmb3IobGV0IHA9bD4wP2wrMTowO3A8bjspe2NvbnN0IGw9aTtmb3IobGV0IHQ9MSxhPW87O2ErPW8pe3A+PW4mJmQoXCJpbnZhbGlkLWlucHV0XCIpO2NvbnN0IGw9KHU9ZS5jaGFyQ29kZUF0KHArKykpPj00OCYmdTw1OD91LTQ4KzI2OnU+PTY1JiZ1PDkxP3UtNjU6dT49OTcmJnU8MTIzP3UtOTc6bztsPj1vJiZkKFwiaW52YWxpZC1pbnB1dFwiKSxsPmMoKHItaSkvdCkmJmQoXCJvdmVyZmxvd1wiKSxpKz1sKnQ7Y29uc3QgZj1hPD1zPzE6YT49cysyNj8yNjphLXM7aWYobDxmKWJyZWFrO2NvbnN0IGg9by1mO3Q+YyhyL2gpJiZkKFwib3ZlcmZsb3dcIiksdCo9aH1jb25zdCBmPXQubGVuZ3RoKzE7cz1tKGktbCxmLDA9PWwpLGMoaS9mKT5yLWEmJmQoXCJvdmVyZmxvd1wiKSxhKz1jKGkvZiksaSU9Zix0LnNwbGljZShpKyssMCxhKX12YXIgdTtyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4udCl9LHk9ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXSxuPShlPWYoZSkpLmxlbmd0aDtsZXQgaT0xMjgsYT0wLHM9NzI7Zm9yKGNvbnN0IHIgb2YgZSlyPDEyOCYmdC5wdXNoKHUocikpO2NvbnN0IGw9dC5sZW5ndGg7bGV0IHA9bDtmb3IobCYmdC5wdXNoKFwiLVwiKTtwPG47KXtsZXQgbj1yO2Zvcihjb25zdCB0IG9mIGUpdD49aSYmdDxuJiYobj10KTtjb25zdCBmPXArMTtuLWk+Yygoci1hKS9mKSYmZChcIm92ZXJmbG93XCIpLGErPShuLWkpKmYsaT1uO2Zvcihjb25zdCBnIG9mIGUpaWYoZzxpJiYrK2E+ciYmZChcIm92ZXJmbG93XCIpLGc9PT1pKXtsZXQgZT1hO2ZvcihsZXQgbj1vOztuKz1vKXtjb25zdCByPW48PXM/MTpuPj1zKzI2PzI2Om4tcztpZihlPHIpYnJlYWs7Y29uc3QgaT1lLXIsYT1vLXI7dC5wdXNoKHUoaChyK2klYSwwKSkpLGU9YyhpL2EpfXQucHVzaCh1KGgoZSwwKSkpLHM9bShhLGYscD09PWwpLGE9MCwrK3B9KythLCsraX1yZXR1cm4gdC5qb2luKFwiXCIpfSx2PXt2ZXJzaW9uOlwiMi4zLjFcIix1Y3MyOntkZWNvZGU6ZixlbmNvZGU6ZT0+U3RyaW5nLmZyb21Db2RlUG9pbnQoLi4uZSl9LGRlY29kZTpnLGVuY29kZTp5LHRvQVNDSUk6ZnVuY3Rpb24oZSl7cmV0dXJuIHAoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGEudGVzdChlKT9cInhuLS1cIit5KGUpOmV9KSl9LHRvVW5pY29kZTpmdW5jdGlvbihlKXtyZXR1cm4gcChlLChmdW5jdGlvbihlKXtyZXR1cm4gaS50ZXN0KGUpP2coZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKTplfSkpfX19LDk4NzQ6ZT0+e1widXNlIHN0cmljdFwiO3ZhciB0PVN0cmluZy5wcm90b3R5cGUucmVwbGFjZSxuPS8lMjAvZyxyPVwiUkZDMTczOFwiLG89XCJSRkMzOTg2XCI7ZS5leHBvcnRzPXtkZWZhdWx0Om8sZm9ybWF0dGVyczp7UkZDMTczODpmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKGUsbixcIitcIil9LFJGQzM5ODY6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKX19LFJGQzE3Mzg6cixSRkMzOTg2Om99fSwyODA4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDIzMzQpLG89big0MzYwKSxpPW4oOTg3NCk7ZS5leHBvcnRzPXtmb3JtYXRzOmkscGFyc2U6byxzdHJpbmdpZnk6cn19LDQzNjA6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNDE4NCksbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGk9QXJyYXkuaXNBcnJheSxhPXthbGxvd0RvdHM6ITEsYWxsb3dQcm90b3R5cGVzOiExLGFsbG93U3BhcnNlOiExLGFycmF5TGltaXQ6MjAsY2hhcnNldDpcInV0Zi04XCIsY2hhcnNldFNlbnRpbmVsOiExLGNvbW1hOiExLGRlY29kZXI6ci5kZWNvZGUsZGVsaW1pdGVyOlwiJlwiLGRlcHRoOjUsaWdub3JlUXVlcnlQcmVmaXg6ITEsaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzOiExLHBhcmFtZXRlckxpbWl0OjFlMyxwYXJzZUFycmF5czohMCxwbGFpbk9iamVjdHM6ITEsc3RyaWN0TnVsbEhhbmRsaW5nOiExfSxzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoLyYjKFxcZCspOy9nLChmdW5jdGlvbihlLHQpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KHQsMTApKX0pKX0sbD1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZcInN0cmluZ1wiPT09dHlwZW9mIGUmJnQuY29tbWEmJmUuaW5kZXhPZihcIixcIik+LTE/ZS5zcGxpdChcIixcIik6ZX0sYz1mdW5jdGlvbihlLHQsbixyKXtpZihlKXt2YXIgaT1uLmFsbG93RG90cz9lLnJlcGxhY2UoL1xcLihbXi5bXSspL2csXCJbJDFdXCIpOmUsYT0vKFxcW1teW1xcXV0qXSkvZyxzPW4uZGVwdGg+MCYmLyhcXFtbXltcXF1dKl0pLy5leGVjKGkpLGM9cz9pLnNsaWNlKDAscy5pbmRleCk6aSx1PVtdO2lmKGMpe2lmKCFuLnBsYWluT2JqZWN0cyYmby5jYWxsKE9iamVjdC5wcm90b3R5cGUsYykmJiFuLmFsbG93UHJvdG90eXBlcylyZXR1cm47dS5wdXNoKGMpfWZvcih2YXIgZD0wO24uZGVwdGg+MCYmbnVsbCE9PShzPWEuZXhlYyhpKSkmJmQ8bi5kZXB0aDspe2lmKGQrPTEsIW4ucGxhaW5PYmplY3RzJiZvLmNhbGwoT2JqZWN0LnByb3RvdHlwZSxzWzFdLnNsaWNlKDEsLTEpKSYmIW4uYWxsb3dQcm90b3R5cGVzKXJldHVybjt1LnB1c2goc1sxXSl9cmV0dXJuIHMmJnUucHVzaChcIltcIitpLnNsaWNlKHMuaW5kZXgpK1wiXVwiKSxmdW5jdGlvbihlLHQsbixyKXtmb3IodmFyIG89cj90OmwodCxuKSxpPWUubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhLHM9ZVtpXTtpZihcIltdXCI9PT1zJiZuLnBhcnNlQXJyYXlzKWE9W10uY29uY2F0KG8pO2Vsc2V7YT1uLnBsYWluT2JqZWN0cz9PYmplY3QuY3JlYXRlKG51bGwpOnt9O3ZhciBjPVwiW1wiPT09cy5jaGFyQXQoMCkmJlwiXVwiPT09cy5jaGFyQXQocy5sZW5ndGgtMSk/cy5zbGljZSgxLC0xKTpzLHU9cGFyc2VJbnQoYywxMCk7bi5wYXJzZUFycmF5c3x8XCJcIiE9PWM/IWlzTmFOKHUpJiZzIT09YyYmU3RyaW5nKHUpPT09YyYmdT49MCYmbi5wYXJzZUFycmF5cyYmdTw9bi5hcnJheUxpbWl0PyhhPVtdKVt1XT1vOlwiX19wcm90b19fXCIhPT1jJiYoYVtjXT1vKTphPXswOm99fW89YX1yZXR1cm4gb30odSx0LG4scil9fTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1mdW5jdGlvbihlKXtpZighZSlyZXR1cm4gYTtpZihudWxsIT09ZS5kZWNvZGVyJiZ2b2lkIDAhPT1lLmRlY29kZXImJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLmRlY29kZXIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlY29kZXIgaGFzIHRvIGJlIGEgZnVuY3Rpb24uXCIpO2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZS5jaGFyc2V0JiZcInV0Zi04XCIhPT1lLmNoYXJzZXQmJlwiaXNvLTg4NTktMVwiIT09ZS5jaGFyc2V0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgY2hhcnNldCBvcHRpb24gbXVzdCBiZSBlaXRoZXIgdXRmLTgsIGlzby04ODU5LTEsIG9yIHVuZGVmaW5lZFwiKTt2YXIgdD1cInVuZGVmaW5lZFwiPT09dHlwZW9mIGUuY2hhcnNldD9hLmNoYXJzZXQ6ZS5jaGFyc2V0O3JldHVybnthbGxvd0RvdHM6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBlLmFsbG93RG90cz9hLmFsbG93RG90czohIWUuYWxsb3dEb3RzLGFsbG93UHJvdG90eXBlczpcImJvb2xlYW5cIj09PXR5cGVvZiBlLmFsbG93UHJvdG90eXBlcz9lLmFsbG93UHJvdG90eXBlczphLmFsbG93UHJvdG90eXBlcyxhbGxvd1NwYXJzZTpcImJvb2xlYW5cIj09PXR5cGVvZiBlLmFsbG93U3BhcnNlP2UuYWxsb3dTcGFyc2U6YS5hbGxvd1NwYXJzZSxhcnJheUxpbWl0OlwibnVtYmVyXCI9PT10eXBlb2YgZS5hcnJheUxpbWl0P2UuYXJyYXlMaW1pdDphLmFycmF5TGltaXQsY2hhcnNldDp0LGNoYXJzZXRTZW50aW5lbDpcImJvb2xlYW5cIj09PXR5cGVvZiBlLmNoYXJzZXRTZW50aW5lbD9lLmNoYXJzZXRTZW50aW5lbDphLmNoYXJzZXRTZW50aW5lbCxjb21tYTpcImJvb2xlYW5cIj09PXR5cGVvZiBlLmNvbW1hP2UuY29tbWE6YS5jb21tYSxkZWNvZGVyOlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmRlY29kZXI/ZS5kZWNvZGVyOmEuZGVjb2RlcixkZWxpbWl0ZXI6XCJzdHJpbmdcIj09PXR5cGVvZiBlLmRlbGltaXRlcnx8ci5pc1JlZ0V4cChlLmRlbGltaXRlcik/ZS5kZWxpbWl0ZXI6YS5kZWxpbWl0ZXIsZGVwdGg6XCJudW1iZXJcIj09PXR5cGVvZiBlLmRlcHRofHwhMT09PWUuZGVwdGg/K2UuZGVwdGg6YS5kZXB0aCxpZ25vcmVRdWVyeVByZWZpeDohMD09PWUuaWdub3JlUXVlcnlQcmVmaXgsaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzOlwiYm9vbGVhblwiPT09dHlwZW9mIGUuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzP2UuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzOmEuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzLHBhcmFtZXRlckxpbWl0OlwibnVtYmVyXCI9PT10eXBlb2YgZS5wYXJhbWV0ZXJMaW1pdD9lLnBhcmFtZXRlckxpbWl0OmEucGFyYW1ldGVyTGltaXQscGFyc2VBcnJheXM6ITEhPT1lLnBhcnNlQXJyYXlzLHBsYWluT2JqZWN0czpcImJvb2xlYW5cIj09PXR5cGVvZiBlLnBsYWluT2JqZWN0cz9lLnBsYWluT2JqZWN0czphLnBsYWluT2JqZWN0cyxzdHJpY3ROdWxsSGFuZGxpbmc6XCJib29sZWFuXCI9PT10eXBlb2YgZS5zdHJpY3ROdWxsSGFuZGxpbmc/ZS5zdHJpY3ROdWxsSGFuZGxpbmc6YS5zdHJpY3ROdWxsSGFuZGxpbmd9fSh0KTtpZihcIlwiPT09ZXx8bnVsbD09PWV8fFwidW5kZWZpbmVkXCI9PT10eXBlb2YgZSlyZXR1cm4gbi5wbGFpbk9iamVjdHM/T2JqZWN0LmNyZWF0ZShudWxsKTp7fTtmb3IodmFyIHU9XCJzdHJpbmdcIj09PXR5cGVvZiBlP2Z1bmN0aW9uKGUsdCl7dmFyIG4sYz17X19wcm90b19fOm51bGx9LHU9dC5pZ25vcmVRdWVyeVByZWZpeD9lLnJlcGxhY2UoL15cXD8vLFwiXCIpOmUsZD10LnBhcmFtZXRlckxpbWl0PT09MS8wP3ZvaWQgMDp0LnBhcmFtZXRlckxpbWl0LHA9dS5zcGxpdCh0LmRlbGltaXRlcixkKSxmPS0xLGg9dC5jaGFyc2V0O2lmKHQuY2hhcnNldFNlbnRpbmVsKWZvcihuPTA7bjxwLmxlbmd0aDsrK24pMD09PXBbbl0uaW5kZXhPZihcInV0Zjg9XCIpJiYoXCJ1dGY4PSVFMiU5QyU5M1wiPT09cFtuXT9oPVwidXRmLThcIjpcInV0Zjg9JTI2JTIzMTAwMDMlM0JcIj09PXBbbl0mJihoPVwiaXNvLTg4NTktMVwiKSxmPW4sbj1wLmxlbmd0aCk7Zm9yKG49MDtuPHAubGVuZ3RoOysrbilpZihuIT09Zil7dmFyIG0sZyx5PXBbbl0sdj15LmluZGV4T2YoXCJdPVwiKSxiPS0xPT09dj95LmluZGV4T2YoXCI9XCIpOnYrMTstMT09PWI/KG09dC5kZWNvZGVyKHksYS5kZWNvZGVyLGgsXCJrZXlcIiksZz10LnN0cmljdE51bGxIYW5kbGluZz9udWxsOlwiXCIpOihtPXQuZGVjb2Rlcih5LnNsaWNlKDAsYiksYS5kZWNvZGVyLGgsXCJrZXlcIiksZz1yLm1heWJlTWFwKGwoeS5zbGljZShiKzEpLHQpLChmdW5jdGlvbihlKXtyZXR1cm4gdC5kZWNvZGVyKGUsYS5kZWNvZGVyLGgsXCJ2YWx1ZVwiKX0pKSksZyYmdC5pbnRlcnByZXROdW1lcmljRW50aXRpZXMmJlwiaXNvLTg4NTktMVwiPT09aCYmKGc9cyhnKSkseS5pbmRleE9mKFwiW109XCIpPi0xJiYoZz1pKGcpP1tnXTpnKSxvLmNhbGwoYyxtKT9jW21dPXIuY29tYmluZShjW21dLGcpOmNbbV09Z31yZXR1cm4gY30oZSxuKTplLGQ9bi5wbGFpbk9iamVjdHM/T2JqZWN0LmNyZWF0ZShudWxsKTp7fSxwPU9iamVjdC5rZXlzKHUpLGY9MDtmPHAubGVuZ3RoOysrZil7dmFyIGg9cFtmXSxtPWMoaCx1W2hdLG4sXCJzdHJpbmdcIj09PXR5cGVvZiBlKTtkPXIubWVyZ2UoZCxtLG4pfXJldHVybiEwPT09bi5hbGxvd1NwYXJzZT9kOnIuY29tcGFjdChkKX19LDIzMzQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTgxKSxvPW4oNDE4NCksaT1uKDk4NzQpLGE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxzPXticmFja2V0czpmdW5jdGlvbihlKXtyZXR1cm4gZStcIltdXCJ9LGNvbW1hOlwiY29tbWFcIixpbmRpY2VzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUrXCJbXCIrdCtcIl1cIn0scmVwZWF0OmZ1bmN0aW9uKGUpe3JldHVybiBlfX0sbD1BcnJheS5pc0FycmF5LGM9QXJyYXkucHJvdG90eXBlLnB1c2gsdT1mdW5jdGlvbihlLHQpe2MuYXBwbHkoZSxsKHQpP3Q6W3RdKX0sZD1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyxwPWkuZGVmYXVsdCxmPXthZGRRdWVyeVByZWZpeDohMSxhbGxvd0RvdHM6ITEsY2hhcnNldDpcInV0Zi04XCIsY2hhcnNldFNlbnRpbmVsOiExLGRlbGltaXRlcjpcIiZcIixlbmNvZGU6ITAsZW5jb2RlcjpvLmVuY29kZSxlbmNvZGVWYWx1ZXNPbmx5OiExLGZvcm1hdDpwLGZvcm1hdHRlcjppLmZvcm1hdHRlcnNbcF0saW5kaWNlczohMSxzZXJpYWxpemVEYXRlOmZ1bmN0aW9uKGUpe3JldHVybiBkLmNhbGwoZSl9LHNraXBOdWxsczohMSxzdHJpY3ROdWxsSGFuZGxpbmc6ITF9LGg9e30sbT1mdW5jdGlvbiBlKHQsbixpLGEscyxjLGQscCxtLGcseSx2LGIsVCx4LHcpe2Zvcih2YXIgayxFPXQsUz13LEE9MCxDPSExO3ZvaWQgMCE9PShTPVMuZ2V0KGgpKSYmIUM7KXt2YXIgXz1TLmdldCh0KTtpZihBKz0xLFwidW5kZWZpbmVkXCIhPT10eXBlb2YgXyl7aWYoXz09PUEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDeWNsaWMgb2JqZWN0IHZhbHVlXCIpO0M9ITB9XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBTLmdldChoKSYmKEE9MCl9aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHA/RT1wKG4sRSk6RSBpbnN0YW5jZW9mIERhdGU/RT15KEUpOlwiY29tbWFcIj09PWkmJmwoRSkmJihFPW8ubWF5YmVNYXAoRSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlP3koZSk6ZX0pKSksbnVsbD09PUUpe2lmKHMpcmV0dXJuIGQmJiFUP2QobixmLmVuY29kZXIseCxcImtleVwiLHYpOm47RT1cIlwifWlmKFwic3RyaW5nXCI9PT10eXBlb2Yoaz1FKXx8XCJudW1iZXJcIj09PXR5cGVvZiBrfHxcImJvb2xlYW5cIj09PXR5cGVvZiBrfHxcInN5bWJvbFwiPT09dHlwZW9mIGt8fFwiYmlnaW50XCI9PT10eXBlb2Yga3x8by5pc0J1ZmZlcihFKSlyZXR1cm4gZD9bYihUP246ZChuLGYuZW5jb2Rlcix4LFwia2V5XCIsdikpK1wiPVwiK2IoZChFLGYuZW5jb2Rlcix4LFwidmFsdWVcIix2KSldOltiKG4pK1wiPVwiK2IoU3RyaW5nKEUpKV07dmFyIEQsUj1bXTtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIEUpcmV0dXJuIFI7aWYoXCJjb21tYVwiPT09aSYmbChFKSlUJiZkJiYoRT1vLm1heWJlTWFwKEUsZCkpLEQ9W3t2YWx1ZTpFLmxlbmd0aD4wP0Uuam9pbihcIixcIil8fG51bGw6dm9pZCAwfV07ZWxzZSBpZihsKHApKUQ9cDtlbHNle3ZhciBPPU9iamVjdC5rZXlzKEUpO0Q9bT9PLnNvcnQobSk6T31mb3IodmFyIFA9YSYmbChFKSYmMT09PUUubGVuZ3RoP24rXCJbXVwiOm4sTD0wO0w8RC5sZW5ndGg7KytMKXt2YXIgTj1EW0xdLEk9XCJvYmplY3RcIj09PXR5cGVvZiBOJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIE4udmFsdWU/Ti52YWx1ZTpFW05dO2lmKCFjfHxudWxsIT09SSl7dmFyIGo9bChFKT9cImZ1bmN0aW9uXCI9PT10eXBlb2YgaT9pKFAsTik6UDpQKyhnP1wiLlwiK046XCJbXCIrTitcIl1cIik7dy5zZXQodCxBKTt2YXIgQj1yKCk7Qi5zZXQoaCx3KSx1KFIsZShJLGosaSxhLHMsYyxcImNvbW1hXCI9PT1pJiZUJiZsKEUpP251bGw6ZCxwLG0sZyx5LHYsYixULHgsQikpfX1yZXR1cm4gUn07ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4sbz1lLGM9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIGY7aWYobnVsbCE9PWUuZW5jb2RlciYmXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBlLmVuY29kZXImJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLmVuY29kZXIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkVuY29kZXIgaGFzIHRvIGJlIGEgZnVuY3Rpb24uXCIpO3ZhciB0PWUuY2hhcnNldHx8Zi5jaGFyc2V0O2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZS5jaGFyc2V0JiZcInV0Zi04XCIhPT1lLmNoYXJzZXQmJlwiaXNvLTg4NTktMVwiIT09ZS5jaGFyc2V0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgY2hhcnNldCBvcHRpb24gbXVzdCBiZSBlaXRoZXIgdXRmLTgsIGlzby04ODU5LTEsIG9yIHVuZGVmaW5lZFwiKTt2YXIgbj1pLmRlZmF1bHQ7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBlLmZvcm1hdCl7aWYoIWEuY2FsbChpLmZvcm1hdHRlcnMsZS5mb3JtYXQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmtub3duIGZvcm1hdCBvcHRpb24gcHJvdmlkZWQuXCIpO249ZS5mb3JtYXR9dmFyIHI9aS5mb3JtYXR0ZXJzW25dLG89Zi5maWx0ZXI7cmV0dXJuKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmZpbHRlcnx8bChlLmZpbHRlcikpJiYobz1lLmZpbHRlcikse2FkZFF1ZXJ5UHJlZml4OlwiYm9vbGVhblwiPT09dHlwZW9mIGUuYWRkUXVlcnlQcmVmaXg/ZS5hZGRRdWVyeVByZWZpeDpmLmFkZFF1ZXJ5UHJlZml4LGFsbG93RG90czpcInVuZGVmaW5lZFwiPT09dHlwZW9mIGUuYWxsb3dEb3RzP2YuYWxsb3dEb3RzOiEhZS5hbGxvd0RvdHMsY2hhcnNldDp0LGNoYXJzZXRTZW50aW5lbDpcImJvb2xlYW5cIj09PXR5cGVvZiBlLmNoYXJzZXRTZW50aW5lbD9lLmNoYXJzZXRTZW50aW5lbDpmLmNoYXJzZXRTZW50aW5lbCxkZWxpbWl0ZXI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBlLmRlbGltaXRlcj9mLmRlbGltaXRlcjplLmRlbGltaXRlcixlbmNvZGU6XCJib29sZWFuXCI9PT10eXBlb2YgZS5lbmNvZGU/ZS5lbmNvZGU6Zi5lbmNvZGUsZW5jb2RlcjpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5lbmNvZGVyP2UuZW5jb2RlcjpmLmVuY29kZXIsZW5jb2RlVmFsdWVzT25seTpcImJvb2xlYW5cIj09PXR5cGVvZiBlLmVuY29kZVZhbHVlc09ubHk/ZS5lbmNvZGVWYWx1ZXNPbmx5OmYuZW5jb2RlVmFsdWVzT25seSxmaWx0ZXI6byxmb3JtYXQ6bixmb3JtYXR0ZXI6cixzZXJpYWxpemVEYXRlOlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnNlcmlhbGl6ZURhdGU/ZS5zZXJpYWxpemVEYXRlOmYuc2VyaWFsaXplRGF0ZSxza2lwTnVsbHM6XCJib29sZWFuXCI9PT10eXBlb2YgZS5za2lwTnVsbHM/ZS5za2lwTnVsbHM6Zi5za2lwTnVsbHMsc29ydDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5zb3J0P2Uuc29ydDpudWxsLHN0cmljdE51bGxIYW5kbGluZzpcImJvb2xlYW5cIj09PXR5cGVvZiBlLnN0cmljdE51bGxIYW5kbGluZz9lLnN0cmljdE51bGxIYW5kbGluZzpmLnN0cmljdE51bGxIYW5kbGluZ319KHQpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBjLmZpbHRlcj9vPSgwLGMuZmlsdGVyKShcIlwiLG8pOmwoYy5maWx0ZXIpJiYobj1jLmZpbHRlcik7dmFyIGQscD1bXTtpZihcIm9iamVjdFwiIT09dHlwZW9mIG98fG51bGw9PT1vKXJldHVyblwiXCI7ZD10JiZ0LmFycmF5Rm9ybWF0IGluIHM/dC5hcnJheUZvcm1hdDp0JiZcImluZGljZXNcImluIHQ/dC5pbmRpY2VzP1wiaW5kaWNlc1wiOlwicmVwZWF0XCI6XCJpbmRpY2VzXCI7dmFyIGg9c1tkXTtpZih0JiZcImNvbW1hUm91bmRUcmlwXCJpbiB0JiZcImJvb2xlYW5cIiE9PXR5cGVvZiB0LmNvbW1hUm91bmRUcmlwKXRocm93IG5ldyBUeXBlRXJyb3IoXCJgY29tbWFSb3VuZFRyaXBgIG11c3QgYmUgYSBib29sZWFuLCBvciBhYnNlbnRcIik7dmFyIGc9XCJjb21tYVwiPT09aCYmdCYmdC5jb21tYVJvdW5kVHJpcDtufHwobj1PYmplY3Qua2V5cyhvKSksYy5zb3J0JiZuLnNvcnQoYy5zb3J0KTtmb3IodmFyIHk9cigpLHY9MDt2PG4ubGVuZ3RoOysrdil7dmFyIGI9blt2XTtjLnNraXBOdWxscyYmbnVsbD09PW9bYl18fHUocCxtKG9bYl0sYixoLGcsYy5zdHJpY3ROdWxsSGFuZGxpbmcsYy5za2lwTnVsbHMsYy5lbmNvZGU/Yy5lbmNvZGVyOm51bGwsYy5maWx0ZXIsYy5zb3J0LGMuYWxsb3dEb3RzLGMuc2VyaWFsaXplRGF0ZSxjLmZvcm1hdCxjLmZvcm1hdHRlcixjLmVuY29kZVZhbHVlc09ubHksYy5jaGFyc2V0LHkpKX12YXIgVD1wLmpvaW4oYy5kZWxpbWl0ZXIpLHg9ITA9PT1jLmFkZFF1ZXJ5UHJlZml4P1wiP1wiOlwiXCI7cmV0dXJuIGMuY2hhcnNldFNlbnRpbmVsJiYoXCJpc28tODg1OS0xXCI9PT1jLmNoYXJzZXQ/eCs9XCJ1dGY4PSUyNiUyMzEwMDAzJTNCJlwiOngrPVwidXRmOD0lRTIlOUMlOTMmXCIpLFQubGVuZ3RoPjA/eCtUOlwiXCJ9fSw0MTg0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDk4NzQpLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxpPUFycmF5LmlzQXJyYXksYT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDwyNTY7Kyt0KWUucHVzaChcIiVcIisoKHQ8MTY/XCIwXCI6XCJcIikrdC50b1N0cmluZygxNikpLnRvVXBwZXJDYXNlKCkpO3JldHVybiBlfSgpLHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49dCYmdC5wbGFpbk9iamVjdHM/T2JqZWN0LmNyZWF0ZShudWxsKTp7fSxyPTA7cjxlLmxlbmd0aDsrK3IpXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBlW3JdJiYobltyXT1lW3JdKTtyZXR1cm4gbn07ZS5leHBvcnRzPXthcnJheVRvT2JqZWN0OnMsYXNzaWduOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLnJlZHVjZSgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZVtuXT10W25dLGV9KSxlKX0sY29tYmluZTpmdW5jdGlvbihlLHQpe3JldHVybltdLmNvbmNhdChlLHQpfSxjb21wYWN0OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1be29iajp7bzplfSxwcm9wOlwib1wifV0sbj1bXSxyPTA7cjx0Lmxlbmd0aDsrK3IpZm9yKHZhciBvPXRbcl0sYT1vLm9ialtvLnByb3BdLHM9T2JqZWN0LmtleXMoYSksbD0wO2w8cy5sZW5ndGg7KytsKXt2YXIgYz1zW2xdLHU9YVtjXTtcIm9iamVjdFwiPT09dHlwZW9mIHUmJm51bGwhPT11JiYtMT09PW4uaW5kZXhPZih1KSYmKHQucHVzaCh7b2JqOmEscHJvcDpjfSksbi5wdXNoKHUpKX1yZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKDtlLmxlbmd0aD4xOyl7dmFyIHQ9ZS5wb3AoKSxuPXQub2JqW3QucHJvcF07aWYoaShuKSl7Zm9yKHZhciByPVtdLG89MDtvPG4ubGVuZ3RoOysrbylcInVuZGVmaW5lZFwiIT09dHlwZW9mIG5bb10mJnIucHVzaChuW29dKTt0Lm9ialt0LnByb3BdPXJ9fX0odCksZX0sZGVjb2RlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLnJlcGxhY2UoL1xcKy9nLFwiIFwiKTtpZihcImlzby04ODU5LTFcIj09PW4pcmV0dXJuIHIucmVwbGFjZSgvJVswLTlhLWZdezJ9L2dpLHVuZXNjYXBlKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyKX1jYXRjaChvKXtyZXR1cm4gcn19LGVuY29kZTpmdW5jdGlvbihlLHQsbixvLGkpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gZTt2YXIgcz1lO2lmKFwic3ltYm9sXCI9PT10eXBlb2YgZT9zPVN5bWJvbC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKTpcInN0cmluZ1wiIT09dHlwZW9mIGUmJihzPVN0cmluZyhlKSksXCJpc28tODg1OS0xXCI9PT1uKXJldHVybiBlc2NhcGUocykucmVwbGFjZSgvJXVbMC05YS1mXXs0fS9naSwoZnVuY3Rpb24oZSl7cmV0dXJuXCIlMjYlMjNcIitwYXJzZUludChlLnNsaWNlKDIpLDE2KStcIiUzQlwifSkpO2Zvcih2YXIgbD1cIlwiLGM9MDtjPHMubGVuZ3RoOysrYyl7dmFyIHU9cy5jaGFyQ29kZUF0KGMpOzQ1PT09dXx8NDY9PT11fHw5NT09PXV8fDEyNj09PXV8fHU+PTQ4JiZ1PD01N3x8dT49NjUmJnU8PTkwfHx1Pj05NyYmdTw9MTIyfHxpPT09ci5SRkMxNzM4JiYoNDA9PT11fHw0MT09PXUpP2wrPXMuY2hhckF0KGMpOnU8MTI4P2wrPWFbdV06dTwyMDQ4P2wrPWFbMTkyfHU+PjZdK2FbMTI4fDYzJnVdOnU8NTUyOTZ8fHU+PTU3MzQ0P2wrPWFbMjI0fHU+PjEyXSthWzEyOHx1Pj42JjYzXSthWzEyOHw2MyZ1XTooYys9MSx1PTY1NTM2KygoMTAyMyZ1KTw8MTB8MTAyMyZzLmNoYXJDb2RlQXQoYykpLGwrPWFbMjQwfHU+PjE4XSthWzEyOHx1Pj4xMiY2M10rYVsxMjh8dT4+NiY2M10rYVsxMjh8NjMmdV0pfXJldHVybiBsfSxpc0J1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4hKCFlfHxcIm9iamVjdFwiIT09dHlwZW9mIGUpJiYhIShlLmNvbnN0cnVjdG9yJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpKX0saXNSZWdFeHA6ZnVuY3Rpb24oZSl7cmV0dXJuXCJbb2JqZWN0IFJlZ0V4cF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX0sbWF5YmVNYXA6ZnVuY3Rpb24oZSx0KXtpZihpKGUpKXtmb3IodmFyIG49W10scj0wO3I8ZS5sZW5ndGg7cis9MSluLnB1c2godChlW3JdKSk7cmV0dXJuIG59cmV0dXJuIHQoZSl9LG1lcmdlOmZ1bmN0aW9uIGUodCxuLHIpe2lmKCFuKXJldHVybiB0O2lmKFwib2JqZWN0XCIhPT10eXBlb2Ygbil7aWYoaSh0KSl0LnB1c2gobik7ZWxzZXtpZighdHx8XCJvYmplY3RcIiE9PXR5cGVvZiB0KXJldHVyblt0LG5dOyhyJiYoci5wbGFpbk9iamVjdHN8fHIuYWxsb3dQcm90b3R5cGVzKXx8IW8uY2FsbChPYmplY3QucHJvdG90eXBlLG4pKSYmKHRbbl09ITApfXJldHVybiB0fWlmKCF0fHxcIm9iamVjdFwiIT09dHlwZW9mIHQpcmV0dXJuW3RdLmNvbmNhdChuKTt2YXIgYT10O3JldHVybiBpKHQpJiYhaShuKSYmKGE9cyh0LHIpKSxpKHQpJiZpKG4pPyhuLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7aWYoby5jYWxsKHQsaSkpe3ZhciBhPXRbaV07YSYmXCJvYmplY3RcIj09PXR5cGVvZiBhJiZuJiZcIm9iamVjdFwiPT09dHlwZW9mIG4/dFtpXT1lKGEsbixyKTp0LnB1c2gobil9ZWxzZSB0W2ldPW59KSksdCk6T2JqZWN0LmtleXMobikucmVkdWNlKChmdW5jdGlvbih0LGkpe3ZhciBhPW5baV07cmV0dXJuIG8uY2FsbCh0LGkpP3RbaV09ZSh0W2ldLGEscik6dFtpXT1hLHR9KSxhKX19fSw1NDc1OihlLHQsbik9Pntmb3IodmFyIHI9big4ODcyKSxvPVwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93P24uZzp3aW5kb3csaT1bXCJtb3pcIixcIndlYmtpdFwiXSxhPVwiQW5pbWF0aW9uRnJhbWVcIixzPW9bXCJyZXF1ZXN0XCIrYV0sbD1vW1wiY2FuY2VsXCIrYV18fG9bXCJjYW5jZWxSZXF1ZXN0XCIrYV0sYz0wOyFzJiZjPGkubGVuZ3RoO2MrKylzPW9baVtjXStcIlJlcXVlc3RcIithXSxsPW9baVtjXStcIkNhbmNlbFwiK2FdfHxvW2lbY10rXCJDYW5jZWxSZXF1ZXN0XCIrYV07aWYoIXN8fCFsKXt2YXIgdT0wLGQ9MCxwPVtdO3M9ZnVuY3Rpb24oZSl7aWYoMD09PXAubGVuZ3RoKXt2YXIgdD1yKCksbj1NYXRoLm1heCgwLDE2LjY2NjY2NjY2NjY2NjY2OC0odC11KSk7dT1uK3Qsc2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgZT1wLnNsaWNlKDApO3AubGVuZ3RoPTA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspaWYoIWVbdF0uY2FuY2VsbGVkKXRyeXtlW3RdLmNhbGxiYWNrKHUpfWNhdGNoKG4pe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgbn0pLDApfX0pLE1hdGgucm91bmQobikpfXJldHVybiBwLnB1c2goe2hhbmRsZTorK2QsY2FsbGJhY2s6ZSxjYW5jZWxsZWQ6ITF9KSxkfSxsPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8cC5sZW5ndGg7dCsrKXBbdF0uaGFuZGxlPT09ZSYmKHBbdF0uY2FuY2VsbGVkPSEwKX19ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBzLmNhbGwobyxlKX0sZS5leHBvcnRzLmNhbmNlbD1mdW5jdGlvbigpe2wuYXBwbHkobyxhcmd1bWVudHMpfSxlLmV4cG9ydHMucG9seWZpbGw9ZnVuY3Rpb24oZSl7ZXx8KGU9byksZS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9cyxlLmNhbmNlbEFuaW1hdGlvbkZyYW1lPWx9fSw4OTMzOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuKDE4MzIpLG4oNTM0Nyksbig2MTA0KSxuKDY0MTEpLFwidW5kZWZpbmVkXCI9PT10eXBlb2YgUHJvbWlzZSYmKG4oNjE2MikuZW5hYmxlKCksc2VsZi5Qcm9taXNlPW4oNTkwNikpLFwidW5kZWZpbmVkXCIhPT10eXBlb2Ygd2luZG93JiZuKDEyODgpLE9iamVjdC5hc3NpZ249bigxNzI1KX0sMjMzODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7big5NDQyKSxuKDIwOTYpLG4oNyksbig4NjgwKSxuKDg5OCksbig5MTk1KSxuKDIxMTMpLG4oOTkwMSksbig5MzYxKSxuKDk3MjApLG4oMzQzMyksbig3NTA1KSxuKDM4MzIpLG4oNDQ5NCksbigyMzU5KSxuKDEwMSksbig4MTAzKSxuKDY0MTEpLG4oNjAyNiksbigzODQxKSxuKDgyMjcpLG4oMTM3OSksbigxOTkpLG4oODAxOSksbig5MDQ2KSxuKDM4NDIpLG4oMzM0KSxuKDY0NzUpLG4oOTA1NyksbigzNTc3KSxuKDE5NTApLG4oNjY2MCksbigzODgpLG4oNjY4OCksbig5MjQ0KSxuKDQ2NDgpLG4oODkzMyksbig1NDc1KS5wb2x5ZmlsbCgpfSw0MTc5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuKDEyMzApLG4oMTE2NyksbigxNTAxKSxuKDUzNTYpLG4oMjQxNCksbigzNjA0KSxuKDM3ODIpLG4oNTg0MSksbigxNDc2KSxuKDE5MjEpLG4oNDQ3MiksbigyNjExKSxuKDc5OTYpLG4oNjExOSksbig2OTY0KSxuKDY4OTkpLG4oNjA2KSxuKDY3MDQpLG4oMzk2KSxuKDY0MTEpLG4oMTE5NSksbig0NDgpLG4oODU0NSksbigyNTAzKX0sNDQ2MzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyNzkxKSxvPW4oMTcyNSksaT1uKDUyOTYpO2Z1bmN0aW9uIGEoZSl7Zm9yKHZhciB0PVwiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9XCIrZSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSk7cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrZStcIjsgdmlzaXQgXCIrdCtcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9aWYoIXIpdGhyb3cgRXJyb3IoYSgyMjcpKTtmdW5jdGlvbiBzKGUsdCxuLHIsbyxpLGEscyxsKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyk7dHJ5e3QuYXBwbHkobixjKX1jYXRjaCh1KXt0aGlzLm9uRXJyb3IodSl9fXZhciBsPSExLGM9bnVsbCx1PSExLGQ9bnVsbCxwPXtvbkVycm9yOmZ1bmN0aW9uKGUpe2w9ITAsYz1lfX07ZnVuY3Rpb24gZihlLHQsbixyLG8saSxhLHUsZCl7bD0hMSxjPW51bGwscy5hcHBseShwLGFyZ3VtZW50cyl9dmFyIGg9bnVsbCxtPW51bGwsZz1udWxsO2Z1bmN0aW9uIHkoZSx0LG4pe3ZhciByPWUudHlwZXx8XCJ1bmtub3duLWV2ZW50XCI7ZS5jdXJyZW50VGFyZ2V0PWcobiksZnVuY3Rpb24oZSx0LG4scixvLGkscyxwLGgpe2lmKGYuYXBwbHkodGhpcyxhcmd1bWVudHMpLGwpe2lmKCFsKXRocm93IEVycm9yKGEoMTk4KSk7dmFyIG09YztsPSExLGM9bnVsbCx1fHwodT0hMCxkPW0pfX0ocix0LHZvaWQgMCxlKSxlLmN1cnJlbnRUYXJnZXQ9bnVsbH12YXIgdj1udWxsLGI9e307ZnVuY3Rpb24gVCgpe2lmKHYpZm9yKHZhciBlIGluIGIpe3ZhciB0PWJbZV0sbj12LmluZGV4T2YoZSk7aWYoISgtMTxuKSl0aHJvdyBFcnJvcihhKDk2LGUpKTtpZighd1tuXSl7aWYoIXQuZXh0cmFjdEV2ZW50cyl0aHJvdyBFcnJvcihhKDk3LGUpKTtmb3IodmFyIHIgaW4gd1tuXT10LG49dC5ldmVudFR5cGVzKXt2YXIgbz12b2lkIDAsaT1uW3JdLHM9dCxsPXI7aWYoay5oYXNPd25Qcm9wZXJ0eShsKSl0aHJvdyBFcnJvcihhKDk5LGwpKTtrW2xdPWk7dmFyIGM9aS5waGFzZWRSZWdpc3RyYXRpb25OYW1lcztpZihjKXtmb3IobyBpbiBjKWMuaGFzT3duUHJvcGVydHkobykmJngoY1tvXSxzLGwpO289ITB9ZWxzZSBpLnJlZ2lzdHJhdGlvbk5hbWU/KHgoaS5yZWdpc3RyYXRpb25OYW1lLHMsbCksbz0hMCk6bz0hMTtpZighbyl0aHJvdyBFcnJvcihhKDk4LHIsZSkpfX19fWZ1bmN0aW9uIHgoZSx0LG4pe2lmKEVbZV0pdGhyb3cgRXJyb3IoYSgxMDAsZSkpO0VbZV09dCxTW2VdPXQuZXZlbnRUeXBlc1tuXS5kZXBlbmRlbmNpZXN9dmFyIHc9W10saz17fSxFPXt9LFM9e307ZnVuY3Rpb24gQShlKXt2YXIgdCxuPSExO2Zvcih0IGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eSh0KSl7dmFyIHI9ZVt0XTtpZighYi5oYXNPd25Qcm9wZXJ0eSh0KXx8Ylt0XSE9PXIpe2lmKGJbdF0pdGhyb3cgRXJyb3IoYSgxMDIsdCkpO2JbdF09cixuPSEwfX1uJiZUKCl9dmFyIEM9IShcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnR8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpLF89bnVsbCxEPW51bGwsUj1udWxsO2Z1bmN0aW9uIE8oZSl7aWYoZT1tKGUpKXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgXyl0aHJvdyBFcnJvcihhKDI4MCkpO3ZhciB0PWUuc3RhdGVOb2RlO3QmJih0PWgodCksXyhlLnN0YXRlTm9kZSxlLnR5cGUsdCkpfX1mdW5jdGlvbiBQKGUpe0Q/Uj9SLnB1c2goZSk6Uj1bZV06RD1lfWZ1bmN0aW9uIEwoKXtpZihEKXt2YXIgZT1ELHQ9UjtpZihSPUQ9bnVsbCxPKGUpLHQpZm9yKGU9MDtlPHQubGVuZ3RoO2UrKylPKHRbZV0pfX1mdW5jdGlvbiBOKGUsdCl7cmV0dXJuIGUodCl9ZnVuY3Rpb24gSShlLHQsbixyLG8pe3JldHVybiBlKHQsbixyLG8pfWZ1bmN0aW9uIGooKXt9dmFyIEI9TixIPSExLEY9ITE7ZnVuY3Rpb24gTSgpe251bGw9PT1EJiZudWxsPT09Unx8KGooKSxMKCkpfWZ1bmN0aW9uIEcoZSx0LG4pe2lmKEYpcmV0dXJuIGUodCxuKTtGPSEwO3RyeXtyZXR1cm4gQihlLHQsbil9ZmluYWxseXtGPSExLE0oKX19dmFyIFU9L15bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRdWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQvLHo9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxWPXt9LFc9e307ZnVuY3Rpb24gcShlLHQsbixyLG8saSl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PXR8fDM9PT10fHw0PT09dCx0aGlzLmF0dHJpYnV0ZU5hbWU9cix0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1vLHRoaXMubXVzdFVzZVByb3BlcnR5PW4sdGhpcy5wcm9wZXJ0eU5hbWU9ZSx0aGlzLnR5cGU9dCx0aGlzLnNhbml0aXplVVJMPWl9dmFyIEs9e307XCJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZhdWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7S1tlXT1uZXcgcShlLDAsITEsZSxudWxsLCExKX0pKSxbW1wiYWNjZXB0Q2hhcnNldFwiLFwiYWNjZXB0LWNoYXJzZXRcIl0sW1wiY2xhc3NOYW1lXCIsXCJjbGFzc1wiXSxbXCJodG1sRm9yXCIsXCJmb3JcIl0sW1wiaHR0cEVxdWl2XCIsXCJodHRwLWVxdWl2XCJdXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lWzBdO0tbdF09bmV3IHEodCwxLCExLGVbMV0sbnVsbCwhMSl9KSksW1wiY29udGVudEVkaXRhYmxlXCIsXCJkcmFnZ2FibGVcIixcInNwZWxsQ2hlY2tcIixcInZhbHVlXCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe0tbZV09bmV3IHEoZSwyLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExKX0pKSxbXCJhdXRvUmV2ZXJzZVwiLFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiLFwiZm9jdXNhYmxlXCIsXCJwcmVzZXJ2ZUFscGhhXCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe0tbZV09bmV3IHEoZSwyLCExLGUsbnVsbCwhMSl9KSksXCJhbGxvd0Z1bGxTY3JlZW4gYXN5bmMgYXV0b0ZvY3VzIGF1dG9QbGF5IGNvbnRyb2xzIGRlZmF1bHQgZGVmZXIgZGlzYWJsZWQgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgZm9ybU5vVmFsaWRhdGUgaGlkZGVuIGxvb3Agbm9Nb2R1bGUgbm9WYWxpZGF0ZSBvcGVuIHBsYXlzSW5saW5lIHJlYWRPbmx5IHJlcXVpcmVkIHJldmVyc2VkIHNjb3BlZCBzZWFtbGVzcyBpdGVtU2NvcGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7S1tlXT1uZXcgcShlLDMsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITEpfSkpLFtcImNoZWNrZWRcIixcIm11bHRpcGxlXCIsXCJtdXRlZFwiLFwic2VsZWN0ZWRcIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7S1tlXT1uZXcgcShlLDMsITAsZSxudWxsLCExKX0pKSxbXCJjYXB0dXJlXCIsXCJkb3dubG9hZFwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtLW2VdPW5ldyBxKGUsNCwhMSxlLG51bGwsITEpfSkpLFtcImNvbHNcIixcInJvd3NcIixcInNpemVcIixcInNwYW5cIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7S1tlXT1uZXcgcShlLDYsITEsZSxudWxsLCExKX0pKSxbXCJyb3dTcGFuXCIsXCJzdGFydFwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtLW2VdPW5ldyBxKGUsNSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSl9KSk7dmFyIFo9L1tcXC06XShbYS16XSkvZztmdW5jdGlvbiBZKGUpe3JldHVybiBlWzFdLnRvVXBwZXJDYXNlKCl9XCJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoWixZKTtLW3RdPW5ldyBxKHQsMSwhMSxlLG51bGwsITEpfSkpLFwieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShaLFkpO0tbdF09bmV3IHEodCwxLCExLGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITEpfSkpLFtcInhtbDpiYXNlXCIsXCJ4bWw6bGFuZ1wiLFwieG1sOnNwYWNlXCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShaLFkpO0tbdF09bmV3IHEodCwxLCExLGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIiwhMSl9KSksW1widGFiSW5kZXhcIixcImNyb3NzT3JpZ2luXCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe0tbZV09bmV3IHEoZSwxLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExKX0pKSxLLnhsaW5rSHJlZj1uZXcgcShcInhsaW5rSHJlZlwiLDEsITEsXCJ4bGluazpocmVmXCIsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITApLFtcInNyY1wiLFwiaHJlZlwiLFwiYWN0aW9uXCIsXCJmb3JtQWN0aW9uXCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe0tbZV09bmV3IHEoZSwxLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCEwKX0pKTt2YXIgJD1yLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO2Z1bmN0aW9uIFgoZSx0LG4scil7dmFyIG89Sy5oYXNPd25Qcm9wZXJ0eSh0KT9LW3RdOm51bGw7KG51bGwhPT1vPzA9PT1vLnR5cGU6IXImJigyPHQubGVuZ3RoJiYoXCJvXCI9PT10WzBdfHxcIk9cIj09PXRbMF0pJiYoXCJuXCI9PT10WzFdfHxcIk5cIj09PXRbMV0pKSl8fChmdW5jdGlvbihlLHQsbixyKXtpZihudWxsPT09dHx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB0fHxmdW5jdGlvbihlLHQsbixyKXtpZihudWxsIT09biYmMD09PW4udHlwZSlyZXR1cm4hMTtzd2l0Y2godHlwZW9mIHQpe2Nhc2VcImZ1bmN0aW9uXCI6Y2FzZVwic3ltYm9sXCI6cmV0dXJuITA7Y2FzZVwiYm9vbGVhblwiOnJldHVybiFyJiYobnVsbCE9PW4/IW4uYWNjZXB0c0Jvb2xlYW5zOlwiZGF0YS1cIiE9PShlPWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpKSYmXCJhcmlhLVwiIT09ZSk7ZGVmYXVsdDpyZXR1cm4hMX19KGUsdCxuLHIpKXJldHVybiEwO2lmKHIpcmV0dXJuITE7aWYobnVsbCE9PW4pc3dpdGNoKG4udHlwZSl7Y2FzZSAzOnJldHVybiF0O2Nhc2UgNDpyZXR1cm4hMT09PXQ7Y2FzZSA1OnJldHVybiBpc05hTih0KTtjYXNlIDY6cmV0dXJuIGlzTmFOKHQpfHwxPnR9cmV0dXJuITF9KHQsbixvLHIpJiYobj1udWxsKSxyfHxudWxsPT09bz9mdW5jdGlvbihlKXtyZXR1cm4hIXouY2FsbChXLGUpfHwhei5jYWxsKFYsZSkmJihVLnRlc3QoZSk/V1tlXT0hMDooVltlXT0hMCwhMSkpfSh0KSYmKG51bGw9PT1uP2UucmVtb3ZlQXR0cmlidXRlKHQpOmUuc2V0QXR0cmlidXRlKHQsXCJcIituKSk6by5tdXN0VXNlUHJvcGVydHk/ZVtvLnByb3BlcnR5TmFtZV09bnVsbD09PW4/MyE9PW8udHlwZSYmXCJcIjpuOih0PW8uYXR0cmlidXRlTmFtZSxyPW8uYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT1uP2UucmVtb3ZlQXR0cmlidXRlKHQpOihuPTM9PT0obz1vLnR5cGUpfHw0PT09byYmITA9PT1uP1wiXCI6XCJcIituLHI/ZS5zZXRBdHRyaWJ1dGVOUyhyLHQsbik6ZS5zZXRBdHRyaWJ1dGUodCxuKSkpKX0kLmhhc093blByb3BlcnR5KFwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlclwiKXx8KCQuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcj17Y3VycmVudDpudWxsfSksJC5oYXNPd25Qcm9wZXJ0eShcIlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnXCIpfHwoJC5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZz17c3VzcGVuc2U6bnVsbH0pO3ZhciBRPS9eKC4qKVtcXFxcXFwvXS8sSj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yLGVlPUo/U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIik6NjAxMDMsdGU9Sj9TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpOjYwMTA2LG5lPUo/U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpOjYwMTA3LHJlPUo/U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpOjYwMTA4LG9lPUo/U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpOjYwMTE0LGllPUo/U3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpOjYwMTA5LGFlPUo/U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIik6NjAxMTAsc2U9Sj9TeW1ib2wuZm9yKFwicmVhY3QuY29uY3VycmVudF9tb2RlXCIpOjYwMTExLGxlPUo/U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpOjYwMTEyLGNlPUo/U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpOjYwMTEzLHVlPUo/U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIik6NjAxMjAsZGU9Sj9TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKTo2MDExNSxwZT1KP1N5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpOjYwMTE2LGZlPUo/U3ltYm9sLmZvcihcInJlYWN0LmJsb2NrXCIpOjYwMTIxLGhlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBtZShlKXtyZXR1cm4gbnVsbD09PWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZT9udWxsOlwiZnVuY3Rpb25cIj09PXR5cGVvZihlPWhlJiZlW2hlXXx8ZVtcIkBAaXRlcmF0b3JcIl0pP2U6bnVsbH1mdW5jdGlvbiBnZShlKXtpZihudWxsPT1lKXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXJldHVybiBlLmRpc3BsYXlOYW1lfHxlLm5hbWV8fG51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBlKXJldHVybiBlO3N3aXRjaChlKXtjYXNlIG5lOnJldHVyblwiRnJhZ21lbnRcIjtjYXNlIHRlOnJldHVyblwiUG9ydGFsXCI7Y2FzZSBvZTpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSByZTpyZXR1cm5cIlN0cmljdE1vZGVcIjtjYXNlIGNlOnJldHVyblwiU3VzcGVuc2VcIjtjYXNlIHVlOnJldHVyblwiU3VzcGVuc2VMaXN0XCJ9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIGFlOnJldHVyblwiQ29udGV4dC5Db25zdW1lclwiO2Nhc2UgaWU6cmV0dXJuXCJDb250ZXh0LlByb3ZpZGVyXCI7Y2FzZSBsZTp2YXIgdD1lLnJlbmRlcjtyZXR1cm4gdD10LmRpc3BsYXlOYW1lfHx0Lm5hbWV8fFwiXCIsZS5kaXNwbGF5TmFtZXx8KFwiXCIhPT10P1wiRm9yd2FyZFJlZihcIit0K1wiKVwiOlwiRm9yd2FyZFJlZlwiKTtjYXNlIGRlOnJldHVybiBnZShlLnR5cGUpO2Nhc2UgZmU6cmV0dXJuIGdlKGUucmVuZGVyKTtjYXNlIHBlOmlmKGU9MT09PWUuX3N0YXR1cz9lLl9yZXN1bHQ6bnVsbClyZXR1cm4gZ2UoZSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geWUoZSl7dmFyIHQ9XCJcIjtkb3tlOnN3aXRjaChlLnRhZyl7Y2FzZSAzOmNhc2UgNDpjYXNlIDY6Y2FzZSA3OmNhc2UgMTA6Y2FzZSA5OnZhciBuPVwiXCI7YnJlYWsgZTtkZWZhdWx0OnZhciByPWUuX2RlYnVnT3duZXIsbz1lLl9kZWJ1Z1NvdXJjZSxpPWdlKGUudHlwZSk7bj1udWxsLHImJihuPWdlKHIudHlwZSkpLHI9aSxpPVwiXCIsbz9pPVwiIChhdCBcIitvLmZpbGVOYW1lLnJlcGxhY2UoUSxcIlwiKStcIjpcIitvLmxpbmVOdW1iZXIrXCIpXCI6biYmKGk9XCIgKGNyZWF0ZWQgYnkgXCIrbitcIilcIiksbj1cIlxcbiAgICBpbiBcIisocnx8XCJVbmtub3duXCIpK2l9dCs9bixlPWUucmV0dXJufXdoaWxlKGUpO3JldHVybiB0fWZ1bmN0aW9uIHZlKGUpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZVwiYm9vbGVhblwiOmNhc2VcIm51bWJlclwiOmNhc2VcIm9iamVjdFwiOmNhc2VcInN0cmluZ1wiOmNhc2VcInVuZGVmaW5lZFwiOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuXCJcIn19ZnVuY3Rpb24gYmUoZSl7dmFyIHQ9ZS50eXBlO3JldHVybihlPWUubm9kZU5hbWUpJiZcImlucHV0XCI9PT1lLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT10fHxcInJhZGlvXCI9PT10KX1mdW5jdGlvbiBUZShlKXtlLl92YWx1ZVRyYWNrZXJ8fChlLl92YWx1ZVRyYWNrZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9YmUoZSk/XCJjaGVja2VkXCI6XCJ2YWx1ZVwiLG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSx0KSxyPVwiXCIrZVt0XTtpZighZS5oYXNPd25Qcm9wZXJ0eSh0KSYmXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBuJiZcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi5nZXQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBuLnNldCl7dmFyIG89bi5nZXQsaT1uLnNldDtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmNhbGwodGhpcyl9LHNldDpmdW5jdGlvbihlKXtyPVwiXCIrZSxpLmNhbGwodGhpcyxlKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOm4uZW51bWVyYWJsZX0pLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiByfSxzZXRWYWx1ZTpmdW5jdGlvbihlKXtyPVwiXCIrZX0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7ZS5fdmFsdWVUcmFja2VyPW51bGwsZGVsZXRlIGVbdF19fX19KGUpKX1mdW5jdGlvbiB4ZShlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLl92YWx1ZVRyYWNrZXI7aWYoIXQpcmV0dXJuITA7dmFyIG49dC5nZXRWYWx1ZSgpLHI9XCJcIjtyZXR1cm4gZSYmKHI9YmUoZSk/ZS5jaGVja2VkP1widHJ1ZVwiOlwiZmFsc2VcIjplLnZhbHVlKSwoZT1yKSE9PW4mJih0LnNldFZhbHVlKGUpLCEwKX1mdW5jdGlvbiB3ZShlLHQpe3ZhciBuPXQuY2hlY2tlZDtyZXR1cm4gbyh7fSx0LHtkZWZhdWx0Q2hlY2tlZDp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCx2YWx1ZTp2b2lkIDAsY2hlY2tlZDpudWxsIT1uP246ZS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkfSl9ZnVuY3Rpb24ga2UoZSx0KXt2YXIgbj1udWxsPT10LmRlZmF1bHRWYWx1ZT9cIlwiOnQuZGVmYXVsdFZhbHVlLHI9bnVsbCE9dC5jaGVja2VkP3QuY2hlY2tlZDp0LmRlZmF1bHRDaGVja2VkO249dmUobnVsbCE9dC52YWx1ZT90LnZhbHVlOm4pLGUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbENoZWNrZWQ6cixpbml0aWFsVmFsdWU6bixjb250cm9sbGVkOlwiY2hlY2tib3hcIj09PXQudHlwZXx8XCJyYWRpb1wiPT09dC50eXBlP251bGwhPXQuY2hlY2tlZDpudWxsIT10LnZhbHVlfX1mdW5jdGlvbiBFZShlLHQpe251bGwhPSh0PXQuY2hlY2tlZCkmJlgoZSxcImNoZWNrZWRcIix0LCExKX1mdW5jdGlvbiBTZShlLHQpe0VlKGUsdCk7dmFyIG49dmUodC52YWx1ZSkscj10LnR5cGU7aWYobnVsbCE9bilcIm51bWJlclwiPT09cj8oMD09PW4mJlwiXCI9PT1lLnZhbHVlfHxlLnZhbHVlIT1uKSYmKGUudmFsdWU9XCJcIituKTplLnZhbHVlIT09XCJcIituJiYoZS52YWx1ZT1cIlwiK24pO2Vsc2UgaWYoXCJzdWJtaXRcIj09PXJ8fFwicmVzZXRcIj09PXIpcmV0dXJuIHZvaWQgZS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTt0Lmhhc093blByb3BlcnR5KFwidmFsdWVcIik/Q2UoZSx0LnR5cGUsbik6dC5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSYmQ2UoZSx0LnR5cGUsdmUodC5kZWZhdWx0VmFsdWUpKSxudWxsPT10LmNoZWNrZWQmJm51bGwhPXQuZGVmYXVsdENoZWNrZWQmJihlLmRlZmF1bHRDaGVja2VkPSEhdC5kZWZhdWx0Q2hlY2tlZCl9ZnVuY3Rpb24gQWUoZSx0LG4pe2lmKHQuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKXx8dC5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSl7dmFyIHI9dC50eXBlO2lmKCEoXCJzdWJtaXRcIiE9PXImJlwicmVzZXRcIiE9PXJ8fHZvaWQgMCE9PXQudmFsdWUmJm51bGwhPT10LnZhbHVlKSlyZXR1cm47dD1cIlwiK2UuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUsbnx8dD09PWUudmFsdWV8fChlLnZhbHVlPXQpLGUuZGVmYXVsdFZhbHVlPXR9XCJcIiE9PShuPWUubmFtZSkmJihlLm5hbWU9XCJcIiksZS5kZWZhdWx0Q2hlY2tlZD0hIWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCxcIlwiIT09biYmKGUubmFtZT1uKX1mdW5jdGlvbiBDZShlLHQsbil7XCJudW1iZXJcIj09PXQmJmUub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZXx8KG51bGw9PW4/ZS5kZWZhdWx0VmFsdWU9XCJcIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmUuZGVmYXVsdFZhbHVlIT09XCJcIituJiYoZS5kZWZhdWx0VmFsdWU9XCJcIituKSl9ZnVuY3Rpb24gX2UoZSx0KXtyZXR1cm4gZT1vKHtjaGlsZHJlbjp2b2lkIDB9LHQpLCh0PWZ1bmN0aW9uKGUpe3ZhciB0PVwiXCI7cmV0dXJuIHIuQ2hpbGRyZW4uZm9yRWFjaChlLChmdW5jdGlvbihlKXtudWxsIT1lJiYodCs9ZSl9KSksdH0odC5jaGlsZHJlbikpJiYoZS5jaGlsZHJlbj10KSxlfWZ1bmN0aW9uIERlKGUsdCxuLHIpe2lmKGU9ZS5vcHRpb25zLHQpe3Q9e307Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspdFtcIiRcIituW29dXT0hMDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKW89dC5oYXNPd25Qcm9wZXJ0eShcIiRcIitlW25dLnZhbHVlKSxlW25dLnNlbGVjdGVkIT09byYmKGVbbl0uc2VsZWN0ZWQ9byksbyYmciYmKGVbbl0uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2ZvcihuPVwiXCIrdmUobiksdD1udWxsLG89MDtvPGUubGVuZ3RoO28rKyl7aWYoZVtvXS52YWx1ZT09PW4pcmV0dXJuIGVbb10uc2VsZWN0ZWQ9ITAsdm9pZChyJiYoZVtvXS5kZWZhdWx0U2VsZWN0ZWQ9ITApKTtudWxsIT09dHx8ZVtvXS5kaXNhYmxlZHx8KHQ9ZVtvXSl9bnVsbCE9PXQmJih0LnNlbGVjdGVkPSEwKX19ZnVuY3Rpb24gUmUoZSx0KXtpZihudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXRocm93IEVycm9yKGEoOTEpKTtyZXR1cm4gbyh7fSx0LHt2YWx1ZTp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCxjaGlsZHJlbjpcIlwiK2UuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWV9KX1mdW5jdGlvbiBPZShlLHQpe3ZhciBuPXQudmFsdWU7aWYobnVsbD09bil7aWYobj10LmNoaWxkcmVuLHQ9dC5kZWZhdWx0VmFsdWUsbnVsbCE9bil7aWYobnVsbCE9dCl0aHJvdyBFcnJvcihhKDkyKSk7aWYoQXJyYXkuaXNBcnJheShuKSl7aWYoISgxPj1uLmxlbmd0aCkpdGhyb3cgRXJyb3IoYSg5MykpO249blswXX10PW59bnVsbD09dCYmKHQ9XCJcIiksbj10fWUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOnZlKG4pfX1mdW5jdGlvbiBQZShlLHQpe3ZhciBuPXZlKHQudmFsdWUpLHI9dmUodC5kZWZhdWx0VmFsdWUpO251bGwhPW4mJigobj1cIlwiK24pIT09ZS52YWx1ZSYmKGUudmFsdWU9biksbnVsbD09dC5kZWZhdWx0VmFsdWUmJmUuZGVmYXVsdFZhbHVlIT09biYmKGUuZGVmYXVsdFZhbHVlPW4pKSxudWxsIT1yJiYoZS5kZWZhdWx0VmFsdWU9XCJcIityKX1mdW5jdGlvbiBMZShlKXt2YXIgdD1lLnRleHRDb250ZW50O3Q9PT1lLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlJiZcIlwiIT09dCYmbnVsbCE9PXQmJihlLnZhbHVlPXQpfXZhciBOZT1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIixJZT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7ZnVuY3Rpb24gamUoZSl7c3dpdGNoKGUpe2Nhc2VcInN2Z1wiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtjYXNlXCJtYXRoXCI6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI7ZGVmYXVsdDpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIn19ZnVuY3Rpb24gQmUoZSx0KXtyZXR1cm4gbnVsbD09ZXx8XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1lP2plKHQpOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj09PWUmJlwiZm9yZWlnbk9iamVjdFwiPT09dD9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjplfXZhciBIZSxGZSxNZT0oRmU9ZnVuY3Rpb24oZSx0KXtpZihlLm5hbWVzcGFjZVVSSSE9PUllfHxcImlubmVySFRNTFwiaW4gZSllLmlubmVySFRNTD10O2Vsc2V7Zm9yKChIZT1IZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuaW5uZXJIVE1MPVwiPHN2Zz5cIit0LnZhbHVlT2YoKS50b1N0cmluZygpK1wiPC9zdmc+XCIsdD1IZS5maXJzdENoaWxkO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2Zvcig7dC5maXJzdENoaWxkOyllLmFwcGVuZENoaWxkKHQuZmlyc3RDaGlsZCl9fSxcInVuZGVmaW5lZFwiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihlLHQsbixyKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbigoZnVuY3Rpb24oKXtyZXR1cm4gRmUoZSx0KX0pKX06RmUpO2Z1bmN0aW9uIEdlKGUsdCl7aWYodCl7dmFyIG49ZS5maXJzdENoaWxkO2lmKG4mJm49PT1lLmxhc3RDaGlsZCYmMz09PW4ubm9kZVR5cGUpcmV0dXJuIHZvaWQobi5ub2RlVmFsdWU9dCl9ZS50ZXh0Q29udGVudD10fWZ1bmN0aW9uIFVlKGUsdCl7dmFyIG49e307cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksbltcIldlYmtpdFwiK2VdPVwid2Via2l0XCIrdCxuW1wiTW96XCIrZV09XCJtb3pcIit0LG59dmFyIHplPXthbmltYXRpb25lbmQ6VWUoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246VWUoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpVZShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbmVuZDpVZShcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25FbmRcIil9LFZlPXt9LFdlPXt9O2Z1bmN0aW9uIHFlKGUpe2lmKFZlW2VdKXJldHVybiBWZVtlXTtpZighemVbZV0pcmV0dXJuIGU7dmFyIHQsbj16ZVtlXTtmb3IodCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodCkmJnQgaW4gV2UpcmV0dXJuIFZlW2VdPW5bdF07cmV0dXJuIGV9QyYmKFdlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuc3R5bGUsXCJBbmltYXRpb25FdmVudFwiaW4gd2luZG93fHwoZGVsZXRlIHplLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIHplLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIHplLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksXCJUcmFuc2l0aW9uRXZlbnRcImluIHdpbmRvd3x8ZGVsZXRlIHplLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7dmFyIEtlPXFlKFwiYW5pbWF0aW9uZW5kXCIpLFplPXFlKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLFllPXFlKFwiYW5pbWF0aW9uc3RhcnRcIiksJGU9cWUoXCJ0cmFuc2l0aW9uZW5kXCIpLFhlPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZ1wiLnNwbGl0KFwiIFwiKSxRZT1uZXcoXCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXApO2Z1bmN0aW9uIEplKGUpe3ZhciB0PVFlLmdldChlKTtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9bmV3IE1hcCxRZS5zZXQoZSx0KSksdH1mdW5jdGlvbiBldChlKXt2YXIgdD1lLG49ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7ZT10O2RvezAhPT0oMTAyNiYodD1lKS5lZmZlY3RUYWcpJiYobj10LnJldHVybiksZT10LnJldHVybn13aGlsZShlKX1yZXR1cm4gMz09PXQudGFnP246bnVsbH1mdW5jdGlvbiB0dChlKXtpZigxMz09PWUudGFnKXt2YXIgdD1lLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PXQmJihudWxsIT09KGU9ZS5hbHRlcm5hdGUpJiYodD1lLm1lbW9pemVkU3RhdGUpKSxudWxsIT09dClyZXR1cm4gdC5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIG50KGUpe2lmKGV0KGUpIT09ZSl0aHJvdyBFcnJvcihhKDE4OCkpfWZ1bmN0aW9uIHJ0KGUpe2lmKGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYoIXQpe2lmKG51bGw9PT0odD1ldChlKSkpdGhyb3cgRXJyb3IoYSgxODgpKTtyZXR1cm4gdCE9PWU/bnVsbDplfWZvcih2YXIgbj1lLHI9dDs7KXt2YXIgbz1uLnJldHVybjtpZihudWxsPT09bylicmVhazt2YXIgaT1vLmFsdGVybmF0ZTtpZihudWxsPT09aSl7aWYobnVsbCE9PShyPW8ucmV0dXJuKSl7bj1yO2NvbnRpbnVlfWJyZWFrfWlmKG8uY2hpbGQ9PT1pLmNoaWxkKXtmb3IoaT1vLmNoaWxkO2k7KXtpZihpPT09bilyZXR1cm4gbnQobyksZTtpZihpPT09cilyZXR1cm4gbnQobyksdDtpPWkuc2libGluZ310aHJvdyBFcnJvcihhKDE4OCkpfWlmKG4ucmV0dXJuIT09ci5yZXR1cm4pbj1vLHI9aTtlbHNle2Zvcih2YXIgcz0hMSxsPW8uY2hpbGQ7bDspe2lmKGw9PT1uKXtzPSEwLG49byxyPWk7YnJlYWt9aWYobD09PXIpe3M9ITAscj1vLG49aTticmVha31sPWwuc2libGluZ31pZighcyl7Zm9yKGw9aS5jaGlsZDtsOyl7aWYobD09PW4pe3M9ITAsbj1pLHI9bzticmVha31pZihsPT09cil7cz0hMCxyPWksbj1vO2JyZWFrfWw9bC5zaWJsaW5nfWlmKCFzKXRocm93IEVycm9yKGEoMTg5KSl9fWlmKG4uYWx0ZXJuYXRlIT09cil0aHJvdyBFcnJvcihhKDE5MCkpfWlmKDMhPT1uLnRhZyl0aHJvdyBFcnJvcihhKDE4OCkpO3JldHVybiBuLnN0YXRlTm9kZS5jdXJyZW50PT09bj9lOnR9KGUpLCFlKXJldHVybiBudWxsO2Zvcih2YXIgdD1lOzspe2lmKDU9PT10LnRhZ3x8Nj09PXQudGFnKXJldHVybiB0O2lmKHQuY2hpbGQpdC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGQ7ZWxzZXtpZih0PT09ZSlicmVhaztmb3IoOyF0LnNpYmxpbmc7KXtpZighdC5yZXR1cm58fHQucmV0dXJuPT09ZSlyZXR1cm4gbnVsbDt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9fXJldHVybiBudWxsfWZ1bmN0aW9uIG90KGUsdCl7aWYobnVsbD09dCl0aHJvdyBFcnJvcihhKDMwKSk7cmV0dXJuIG51bGw9PWU/dDpBcnJheS5pc0FycmF5KGUpP0FycmF5LmlzQXJyYXkodCk/KGUucHVzaC5hcHBseShlLHQpLGUpOihlLnB1c2godCksZSk6QXJyYXkuaXNBcnJheSh0KT9bZV0uY29uY2F0KHQpOltlLHRdfWZ1bmN0aW9uIGl0KGUsdCxuKXtBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCh0LG4pOmUmJnQuY2FsbChuLGUpfXZhciBhdD1udWxsO2Z1bmN0aW9uIHN0KGUpe2lmKGUpe3ZhciB0PWUuX2Rpc3BhdGNoTGlzdGVuZXJzLG49ZS5fZGlzcGF0Y2hJbnN0YW5jZXM7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpO3IrKyl5KGUsdFtyXSxuW3JdKTtlbHNlIHQmJnkoZSx0LG4pO2UuX2Rpc3BhdGNoTGlzdGVuZXJzPW51bGwsZS5fZGlzcGF0Y2hJbnN0YW5jZXM9bnVsbCxlLmlzUGVyc2lzdGVudCgpfHxlLmNvbnN0cnVjdG9yLnJlbGVhc2UoZSl9fWZ1bmN0aW9uIGx0KGUpe2lmKG51bGwhPT1lJiYoYXQ9b3QoYXQsZSkpLGU9YXQsYXQ9bnVsbCxlKXtpZihpdChlLHN0KSxhdCl0aHJvdyBFcnJvcihhKDk1KSk7aWYodSl0aHJvdyBlPWQsdT0hMSxkPW51bGwsZX19ZnVuY3Rpb24gY3QoZSl7cmV0dXJuKGU9ZS50YXJnZXR8fGUuc3JjRWxlbWVudHx8d2luZG93KS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGU9ZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksMz09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmV9ZnVuY3Rpb24gdXQoZSl7aWYoIUMpcmV0dXJuITE7dmFyIHQ9KGU9XCJvblwiK2UpaW4gZG9jdW1lbnQ7cmV0dXJuIHR8fCgodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5zZXRBdHRyaWJ1dGUoZSxcInJldHVybjtcIiksdD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgdFtlXSksdH12YXIgZHQ9W107ZnVuY3Rpb24gcHQoZSl7ZS50b3BMZXZlbFR5cGU9bnVsbCxlLm5hdGl2ZUV2ZW50PW51bGwsZS50YXJnZXRJbnN0PW51bGwsZS5hbmNlc3RvcnMubGVuZ3RoPTAsMTA+ZHQubGVuZ3RoJiZkdC5wdXNoKGUpfWZ1bmN0aW9uIGZ0KGUsdCxuLHIpe2lmKGR0Lmxlbmd0aCl7dmFyIG89ZHQucG9wKCk7cmV0dXJuIG8udG9wTGV2ZWxUeXBlPWUsby5ldmVudFN5c3RlbUZsYWdzPXIsby5uYXRpdmVFdmVudD10LG8udGFyZ2V0SW5zdD1uLG99cmV0dXJue3RvcExldmVsVHlwZTplLGV2ZW50U3lzdGVtRmxhZ3M6cixuYXRpdmVFdmVudDp0LHRhcmdldEluc3Q6bixhbmNlc3RvcnM6W119fWZ1bmN0aW9uIGh0KGUpe3ZhciB0PWUudGFyZ2V0SW5zdCxuPXQ7ZG97aWYoIW4pe2UuYW5jZXN0b3JzLnB1c2gobik7YnJlYWt9dmFyIHI9bjtpZigzPT09ci50YWcpcj1yLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2Vsc2V7Zm9yKDtyLnJldHVybjspcj1yLnJldHVybjtyPTMhPT1yLnRhZz9udWxsOnIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm99aWYoIXIpYnJlYWs7NSE9PSh0PW4udGFnKSYmNiE9PXR8fGUuYW5jZXN0b3JzLnB1c2gobiksbj1MbihyKX13aGlsZShuKTtmb3Iobj0wO248ZS5hbmNlc3RvcnMubGVuZ3RoO24rKyl7dD1lLmFuY2VzdG9yc1tuXTt2YXIgbz1jdChlLm5hdGl2ZUV2ZW50KTtyPWUudG9wTGV2ZWxUeXBlO3ZhciBpPWUubmF0aXZlRXZlbnQsYT1lLmV2ZW50U3lzdGVtRmxhZ3M7MD09PW4mJihhfD02NCk7Zm9yKHZhciBzPW51bGwsbD0wO2w8dy5sZW5ndGg7bCsrKXt2YXIgYz13W2xdO2MmJihjPWMuZXh0cmFjdEV2ZW50cyhyLHQsaSxvLGEpKSYmKHM9b3QocyxjKSl9bHQocyl9fWZ1bmN0aW9uIG10KGUsdCxuKXtpZighbi5oYXMoZSkpe3N3aXRjaChlKXtjYXNlXCJzY3JvbGxcIjpZdCh0LFwic2Nyb2xsXCIsITApO2JyZWFrO2Nhc2VcImZvY3VzXCI6Y2FzZVwiYmx1clwiOll0KHQsXCJmb2N1c1wiLCEwKSxZdCh0LFwiYmx1clwiLCEwKSxuLnNldChcImJsdXJcIixudWxsKSxuLnNldChcImZvY3VzXCIsbnVsbCk7YnJlYWs7Y2FzZVwiY2FuY2VsXCI6Y2FzZVwiY2xvc2VcIjp1dChlKSYmWXQodCxlLCEwKTticmVhaztjYXNlXCJpbnZhbGlkXCI6Y2FzZVwic3VibWl0XCI6Y2FzZVwicmVzZXRcIjpicmVhaztkZWZhdWx0Oi0xPT09WGUuaW5kZXhPZihlKSYmWnQoZSx0KX1uLnNldChlLG51bGwpfX12YXIgZ3QseXQsdnQsYnQ9ITEsVHQ9W10seHQ9bnVsbCx3dD1udWxsLGt0PW51bGwsRXQ9bmV3IE1hcCxTdD1uZXcgTWFwLEF0PVtdLEN0PVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY2xvc2UgY2FuY2VsIGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCBzdWJtaXRcIi5zcGxpdChcIiBcIiksX3Q9XCJmb2N1cyBibHVyIGRyYWdlbnRlciBkcmFnbGVhdmUgbW91c2VvdmVyIG1vdXNlb3V0IHBvaW50ZXJvdmVyIHBvaW50ZXJvdXQgZ290cG9pbnRlcmNhcHR1cmUgbG9zdHBvaW50ZXJjYXB0dXJlXCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIER0KGUsdCxuLHIsbyl7cmV0dXJue2Jsb2NrZWRPbjplLHRvcExldmVsVHlwZTp0LGV2ZW50U3lzdGVtRmxhZ3M6MzJ8bixuYXRpdmVFdmVudDpvLGNvbnRhaW5lcjpyfX1mdW5jdGlvbiBSdChlLHQpe3N3aXRjaChlKXtjYXNlXCJmb2N1c1wiOmNhc2VcImJsdXJcIjp4dD1udWxsO2JyZWFrO2Nhc2VcImRyYWdlbnRlclwiOmNhc2VcImRyYWdsZWF2ZVwiOnd0PW51bGw7YnJlYWs7Y2FzZVwibW91c2VvdmVyXCI6Y2FzZVwibW91c2VvdXRcIjprdD1udWxsO2JyZWFrO2Nhc2VcInBvaW50ZXJvdmVyXCI6Y2FzZVwicG9pbnRlcm91dFwiOkV0LmRlbGV0ZSh0LnBvaW50ZXJJZCk7YnJlYWs7Y2FzZVwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpTdC5kZWxldGUodC5wb2ludGVySWQpfX1mdW5jdGlvbiBPdChlLHQsbixyLG8saSl7cmV0dXJuIG51bGw9PT1lfHxlLm5hdGl2ZUV2ZW50IT09aT8oZT1EdCh0LG4scixvLGkpLG51bGwhPT10JiYobnVsbCE9PSh0PU5uKHQpKSYmeXQodCkpLGUpOihlLmV2ZW50U3lzdGVtRmxhZ3N8PXIsZSl9ZnVuY3Rpb24gUHQoZSl7dmFyIHQ9TG4oZS50YXJnZXQpO2lmKG51bGwhPT10KXt2YXIgbj1ldCh0KTtpZihudWxsIT09bilpZigxMz09PSh0PW4udGFnKSl7aWYobnVsbCE9PSh0PXR0KG4pKSlyZXR1cm4gZS5ibG9ja2VkT249dCx2b2lkIGkudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5KGUucHJpb3JpdHksKGZ1bmN0aW9uKCl7dnQobil9KSl9ZWxzZSBpZigzPT09dCYmbi5zdGF0ZU5vZGUuaHlkcmF0ZSlyZXR1cm4gdm9pZChlLmJsb2NrZWRPbj0zPT09bi50YWc/bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsKX1lLmJsb2NrZWRPbj1udWxsfWZ1bmN0aW9uIEx0KGUpe2lmKG51bGwhPT1lLmJsb2NrZWRPbilyZXR1cm4hMTt2YXIgdD1KdChlLnRvcExldmVsVHlwZSxlLmV2ZW50U3lzdGVtRmxhZ3MsZS5jb250YWluZXIsZS5uYXRpdmVFdmVudCk7aWYobnVsbCE9PXQpe3ZhciBuPU5uKHQpO3JldHVybiBudWxsIT09biYmeXQobiksZS5ibG9ja2VkT249dCwhMX1yZXR1cm4hMH1mdW5jdGlvbiBOdChlLHQsbil7THQoZSkmJm4uZGVsZXRlKHQpfWZ1bmN0aW9uIEl0KCl7Zm9yKGJ0PSExOzA8VHQubGVuZ3RoOyl7dmFyIGU9VHRbMF07aWYobnVsbCE9PWUuYmxvY2tlZE9uKXtudWxsIT09KGU9Tm4oZS5ibG9ja2VkT24pKSYmZ3QoZSk7YnJlYWt9dmFyIHQ9SnQoZS50b3BMZXZlbFR5cGUsZS5ldmVudFN5c3RlbUZsYWdzLGUuY29udGFpbmVyLGUubmF0aXZlRXZlbnQpO251bGwhPT10P2UuYmxvY2tlZE9uPXQ6VHQuc2hpZnQoKX1udWxsIT09eHQmJkx0KHh0KSYmKHh0PW51bGwpLG51bGwhPT13dCYmTHQod3QpJiYod3Q9bnVsbCksbnVsbCE9PWt0JiZMdChrdCkmJihrdD1udWxsKSxFdC5mb3JFYWNoKE50KSxTdC5mb3JFYWNoKE50KX1mdW5jdGlvbiBqdChlLHQpe2UuYmxvY2tlZE9uPT09dCYmKGUuYmxvY2tlZE9uPW51bGwsYnR8fChidD0hMCxpLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soaS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxJdCkpKX1mdW5jdGlvbiBCdChlKXtmdW5jdGlvbiB0KHQpe3JldHVybiBqdCh0LGUpfWlmKDA8VHQubGVuZ3RoKXtqdChUdFswXSxlKTtmb3IodmFyIG49MTtuPFR0Lmxlbmd0aDtuKyspe3ZhciByPVR0W25dO3IuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpfX1mb3IobnVsbCE9PXh0JiZqdCh4dCxlKSxudWxsIT09d3QmJmp0KHd0LGUpLG51bGwhPT1rdCYmanQoa3QsZSksRXQuZm9yRWFjaCh0KSxTdC5mb3JFYWNoKHQpLG49MDtuPEF0Lmxlbmd0aDtuKyspKHI9QXRbbl0pLmJsb2NrZWRPbj09PWUmJihyLmJsb2NrZWRPbj1udWxsKTtmb3IoOzA8QXQubGVuZ3RoJiZudWxsPT09KG49QXRbMF0pLmJsb2NrZWRPbjspUHQobiksbnVsbD09PW4uYmxvY2tlZE9uJiZBdC5zaGlmdCgpfXZhciBIdD17fSxGdD1uZXcgTWFwLE10PW5ldyBNYXAsR3Q9W1wiYWJvcnRcIixcImFib3J0XCIsS2UsXCJhbmltYXRpb25FbmRcIixaZSxcImFuaW1hdGlvbkl0ZXJhdGlvblwiLFllLFwiYW5pbWF0aW9uU3RhcnRcIixcImNhbnBsYXlcIixcImNhblBsYXlcIixcImNhbnBsYXl0aHJvdWdoXCIsXCJjYW5QbGF5VGhyb3VnaFwiLFwiZHVyYXRpb25jaGFuZ2VcIixcImR1cmF0aW9uQ2hhbmdlXCIsXCJlbXB0aWVkXCIsXCJlbXB0aWVkXCIsXCJlbmNyeXB0ZWRcIixcImVuY3J5cHRlZFwiLFwiZW5kZWRcIixcImVuZGVkXCIsXCJlcnJvclwiLFwiZXJyb3JcIixcImdvdHBvaW50ZXJjYXB0dXJlXCIsXCJnb3RQb2ludGVyQ2FwdHVyZVwiLFwibG9hZFwiLFwibG9hZFwiLFwibG9hZGVkZGF0YVwiLFwibG9hZGVkRGF0YVwiLFwibG9hZGVkbWV0YWRhdGFcIixcImxvYWRlZE1ldGFkYXRhXCIsXCJsb2Fkc3RhcnRcIixcImxvYWRTdGFydFwiLFwibG9zdHBvaW50ZXJjYXB0dXJlXCIsXCJsb3N0UG9pbnRlckNhcHR1cmVcIixcInBsYXlpbmdcIixcInBsYXlpbmdcIixcInByb2dyZXNzXCIsXCJwcm9ncmVzc1wiLFwic2Vla2luZ1wiLFwic2Vla2luZ1wiLFwic3RhbGxlZFwiLFwic3RhbGxlZFwiLFwic3VzcGVuZFwiLFwic3VzcGVuZFwiLFwidGltZXVwZGF0ZVwiLFwidGltZVVwZGF0ZVwiLCRlLFwidHJhbnNpdGlvbkVuZFwiLFwid2FpdGluZ1wiLFwid2FpdGluZ1wiXTtmdW5jdGlvbiBVdChlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bis9Mil7dmFyIHI9ZVtuXSxvPWVbbisxXSxpPVwib25cIisob1swXS50b1VwcGVyQ2FzZSgpK28uc2xpY2UoMSkpO2k9e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOmksY2FwdHVyZWQ6aStcIkNhcHR1cmVcIn0sZGVwZW5kZW5jaWVzOltyXSxldmVudFByaW9yaXR5OnR9LE10LnNldChyLHQpLEZ0LnNldChyLGkpLEh0W29dPWl9fVV0KFwiYmx1ciBibHVyIGNhbmNlbCBjYW5jZWwgY2xpY2sgY2xpY2sgY2xvc2UgY2xvc2UgY29udGV4dG1lbnUgY29udGV4dE1lbnUgY29weSBjb3B5IGN1dCBjdXQgYXV4Y2xpY2sgYXV4Q2xpY2sgZGJsY2xpY2sgZG91YmxlQ2xpY2sgZHJhZ2VuZCBkcmFnRW5kIGRyYWdzdGFydCBkcmFnU3RhcnQgZHJvcCBkcm9wIGZvY3VzIGZvY3VzIGlucHV0IGlucHV0IGludmFsaWQgaW52YWxpZCBrZXlkb3duIGtleURvd24ga2V5cHJlc3Mga2V5UHJlc3Mga2V5dXAga2V5VXAgbW91c2Vkb3duIG1vdXNlRG93biBtb3VzZXVwIG1vdXNlVXAgcGFzdGUgcGFzdGUgcGF1c2UgcGF1c2UgcGxheSBwbGF5IHBvaW50ZXJjYW5jZWwgcG9pbnRlckNhbmNlbCBwb2ludGVyZG93biBwb2ludGVyRG93biBwb2ludGVydXAgcG9pbnRlclVwIHJhdGVjaGFuZ2UgcmF0ZUNoYW5nZSByZXNldCByZXNldCBzZWVrZWQgc2Vla2VkIHN1Ym1pdCBzdWJtaXQgdG91Y2hjYW5jZWwgdG91Y2hDYW5jZWwgdG91Y2hlbmQgdG91Y2hFbmQgdG91Y2hzdGFydCB0b3VjaFN0YXJ0IHZvbHVtZWNoYW5nZSB2b2x1bWVDaGFuZ2VcIi5zcGxpdChcIiBcIiksMCksVXQoXCJkcmFnIGRyYWcgZHJhZ2VudGVyIGRyYWdFbnRlciBkcmFnZXhpdCBkcmFnRXhpdCBkcmFnbGVhdmUgZHJhZ0xlYXZlIGRyYWdvdmVyIGRyYWdPdmVyIG1vdXNlbW92ZSBtb3VzZU1vdmUgbW91c2VvdXQgbW91c2VPdXQgbW91c2VvdmVyIG1vdXNlT3ZlciBwb2ludGVybW92ZSBwb2ludGVyTW92ZSBwb2ludGVyb3V0IHBvaW50ZXJPdXQgcG9pbnRlcm92ZXIgcG9pbnRlck92ZXIgc2Nyb2xsIHNjcm9sbCB0b2dnbGUgdG9nZ2xlIHRvdWNobW92ZSB0b3VjaE1vdmUgd2hlZWwgd2hlZWxcIi5zcGxpdChcIiBcIiksMSksVXQoR3QsMik7Zm9yKHZhciB6dD1cImNoYW5nZSBzZWxlY3Rpb25jaGFuZ2UgdGV4dElucHV0IGNvbXBvc2l0aW9uc3RhcnQgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb251cGRhdGVcIi5zcGxpdChcIiBcIiksVnQ9MDtWdDx6dC5sZW5ndGg7VnQrKylNdC5zZXQoenRbVnRdLDApO3ZhciBXdD1pLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LHF0PWkudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5LEt0PSEwO2Z1bmN0aW9uIFp0KGUsdCl7WXQodCxlLCExKX1mdW5jdGlvbiBZdChlLHQsbil7dmFyIHI9TXQuZ2V0KHQpO3N3aXRjaCh2b2lkIDA9PT1yPzI6cil7Y2FzZSAwOnI9JHQuYmluZChudWxsLHQsMSxlKTticmVhaztjYXNlIDE6cj1YdC5iaW5kKG51bGwsdCwxLGUpO2JyZWFrO2RlZmF1bHQ6cj1RdC5iaW5kKG51bGwsdCwxLGUpfW4/ZS5hZGRFdmVudExpc3RlbmVyKHQsciwhMCk6ZS5hZGRFdmVudExpc3RlbmVyKHQsciwhMSl9ZnVuY3Rpb24gJHQoZSx0LG4scil7SHx8aigpO3ZhciBvPVF0LGk9SDtIPSEwO3RyeXtJKG8sZSx0LG4scil9ZmluYWxseXsoSD1pKXx8TSgpfX1mdW5jdGlvbiBYdChlLHQsbixyKXtxdChXdCxRdC5iaW5kKG51bGwsZSx0LG4scikpfWZ1bmN0aW9uIFF0KGUsdCxuLHIpe2lmKEt0KWlmKDA8VHQubGVuZ3RoJiYtMTxDdC5pbmRleE9mKGUpKWU9RHQobnVsbCxlLHQsbixyKSxUdC5wdXNoKGUpO2Vsc2V7dmFyIG89SnQoZSx0LG4scik7aWYobnVsbD09PW8pUnQoZSxyKTtlbHNlIGlmKC0xPEN0LmluZGV4T2YoZSkpZT1EdChvLGUsdCxuLHIpLFR0LnB1c2goZSk7ZWxzZSBpZighZnVuY3Rpb24oZSx0LG4scixvKXtzd2l0Y2godCl7Y2FzZVwiZm9jdXNcIjpyZXR1cm4geHQ9T3QoeHQsZSx0LG4scixvKSwhMDtjYXNlXCJkcmFnZW50ZXJcIjpyZXR1cm4gd3Q9T3Qod3QsZSx0LG4scixvKSwhMDtjYXNlXCJtb3VzZW92ZXJcIjpyZXR1cm4ga3Q9T3Qoa3QsZSx0LG4scixvKSwhMDtjYXNlXCJwb2ludGVyb3ZlclwiOnZhciBpPW8ucG9pbnRlcklkO3JldHVybiBFdC5zZXQoaSxPdChFdC5nZXQoaSl8fG51bGwsZSx0LG4scixvKSksITA7Y2FzZVwiZ290cG9pbnRlcmNhcHR1cmVcIjpyZXR1cm4gaT1vLnBvaW50ZXJJZCxTdC5zZXQoaSxPdChTdC5nZXQoaSl8fG51bGwsZSx0LG4scixvKSksITB9cmV0dXJuITF9KG8sZSx0LG4scikpe1J0KGUsciksZT1mdChlLHIsbnVsbCx0KTt0cnl7RyhodCxlKX1maW5hbGx5e3B0KGUpfX19fWZ1bmN0aW9uIEp0KGUsdCxuLHIpe2lmKG51bGwhPT0obj1MbihuPWN0KHIpKSkpe3ZhciBvPWV0KG4pO2lmKG51bGw9PT1vKW49bnVsbDtlbHNle3ZhciBpPW8udGFnO2lmKDEzPT09aSl7aWYobnVsbCE9PShuPXR0KG8pKSlyZXR1cm4gbjtuPW51bGx9ZWxzZSBpZigzPT09aSl7aWYoby5zdGF0ZU5vZGUuaHlkcmF0ZSlyZXR1cm4gMz09PW8udGFnP28uc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtuPW51bGx9ZWxzZSBvIT09biYmKG49bnVsbCl9fWU9ZnQoZSxyLG4sdCk7dHJ5e0coaHQsZSl9ZmluYWxseXtwdChlKX1yZXR1cm4gbnVsbH12YXIgZW49e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGJvcmRlckltYWdlT3V0c2V0OiEwLGJvcmRlckltYWdlU2xpY2U6ITAsYm9yZGVySW1hZ2VXaWR0aDohMCxib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxib3hPcmRpbmFsR3JvdXA6ITAsY29sdW1uQ291bnQ6ITAsY29sdW1uczohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3NpdGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3JkZXI6ITAsZ3JpZEFyZWE6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTcGFuOiEwLGdyaWRSb3dTdGFydDohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblNwYW46ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHRuPVtcIldlYmtpdFwiLFwibXNcIixcIk1velwiLFwiT1wiXTtmdW5jdGlvbiBubihlLHQsbil7cmV0dXJuIG51bGw9PXR8fFwiYm9vbGVhblwiPT09dHlwZW9mIHR8fFwiXCI9PT10P1wiXCI6bnx8XCJudW1iZXJcIiE9PXR5cGVvZiB0fHwwPT09dHx8ZW4uaGFzT3duUHJvcGVydHkoZSkmJmVuW2VdPyhcIlwiK3QpLnRyaW0oKTp0K1wicHhcIn1mdW5jdGlvbiBybihlLHQpe2Zvcih2YXIgbiBpbiBlPWUuc3R5bGUsdClpZih0Lmhhc093blByb3BlcnR5KG4pKXt2YXIgcj0wPT09bi5pbmRleE9mKFwiLS1cIiksbz1ubihuLHRbbl0scik7XCJmbG9hdFwiPT09biYmKG49XCJjc3NGbG9hdFwiKSxyP2Uuc2V0UHJvcGVydHkobixvKTplW25dPW99fU9iamVjdC5rZXlzKGVuKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0bi5mb3JFYWNoKChmdW5jdGlvbih0KXt0PXQrZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cmluZygxKSxlblt0XT1lbltlXX0pKX0pKTt2YXIgb249byh7bWVudWl0ZW06ITB9LHthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGVtYmVkOiEwLGhyOiEwLGltZzohMCxpbnB1dDohMCxrZXlnZW46ITAsbGluazohMCxtZXRhOiEwLHBhcmFtOiEwLHNvdXJjZTohMCx0cmFjazohMCx3YnI6ITB9KTtmdW5jdGlvbiBhbihlLHQpe2lmKHQpe2lmKG9uW2VdJiYobnVsbCE9dC5jaGlsZHJlbnx8bnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IoYSgxMzcsZSxcIlwiKSk7aWYobnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTCl7aWYobnVsbCE9dC5jaGlsZHJlbil0aHJvdyBFcnJvcihhKDYwKSk7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfHwhKFwiX19odG1sXCJpbiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihhKDYxKSl9aWYobnVsbCE9dC5zdHlsZSYmXCJvYmplY3RcIiE9PXR5cGVvZiB0LnN0eWxlKXRocm93IEVycm9yKGEoNjIsXCJcIikpfX1mdW5jdGlvbiBzbihlLHQpe2lmKC0xPT09ZS5pbmRleE9mKFwiLVwiKSlyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIHQuaXM7c3dpdGNoKGUpe2Nhc2VcImFubm90YXRpb24teG1sXCI6Y2FzZVwiY29sb3ItcHJvZmlsZVwiOmNhc2VcImZvbnQtZmFjZVwiOmNhc2VcImZvbnQtZmFjZS1zcmNcIjpjYXNlXCJmb250LWZhY2UtdXJpXCI6Y2FzZVwiZm9udC1mYWNlLWZvcm1hdFwiOmNhc2VcImZvbnQtZmFjZS1uYW1lXCI6Y2FzZVwibWlzc2luZy1nbHlwaFwiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciBsbj1OZTtmdW5jdGlvbiBjbihlLHQpe3ZhciBuPUplKGU9OT09PWUubm9kZVR5cGV8fDExPT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudCk7dD1TW3RdO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKW10KHRbcl0sZSxuKX1mdW5jdGlvbiB1bigpe31mdW5jdGlvbiBkbihlKXtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mKGU9ZXx8KFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaCh0KXtyZXR1cm4gZS5ib2R5fX1mdW5jdGlvbiBwbihlKXtmb3IoO2UmJmUuZmlyc3RDaGlsZDspZT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGV9ZnVuY3Rpb24gZm4oZSx0KXt2YXIgbixyPXBuKGUpO2ZvcihlPTA7cjspe2lmKDM9PT1yLm5vZGVUeXBlKXtpZihuPWUrci50ZXh0Q29udGVudC5sZW5ndGgsZTw9dCYmbj49dClyZXR1cm57bm9kZTpyLG9mZnNldDp0LWV9O2U9bn1lOntmb3IoO3I7KXtpZihyLm5leHRTaWJsaW5nKXtyPXIubmV4dFNpYmxpbmc7YnJlYWsgZX1yPXIucGFyZW50Tm9kZX1yPXZvaWQgMH1yPXBuKHIpfX1mdW5jdGlvbiBobihlLHQpe3JldHVybiEoIWV8fCF0KSYmKGU9PT10fHwoIWV8fDMhPT1lLm5vZGVUeXBlKSYmKHQmJjM9PT10Lm5vZGVUeXBlP2huKGUsdC5wYXJlbnROb2RlKTpcImNvbnRhaW5zXCJpbiBlP2UuY29udGFpbnModCk6ISFlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYhISgxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpKSkpfWZ1bmN0aW9uIG1uKCl7Zm9yKHZhciBlPXdpbmRvdyx0PWRuKCk7dCBpbnN0YW5jZW9mIGUuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIG49XCJzdHJpbmdcIj09PXR5cGVvZiB0LmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZn1jYXRjaChyKXtuPSExfWlmKCFuKWJyZWFrO3Q9ZG4oKGU9dC5jb250ZW50V2luZG93KS5kb2N1bWVudCl9cmV0dXJuIHR9ZnVuY3Rpb24gZ24oZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYoXCJpbnB1dFwiPT09dCYmKFwidGV4dFwiPT09ZS50eXBlfHxcInNlYXJjaFwiPT09ZS50eXBlfHxcInRlbFwiPT09ZS50eXBlfHxcInVybFwiPT09ZS50eXBlfHxcInBhc3N3b3JkXCI9PT1lLnR5cGUpfHxcInRleHRhcmVhXCI9PT10fHxcInRydWVcIj09PWUuY29udGVudEVkaXRhYmxlKX12YXIgeW49XCIkXCIsdm49XCIvJFwiLGJuPVwiJD9cIixUbj1cIiQhXCIseG49bnVsbCx3bj1udWxsO2Z1bmN0aW9uIGtuKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjpyZXR1cm4hIXQuYXV0b0ZvY3VzfXJldHVybiExfWZ1bmN0aW9uIEVuKGUsdCl7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09ZXx8XCJvcHRpb25cIj09PWV8fFwibm9zY3JpcHRcIj09PWV8fFwic3RyaW5nXCI9PT10eXBlb2YgdC5jaGlsZHJlbnx8XCJudW1iZXJcIj09PXR5cGVvZiB0LmNoaWxkcmVufHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgU249XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDp2b2lkIDAsQW49XCJmdW5jdGlvblwiPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwO2Z1bmN0aW9uIENuKGUpe2Zvcig7bnVsbCE9ZTtlPWUubmV4dFNpYmxpbmcpe3ZhciB0PWUubm9kZVR5cGU7aWYoMT09PXR8fDM9PT10KWJyZWFrfXJldHVybiBlfWZ1bmN0aW9uIF9uKGUpe2U9ZS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciB0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYobj09PXlufHxuPT09VG58fG49PT1ibil7aWYoMD09PXQpcmV0dXJuIGU7dC0tfWVsc2Ugbj09PXZuJiZ0Kyt9ZT1lLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgRG49TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksUm49XCJfX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSRcIitEbixPbj1cIl9fcmVhY3RFdmVudEhhbmRsZXJzJFwiK0RuLFBuPVwiX19yZWFjdENvbnRhaW5lcmUkXCIrRG47ZnVuY3Rpb24gTG4oZSl7dmFyIHQ9ZVtSbl07aWYodClyZXR1cm4gdDtmb3IodmFyIG49ZS5wYXJlbnROb2RlO247KXtpZih0PW5bUG5dfHxuW1JuXSl7aWYobj10LmFsdGVybmF0ZSxudWxsIT09dC5jaGlsZHx8bnVsbCE9PW4mJm51bGwhPT1uLmNoaWxkKWZvcihlPV9uKGUpO251bGwhPT1lOyl7aWYobj1lW1JuXSlyZXR1cm4gbjtlPV9uKGUpfXJldHVybiB0fW49KGU9bikucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBObihlKXtyZXR1cm4hKGU9ZVtSbl18fGVbUG5dKXx8NSE9PWUudGFnJiY2IT09ZS50YWcmJjEzIT09ZS50YWcmJjMhPT1lLnRhZz9udWxsOmV9ZnVuY3Rpb24gSW4oZSl7aWYoNT09PWUudGFnfHw2PT09ZS50YWcpcmV0dXJuIGUuc3RhdGVOb2RlO3Rocm93IEVycm9yKGEoMzMpKX1mdW5jdGlvbiBqbihlKXtyZXR1cm4gZVtPbl18fG51bGx9ZnVuY3Rpb24gQm4oZSl7ZG97ZT1lLnJldHVybn13aGlsZShlJiY1IT09ZS50YWcpO3JldHVybiBlfHxudWxsfWZ1bmN0aW9uIEhuKGUsdCl7dmFyIG49ZS5zdGF0ZU5vZGU7aWYoIW4pcmV0dXJuIG51bGw7dmFyIHI9aChuKTtpZighcilyZXR1cm4gbnVsbDtuPXJbdF07ZTpzd2l0Y2godCl7Y2FzZVwib25DbGlja1wiOmNhc2VcIm9uQ2xpY2tDYXB0dXJlXCI6Y2FzZVwib25Eb3VibGVDbGlja1wiOmNhc2VcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6Y2FzZVwib25Nb3VzZURvd25cIjpjYXNlXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlXCJvbk1vdXNlTW92ZVwiOmNhc2VcIm9uTW91c2VNb3ZlQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VVcFwiOmNhc2VcIm9uTW91c2VVcENhcHR1cmVcIjpjYXNlXCJvbk1vdXNlRW50ZXJcIjoocj0hci5kaXNhYmxlZCl8fChyPSEoXCJidXR0b25cIj09PShlPWUudHlwZSl8fFwiaW5wdXRcIj09PWV8fFwic2VsZWN0XCI9PT1lfHxcInRleHRhcmVhXCI9PT1lKSksZT0hcjticmVhayBlO2RlZmF1bHQ6ZT0hMX1pZihlKXJldHVybiBudWxsO2lmKG4mJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBuKXRocm93IEVycm9yKGEoMjMxLHQsdHlwZW9mIG4pKTtyZXR1cm4gbn1mdW5jdGlvbiBGbihlLHQsbil7KHQ9SG4oZSxuLmRpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzW3RdKSkmJihuLl9kaXNwYXRjaExpc3RlbmVycz1vdChuLl9kaXNwYXRjaExpc3RlbmVycyx0KSxuLl9kaXNwYXRjaEluc3RhbmNlcz1vdChuLl9kaXNwYXRjaEluc3RhbmNlcyxlKSl9ZnVuY3Rpb24gTW4oZSl7aWYoZSYmZS5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lcyl7Zm9yKHZhciB0PWUuX3RhcmdldEluc3Qsbj1bXTt0OyluLnB1c2godCksdD1Cbih0KTtmb3IodD1uLmxlbmd0aDswPHQtLTspRm4oblt0XSxcImNhcHR1cmVkXCIsZSk7Zm9yKHQ9MDt0PG4ubGVuZ3RoO3QrKylGbihuW3RdLFwiYnViYmxlZFwiLGUpfX1mdW5jdGlvbiBHbihlLHQsbil7ZSYmbiYmbi5kaXNwYXRjaENvbmZpZy5yZWdpc3RyYXRpb25OYW1lJiYodD1IbihlLG4uZGlzcGF0Y2hDb25maWcucmVnaXN0cmF0aW9uTmFtZSkpJiYobi5fZGlzcGF0Y2hMaXN0ZW5lcnM9b3Qobi5fZGlzcGF0Y2hMaXN0ZW5lcnMsdCksbi5fZGlzcGF0Y2hJbnN0YW5jZXM9b3Qobi5fZGlzcGF0Y2hJbnN0YW5jZXMsZSkpfWZ1bmN0aW9uIFVuKGUpe2UmJmUuZGlzcGF0Y2hDb25maWcucmVnaXN0cmF0aW9uTmFtZSYmR24oZS5fdGFyZ2V0SW5zdCxudWxsLGUpfWZ1bmN0aW9uIHpuKGUpe2l0KGUsTW4pfXZhciBWbj1udWxsLFduPW51bGwscW49bnVsbDtmdW5jdGlvbiBLbigpe2lmKHFuKXJldHVybiBxbjt2YXIgZSx0LG49V24scj1uLmxlbmd0aCxvPVwidmFsdWVcImluIFZuP1ZuLnZhbHVlOlZuLnRleHRDb250ZW50LGk9by5sZW5ndGg7Zm9yKGU9MDtlPHImJm5bZV09PT1vW2VdO2UrKyk7dmFyIGE9ci1lO2Zvcih0PTE7dDw9YSYmbltyLXRdPT09b1tpLXRdO3QrKyk7cmV0dXJuIHFuPW8uc2xpY2UoZSwxPHQ/MS10OnZvaWQgMCl9ZnVuY3Rpb24gWm4oKXtyZXR1cm4hMH1mdW5jdGlvbiBZbigpe3JldHVybiExfWZ1bmN0aW9uICRuKGUsdCxuLHIpe2Zvcih2YXIgbyBpbiB0aGlzLmRpc3BhdGNoQ29uZmlnPWUsdGhpcy5fdGFyZ2V0SW5zdD10LHRoaXMubmF0aXZlRXZlbnQ9bixlPXRoaXMuY29uc3RydWN0b3IuSW50ZXJmYWNlKWUuaGFzT3duUHJvcGVydHkobykmJigodD1lW29dKT90aGlzW29dPXQobik6XCJ0YXJnZXRcIj09PW8/dGhpcy50YXJnZXQ9cjp0aGlzW29dPW5bb10pO3JldHVybiB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9bi5kZWZhdWx0UHJldmVudGVkP24uZGVmYXVsdFByZXZlbnRlZDohMT09PW4ucmV0dXJuVmFsdWUpP1puOlluLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9WW4sdGhpc31mdW5jdGlvbiBYbihlLHQsbixyKXtpZih0aGlzLmV2ZW50UG9vbC5sZW5ndGgpe3ZhciBvPXRoaXMuZXZlbnRQb29sLnBvcCgpO3JldHVybiB0aGlzLmNhbGwobyxlLHQsbixyKSxvfXJldHVybiBuZXcgdGhpcyhlLHQsbixyKX1mdW5jdGlvbiBRbihlKXtpZighKGUgaW5zdGFuY2VvZiB0aGlzKSl0aHJvdyBFcnJvcihhKDI3OSkpO2UuZGVzdHJ1Y3RvcigpLDEwPnRoaXMuZXZlbnRQb29sLmxlbmd0aCYmdGhpcy5ldmVudFBvb2wucHVzaChlKX1mdW5jdGlvbiBKbihlKXtlLmV2ZW50UG9vbD1bXSxlLmdldFBvb2xlZD1YbixlLnJlbGVhc2U9UW59bygkbi5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOlwidW5rbm93blwiIT09dHlwZW9mIGUucmV0dXJuVmFsdWUmJihlLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1abil9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uP2Uuc3RvcFByb3BhZ2F0aW9uKCk6XCJ1bmtub3duXCIhPT10eXBlb2YgZS5jYW5jZWxCdWJibGUmJihlLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1abil9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt0aGlzLmlzUGVyc2lzdGVudD1abn0saXNQZXJzaXN0ZW50OlluLGRlc3RydWN0b3I6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuY29uc3RydWN0b3IuSW50ZXJmYWNlO2ZvcihlIGluIHQpdGhpc1tlXT1udWxsO3RoaXMubmF0aXZlRXZlbnQ9dGhpcy5fdGFyZ2V0SW5zdD10aGlzLmRpc3BhdGNoQ29uZmlnPW51bGwsdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD10aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1Zbix0aGlzLl9kaXNwYXRjaEluc3RhbmNlcz10aGlzLl9kaXNwYXRjaExpc3RlbmVycz1udWxsfX0pLCRuLkludGVyZmFjZT17dHlwZTpudWxsLHRhcmdldDpudWxsLGN1cnJlbnRUYXJnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZXZlbnRQaGFzZTpudWxsLGJ1YmJsZXM6bnVsbCxjYW5jZWxhYmxlOm51bGwsdGltZVN0YW1wOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRpbWVTdGFtcHx8RGF0ZS5ub3coKX0sZGVmYXVsdFByZXZlbnRlZDpudWxsLGlzVHJ1c3RlZDpudWxsfSwkbi5leHRlbmQ9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe31mdW5jdGlvbiBuKCl7cmV0dXJuIHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciByPXRoaXM7dC5wcm90b3R5cGU9ci5wcm90b3R5cGU7dmFyIGk9bmV3IHQ7cmV0dXJuIG8oaSxuLnByb3RvdHlwZSksbi5wcm90b3R5cGU9aSxuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uLG4uSW50ZXJmYWNlPW8oe30sci5JbnRlcmZhY2UsZSksbi5leHRlbmQ9ci5leHRlbmQsSm4obiksbn0sSm4oJG4pO3ZhciBlcj0kbi5leHRlbmQoe2RhdGE6bnVsbH0pLHRyPSRuLmV4dGVuZCh7ZGF0YTpudWxsfSksbnI9WzksMTMsMjcsMzJdLHJyPUMmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LG9yPW51bGw7QyYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYob3I9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgaXI9QyYmXCJUZXh0RXZlbnRcImluIHdpbmRvdyYmIW9yLGFyPUMmJighcnJ8fG9yJiY4PG9yJiYxMT49b3IpLHNyPVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLGxyPXtiZWZvcmVJbnB1dDp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkJlZm9yZUlucHV0XCIsY2FwdHVyZWQ6XCJvbkJlZm9yZUlucHV0Q2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6W1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdfSxjb21wb3NpdGlvbkVuZDp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkNvbXBvc2l0aW9uRW5kXCIsY2FwdHVyZWQ6XCJvbkNvbXBvc2l0aW9uRW5kQ2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6XCJibHVyIGNvbXBvc2l0aW9uZW5kIGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpfSxjb21wb3NpdGlvblN0YXJ0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpcIm9uQ29tcG9zaXRpb25TdGFydFwiLGNhcHR1cmVkOlwib25Db21wb3NpdGlvblN0YXJ0Q2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6XCJibHVyIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIil9LGNvbXBvc2l0aW9uVXBkYXRlOntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpcIm9uQ29tcG9zaXRpb25VcGRhdGVcIixjYXB0dXJlZDpcIm9uQ29tcG9zaXRpb25VcGRhdGVDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY29tcG9zaXRpb251cGRhdGUga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIil9fSxjcj0hMTtmdW5jdGlvbiB1cihlLHQpe3N3aXRjaChlKXtjYXNlXCJrZXl1cFwiOnJldHVybi0xIT09bnIuaW5kZXhPZih0LmtleUNvZGUpO2Nhc2VcImtleWRvd25cIjpyZXR1cm4gMjI5IT09dC5rZXlDb2RlO2Nhc2VcImtleXByZXNzXCI6Y2FzZVwibW91c2Vkb3duXCI6Y2FzZVwiYmx1clwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGRyKGUpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YoZT1lLmRldGFpbCkmJlwiZGF0YVwiaW4gZT9lLmRhdGE6bnVsbH12YXIgcHI9ITE7dmFyIGZyPXtldmVudFR5cGVzOmxyLGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LG4scil7dmFyIG87aWYocnIpZTp7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgaT1sci5jb21wb3NpdGlvblN0YXJ0O2JyZWFrIGU7Y2FzZVwiY29tcG9zaXRpb25lbmRcIjppPWxyLmNvbXBvc2l0aW9uRW5kO2JyZWFrIGU7Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjppPWxyLmNvbXBvc2l0aW9uVXBkYXRlO2JyZWFrIGV9aT12b2lkIDB9ZWxzZSBwcj91cihlLG4pJiYoaT1sci5jb21wb3NpdGlvbkVuZCk6XCJrZXlkb3duXCI9PT1lJiYyMjk9PT1uLmtleUNvZGUmJihpPWxyLmNvbXBvc2l0aW9uU3RhcnQpO3JldHVybiBpPyhhciYmXCJrb1wiIT09bi5sb2NhbGUmJihwcnx8aSE9PWxyLmNvbXBvc2l0aW9uU3RhcnQ/aT09PWxyLmNvbXBvc2l0aW9uRW5kJiZwciYmKG89S24oKSk6KFduPVwidmFsdWVcImluKFZuPXIpP1ZuLnZhbHVlOlZuLnRleHRDb250ZW50LHByPSEwKSksaT1lci5nZXRQb29sZWQoaSx0LG4sciksbz9pLmRhdGE9bzpudWxsIT09KG89ZHIobikpJiYoaS5kYXRhPW8pLHpuKGkpLG89aSk6bz1udWxsLChlPWlyP2Z1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIGRyKHQpO2Nhc2VcImtleXByZXNzXCI6cmV0dXJuIDMyIT09dC53aGljaD9udWxsOihjcj0hMCxzcik7Y2FzZVwidGV4dElucHV0XCI6cmV0dXJuKGU9dC5kYXRhKT09PXNyJiZjcj9udWxsOmU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KGUsbik6ZnVuY3Rpb24oZSx0KXtpZihwcilyZXR1cm5cImNvbXBvc2l0aW9uZW5kXCI9PT1lfHwhcnImJnVyKGUsdCk/KGU9S24oKSxxbj1Xbj1Wbj1udWxsLHByPSExLGUpOm51bGw7c3dpdGNoKGUpe2Nhc2VcInBhc3RlXCI6ZGVmYXVsdDpyZXR1cm4gbnVsbDtjYXNlXCJrZXlwcmVzc1wiOmlmKCEodC5jdHJsS2V5fHx0LmFsdEtleXx8dC5tZXRhS2V5KXx8dC5jdHJsS2V5JiZ0LmFsdEtleSl7aWYodC5jaGFyJiYxPHQuY2hhci5sZW5ndGgpcmV0dXJuIHQuY2hhcjtpZih0LndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHQud2hpY2gpfXJldHVybiBudWxsO2Nhc2VcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIGFyJiZcImtvXCIhPT10LmxvY2FsZT9udWxsOnQuZGF0YX19KGUsbikpPygodD10ci5nZXRQb29sZWQobHIuYmVmb3JlSW5wdXQsdCxuLHIpKS5kYXRhPWUsem4odCkpOnQ9bnVsbCxudWxsPT09bz90Om51bGw9PT10P286W28sdF19fSxocj17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCxcImRhdGV0aW1lLWxvY2FsXCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwfTtmdW5jdGlvbiBtcihlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuXCJpbnB1dFwiPT09dD8hIWhyW2UudHlwZV06XCJ0ZXh0YXJlYVwiPT09dH12YXIgZ3I9e2NoYW5nZTp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkNoYW5nZVwiLGNhcHR1cmVkOlwib25DaGFuZ2VDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY2hhbmdlIGNsaWNrIGZvY3VzIGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlXCIuc3BsaXQoXCIgXCIpfX07ZnVuY3Rpb24geXIoZSx0LG4pe3JldHVybihlPSRuLmdldFBvb2xlZChnci5jaGFuZ2UsZSx0LG4pKS50eXBlPVwiY2hhbmdlXCIsUChuKSx6bihlKSxlfXZhciB2cj1udWxsLGJyPW51bGw7ZnVuY3Rpb24gVHIoZSl7bHQoZSl9ZnVuY3Rpb24geHIoZSl7aWYoeGUoSW4oZSkpKXJldHVybiBlfWZ1bmN0aW9uIHdyKGUsdCl7aWYoXCJjaGFuZ2VcIj09PWUpcmV0dXJuIHR9dmFyIGtyPSExO2Z1bmN0aW9uIEVyKCl7dnImJih2ci5kZXRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIixTciksYnI9dnI9bnVsbCl9ZnVuY3Rpb24gU3IoZSl7aWYoXCJ2YWx1ZVwiPT09ZS5wcm9wZXJ0eU5hbWUmJnhyKGJyKSlpZihlPXlyKGJyLGUsY3QoZSkpLEgpbHQoZSk7ZWxzZXtIPSEwO3RyeXtOKFRyLGUpfWZpbmFsbHl7SD0hMSxNKCl9fX1mdW5jdGlvbiBBcihlLHQsbil7XCJmb2N1c1wiPT09ZT8oRXIoKSxicj1uLCh2cj10KS5hdHRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIixTcikpOlwiYmx1clwiPT09ZSYmRXIoKX1mdW5jdGlvbiBDcihlKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09ZXx8XCJrZXl1cFwiPT09ZXx8XCJrZXlkb3duXCI9PT1lKXJldHVybiB4cihicil9ZnVuY3Rpb24gX3IoZSx0KXtpZihcImNsaWNrXCI9PT1lKXJldHVybiB4cih0KX1mdW5jdGlvbiBEcihlLHQpe2lmKFwiaW5wdXRcIj09PWV8fFwiY2hhbmdlXCI9PT1lKXJldHVybiB4cih0KX1DJiYoa3I9dXQoXCJpbnB1dFwiKSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSk7dmFyIFJyPXtldmVudFR5cGVzOmdyLF9pc0lucHV0RXZlbnRTdXBwb3J0ZWQ6a3IsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQsbixyKXt2YXIgbz10P0luKHQpOndpbmRvdyxpPW8ubm9kZU5hbWUmJm8ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihcInNlbGVjdFwiPT09aXx8XCJpbnB1dFwiPT09aSYmXCJmaWxlXCI9PT1vLnR5cGUpdmFyIGE9d3I7ZWxzZSBpZihtcihvKSlpZihrcilhPURyO2Vsc2V7YT1Dcjt2YXIgcz1Bcn1lbHNlKGk9by5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWkudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PW8udHlwZXx8XCJyYWRpb1wiPT09by50eXBlKSYmKGE9X3IpO2lmKGEmJihhPWEoZSx0KSkpcmV0dXJuIHlyKGEsbixyKTtzJiZzKGUsbyx0KSxcImJsdXJcIj09PWUmJihlPW8uX3dyYXBwZXJTdGF0ZSkmJmUuY29udHJvbGxlZCYmXCJudW1iZXJcIj09PW8udHlwZSYmQ2UobyxcIm51bWJlclwiLG8udmFsdWUpfX0sT3I9JG4uZXh0ZW5kKHt2aWV3Om51bGwsZGV0YWlsOm51bGx9KSxQcj17QWx0OlwiYWx0S2V5XCIsQ29udHJvbDpcImN0cmxLZXlcIixNZXRhOlwibWV0YUtleVwiLFNoaWZ0Olwic2hpZnRLZXlcIn07ZnVuY3Rpb24gTHIoZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPVByW2VdKSYmISF0W2VdfWZ1bmN0aW9uIE5yKCl7cmV0dXJuIExyfXZhciBJcj0wLGpyPTAsQnI9ITEsSHI9ITEsRnI9T3IuZXh0ZW5kKHtzY3JlZW5YOm51bGwsc2NyZWVuWTpudWxsLGNsaWVudFg6bnVsbCxjbGllbnRZOm51bGwscGFnZVg6bnVsbCxwYWdlWTpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxnZXRNb2RpZmllclN0YXRlOk5yLGJ1dHRvbjpudWxsLGJ1dHRvbnM6bnVsbCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlbGF0ZWRUYXJnZXR8fChlLmZyb21FbGVtZW50PT09ZS5zcmNFbGVtZW50P2UudG9FbGVtZW50OmUuZnJvbUVsZW1lbnQpfSxtb3ZlbWVudFg6ZnVuY3Rpb24oZSl7aWYoXCJtb3ZlbWVudFhcImluIGUpcmV0dXJuIGUubW92ZW1lbnRYO3ZhciB0PUlyO3JldHVybiBJcj1lLnNjcmVlblgsQnI/XCJtb3VzZW1vdmVcIj09PWUudHlwZT9lLnNjcmVlblgtdDowOihCcj0hMCwwKX0sbW92ZW1lbnRZOmZ1bmN0aW9uKGUpe2lmKFwibW92ZW1lbnRZXCJpbiBlKXJldHVybiBlLm1vdmVtZW50WTt2YXIgdD1qcjtyZXR1cm4ganI9ZS5zY3JlZW5ZLEhyP1wibW91c2Vtb3ZlXCI9PT1lLnR5cGU/ZS5zY3JlZW5ZLXQ6MDooSHI9ITAsMCl9fSksTXI9RnIuZXh0ZW5kKHtwb2ludGVySWQ6bnVsbCx3aWR0aDpudWxsLGhlaWdodDpudWxsLHByZXNzdXJlOm51bGwsdGFuZ2VudGlhbFByZXNzdXJlOm51bGwsdGlsdFg6bnVsbCx0aWx0WTpudWxsLHR3aXN0Om51bGwscG9pbnRlclR5cGU6bnVsbCxpc1ByaW1hcnk6bnVsbH0pLEdyPXttb3VzZUVudGVyOntyZWdpc3RyYXRpb25OYW1lOlwib25Nb3VzZUVudGVyXCIsZGVwZW5kZW5jaWVzOltcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl19LG1vdXNlTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6XCJvbk1vdXNlTGVhdmVcIixkZXBlbmRlbmNpZXM6W1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXX0scG9pbnRlckVudGVyOntyZWdpc3RyYXRpb25OYW1lOlwib25Qb2ludGVyRW50ZXJcIixkZXBlbmRlbmNpZXM6W1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl19LHBvaW50ZXJMZWF2ZTp7cmVnaXN0cmF0aW9uTmFtZTpcIm9uUG9pbnRlckxlYXZlXCIsZGVwZW5kZW5jaWVzOltcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdfX0sVXI9e2V2ZW50VHlwZXM6R3IsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQsbixyLG8pe3ZhciBpPVwibW91c2VvdmVyXCI9PT1lfHxcInBvaW50ZXJvdmVyXCI9PT1lLGE9XCJtb3VzZW91dFwiPT09ZXx8XCJwb2ludGVyb3V0XCI9PT1lO2lmKGkmJjA9PT0oMzImbykmJihuLnJlbGF0ZWRUYXJnZXR8fG4uZnJvbUVsZW1lbnQpfHwhYSYmIWkpcmV0dXJuIG51bGw7KGk9ci53aW5kb3c9PT1yP3I6KGk9ci5vd25lckRvY3VtZW50KT9pLmRlZmF1bHRWaWV3fHxpLnBhcmVudFdpbmRvdzp3aW5kb3csYSk/KGE9dCxudWxsIT09KHQ9KHQ9bi5yZWxhdGVkVGFyZ2V0fHxuLnRvRWxlbWVudCk/TG4odCk6bnVsbCkmJih0IT09ZXQodCl8fDUhPT10LnRhZyYmNiE9PXQudGFnKSYmKHQ9bnVsbCkpOmE9bnVsbDtpZihhPT09dClyZXR1cm4gbnVsbDtpZihcIm1vdXNlb3V0XCI9PT1lfHxcIm1vdXNlb3ZlclwiPT09ZSl2YXIgcz1GcixsPUdyLm1vdXNlTGVhdmUsYz1Hci5tb3VzZUVudGVyLHU9XCJtb3VzZVwiO2Vsc2VcInBvaW50ZXJvdXRcIiE9PWUmJlwicG9pbnRlcm92ZXJcIiE9PWV8fChzPU1yLGw9R3IucG9pbnRlckxlYXZlLGM9R3IucG9pbnRlckVudGVyLHU9XCJwb2ludGVyXCIpO2lmKGU9bnVsbD09YT9pOkluKGEpLGk9bnVsbD09dD9pOkluKHQpLChsPXMuZ2V0UG9vbGVkKGwsYSxuLHIpKS50eXBlPXUrXCJsZWF2ZVwiLGwudGFyZ2V0PWUsbC5yZWxhdGVkVGFyZ2V0PWksKG49cy5nZXRQb29sZWQoYyx0LG4scikpLnR5cGU9dStcImVudGVyXCIsbi50YXJnZXQ9aSxuLnJlbGF0ZWRUYXJnZXQ9ZSx1PXQsKHI9YSkmJnUpZTp7Zm9yKGM9dSxhPTAsZT1zPXI7ZTtlPUJuKGUpKWErKztmb3IoZT0wLHQ9Yzt0O3Q9Qm4odCkpZSsrO2Zvcig7MDxhLWU7KXM9Qm4ocyksYS0tO2Zvcig7MDxlLWE7KWM9Qm4oYyksZS0tO2Zvcig7YS0tOyl7aWYocz09PWN8fHM9PT1jLmFsdGVybmF0ZSlicmVhayBlO3M9Qm4ocyksYz1CbihjKX1zPW51bGx9ZWxzZSBzPW51bGw7Zm9yKGM9cyxzPVtdO3ImJnIhPT1jJiYobnVsbD09PShhPXIuYWx0ZXJuYXRlKXx8YSE9PWMpOylzLnB1c2gocikscj1CbihyKTtmb3Iocj1bXTt1JiZ1IT09YyYmKG51bGw9PT0oYT11LmFsdGVybmF0ZSl8fGEhPT1jKTspci5wdXNoKHUpLHU9Qm4odSk7Zm9yKHU9MDt1PHMubGVuZ3RoO3UrKylHbihzW3VdLFwiYnViYmxlZFwiLGwpO2Zvcih1PXIubGVuZ3RoOzA8dS0tOylHbihyW3VdLFwiY2FwdHVyZWRcIixuKTtyZXR1cm4gMD09PSg2NCZvKT9bbF06W2wsbl19fTt2YXIgenI9XCJmdW5jdGlvblwiPT09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXQmJigwIT09ZXx8MS9lPT09MS90KXx8ZSE9PWUmJnQhPT10fSxWcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFdyKGUsdCl7aWYoenIoZSx0KSlyZXR1cm4hMDtpZihcIm9iamVjdFwiIT09dHlwZW9mIGV8fG51bGw9PT1lfHxcIm9iamVjdFwiIT09dHlwZW9mIHR8fG51bGw9PT10KXJldHVybiExO3ZhciBuPU9iamVjdC5rZXlzKGUpLHI9T2JqZWN0LmtleXModCk7aWYobi5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm4hMTtmb3Iocj0wO3I8bi5sZW5ndGg7cisrKWlmKCFWci5jYWxsKHQsbltyXSl8fCF6cihlW25bcl1dLHRbbltyXV0pKXJldHVybiExO3JldHVybiEwfXZhciBxcj1DJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJjExPj1kb2N1bWVudC5kb2N1bWVudE1vZGUsS3I9e3NlbGVjdDp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvblNlbGVjdFwiLGNhcHR1cmVkOlwib25TZWxlY3RDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1cyBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKX19LFpyPW51bGwsWXI9bnVsbCwkcj1udWxsLFhyPSExO2Z1bmN0aW9uIFFyKGUsdCl7dmFyIG49dC53aW5kb3c9PT10P3QuZG9jdW1lbnQ6OT09PXQubm9kZVR5cGU/dDp0Lm93bmVyRG9jdW1lbnQ7cmV0dXJuIFhyfHxudWxsPT1acnx8WnIhPT1kbihuKT9udWxsOihcInNlbGVjdGlvblN0YXJ0XCJpbihuPVpyKSYmZ24obik/bj17c3RhcnQ6bi5zZWxlY3Rpb25TdGFydCxlbmQ6bi5zZWxlY3Rpb25FbmR9Om49e2FuY2hvck5vZGU6KG49KG4ub3duZXJEb2N1bWVudCYmbi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpuLmFuY2hvck9mZnNldCxmb2N1c05vZGU6bi5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6bi5mb2N1c09mZnNldH0sJHImJldyKCRyLG4pP251bGw6KCRyPW4sKGU9JG4uZ2V0UG9vbGVkKEtyLnNlbGVjdCxZcixlLHQpKS50eXBlPVwic2VsZWN0XCIsZS50YXJnZXQ9WnIsem4oZSksZSkpfXZhciBKcj17ZXZlbnRUeXBlczpLcixleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGUsdCxuLHIsbyxpKXtpZighKGk9IShvPWl8fChyLndpbmRvdz09PXI/ci5kb2N1bWVudDo5PT09ci5ub2RlVHlwZT9yOnIub3duZXJEb2N1bWVudCkpKSl7ZTp7bz1KZShvKSxpPVMub25TZWxlY3Q7Zm9yKHZhciBhPTA7YTxpLmxlbmd0aDthKyspaWYoIW8uaGFzKGlbYV0pKXtvPSExO2JyZWFrIGV9bz0hMH1pPSFvfWlmKGkpcmV0dXJuIG51bGw7c3dpdGNoKG89dD9Jbih0KTp3aW5kb3csZSl7Y2FzZVwiZm9jdXNcIjoobXIobyl8fFwidHJ1ZVwiPT09by5jb250ZW50RWRpdGFibGUpJiYoWnI9byxZcj10LCRyPW51bGwpO2JyZWFrO2Nhc2VcImJsdXJcIjokcj1Zcj1acj1udWxsO2JyZWFrO2Nhc2VcIm1vdXNlZG93blwiOlhyPSEwO2JyZWFrO2Nhc2VcImNvbnRleHRtZW51XCI6Y2FzZVwibW91c2V1cFwiOmNhc2VcImRyYWdlbmRcIjpyZXR1cm4gWHI9ITEsUXIobixyKTtjYXNlXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihxcilicmVhaztjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5dXBcIjpyZXR1cm4gUXIobixyKX1yZXR1cm4gbnVsbH19LGVvPSRuLmV4dGVuZCh7YW5pbWF0aW9uTmFtZTpudWxsLGVsYXBzZWRUaW1lOm51bGwscHNldWRvRWxlbWVudDpudWxsfSksdG89JG4uZXh0ZW5kKHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGUpe3JldHVyblwiY2xpcGJvYXJkRGF0YVwiaW4gZT9lLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksbm89T3IuZXh0ZW5kKHtyZWxhdGVkVGFyZ2V0Om51bGx9KTtmdW5jdGlvbiBybyhlKXt2YXIgdD1lLmtleUNvZGU7cmV0dXJuXCJjaGFyQ29kZVwiaW4gZT8wPT09KGU9ZS5jaGFyQ29kZSkmJjEzPT09dCYmKGU9MTMpOmU9dCwxMD09PWUmJihlPTEzKSwzMjw9ZXx8MTM9PT1lP2U6MH12YXIgb289e0VzYzpcIkVzY2FwZVwiLFNwYWNlYmFyOlwiIFwiLExlZnQ6XCJBcnJvd0xlZnRcIixVcDpcIkFycm93VXBcIixSaWdodDpcIkFycm93UmlnaHRcIixEb3duOlwiQXJyb3dEb3duXCIsRGVsOlwiRGVsZXRlXCIsV2luOlwiT1NcIixNZW51OlwiQ29udGV4dE1lbnVcIixBcHBzOlwiQ29udGV4dE1lbnVcIixTY3JvbGw6XCJTY3JvbGxMb2NrXCIsTW96UHJpbnRhYmxlS2V5OlwiVW5pZGVudGlmaWVkXCJ9LGlvPXs4OlwiQmFja3NwYWNlXCIsOTpcIlRhYlwiLDEyOlwiQ2xlYXJcIiwxMzpcIkVudGVyXCIsMTY6XCJTaGlmdFwiLDE3OlwiQ29udHJvbFwiLDE4OlwiQWx0XCIsMTk6XCJQYXVzZVwiLDIwOlwiQ2Fwc0xvY2tcIiwyNzpcIkVzY2FwZVwiLDMyOlwiIFwiLDMzOlwiUGFnZVVwXCIsMzQ6XCJQYWdlRG93blwiLDM1OlwiRW5kXCIsMzY6XCJIb21lXCIsMzc6XCJBcnJvd0xlZnRcIiwzODpcIkFycm93VXBcIiwzOTpcIkFycm93UmlnaHRcIiw0MDpcIkFycm93RG93blwiLDQ1OlwiSW5zZXJ0XCIsNDY6XCJEZWxldGVcIiwxMTI6XCJGMVwiLDExMzpcIkYyXCIsMTE0OlwiRjNcIiwxMTU6XCJGNFwiLDExNjpcIkY1XCIsMTE3OlwiRjZcIiwxMTg6XCJGN1wiLDExOTpcIkY4XCIsMTIwOlwiRjlcIiwxMjE6XCJGMTBcIiwxMjI6XCJGMTFcIiwxMjM6XCJGMTJcIiwxNDQ6XCJOdW1Mb2NrXCIsMTQ1OlwiU2Nyb2xsTG9ja1wiLDIyNDpcIk1ldGFcIn0sYW89T3IuZXh0ZW5kKHtrZXk6ZnVuY3Rpb24oZSl7aWYoZS5rZXkpe3ZhciB0PW9vW2Uua2V5XXx8ZS5rZXk7aWYoXCJVbmlkZW50aWZpZWRcIiE9PXQpcmV0dXJuIHR9cmV0dXJuXCJrZXlwcmVzc1wiPT09ZS50eXBlPzEzPT09KGU9cm8oZSkpP1wiRW50ZXJcIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGUpOlwia2V5ZG93blwiPT09ZS50eXBlfHxcImtleXVwXCI9PT1lLnR5cGU/aW9bZS5rZXlDb2RlXXx8XCJVbmlkZW50aWZpZWRcIjpcIlwifSxsb2NhdGlvbjpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxyZXBlYXQ6bnVsbCxsb2NhbGU6bnVsbCxnZXRNb2RpZmllclN0YXRlOk5yLGNoYXJDb2RlOmZ1bmN0aW9uKGUpe3JldHVyblwia2V5cHJlc3NcIj09PWUudHlwZT9ybyhlKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGUpe3JldHVyblwia2V5ZG93blwiPT09ZS50eXBlfHxcImtleXVwXCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGUpe3JldHVyblwia2V5cHJlc3NcIj09PWUudHlwZT9ybyhlKTpcImtleWRvd25cIj09PWUudHlwZXx8XCJrZXl1cFwiPT09ZS50eXBlP2Uua2V5Q29kZTowfX0pLHNvPUZyLmV4dGVuZCh7ZGF0YVRyYW5zZmVyOm51bGx9KSxsbz1Pci5leHRlbmQoe3RvdWNoZXM6bnVsbCx0YXJnZXRUb3VjaGVzOm51bGwsY2hhbmdlZFRvdWNoZXM6bnVsbCxhbHRLZXk6bnVsbCxtZXRhS2V5Om51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsZ2V0TW9kaWZpZXJTdGF0ZTpOcn0pLGNvPSRuLmV4dGVuZCh7cHJvcGVydHlOYW1lOm51bGwsZWxhcHNlZFRpbWU6bnVsbCxwc2V1ZG9FbGVtZW50Om51bGx9KSx1bz1Gci5leHRlbmQoe2RlbHRhWDpmdW5jdGlvbihlKXtyZXR1cm5cImRlbHRhWFwiaW4gZT9lLmRlbHRhWDpcIndoZWVsRGVsdGFYXCJpbiBlPy1lLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihlKXtyZXR1cm5cImRlbHRhWVwiaW4gZT9lLmRlbHRhWTpcIndoZWVsRGVsdGFZXCJpbiBlPy1lLndoZWVsRGVsdGFZOlwid2hlZWxEZWx0YVwiaW4gZT8tZS53aGVlbERlbHRhOjB9LGRlbHRhWjpudWxsLGRlbHRhTW9kZTpudWxsfSkscG89e2V2ZW50VHlwZXM6SHQsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQsbixyKXt2YXIgbz1GdC5nZXQoZSk7aWYoIW8pcmV0dXJuIG51bGw7c3dpdGNoKGUpe2Nhc2VcImtleXByZXNzXCI6aWYoMD09PXJvKG4pKXJldHVybiBudWxsO2Nhc2VcImtleWRvd25cIjpjYXNlXCJrZXl1cFwiOmU9YW87YnJlYWs7Y2FzZVwiYmx1clwiOmNhc2VcImZvY3VzXCI6ZT1ubzticmVhaztjYXNlXCJjbGlja1wiOmlmKDI9PT1uLmJ1dHRvbilyZXR1cm4gbnVsbDtjYXNlXCJhdXhjbGlja1wiOmNhc2VcImRibGNsaWNrXCI6Y2FzZVwibW91c2Vkb3duXCI6Y2FzZVwibW91c2Vtb3ZlXCI6Y2FzZVwibW91c2V1cFwiOmNhc2VcIm1vdXNlb3V0XCI6Y2FzZVwibW91c2VvdmVyXCI6Y2FzZVwiY29udGV4dG1lbnVcIjplPUZyO2JyZWFrO2Nhc2VcImRyYWdcIjpjYXNlXCJkcmFnZW5kXCI6Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2V4aXRcIjpjYXNlXCJkcmFnbGVhdmVcIjpjYXNlXCJkcmFnb3ZlclwiOmNhc2VcImRyYWdzdGFydFwiOmNhc2VcImRyb3BcIjplPXNvO2JyZWFrO2Nhc2VcInRvdWNoY2FuY2VsXCI6Y2FzZVwidG91Y2hlbmRcIjpjYXNlXCJ0b3VjaG1vdmVcIjpjYXNlXCJ0b3VjaHN0YXJ0XCI6ZT1sbzticmVhaztjYXNlIEtlOmNhc2UgWmU6Y2FzZSBZZTplPWVvO2JyZWFrO2Nhc2UgJGU6ZT1jbzticmVhaztjYXNlXCJzY3JvbGxcIjplPU9yO2JyZWFrO2Nhc2VcIndoZWVsXCI6ZT11bzticmVhaztjYXNlXCJjb3B5XCI6Y2FzZVwiY3V0XCI6Y2FzZVwicGFzdGVcIjplPXRvO2JyZWFrO2Nhc2VcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZVwibG9zdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZVwicG9pbnRlcmNhbmNlbFwiOmNhc2VcInBvaW50ZXJkb3duXCI6Y2FzZVwicG9pbnRlcm1vdmVcIjpjYXNlXCJwb2ludGVyb3V0XCI6Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJwb2ludGVydXBcIjplPU1yO2JyZWFrO2RlZmF1bHQ6ZT0kbn1yZXR1cm4gem4odD1lLmdldFBvb2xlZChvLHQsbixyKSksdH19O2lmKHYpdGhyb3cgRXJyb3IoYSgxMDEpKTt2PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFwiUmVzcG9uZGVyRXZlbnRQbHVnaW4gU2ltcGxlRXZlbnRQbHVnaW4gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luIENoYW5nZUV2ZW50UGx1Z2luIFNlbGVjdEV2ZW50UGx1Z2luIEJlZm9yZUlucHV0RXZlbnRQbHVnaW5cIi5zcGxpdChcIiBcIikpLFQoKSxoPWpuLG09Tm4sZz1JbixBKHtTaW1wbGVFdmVudFBsdWdpbjpwbyxFbnRlckxlYXZlRXZlbnRQbHVnaW46VXIsQ2hhbmdlRXZlbnRQbHVnaW46UnIsU2VsZWN0RXZlbnRQbHVnaW46SnIsQmVmb3JlSW5wdXRFdmVudFBsdWdpbjpmcn0pO3ZhciBmbz1bXSxobz0tMTtmdW5jdGlvbiBtbyhlKXswPmhvfHwoZS5jdXJyZW50PWZvW2hvXSxmb1tob109bnVsbCxoby0tKX1mdW5jdGlvbiBnbyhlLHQpe2hvKyssZm9baG9dPWUuY3VycmVudCxlLmN1cnJlbnQ9dH12YXIgeW89e30sdm89e2N1cnJlbnQ6eW99LGJvPXtjdXJyZW50OiExfSxUbz15bztmdW5jdGlvbiB4byhlLHQpe3ZhciBuPWUudHlwZS5jb250ZXh0VHlwZXM7aWYoIW4pcmV0dXJuIHlvO3ZhciByPWUuc3RhdGVOb2RlO2lmKHImJnIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD09PXQpcmV0dXJuIHIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7dmFyIG8saT17fTtmb3IobyBpbiBuKWlbb109dFtvXTtyZXR1cm4gciYmKChlPWUuc3RhdGVOb2RlKS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PXQsZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1pKSxpfWZ1bmN0aW9uIHdvKGUpe3JldHVybiBudWxsIT09KGU9ZS5jaGlsZENvbnRleHRUeXBlcykmJnZvaWQgMCE9PWV9ZnVuY3Rpb24ga28oKXttbyhibyksbW8odm8pfWZ1bmN0aW9uIEVvKGUsdCxuKXtpZih2by5jdXJyZW50IT09eW8pdGhyb3cgRXJyb3IoYSgxNjgpKTtnbyh2byx0KSxnbyhibyxuKX1mdW5jdGlvbiBTbyhlLHQsbil7dmFyIHI9ZS5zdGF0ZU5vZGU7aWYoZT10LmNoaWxkQ29udGV4dFR5cGVzLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiByLmdldENoaWxkQ29udGV4dClyZXR1cm4gbjtmb3IodmFyIGkgaW4gcj1yLmdldENoaWxkQ29udGV4dCgpKWlmKCEoaSBpbiBlKSl0aHJvdyBFcnJvcihhKDEwOCxnZSh0KXx8XCJVbmtub3duXCIsaSkpO3JldHVybiBvKHt9LG4se30scil9ZnVuY3Rpb24gQW8oZSl7cmV0dXJuIGU9KGU9ZS5zdGF0ZU5vZGUpJiZlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHx5byxUbz12by5jdXJyZW50LGdvKHZvLGUpLGdvKGJvLGJvLmN1cnJlbnQpLCEwfWZ1bmN0aW9uIENvKGUsdCxuKXt2YXIgcj1lLnN0YXRlTm9kZTtpZighcil0aHJvdyBFcnJvcihhKDE2OSkpO24/KGU9U28oZSx0LFRvKSxyLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWUsbW8oYm8pLG1vKHZvKSxnbyh2byxlKSk6bW8oYm8pLGdvKGJvLG4pfXZhciBfbz1pLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSxEbz1pLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssUm89aS51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxPbz1pLnVuc3RhYmxlX3JlcXVlc3RQYWludCxQbz1pLnVuc3RhYmxlX25vdyxMbz1pLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLE5vPWkudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksSW89aS51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxqbz1pLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LEJvPWkudW5zdGFibGVfTG93UHJpb3JpdHksSG89aS51bnN0YWJsZV9JZGxlUHJpb3JpdHksRm89e30sTW89aS51bnN0YWJsZV9zaG91bGRZaWVsZCxHbz12b2lkIDAhPT1Pbz9PbzpmdW5jdGlvbigpe30sVW89bnVsbCx6bz1udWxsLFZvPSExLFdvPVBvKCkscW89MWU0PldvP1BvOmZ1bmN0aW9uKCl7cmV0dXJuIFBvKCktV299O2Z1bmN0aW9uIEtvKCl7c3dpdGNoKExvKCkpe2Nhc2UgTm86cmV0dXJuIDk5O2Nhc2UgSW86cmV0dXJuIDk4O2Nhc2Ugam86cmV0dXJuIDk3O2Nhc2UgQm86cmV0dXJuIDk2O2Nhc2UgSG86cmV0dXJuIDk1O2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgzMzIpKX19ZnVuY3Rpb24gWm8oZSl7c3dpdGNoKGUpe2Nhc2UgOTk6cmV0dXJuIE5vO2Nhc2UgOTg6cmV0dXJuIElvO2Nhc2UgOTc6cmV0dXJuIGpvO2Nhc2UgOTY6cmV0dXJuIEJvO2Nhc2UgOTU6cmV0dXJuIEhvO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgzMzIpKX19ZnVuY3Rpb24gWW8oZSx0KXtyZXR1cm4gZT1abyhlKSxfbyhlLHQpfWZ1bmN0aW9uICRvKGUsdCxuKXtyZXR1cm4gZT1abyhlKSxEbyhlLHQsbil9ZnVuY3Rpb24gWG8oZSl7cmV0dXJuIG51bGw9PT1Vbz8oVW89W2VdLHpvPURvKE5vLEpvKSk6VW8ucHVzaChlKSxGb31mdW5jdGlvbiBRbygpe2lmKG51bGwhPT16byl7dmFyIGU9em87em89bnVsbCxSbyhlKX1KbygpfWZ1bmN0aW9uIEpvKCl7aWYoIVZvJiZudWxsIT09VW8pe1ZvPSEwO3ZhciBlPTA7dHJ5e3ZhciB0PVVvO1lvKDk5LChmdW5jdGlvbigpe2Zvcig7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV07ZG97bj1uKCEwKX13aGlsZShudWxsIT09bil9fSkpLFVvPW51bGx9Y2F0Y2gobil7dGhyb3cgbnVsbCE9PVVvJiYoVW89VW8uc2xpY2UoZSsxKSksRG8oTm8sUW8pLG59ZmluYWxseXtWbz0hMX19fWZ1bmN0aW9uIGVpKGUsdCxuKXtyZXR1cm4gMTA3Mzc0MTgyMS0oMSsoKDEwNzM3NDE4MjEtZSt0LzEwKS8obi89MTApfDApKSpufWZ1bmN0aW9uIHRpKGUsdCl7aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKHZhciBuIGluIHQ9byh7fSx0KSxlPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PXRbbl0mJih0W25dPWVbbl0pO3JldHVybiB0fXZhciBuaT17Y3VycmVudDpudWxsfSxyaT1udWxsLG9pPW51bGwsaWk9bnVsbDtmdW5jdGlvbiBhaSgpe2lpPW9pPXJpPW51bGx9ZnVuY3Rpb24gc2koZSl7dmFyIHQ9bmkuY3VycmVudDttbyhuaSksZS50eXBlLl9jb250ZXh0Ll9jdXJyZW50VmFsdWU9dH1mdW5jdGlvbiBsaShlLHQpe2Zvcig7bnVsbCE9PWU7KXt2YXIgbj1lLmFsdGVybmF0ZTtpZihlLmNoaWxkRXhwaXJhdGlvblRpbWU8dCllLmNoaWxkRXhwaXJhdGlvblRpbWU9dCxudWxsIT09biYmbi5jaGlsZEV4cGlyYXRpb25UaW1lPHQmJihuLmNoaWxkRXhwaXJhdGlvblRpbWU9dCk7ZWxzZXtpZighKG51bGwhPT1uJiZuLmNoaWxkRXhwaXJhdGlvblRpbWU8dCkpYnJlYWs7bi5jaGlsZEV4cGlyYXRpb25UaW1lPXR9ZT1lLnJldHVybn19ZnVuY3Rpb24gY2koZSx0KXtyaT1lLGlpPW9pPW51bGwsbnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmbnVsbCE9PWUuZmlyc3RDb250ZXh0JiYoZS5leHBpcmF0aW9uVGltZT49dCYmKGphPSEwKSxlLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiB1aShlLHQpe2lmKGlpIT09ZSYmITEhPT10JiYwIT09dClpZihcIm51bWJlclwiPT09dHlwZW9mIHQmJjEwNzM3NDE4MjMhPT10fHwoaWk9ZSx0PTEwNzM3NDE4MjMpLHQ9e2NvbnRleHQ6ZSxvYnNlcnZlZEJpdHM6dCxuZXh0Om51bGx9LG51bGw9PT1vaSl7aWYobnVsbD09PXJpKXRocm93IEVycm9yKGEoMzA4KSk7b2k9dCxyaS5kZXBlbmRlbmNpZXM9e2V4cGlyYXRpb25UaW1lOjAsZmlyc3RDb250ZXh0OnQscmVzcG9uZGVyczpudWxsfX1lbHNlIG9pPW9pLm5leHQ9dDtyZXR1cm4gZS5fY3VycmVudFZhbHVlfXZhciBkaT0hMTtmdW5jdGlvbiBwaShlKXtlLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5tZW1vaXplZFN0YXRlLGJhc2VRdWV1ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsfSxlZmZlY3RzOm51bGx9fWZ1bmN0aW9uIGZpKGUsdCl7ZT1lLnVwZGF0ZVF1ZXVlLHQudXBkYXRlUXVldWU9PT1lJiYodC51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUuYmFzZVN0YXRlLGJhc2VRdWV1ZTplLmJhc2VRdWV1ZSxzaGFyZWQ6ZS5zaGFyZWQsZWZmZWN0czplLmVmZmVjdHN9KX1mdW5jdGlvbiBoaShlLHQpe3JldHVybihlPXtleHBpcmF0aW9uVGltZTplLHN1c3BlbnNlQ29uZmlnOnQsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfSkubmV4dD1lfWZ1bmN0aW9uIG1pKGUsdCl7aWYobnVsbCE9PShlPWUudXBkYXRlUXVldWUpKXt2YXIgbj0oZT1lLnNoYXJlZCkucGVuZGluZztudWxsPT09bj90Lm5leHQ9dDoodC5uZXh0PW4ubmV4dCxuLm5leHQ9dCksZS5wZW5kaW5nPXR9fWZ1bmN0aW9uIGdpKGUsdCl7dmFyIG49ZS5hbHRlcm5hdGU7bnVsbCE9PW4mJmZpKG4sZSksbnVsbD09PShuPShlPWUudXBkYXRlUXVldWUpLmJhc2VRdWV1ZSk/KGUuYmFzZVF1ZXVlPXQubmV4dD10LHQubmV4dD10KToodC5uZXh0PW4ubmV4dCxuLm5leHQ9dCl9ZnVuY3Rpb24geWkoZSx0LG4scil7dmFyIGk9ZS51cGRhdGVRdWV1ZTtkaT0hMTt2YXIgYT1pLmJhc2VRdWV1ZSxzPWkuc2hhcmVkLnBlbmRpbmc7aWYobnVsbCE9PXMpe2lmKG51bGwhPT1hKXt2YXIgbD1hLm5leHQ7YS5uZXh0PXMubmV4dCxzLm5leHQ9bH1hPXMsaS5zaGFyZWQucGVuZGluZz1udWxsLG51bGwhPT0obD1lLmFsdGVybmF0ZSkmJihudWxsIT09KGw9bC51cGRhdGVRdWV1ZSkmJihsLmJhc2VRdWV1ZT1zKSl9aWYobnVsbCE9PWEpe2w9YS5uZXh0O3ZhciBjPWkuYmFzZVN0YXRlLHU9MCxkPW51bGwscD1udWxsLGY9bnVsbDtpZihudWxsIT09bClmb3IodmFyIGg9bDs7KXtpZigocz1oLmV4cGlyYXRpb25UaW1lKTxyKXt2YXIgbT17ZXhwaXJhdGlvblRpbWU6aC5leHBpcmF0aW9uVGltZSxzdXNwZW5zZUNvbmZpZzpoLnN1c3BlbnNlQ29uZmlnLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PWY/KHA9Zj1tLGQ9Yyk6Zj1mLm5leHQ9bSxzPnUmJih1PXMpfWVsc2V7bnVsbCE9PWYmJihmPWYubmV4dD17ZXhwaXJhdGlvblRpbWU6MTA3Mzc0MTgyMyxzdXNwZW5zZUNvbmZpZzpoLnN1c3BlbnNlQ29uZmlnLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLG5leHQ6bnVsbH0pLHdsKHMsaC5zdXNwZW5zZUNvbmZpZyk7ZTp7dmFyIGc9ZSx5PWg7c3dpdGNoKHM9dCxtPW4seS50YWcpe2Nhc2UgMTppZihcImZ1bmN0aW9uXCI9PT10eXBlb2YoZz15LnBheWxvYWQpKXtjPWcuY2FsbChtLGMscyk7YnJlYWsgZX1jPWc7YnJlYWsgZTtjYXNlIDM6Zy5lZmZlY3RUYWc9LTQwOTcmZy5lZmZlY3RUYWd8NjQ7Y2FzZSAwOmlmKG51bGw9PT0ocz1cImZ1bmN0aW9uXCI9PT10eXBlb2YoZz15LnBheWxvYWQpP2cuY2FsbChtLGMscyk6Zyl8fHZvaWQgMD09PXMpYnJlYWsgZTtjPW8oe30sYyxzKTticmVhayBlO2Nhc2UgMjpkaT0hMH19bnVsbCE9PWguY2FsbGJhY2smJihlLmVmZmVjdFRhZ3w9MzIsbnVsbD09PShzPWkuZWZmZWN0cyk/aS5lZmZlY3RzPVtoXTpzLnB1c2goaCkpfWlmKG51bGw9PT0oaD1oLm5leHQpfHxoPT09bCl7aWYobnVsbD09PShzPWkuc2hhcmVkLnBlbmRpbmcpKWJyZWFrO2g9YS5uZXh0PXMubmV4dCxzLm5leHQ9bCxpLmJhc2VRdWV1ZT1hPXMsaS5zaGFyZWQucGVuZGluZz1udWxsfX1udWxsPT09Zj9kPWM6Zi5uZXh0PXAsaS5iYXNlU3RhdGU9ZCxpLmJhc2VRdWV1ZT1mLGtsKHUpLGUuZXhwaXJhdGlvblRpbWU9dSxlLm1lbW9pemVkU3RhdGU9Y319ZnVuY3Rpb24gdmkoZSx0LG4pe2lmKGU9dC5lZmZlY3RzLHQuZWZmZWN0cz1udWxsLG51bGwhPT1lKWZvcih0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF0sbz1yLmNhbGxiYWNrO2lmKG51bGwhPT1vKXtpZihyLmNhbGxiYWNrPW51bGwscj1vLG89bixcImZ1bmN0aW9uXCIhPT10eXBlb2Ygcil0aHJvdyBFcnJvcihhKDE5MSxyKSk7ci5jYWxsKG8pfX19dmFyIGJpPSQuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsVGk9KG5ldyByLkNvbXBvbmVudCkucmVmcztmdW5jdGlvbiB4aShlLHQsbixyKXtuPW51bGw9PT0obj1uKHIsdD1lLm1lbW9pemVkU3RhdGUpKXx8dm9pZCAwPT09bj90Om8oe30sdCxuKSxlLm1lbW9pemVkU3RhdGU9biwwPT09ZS5leHBpcmF0aW9uVGltZSYmKGUudXBkYXRlUXVldWUuYmFzZVN0YXRlPW4pfXZhciB3aT17aXNNb3VudGVkOmZ1bmN0aW9uKGUpe3JldHVybiEhKGU9ZS5fcmVhY3RJbnRlcm5hbEZpYmVyKSYmZXQoZSk9PT1lfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oZSx0LG4pe2U9ZS5fcmVhY3RJbnRlcm5hbEZpYmVyO3ZhciByPWNsKCksbz1iaS5zdXNwZW5zZTsobz1oaShyPXVsKHIsZSxvKSxvKSkucGF5bG9hZD10LHZvaWQgMCE9PW4mJm51bGwhPT1uJiYoby5jYWxsYmFjaz1uKSxtaShlLG8pLGRsKGUscil9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSx0LG4pe2U9ZS5fcmVhY3RJbnRlcm5hbEZpYmVyO3ZhciByPWNsKCksbz1iaS5zdXNwZW5zZTsobz1oaShyPXVsKHIsZSxvKSxvKSkudGFnPTEsby5wYXlsb2FkPXQsdm9pZCAwIT09biYmbnVsbCE9PW4mJihvLmNhbGxiYWNrPW4pLG1pKGUsbyksZGwoZSxyKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGUsdCl7ZT1lLl9yZWFjdEludGVybmFsRmliZXI7dmFyIG49Y2woKSxyPWJpLnN1c3BlbnNlOyhyPWhpKG49dWwobixlLHIpLHIpKS50YWc9Mix2b2lkIDAhPT10JiZudWxsIT09dCYmKHIuY2FsbGJhY2s9dCksbWkoZSxyKSxkbChlLG4pfX07ZnVuY3Rpb24ga2koZSx0LG4scixvLGksYSl7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mKGU9ZS5zdGF0ZU5vZGUpLnNob3VsZENvbXBvbmVudFVwZGF0ZT9lLnNob3VsZENvbXBvbmVudFVwZGF0ZShyLGksYSk6IXQucHJvdG90eXBlfHwhdC5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnR8fCghV3IobixyKXx8IVdyKG8saSkpfWZ1bmN0aW9uIEVpKGUsdCxuKXt2YXIgcj0hMSxvPXlvLGk9dC5jb250ZXh0VHlwZTtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGkmJm51bGwhPT1pP2k9dWkoaSk6KG89d28odCk/VG86dm8uY3VycmVudCxpPShyPW51bGwhPT0ocj10LmNvbnRleHRUeXBlcykmJnZvaWQgMCE9PXIpP3hvKGUsbyk6eW8pLHQ9bmV3IHQobixpKSxlLm1lbW9pemVkU3RhdGU9bnVsbCE9PXQuc3RhdGUmJnZvaWQgMCE9PXQuc3RhdGU/dC5zdGF0ZTpudWxsLHQudXBkYXRlcj13aSxlLnN0YXRlTm9kZT10LHQuX3JlYWN0SW50ZXJuYWxGaWJlcj1lLHImJigoZT1lLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1vLGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9aSksdH1mdW5jdGlvbiBTaShlLHQsbixyKXtlPXQuc3RhdGUsXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sciksXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJnQuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobixyKSx0LnN0YXRlIT09ZSYmd2kuZW5xdWV1ZVJlcGxhY2VTdGF0ZSh0LHQuc3RhdGUsbnVsbCl9ZnVuY3Rpb24gQWkoZSx0LG4scil7dmFyIG89ZS5zdGF0ZU5vZGU7by5wcm9wcz1uLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlLG8ucmVmcz1UaSxwaShlKTt2YXIgaT10LmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgaSYmbnVsbCE9PWk/by5jb250ZXh0PXVpKGkpOihpPXdvKHQpP1RvOnZvLmN1cnJlbnQsby5jb250ZXh0PXhvKGUsaSkpLHlpKGUsbixvLHIpLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlLFwiZnVuY3Rpb25cIj09PXR5cGVvZihpPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKSYmKHhpKGUsdCxpLG4pLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBvLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxcImZ1bmN0aW9uXCIhPT10eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT10eXBlb2Ygby5jb21wb25lbnRXaWxsTW91bnR8fCh0PW8uc3RhdGUsXCJmdW5jdGlvblwiPT09dHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50JiZvLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJm8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLHQhPT1vLnN0YXRlJiZ3aS5lbnF1ZXVlUmVwbGFjZVN0YXRlKG8sby5zdGF0ZSxudWxsKSx5aShlLG4sbyxyKSxvLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSksXCJmdW5jdGlvblwiPT09dHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQmJihlLmVmZmVjdFRhZ3w9NCl9dmFyIENpPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gX2koZSx0LG4pe2lmKG51bGwhPT0oZT1uLnJlZikmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlJiZcIm9iamVjdFwiIT09dHlwZW9mIGUpe2lmKG4uX293bmVyKXtpZihuPW4uX293bmVyKXtpZigxIT09bi50YWcpdGhyb3cgRXJyb3IoYSgzMDkpKTt2YXIgcj1uLnN0YXRlTm9kZX1pZighcil0aHJvdyBFcnJvcihhKDE0NyxlKSk7dmFyIG89XCJcIitlO3JldHVybiBudWxsIT09dCYmbnVsbCE9PXQucmVmJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5yZWYmJnQucmVmLl9zdHJpbmdSZWY9PT1vP3QucmVmOih0PWZ1bmN0aW9uKGUpe3ZhciB0PXIucmVmczt0PT09VGkmJih0PXIucmVmcz17fSksbnVsbD09PWU/ZGVsZXRlIHRbb106dFtvXT1lfSx0Ll9zdHJpbmdSZWY9byx0KX1pZihcInN0cmluZ1wiIT09dHlwZW9mIGUpdGhyb3cgRXJyb3IoYSgyODQpKTtpZighbi5fb3duZXIpdGhyb3cgRXJyb3IoYSgyOTAsZSkpfXJldHVybiBlfWZ1bmN0aW9uIERpKGUsdCl7aWYoXCJ0ZXh0YXJlYVwiIT09ZS50eXBlKXRocm93IEVycm9yKGEoMzEsXCJbb2JqZWN0IE9iamVjdF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKHQpLmpvaW4oXCIsIFwiKStcIn1cIjp0LFwiXCIpKX1mdW5jdGlvbiBSaShlKXtmdW5jdGlvbiB0KHQsbil7aWYoZSl7dmFyIHI9dC5sYXN0RWZmZWN0O251bGwhPT1yPyhyLm5leHRFZmZlY3Q9bix0Lmxhc3RFZmZlY3Q9bik6dC5maXJzdEVmZmVjdD10Lmxhc3RFZmZlY3Q9bixuLm5leHRFZmZlY3Q9bnVsbCxuLmVmZmVjdFRhZz04fX1mdW5jdGlvbiBuKG4scil7aWYoIWUpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09cjspdChuLHIpLHI9ci5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIHIoZSx0KXtmb3IoZT1uZXcgTWFwO251bGwhPT10OyludWxsIT09dC5rZXk/ZS5zZXQodC5rZXksdCk6ZS5zZXQodC5pbmRleCx0KSx0PXQuc2libGluZztyZXR1cm4gZX1mdW5jdGlvbiBvKGUsdCl7cmV0dXJuKGU9emwoZSx0KSkuaW5kZXg9MCxlLnNpYmxpbmc9bnVsbCxlfWZ1bmN0aW9uIGkodCxuLHIpe3JldHVybiB0LmluZGV4PXIsZT9udWxsIT09KHI9dC5hbHRlcm5hdGUpPyhyPXIuaW5kZXgpPG4/KHQuZWZmZWN0VGFnPTIsbik6cjoodC5lZmZlY3RUYWc9MixuKTpufWZ1bmN0aW9uIHModCl7cmV0dXJuIGUmJm51bGw9PT10LmFsdGVybmF0ZSYmKHQuZWZmZWN0VGFnPTIpLHR9ZnVuY3Rpb24gbChlLHQsbixyKXtyZXR1cm4gbnVsbD09PXR8fDYhPT10LnRhZz8oKHQ9cWwobixlLm1vZGUscikpLnJldHVybj1lLHQpOigodD1vKHQsbikpLnJldHVybj1lLHQpfWZ1bmN0aW9uIGMoZSx0LG4scil7cmV0dXJuIG51bGwhPT10JiZ0LmVsZW1lbnRUeXBlPT09bi50eXBlPygocj1vKHQsbi5wcm9wcykpLnJlZj1faShlLHQsbiksci5yZXR1cm49ZSxyKTooKHI9Vmwobi50eXBlLG4ua2V5LG4ucHJvcHMsbnVsbCxlLm1vZGUscikpLnJlZj1faShlLHQsbiksci5yZXR1cm49ZSxyKX1mdW5jdGlvbiB1KGUsdCxuLHIpe3JldHVybiBudWxsPT09dHx8NCE9PXQudGFnfHx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09bi5jb250YWluZXJJbmZvfHx0LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PW4uaW1wbGVtZW50YXRpb24/KCh0PUtsKG4sZS5tb2RlLHIpKS5yZXR1cm49ZSx0KTooKHQ9byh0LG4uY2hpbGRyZW58fFtdKSkucmV0dXJuPWUsdCl9ZnVuY3Rpb24gZChlLHQsbixyLGkpe3JldHVybiBudWxsPT09dHx8NyE9PXQudGFnPygodD1XbChuLGUubW9kZSxyLGkpKS5yZXR1cm49ZSx0KTooKHQ9byh0LG4pKS5yZXR1cm49ZSx0KX1mdW5jdGlvbiBwKGUsdCxuKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIHR8fFwibnVtYmVyXCI9PT10eXBlb2YgdClyZXR1cm4odD1xbChcIlwiK3QsZS5tb2RlLG4pKS5yZXR1cm49ZSx0O2lmKFwib2JqZWN0XCI9PT10eXBlb2YgdCYmbnVsbCE9PXQpe3N3aXRjaCh0LiQkdHlwZW9mKXtjYXNlIGVlOnJldHVybihuPVZsKHQudHlwZSx0LmtleSx0LnByb3BzLG51bGwsZS5tb2RlLG4pKS5yZWY9X2koZSxudWxsLHQpLG4ucmV0dXJuPWUsbjtjYXNlIHRlOnJldHVybih0PUtsKHQsZS5tb2RlLG4pKS5yZXR1cm49ZSx0fWlmKENpKHQpfHxtZSh0KSlyZXR1cm4odD1XbCh0LGUubW9kZSxuLG51bGwpKS5yZXR1cm49ZSx0O0RpKGUsdCl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZihlLHQsbixyKXt2YXIgbz1udWxsIT09dD90LmtleTpudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2Ygbnx8XCJudW1iZXJcIj09PXR5cGVvZiBuKXJldHVybiBudWxsIT09bz9udWxsOmwoZSx0LFwiXCIrbixyKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIG4mJm51bGwhPT1uKXtzd2l0Y2gobi4kJHR5cGVvZil7Y2FzZSBlZTpyZXR1cm4gbi5rZXk9PT1vP24udHlwZT09PW5lP2QoZSx0LG4ucHJvcHMuY2hpbGRyZW4scixvKTpjKGUsdCxuLHIpOm51bGw7Y2FzZSB0ZTpyZXR1cm4gbi5rZXk9PT1vP3UoZSx0LG4scik6bnVsbH1pZihDaShuKXx8bWUobikpcmV0dXJuIG51bGwhPT1vP251bGw6ZChlLHQsbixyLG51bGwpO0RpKGUsbil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaChlLHQsbixyLG8pe2lmKFwic3RyaW5nXCI9PT10eXBlb2Ygcnx8XCJudW1iZXJcIj09PXR5cGVvZiByKXJldHVybiBsKHQsZT1lLmdldChuKXx8bnVsbCxcIlwiK3Isbyk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiByJiZudWxsIT09cil7c3dpdGNoKHIuJCR0eXBlb2Ype2Nhc2UgZWU6cmV0dXJuIGU9ZS5nZXQobnVsbD09PXIua2V5P246ci5rZXkpfHxudWxsLHIudHlwZT09PW5lP2QodCxlLHIucHJvcHMuY2hpbGRyZW4sbyxyLmtleSk6Yyh0LGUscixvKTtjYXNlIHRlOnJldHVybiB1KHQsZT1lLmdldChudWxsPT09ci5rZXk/bjpyLmtleSl8fG51bGwscixvKX1pZihDaShyKXx8bWUocikpcmV0dXJuIGQodCxlPWUuZ2V0KG4pfHxudWxsLHIsbyxudWxsKTtEaSh0LHIpfXJldHVybiBudWxsfWZ1bmN0aW9uIG0obyxhLHMsbCl7Zm9yKHZhciBjPW51bGwsdT1udWxsLGQ9YSxtPWE9MCxnPW51bGw7bnVsbCE9PWQmJm08cy5sZW5ndGg7bSsrKXtkLmluZGV4Pm0/KGc9ZCxkPW51bGwpOmc9ZC5zaWJsaW5nO3ZhciB5PWYobyxkLHNbbV0sbCk7aWYobnVsbD09PXkpe251bGw9PT1kJiYoZD1nKTticmVha31lJiZkJiZudWxsPT09eS5hbHRlcm5hdGUmJnQobyxkKSxhPWkoeSxhLG0pLG51bGw9PT11P2M9eTp1LnNpYmxpbmc9eSx1PXksZD1nfWlmKG09PT1zLmxlbmd0aClyZXR1cm4gbihvLGQpLGM7aWYobnVsbD09PWQpe2Zvcig7bTxzLmxlbmd0aDttKyspbnVsbCE9PShkPXAobyxzW21dLGwpKSYmKGE9aShkLGEsbSksbnVsbD09PXU/Yz1kOnUuc2libGluZz1kLHU9ZCk7cmV0dXJuIGN9Zm9yKGQ9cihvLGQpO208cy5sZW5ndGg7bSsrKW51bGwhPT0oZz1oKGQsbyxtLHNbbV0sbCkpJiYoZSYmbnVsbCE9PWcuYWx0ZXJuYXRlJiZkLmRlbGV0ZShudWxsPT09Zy5rZXk/bTpnLmtleSksYT1pKGcsYSxtKSxudWxsPT09dT9jPWc6dS5zaWJsaW5nPWcsdT1nKTtyZXR1cm4gZSYmZC5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChvLGUpfSkpLGN9ZnVuY3Rpb24gZyhvLHMsbCxjKXt2YXIgdT1tZShsKTtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgdSl0aHJvdyBFcnJvcihhKDE1MCkpO2lmKG51bGw9PShsPXUuY2FsbChsKSkpdGhyb3cgRXJyb3IoYSgxNTEpKTtmb3IodmFyIGQ9dT1udWxsLG09cyxnPXM9MCx5PW51bGwsdj1sLm5leHQoKTtudWxsIT09bSYmIXYuZG9uZTtnKyssdj1sLm5leHQoKSl7bS5pbmRleD5nPyh5PW0sbT1udWxsKTp5PW0uc2libGluZzt2YXIgYj1mKG8sbSx2LnZhbHVlLGMpO2lmKG51bGw9PT1iKXtudWxsPT09bSYmKG09eSk7YnJlYWt9ZSYmbSYmbnVsbD09PWIuYWx0ZXJuYXRlJiZ0KG8sbSkscz1pKGIscyxnKSxudWxsPT09ZD91PWI6ZC5zaWJsaW5nPWIsZD1iLG09eX1pZih2LmRvbmUpcmV0dXJuIG4obyxtKSx1O2lmKG51bGw9PT1tKXtmb3IoOyF2LmRvbmU7ZysrLHY9bC5uZXh0KCkpbnVsbCE9PSh2PXAobyx2LnZhbHVlLGMpKSYmKHM9aSh2LHMsZyksbnVsbD09PWQ/dT12OmQuc2libGluZz12LGQ9dik7cmV0dXJuIHV9Zm9yKG09cihvLG0pOyF2LmRvbmU7ZysrLHY9bC5uZXh0KCkpbnVsbCE9PSh2PWgobSxvLGcsdi52YWx1ZSxjKSkmJihlJiZudWxsIT09di5hbHRlcm5hdGUmJm0uZGVsZXRlKG51bGw9PT12LmtleT9nOnYua2V5KSxzPWkodixzLGcpLG51bGw9PT1kP3U9djpkLnNpYmxpbmc9dixkPXYpO3JldHVybiBlJiZtLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0KG8sZSl9KSksdX1yZXR1cm4gZnVuY3Rpb24oZSxyLGksbCl7dmFyIGM9XCJvYmplY3RcIj09PXR5cGVvZiBpJiZudWxsIT09aSYmaS50eXBlPT09bmUmJm51bGw9PT1pLmtleTtjJiYoaT1pLnByb3BzLmNoaWxkcmVuKTt2YXIgdT1cIm9iamVjdFwiPT09dHlwZW9mIGkmJm51bGwhPT1pO2lmKHUpc3dpdGNoKGkuJCR0eXBlb2Ype2Nhc2UgZWU6ZTp7Zm9yKHU9aS5rZXksYz1yO251bGwhPT1jOyl7aWYoYy5rZXk9PT11KXtpZig3PT09Yy50YWcpe2lmKGkudHlwZT09PW5lKXtuKGUsYy5zaWJsaW5nKSwocj1vKGMsaS5wcm9wcy5jaGlsZHJlbikpLnJldHVybj1lLGU9cjticmVhayBlfX1lbHNlIGlmKGMuZWxlbWVudFR5cGU9PT1pLnR5cGUpe24oZSxjLnNpYmxpbmcpLChyPW8oYyxpLnByb3BzKSkucmVmPV9pKGUsYyxpKSxyLnJldHVybj1lLGU9cjticmVhayBlfW4oZSxjKTticmVha310KGUsYyksYz1jLnNpYmxpbmd9aS50eXBlPT09bmU/KChyPVdsKGkucHJvcHMuY2hpbGRyZW4sZS5tb2RlLGwsaS5rZXkpKS5yZXR1cm49ZSxlPXIpOigobD1WbChpLnR5cGUsaS5rZXksaS5wcm9wcyxudWxsLGUubW9kZSxsKSkucmVmPV9pKGUscixpKSxsLnJldHVybj1lLGU9bCl9cmV0dXJuIHMoZSk7Y2FzZSB0ZTplOntmb3IoYz1pLmtleTtudWxsIT09cjspe2lmKHIua2V5PT09Yyl7aWYoND09PXIudGFnJiZyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09aS5jb250YWluZXJJbmZvJiZyLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbj09PWkuaW1wbGVtZW50YXRpb24pe24oZSxyLnNpYmxpbmcpLChyPW8ocixpLmNoaWxkcmVufHxbXSkpLnJldHVybj1lLGU9cjticmVhayBlfW4oZSxyKTticmVha310KGUscikscj1yLnNpYmxpbmd9KHI9S2woaSxlLm1vZGUsbCkpLnJldHVybj1lLGU9cn1yZXR1cm4gcyhlKX1pZihcInN0cmluZ1wiPT09dHlwZW9mIGl8fFwibnVtYmVyXCI9PT10eXBlb2YgaSlyZXR1cm4gaT1cIlwiK2ksbnVsbCE9PXImJjY9PT1yLnRhZz8obihlLHIuc2libGluZyksKHI9byhyLGkpKS5yZXR1cm49ZSxlPXIpOihuKGUsciksKHI9cWwoaSxlLm1vZGUsbCkpLnJldHVybj1lLGU9cikscyhlKTtpZihDaShpKSlyZXR1cm4gbShlLHIsaSxsKTtpZihtZShpKSlyZXR1cm4gZyhlLHIsaSxsKTtpZih1JiZEaShlLGkpLFwidW5kZWZpbmVkXCI9PT10eXBlb2YgaSYmIWMpc3dpdGNoKGUudGFnKXtjYXNlIDE6Y2FzZSAwOnRocm93IGU9ZS50eXBlLEVycm9yKGEoMTUyLGUuZGlzcGxheU5hbWV8fGUubmFtZXx8XCJDb21wb25lbnRcIikpfXJldHVybiBuKGUscil9fXZhciBPaT1SaSghMCksUGk9UmkoITEpLExpPXt9LE5pPXtjdXJyZW50OkxpfSxJaT17Y3VycmVudDpMaX0samk9e2N1cnJlbnQ6TGl9O2Z1bmN0aW9uIEJpKGUpe2lmKGU9PT1MaSl0aHJvdyBFcnJvcihhKDE3NCkpO3JldHVybiBlfWZ1bmN0aW9uIEhpKGUsdCl7c3dpdGNoKGdvKGppLHQpLGdvKElpLGUpLGdvKE5pLExpKSxlPXQubm9kZVR5cGUpe2Nhc2UgOTpjYXNlIDExOnQ9KHQ9dC5kb2N1bWVudEVsZW1lbnQpP3QubmFtZXNwYWNlVVJJOkJlKG51bGwsXCJcIik7YnJlYWs7ZGVmYXVsdDp0PUJlKHQ9KGU9OD09PWU/dC5wYXJlbnROb2RlOnQpLm5hbWVzcGFjZVVSSXx8bnVsbCxlPWUudGFnTmFtZSl9bW8oTmkpLGdvKE5pLHQpfWZ1bmN0aW9uIEZpKCl7bW8oTmkpLG1vKElpKSxtbyhqaSl9ZnVuY3Rpb24gTWkoZSl7QmkoamkuY3VycmVudCk7dmFyIHQ9QmkoTmkuY3VycmVudCksbj1CZSh0LGUudHlwZSk7dCE9PW4mJihnbyhJaSxlKSxnbyhOaSxuKSl9ZnVuY3Rpb24gR2koZSl7SWkuY3VycmVudD09PWUmJihtbyhOaSksbW8oSWkpKX12YXIgVWk9e2N1cnJlbnQ6MH07ZnVuY3Rpb24gemkoZSl7Zm9yKHZhciB0PWU7bnVsbCE9PXQ7KXtpZigxMz09PXQudGFnKXt2YXIgbj10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW4mJihudWxsPT09KG49bi5kZWh5ZHJhdGVkKXx8bi5kYXRhPT09Ym58fG4uZGF0YT09PVRuKSlyZXR1cm4gdH1lbHNlIGlmKDE5PT09dC50YWcmJnZvaWQgMCE9PXQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcil7aWYoMCE9PSg2NCZ0LmVmZmVjdFRhZykpcmV0dXJuIHR9ZWxzZSBpZihudWxsIT09dC5jaGlsZCl7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGQ7Y29udGludWV9aWYodD09PWUpYnJlYWs7Zm9yKDtudWxsPT09dC5zaWJsaW5nOyl7aWYobnVsbD09PXQucmV0dXJufHx0LnJldHVybj09PWUpcmV0dXJuIG51bGw7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIFZpKGUsdCl7cmV0dXJue3Jlc3BvbmRlcjplLHByb3BzOnR9fXZhciBXaT0kLlJlYWN0Q3VycmVudERpc3BhdGNoZXIscWk9JC5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxLaT0wLFppPW51bGwsWWk9bnVsbCwkaT1udWxsLFhpPSExO2Z1bmN0aW9uIFFpKCl7dGhyb3cgRXJyb3IoYSgzMjEpKX1mdW5jdGlvbiBKaShlLHQpe2lmKG51bGw9PT10KXJldHVybiExO2Zvcih2YXIgbj0wO248dC5sZW5ndGgmJm48ZS5sZW5ndGg7bisrKWlmKCF6cihlW25dLHRbbl0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGVhKGUsdCxuLHIsbyxpKXtpZihLaT1pLFppPXQsdC5tZW1vaXplZFN0YXRlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLHQuZXhwaXJhdGlvblRpbWU9MCxXaS5jdXJyZW50PW51bGw9PT1lfHxudWxsPT09ZS5tZW1vaXplZFN0YXRlP2thOkVhLGU9bihyLG8pLHQuZXhwaXJhdGlvblRpbWU9PT1LaSl7aT0wO2Rve2lmKHQuZXhwaXJhdGlvblRpbWU9MCwhKDI1PmkpKXRocm93IEVycm9yKGEoMzAxKSk7aSs9MSwkaT1ZaT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCxXaS5jdXJyZW50PVNhLGU9bihyLG8pfXdoaWxlKHQuZXhwaXJhdGlvblRpbWU9PT1LaSl9aWYoV2kuY3VycmVudD13YSx0PW51bGwhPT1ZaSYmbnVsbCE9PVlpLm5leHQsS2k9MCwkaT1ZaT1aaT1udWxsLFhpPSExLHQpdGhyb3cgRXJyb3IoYSgzMDApKTtyZXR1cm4gZX1mdW5jdGlvbiB0YSgpe3ZhciBlPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O3JldHVybiBudWxsPT09JGk/WmkubWVtb2l6ZWRTdGF0ZT0kaT1lOiRpPSRpLm5leHQ9ZSwkaX1mdW5jdGlvbiBuYSgpe2lmKG51bGw9PT1ZaSl7dmFyIGU9WmkuYWx0ZXJuYXRlO2U9bnVsbCE9PWU/ZS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBlPVlpLm5leHQ7dmFyIHQ9bnVsbD09PSRpP1ppLm1lbW9pemVkU3RhdGU6JGkubmV4dDtpZihudWxsIT09dCkkaT10LFlpPWU7ZWxzZXtpZihudWxsPT09ZSl0aHJvdyBFcnJvcihhKDMxMCkpO2U9e21lbW9pemVkU3RhdGU6KFlpPWUpLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOllpLmJhc2VTdGF0ZSxiYXNlUXVldWU6WWkuYmFzZVF1ZXVlLHF1ZXVlOllpLnF1ZXVlLG5leHQ6bnVsbH0sbnVsbD09PSRpP1ppLm1lbW9pemVkU3RhdGU9JGk9ZTokaT0kaS5uZXh0PWV9cmV0dXJuICRpfWZ1bmN0aW9uIHJhKGUsdCl7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIHQ/dChlKTp0fWZ1bmN0aW9uIG9hKGUpe3ZhciB0PW5hKCksbj10LnF1ZXVlO2lmKG51bGw9PT1uKXRocm93IEVycm9yKGEoMzExKSk7bi5sYXN0UmVuZGVyZWRSZWR1Y2VyPWU7dmFyIHI9WWksbz1yLmJhc2VRdWV1ZSxpPW4ucGVuZGluZztpZihudWxsIT09aSl7aWYobnVsbCE9PW8pe3ZhciBzPW8ubmV4dDtvLm5leHQ9aS5uZXh0LGkubmV4dD1zfXIuYmFzZVF1ZXVlPW89aSxuLnBlbmRpbmc9bnVsbH1pZihudWxsIT09byl7bz1vLm5leHQscj1yLmJhc2VTdGF0ZTt2YXIgbD1zPWk9bnVsbCxjPW87ZG97dmFyIHU9Yy5leHBpcmF0aW9uVGltZTtpZih1PEtpKXt2YXIgZD17ZXhwaXJhdGlvblRpbWU6Yy5leHBpcmF0aW9uVGltZSxzdXNwZW5zZUNvbmZpZzpjLnN1c3BlbnNlQ29uZmlnLGFjdGlvbjpjLmFjdGlvbixlYWdlclJlZHVjZXI6Yy5lYWdlclJlZHVjZXIsZWFnZXJTdGF0ZTpjLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09bD8ocz1sPWQsaT1yKTpsPWwubmV4dD1kLHU+WmkuZXhwaXJhdGlvblRpbWUmJihaaS5leHBpcmF0aW9uVGltZT11LGtsKHUpKX1lbHNlIG51bGwhPT1sJiYobD1sLm5leHQ9e2V4cGlyYXRpb25UaW1lOjEwNzM3NDE4MjMsc3VzcGVuc2VDb25maWc6Yy5zdXNwZW5zZUNvbmZpZyxhY3Rpb246Yy5hY3Rpb24sZWFnZXJSZWR1Y2VyOmMuZWFnZXJSZWR1Y2VyLGVhZ2VyU3RhdGU6Yy5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLHdsKHUsYy5zdXNwZW5zZUNvbmZpZykscj1jLmVhZ2VyUmVkdWNlcj09PWU/Yy5lYWdlclN0YXRlOmUocixjLmFjdGlvbik7Yz1jLm5leHR9d2hpbGUobnVsbCE9PWMmJmMhPT1vKTtudWxsPT09bD9pPXI6bC5uZXh0PXMsenIocix0Lm1lbW9pemVkU3RhdGUpfHwoamE9ITApLHQubWVtb2l6ZWRTdGF0ZT1yLHQuYmFzZVN0YXRlPWksdC5iYXNlUXVldWU9bCxuLmxhc3RSZW5kZXJlZFN0YXRlPXJ9cmV0dXJuW3QubWVtb2l6ZWRTdGF0ZSxuLmRpc3BhdGNoXX1mdW5jdGlvbiBpYShlKXt2YXIgdD1uYSgpLG49dC5xdWV1ZTtpZihudWxsPT09bil0aHJvdyBFcnJvcihhKDMxMSkpO24ubGFzdFJlbmRlcmVkUmVkdWNlcj1lO3ZhciByPW4uZGlzcGF0Y2gsbz1uLnBlbmRpbmcsaT10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW8pe24ucGVuZGluZz1udWxsO3ZhciBzPW89by5uZXh0O2Rve2k9ZShpLHMuYWN0aW9uKSxzPXMubmV4dH13aGlsZShzIT09byk7enIoaSx0Lm1lbW9pemVkU3RhdGUpfHwoamE9ITApLHQubWVtb2l6ZWRTdGF0ZT1pLG51bGw9PT10LmJhc2VRdWV1ZSYmKHQuYmFzZVN0YXRlPWkpLG4ubGFzdFJlbmRlcmVkU3RhdGU9aX1yZXR1cm5baSxyXX1mdW5jdGlvbiBhYShlKXt2YXIgdD10YSgpO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBlJiYoZT1lKCkpLHQubWVtb2l6ZWRTdGF0ZT10LmJhc2VTdGF0ZT1lLGU9KGU9dC5xdWV1ZT17cGVuZGluZzpudWxsLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpyYSxsYXN0UmVuZGVyZWRTdGF0ZTplfSkuZGlzcGF0Y2g9eGEuYmluZChudWxsLFppLGUpLFt0Lm1lbW9pemVkU3RhdGUsZV19ZnVuY3Rpb24gc2EoZSx0LG4scil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTp0LGRlc3Ryb3k6bixkZXBzOnIsbmV4dDpudWxsfSxudWxsPT09KHQ9WmkudXBkYXRlUXVldWUpPyh0PXtsYXN0RWZmZWN0Om51bGx9LFppLnVwZGF0ZVF1ZXVlPXQsdC5sYXN0RWZmZWN0PWUubmV4dD1lKTpudWxsPT09KG49dC5sYXN0RWZmZWN0KT90Lmxhc3RFZmZlY3Q9ZS5uZXh0PWU6KHI9bi5uZXh0LG4ubmV4dD1lLGUubmV4dD1yLHQubGFzdEVmZmVjdD1lKSxlfWZ1bmN0aW9uIGxhKCl7cmV0dXJuIG5hKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBjYShlLHQsbixyKXt2YXIgbz10YSgpO1ppLmVmZmVjdFRhZ3w9ZSxvLm1lbW9pemVkU3RhdGU9c2EoMXx0LG4sdm9pZCAwLHZvaWQgMD09PXI/bnVsbDpyKX1mdW5jdGlvbiB1YShlLHQsbixyKXt2YXIgbz1uYSgpO3I9dm9pZCAwPT09cj9udWxsOnI7dmFyIGk9dm9pZCAwO2lmKG51bGwhPT1ZaSl7dmFyIGE9WWkubWVtb2l6ZWRTdGF0ZTtpZihpPWEuZGVzdHJveSxudWxsIT09ciYmSmkocixhLmRlcHMpKXJldHVybiB2b2lkIHNhKHQsbixpLHIpfVppLmVmZmVjdFRhZ3w9ZSxvLm1lbW9pemVkU3RhdGU9c2EoMXx0LG4saSxyKX1mdW5jdGlvbiBkYShlLHQpe3JldHVybiBjYSg1MTYsNCxlLHQpfWZ1bmN0aW9uIHBhKGUsdCl7cmV0dXJuIHVhKDUxNiw0LGUsdCl9ZnVuY3Rpb24gZmEoZSx0KXtyZXR1cm4gdWEoNCwyLGUsdCl9ZnVuY3Rpb24gaGEoZSx0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgdD8oZT1lKCksdChlKSxmdW5jdGlvbigpe3QobnVsbCl9KTpudWxsIT09dCYmdm9pZCAwIT09dD8oZT1lKCksdC5jdXJyZW50PWUsZnVuY3Rpb24oKXt0LmN1cnJlbnQ9bnVsbH0pOnZvaWQgMH1mdW5jdGlvbiBtYShlLHQsbil7cmV0dXJuIG49bnVsbCE9PW4mJnZvaWQgMCE9PW4/bi5jb25jYXQoW2VdKTpudWxsLHVhKDQsMixoYS5iaW5kKG51bGwsdCxlKSxuKX1mdW5jdGlvbiBnYSgpe31mdW5jdGlvbiB5YShlLHQpe3JldHVybiB0YSgpLm1lbW9pemVkU3RhdGU9W2Usdm9pZCAwPT09dD9udWxsOnRdLGV9ZnVuY3Rpb24gdmEoZSx0KXt2YXIgbj1uYSgpO3Q9dm9pZCAwPT09dD9udWxsOnQ7dmFyIHI9bi5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsIT09ciYmbnVsbCE9PXQmJkppKHQsclsxXSk/clswXToobi5tZW1vaXplZFN0YXRlPVtlLHRdLGUpfWZ1bmN0aW9uIGJhKGUsdCl7dmFyIG49bmEoKTt0PXZvaWQgMD09PXQ/bnVsbDp0O3ZhciByPW4ubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PXImJm51bGwhPT10JiZKaSh0LHJbMV0pP3JbMF06KGU9ZSgpLG4ubWVtb2l6ZWRTdGF0ZT1bZSx0XSxlKX1mdW5jdGlvbiBUYShlLHQsbil7dmFyIHI9S28oKTtZbyg5OD5yPzk4OnIsKGZ1bmN0aW9uKCl7ZSghMCl9KSksWW8oOTc8cj85NzpyLChmdW5jdGlvbigpe3ZhciByPXFpLnN1c3BlbnNlO3FpLnN1c3BlbnNlPXZvaWQgMD09PXQ/bnVsbDp0O3RyeXtlKCExKSxuKCl9ZmluYWxseXtxaS5zdXNwZW5zZT1yfX0pKX1mdW5jdGlvbiB4YShlLHQsbil7dmFyIHI9Y2woKSxvPWJpLnN1c3BlbnNlO289e2V4cGlyYXRpb25UaW1lOnI9dWwocixlLG8pLHN1c3BlbnNlQ29uZmlnOm8sYWN0aW9uOm4sZWFnZXJSZWR1Y2VyOm51bGwsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07dmFyIGk9dC5wZW5kaW5nO2lmKG51bGw9PT1pP28ubmV4dD1vOihvLm5leHQ9aS5uZXh0LGkubmV4dD1vKSx0LnBlbmRpbmc9byxpPWUuYWx0ZXJuYXRlLGU9PT1aaXx8bnVsbCE9PWkmJmk9PT1aaSlYaT0hMCxvLmV4cGlyYXRpb25UaW1lPUtpLFppLmV4cGlyYXRpb25UaW1lPUtpO2Vsc2V7aWYoMD09PWUuZXhwaXJhdGlvblRpbWUmJihudWxsPT09aXx8MD09PWkuZXhwaXJhdGlvblRpbWUpJiZudWxsIT09KGk9dC5sYXN0UmVuZGVyZWRSZWR1Y2VyKSl0cnl7dmFyIGE9dC5sYXN0UmVuZGVyZWRTdGF0ZSxzPWkoYSxuKTtpZihvLmVhZ2VyUmVkdWNlcj1pLG8uZWFnZXJTdGF0ZT1zLHpyKHMsYSkpcmV0dXJufWNhdGNoKGwpe31kbChlLHIpfX12YXIgd2E9e3JlYWRDb250ZXh0OnVpLHVzZUNhbGxiYWNrOlFpLHVzZUNvbnRleHQ6UWksdXNlRWZmZWN0OlFpLHVzZUltcGVyYXRpdmVIYW5kbGU6UWksdXNlTGF5b3V0RWZmZWN0OlFpLHVzZU1lbW86UWksdXNlUmVkdWNlcjpRaSx1c2VSZWY6UWksdXNlU3RhdGU6UWksdXNlRGVidWdWYWx1ZTpRaSx1c2VSZXNwb25kZXI6UWksdXNlRGVmZXJyZWRWYWx1ZTpRaSx1c2VUcmFuc2l0aW9uOlFpfSxrYT17cmVhZENvbnRleHQ6dWksdXNlQ2FsbGJhY2s6eWEsdXNlQ29udGV4dDp1aSx1c2VFZmZlY3Q6ZGEsdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG49bnVsbCE9PW4mJnZvaWQgMCE9PW4/bi5jb25jYXQoW2VdKTpudWxsLGNhKDQsMixoYS5iaW5kKG51bGwsdCxlKSxuKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGNhKDQsMixlLHQpfSx1c2VNZW1vOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGEoKTtyZXR1cm4gdD12b2lkIDA9PT10P251bGw6dCxlPWUoKSxuLm1lbW9pemVkU3RhdGU9W2UsdF0sZX0sdXNlUmVkdWNlcjpmdW5jdGlvbihlLHQsbil7dmFyIHI9dGEoKTtyZXR1cm4gdD12b2lkIDAhPT1uP24odCk6dCxyLm1lbW9pemVkU3RhdGU9ci5iYXNlU3RhdGU9dCxlPShlPXIucXVldWU9e3BlbmRpbmc6bnVsbCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6ZSxsYXN0UmVuZGVyZWRTdGF0ZTp0fSkuZGlzcGF0Y2g9eGEuYmluZChudWxsLFppLGUpLFtyLm1lbW9pemVkU3RhdGUsZV19LHVzZVJlZjpmdW5jdGlvbihlKXtyZXR1cm4gZT17Y3VycmVudDplfSx0YSgpLm1lbW9pemVkU3RhdGU9ZX0sdXNlU3RhdGU6YWEsdXNlRGVidWdWYWx1ZTpnYSx1c2VSZXNwb25kZXI6VmksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPWFhKGUpLHI9blswXSxvPW5bMV07cmV0dXJuIGRhKChmdW5jdGlvbigpe3ZhciBuPXFpLnN1c3BlbnNlO3FpLnN1c3BlbnNlPXZvaWQgMD09PXQ/bnVsbDp0O3RyeXtvKGUpfWZpbmFsbHl7cWkuc3VzcGVuc2U9bn19KSxbZSx0XSkscn0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbihlKXt2YXIgdD1hYSghMSksbj10WzBdO3JldHVybiB0PXRbMV0sW3lhKFRhLmJpbmQobnVsbCx0LGUpLFt0LGVdKSxuXX19LEVhPXtyZWFkQ29udGV4dDp1aSx1c2VDYWxsYmFjazp2YSx1c2VDb250ZXh0OnVpLHVzZUVmZmVjdDpwYSx1c2VJbXBlcmF0aXZlSGFuZGxlOm1hLHVzZUxheW91dEVmZmVjdDpmYSx1c2VNZW1vOmJhLHVzZVJlZHVjZXI6b2EsdXNlUmVmOmxhLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG9hKHJhKX0sdXNlRGVidWdWYWx1ZTpnYSx1c2VSZXNwb25kZXI6VmksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPW9hKHJhKSxyPW5bMF0sbz1uWzFdO3JldHVybiBwYSgoZnVuY3Rpb24oKXt2YXIgbj1xaS5zdXNwZW5zZTtxaS5zdXNwZW5zZT12b2lkIDA9PT10P251bGw6dDt0cnl7byhlKX1maW5hbGx5e3FpLnN1c3BlbnNlPW59fSksW2UsdF0pLHJ9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oZSl7dmFyIHQ9b2EocmEpLG49dFswXTtyZXR1cm4gdD10WzFdLFt2YShUYS5iaW5kKG51bGwsdCxlKSxbdCxlXSksbl19fSxTYT17cmVhZENvbnRleHQ6dWksdXNlQ2FsbGJhY2s6dmEsdXNlQ29udGV4dDp1aSx1c2VFZmZlY3Q6cGEsdXNlSW1wZXJhdGl2ZUhhbmRsZTptYSx1c2VMYXlvdXRFZmZlY3Q6ZmEsdXNlTWVtbzpiYSx1c2VSZWR1Y2VyOmlhLHVzZVJlZjpsYSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBpYShyYSl9LHVzZURlYnVnVmFsdWU6Z2EsdXNlUmVzcG9uZGVyOlZpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1pYShyYSkscj1uWzBdLG89blsxXTtyZXR1cm4gcGEoKGZ1bmN0aW9uKCl7dmFyIG49cWkuc3VzcGVuc2U7cWkuc3VzcGVuc2U9dm9pZCAwPT09dD9udWxsOnQ7dHJ5e28oZSl9ZmluYWxseXtxaS5zdXNwZW5zZT1ufX0pLFtlLHRdKSxyfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PWlhKHJhKSxuPXRbMF07cmV0dXJuIHQ9dFsxXSxbdmEoVGEuYmluZChudWxsLHQsZSksW3QsZV0pLG5dfX0sQWE9bnVsbCxDYT1udWxsLF9hPSExO2Z1bmN0aW9uIERhKGUsdCl7dmFyIG49R2woNSxudWxsLG51bGwsMCk7bi5lbGVtZW50VHlwZT1cIkRFTEVURURcIixuLnR5cGU9XCJERUxFVEVEXCIsbi5zdGF0ZU5vZGU9dCxuLnJldHVybj1lLG4uZWZmZWN0VGFnPTgsbnVsbCE9PWUubGFzdEVmZmVjdD8oZS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9bixlLmxhc3RFZmZlY3Q9bik6ZS5maXJzdEVmZmVjdD1lLmxhc3RFZmZlY3Q9bn1mdW5jdGlvbiBSYShlLHQpe3N3aXRjaChlLnRhZyl7Y2FzZSA1OnZhciBuPWUudHlwZTtyZXR1cm4gbnVsbCE9PSh0PTEhPT10Lm5vZGVUeXBlfHxuLnRvTG93ZXJDYXNlKCkhPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDp0KSYmKGUuc3RhdGVOb2RlPXQsITApO2Nhc2UgNjpyZXR1cm4gbnVsbCE9PSh0PVwiXCI9PT1lLnBlbmRpbmdQcm9wc3x8MyE9PXQubm9kZVR5cGU/bnVsbDp0KSYmKGUuc3RhdGVOb2RlPXQsITApO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIE9hKGUpe2lmKF9hKXt2YXIgdD1DYTtpZih0KXt2YXIgbj10O2lmKCFSYShlLHQpKXtpZighKHQ9Q24obi5uZXh0U2libGluZykpfHwhUmEoZSx0KSlyZXR1cm4gZS5lZmZlY3RUYWc9LTEwMjUmZS5lZmZlY3RUYWd8MixfYT0hMSx2b2lkKEFhPWUpO0RhKEFhLG4pfUFhPWUsQ2E9Q24odC5maXJzdENoaWxkKX1lbHNlIGUuZWZmZWN0VGFnPS0xMDI1JmUuZWZmZWN0VGFnfDIsX2E9ITEsQWE9ZX19ZnVuY3Rpb24gUGEoZSl7Zm9yKGU9ZS5yZXR1cm47bnVsbCE9PWUmJjUhPT1lLnRhZyYmMyE9PWUudGFnJiYxMyE9PWUudGFnOyllPWUucmV0dXJuO0FhPWV9ZnVuY3Rpb24gTGEoZSl7aWYoZSE9PUFhKXJldHVybiExO2lmKCFfYSlyZXR1cm4gUGEoZSksX2E9ITAsITE7dmFyIHQ9ZS50eXBlO2lmKDUhPT1lLnRhZ3x8XCJoZWFkXCIhPT10JiZcImJvZHlcIiE9PXQmJiFFbih0LGUubWVtb2l6ZWRQcm9wcykpZm9yKHQ9Q2E7dDspRGEoZSx0KSx0PUNuKHQubmV4dFNpYmxpbmcpO2lmKFBhKGUpLDEzPT09ZS50YWcpe2lmKCEoZT1udWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IoYSgzMTcpKTtlOntmb3IoZT1lLm5leHRTaWJsaW5nLHQ9MDtlOyl7aWYoOD09PWUubm9kZVR5cGUpe3ZhciBuPWUuZGF0YTtpZihuPT09dm4pe2lmKDA9PT10KXtDYT1DbihlLm5leHRTaWJsaW5nKTticmVhayBlfXQtLX1lbHNlIG4hPT15biYmbiE9PVRuJiZuIT09Ym58fHQrK31lPWUubmV4dFNpYmxpbmd9Q2E9bnVsbH19ZWxzZSBDYT1BYT9DbihlLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBOYSgpe0NhPUFhPW51bGwsX2E9ITF9dmFyIElhPSQuUmVhY3RDdXJyZW50T3duZXIsamE9ITE7ZnVuY3Rpb24gQmEoZSx0LG4scil7dC5jaGlsZD1udWxsPT09ZT9QaSh0LG51bGwsbixyKTpPaSh0LGUuY2hpbGQsbixyKX1mdW5jdGlvbiBIYShlLHQsbixyLG8pe249bi5yZW5kZXI7dmFyIGk9dC5yZWY7cmV0dXJuIGNpKHQsbykscj1lYShlLHQsbixyLGksbyksbnVsbD09PWV8fGphPyh0LmVmZmVjdFRhZ3w9MSxCYShlLHQscixvKSx0LmNoaWxkKToodC51cGRhdGVRdWV1ZT1lLnVwZGF0ZVF1ZXVlLHQuZWZmZWN0VGFnJj0tNTE3LGUuZXhwaXJhdGlvblRpbWU8PW8mJihlLmV4cGlyYXRpb25UaW1lPTApLHRzKGUsdCxvKSl9ZnVuY3Rpb24gRmEoZSx0LG4scixvLGkpe2lmKG51bGw9PT1lKXt2YXIgYT1uLnR5cGU7cmV0dXJuXCJmdW5jdGlvblwiIT09dHlwZW9mIGF8fFVsKGEpfHx2b2lkIDAhPT1hLmRlZmF1bHRQcm9wc3x8bnVsbCE9PW4uY29tcGFyZXx8dm9pZCAwIT09bi5kZWZhdWx0UHJvcHM/KChlPVZsKG4udHlwZSxudWxsLHIsbnVsbCx0Lm1vZGUsaSkpLnJlZj10LnJlZixlLnJldHVybj10LHQuY2hpbGQ9ZSk6KHQudGFnPTE1LHQudHlwZT1hLE1hKGUsdCxhLHIsbyxpKSl9cmV0dXJuIGE9ZS5jaGlsZCxvPGkmJihvPWEubWVtb2l6ZWRQcm9wcywobj1udWxsIT09KG49bi5jb21wYXJlKT9uOldyKShvLHIpJiZlLnJlZj09PXQucmVmKT90cyhlLHQsaSk6KHQuZWZmZWN0VGFnfD0xLChlPXpsKGEscikpLnJlZj10LnJlZixlLnJldHVybj10LHQuY2hpbGQ9ZSl9ZnVuY3Rpb24gTWEoZSx0LG4scixvLGkpe3JldHVybiBudWxsIT09ZSYmV3IoZS5tZW1vaXplZFByb3BzLHIpJiZlLnJlZj09PXQucmVmJiYoamE9ITEsbzxpKT8odC5leHBpcmF0aW9uVGltZT1lLmV4cGlyYXRpb25UaW1lLHRzKGUsdCxpKSk6VWEoZSx0LG4scixpKX1mdW5jdGlvbiBHYShlLHQpe3ZhciBuPXQucmVmOyhudWxsPT09ZSYmbnVsbCE9PW58fG51bGwhPT1lJiZlLnJlZiE9PW4pJiYodC5lZmZlY3RUYWd8PTEyOCl9ZnVuY3Rpb24gVWEoZSx0LG4scixvKXt2YXIgaT13byhuKT9Ubzp2by5jdXJyZW50O3JldHVybiBpPXhvKHQsaSksY2kodCxvKSxuPWVhKGUsdCxuLHIsaSxvKSxudWxsPT09ZXx8amE/KHQuZWZmZWN0VGFnfD0xLEJhKGUsdCxuLG8pLHQuY2hpbGQpOih0LnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdC5lZmZlY3RUYWcmPS01MTcsZS5leHBpcmF0aW9uVGltZTw9byYmKGUuZXhwaXJhdGlvblRpbWU9MCksdHMoZSx0LG8pKX1mdW5jdGlvbiB6YShlLHQsbixyLG8pe2lmKHdvKG4pKXt2YXIgaT0hMDtBbyh0KX1lbHNlIGk9ITE7aWYoY2kodCxvKSxudWxsPT09dC5zdGF0ZU5vZGUpbnVsbCE9PWUmJihlLmFsdGVybmF0ZT1udWxsLHQuYWx0ZXJuYXRlPW51bGwsdC5lZmZlY3RUYWd8PTIpLEVpKHQsbixyKSxBaSh0LG4scixvKSxyPSEwO2Vsc2UgaWYobnVsbD09PWUpe3ZhciBhPXQuc3RhdGVOb2RlLHM9dC5tZW1vaXplZFByb3BzO2EucHJvcHM9czt2YXIgbD1hLmNvbnRleHQsYz1uLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWM/Yz11aShjKTpjPXhvKHQsYz13byhuKT9Ubzp2by5jdXJyZW50KTt2YXIgdT1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyxkPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB1fHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtkfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KHMhPT1yfHxsIT09YykmJlNpKHQsYSxyLGMpLGRpPSExO3ZhciBwPXQubWVtb2l6ZWRTdGF0ZTthLnN0YXRlPXAseWkodCxyLGEsbyksbD10Lm1lbW9pemVkU3RhdGUscyE9PXJ8fHAhPT1sfHxiby5jdXJyZW50fHxkaT8oXCJmdW5jdGlvblwiPT09dHlwZW9mIHUmJih4aSh0LG4sdSxyKSxsPXQubWVtb2l6ZWRTdGF0ZSksKHM9ZGl8fGtpKHQsbixzLHIscCxsLGMpKT8oZHx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50fHwoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50JiZhLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZWZmZWN0VGFnfD00KSk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYodC5lZmZlY3RUYWd8PTQpLHQubWVtb2l6ZWRQcm9wcz1yLHQubWVtb2l6ZWRTdGF0ZT1sKSxhLnByb3BzPXIsYS5zdGF0ZT1sLGEuY29udGV4dD1jLHI9cyk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYodC5lZmZlY3RUYWd8PTQpLHI9ITEpfWVsc2UgYT10LnN0YXRlTm9kZSxmaShlLHQpLHM9dC5tZW1vaXplZFByb3BzLGEucHJvcHM9dC50eXBlPT09dC5lbGVtZW50VHlwZT9zOnRpKHQudHlwZSxzKSxsPWEuY29udGV4dCxcIm9iamVjdFwiPT09dHlwZW9mKGM9bi5jb250ZXh0VHlwZSkmJm51bGwhPT1jP2M9dWkoYyk6Yz14byh0LGM9d28obik/VG86dm8uY3VycmVudCksKGQ9XCJmdW5jdGlvblwiPT09dHlwZW9mKHU9bi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMpfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwocyE9PXJ8fGwhPT1jKSYmU2kodCxhLHIsYyksZGk9ITEsbD10Lm1lbW9pemVkU3RhdGUsYS5zdGF0ZT1sLHlpKHQscixhLG8pLHA9dC5tZW1vaXplZFN0YXRlLHMhPT1yfHxsIT09cHx8Ym8uY3VycmVudHx8ZGk/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiB1JiYoeGkodCxuLHUscikscD10Lm1lbW9pemVkU3RhdGUpLCh1PWRpfHxraSh0LG4scyxyLGwscCxjKSk/KGR8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlfHwoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuY29tcG9uZW50V2lsbFVwZGF0ZSYmYS5jb21wb25lbnRXaWxsVXBkYXRlKHIscCxjKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmYS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShyLHAsYykpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZSYmKHQuZWZmZWN0VGFnfD00KSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKHQuZWZmZWN0VGFnfD0yNTYpKTooXCJmdW5jdGlvblwiIT09dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxzPT09ZS5tZW1vaXplZFByb3BzJiZsPT09ZS5tZW1vaXplZFN0YXRlfHwodC5lZmZlY3RUYWd8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxzPT09ZS5tZW1vaXplZFByb3BzJiZsPT09ZS5tZW1vaXplZFN0YXRlfHwodC5lZmZlY3RUYWd8PTI1NiksdC5tZW1vaXplZFByb3BzPXIsdC5tZW1vaXplZFN0YXRlPXApLGEucHJvcHM9cixhLnN0YXRlPXAsYS5jb250ZXh0PWMscj11KTooXCJmdW5jdGlvblwiIT09dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxzPT09ZS5tZW1vaXplZFByb3BzJiZsPT09ZS5tZW1vaXplZFN0YXRlfHwodC5lZmZlY3RUYWd8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxzPT09ZS5tZW1vaXplZFByb3BzJiZsPT09ZS5tZW1vaXplZFN0YXRlfHwodC5lZmZlY3RUYWd8PTI1Nikscj0hMSk7cmV0dXJuIFZhKGUsdCxuLHIsaSxvKX1mdW5jdGlvbiBWYShlLHQsbixyLG8saSl7R2EoZSx0KTt2YXIgYT0wIT09KDY0JnQuZWZmZWN0VGFnKTtpZighciYmIWEpcmV0dXJuIG8mJkNvKHQsbiwhMSksdHMoZSx0LGkpO3I9dC5zdGF0ZU5vZGUsSWEuY3VycmVudD10O3ZhciBzPWEmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBuLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOnIucmVuZGVyKCk7cmV0dXJuIHQuZWZmZWN0VGFnfD0xLG51bGwhPT1lJiZhPyh0LmNoaWxkPU9pKHQsZS5jaGlsZCxudWxsLGkpLHQuY2hpbGQ9T2kodCxudWxsLHMsaSkpOkJhKGUsdCxzLGkpLHQubWVtb2l6ZWRTdGF0ZT1yLnN0YXRlLG8mJkNvKHQsbiwhMCksdC5jaGlsZH1mdW5jdGlvbiBXYShlKXt2YXIgdD1lLnN0YXRlTm9kZTt0LnBlbmRpbmdDb250ZXh0P0VvKDAsdC5wZW5kaW5nQ29udGV4dCx0LnBlbmRpbmdDb250ZXh0IT09dC5jb250ZXh0KTp0LmNvbnRleHQmJkVvKDAsdC5jb250ZXh0LCExKSxIaShlLHQuY29udGFpbmVySW5mbyl9dmFyIHFhLEthLFphLFlhLCRhPXtkZWh5ZHJhdGVkOm51bGwscmV0cnlUaW1lOjB9O2Z1bmN0aW9uIFhhKGUsdCxuKXt2YXIgcixvPXQubW9kZSxpPXQucGVuZGluZ1Byb3BzLGE9VWkuY3VycmVudCxzPSExO2lmKChyPTAhPT0oNjQmdC5lZmZlY3RUYWcpKXx8KHI9MCE9PSgyJmEpJiYobnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpKSxyPyhzPSEwLHQuZWZmZWN0VGFnJj0tNjUpOm51bGwhPT1lJiZudWxsPT09ZS5tZW1vaXplZFN0YXRlfHx2b2lkIDA9PT1pLmZhbGxiYWNrfHwhMD09PWkudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fChhfD0xKSxnbyhVaSwxJmEpLG51bGw9PT1lKXtpZih2b2lkIDAhPT1pLmZhbGxiYWNrJiZPYSh0KSxzKXtpZihzPWkuZmFsbGJhY2ssKGk9V2wobnVsbCxvLDAsbnVsbCkpLnJldHVybj10LDA9PT0oMiZ0Lm1vZGUpKWZvcihlPW51bGwhPT10Lm1lbW9pemVkU3RhdGU/dC5jaGlsZC5jaGlsZDp0LmNoaWxkLGkuY2hpbGQ9ZTtudWxsIT09ZTspZS5yZXR1cm49aSxlPWUuc2libGluZztyZXR1cm4obj1XbChzLG8sbixudWxsKSkucmV0dXJuPXQsaS5zaWJsaW5nPW4sdC5tZW1vaXplZFN0YXRlPSRhLHQuY2hpbGQ9aSxufXJldHVybiBvPWkuY2hpbGRyZW4sdC5tZW1vaXplZFN0YXRlPW51bGwsdC5jaGlsZD1QaSh0LG51bGwsbyxuKX1pZihudWxsIT09ZS5tZW1vaXplZFN0YXRlKXtpZihvPShlPWUuY2hpbGQpLnNpYmxpbmcscyl7aWYoaT1pLmZhbGxiYWNrLChuPXpsKGUsZS5wZW5kaW5nUHJvcHMpKS5yZXR1cm49dCwwPT09KDImdC5tb2RlKSYmKHM9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZT90LmNoaWxkLmNoaWxkOnQuY2hpbGQpIT09ZS5jaGlsZClmb3Iobi5jaGlsZD1zO251bGwhPT1zOylzLnJldHVybj1uLHM9cy5zaWJsaW5nO3JldHVybihvPXpsKG8saSkpLnJldHVybj10LG4uc2libGluZz1vLG4uY2hpbGRFeHBpcmF0aW9uVGltZT0wLHQubWVtb2l6ZWRTdGF0ZT0kYSx0LmNoaWxkPW4sb31yZXR1cm4gbj1PaSh0LGUuY2hpbGQsaS5jaGlsZHJlbixuKSx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LmNoaWxkPW59aWYoZT1lLmNoaWxkLHMpe2lmKHM9aS5mYWxsYmFjaywoaT1XbChudWxsLG8sMCxudWxsKSkucmV0dXJuPXQsaS5jaGlsZD1lLG51bGwhPT1lJiYoZS5yZXR1cm49aSksMD09PSgyJnQubW9kZSkpZm9yKGU9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZT90LmNoaWxkLmNoaWxkOnQuY2hpbGQsaS5jaGlsZD1lO251bGwhPT1lOyllLnJldHVybj1pLGU9ZS5zaWJsaW5nO3JldHVybihuPVdsKHMsbyxuLG51bGwpKS5yZXR1cm49dCxpLnNpYmxpbmc9bixuLmVmZmVjdFRhZ3w9MixpLmNoaWxkRXhwaXJhdGlvblRpbWU9MCx0Lm1lbW9pemVkU3RhdGU9JGEsdC5jaGlsZD1pLG59cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1udWxsLHQuY2hpbGQ9T2kodCxlLGkuY2hpbGRyZW4sbil9ZnVuY3Rpb24gUWEoZSx0KXtlLmV4cGlyYXRpb25UaW1lPHQmJihlLmV4cGlyYXRpb25UaW1lPXQpO3ZhciBuPWUuYWx0ZXJuYXRlO251bGwhPT1uJiZuLmV4cGlyYXRpb25UaW1lPHQmJihuLmV4cGlyYXRpb25UaW1lPXQpLGxpKGUucmV0dXJuLHQpfWZ1bmN0aW9uIEphKGUsdCxuLHIsbyxpKXt2YXIgYT1lLm1lbW9pemVkU3RhdGU7bnVsbD09PWE/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczp0LHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6cix0YWlsOm4sdGFpbEV4cGlyYXRpb246MCx0YWlsTW9kZTpvLGxhc3RFZmZlY3Q6aX06KGEuaXNCYWNrd2FyZHM9dCxhLnJlbmRlcmluZz1udWxsLGEucmVuZGVyaW5nU3RhcnRUaW1lPTAsYS5sYXN0PXIsYS50YWlsPW4sYS50YWlsRXhwaXJhdGlvbj0wLGEudGFpbE1vZGU9byxhLmxhc3RFZmZlY3Q9aSl9ZnVuY3Rpb24gZXMoZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzLG89ci5yZXZlYWxPcmRlcixpPXIudGFpbDtpZihCYShlLHQsci5jaGlsZHJlbixuKSwwIT09KDImKHI9VWkuY3VycmVudCkpKXI9MSZyfDIsdC5lZmZlY3RUYWd8PTY0O2Vsc2V7aWYobnVsbCE9PWUmJjAhPT0oNjQmZS5lZmZlY3RUYWcpKWU6Zm9yKGU9dC5jaGlsZDtudWxsIT09ZTspe2lmKDEzPT09ZS50YWcpbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmUWEoZSxuKTtlbHNlIGlmKDE5PT09ZS50YWcpUWEoZSxuKTtlbHNlIGlmKG51bGwhPT1lLmNoaWxkKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX1pZihlPT09dClicmVhayBlO2Zvcig7bnVsbD09PWUuc2libGluZzspe2lmKG51bGw9PT1lLnJldHVybnx8ZS5yZXR1cm49PT10KWJyZWFrIGU7ZT1lLnJldHVybn1lLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nfXImPTF9aWYoZ28oVWksciksMD09PSgyJnQubW9kZSkpdC5tZW1vaXplZFN0YXRlPW51bGw7ZWxzZSBzd2l0Y2gobyl7Y2FzZVwiZm9yd2FyZHNcIjpmb3Iobj10LmNoaWxkLG89bnVsbDtudWxsIT09bjspbnVsbCE9PShlPW4uYWx0ZXJuYXRlKSYmbnVsbD09PXppKGUpJiYobz1uKSxuPW4uc2libGluZztudWxsPT09KG49byk/KG89dC5jaGlsZCx0LmNoaWxkPW51bGwpOihvPW4uc2libGluZyxuLnNpYmxpbmc9bnVsbCksSmEodCwhMSxvLG4saSx0Lmxhc3RFZmZlY3QpO2JyZWFrO2Nhc2VcImJhY2t3YXJkc1wiOmZvcihuPW51bGwsbz10LmNoaWxkLHQuY2hpbGQ9bnVsbDtudWxsIT09bzspe2lmKG51bGwhPT0oZT1vLmFsdGVybmF0ZSkmJm51bGw9PT16aShlKSl7dC5jaGlsZD1vO2JyZWFrfWU9by5zaWJsaW5nLG8uc2libGluZz1uLG49byxvPWV9SmEodCwhMCxuLG51bGwsaSx0Lmxhc3RFZmZlY3QpO2JyZWFrO2Nhc2VcInRvZ2V0aGVyXCI6SmEodCwhMSxudWxsLG51bGwsdm9pZCAwLHQubGFzdEVmZmVjdCk7YnJlYWs7ZGVmYXVsdDp0Lm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiB0cyhlLHQsbil7bnVsbCE9PWUmJih0LmRlcGVuZGVuY2llcz1lLmRlcGVuZGVuY2llcyk7dmFyIHI9dC5leHBpcmF0aW9uVGltZTtpZigwIT09ciYma2wociksdC5jaGlsZEV4cGlyYXRpb25UaW1lPG4pcmV0dXJuIG51bGw7aWYobnVsbCE9PWUmJnQuY2hpbGQhPT1lLmNoaWxkKXRocm93IEVycm9yKGEoMTUzKSk7aWYobnVsbCE9PXQuY2hpbGQpe2ZvcihuPXpsKGU9dC5jaGlsZCxlLnBlbmRpbmdQcm9wcyksdC5jaGlsZD1uLG4ucmV0dXJuPXQ7bnVsbCE9PWUuc2libGluZzspZT1lLnNpYmxpbmcsKG49bi5zaWJsaW5nPXpsKGUsZS5wZW5kaW5nUHJvcHMpKS5yZXR1cm49dDtuLnNpYmxpbmc9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiBucyhlLHQpe3N3aXRjaChlLnRhaWxNb2RlKXtjYXNlXCJoaWRkZW5cIjp0PWUudGFpbDtmb3IodmFyIG49bnVsbDtudWxsIT09dDspbnVsbCE9PXQuYWx0ZXJuYXRlJiYobj10KSx0PXQuc2libGluZztudWxsPT09bj9lLnRhaWw9bnVsbDpuLnNpYmxpbmc9bnVsbDticmVhaztjYXNlXCJjb2xsYXBzZWRcIjpuPWUudGFpbDtmb3IodmFyIHI9bnVsbDtudWxsIT09bjspbnVsbCE9PW4uYWx0ZXJuYXRlJiYocj1uKSxuPW4uc2libGluZztudWxsPT09cj90fHxudWxsPT09ZS50YWlsP2UudGFpbD1udWxsOmUudGFpbC5zaWJsaW5nPW51bGw6ci5zaWJsaW5nPW51bGx9fWZ1bmN0aW9uIHJzKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcztzd2l0Y2godC50YWcpe2Nhc2UgMjpjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiBudWxsO2Nhc2UgMTpjYXNlIDE3OnJldHVybiB3byh0LnR5cGUpJiZrbygpLG51bGw7Y2FzZSAzOnJldHVybiBGaSgpLG1vKGJvKSxtbyh2byksKG49dC5zdGF0ZU5vZGUpLnBlbmRpbmdDb250ZXh0JiYobi5jb250ZXh0PW4ucGVuZGluZ0NvbnRleHQsbi5wZW5kaW5nQ29udGV4dD1udWxsKSxudWxsIT09ZSYmbnVsbCE9PWUuY2hpbGR8fCFMYSh0KXx8KHQuZWZmZWN0VGFnfD00KSxLYSh0KSxudWxsO2Nhc2UgNTpHaSh0KSxuPUJpKGppLmN1cnJlbnQpO3ZhciBpPXQudHlwZTtpZihudWxsIT09ZSYmbnVsbCE9dC5zdGF0ZU5vZGUpWmEoZSx0LGkscixuKSxlLnJlZiE9PXQucmVmJiYodC5lZmZlY3RUYWd8PTEyOCk7ZWxzZXtpZighcil7aWYobnVsbD09PXQuc3RhdGVOb2RlKXRocm93IEVycm9yKGEoMTY2KSk7cmV0dXJuIG51bGx9aWYoZT1CaShOaS5jdXJyZW50KSxMYSh0KSl7cj10LnN0YXRlTm9kZSxpPXQudHlwZTt2YXIgcz10Lm1lbW9pemVkUHJvcHM7c3dpdGNoKHJbUm5dPXQscltPbl09cyxpKXtjYXNlXCJpZnJhbWVcIjpjYXNlXCJvYmplY3RcIjpjYXNlXCJlbWJlZFwiOlp0KFwibG9hZFwiLHIpO2JyZWFrO2Nhc2VcInZpZGVvXCI6Y2FzZVwiYXVkaW9cIjpmb3IoZT0wO2U8WGUubGVuZ3RoO2UrKyladChYZVtlXSxyKTticmVhaztjYXNlXCJzb3VyY2VcIjpadChcImVycm9yXCIscik7YnJlYWs7Y2FzZVwiaW1nXCI6Y2FzZVwiaW1hZ2VcIjpjYXNlXCJsaW5rXCI6WnQoXCJlcnJvclwiLHIpLFp0KFwibG9hZFwiLHIpO2JyZWFrO2Nhc2VcImZvcm1cIjpadChcInJlc2V0XCIsciksWnQoXCJzdWJtaXRcIixyKTticmVhaztjYXNlXCJkZXRhaWxzXCI6WnQoXCJ0b2dnbGVcIixyKTticmVhaztjYXNlXCJpbnB1dFwiOmtlKHIscyksWnQoXCJpbnZhbGlkXCIsciksY24obixcIm9uQ2hhbmdlXCIpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOnIuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFzLm11bHRpcGxlfSxadChcImludmFsaWRcIixyKSxjbihuLFwib25DaGFuZ2VcIik7YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjpPZShyLHMpLFp0KFwiaW52YWxpZFwiLHIpLGNuKG4sXCJvbkNoYW5nZVwiKX1mb3IodmFyIGwgaW4gYW4oaSxzKSxlPW51bGwscylpZihzLmhhc093blByb3BlcnR5KGwpKXt2YXIgYz1zW2xdO1wiY2hpbGRyZW5cIj09PWw/XCJzdHJpbmdcIj09PXR5cGVvZiBjP3IudGV4dENvbnRlbnQhPT1jJiYoZT1bXCJjaGlsZHJlblwiLGNdKTpcIm51bWJlclwiPT09dHlwZW9mIGMmJnIudGV4dENvbnRlbnQhPT1cIlwiK2MmJihlPVtcImNoaWxkcmVuXCIsXCJcIitjXSk6RS5oYXNPd25Qcm9wZXJ0eShsKSYmbnVsbCE9YyYmY24obixsKX1zd2l0Y2goaSl7Y2FzZVwiaW5wdXRcIjpUZShyKSxBZShyLHMsITApO2JyZWFrO2Nhc2VcInRleHRhcmVhXCI6VGUociksTGUocik7YnJlYWs7Y2FzZVwic2VsZWN0XCI6Y2FzZVwib3B0aW9uXCI6YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2Ygcy5vbkNsaWNrJiYoci5vbmNsaWNrPXVuKX1uPWUsdC51cGRhdGVRdWV1ZT1uLG51bGwhPT1uJiYodC5lZmZlY3RUYWd8PTQpfWVsc2V7c3dpdGNoKGw9OT09PW4ubm9kZVR5cGU/bjpuLm93bmVyRG9jdW1lbnQsZT09PWxuJiYoZT1qZShpKSksZT09PWxuP1wic2NyaXB0XCI9PT1pPygoZT1sLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikpLmlubmVySFRNTD1cIjxzY3JpcHQ+PFxcL3NjcmlwdD5cIixlPWUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKSk6XCJzdHJpbmdcIj09PXR5cGVvZiByLmlzP2U9bC5jcmVhdGVFbGVtZW50KGkse2lzOnIuaXN9KTooZT1sLmNyZWF0ZUVsZW1lbnQoaSksXCJzZWxlY3RcIj09PWkmJihsPWUsci5tdWx0aXBsZT9sLm11bHRpcGxlPSEwOnIuc2l6ZSYmKGwuc2l6ZT1yLnNpemUpKSk6ZT1sLmNyZWF0ZUVsZW1lbnROUyhlLGkpLGVbUm5dPXQsZVtPbl09cixxYShlLHQsITEsITEpLHQuc3RhdGVOb2RlPWUsbD1zbihpLHIpLGkpe2Nhc2VcImlmcmFtZVwiOmNhc2VcIm9iamVjdFwiOmNhc2VcImVtYmVkXCI6WnQoXCJsb2FkXCIsZSksYz1yO2JyZWFrO2Nhc2VcInZpZGVvXCI6Y2FzZVwiYXVkaW9cIjpmb3IoYz0wO2M8WGUubGVuZ3RoO2MrKyladChYZVtjXSxlKTtjPXI7YnJlYWs7Y2FzZVwic291cmNlXCI6WnQoXCJlcnJvclwiLGUpLGM9cjticmVhaztjYXNlXCJpbWdcIjpjYXNlXCJpbWFnZVwiOmNhc2VcImxpbmtcIjpadChcImVycm9yXCIsZSksWnQoXCJsb2FkXCIsZSksYz1yO2JyZWFrO2Nhc2VcImZvcm1cIjpadChcInJlc2V0XCIsZSksWnQoXCJzdWJtaXRcIixlKSxjPXI7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOlp0KFwidG9nZ2xlXCIsZSksYz1yO2JyZWFrO2Nhc2VcImlucHV0XCI6a2UoZSxyKSxjPXdlKGUsciksWnQoXCJpbnZhbGlkXCIsZSksY24obixcIm9uQ2hhbmdlXCIpO2JyZWFrO2Nhc2VcIm9wdGlvblwiOmM9X2UoZSxyKTticmVhaztjYXNlXCJzZWxlY3RcIjplLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhci5tdWx0aXBsZX0sYz1vKHt9LHIse3ZhbHVlOnZvaWQgMH0pLFp0KFwiaW52YWxpZFwiLGUpLGNuKG4sXCJvbkNoYW5nZVwiKTticmVhaztjYXNlXCJ0ZXh0YXJlYVwiOk9lKGUsciksYz1SZShlLHIpLFp0KFwiaW52YWxpZFwiLGUpLGNuKG4sXCJvbkNoYW5nZVwiKTticmVhaztkZWZhdWx0OmM9cn1hbihpLGMpO3ZhciB1PWM7Zm9yKHMgaW4gdSlpZih1Lmhhc093blByb3BlcnR5KHMpKXt2YXIgZD11W3NdO1wic3R5bGVcIj09PXM/cm4oZSxkKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1zP251bGwhPShkPWQ/ZC5fX2h0bWw6dm9pZCAwKSYmTWUoZSxkKTpcImNoaWxkcmVuXCI9PT1zP1wic3RyaW5nXCI9PT10eXBlb2YgZD8oXCJ0ZXh0YXJlYVwiIT09aXx8XCJcIiE9PWQpJiZHZShlLGQpOlwibnVtYmVyXCI9PT10eXBlb2YgZCYmR2UoZSxcIlwiK2QpOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1zJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09cyYmXCJhdXRvRm9jdXNcIiE9PXMmJihFLmhhc093blByb3BlcnR5KHMpP251bGwhPWQmJmNuKG4scyk6bnVsbCE9ZCYmWChlLHMsZCxsKSl9c3dpdGNoKGkpe2Nhc2VcImlucHV0XCI6VGUoZSksQWUoZSxyLCExKTticmVhaztjYXNlXCJ0ZXh0YXJlYVwiOlRlKGUpLExlKGUpO2JyZWFrO2Nhc2VcIm9wdGlvblwiOm51bGwhPXIudmFsdWUmJmUuc2V0QXR0cmlidXRlKFwidmFsdWVcIixcIlwiK3ZlKHIudmFsdWUpKTticmVhaztjYXNlXCJzZWxlY3RcIjplLm11bHRpcGxlPSEhci5tdWx0aXBsZSxudWxsIT0obj1yLnZhbHVlKT9EZShlLCEhci5tdWx0aXBsZSxuLCExKTpudWxsIT1yLmRlZmF1bHRWYWx1ZSYmRGUoZSwhIXIubXVsdGlwbGUsci5kZWZhdWx0VmFsdWUsITApO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGMub25DbGljayYmKGUub25jbGljaz11bil9a24oaSxyKSYmKHQuZWZmZWN0VGFnfD00KX1udWxsIT09dC5yZWYmJih0LmVmZmVjdFRhZ3w9MTI4KX1yZXR1cm4gbnVsbDtjYXNlIDY6aWYoZSYmbnVsbCE9dC5zdGF0ZU5vZGUpWWEoZSx0LGUubWVtb2l6ZWRQcm9wcyxyKTtlbHNle2lmKFwic3RyaW5nXCIhPT10eXBlb2YgciYmbnVsbD09PXQuc3RhdGVOb2RlKXRocm93IEVycm9yKGEoMTY2KSk7bj1CaShqaS5jdXJyZW50KSxCaShOaS5jdXJyZW50KSxMYSh0KT8obj10LnN0YXRlTm9kZSxyPXQubWVtb2l6ZWRQcm9wcyxuW1JuXT10LG4ubm9kZVZhbHVlIT09ciYmKHQuZWZmZWN0VGFnfD00KSk6KChuPSg5PT09bi5ub2RlVHlwZT9uOm4ub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUocikpW1JuXT10LHQuc3RhdGVOb2RlPW4pfXJldHVybiBudWxsO2Nhc2UgMTM6cmV0dXJuIG1vKFVpKSxyPXQubWVtb2l6ZWRTdGF0ZSwwIT09KDY0JnQuZWZmZWN0VGFnKT8odC5leHBpcmF0aW9uVGltZT1uLHQpOihuPW51bGwhPT1yLHI9ITEsbnVsbD09PWU/dm9pZCAwIT09dC5tZW1vaXplZFByb3BzLmZhbGxiYWNrJiZMYSh0KToocj1udWxsIT09KGk9ZS5tZW1vaXplZFN0YXRlKSxufHxudWxsPT09aXx8bnVsbCE9PShpPWUuY2hpbGQuc2libGluZykmJihudWxsIT09KHM9dC5maXJzdEVmZmVjdCk/KHQuZmlyc3RFZmZlY3Q9aSxpLm5leHRFZmZlY3Q9cyk6KHQuZmlyc3RFZmZlY3Q9dC5sYXN0RWZmZWN0PWksaS5uZXh0RWZmZWN0PW51bGwpLGkuZWZmZWN0VGFnPTgpKSxuJiYhciYmMCE9PSgyJnQubW9kZSkmJihudWxsPT09ZSYmITAhPT10Lm1lbW9pemVkUHJvcHMudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fDAhPT0oMSZVaS5jdXJyZW50KT96cz09PUxzJiYoenM9anMpOih6cyE9PUxzJiZ6cyE9PWpzfHwoenM9QnMpLDAhPT1acyYmbnVsbCE9PU1zJiYoJGwoTXMsVXMpLFhsKE1zLFpzKSkpKSwobnx8cikmJih0LmVmZmVjdFRhZ3w9NCksbnVsbCk7Y2FzZSA0OnJldHVybiBGaSgpLEthKHQpLG51bGw7Y2FzZSAxMDpyZXR1cm4gc2kodCksbnVsbDtjYXNlIDE5OmlmKG1vKFVpKSxudWxsPT09KHI9dC5tZW1vaXplZFN0YXRlKSlyZXR1cm4gbnVsbDtpZihpPTAhPT0oNjQmdC5lZmZlY3RUYWcpLG51bGw9PT0ocz1yLnJlbmRlcmluZykpe2lmKGkpbnMociwhMSk7ZWxzZSBpZih6cyE9PUxzfHxudWxsIT09ZSYmMCE9PSg2NCZlLmVmZmVjdFRhZykpZm9yKHM9dC5jaGlsZDtudWxsIT09czspe2lmKG51bGwhPT0oZT16aShzKSkpe2Zvcih0LmVmZmVjdFRhZ3w9NjQsbnMociwhMSksbnVsbCE9PShpPWUudXBkYXRlUXVldWUpJiYodC51cGRhdGVRdWV1ZT1pLHQuZWZmZWN0VGFnfD00KSxudWxsPT09ci5sYXN0RWZmZWN0JiYodC5maXJzdEVmZmVjdD1udWxsKSx0Lmxhc3RFZmZlY3Q9ci5sYXN0RWZmZWN0LHI9dC5jaGlsZDtudWxsIT09cjspcz1uLChpPXIpLmVmZmVjdFRhZyY9MixpLm5leHRFZmZlY3Q9bnVsbCxpLmZpcnN0RWZmZWN0PW51bGwsaS5sYXN0RWZmZWN0PW51bGwsbnVsbD09PShlPWkuYWx0ZXJuYXRlKT8oaS5jaGlsZEV4cGlyYXRpb25UaW1lPTAsaS5leHBpcmF0aW9uVGltZT1zLGkuY2hpbGQ9bnVsbCxpLm1lbW9pemVkUHJvcHM9bnVsbCxpLm1lbW9pemVkU3RhdGU9bnVsbCxpLnVwZGF0ZVF1ZXVlPW51bGwsaS5kZXBlbmRlbmNpZXM9bnVsbCk6KGkuY2hpbGRFeHBpcmF0aW9uVGltZT1lLmNoaWxkRXhwaXJhdGlvblRpbWUsaS5leHBpcmF0aW9uVGltZT1lLmV4cGlyYXRpb25UaW1lLGkuY2hpbGQ9ZS5jaGlsZCxpLm1lbW9pemVkUHJvcHM9ZS5tZW1vaXplZFByb3BzLGkubWVtb2l6ZWRTdGF0ZT1lLm1lbW9pemVkU3RhdGUsaS51cGRhdGVRdWV1ZT1lLnVwZGF0ZVF1ZXVlLHM9ZS5kZXBlbmRlbmNpZXMsaS5kZXBlbmRlbmNpZXM9bnVsbD09PXM/bnVsbDp7ZXhwaXJhdGlvblRpbWU6cy5leHBpcmF0aW9uVGltZSxmaXJzdENvbnRleHQ6cy5maXJzdENvbnRleHQscmVzcG9uZGVyczpzLnJlc3BvbmRlcnN9KSxyPXIuc2libGluZztyZXR1cm4gZ28oVWksMSZVaS5jdXJyZW50fDIpLHQuY2hpbGR9cz1zLnNpYmxpbmd9fWVsc2V7aWYoIWkpaWYobnVsbCE9PShlPXppKHMpKSl7aWYodC5lZmZlY3RUYWd8PTY0LGk9ITAsbnVsbCE9PShuPWUudXBkYXRlUXVldWUpJiYodC51cGRhdGVRdWV1ZT1uLHQuZWZmZWN0VGFnfD00KSxucyhyLCEwKSxudWxsPT09ci50YWlsJiZcImhpZGRlblwiPT09ci50YWlsTW9kZSYmIXMuYWx0ZXJuYXRlKXJldHVybiBudWxsIT09KHQ9dC5sYXN0RWZmZWN0PXIubGFzdEVmZmVjdCkmJih0Lm5leHRFZmZlY3Q9bnVsbCksbnVsbH1lbHNlIDIqcW8oKS1yLnJlbmRlcmluZ1N0YXJ0VGltZT5yLnRhaWxFeHBpcmF0aW9uJiYxPG4mJih0LmVmZmVjdFRhZ3w9NjQsaT0hMCxucyhyLCExKSx0LmV4cGlyYXRpb25UaW1lPXQuY2hpbGRFeHBpcmF0aW9uVGltZT1uLTEpO3IuaXNCYWNrd2FyZHM/KHMuc2libGluZz10LmNoaWxkLHQuY2hpbGQ9cyk6KG51bGwhPT0obj1yLmxhc3QpP24uc2libGluZz1zOnQuY2hpbGQ9cyxyLmxhc3Q9cyl9cmV0dXJuIG51bGwhPT1yLnRhaWw/KDA9PT1yLnRhaWxFeHBpcmF0aW9uJiYoci50YWlsRXhwaXJhdGlvbj1xbygpKzUwMCksbj1yLnRhaWwsci5yZW5kZXJpbmc9bixyLnRhaWw9bi5zaWJsaW5nLHIubGFzdEVmZmVjdD10Lmxhc3RFZmZlY3Qsci5yZW5kZXJpbmdTdGFydFRpbWU9cW8oKSxuLnNpYmxpbmc9bnVsbCx0PVVpLmN1cnJlbnQsZ28oVWksaT8xJnR8MjoxJnQpLG4pOm51bGx9dGhyb3cgRXJyb3IoYSgxNTYsdC50YWcpKX1mdW5jdGlvbiBvcyhlKXtzd2l0Y2goZS50YWcpe2Nhc2UgMTp3byhlLnR5cGUpJiZrbygpO3ZhciB0PWUuZWZmZWN0VGFnO3JldHVybiA0MDk2JnQ/KGUuZWZmZWN0VGFnPS00MDk3JnR8NjQsZSk6bnVsbDtjYXNlIDM6aWYoRmkoKSxtbyhibyksbW8odm8pLDAhPT0oNjQmKHQ9ZS5lZmZlY3RUYWcpKSl0aHJvdyBFcnJvcihhKDI4NSkpO3JldHVybiBlLmVmZmVjdFRhZz0tNDA5NyZ0fDY0LGU7Y2FzZSA1OnJldHVybiBHaShlKSxudWxsO2Nhc2UgMTM6cmV0dXJuIG1vKFVpKSw0MDk2Jih0PWUuZWZmZWN0VGFnKT8oZS5lZmZlY3RUYWc9LTQwOTcmdHw2NCxlKTpudWxsO2Nhc2UgMTk6cmV0dXJuIG1vKFVpKSxudWxsO2Nhc2UgNDpyZXR1cm4gRmkoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIHNpKGUpLG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gaXMoZSx0KXtyZXR1cm57dmFsdWU6ZSxzb3VyY2U6dCxzdGFjazp5ZSh0KX19cWE9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49dC5jaGlsZDtudWxsIT09bjspe2lmKDU9PT1uLnRhZ3x8Nj09PW4udGFnKWUuYXBwZW5kQ2hpbGQobi5zdGF0ZU5vZGUpO2Vsc2UgaWYoNCE9PW4udGFnJiZudWxsIT09bi5jaGlsZCl7bi5jaGlsZC5yZXR1cm49bixuPW4uY2hpbGQ7Y29udGludWV9aWYobj09PXQpYnJlYWs7Zm9yKDtudWxsPT09bi5zaWJsaW5nOyl7aWYobnVsbD09PW4ucmV0dXJufHxuLnJldHVybj09PXQpcmV0dXJuO249bi5yZXR1cm59bi5zaWJsaW5nLnJldHVybj1uLnJldHVybixuPW4uc2libGluZ319LEthPWZ1bmN0aW9uKCl7fSxaYT1mdW5jdGlvbihlLHQsbixyLGkpe3ZhciBhPWUubWVtb2l6ZWRQcm9wcztpZihhIT09cil7dmFyIHMsbCxjPXQuc3RhdGVOb2RlO3N3aXRjaChCaShOaS5jdXJyZW50KSxlPW51bGwsbil7Y2FzZVwiaW5wdXRcIjphPXdlKGMsYSkscj13ZShjLHIpLGU9W107YnJlYWs7Y2FzZVwib3B0aW9uXCI6YT1fZShjLGEpLHI9X2UoYyxyKSxlPVtdO2JyZWFrO2Nhc2VcInNlbGVjdFwiOmE9byh7fSxhLHt2YWx1ZTp2b2lkIDB9KSxyPW8oe30scix7dmFsdWU6dm9pZCAwfSksZT1bXTticmVhaztjYXNlXCJ0ZXh0YXJlYVwiOmE9UmUoYyxhKSxyPVJlKGMsciksZT1bXTticmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhLm9uQ2xpY2smJlwiZnVuY3Rpb25cIj09PXR5cGVvZiByLm9uQ2xpY2smJihjLm9uY2xpY2s9dW4pfWZvcihzIGluIGFuKG4sciksbj1udWxsLGEpaWYoIXIuaGFzT3duUHJvcGVydHkocykmJmEuaGFzT3duUHJvcGVydHkocykmJm51bGwhPWFbc10paWYoXCJzdHlsZVwiPT09cylmb3IobCBpbiBjPWFbc10pYy5oYXNPd25Qcm9wZXJ0eShsKSYmKG58fChuPXt9KSxuW2xdPVwiXCIpO2Vsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIhPT1zJiZcImNoaWxkcmVuXCIhPT1zJiZcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09cyYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PXMmJlwiYXV0b0ZvY3VzXCIhPT1zJiYoRS5oYXNPd25Qcm9wZXJ0eShzKT9lfHwoZT1bXSk6KGU9ZXx8W10pLnB1c2gocyxudWxsKSk7Zm9yKHMgaW4gcil7dmFyIHU9cltzXTtpZihjPW51bGwhPWE/YVtzXTp2b2lkIDAsci5oYXNPd25Qcm9wZXJ0eShzKSYmdSE9PWMmJihudWxsIT11fHxudWxsIT1jKSlpZihcInN0eWxlXCI9PT1zKWlmKGMpe2ZvcihsIGluIGMpIWMuaGFzT3duUHJvcGVydHkobCl8fHUmJnUuaGFzT3duUHJvcGVydHkobCl8fChufHwobj17fSksbltsXT1cIlwiKTtmb3IobCBpbiB1KXUuaGFzT3duUHJvcGVydHkobCkmJmNbbF0hPT11W2xdJiYobnx8KG49e30pLG5bbF09dVtsXSl9ZWxzZSBufHwoZXx8KGU9W10pLGUucHVzaChzLG4pKSxuPXU7ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PXM/KHU9dT91Ll9faHRtbDp2b2lkIDAsYz1jP2MuX19odG1sOnZvaWQgMCxudWxsIT11JiZjIT09dSYmKGU9ZXx8W10pLnB1c2gocyx1KSk6XCJjaGlsZHJlblwiPT09cz9jPT09dXx8XCJzdHJpbmdcIiE9PXR5cGVvZiB1JiZcIm51bWJlclwiIT09dHlwZW9mIHV8fChlPWV8fFtdKS5wdXNoKHMsXCJcIit1KTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09cyYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PXMmJihFLmhhc093blByb3BlcnR5KHMpPyhudWxsIT11JiZjbihpLHMpLGV8fGM9PT11fHwoZT1bXSkpOihlPWV8fFtdKS5wdXNoKHMsdSkpfW4mJihlPWV8fFtdKS5wdXNoKFwic3R5bGVcIixuKSxpPWUsKHQudXBkYXRlUXVldWU9aSkmJih0LmVmZmVjdFRhZ3w9NCl9fSxZYT1mdW5jdGlvbihlLHQsbixyKXtuIT09ciYmKHQuZWZmZWN0VGFnfD00KX07dmFyIGFzPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrU2V0P1dlYWtTZXQ6U2V0O2Z1bmN0aW9uIHNzKGUsdCl7dmFyIG49dC5zb3VyY2Uscj10LnN0YWNrO251bGw9PT1yJiZudWxsIT09biYmKHI9eWUobikpLG51bGwhPT1uJiZnZShuLnR5cGUpLHQ9dC52YWx1ZSxudWxsIT09ZSYmMT09PWUudGFnJiZnZShlLnR5cGUpO3RyeXtjb25zb2xlLmVycm9yKHQpfWNhdGNoKG8pe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgb30pKX19ZnVuY3Rpb24gbHMoZSl7dmFyIHQ9ZS5yZWY7aWYobnVsbCE9PXQpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQpdHJ5e3QobnVsbCl9Y2F0Y2gobil7SWwoZSxuKX1lbHNlIHQuY3VycmVudD1udWxsfWZ1bmN0aW9uIGNzKGUsdCl7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmNhc2UgMjI6Y2FzZSAzOmNhc2UgNTpjYXNlIDY6Y2FzZSA0OmNhc2UgMTc6cmV0dXJuO2Nhc2UgMTppZigyNTYmdC5lZmZlY3RUYWcmJm51bGwhPT1lKXt2YXIgbj1lLm1lbW9pemVkUHJvcHMscj1lLm1lbW9pemVkU3RhdGU7dD0oZT10LnN0YXRlTm9kZSkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUodC5lbGVtZW50VHlwZT09PXQudHlwZT9uOnRpKHQudHlwZSxuKSxyKSxlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlPXR9cmV0dXJufXRocm93IEVycm9yKGEoMTYzKSl9ZnVuY3Rpb24gdXMoZSx0KXtpZihudWxsIT09KHQ9bnVsbCE9PSh0PXQudXBkYXRlUXVldWUpP3QubGFzdEVmZmVjdDpudWxsKSl7dmFyIG49dD10Lm5leHQ7ZG97aWYoKG4udGFnJmUpPT09ZSl7dmFyIHI9bi5kZXN0cm95O24uZGVzdHJveT12b2lkIDAsdm9pZCAwIT09ciYmcigpfW49bi5uZXh0fXdoaWxlKG4hPT10KX19ZnVuY3Rpb24gZHMoZSx0KXtpZihudWxsIT09KHQ9bnVsbCE9PSh0PXQudXBkYXRlUXVldWUpP3QubGFzdEVmZmVjdDpudWxsKSl7dmFyIG49dD10Lm5leHQ7ZG97aWYoKG4udGFnJmUpPT09ZSl7dmFyIHI9bi5jcmVhdGU7bi5kZXN0cm95PXIoKX1uPW4ubmV4dH13aGlsZShuIT09dCl9fWZ1bmN0aW9uIHBzKGUsdCxuKXtzd2l0Y2gobi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSAyMjpyZXR1cm4gdm9pZCBkcygzLG4pO2Nhc2UgMTppZihlPW4uc3RhdGVOb2RlLDQmbi5lZmZlY3RUYWcpaWYobnVsbD09PXQpZS5jb21wb25lbnREaWRNb3VudCgpO2Vsc2V7dmFyIHI9bi5lbGVtZW50VHlwZT09PW4udHlwZT90Lm1lbW9pemVkUHJvcHM6dGkobi50eXBlLHQubWVtb2l6ZWRQcm9wcyk7ZS5jb21wb25lbnREaWRVcGRhdGUocix0Lm1lbW9pemVkU3RhdGUsZS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSl9cmV0dXJuIHZvaWQobnVsbCE9PSh0PW4udXBkYXRlUXVldWUpJiZ2aShuLHQsZSkpO2Nhc2UgMzppZihudWxsIT09KHQ9bi51cGRhdGVRdWV1ZSkpe2lmKGU9bnVsbCxudWxsIT09bi5jaGlsZClzd2l0Y2gobi5jaGlsZC50YWcpe2Nhc2UgNTpjYXNlIDE6ZT1uLmNoaWxkLnN0YXRlTm9kZX12aShuLHQsZSl9cmV0dXJuO2Nhc2UgNTpyZXR1cm4gZT1uLnN0YXRlTm9kZSx2b2lkKG51bGw9PT10JiY0Jm4uZWZmZWN0VGFnJiZrbihuLnR5cGUsbi5tZW1vaXplZFByb3BzKSYmZS5mb2N1cygpKTtjYXNlIDY6Y2FzZSA0OmNhc2UgMTI6Y2FzZSAxOTpjYXNlIDE3OmNhc2UgMjA6Y2FzZSAyMTpyZXR1cm47Y2FzZSAxMzpyZXR1cm4gdm9pZChudWxsPT09bi5tZW1vaXplZFN0YXRlJiYobj1uLmFsdGVybmF0ZSxudWxsIT09biYmKG49bi5tZW1vaXplZFN0YXRlLG51bGwhPT1uJiYobj1uLmRlaHlkcmF0ZWQsbnVsbCE9PW4mJkJ0KG4pKSkpKX10aHJvdyBFcnJvcihhKDE2MykpfWZ1bmN0aW9uIGZzKGUsdCxuKXtzd2l0Y2goXCJmdW5jdGlvblwiPT09dHlwZW9mIEZsJiZGbCh0KSx0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMjI6aWYobnVsbCE9PShlPXQudXBkYXRlUXVldWUpJiZudWxsIT09KGU9ZS5sYXN0RWZmZWN0KSl7dmFyIHI9ZS5uZXh0O1lvKDk3PG4/OTc6biwoZnVuY3Rpb24oKXt2YXIgZT1yO2Rve3ZhciBuPWUuZGVzdHJveTtpZih2b2lkIDAhPT1uKXt2YXIgbz10O3RyeXtuKCl9Y2F0Y2goaSl7SWwobyxpKX19ZT1lLm5leHR9d2hpbGUoZSE9PXIpfSkpfWJyZWFrO2Nhc2UgMTpscyh0KSxcImZ1bmN0aW9uXCI9PT10eXBlb2Yobj10LnN0YXRlTm9kZSkuY29tcG9uZW50V2lsbFVubW91bnQmJmZ1bmN0aW9uKGUsdCl7dHJ5e3QucHJvcHM9ZS5tZW1vaXplZFByb3BzLHQuc3RhdGU9ZS5tZW1vaXplZFN0YXRlLHQuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChuKXtJbChlLG4pfX0odCxuKTticmVhaztjYXNlIDU6bHModCk7YnJlYWs7Y2FzZSA0OmJzKGUsdCxuKX19ZnVuY3Rpb24gaHMoZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7ZS5yZXR1cm49bnVsbCxlLmNoaWxkPW51bGwsZS5tZW1vaXplZFN0YXRlPW51bGwsZS51cGRhdGVRdWV1ZT1udWxsLGUuZGVwZW5kZW5jaWVzPW51bGwsZS5hbHRlcm5hdGU9bnVsbCxlLmZpcnN0RWZmZWN0PW51bGwsZS5sYXN0RWZmZWN0PW51bGwsZS5wZW5kaW5nUHJvcHM9bnVsbCxlLm1lbW9pemVkUHJvcHM9bnVsbCxlLnN0YXRlTm9kZT1udWxsLG51bGwhPT10JiZocyh0KX1mdW5jdGlvbiBtcyhlKXtyZXR1cm4gNT09PWUudGFnfHwzPT09ZS50YWd8fDQ9PT1lLnRhZ31mdW5jdGlvbiBncyhlKXtlOntmb3IodmFyIHQ9ZS5yZXR1cm47bnVsbCE9PXQ7KXtpZihtcyh0KSl7dmFyIG49dDticmVhayBlfXQ9dC5yZXR1cm59dGhyb3cgRXJyb3IoYSgxNjApKX1zd2l0Y2godD1uLnN0YXRlTm9kZSxuLnRhZyl7Y2FzZSA1OnZhciByPSExO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dD10LmNvbnRhaW5lckluZm8scj0hMDticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMTYxKSl9MTYmbi5lZmZlY3RUYWcmJihHZSh0LFwiXCIpLG4uZWZmZWN0VGFnJj0tMTcpO2U6dDpmb3Iobj1lOzspe2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bXMobi5yZXR1cm4pKXtuPW51bGw7YnJlYWsgZX1uPW4ucmV0dXJufWZvcihuLnNpYmxpbmcucmV0dXJuPW4ucmV0dXJuLG49bi5zaWJsaW5nOzUhPT1uLnRhZyYmNiE9PW4udGFnJiYxOCE9PW4udGFnOyl7aWYoMiZuLmVmZmVjdFRhZyljb250aW51ZSB0O2lmKG51bGw9PT1uLmNoaWxkfHw0PT09bi50YWcpY29udGludWUgdDtuLmNoaWxkLnJldHVybj1uLG49bi5jaGlsZH1pZighKDImbi5lZmZlY3RUYWcpKXtuPW4uc3RhdGVOb2RlO2JyZWFrIGV9fXI/eXMoZSxuLHQpOnZzKGUsbix0KX1mdW5jdGlvbiB5cyhlLHQsbil7dmFyIHI9ZS50YWcsbz01PT09cnx8Nj09PXI7aWYobyllPW8/ZS5zdGF0ZU5vZGU6ZS5zdGF0ZU5vZGUuaW5zdGFuY2UsdD84PT09bi5ub2RlVHlwZT9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdCk6bi5pbnNlcnRCZWZvcmUoZSx0KTooOD09PW4ubm9kZVR5cGU/KHQ9bi5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUoZSxuKToodD1uKS5hcHBlbmRDaGlsZChlKSxudWxsIT09KG49bi5fcmVhY3RSb290Q29udGFpbmVyKSYmdm9pZCAwIT09bnx8bnVsbCE9PXQub25jbGlja3x8KHQub25jbGljaz11bikpO2Vsc2UgaWYoNCE9PXImJm51bGwhPT0oZT1lLmNoaWxkKSlmb3IoeXMoZSx0LG4pLGU9ZS5zaWJsaW5nO251bGwhPT1lOyl5cyhlLHQsbiksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gdnMoZSx0LG4pe3ZhciByPWUudGFnLG89NT09PXJ8fDY9PT1yO2lmKG8pZT1vP2Uuc3RhdGVOb2RlOmUuc3RhdGVOb2RlLmluc3RhbmNlLHQ/bi5pbnNlcnRCZWZvcmUoZSx0KTpuLmFwcGVuZENoaWxkKGUpO2Vsc2UgaWYoNCE9PXImJm51bGwhPT0oZT1lLmNoaWxkKSlmb3IodnMoZSx0LG4pLGU9ZS5zaWJsaW5nO251bGwhPT1lOyl2cyhlLHQsbiksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gYnMoZSx0LG4pe2Zvcih2YXIgcixvLGk9dCxzPSExOzspe2lmKCFzKXtzPWkucmV0dXJuO2U6Zm9yKDs7KXtpZihudWxsPT09cyl0aHJvdyBFcnJvcihhKDE2MCkpO3N3aXRjaChyPXMuc3RhdGVOb2RlLHMudGFnKXtjYXNlIDU6bz0hMTticmVhayBlO2Nhc2UgMzpjYXNlIDQ6cj1yLmNvbnRhaW5lckluZm8sbz0hMDticmVhayBlfXM9cy5yZXR1cm59cz0hMH1pZig1PT09aS50YWd8fDY9PT1pLnRhZyl7ZTpmb3IodmFyIGw9ZSxjPWksdT1uLGQ9Yzs7KWlmKGZzKGwsZCx1KSxudWxsIT09ZC5jaGlsZCYmNCE9PWQudGFnKWQuY2hpbGQucmV0dXJuPWQsZD1kLmNoaWxkO2Vsc2V7aWYoZD09PWMpYnJlYWsgZTtmb3IoO251bGw9PT1kLnNpYmxpbmc7KXtpZihudWxsPT09ZC5yZXR1cm58fGQucmV0dXJuPT09YylicmVhayBlO2Q9ZC5yZXR1cm59ZC5zaWJsaW5nLnJldHVybj1kLnJldHVybixkPWQuc2libGluZ31vPyhsPXIsYz1pLnN0YXRlTm9kZSw4PT09bC5ub2RlVHlwZT9sLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyk6bC5yZW1vdmVDaGlsZChjKSk6ci5yZW1vdmVDaGlsZChpLnN0YXRlTm9kZSl9ZWxzZSBpZig0PT09aS50YWcpe2lmKG51bGwhPT1pLmNoaWxkKXtyPWkuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sbz0hMCxpLmNoaWxkLnJldHVybj1pLGk9aS5jaGlsZDtjb250aW51ZX19ZWxzZSBpZihmcyhlLGksbiksbnVsbCE9PWkuY2hpbGQpe2kuY2hpbGQucmV0dXJuPWksaT1pLmNoaWxkO2NvbnRpbnVlfWlmKGk9PT10KWJyZWFrO2Zvcig7bnVsbD09PWkuc2libGluZzspe2lmKG51bGw9PT1pLnJldHVybnx8aS5yZXR1cm49PT10KXJldHVybjs0PT09KGk9aS5yZXR1cm4pLnRhZyYmKHM9ITEpfWkuc2libGluZy5yZXR1cm49aS5yZXR1cm4saT1pLnNpYmxpbmd9fWZ1bmN0aW9uIFRzKGUsdCl7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAyMjpyZXR1cm4gdm9pZCB1cygzLHQpO2Nhc2UgMTpjYXNlIDEyOmNhc2UgMTc6cmV0dXJuO2Nhc2UgNTp2YXIgbj10LnN0YXRlTm9kZTtpZihudWxsIT1uKXt2YXIgcj10Lm1lbW9pemVkUHJvcHMsbz1udWxsIT09ZT9lLm1lbW9pemVkUHJvcHM6cjtlPXQudHlwZTt2YXIgaT10LnVwZGF0ZVF1ZXVlO2lmKHQudXBkYXRlUXVldWU9bnVsbCxudWxsIT09aSl7Zm9yKG5bT25dPXIsXCJpbnB1dFwiPT09ZSYmXCJyYWRpb1wiPT09ci50eXBlJiZudWxsIT1yLm5hbWUmJkVlKG4sciksc24oZSxvKSx0PXNuKGUsciksbz0wO288aS5sZW5ndGg7bys9Mil7dmFyIHM9aVtvXSxsPWlbbysxXTtcInN0eWxlXCI9PT1zP3JuKG4sbCk6XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09cz9NZShuLGwpOlwiY2hpbGRyZW5cIj09PXM/R2UobixsKTpYKG4scyxsLHQpfXN3aXRjaChlKXtjYXNlXCJpbnB1dFwiOlNlKG4scik7YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjpQZShuLHIpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOnQ9bi5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlLG4uX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZT0hIXIubXVsdGlwbGUsbnVsbCE9KGU9ci52YWx1ZSk/RGUobiwhIXIubXVsdGlwbGUsZSwhMSk6dCE9PSEhci5tdWx0aXBsZSYmKG51bGwhPXIuZGVmYXVsdFZhbHVlP0RlKG4sISFyLm11bHRpcGxlLHIuZGVmYXVsdFZhbHVlLCEwKTpEZShuLCEhci5tdWx0aXBsZSxyLm11bHRpcGxlP1tdOlwiXCIsITEpKX19fXJldHVybjtjYXNlIDY6aWYobnVsbD09PXQuc3RhdGVOb2RlKXRocm93IEVycm9yKGEoMTYyKSk7cmV0dXJuIHZvaWQodC5zdGF0ZU5vZGUubm9kZVZhbHVlPXQubWVtb2l6ZWRQcm9wcyk7Y2FzZSAzOnJldHVybiB2b2lkKCh0PXQuc3RhdGVOb2RlKS5oeWRyYXRlJiYodC5oeWRyYXRlPSExLEJ0KHQuY29udGFpbmVySW5mbykpKTtjYXNlIDEzOmlmKG49dCxudWxsPT09dC5tZW1vaXplZFN0YXRlP3I9ITE6KHI9ITAsbj10LmNoaWxkLCRzPXFvKCkpLG51bGwhPT1uKWU6Zm9yKGU9bjs7KXtpZig1PT09ZS50YWcpaT1lLnN0YXRlTm9kZSxyP1wiZnVuY3Rpb25cIj09PXR5cGVvZihpPWkuc3R5bGUpLnNldFByb3BlcnR5P2kuc2V0UHJvcGVydHkoXCJkaXNwbGF5XCIsXCJub25lXCIsXCJpbXBvcnRhbnRcIik6aS5kaXNwbGF5PVwibm9uZVwiOihpPWUuc3RhdGVOb2RlLG89dm9pZCAwIT09KG89ZS5tZW1vaXplZFByb3BzLnN0eWxlKSYmbnVsbCE9PW8mJm8uaGFzT3duUHJvcGVydHkoXCJkaXNwbGF5XCIpP28uZGlzcGxheTpudWxsLGkuc3R5bGUuZGlzcGxheT1ubihcImRpc3BsYXlcIixvKSk7ZWxzZSBpZig2PT09ZS50YWcpZS5zdGF0ZU5vZGUubm9kZVZhbHVlPXI/XCJcIjplLm1lbW9pemVkUHJvcHM7ZWxzZXtpZigxMz09PWUudGFnJiZudWxsIT09ZS5tZW1vaXplZFN0YXRlJiZudWxsPT09ZS5tZW1vaXplZFN0YXRlLmRlaHlkcmF0ZWQpeyhpPWUuY2hpbGQuc2libGluZykucmV0dXJuPWUsZT1pO2NvbnRpbnVlfWlmKG51bGwhPT1lLmNoaWxkKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX19aWYoZT09PW4pYnJlYWs7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxlLnJldHVybj09PW4pYnJlYWsgZTtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9cmV0dXJuIHZvaWQgeHModCk7Y2FzZSAxOTpyZXR1cm4gdm9pZCB4cyh0KX10aHJvdyBFcnJvcihhKDE2MykpfWZ1bmN0aW9uIHhzKGUpe3ZhciB0PWUudXBkYXRlUXVldWU7aWYobnVsbCE9PXQpe2UudXBkYXRlUXVldWU9bnVsbDt2YXIgbj1lLnN0YXRlTm9kZTtudWxsPT09biYmKG49ZS5zdGF0ZU5vZGU9bmV3IGFzKSx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPUJsLmJpbmQobnVsbCxlLHQpO24uaGFzKHQpfHwobi5hZGQodCksdC50aGVuKHIscikpfSkpfX12YXIgd3M9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXA7ZnVuY3Rpb24ga3MoZSx0LG4peyhuPWhpKG4sbnVsbCkpLnRhZz0zLG4ucGF5bG9hZD17ZWxlbWVudDpudWxsfTt2YXIgcj10LnZhbHVlO3JldHVybiBuLmNhbGxiYWNrPWZ1bmN0aW9uKCl7SnN8fChKcz0hMCxlbD1yKSxzcyhlLHQpfSxufWZ1bmN0aW9uIEVzKGUsdCxuKXsobj1oaShuLG51bGwpKS50YWc9Mzt2YXIgcj1lLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiByKXt2YXIgbz10LnZhbHVlO24ucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiBzcyhlLHQpLHIobyl9fXZhciBpPWUuc3RhdGVOb2RlO3JldHVybiBudWxsIT09aSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGkuY29tcG9uZW50RGlkQ2F0Y2gmJihuLmNhbGxiYWNrPWZ1bmN0aW9uKCl7XCJmdW5jdGlvblwiIT09dHlwZW9mIHImJihudWxsPT09dGw/dGw9bmV3IFNldChbdGhpc10pOnRsLmFkZCh0aGlzKSxzcyhlLHQpKTt2YXIgbj10LnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2godC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PW4/bjpcIlwifSl9KSxufXZhciBTcyxBcz1NYXRoLmNlaWwsQ3M9JC5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLF9zPSQuUmVhY3RDdXJyZW50T3duZXIsRHM9MCxScz04LE9zPTE2LFBzPTMyLExzPTAsTnM9MSxJcz0yLGpzPTMsQnM9NCxIcz01LEZzPURzLE1zPW51bGwsR3M9bnVsbCxVcz0wLHpzPUxzLFZzPW51bGwsV3M9MTA3Mzc0MTgyMyxxcz0xMDczNzQxODIzLEtzPW51bGwsWnM9MCxZcz0hMSwkcz0wLFhzPTUwMCxRcz1udWxsLEpzPSExLGVsPW51bGwsdGw9bnVsbCxubD0hMSxybD1udWxsLG9sPTkwLGlsPW51bGwsYWw9MCxzbD1udWxsLGxsPTA7ZnVuY3Rpb24gY2woKXtyZXR1cm4oRnMmKE9zfFBzKSkhPT1Ecz8xMDczNzQxODIxLShxbygpLzEwfDApOjAhPT1sbD9sbDpsbD0xMDczNzQxODIxLShxbygpLzEwfDApfWZ1bmN0aW9uIHVsKGUsdCxuKXtpZigwPT09KDImKHQ9dC5tb2RlKSkpcmV0dXJuIDEwNzM3NDE4MjM7dmFyIHI9S28oKTtpZigwPT09KDQmdCkpcmV0dXJuIDk5PT09cj8xMDczNzQxODIzOjEwNzM3NDE4MjI7aWYoKEZzJk9zKSE9PURzKXJldHVybiBVcztpZihudWxsIT09billPWVpKGUsMHxuLnRpbWVvdXRNc3x8NWUzLDI1MCk7ZWxzZSBzd2l0Y2gocil7Y2FzZSA5OTplPTEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA5ODplPWVpKGUsMTUwLDEwMCk7YnJlYWs7Y2FzZSA5NzpjYXNlIDk2OmU9ZWkoZSw1ZTMsMjUwKTticmVhaztjYXNlIDk1OmU9MjticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMzI2KSl9cmV0dXJuIG51bGwhPT1NcyYmZT09PVVzJiYtLWUsZX1mdW5jdGlvbiBkbChlLHQpe2lmKDUwPGFsKXRocm93IGFsPTAsc2w9bnVsbCxFcnJvcihhKDE4NSkpO2lmKG51bGwhPT0oZT1wbChlLHQpKSl7dmFyIG49S28oKTsxMDczNzQxODIzPT09dD8oRnMmUnMpIT09RHMmJihGcyYoT3N8UHMpKT09PURzP2dsKGUpOihobChlKSxGcz09PURzJiZRbygpKTpobChlKSwoNCZGcyk9PT1Ec3x8OTghPT1uJiY5OSE9PW58fChudWxsPT09aWw/aWw9bmV3IE1hcChbW2UsdF1dKToodm9pZCAwPT09KG49aWwuZ2V0KGUpKXx8bj50KSYmaWwuc2V0KGUsdCkpfX1mdW5jdGlvbiBwbChlLHQpe2UuZXhwaXJhdGlvblRpbWU8dCYmKGUuZXhwaXJhdGlvblRpbWU9dCk7dmFyIG49ZS5hbHRlcm5hdGU7bnVsbCE9PW4mJm4uZXhwaXJhdGlvblRpbWU8dCYmKG4uZXhwaXJhdGlvblRpbWU9dCk7dmFyIHI9ZS5yZXR1cm4sbz1udWxsO2lmKG51bGw9PT1yJiYzPT09ZS50YWcpbz1lLnN0YXRlTm9kZTtlbHNlIGZvcig7bnVsbCE9PXI7KXtpZihuPXIuYWx0ZXJuYXRlLHIuY2hpbGRFeHBpcmF0aW9uVGltZTx0JiYoci5jaGlsZEV4cGlyYXRpb25UaW1lPXQpLG51bGwhPT1uJiZuLmNoaWxkRXhwaXJhdGlvblRpbWU8dCYmKG4uY2hpbGRFeHBpcmF0aW9uVGltZT10KSxudWxsPT09ci5yZXR1cm4mJjM9PT1yLnRhZyl7bz1yLnN0YXRlTm9kZTticmVha31yPXIucmV0dXJufXJldHVybiBudWxsIT09byYmKE1zPT09byYmKGtsKHQpLHpzPT09QnMmJiRsKG8sVXMpKSxYbChvLHQpKSxvfWZ1bmN0aW9uIGZsKGUpe3ZhciB0PWUubGFzdEV4cGlyZWRUaW1lO2lmKDAhPT10KXJldHVybiB0O2lmKCFZbChlLHQ9ZS5maXJzdFBlbmRpbmdUaW1lKSlyZXR1cm4gdDt2YXIgbj1lLmxhc3RQaW5nZWRUaW1lO3JldHVybiAyPj0oZT1uPihlPWUubmV4dEtub3duUGVuZGluZ0xldmVsKT9uOmUpJiZ0IT09ZT8wOmV9ZnVuY3Rpb24gaGwoZSl7aWYoMCE9PWUubGFzdEV4cGlyZWRUaW1lKWUuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT0xMDczNzQxODIzLGUuY2FsbGJhY2tQcmlvcml0eT05OSxlLmNhbGxiYWNrTm9kZT1YbyhnbC5iaW5kKG51bGwsZSkpO2Vsc2V7dmFyIHQ9ZmwoZSksbj1lLmNhbGxiYWNrTm9kZTtpZigwPT09dCludWxsIT09biYmKGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja0V4cGlyYXRpb25UaW1lPTAsZS5jYWxsYmFja1ByaW9yaXR5PTkwKTtlbHNle3ZhciByPWNsKCk7aWYoMTA3Mzc0MTgyMz09PXQ/cj05OToxPT09dHx8Mj09PXQ/cj05NTpyPTA+PShyPTEwKigxMDczNzQxODIxLXQpLTEwKigxMDczNzQxODIxLXIpKT85OToyNTA+PXI/OTg6NTI1MD49cj85Nzo5NSxudWxsIT09bil7dmFyIG89ZS5jYWxsYmFja1ByaW9yaXR5O2lmKGUuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT09PXQmJm8+PXIpcmV0dXJuO24hPT1GbyYmUm8obil9ZS5jYWxsYmFja0V4cGlyYXRpb25UaW1lPXQsZS5jYWxsYmFja1ByaW9yaXR5PXIsdD0xMDczNzQxODIzPT09dD9YbyhnbC5iaW5kKG51bGwsZSkpOiRvKHIsbWwuYmluZChudWxsLGUpLHt0aW1lb3V0OjEwKigxMDczNzQxODIxLXQpLXFvKCl9KSxlLmNhbGxiYWNrTm9kZT10fX19ZnVuY3Rpb24gbWwoZSx0KXtpZihsbD0wLHQpcmV0dXJuIFFsKGUsdD1jbCgpKSxobChlKSxudWxsO3ZhciBuPWZsKGUpO2lmKDAhPT1uKXtpZih0PWUuY2FsbGJhY2tOb2RlLChGcyYoT3N8UHMpKSE9PURzKXRocm93IEVycm9yKGEoMzI3KSk7aWYoUGwoKSxlPT09TXMmJm49PT1Vc3x8YmwoZSxuKSxudWxsIT09R3Mpe3ZhciByPUZzO0ZzfD1Pcztmb3IodmFyIG89eGwoKTs7KXRyeXtTbCgpO2JyZWFrfWNhdGNoKGwpe1RsKGUsbCl9aWYoYWkoKSxGcz1yLENzLmN1cnJlbnQ9byx6cz09PU5zKXRocm93IHQ9VnMsYmwoZSxuKSwkbChlLG4pLGhsKGUpLHQ7aWYobnVsbD09PUdzKXN3aXRjaChvPWUuZmluaXNoZWRXb3JrPWUuY3VycmVudC5hbHRlcm5hdGUsZS5maW5pc2hlZEV4cGlyYXRpb25UaW1lPW4scj16cyxNcz1udWxsLHIpe2Nhc2UgTHM6Y2FzZSBOczp0aHJvdyBFcnJvcihhKDM0NSkpO2Nhc2UgSXM6UWwoZSwyPG4/MjpuKTticmVhaztjYXNlIGpzOmlmKCRsKGUsbiksbj09PShyPWUubGFzdFN1c3BlbmRlZFRpbWUpJiYoZS5uZXh0S25vd25QZW5kaW5nTGV2ZWw9X2wobykpLDEwNzM3NDE4MjM9PT1XcyYmMTA8KG89JHMrWHMtcW8oKSkpe2lmKFlzKXt2YXIgaT1lLmxhc3RQaW5nZWRUaW1lO2lmKDA9PT1pfHxpPj1uKXtlLmxhc3RQaW5nZWRUaW1lPW4sYmwoZSxuKTticmVha319aWYoMCE9PShpPWZsKGUpKSYmaSE9PW4pYnJlYWs7aWYoMCE9PXImJnIhPT1uKXtlLmxhc3RQaW5nZWRUaW1lPXI7YnJlYWt9ZS50aW1lb3V0SGFuZGxlPVNuKERsLmJpbmQobnVsbCxlKSxvKTticmVha31EbChlKTticmVhaztjYXNlIEJzOmlmKCRsKGUsbiksbj09PShyPWUubGFzdFN1c3BlbmRlZFRpbWUpJiYoZS5uZXh0S25vd25QZW5kaW5nTGV2ZWw9X2wobykpLFlzJiYoMD09PShvPWUubGFzdFBpbmdlZFRpbWUpfHxvPj1uKSl7ZS5sYXN0UGluZ2VkVGltZT1uLGJsKGUsbik7YnJlYWt9aWYoMCE9PShvPWZsKGUpKSYmbyE9PW4pYnJlYWs7aWYoMCE9PXImJnIhPT1uKXtlLmxhc3RQaW5nZWRUaW1lPXI7YnJlYWt9aWYoMTA3Mzc0MTgyMyE9PXFzP3I9MTAqKDEwNzM3NDE4MjEtcXMpLXFvKCk6MTA3Mzc0MTgyMz09PVdzP3I9MDoocj0xMCooMTA3Mzc0MTgyMS1XcyktNWUzLDA+KHI9KG89cW8oKSktcikmJihyPTApLChuPTEwKigxMDczNzQxODIxLW4pLW8pPChyPSgxMjA+cj8xMjA6NDgwPnI/NDgwOjEwODA+cj8xMDgwOjE5MjA+cj8xOTIwOjNlMz5yPzNlMzo0MzIwPnI/NDMyMDoxOTYwKkFzKHIvMTk2MCkpLXIpJiYocj1uKSksMTA8cil7ZS50aW1lb3V0SGFuZGxlPVNuKERsLmJpbmQobnVsbCxlKSxyKTticmVha31EbChlKTticmVhaztjYXNlIEhzOmlmKDEwNzM3NDE4MjMhPT1XcyYmbnVsbCE9PUtzKXtpPVdzO3ZhciBzPUtzO2lmKDA+PShyPTB8cy5idXN5TWluRHVyYXRpb25Ncyk/cj0wOihvPTB8cy5idXN5RGVsYXlNcyxyPShpPXFvKCktKDEwKigxMDczNzQxODIxLWkpLSgwfHMudGltZW91dE1zfHw1ZTMpKSk8PW8/MDpvK3ItaSksMTA8cil7JGwoZSxuKSxlLnRpbWVvdXRIYW5kbGU9U24oRGwuYmluZChudWxsLGUpLHIpO2JyZWFrfX1EbChlKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMzI5KSl9aWYoaGwoZSksZS5jYWxsYmFja05vZGU9PT10KXJldHVybiBtbC5iaW5kKG51bGwsZSl9fXJldHVybiBudWxsfWZ1bmN0aW9uIGdsKGUpe3ZhciB0PWUubGFzdEV4cGlyZWRUaW1lO2lmKHQ9MCE9PXQ/dDoxMDczNzQxODIzLChGcyYoT3N8UHMpKSE9PURzKXRocm93IEVycm9yKGEoMzI3KSk7aWYoUGwoKSxlPT09TXMmJnQ9PT1Vc3x8YmwoZSx0KSxudWxsIT09R3Mpe3ZhciBuPUZzO0ZzfD1Pcztmb3IodmFyIHI9eGwoKTs7KXRyeXtFbCgpO2JyZWFrfWNhdGNoKG8pe1RsKGUsbyl9aWYoYWkoKSxGcz1uLENzLmN1cnJlbnQ9cix6cz09PU5zKXRocm93IG49VnMsYmwoZSx0KSwkbChlLHQpLGhsKGUpLG47aWYobnVsbCE9PUdzKXRocm93IEVycm9yKGEoMjYxKSk7ZS5maW5pc2hlZFdvcms9ZS5jdXJyZW50LmFsdGVybmF0ZSxlLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9dCxNcz1udWxsLERsKGUpLGhsKGUpfXJldHVybiBudWxsfWZ1bmN0aW9uIHlsKGUsdCl7dmFyIG49RnM7RnN8PTE7dHJ5e3JldHVybiBlKHQpfWZpbmFsbHl7KEZzPW4pPT09RHMmJlFvKCl9fWZ1bmN0aW9uIHZsKGUsdCl7dmFyIG49RnM7RnMmPS0yLEZzfD1Sczt0cnl7cmV0dXJuIGUodCl9ZmluYWxseXsoRnM9bik9PT1EcyYmUW8oKX19ZnVuY3Rpb24gYmwoZSx0KXtlLmZpbmlzaGVkV29yaz1udWxsLGUuZmluaXNoZWRFeHBpcmF0aW9uVGltZT0wO3ZhciBuPWUudGltZW91dEhhbmRsZTtpZigtMSE9PW4mJihlLnRpbWVvdXRIYW5kbGU9LTEsQW4obikpLG51bGwhPT1Hcylmb3Iobj1Hcy5yZXR1cm47bnVsbCE9PW47KXt2YXIgcj1uO3N3aXRjaChyLnRhZyl7Y2FzZSAxOm51bGwhPT0ocj1yLnR5cGUuY2hpbGRDb250ZXh0VHlwZXMpJiZ2b2lkIDAhPT1yJiZrbygpO2JyZWFrO2Nhc2UgMzpGaSgpLG1vKGJvKSxtbyh2byk7YnJlYWs7Y2FzZSA1OkdpKHIpO2JyZWFrO2Nhc2UgNDpGaSgpO2JyZWFrO2Nhc2UgMTM6Y2FzZSAxOTptbyhVaSk7YnJlYWs7Y2FzZSAxMDpzaShyKX1uPW4ucmV0dXJufU1zPWUsR3M9emwoZS5jdXJyZW50LG51bGwpLFVzPXQsenM9THMsVnM9bnVsbCxxcz1Xcz0xMDczNzQxODIzLEtzPW51bGwsWnM9MCxZcz0hMX1mdW5jdGlvbiBUbChlLHQpe2Zvcig7Oyl7dHJ5e2lmKGFpKCksV2kuY3VycmVudD13YSxYaSlmb3IodmFyIG49WmkubWVtb2l6ZWRTdGF0ZTtudWxsIT09bjspe3ZhciByPW4ucXVldWU7bnVsbCE9PXImJihyLnBlbmRpbmc9bnVsbCksbj1uLm5leHR9aWYoS2k9MCwkaT1ZaT1aaT1udWxsLFhpPSExLG51bGw9PT1Hc3x8bnVsbD09PUdzLnJldHVybilyZXR1cm4genM9TnMsVnM9dCxHcz1udWxsO2U6e3ZhciBvPWUsaT1Hcy5yZXR1cm4sYT1HcyxzPXQ7aWYodD1VcyxhLmVmZmVjdFRhZ3w9MjA0OCxhLmZpcnN0RWZmZWN0PWEubGFzdEVmZmVjdD1udWxsLG51bGwhPT1zJiZcIm9iamVjdFwiPT09dHlwZW9mIHMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBzLnRoZW4pe3ZhciBsPXM7aWYoMD09PSgyJmEubW9kZSkpe3ZhciBjPWEuYWx0ZXJuYXRlO2M/KGEudXBkYXRlUXVldWU9Yy51cGRhdGVRdWV1ZSxhLm1lbW9pemVkU3RhdGU9Yy5tZW1vaXplZFN0YXRlLGEuZXhwaXJhdGlvblRpbWU9Yy5leHBpcmF0aW9uVGltZSk6KGEudXBkYXRlUXVldWU9bnVsbCxhLm1lbW9pemVkU3RhdGU9bnVsbCl9dmFyIHU9MCE9PSgxJlVpLmN1cnJlbnQpLGQ9aTtkb3t2YXIgcDtpZihwPTEzPT09ZC50YWcpe3ZhciBmPWQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZilwPW51bGwhPT1mLmRlaHlkcmF0ZWQ7ZWxzZXt2YXIgaD1kLm1lbW9pemVkUHJvcHM7cD12b2lkIDAhPT1oLmZhbGxiYWNrJiYoITAhPT1oLnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrfHwhdSl9fWlmKHApe3ZhciBtPWQudXBkYXRlUXVldWU7aWYobnVsbD09PW0pe3ZhciBnPW5ldyBTZXQ7Zy5hZGQobCksZC51cGRhdGVRdWV1ZT1nfWVsc2UgbS5hZGQobCk7aWYoMD09PSgyJmQubW9kZSkpe2lmKGQuZWZmZWN0VGFnfD02NCxhLmVmZmVjdFRhZyY9LTI5ODEsMT09PWEudGFnKWlmKG51bGw9PT1hLmFsdGVybmF0ZSlhLnRhZz0xNztlbHNle3ZhciB5PWhpKDEwNzM3NDE4MjMsbnVsbCk7eS50YWc9MixtaShhLHkpfWEuZXhwaXJhdGlvblRpbWU9MTA3Mzc0MTgyMzticmVhayBlfXM9dm9pZCAwLGE9dDt2YXIgdj1vLnBpbmdDYWNoZTtpZihudWxsPT09dj8odj1vLnBpbmdDYWNoZT1uZXcgd3Mscz1uZXcgU2V0LHYuc2V0KGwscykpOnZvaWQgMD09PShzPXYuZ2V0KGwpKSYmKHM9bmV3IFNldCx2LnNldChsLHMpKSwhcy5oYXMoYSkpe3MuYWRkKGEpO3ZhciBiPWpsLmJpbmQobnVsbCxvLGwsYSk7bC50aGVuKGIsYil9ZC5lZmZlY3RUYWd8PTQwOTYsZC5leHBpcmF0aW9uVGltZT10O2JyZWFrIGV9ZD1kLnJldHVybn13aGlsZShudWxsIT09ZCk7cz1FcnJvcigoZ2UoYS50eXBlKXx8XCJBIFJlYWN0IGNvbXBvbmVudFwiKStcIiBzdXNwZW5kZWQgd2hpbGUgcmVuZGVyaW5nLCBidXQgbm8gZmFsbGJhY2sgVUkgd2FzIHNwZWNpZmllZC5cXG5cXG5BZGQgYSA8U3VzcGVuc2UgZmFsbGJhY2s9Li4uPiBjb21wb25lbnQgaGlnaGVyIGluIHRoZSB0cmVlIHRvIHByb3ZpZGUgYSBsb2FkaW5nIGluZGljYXRvciBvciBwbGFjZWhvbGRlciB0byBkaXNwbGF5LlwiK3llKGEpKX16cyE9PUhzJiYoenM9SXMpLHM9aXMocyxhKSxkPWk7ZG97c3dpdGNoKGQudGFnKXtjYXNlIDM6bD1zLGQuZWZmZWN0VGFnfD00MDk2LGQuZXhwaXJhdGlvblRpbWU9dCxnaShkLGtzKGQsbCx0KSk7YnJlYWsgZTtjYXNlIDE6bD1zO3ZhciBUPWQudHlwZSx4PWQuc3RhdGVOb2RlO2lmKDA9PT0oNjQmZC5lZmZlY3RUYWcpJiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxudWxsIT09eCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHguY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09dGx8fCF0bC5oYXMoeCkpKSl7ZC5lZmZlY3RUYWd8PTQwOTYsZC5leHBpcmF0aW9uVGltZT10LGdpKGQsRXMoZCxsLHQpKTticmVhayBlfX1kPWQucmV0dXJufXdoaWxlKG51bGwhPT1kKX1Hcz1DbChHcyl9Y2F0Y2godyl7dD13O2NvbnRpbnVlfWJyZWFrfX1mdW5jdGlvbiB4bCgpe3ZhciBlPUNzLmN1cnJlbnQ7cmV0dXJuIENzLmN1cnJlbnQ9d2EsbnVsbD09PWU/d2E6ZX1mdW5jdGlvbiB3bChlLHQpe2U8V3MmJjI8ZSYmKFdzPWUpLG51bGwhPT10JiZlPHFzJiYyPGUmJihxcz1lLEtzPXQpfWZ1bmN0aW9uIGtsKGUpe2U+WnMmJihacz1lKX1mdW5jdGlvbiBFbCgpe2Zvcig7bnVsbCE9PUdzOylHcz1BbChHcyl9ZnVuY3Rpb24gU2woKXtmb3IoO251bGwhPT1HcyYmIU1vKCk7KUdzPUFsKEdzKX1mdW5jdGlvbiBBbChlKXt2YXIgdD1TcyhlLmFsdGVybmF0ZSxlLFVzKTtyZXR1cm4gZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT10JiYodD1DbChlKSksX3MuY3VycmVudD1udWxsLHR9ZnVuY3Rpb24gQ2woZSl7R3M9ZTtkb3t2YXIgdD1Hcy5hbHRlcm5hdGU7aWYoZT1Hcy5yZXR1cm4sMD09PSgyMDQ4JkdzLmVmZmVjdFRhZykpe2lmKHQ9cnModCxHcyxVcyksMT09PVVzfHwxIT09R3MuY2hpbGRFeHBpcmF0aW9uVGltZSl7Zm9yKHZhciBuPTAscj1Hcy5jaGlsZDtudWxsIT09cjspe3ZhciBvPXIuZXhwaXJhdGlvblRpbWUsaT1yLmNoaWxkRXhwaXJhdGlvblRpbWU7bz5uJiYobj1vKSxpPm4mJihuPWkpLHI9ci5zaWJsaW5nfUdzLmNoaWxkRXhwaXJhdGlvblRpbWU9bn1pZihudWxsIT09dClyZXR1cm4gdDtudWxsIT09ZSYmMD09PSgyMDQ4JmUuZWZmZWN0VGFnKSYmKG51bGw9PT1lLmZpcnN0RWZmZWN0JiYoZS5maXJzdEVmZmVjdD1Hcy5maXJzdEVmZmVjdCksbnVsbCE9PUdzLmxhc3RFZmZlY3QmJihudWxsIT09ZS5sYXN0RWZmZWN0JiYoZS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9R3MuZmlyc3RFZmZlY3QpLGUubGFzdEVmZmVjdD1Hcy5sYXN0RWZmZWN0KSwxPEdzLmVmZmVjdFRhZyYmKG51bGwhPT1lLmxhc3RFZmZlY3Q/ZS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9R3M6ZS5maXJzdEVmZmVjdD1HcyxlLmxhc3RFZmZlY3Q9R3MpKX1lbHNle2lmKG51bGwhPT0odD1vcyhHcykpKXJldHVybiB0LmVmZmVjdFRhZyY9MjA0Nyx0O251bGwhPT1lJiYoZS5maXJzdEVmZmVjdD1lLmxhc3RFZmZlY3Q9bnVsbCxlLmVmZmVjdFRhZ3w9MjA0OCl9aWYobnVsbCE9PSh0PUdzLnNpYmxpbmcpKXJldHVybiB0O0dzPWV9d2hpbGUobnVsbCE9PUdzKTtyZXR1cm4genM9PT1McyYmKHpzPUhzKSxudWxsfWZ1bmN0aW9uIF9sKGUpe3ZhciB0PWUuZXhwaXJhdGlvblRpbWU7cmV0dXJuIHQ+KGU9ZS5jaGlsZEV4cGlyYXRpb25UaW1lKT90OmV9ZnVuY3Rpb24gRGwoZSl7dmFyIHQ9S28oKTtyZXR1cm4gWW8oOTksUmwuYmluZChudWxsLGUsdCkpLG51bGx9ZnVuY3Rpb24gUmwoZSx0KXtkb3tQbCgpfXdoaWxlKG51bGwhPT1ybCk7aWYoKEZzJihPc3xQcykpIT09RHMpdGhyb3cgRXJyb3IoYSgzMjcpKTt2YXIgbj1lLmZpbmlzaGVkV29yayxyPWUuZmluaXNoZWRFeHBpcmF0aW9uVGltZTtpZihudWxsPT09bilyZXR1cm4gbnVsbDtpZihlLmZpbmlzaGVkV29yaz1udWxsLGUuZmluaXNoZWRFeHBpcmF0aW9uVGltZT0wLG49PT1lLmN1cnJlbnQpdGhyb3cgRXJyb3IoYSgxNzcpKTtlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT0wLGUuY2FsbGJhY2tQcmlvcml0eT05MCxlLm5leHRLbm93blBlbmRpbmdMZXZlbD0wO3ZhciBvPV9sKG4pO2lmKGUuZmlyc3RQZW5kaW5nVGltZT1vLHI8PWUubGFzdFN1c3BlbmRlZFRpbWU/ZS5maXJzdFN1c3BlbmRlZFRpbWU9ZS5sYXN0U3VzcGVuZGVkVGltZT1lLm5leHRLbm93blBlbmRpbmdMZXZlbD0wOnI8PWUuZmlyc3RTdXNwZW5kZWRUaW1lJiYoZS5maXJzdFN1c3BlbmRlZFRpbWU9ci0xKSxyPD1lLmxhc3RQaW5nZWRUaW1lJiYoZS5sYXN0UGluZ2VkVGltZT0wKSxyPD1lLmxhc3RFeHBpcmVkVGltZSYmKGUubGFzdEV4cGlyZWRUaW1lPTApLGU9PT1NcyYmKEdzPU1zPW51bGwsVXM9MCksMTxuLmVmZmVjdFRhZz9udWxsIT09bi5sYXN0RWZmZWN0PyhuLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1uLG89bi5maXJzdEVmZmVjdCk6bz1uOm89bi5maXJzdEVmZmVjdCxudWxsIT09byl7dmFyIGk9RnM7RnN8PVBzLF9zLmN1cnJlbnQ9bnVsbCx4bj1LdDt2YXIgcz1tbigpO2lmKGduKHMpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBzKXZhciBsPXtzdGFydDpzLnNlbGVjdGlvblN0YXJ0LGVuZDpzLnNlbGVjdGlvbkVuZH07ZWxzZSBlOnt2YXIgYz0obD0obD1zLm93bmVyRG9jdW1lbnQpJiZsLmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmbC5nZXRTZWxlY3Rpb24oKTtpZihjJiYwIT09Yy5yYW5nZUNvdW50KXtsPWMuYW5jaG9yTm9kZTt2YXIgdT1jLmFuY2hvck9mZnNldCxkPWMuZm9jdXNOb2RlO2M9Yy5mb2N1c09mZnNldDt0cnl7bC5ub2RlVHlwZSxkLm5vZGVUeXBlfWNhdGNoKEEpe2w9bnVsbDticmVhayBlfXZhciBwPTAsZj0tMSxoPS0xLG09MCxnPTAseT1zLHY9bnVsbDt0OmZvcig7Oyl7Zm9yKHZhciBiO3khPT1sfHwwIT09dSYmMyE9PXkubm9kZVR5cGV8fChmPXArdSkseSE9PWR8fDAhPT1jJiYzIT09eS5ub2RlVHlwZXx8KGg9cCtjKSwzPT09eS5ub2RlVHlwZSYmKHArPXkubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PShiPXkuZmlyc3RDaGlsZCk7KXY9eSx5PWI7Zm9yKDs7KXtpZih5PT09cylicmVhayB0O2lmKHY9PT1sJiYrK209PT11JiYoZj1wKSx2PT09ZCYmKytnPT09YyYmKGg9cCksbnVsbCE9PShiPXkubmV4dFNpYmxpbmcpKWJyZWFrO3Y9KHk9dikucGFyZW50Tm9kZX15PWJ9bD0tMT09PWZ8fC0xPT09aD9udWxsOntzdGFydDpmLGVuZDpofX1lbHNlIGw9bnVsbH1sPWx8fHtzdGFydDowLGVuZDowfX1lbHNlIGw9bnVsbDt3bj17YWN0aXZlRWxlbWVudERldGFjaGVkOm51bGwsZm9jdXNlZEVsZW06cyxzZWxlY3Rpb25SYW5nZTpsfSxLdD0hMSxRcz1vO2Rve3RyeXtPbCgpfWNhdGNoKEEpe2lmKG51bGw9PT1Rcyl0aHJvdyBFcnJvcihhKDMzMCkpO0lsKFFzLEEpLFFzPVFzLm5leHRFZmZlY3R9fXdoaWxlKG51bGwhPT1Rcyk7UXM9bztkb3t0cnl7Zm9yKHM9ZSxsPXQ7bnVsbCE9PVFzOyl7dmFyIFQ9UXMuZWZmZWN0VGFnO2lmKDE2JlQmJkdlKFFzLnN0YXRlTm9kZSxcIlwiKSwxMjgmVCl7dmFyIHg9UXMuYWx0ZXJuYXRlO2lmKG51bGwhPT14KXt2YXIgdz14LnJlZjtudWxsIT09dyYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB3P3cobnVsbCk6dy5jdXJyZW50PW51bGwpfX1zd2l0Y2goMTAzOCZUKXtjYXNlIDI6Z3MoUXMpLFFzLmVmZmVjdFRhZyY9LTM7YnJlYWs7Y2FzZSA2OmdzKFFzKSxRcy5lZmZlY3RUYWcmPS0zLFRzKFFzLmFsdGVybmF0ZSxRcyk7YnJlYWs7Y2FzZSAxMDI0OlFzLmVmZmVjdFRhZyY9LTEwMjU7YnJlYWs7Y2FzZSAxMDI4OlFzLmVmZmVjdFRhZyY9LTEwMjUsVHMoUXMuYWx0ZXJuYXRlLFFzKTticmVhaztjYXNlIDQ6VHMoUXMuYWx0ZXJuYXRlLFFzKTticmVhaztjYXNlIDg6YnMocyx1PVFzLGwpLGhzKHUpfVFzPVFzLm5leHRFZmZlY3R9fWNhdGNoKEEpe2lmKG51bGw9PT1Rcyl0aHJvdyBFcnJvcihhKDMzMCkpO0lsKFFzLEEpLFFzPVFzLm5leHRFZmZlY3R9fXdoaWxlKG51bGwhPT1Rcyk7aWYodz13bix4PW1uKCksVD13LmZvY3VzZWRFbGVtLGw9dy5zZWxlY3Rpb25SYW5nZSx4IT09VCYmVCYmVC5vd25lckRvY3VtZW50JiZobihULm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFQpKXtudWxsIT09bCYmZ24oVCkmJih4PWwuc3RhcnQsdm9pZCAwPT09KHc9bC5lbmQpJiYodz14KSxcInNlbGVjdGlvblN0YXJ0XCJpbiBUPyhULnNlbGVjdGlvblN0YXJ0PXgsVC5zZWxlY3Rpb25FbmQ9TWF0aC5taW4odyxULnZhbHVlLmxlbmd0aCkpOih3PSh4PVQub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZ4LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmKHc9dy5nZXRTZWxlY3Rpb24oKSx1PVQudGV4dENvbnRlbnQubGVuZ3RoLHM9TWF0aC5taW4obC5zdGFydCx1KSxsPXZvaWQgMD09PWwuZW5kP3M6TWF0aC5taW4obC5lbmQsdSksIXcuZXh0ZW5kJiZzPmwmJih1PWwsbD1zLHM9dSksdT1mbihULHMpLGQ9Zm4oVCxsKSx1JiZkJiYoMSE9PXcucmFuZ2VDb3VudHx8dy5hbmNob3JOb2RlIT09dS5ub2RlfHx3LmFuY2hvck9mZnNldCE9PXUub2Zmc2V0fHx3LmZvY3VzTm9kZSE9PWQubm9kZXx8dy5mb2N1c09mZnNldCE9PWQub2Zmc2V0KSYmKCh4PXguY3JlYXRlUmFuZ2UoKSkuc2V0U3RhcnQodS5ub2RlLHUub2Zmc2V0KSx3LnJlbW92ZUFsbFJhbmdlcygpLHM+bD8ody5hZGRSYW5nZSh4KSx3LmV4dGVuZChkLm5vZGUsZC5vZmZzZXQpKTooeC5zZXRFbmQoZC5ub2RlLGQub2Zmc2V0KSx3LmFkZFJhbmdlKHgpKSkpKSx4PVtdO2Zvcih3PVQ7dz13LnBhcmVudE5vZGU7KTE9PT13Lm5vZGVUeXBlJiZ4LnB1c2goe2VsZW1lbnQ6dyxsZWZ0Oncuc2Nyb2xsTGVmdCx0b3A6dy5zY3JvbGxUb3B9KTtmb3IoXCJmdW5jdGlvblwiPT09dHlwZW9mIFQuZm9jdXMmJlQuZm9jdXMoKSxUPTA7VDx4Lmxlbmd0aDtUKyspKHc9eFtUXSkuZWxlbWVudC5zY3JvbGxMZWZ0PXcubGVmdCx3LmVsZW1lbnQuc2Nyb2xsVG9wPXcudG9wfUt0PSEheG4sd249eG49bnVsbCxlLmN1cnJlbnQ9bixRcz1vO2Rve3RyeXtmb3IoVD1lO251bGwhPT1Rczspe3ZhciBrPVFzLmVmZmVjdFRhZztpZigzNiZrJiZwcyhULFFzLmFsdGVybmF0ZSxRcyksMTI4Jmspe3g9dm9pZCAwO3ZhciBFPVFzLnJlZjtpZihudWxsIT09RSl7dmFyIFM9UXMuc3RhdGVOb2RlO1FzLnRhZyx4PVMsXCJmdW5jdGlvblwiPT09dHlwZW9mIEU/RSh4KTpFLmN1cnJlbnQ9eH19UXM9UXMubmV4dEVmZmVjdH19Y2F0Y2goQSl7aWYobnVsbD09PVFzKXRocm93IEVycm9yKGEoMzMwKSk7SWwoUXMsQSksUXM9UXMubmV4dEVmZmVjdH19d2hpbGUobnVsbCE9PVFzKTtRcz1udWxsLEdvKCksRnM9aX1lbHNlIGUuY3VycmVudD1uO2lmKG5sKW5sPSExLHJsPWUsb2w9dDtlbHNlIGZvcihRcz1vO251bGwhPT1RczspdD1Rcy5uZXh0RWZmZWN0LFFzLm5leHRFZmZlY3Q9bnVsbCxRcz10O2lmKDA9PT0odD1lLmZpcnN0UGVuZGluZ1RpbWUpJiYodGw9bnVsbCksMTA3Mzc0MTgyMz09PXQ/ZT09PXNsP2FsKys6KGFsPTAsc2w9ZSk6YWw9MCxcImZ1bmN0aW9uXCI9PT10eXBlb2YgSGwmJkhsKG4uc3RhdGVOb2RlLHIpLGhsKGUpLEpzKXRocm93IEpzPSExLGU9ZWwsZWw9bnVsbCxlO3JldHVybihGcyZScykhPT1Ec3x8UW8oKSxudWxsfWZ1bmN0aW9uIE9sKCl7Zm9yKDtudWxsIT09UXM7KXt2YXIgZT1Rcy5lZmZlY3RUYWc7MCE9PSgyNTYmZSkmJmNzKFFzLmFsdGVybmF0ZSxRcyksMD09PSg1MTImZSl8fG5sfHwobmw9ITAsJG8oOTcsKGZ1bmN0aW9uKCl7cmV0dXJuIFBsKCksbnVsbH0pKSksUXM9UXMubmV4dEVmZmVjdH19ZnVuY3Rpb24gUGwoKXtpZig5MCE9PW9sKXt2YXIgZT05NzxvbD85NzpvbDtyZXR1cm4gb2w9OTAsWW8oZSxMbCl9fWZ1bmN0aW9uIExsKCl7aWYobnVsbD09PXJsKXJldHVybiExO3ZhciBlPXJsO2lmKHJsPW51bGwsKEZzJihPc3xQcykpIT09RHMpdGhyb3cgRXJyb3IoYSgzMzEpKTt2YXIgdD1Gcztmb3IoRnN8PVBzLGU9ZS5jdXJyZW50LmZpcnN0RWZmZWN0O251bGwhPT1lOyl7dHJ5e3ZhciBuPWU7aWYoMCE9PSg1MTImbi5lZmZlY3RUYWcpKXN3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDIyOnVzKDUsbiksZHMoNSxuKX19Y2F0Y2gocil7aWYobnVsbD09PWUpdGhyb3cgRXJyb3IoYSgzMzApKTtJbChlLHIpfW49ZS5uZXh0RWZmZWN0LGUubmV4dEVmZmVjdD1udWxsLGU9bn1yZXR1cm4gRnM9dCxRbygpLCEwfWZ1bmN0aW9uIE5sKGUsdCxuKXttaShlLHQ9a3MoZSx0PWlzKG4sdCksMTA3Mzc0MTgyMykpLG51bGwhPT0oZT1wbChlLDEwNzM3NDE4MjMpKSYmaGwoZSl9ZnVuY3Rpb24gSWwoZSx0KXtpZigzPT09ZS50YWcpTmwoZSxlLHQpO2Vsc2UgZm9yKHZhciBuPWUucmV0dXJuO251bGwhPT1uOyl7aWYoMz09PW4udGFnKXtObChuLGUsdCk7YnJlYWt9aWYoMT09PW4udGFnKXt2YXIgcj1uLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIHIuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09dGx8fCF0bC5oYXMocikpKXttaShuLGU9RXMobixlPWlzKHQsZSksMTA3Mzc0MTgyMykpLG51bGwhPT0obj1wbChuLDEwNzM3NDE4MjMpKSYmaGwobik7YnJlYWt9fW49bi5yZXR1cm59fWZ1bmN0aW9uIGpsKGUsdCxuKXt2YXIgcj1lLnBpbmdDYWNoZTtudWxsIT09ciYmci5kZWxldGUodCksTXM9PT1lJiZVcz09PW4/enM9PT1Cc3x8enM9PT1qcyYmMTA3Mzc0MTgyMz09PVdzJiZxbygpLSRzPFhzP2JsKGUsVXMpOllzPSEwOllsKGUsbikmJigwIT09KHQ9ZS5sYXN0UGluZ2VkVGltZSkmJnQ8bnx8KGUubGFzdFBpbmdlZFRpbWU9bixobChlKSkpfWZ1bmN0aW9uIEJsKGUsdCl7dmFyIG49ZS5zdGF0ZU5vZGU7bnVsbCE9PW4mJm4uZGVsZXRlKHQpLDA9PT0odD0wKSYmKHQ9dWwodD1jbCgpLGUsbnVsbCkpLG51bGwhPT0oZT1wbChlLHQpKSYmaGwoZSl9U3M9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQuZXhwaXJhdGlvblRpbWU7aWYobnVsbCE9PWUpe3ZhciBvPXQucGVuZGluZ1Byb3BzO2lmKGUubWVtb2l6ZWRQcm9wcyE9PW98fGJvLmN1cnJlbnQpamE9ITA7ZWxzZXtpZihyPG4pe3N3aXRjaChqYT0hMSx0LnRhZyl7Y2FzZSAzOldhKHQpLE5hKCk7YnJlYWs7Y2FzZSA1OmlmKE1pKHQpLDQmdC5tb2RlJiYxIT09biYmby5oaWRkZW4pcmV0dXJuIHQuZXhwaXJhdGlvblRpbWU9dC5jaGlsZEV4cGlyYXRpb25UaW1lPTEsbnVsbDticmVhaztjYXNlIDE6d28odC50eXBlKSYmQW8odCk7YnJlYWs7Y2FzZSA0OkhpKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpyPXQubWVtb2l6ZWRQcm9wcy52YWx1ZSxvPXQudHlwZS5fY29udGV4dCxnbyhuaSxvLl9jdXJyZW50VmFsdWUpLG8uX2N1cnJlbnRWYWx1ZT1yO2JyZWFrO2Nhc2UgMTM6aWYobnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gMCE9PShyPXQuY2hpbGQuY2hpbGRFeHBpcmF0aW9uVGltZSkmJnI+PW4/WGEoZSx0LG4pOihnbyhVaSwxJlVpLmN1cnJlbnQpLG51bGwhPT0odD10cyhlLHQsbikpP3Quc2libGluZzpudWxsKTtnbyhVaSwxJlVpLmN1cnJlbnQpO2JyZWFrO2Nhc2UgMTk6aWYocj10LmNoaWxkRXhwaXJhdGlvblRpbWU+PW4sMCE9PSg2NCZlLmVmZmVjdFRhZykpe2lmKHIpcmV0dXJuIGVzKGUsdCxuKTt0LmVmZmVjdFRhZ3w9NjR9aWYobnVsbCE9PShvPXQubWVtb2l6ZWRTdGF0ZSkmJihvLnJlbmRlcmluZz1udWxsLG8udGFpbD1udWxsKSxnbyhVaSxVaS5jdXJyZW50KSwhcilyZXR1cm4gbnVsbH1yZXR1cm4gdHMoZSx0LG4pfWphPSExfX1lbHNlIGphPSExO3N3aXRjaCh0LmV4cGlyYXRpb25UaW1lPTAsdC50YWcpe2Nhc2UgMjppZihyPXQudHlwZSxudWxsIT09ZSYmKGUuYWx0ZXJuYXRlPW51bGwsdC5hbHRlcm5hdGU9bnVsbCx0LmVmZmVjdFRhZ3w9MiksZT10LnBlbmRpbmdQcm9wcyxvPXhvKHQsdm8uY3VycmVudCksY2kodCxuKSxvPWVhKG51bGwsdCxyLGUsbyxuKSx0LmVmZmVjdFRhZ3w9MSxcIm9iamVjdFwiPT09dHlwZW9mIG8mJm51bGwhPT1vJiZcImZ1bmN0aW9uXCI9PT10eXBlb2Ygby5yZW5kZXImJnZvaWQgMD09PW8uJCR0eXBlb2Ype2lmKHQudGFnPTEsdC5tZW1vaXplZFN0YXRlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLHdvKHIpKXt2YXIgaT0hMDtBbyh0KX1lbHNlIGk9ITE7dC5tZW1vaXplZFN0YXRlPW51bGwhPT1vLnN0YXRlJiZ2b2lkIDAhPT1vLnN0YXRlP28uc3RhdGU6bnVsbCxwaSh0KTt2YXIgcz1yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcImZ1bmN0aW9uXCI9PT10eXBlb2YgcyYmeGkodCxyLHMsZSksby51cGRhdGVyPXdpLHQuc3RhdGVOb2RlPW8sby5fcmVhY3RJbnRlcm5hbEZpYmVyPXQsQWkodCxyLGUsbiksdD1WYShudWxsLHQsciwhMCxpLG4pfWVsc2UgdC50YWc9MCxCYShudWxsLHQsbyxuKSx0PXQuY2hpbGQ7cmV0dXJuIHQ7Y2FzZSAxNjplOntpZihvPXQuZWxlbWVudFR5cGUsbnVsbCE9PWUmJihlLmFsdGVybmF0ZT1udWxsLHQuYWx0ZXJuYXRlPW51bGwsdC5lZmZlY3RUYWd8PTIpLGU9dC5wZW5kaW5nUHJvcHMsZnVuY3Rpb24oZSl7aWYoLTE9PT1lLl9zdGF0dXMpe2UuX3N0YXR1cz0wO3ZhciB0PWUuX2N0b3I7dD10KCksZS5fcmVzdWx0PXQsdC50aGVuKChmdW5jdGlvbih0KXswPT09ZS5fc3RhdHVzJiYodD10LmRlZmF1bHQsZS5fc3RhdHVzPTEsZS5fcmVzdWx0PXQpfSksKGZ1bmN0aW9uKHQpezA9PT1lLl9zdGF0dXMmJihlLl9zdGF0dXM9MixlLl9yZXN1bHQ9dCl9KSl9fShvKSwxIT09by5fc3RhdHVzKXRocm93IG8uX3Jlc3VsdDtzd2l0Y2gobz1vLl9yZXN1bHQsdC50eXBlPW8saT10LnRhZz1mdW5jdGlvbihlKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSlyZXR1cm4gVWwoZSk/MTowO2lmKHZvaWQgMCE9PWUmJm51bGwhPT1lKXtpZigoZT1lLiQkdHlwZW9mKT09PWxlKXJldHVybiAxMTtpZihlPT09ZGUpcmV0dXJuIDE0fXJldHVybiAyfShvKSxlPXRpKG8sZSksaSl7Y2FzZSAwOnQ9VWEobnVsbCx0LG8sZSxuKTticmVhayBlO2Nhc2UgMTp0PXphKG51bGwsdCxvLGUsbik7YnJlYWsgZTtjYXNlIDExOnQ9SGEobnVsbCx0LG8sZSxuKTticmVhayBlO2Nhc2UgMTQ6dD1GYShudWxsLHQsbyx0aShvLnR5cGUsZSkscixuKTticmVhayBlfXRocm93IEVycm9yKGEoMzA2LG8sXCJcIikpfXJldHVybiB0O2Nhc2UgMDpyZXR1cm4gcj10LnR5cGUsbz10LnBlbmRpbmdQcm9wcyxVYShlLHQscixvPXQuZWxlbWVudFR5cGU9PT1yP286dGkocixvKSxuKTtjYXNlIDE6cmV0dXJuIHI9dC50eXBlLG89dC5wZW5kaW5nUHJvcHMsemEoZSx0LHIsbz10LmVsZW1lbnRUeXBlPT09cj9vOnRpKHIsbyksbik7Y2FzZSAzOmlmKFdhKHQpLHI9dC51cGRhdGVRdWV1ZSxudWxsPT09ZXx8bnVsbD09PXIpdGhyb3cgRXJyb3IoYSgyODIpKTtpZihyPXQucGVuZGluZ1Byb3BzLG89bnVsbCE9PShvPXQubWVtb2l6ZWRTdGF0ZSk/by5lbGVtZW50Om51bGwsZmkoZSx0KSx5aSh0LHIsbnVsbCxuKSwocj10Lm1lbW9pemVkU3RhdGUuZWxlbWVudCk9PT1vKU5hKCksdD10cyhlLHQsbik7ZWxzZXtpZigobz10LnN0YXRlTm9kZS5oeWRyYXRlKSYmKENhPUNuKHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCksQWE9dCxvPV9hPSEwKSxvKWZvcihuPVBpKHQsbnVsbCxyLG4pLHQuY2hpbGQ9bjtuOyluLmVmZmVjdFRhZz0tMyZuLmVmZmVjdFRhZ3wxMDI0LG49bi5zaWJsaW5nO2Vsc2UgQmEoZSx0LHIsbiksTmEoKTt0PXQuY2hpbGR9cmV0dXJuIHQ7Y2FzZSA1OnJldHVybiBNaSh0KSxudWxsPT09ZSYmT2EodCkscj10LnR5cGUsbz10LnBlbmRpbmdQcm9wcyxpPW51bGwhPT1lP2UubWVtb2l6ZWRQcm9wczpudWxsLHM9by5jaGlsZHJlbixFbihyLG8pP3M9bnVsbDpudWxsIT09aSYmRW4ocixpKSYmKHQuZWZmZWN0VGFnfD0xNiksR2EoZSx0KSw0JnQubW9kZSYmMSE9PW4mJm8uaGlkZGVuPyh0LmV4cGlyYXRpb25UaW1lPXQuY2hpbGRFeHBpcmF0aW9uVGltZT0xLHQ9bnVsbCk6KEJhKGUsdCxzLG4pLHQ9dC5jaGlsZCksdDtjYXNlIDY6cmV0dXJuIG51bGw9PT1lJiZPYSh0KSxudWxsO2Nhc2UgMTM6cmV0dXJuIFhhKGUsdCxuKTtjYXNlIDQ6cmV0dXJuIEhpKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscj10LnBlbmRpbmdQcm9wcyxudWxsPT09ZT90LmNoaWxkPU9pKHQsbnVsbCxyLG4pOkJhKGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gcj10LnR5cGUsbz10LnBlbmRpbmdQcm9wcyxIYShlLHQscixvPXQuZWxlbWVudFR5cGU9PT1yP286dGkocixvKSxuKTtjYXNlIDc6cmV0dXJuIEJhKGUsdCx0LnBlbmRpbmdQcm9wcyxuKSx0LmNoaWxkO2Nhc2UgODpjYXNlIDEyOnJldHVybiBCYShlLHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbiksdC5jaGlsZDtjYXNlIDEwOmU6e3I9dC50eXBlLl9jb250ZXh0LG89dC5wZW5kaW5nUHJvcHMscz10Lm1lbW9pemVkUHJvcHMsaT1vLnZhbHVlO3ZhciBsPXQudHlwZS5fY29udGV4dDtpZihnbyhuaSxsLl9jdXJyZW50VmFsdWUpLGwuX2N1cnJlbnRWYWx1ZT1pLG51bGwhPT1zKWlmKGw9cy52YWx1ZSwwPT09KGk9enIobCxpKT8wOjB8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiByLl9jYWxjdWxhdGVDaGFuZ2VkQml0cz9yLl9jYWxjdWxhdGVDaGFuZ2VkQml0cyhsLGkpOjEwNzM3NDE4MjMpKSl7aWYocy5jaGlsZHJlbj09PW8uY2hpbGRyZW4mJiFiby5jdXJyZW50KXt0PXRzKGUsdCxuKTticmVhayBlfX1lbHNlIGZvcihudWxsIT09KGw9dC5jaGlsZCkmJihsLnJldHVybj10KTtudWxsIT09bDspe3ZhciBjPWwuZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1jKXtzPWwuY2hpbGQ7Zm9yKHZhciB1PWMuZmlyc3RDb250ZXh0O251bGwhPT11Oyl7aWYodS5jb250ZXh0PT09ciYmMCE9PSh1Lm9ic2VydmVkQml0cyZpKSl7MT09PWwudGFnJiYoKHU9aGkobixudWxsKSkudGFnPTIsbWkobCx1KSksbC5leHBpcmF0aW9uVGltZTxuJiYobC5leHBpcmF0aW9uVGltZT1uKSxudWxsIT09KHU9bC5hbHRlcm5hdGUpJiZ1LmV4cGlyYXRpb25UaW1lPG4mJih1LmV4cGlyYXRpb25UaW1lPW4pLGxpKGwucmV0dXJuLG4pLGMuZXhwaXJhdGlvblRpbWU8biYmKGMuZXhwaXJhdGlvblRpbWU9bik7YnJlYWt9dT11Lm5leHR9fWVsc2Ugcz0xMD09PWwudGFnJiZsLnR5cGU9PT10LnR5cGU/bnVsbDpsLmNoaWxkO2lmKG51bGwhPT1zKXMucmV0dXJuPWw7ZWxzZSBmb3Iocz1sO251bGwhPT1zOyl7aWYocz09PXQpe3M9bnVsbDticmVha31pZihudWxsIT09KGw9cy5zaWJsaW5nKSl7bC5yZXR1cm49cy5yZXR1cm4scz1sO2JyZWFrfXM9cy5yZXR1cm59bD1zfUJhKGUsdCxvLmNoaWxkcmVuLG4pLHQ9dC5jaGlsZH1yZXR1cm4gdDtjYXNlIDk6cmV0dXJuIG89dC50eXBlLHI9KGk9dC5wZW5kaW5nUHJvcHMpLmNoaWxkcmVuLGNpKHQsbikscj1yKG89dWkobyxpLnVuc3RhYmxlX29ic2VydmVkQml0cykpLHQuZWZmZWN0VGFnfD0xLEJhKGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gaT10aShvPXQudHlwZSx0LnBlbmRpbmdQcm9wcyksRmEoZSx0LG8saT10aShvLnR5cGUsaSkscixuKTtjYXNlIDE1OnJldHVybiBNYShlLHQsdC50eXBlLHQucGVuZGluZ1Byb3BzLHIsbik7Y2FzZSAxNzpyZXR1cm4gcj10LnR5cGUsbz10LnBlbmRpbmdQcm9wcyxvPXQuZWxlbWVudFR5cGU9PT1yP286dGkocixvKSxudWxsIT09ZSYmKGUuYWx0ZXJuYXRlPW51bGwsdC5hbHRlcm5hdGU9bnVsbCx0LmVmZmVjdFRhZ3w9MiksdC50YWc9MSx3byhyKT8oZT0hMCxBbyh0KSk6ZT0hMSxjaSh0LG4pLEVpKHQscixvKSxBaSh0LHIsbyxuKSxWYShudWxsLHQsciwhMCxlLG4pO2Nhc2UgMTk6cmV0dXJuIGVzKGUsdCxuKX10aHJvdyBFcnJvcihhKDE1Nix0LnRhZykpfTt2YXIgSGw9bnVsbCxGbD1udWxsO2Z1bmN0aW9uIE1sKGUsdCxuLHIpe3RoaXMudGFnPWUsdGhpcy5rZXk9bix0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsLHRoaXMuaW5kZXg9MCx0aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPXQsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPXIsdGhpcy5lZmZlY3RUYWc9MCx0aGlzLmxhc3RFZmZlY3Q9dGhpcy5maXJzdEVmZmVjdD10aGlzLm5leHRFZmZlY3Q9bnVsbCx0aGlzLmNoaWxkRXhwaXJhdGlvblRpbWU9dGhpcy5leHBpcmF0aW9uVGltZT0wLHRoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gR2woZSx0LG4scil7cmV0dXJuIG5ldyBNbChlLHQsbixyKX1mdW5jdGlvbiBVbChlKXtyZXR1cm4hKCEoZT1lLnByb3RvdHlwZSl8fCFlLmlzUmVhY3RDb21wb25lbnQpfWZ1bmN0aW9uIHpsKGUsdCl7dmFyIG49ZS5hbHRlcm5hdGU7cmV0dXJuIG51bGw9PT1uPygobj1HbChlLnRhZyx0LGUua2V5LGUubW9kZSkpLmVsZW1lbnRUeXBlPWUuZWxlbWVudFR5cGUsbi50eXBlPWUudHlwZSxuLnN0YXRlTm9kZT1lLnN0YXRlTm9kZSxuLmFsdGVybmF0ZT1lLGUuYWx0ZXJuYXRlPW4pOihuLnBlbmRpbmdQcm9wcz10LG4uZWZmZWN0VGFnPTAsbi5uZXh0RWZmZWN0PW51bGwsbi5maXJzdEVmZmVjdD1udWxsLG4ubGFzdEVmZmVjdD1udWxsKSxuLmNoaWxkRXhwaXJhdGlvblRpbWU9ZS5jaGlsZEV4cGlyYXRpb25UaW1lLG4uZXhwaXJhdGlvblRpbWU9ZS5leHBpcmF0aW9uVGltZSxuLmNoaWxkPWUuY2hpbGQsbi5tZW1vaXplZFByb3BzPWUubWVtb2l6ZWRQcm9wcyxuLm1lbW9pemVkU3RhdGU9ZS5tZW1vaXplZFN0YXRlLG4udXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0PWUuZGVwZW5kZW5jaWVzLG4uZGVwZW5kZW5jaWVzPW51bGw9PT10P251bGw6e2V4cGlyYXRpb25UaW1lOnQuZXhwaXJhdGlvblRpbWUsZmlyc3RDb250ZXh0OnQuZmlyc3RDb250ZXh0LHJlc3BvbmRlcnM6dC5yZXNwb25kZXJzfSxuLnNpYmxpbmc9ZS5zaWJsaW5nLG4uaW5kZXg9ZS5pbmRleCxuLnJlZj1lLnJlZixufWZ1bmN0aW9uIFZsKGUsdCxuLHIsbyxpKXt2YXIgcz0yO2lmKHI9ZSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSlVbChlKSYmKHM9MSk7ZWxzZSBpZihcInN0cmluZ1wiPT09dHlwZW9mIGUpcz01O2Vsc2UgZTpzd2l0Y2goZSl7Y2FzZSBuZTpyZXR1cm4gV2wobi5jaGlsZHJlbixvLGksdCk7Y2FzZSBzZTpzPTgsb3w9NzticmVhaztjYXNlIHJlOnM9OCxvfD0xO2JyZWFrO2Nhc2Ugb2U6cmV0dXJuKGU9R2woMTIsbix0LDh8bykpLmVsZW1lbnRUeXBlPW9lLGUudHlwZT1vZSxlLmV4cGlyYXRpb25UaW1lPWksZTtjYXNlIGNlOnJldHVybihlPUdsKDEzLG4sdCxvKSkudHlwZT1jZSxlLmVsZW1lbnRUeXBlPWNlLGUuZXhwaXJhdGlvblRpbWU9aSxlO2Nhc2UgdWU6cmV0dXJuKGU9R2woMTksbix0LG8pKS5lbGVtZW50VHlwZT11ZSxlLmV4cGlyYXRpb25UaW1lPWksZTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PT10eXBlb2YgZSYmbnVsbCE9PWUpc3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgaWU6cz0xMDticmVhayBlO2Nhc2UgYWU6cz05O2JyZWFrIGU7Y2FzZSBsZTpzPTExO2JyZWFrIGU7Y2FzZSBkZTpzPTE0O2JyZWFrIGU7Y2FzZSBwZTpzPTE2LHI9bnVsbDticmVhayBlO2Nhc2UgZmU6cz0yMjticmVhayBlfXRocm93IEVycm9yKGEoMTMwLG51bGw9PWU/ZTp0eXBlb2YgZSxcIlwiKSl9cmV0dXJuKHQ9R2wocyxuLHQsbykpLmVsZW1lbnRUeXBlPWUsdC50eXBlPXIsdC5leHBpcmF0aW9uVGltZT1pLHR9ZnVuY3Rpb24gV2woZSx0LG4scil7cmV0dXJuKGU9R2woNyxlLHIsdCkpLmV4cGlyYXRpb25UaW1lPW4sZX1mdW5jdGlvbiBxbChlLHQsbil7cmV0dXJuKGU9R2woNixlLG51bGwsdCkpLmV4cGlyYXRpb25UaW1lPW4sZX1mdW5jdGlvbiBLbChlLHQsbil7cmV0dXJuKHQ9R2woNCxudWxsIT09ZS5jaGlsZHJlbj9lLmNoaWxkcmVuOltdLGUua2V5LHQpKS5leHBpcmF0aW9uVGltZT1uLHQuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmUuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjplLmltcGxlbWVudGF0aW9ufSx0fWZ1bmN0aW9uIFpsKGUsdCxuKXt0aGlzLnRhZz10LHRoaXMuY3VycmVudD1udWxsLHRoaXMuY29udGFpbmVySW5mbz1lLHRoaXMucGluZ0NhY2hlPXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGwsdGhpcy5maW5pc2hlZEV4cGlyYXRpb25UaW1lPTAsdGhpcy5maW5pc2hlZFdvcms9bnVsbCx0aGlzLnRpbWVvdXRIYW5kbGU9LTEsdGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9bnVsbCx0aGlzLmh5ZHJhdGU9bix0aGlzLmNhbGxiYWNrTm9kZT1udWxsLHRoaXMuY2FsbGJhY2tQcmlvcml0eT05MCx0aGlzLmxhc3RFeHBpcmVkVGltZT10aGlzLmxhc3RQaW5nZWRUaW1lPXRoaXMubmV4dEtub3duUGVuZGluZ0xldmVsPXRoaXMubGFzdFN1c3BlbmRlZFRpbWU9dGhpcy5maXJzdFN1c3BlbmRlZFRpbWU9dGhpcy5maXJzdFBlbmRpbmdUaW1lPTB9ZnVuY3Rpb24gWWwoZSx0KXt2YXIgbj1lLmZpcnN0U3VzcGVuZGVkVGltZTtyZXR1cm4gZT1lLmxhc3RTdXNwZW5kZWRUaW1lLDAhPT1uJiZuPj10JiZlPD10fWZ1bmN0aW9uICRsKGUsdCl7dmFyIG49ZS5maXJzdFN1c3BlbmRlZFRpbWUscj1lLmxhc3RTdXNwZW5kZWRUaW1lO248dCYmKGUuZmlyc3RTdXNwZW5kZWRUaW1lPXQpLChyPnR8fDA9PT1uKSYmKGUubGFzdFN1c3BlbmRlZFRpbWU9dCksdDw9ZS5sYXN0UGluZ2VkVGltZSYmKGUubGFzdFBpbmdlZFRpbWU9MCksdDw9ZS5sYXN0RXhwaXJlZFRpbWUmJihlLmxhc3RFeHBpcmVkVGltZT0wKX1mdW5jdGlvbiBYbChlLHQpe3Q+ZS5maXJzdFBlbmRpbmdUaW1lJiYoZS5maXJzdFBlbmRpbmdUaW1lPXQpO3ZhciBuPWUuZmlyc3RTdXNwZW5kZWRUaW1lOzAhPT1uJiYodD49bj9lLmZpcnN0U3VzcGVuZGVkVGltZT1lLmxhc3RTdXNwZW5kZWRUaW1lPWUubmV4dEtub3duUGVuZGluZ0xldmVsPTA6dD49ZS5sYXN0U3VzcGVuZGVkVGltZSYmKGUubGFzdFN1c3BlbmRlZFRpbWU9dCsxKSx0PmUubmV4dEtub3duUGVuZGluZ0xldmVsJiYoZS5uZXh0S25vd25QZW5kaW5nTGV2ZWw9dCkpfWZ1bmN0aW9uIFFsKGUsdCl7dmFyIG49ZS5sYXN0RXhwaXJlZFRpbWU7KDA9PT1ufHxuPnQpJiYoZS5sYXN0RXhwaXJlZFRpbWU9dCl9ZnVuY3Rpb24gSmwoZSx0LG4scil7dmFyIG89dC5jdXJyZW50LGk9Y2woKSxzPWJpLnN1c3BlbnNlO2k9dWwoaSxvLHMpO2U6aWYobil7dDp7aWYoZXQobj1uLl9yZWFjdEludGVybmFsRmliZXIpIT09bnx8MSE9PW4udGFnKXRocm93IEVycm9yKGEoMTcwKSk7dmFyIGw9bjtkb3tzd2l0Y2gobC50YWcpe2Nhc2UgMzpsPWwuc3RhdGVOb2RlLmNvbnRleHQ7YnJlYWsgdDtjYXNlIDE6aWYod28obC50eXBlKSl7bD1sLnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDticmVhayB0fX1sPWwucmV0dXJufXdoaWxlKG51bGwhPT1sKTt0aHJvdyBFcnJvcihhKDE3MSkpfWlmKDE9PT1uLnRhZyl7dmFyIGM9bi50eXBlO2lmKHdvKGMpKXtuPVNvKG4sYyxsKTticmVhayBlfX1uPWx9ZWxzZSBuPXlvO3JldHVybiBudWxsPT09dC5jb250ZXh0P3QuY29udGV4dD1uOnQucGVuZGluZ0NvbnRleHQ9biwodD1oaShpLHMpKS5wYXlsb2FkPXtlbGVtZW50OmV9LG51bGwhPT0ocj12b2lkIDA9PT1yP251bGw6cikmJih0LmNhbGxiYWNrPXIpLG1pKG8sdCksZGwobyxpKSxpfWZ1bmN0aW9uIGVjKGUpe3JldHVybihlPWUuY3VycmVudCkuY2hpbGQ/KGUuY2hpbGQudGFnLGUuY2hpbGQuc3RhdGVOb2RlKTpudWxsfWZ1bmN0aW9uIHRjKGUsdCl7bnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1lLmRlaHlkcmF0ZWQmJmUucmV0cnlUaW1lPHQmJihlLnJldHJ5VGltZT10KX1mdW5jdGlvbiBuYyhlLHQpe3RjKGUsdCksKGU9ZS5hbHRlcm5hdGUpJiZ0YyhlLHQpfWZ1bmN0aW9uIHJjKGUsdCxuKXt2YXIgcj1uZXcgWmwoZSx0LG49bnVsbCE9biYmITA9PT1uLmh5ZHJhdGUpLG89R2woMyxudWxsLG51bGwsMj09PXQ/NzoxPT09dD8zOjApO3IuY3VycmVudD1vLG8uc3RhdGVOb2RlPXIscGkobyksZVtQbl09ci5jdXJyZW50LG4mJjAhPT10JiZmdW5jdGlvbihlLHQpe3ZhciBuPUplKHQpO0N0LmZvckVhY2goKGZ1bmN0aW9uKGUpe210KGUsdCxuKX0pKSxfdC5mb3JFYWNoKChmdW5jdGlvbihlKXttdChlLHQsbil9KSl9KDAsOT09PWUubm9kZVR5cGU/ZTplLm93bmVyRG9jdW1lbnQpLHRoaXMuX2ludGVybmFsUm9vdD1yfWZ1bmN0aW9uIG9jKGUpe3JldHVybiEoIWV8fDEhPT1lLm5vZGVUeXBlJiY5IT09ZS5ub2RlVHlwZSYmMTEhPT1lLm5vZGVUeXBlJiYoOCE9PWUubm9kZVR5cGV8fFwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlIFwiIT09ZS5ub2RlVmFsdWUpKX1mdW5jdGlvbiBpYyhlLHQsbixyLG8pe3ZhciBpPW4uX3JlYWN0Um9vdENvbnRhaW5lcjtpZihpKXt2YXIgYT1pLl9pbnRlcm5hbFJvb3Q7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIG8pe3ZhciBzPW87bz1mdW5jdGlvbigpe3ZhciBlPWVjKGEpO3MuY2FsbChlKX19SmwodCxhLGUsbyl9ZWxzZXtpZihpPW4uX3JlYWN0Um9vdENvbnRhaW5lcj1mdW5jdGlvbihlLHQpe2lmKHR8fCh0PSEoISh0PWU/OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZS5maXJzdENoaWxkOm51bGwpfHwxIT09dC5ub2RlVHlwZXx8IXQuaGFzQXR0cmlidXRlKFwiZGF0YS1yZWFjdHJvb3RcIikpKSwhdClmb3IodmFyIG47bj1lLmxhc3RDaGlsZDspZS5yZW1vdmVDaGlsZChuKTtyZXR1cm4gbmV3IHJjKGUsMCx0P3toeWRyYXRlOiEwfTp2b2lkIDApfShuLHIpLGE9aS5faW50ZXJuYWxSb290LFwiZnVuY3Rpb25cIj09PXR5cGVvZiBvKXt2YXIgbD1vO289ZnVuY3Rpb24oKXt2YXIgZT1lYyhhKTtsLmNhbGwoZSl9fXZsKChmdW5jdGlvbigpe0psKHQsYSxlLG8pfSkpfXJldHVybiBlYyhhKX1mdW5jdGlvbiBhYyhlLHQpe3ZhciBuPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKCFvYyh0KSl0aHJvdyBFcnJvcihhKDIwMCkpO3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI9Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOm51bGw7cmV0dXJueyQkdHlwZW9mOnRlLGtleTpudWxsPT1yP251bGw6XCJcIityLGNoaWxkcmVuOmUsY29udGFpbmVySW5mbzp0LGltcGxlbWVudGF0aW9uOm59fShlLHQsbnVsbCxuKX1yYy5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe0psKGUsdGhpcy5faW50ZXJuYWxSb290LG51bGwsbnVsbCl9LHJjLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5faW50ZXJuYWxSb290LHQ9ZS5jb250YWluZXJJbmZvO0psKG51bGwsZSxudWxsLChmdW5jdGlvbigpe3RbUG5dPW51bGx9KSl9LGd0PWZ1bmN0aW9uKGUpe2lmKDEzPT09ZS50YWcpe3ZhciB0PWVpKGNsKCksMTUwLDEwMCk7ZGwoZSx0KSxuYyhlLHQpfX0seXQ9ZnVuY3Rpb24oZSl7MTM9PT1lLnRhZyYmKGRsKGUsMyksbmMoZSwzKSl9LHZ0PWZ1bmN0aW9uKGUpe2lmKDEzPT09ZS50YWcpe3ZhciB0PWNsKCk7ZGwoZSx0PXVsKHQsZSxudWxsKSksbmMoZSx0KX19LF89ZnVuY3Rpb24oZSx0LG4pe3N3aXRjaCh0KXtjYXNlXCJpbnB1dFwiOmlmKFNlKGUsbiksdD1uLm5hbWUsXCJyYWRpb1wiPT09bi50eXBlJiZudWxsIT10KXtmb3Iobj1lO24ucGFyZW50Tm9kZTspbj1uLnBhcmVudE5vZGU7Zm9yKG49bi5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXRbbmFtZT1cIitKU09OLnN0cmluZ2lmeShcIlwiK3QpKyddW3R5cGU9XCJyYWRpb1wiXScpLHQ9MDt0PG4ubGVuZ3RoO3QrKyl7dmFyIHI9blt0XTtpZihyIT09ZSYmci5mb3JtPT09ZS5mb3JtKXt2YXIgbz1qbihyKTtpZighbyl0aHJvdyBFcnJvcihhKDkwKSk7eGUociksU2UocixvKX19fWJyZWFrO2Nhc2VcInRleHRhcmVhXCI6UGUoZSxuKTticmVhaztjYXNlXCJzZWxlY3RcIjpudWxsIT0odD1uLnZhbHVlKSYmRGUoZSwhIW4ubXVsdGlwbGUsdCwhMSl9fSxOPXlsLEk9ZnVuY3Rpb24oZSx0LG4scixvKXt2YXIgaT1GcztGc3w9NDt0cnl7cmV0dXJuIFlvKDk4LGUuYmluZChudWxsLHQsbixyLG8pKX1maW5hbGx5eyhGcz1pKT09PURzJiZRbygpfX0saj1mdW5jdGlvbigpeyhGcyYoMXxPc3xQcykpPT09RHMmJihmdW5jdGlvbigpe2lmKG51bGwhPT1pbCl7dmFyIGU9aWw7aWw9bnVsbCxlLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7UWwodCxlKSxobCh0KX0pKSxRbygpfX0oKSxQbCgpKX0sQj1mdW5jdGlvbihlLHQpe3ZhciBuPUZzO0ZzfD0yO3RyeXtyZXR1cm4gZSh0KX1maW5hbGx5eyhGcz1uKT09PURzJiZRbygpfX07dmFyIHNjPXtFdmVudHM6W05uLEluLGpuLEEsayx6bixmdW5jdGlvbihlKXtpdChlLFVuKX0sUCxMLFF0LGx0LFBsLHtjdXJyZW50OiExfV19OyFmdW5jdGlvbihlKXt2YXIgdD1lLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOyhmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXylyZXR1cm4hMTt2YXIgdD1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYodC5pc0Rpc2FibGVkfHwhdC5zdXBwb3J0c0ZpYmVyKXJldHVybiEwO3RyeXt2YXIgbj10LmluamVjdChlKTtIbD1mdW5jdGlvbihlKXt0cnl7dC5vbkNvbW1pdEZpYmVyUm9vdChuLGUsdm9pZCAwLDY0PT09KDY0JmUuY3VycmVudC5lZmZlY3RUYWcpKX1jYXRjaChyKXt9fSxGbD1mdW5jdGlvbihlKXt0cnl7dC5vbkNvbW1pdEZpYmVyVW5tb3VudChuLGUpfWNhdGNoKHIpe319fWNhdGNoKHIpe319KShvKHt9LGUse292ZXJyaWRlSG9va1N0YXRlOm51bGwsb3ZlcnJpZGVQcm9wczpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6JC5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09KGU9cnQoZSkpP251bGw6ZS5zdGF0ZU5vZGV9LGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOmZ1bmN0aW9uKGUpe3JldHVybiB0P3QoZSk6bnVsbH0sZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoOm51bGwsc2NoZWR1bGVSZWZyZXNoOm51bGwsc2NoZWR1bGVSb290Om51bGwsc2V0UmVmcmVzaEhhbmRsZXI6bnVsbCxnZXRDdXJyZW50RmliZXI6bnVsbH0pKX0oe2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOkxuLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOlwiMTYuMTQuMFwiLHJlbmRlcmVyUGFja2FnZU5hbWU6XCJyZWFjdC1kb21cIn0pLHQuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9c2MsdC5jcmVhdGVQb3J0YWw9YWMsdC5maW5kRE9NTm9kZT1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiBudWxsO2lmKDE9PT1lLm5vZGVUeXBlKXJldHVybiBlO3ZhciB0PWUuX3JlYWN0SW50ZXJuYWxGaWJlcjtpZih2b2lkIDA9PT10KXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5yZW5kZXIpdGhyb3cgRXJyb3IoYSgxODgpKTt0aHJvdyBFcnJvcihhKDI2OCxPYmplY3Qua2V5cyhlKSkpfXJldHVybiBlPW51bGw9PT0oZT1ydCh0KSk/bnVsbDplLnN0YXRlTm9kZX0sdC5mbHVzaFN5bmM9ZnVuY3Rpb24oZSx0KXtpZigoRnMmKE9zfFBzKSkhPT1Ecyl0aHJvdyBFcnJvcihhKDE4NykpO3ZhciBuPUZzO0ZzfD0xO3RyeXtyZXR1cm4gWW8oOTksZS5iaW5kKG51bGwsdCkpfWZpbmFsbHl7RnM9bixRbygpfX0sdC5oeWRyYXRlPWZ1bmN0aW9uKGUsdCxuKXtpZighb2ModCkpdGhyb3cgRXJyb3IoYSgyMDApKTtyZXR1cm4gaWMobnVsbCxlLHQsITAsbil9LHQucmVuZGVyPWZ1bmN0aW9uKGUsdCxuKXtpZighb2ModCkpdGhyb3cgRXJyb3IoYSgyMDApKTtyZXR1cm4gaWMobnVsbCxlLHQsITEsbil9LHQudW5tb3VudENvbXBvbmVudEF0Tm9kZT1mdW5jdGlvbihlKXtpZighb2MoZSkpdGhyb3cgRXJyb3IoYSg0MCkpO3JldHVybiEhZS5fcmVhY3RSb290Q29udGFpbmVyJiYodmwoKGZ1bmN0aW9uKCl7aWMobnVsbCxudWxsLGUsITEsKGZ1bmN0aW9uKCl7ZS5fcmVhY3RSb290Q29udGFpbmVyPW51bGwsZVtQbl09bnVsbH0pKX0pKSwhMCl9LHQudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9eWwsdC51bnN0YWJsZV9jcmVhdGVQb3J0YWw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYWMoZSx0LDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsKX0sdC51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcj1mdW5jdGlvbihlLHQsbixyKXtpZighb2MobikpdGhyb3cgRXJyb3IoYSgyMDApKTtpZihudWxsPT1lfHx2b2lkIDA9PT1lLl9yZWFjdEludGVybmFsRmliZXIpdGhyb3cgRXJyb3IoYSgzOCkpO3JldHVybiBpYyhlLHQsbiwhMSxyKX0sdC52ZXJzaW9uPVwiMTYuMTQuMFwifSw0MTY0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjshZnVuY3Rpb24gZSgpe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcih0KX19KCksZS5leHBvcnRzPW4oNDQ2Myl9LDYyMjE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHtCSzooKT0+ZH0pO3ZhciByLG8saT1uKDU5NzEpLGE9bigyNzkxKSxzPW4oMzUzOSk7IWZ1bmN0aW9uKGUpe2UuZm9ybWF0RGF0ZT1cIkZvcm1hdHRlZERhdGVcIixlLmZvcm1hdFRpbWU9XCJGb3JtYXR0ZWRUaW1lXCIsZS5mb3JtYXROdW1iZXI9XCJGb3JtYXR0ZWROdW1iZXJcIixlLmZvcm1hdExpc3Q9XCJGb3JtYXR0ZWRMaXN0XCIsZS5mb3JtYXREaXNwbGF5TmFtZT1cIkZvcm1hdHRlZERpc3BsYXlOYW1lXCJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZS5mb3JtYXREYXRlPVwiRm9ybWF0dGVkRGF0ZVBhcnRzXCIsZS5mb3JtYXRUaW1lPVwiRm9ybWF0dGVkVGltZVBhcnRzXCIsZS5mb3JtYXROdW1iZXI9XCJGb3JtYXR0ZWROdW1iZXJQYXJ0c1wiLGUuZm9ybWF0TGlzdD1cIkZvcm1hdHRlZExpc3RQYXJ0c1wifShvfHwobz17fSkpO3ZhciBsPWZ1bmN0aW9uKGUpe3ZhciB0PSgwLHMuWikoKSxuPWUudmFsdWUscj1lLmNoaWxkcmVuLG89KDAsaS5fVCkoZSxbXCJ2YWx1ZVwiLFwiY2hpbGRyZW5cIl0pO3JldHVybiByKHQuZm9ybWF0TnVtYmVyVG9QYXJ0cyhuLG8pKX07bC5kaXNwbGF5TmFtZT1cIkZvcm1hdHRlZE51bWJlclBhcnRzXCI7ZnVuY3Rpb24gYyhlKXt2YXIgdD1mdW5jdGlvbih0KXt2YXIgbj0oMCxzLlopKCkscj10LnZhbHVlLG89dC5jaGlsZHJlbixhPSgwLGkuX1QpKHQsW1widmFsdWVcIixcImNoaWxkcmVuXCJdKSxsPVwic3RyaW5nXCI9PT10eXBlb2Ygcj9uZXcgRGF0ZShyfHwwKTpyO3JldHVybiBvKFwiZm9ybWF0RGF0ZVwiPT09ZT9uLmZvcm1hdERhdGVUb1BhcnRzKGwsYSk6bi5mb3JtYXRUaW1lVG9QYXJ0cyhsLGEpKX07cmV0dXJuIHQuZGlzcGxheU5hbWU9b1tlXSx0fWZ1bmN0aW9uIHUoZSl7dmFyIHQ9ZnVuY3Rpb24odCl7dmFyIG49KDAscy5aKSgpLHI9dC52YWx1ZSxvPXQuY2hpbGRyZW4sbD0oMCxpLl9UKSh0LFtcInZhbHVlXCIsXCJjaGlsZHJlblwiXSksYz1uW2VdKHIsbCk7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIG8pcmV0dXJuIG8oYyk7dmFyIHU9bi50ZXh0Q29tcG9uZW50fHxhLkZyYWdtZW50O3JldHVybiBhLmNyZWF0ZUVsZW1lbnQodSxudWxsLGMpfTtyZXR1cm4gdC5kaXNwbGF5TmFtZT1yW2VdLHR9bC5kaXNwbGF5TmFtZT1cIkZvcm1hdHRlZE51bWJlclBhcnRzXCI7dShcImZvcm1hdERhdGVcIiksdShcImZvcm1hdFRpbWVcIik7dmFyIGQ9dShcImZvcm1hdE51bWJlclwiKTt1KFwiZm9ybWF0TGlzdFwiKSx1KFwiZm9ybWF0RGlzcGxheU5hbWVcIiksYyhcImZvcm1hdERhdGVcIiksYyhcImZvcm1hdFRpbWVcIil9LDE4NTE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHtfeTooKT0+YSx6dDooKT0+aX0pO3ZhciByPW4oMjc5MSk7bigyMTEwKTt2YXIgbz1yLmNyZWF0ZUNvbnRleHQobnVsbCksaT0oby5Db25zdW1lcixvLlByb3ZpZGVyKSxhPW99LDQzNDk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHtaOigpPT5jfSk7dmFyIHI9big1OTcxKSxvPW4oMjc5MSksaT1uKDM1MzkpLGE9big3MjIpO2Z1bmN0aW9uIHMoZSl7dmFyIHQ9KDAsaS5aKSgpLG49dC5mb3JtYXRNZXNzYWdlLHI9dC50ZXh0Q29tcG9uZW50LGE9dm9pZCAwPT09cj9vLkZyYWdtZW50OnIscz1lLmlkLGw9ZS5kZXNjcmlwdGlvbixjPWUuZGVmYXVsdE1lc3NhZ2UsdT1lLnZhbHVlcyxkPWUuY2hpbGRyZW4scD1lLnRhZ05hbWUsZj12b2lkIDA9PT1wP2E6cCxoPW4oe2lkOnMsZGVzY3JpcHRpb246bCxkZWZhdWx0TWVzc2FnZTpjfSx1LHtpZ25vcmVUYWc6ZS5pZ25vcmVUYWd9KTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgZD9kKEFycmF5LmlzQXJyYXkoaCk/aDpbaF0pOmY/by5jcmVhdGVFbGVtZW50KGYsbnVsbCxvLkNoaWxkcmVuLnRvQXJyYXkoaCkpOm8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsaCl9cy5kaXNwbGF5TmFtZT1cIkZvcm1hdHRlZE1lc3NhZ2VcIjt2YXIgbD1vLm1lbW8ocywoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnZhbHVlcyxvPSgwLHIuX1QpKGUsW1widmFsdWVzXCJdKSxpPXQudmFsdWVzLHM9KDAsci5fVCkodCxbXCJ2YWx1ZXNcIl0pO3JldHVybigwLGEud1UpKGksbikmJigwLGEud1UpKG8scyl9KSk7bC5kaXNwbGF5TmFtZT1cIk1lbW9pemVkRm9ybWF0dGVkTWVzc2FnZVwiO2NvbnN0IGM9bH0sNDIxNDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse2Q6KCk9PnosWjooKT0+Vn0pO3ZhciByPW4oNTk3MSksbz1uKDI3OTEpLGk9bigxODUxKSxhPW4oNzIyKSxzPW4oNjEzOCksbD1uKDE0NDIpLGM9bigxNzM2KSx1PW4oNTM2OCk7ZnVuY3Rpb24gZChlLHQpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGZ1bmN0aW9uKG4sbyl7cmV0dXJuIG5bb109KDAsci5waSkoe3RpbWVab25lOnR9LGVbb10pLG59KSx7fSl9ZnVuY3Rpb24gcChlLHQpe3JldHVybiBPYmplY3Qua2V5cygoMCxyLnBpKSgoMCxyLnBpKSh7fSxlKSx0KSkucmVkdWNlKChmdW5jdGlvbihuLG8pe3JldHVybiBuW29dPSgwLHIucGkpKCgwLHIucGkpKHt9LGVbb118fHt9KSx0W29dfHx7fSksbn0pLHt9KX1mdW5jdGlvbiBmKGUsdCl7aWYoIXQpcmV0dXJuIGU7dmFyIG49bC5DLmZvcm1hdHM7cmV0dXJuKDAsci5waSkoKDAsci5waSkoKDAsci5waSkoe30sbiksZSkse2RhdGU6cChkKG4uZGF0ZSx0KSxkKGUuZGF0ZXx8e30sdCkpLHRpbWU6cChkKG4udGltZSx0KSxkKGUudGltZXx8e30sdCkpfSl9ZnVuY3Rpb24gaChlLHQsbixvLGkpe3ZhciBhPWUubG9jYWxlLGw9ZS5mb3JtYXRzLGQ9ZS5tZXNzYWdlcyxwPWUuZGVmYXVsdExvY2FsZSxoPWUuZGVmYXVsdEZvcm1hdHMsbT1lLmZhbGxiYWNrT25FbXB0eVN0cmluZyxnPWUub25FcnJvcix5PWUudGltZVpvbmUsdj1lLmRlZmF1bHRSaWNoVGV4dEVsZW1lbnRzO3ZvaWQgMD09PW4mJihuPXtpZDpcIlwifSk7dmFyIGI9bi5pZCxUPW4uZGVmYXVsdE1lc3NhZ2U7KDAscy5rRykoISFiLFwiW0Bmb3JtYXRqcy9pbnRsXSBBbiBgaWRgIG11c3QgYmUgcHJvdmlkZWQgdG8gZm9ybWF0IGEgbWVzc2FnZS4gWW91IGNhbiBlaXRoZXI6XFxuMS4gQ29uZmlndXJlIHlvdXIgYnVpbGQgdG9vbGNoYWluIHdpdGggW2JhYmVsLXBsdWdpbi1mb3JtYXRqc10oaHR0cHM6Ly9mb3JtYXRqcy5pby9kb2NzL3Rvb2xpbmcvYmFiZWwtcGx1Z2luKVxcbm9yIFtAZm9ybWF0anMvdHMtdHJhbnNmb3JtZXJdKGh0dHBzOi8vZm9ybWF0anMuaW8vZG9jcy90b29saW5nL3RzLXRyYW5zZm9ybWVyKSBPUlxcbjIuIENvbmZpZ3VyZSB5b3VyIGBlc2xpbnRgIGNvbmZpZyB0byBpbmNsdWRlIFtlc2xpbnQtcGx1Z2luLWZvcm1hdGpzXShodHRwczovL2Zvcm1hdGpzLmlvL2RvY3MvdG9vbGluZy9saW50ZXIjZW5mb3JjZS1pZClcXG50byBhdXRvZml4IHRoaXMgaXNzdWVcIik7dmFyIHg9U3RyaW5nKGIpLHc9ZCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQseCkmJmRbeF07aWYoQXJyYXkuaXNBcnJheSh3KSYmMT09PXcubGVuZ3RoJiZ3WzBdLnR5cGU9PT11LndELmxpdGVyYWwpcmV0dXJuIHdbMF0udmFsdWU7aWYoIW8mJncmJlwic3RyaW5nXCI9PT10eXBlb2YgdyYmIXYpcmV0dXJuIHcucmVwbGFjZSgvJ1xceyguKj8pXFx9Jy9naSxcInskMX1cIik7aWYobz0oMCxyLnBpKSgoMCxyLnBpKSh7fSx2KSxvfHx7fSksbD1mKGwseSksaD1mKGgseSksIXcpe2lmKCExPT09bSYmXCJcIj09PXcpcmV0dXJuIHc7aWYoKCFUfHxhJiZhLnRvTG93ZXJDYXNlKCkhPT1wLnRvTG93ZXJDYXNlKCkpJiZnKG5ldyBjLiQ2KG4sYSkpLFQpdHJ5e3JldHVybiB0LmdldE1lc3NhZ2VGb3JtYXQoVCxwLGgsaSkuZm9ybWF0KG8pfWNhdGNoKGspe3JldHVybiBnKG5ldyBjLlg5KCdFcnJvciBmb3JtYXR0aW5nIGRlZmF1bHQgbWVzc2FnZSBmb3I6IFwiJy5jb25jYXQoeCwnXCIsIHJlbmRlcmluZyBkZWZhdWx0IG1lc3NhZ2UgdmVyYmF0aW0nKSxhLG4saykpLFwic3RyaW5nXCI9PT10eXBlb2YgVD9UOnh9cmV0dXJuIHh9dHJ5e3JldHVybiB0LmdldE1lc3NhZ2VGb3JtYXQodyxhLGwsKDAsci5waSkoe2Zvcm1hdHRlcnM6dH0saXx8e30pKS5mb3JtYXQobyl9Y2F0Y2goayl7ZyhuZXcgYy5YOSgnRXJyb3IgZm9ybWF0dGluZyBtZXNzYWdlOiBcIicuY29uY2F0KHgsJ1wiLCB1c2luZyAnKS5jb25jYXQoVD9cImRlZmF1bHQgbWVzc2FnZVwiOlwiaWRcIixcIiBhcyBmYWxsYmFjay5cIiksYSxuLGspKX1pZihUKXRyeXtyZXR1cm4gdC5nZXRNZXNzYWdlRm9ybWF0KFQscCxoLGkpLmZvcm1hdChvKX1jYXRjaChrKXtnKG5ldyBjLlg5KCdFcnJvciBmb3JtYXR0aW5nIHRoZSBkZWZhdWx0IG1lc3NhZ2UgZm9yOiBcIicuY29uY2F0KHgsJ1wiLCByZW5kZXJpbmcgbWVzc2FnZSB2ZXJiYXRpbScpLGEsbixrKSl9cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiB3P3c6XCJzdHJpbmdcIj09PXR5cGVvZiBUP1Q6eH12YXIgbT1uKDQ3MzYpLGc9W1wibG9jYWxlTWF0Y2hlclwiLFwic3R5bGVcIixcImN1cnJlbmN5XCIsXCJjdXJyZW5jeURpc3BsYXlcIixcInVuaXRcIixcInVuaXREaXNwbGF5XCIsXCJ1c2VHcm91cGluZ1wiLFwibWluaW11bUludGVnZXJEaWdpdHNcIixcIm1pbmltdW1GcmFjdGlvbkRpZ2l0c1wiLFwibWF4aW11bUZyYWN0aW9uRGlnaXRzXCIsXCJtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHNcIixcIm1heGltdW1TaWduaWZpY2FudERpZ2l0c1wiLFwiY29tcGFjdERpc3BsYXlcIixcImN1cnJlbmN5RGlzcGxheVwiLFwiY3VycmVuY3lTaWduXCIsXCJub3RhdGlvblwiLFwic2lnbkRpc3BsYXlcIixcInVuaXRcIixcInVuaXREaXNwbGF5XCIsXCJudW1iZXJpbmdTeXN0ZW1cIl07ZnVuY3Rpb24geShlLHQsbil7dmFyIHI9ZS5sb2NhbGUsbz1lLmZvcm1hdHMsaT1lLm9uRXJyb3I7dm9pZCAwPT09biYmKG49e30pO3ZhciBhPW4uZm9ybWF0LHM9YSYmKDAsbS5UQikobyxcIm51bWJlclwiLGEsaSl8fHt9O3JldHVybiB0KHIsKDAsbS5MNikobixnLHMpKX1mdW5jdGlvbiB2KGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPXt9KTt0cnl7cmV0dXJuIHkoZSx0LHIpLmZvcm1hdChuKX1jYXRjaChvKXtlLm9uRXJyb3IobmV3IGMuUncoYy5iYy5GT1JNQVRfRVJST1IsXCJFcnJvciBmb3JtYXR0aW5nIG51bWJlci5cIixvKSl9cmV0dXJuIFN0cmluZyhuKX1mdW5jdGlvbiBiKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPXt9KTt0cnl7cmV0dXJuIHkoZSx0LHIpLmZvcm1hdFRvUGFydHMobil9Y2F0Y2gobyl7ZS5vbkVycm9yKG5ldyBjLlJ3KGMuYmMuRk9STUFUX0VSUk9SLFwiRXJyb3IgZm9ybWF0dGluZyBudW1iZXIuXCIsbykpfXJldHVybltdfXZhciBUPW4oOTM2OSkseD1bXCJudW1lcmljXCIsXCJzdHlsZVwiXTtmdW5jdGlvbiB3KGUsdCxuLHIsbyl7dm9pZCAwPT09byYmKG89e30pLHJ8fChyPVwic2Vjb25kXCIpLEludGwuUmVsYXRpdmVUaW1lRm9ybWF0fHxlLm9uRXJyb3IobmV3IFQudV8oJ0ludGwuUmVsYXRpdmVUaW1lRm9ybWF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC5cXG5UcnkgcG9seWZpbGxpbmcgaXQgdXNpbmcgXCJAZm9ybWF0anMvaW50bC1yZWxhdGl2ZXRpbWVmb3JtYXRcIlxcbicsVC5qSy5NSVNTSU5HX0lOVExfQVBJKSk7dHJ5e3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5sb2NhbGUsbz1lLmZvcm1hdHMsaT1lLm9uRXJyb3I7dm9pZCAwPT09biYmKG49e30pO3ZhciBhPW4uZm9ybWF0LHM9ISFhJiYoMCxtLlRCKShvLFwicmVsYXRpdmVcIixhLGkpfHx7fTtyZXR1cm4gdChyLCgwLG0uTDYpKG4seCxzKSl9KGUsdCxvKS5mb3JtYXQobixyKX1jYXRjaChpKXtlLm9uRXJyb3IobmV3IGMuUWUoXCJFcnJvciBmb3JtYXR0aW5nIHJlbGF0aXZlIHRpbWUuXCIsZS5sb2NhbGUsaSkpfXJldHVybiBTdHJpbmcobil9dmFyIGs9W1wibG9jYWxlTWF0Y2hlclwiLFwiZm9ybWF0TWF0Y2hlclwiLFwidGltZVpvbmVcIixcImhvdXIxMlwiLFwid2Vla2RheVwiLFwiZXJhXCIsXCJ5ZWFyXCIsXCJtb250aFwiLFwiZGF5XCIsXCJob3VyXCIsXCJtaW51dGVcIixcInNlY29uZFwiLFwidGltZVpvbmVOYW1lXCIsXCJob3VyQ3ljbGVcIixcImRhdGVTdHlsZVwiLFwidGltZVN0eWxlXCIsXCJjYWxlbmRhclwiLFwibnVtYmVyaW5nU3lzdGVtXCJdO2Z1bmN0aW9uIEUoZSx0LG4sbyl7dmFyIGk9ZS5sb2NhbGUsYT1lLmZvcm1hdHMscz1lLm9uRXJyb3IsbD1lLnRpbWVab25lO3ZvaWQgMD09PW8mJihvPXt9KTt2YXIgYz1vLmZvcm1hdCx1PSgwLHIucGkpKCgwLHIucGkpKHt9LGwmJnt0aW1lWm9uZTpsfSksYyYmKDAsbS5UQikoYSx0LGMscykpLGQ9KDAsbS5MNikobyxrLHUpO3JldHVyblwidGltZVwiIT09dHx8ZC5ob3VyfHxkLm1pbnV0ZXx8ZC5zZWNvbmR8fGQudGltZVN0eWxlfHxkLmRhdGVTdHlsZXx8KGQ9KDAsci5waSkoKDAsci5waSkoe30sZCkse2hvdXI6XCJudW1lcmljXCIsbWludXRlOlwibnVtZXJpY1wifSkpLG4oaSxkKX1mdW5jdGlvbiBTKGUsdCl7Zm9yKHZhciBuPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bci0yXT1hcmd1bWVudHNbcl07dmFyIG89blswXSxpPW5bMV0sYT12b2lkIDA9PT1pP3t9Omkscz1cInN0cmluZ1wiPT09dHlwZW9mIG8/bmV3IERhdGUob3x8MCk6bzt0cnl7cmV0dXJuIEUoZSxcImRhdGVcIix0LGEpLmZvcm1hdChzKX1jYXRjaChsKXtlLm9uRXJyb3IobmV3IGMuUncoYy5iYy5GT1JNQVRfRVJST1IsXCJFcnJvciBmb3JtYXR0aW5nIGRhdGUuXCIsbCkpfXJldHVybiBTdHJpbmcocyl9ZnVuY3Rpb24gQShlLHQpe2Zvcih2YXIgbj1bXSxyPTI7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyluW3ItMl09YXJndW1lbnRzW3JdO3ZhciBvPW5bMF0saT1uWzFdLGE9dm9pZCAwPT09aT97fTppLHM9XCJzdHJpbmdcIj09PXR5cGVvZiBvP25ldyBEYXRlKG98fDApOm87dHJ5e3JldHVybiBFKGUsXCJ0aW1lXCIsdCxhKS5mb3JtYXQocyl9Y2F0Y2gobCl7ZS5vbkVycm9yKG5ldyBjLlJ3KGMuYmMuRk9STUFUX0VSUk9SLFwiRXJyb3IgZm9ybWF0dGluZyB0aW1lLlwiLGwpKX1yZXR1cm4gU3RyaW5nKHMpfWZ1bmN0aW9uIEMoZSx0KXtmb3IodmFyIG49W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTJdPWFyZ3VtZW50c1tyXTt2YXIgbz1uWzBdLGk9blsxXSxhPW5bMl0scz12b2lkIDA9PT1hP3t9OmEsbD1lLnRpbWVab25lLHU9ZS5sb2NhbGUsZD1lLm9uRXJyb3IscD0oMCxtLkw2KShzLGssbD97dGltZVpvbmU6bH06e30pO3RyeXtyZXR1cm4gdCh1LHApLmZvcm1hdFJhbmdlKG8saSl9Y2F0Y2goZil7ZChuZXcgYy5SdyhjLmJjLkZPUk1BVF9FUlJPUixcIkVycm9yIGZvcm1hdHRpbmcgZGF0ZSB0aW1lIHJhbmdlLlwiLGYpKX1yZXR1cm4gU3RyaW5nKG8pfWZ1bmN0aW9uIF8oZSx0KXtmb3IodmFyIG49W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTJdPWFyZ3VtZW50c1tyXTt2YXIgbz1uWzBdLGk9blsxXSxhPXZvaWQgMD09PWk/e306aSxzPVwic3RyaW5nXCI9PT10eXBlb2Ygbz9uZXcgRGF0ZShvfHwwKTpvO3RyeXtyZXR1cm4gRShlLFwiZGF0ZVwiLHQsYSkuZm9ybWF0VG9QYXJ0cyhzKX1jYXRjaChsKXtlLm9uRXJyb3IobmV3IGMuUncoYy5iYy5GT1JNQVRfRVJST1IsXCJFcnJvciBmb3JtYXR0aW5nIGRhdGUuXCIsbCkpfXJldHVybltdfWZ1bmN0aW9uIEQoZSx0KXtmb3IodmFyIG49W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTJdPWFyZ3VtZW50c1tyXTt2YXIgbz1uWzBdLGk9blsxXSxhPXZvaWQgMD09PWk/e306aSxzPVwic3RyaW5nXCI9PT10eXBlb2Ygbz9uZXcgRGF0ZShvfHwwKTpvO3RyeXtyZXR1cm4gRShlLFwidGltZVwiLHQsYSkuZm9ybWF0VG9QYXJ0cyhzKX1jYXRjaChsKXtlLm9uRXJyb3IobmV3IGMuUncoYy5iYy5GT1JNQVRfRVJST1IsXCJFcnJvciBmb3JtYXR0aW5nIHRpbWUuXCIsbCkpfXJldHVybltdfXZhciBSPVtcImxvY2FsZU1hdGNoZXJcIixcInR5cGVcIl07ZnVuY3Rpb24gTyhlLHQsbixyKXt2YXIgbz1lLmxvY2FsZSxpPWUub25FcnJvcjt2b2lkIDA9PT1yJiYocj17fSksSW50bC5QbHVyYWxSdWxlc3x8aShuZXcgVC51XygnSW50bC5QbHVyYWxSdWxlcyBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuXFxuVHJ5IHBvbHlmaWxsaW5nIGl0IHVzaW5nIFwiQGZvcm1hdGpzL2ludGwtcGx1cmFscnVsZXNcIlxcbicsVC5qSy5NSVNTSU5HX0lOVExfQVBJKSk7dmFyIGE9KDAsbS5MNikocixSKTt0cnl7cmV0dXJuIHQobyxhKS5zZWxlY3Qobil9Y2F0Y2gocyl7aShuZXcgYy5RZShcIkVycm9yIGZvcm1hdHRpbmcgcGx1cmFsLlwiLG8scykpfXJldHVyblwib3RoZXJcIn12YXIgUD1bXCJsb2NhbGVNYXRjaGVyXCIsXCJ0eXBlXCIsXCJzdHlsZVwiXSxMPURhdGUubm93KCk7ZnVuY3Rpb24gTihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj17fSk7dmFyIG89SShlLHQsbixyKS5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7dmFyIG49dC52YWx1ZTtyZXR1cm5cInN0cmluZ1wiIT09dHlwZW9mIG4/ZS5wdXNoKG4pOlwic3RyaW5nXCI9PT10eXBlb2YgZVtlLmxlbmd0aC0xXT9lW2UubGVuZ3RoLTFdKz1uOmUucHVzaChuKSxlfSksW10pO3JldHVybiAxPT09by5sZW5ndGg/b1swXTpvfWZ1bmN0aW9uIEkoZSx0LG4sbyl7dmFyIGk9ZS5sb2NhbGUsYT1lLm9uRXJyb3I7dm9pZCAwPT09byYmKG89e30pLEludGwuTGlzdEZvcm1hdHx8YShuZXcgVC51XygnSW50bC5MaXN0Rm9ybWF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC5cXG5UcnkgcG9seWZpbGxpbmcgaXQgdXNpbmcgXCJAZm9ybWF0anMvaW50bC1saXN0Zm9ybWF0XCJcXG4nLFQuaksuTUlTU0lOR19JTlRMX0FQSSkpO3ZhciBzPSgwLG0uTDYpKG8sUCk7dHJ5e3ZhciBsPXt9LHU9bi5tYXAoKGZ1bmN0aW9uKGUsdCl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlKXt2YXIgbj1mdW5jdGlvbihlKXtyZXR1cm5cIlwiLmNvbmNhdChMLFwiX1wiKS5jb25jYXQoZSxcIl9cIikuY29uY2F0KEwpfSh0KTtyZXR1cm4gbFtuXT1lLG59cmV0dXJuIFN0cmluZyhlKX0pKTtyZXR1cm4gdChpLHMpLmZvcm1hdFRvUGFydHModSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm5cImxpdGVyYWxcIj09PWUudHlwZT9lOigwLHIucGkpKCgwLHIucGkpKHt9LGUpLHt2YWx1ZTpsW2UudmFsdWVdfHxlLnZhbHVlfSl9KSl9Y2F0Y2goZCl7YShuZXcgYy5SdyhjLmJjLkZPUk1BVF9FUlJPUixcIkVycm9yIGZvcm1hdHRpbmcgbGlzdC5cIixkKSl9cmV0dXJuIG59dmFyIGo9W1wibG9jYWxlTWF0Y2hlclwiLFwic3R5bGVcIixcInR5cGVcIixcImZhbGxiYWNrXCJdO2Z1bmN0aW9uIEIoZSx0LG4scil7dmFyIG89ZS5sb2NhbGUsaT1lLm9uRXJyb3I7SW50bC5EaXNwbGF5TmFtZXN8fGkobmV3IFQudV8oJ0ludGwuRGlzcGxheU5hbWVzIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC5cXG5UcnkgcG9seWZpbGxpbmcgaXQgdXNpbmcgXCJAZm9ybWF0anMvaW50bC1kaXNwbGF5bmFtZXNcIlxcbicsVC5qSy5NSVNTSU5HX0lOVExfQVBJKSk7dmFyIGE9KDAsbS5MNikocixqKTt0cnl7cmV0dXJuIHQobyxhKS5vZihuKX1jYXRjaChzKXtpKG5ldyBjLlJ3KGMuYmMuRk9STUFUX0VSUk9SLFwiRXJyb3IgZm9ybWF0dGluZyBkaXNwbGF5IG5hbWUuXCIscykpfX1mdW5jdGlvbiBIKGUpe3ZhciB0O2Uub25XYXJuJiZlLmRlZmF1bHRSaWNoVGV4dEVsZW1lbnRzJiZcInN0cmluZ1wiPT09dHlwZW9mKCh0PWUubWVzc2FnZXN8fHt9KT90W09iamVjdC5rZXlzKHQpWzBdXTp2b2lkIDApJiZlLm9uV2FybignW0Bmb3JtYXRqcy9pbnRsXSBcImRlZmF1bHRSaWNoVGV4dEVsZW1lbnRzXCIgd2FzIHNwZWNpZmllZCBidXQgXCJtZXNzYWdlXCIgd2FzIG5vdCBwcmUtY29tcGlsZWQuIFxcblBsZWFzZSBjb25zaWRlciB1c2luZyBcIkBmb3JtYXRqcy9jbGlcIiB0byBwcmUtY29tcGlsZSB5b3VyIG1lc3NhZ2VzIGZvciBwZXJmb3JtYW5jZS5cXG5Gb3IgbW9yZSBkZXRhaWxzIHNlZSBodHRwczovL2Zvcm1hdGpzLmlvL2RvY3MvZ2V0dGluZy1zdGFydGVkL21lc3NhZ2UtZGlzdHJpYnV0aW9uJyl9dmFyIEY9big5Nzc0KTtmdW5jdGlvbiBNKGUpe3JldHVybntsb2NhbGU6ZS5sb2NhbGUsdGltZVpvbmU6ZS50aW1lWm9uZSxmYWxsYmFja09uRW1wdHlTdHJpbmc6ZS5mYWxsYmFja09uRW1wdHlTdHJpbmcsZm9ybWF0czplLmZvcm1hdHMsdGV4dENvbXBvbmVudDplLnRleHRDb21wb25lbnQsbWVzc2FnZXM6ZS5tZXNzYWdlcyxkZWZhdWx0TG9jYWxlOmUuZGVmYXVsdExvY2FsZSxkZWZhdWx0Rm9ybWF0czplLmRlZmF1bHRGb3JtYXRzLG9uRXJyb3I6ZS5vbkVycm9yLG9uV2FybjplLm9uV2Fybix3cmFwUmljaFRleHRDaHVua3NJbkZyYWdtZW50OmUud3JhcFJpY2hUZXh0Q2h1bmtzSW5GcmFnbWVudCxkZWZhdWx0UmljaFRleHRFbGVtZW50czplLmRlZmF1bHRSaWNoVGV4dEVsZW1lbnRzfX1mdW5jdGlvbiBHKGUpe3JldHVybiBlP09iamVjdC5rZXlzKGUpLnJlZHVjZSgoZnVuY3Rpb24odCxuKXt2YXIgcj1lW25dO3JldHVybiB0W25dPSgwLEYuR3QpKHIpPygwLGEuZHQpKHIpOnIsdH0pLHt9KTplfXZhciBVPWZ1bmN0aW9uKGUsdCxuLGkpe2Zvcih2YXIgYT1bXSxzPTQ7czxhcmd1bWVudHMubGVuZ3RoO3MrKylhW3MtNF09YXJndW1lbnRzW3NdO3ZhciBsPUcoaSksYz1oLmFwcGx5KHZvaWQgMCwoMCxyLmV2KShbZSx0LG4sbF0sYSwhMSkpO3JldHVybiBBcnJheS5pc0FycmF5KGMpP28uQ2hpbGRyZW4udG9BcnJheShjKTpjfSx6PWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5kZWZhdWx0UmljaFRleHRFbGVtZW50cyxvPSgwLHIuX1QpKGUsW1wiZGVmYXVsdFJpY2hUZXh0RWxlbWVudHNcIl0pLGk9RyhuKSxzPWZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsbS5heCkodCksbz0oMCxyLnBpKSgoMCxyLnBpKSh7fSxtLlowKSxlKSxpPW8ubG9jYWxlLGE9by5kZWZhdWx0TG9jYWxlLHM9by5vbkVycm9yO3JldHVybiBpPyFJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoaSkubGVuZ3RoJiZzP3MobmV3IGMuZ2IoJ01pc3NpbmcgbG9jYWxlIGRhdGEgZm9yIGxvY2FsZTogXCInLmNvbmNhdChpLCdcIiBpbiBJbnRsLk51bWJlckZvcm1hdC4gVXNpbmcgZGVmYXVsdCBsb2NhbGU6IFwiJykuY29uY2F0KGEsJ1wiIGFzIGZhbGxiYWNrLiBTZWUgaHR0cHM6Ly9mb3JtYXRqcy5pby9kb2NzL3JlYWN0LWludGwjcnVudGltZS1yZXF1aXJlbWVudHMgZm9yIG1vcmUgZGV0YWlscycpKSk6IUludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKGkpLmxlbmd0aCYmcyYmcyhuZXcgYy5nYignTWlzc2luZyBsb2NhbGUgZGF0YSBmb3IgbG9jYWxlOiBcIicuY29uY2F0KGksJ1wiIGluIEludGwuRGF0ZVRpbWVGb3JtYXQuIFVzaW5nIGRlZmF1bHQgbG9jYWxlOiBcIicpLmNvbmNhdChhLCdcIiBhcyBmYWxsYmFjay4gU2VlIGh0dHBzOi8vZm9ybWF0anMuaW8vZG9jcy9yZWFjdC1pbnRsI3J1bnRpbWUtcmVxdWlyZW1lbnRzIGZvciBtb3JlIGRldGFpbHMnKSkpOihzJiZzKG5ldyBjLk9WKCdcImxvY2FsZVwiIHdhcyBub3QgY29uZmlndXJlZCwgdXNpbmcgXCInLmNvbmNhdChhLCdcIiBhcyBmYWxsYmFjay4gU2VlIGh0dHBzOi8vZm9ybWF0anMuaW8vZG9jcy9yZWFjdC1pbnRsL2FwaSNpbnRsc2hhcGUgZm9yIG1vcmUgZGV0YWlscycpKSksby5sb2NhbGU9by5kZWZhdWx0TG9jYWxlfHxcImVuXCIpLEgobyksKDAsci5waSkoKDAsci5waSkoe30sbykse2Zvcm1hdHRlcnM6bixmb3JtYXROdW1iZXI6di5iaW5kKG51bGwsbyxuLmdldE51bWJlckZvcm1hdCksZm9ybWF0TnVtYmVyVG9QYXJ0czpiLmJpbmQobnVsbCxvLG4uZ2V0TnVtYmVyRm9ybWF0KSxmb3JtYXRSZWxhdGl2ZVRpbWU6dy5iaW5kKG51bGwsbyxuLmdldFJlbGF0aXZlVGltZUZvcm1hdCksZm9ybWF0RGF0ZTpTLmJpbmQobnVsbCxvLG4uZ2V0RGF0ZVRpbWVGb3JtYXQpLGZvcm1hdERhdGVUb1BhcnRzOl8uYmluZChudWxsLG8sbi5nZXREYXRlVGltZUZvcm1hdCksZm9ybWF0VGltZTpBLmJpbmQobnVsbCxvLG4uZ2V0RGF0ZVRpbWVGb3JtYXQpLGZvcm1hdERhdGVUaW1lUmFuZ2U6Qy5iaW5kKG51bGwsbyxuLmdldERhdGVUaW1lRm9ybWF0KSxmb3JtYXRUaW1lVG9QYXJ0czpELmJpbmQobnVsbCxvLG4uZ2V0RGF0ZVRpbWVGb3JtYXQpLGZvcm1hdFBsdXJhbDpPLmJpbmQobnVsbCxvLG4uZ2V0UGx1cmFsUnVsZXMpLGZvcm1hdE1lc3NhZ2U6aC5iaW5kKG51bGwsbyxuKSwkdDpoLmJpbmQobnVsbCxvLG4pLGZvcm1hdExpc3Q6Ti5iaW5kKG51bGwsbyxuLmdldExpc3RGb3JtYXQpLGZvcm1hdExpc3RUb1BhcnRzOkkuYmluZChudWxsLG8sbi5nZXRMaXN0Rm9ybWF0KSxmb3JtYXREaXNwbGF5TmFtZTpCLmJpbmQobnVsbCxvLG4uZ2V0RGlzcGxheU5hbWVzKX0pfSgoMCxyLnBpKSgoMCxyLnBpKSgoMCxyLnBpKSh7fSxhLlowKSxvKSx7ZGVmYXVsdFJpY2hUZXh0RWxlbWVudHM6aX0pLHQpO3JldHVybigwLHIucGkpKCgwLHIucGkpKHt9LHMpLHtmb3JtYXRNZXNzYWdlOlUuYmluZChudWxsLHtsb2NhbGU6cy5sb2NhbGUsdGltZVpvbmU6cy50aW1lWm9uZSxmYWxsYmFja09uRW1wdHlTdHJpbmc6cy5mYWxsYmFja09uRW1wdHlTdHJpbmcsZm9ybWF0czpzLmZvcm1hdHMsZGVmYXVsdExvY2FsZTpzLmRlZmF1bHRMb2NhbGUsZGVmYXVsdEZvcm1hdHM6cy5kZWZhdWx0Rm9ybWF0cyxtZXNzYWdlczpzLm1lc3NhZ2VzLG9uRXJyb3I6cy5vbkVycm9yLGRlZmF1bHRSaWNoVGV4dEVsZW1lbnRzOml9LHMuZm9ybWF0dGVycyl9KX07Y29uc3QgVj1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7dmFyIHQ9bnVsbCE9PWUmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiB0LmNhY2hlPSgwLG0uU24pKCksdC5zdGF0ZT17Y2FjaGU6dC5jYWNoZSxpbnRsOnooTSh0LnByb3BzKSx0LmNhY2hlKSxwcmV2Q29uZmlnOk0odC5wcm9wcyl9LHR9cmV0dXJuKDAsci5aVCkodCxlKSx0LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcz1mdW5jdGlvbihlLHQpe3ZhciBuPXQucHJldkNvbmZpZyxyPXQuY2FjaGUsbz1NKGUpO3JldHVybigwLGEud1UpKG4sbyk/bnVsbDp7aW50bDp6KG8scikscHJldkNvbmZpZzpvfX0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuKDAsYS5scSkodGhpcy5zdGF0ZS5pbnRsKSxvLmNyZWF0ZUVsZW1lbnQoaS56dCx7dmFsdWU6dGhpcy5zdGF0ZS5pbnRsfSx0aGlzLnByb3BzLmNoaWxkcmVuKX0sdC5kaXNwbGF5TmFtZT1cIkludGxQcm92aWRlclwiLHQuZGVmYXVsdFByb3BzPWEuWjAsdH0oby5QdXJlQ29tcG9uZW50KX0sMzUzOTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9PmF9KTt2YXIgcj1uKDI3OTEpLG89bigxODUxKSxpPW4oNzIyKTtmdW5jdGlvbiBhKCl7dmFyIGU9ci51c2VDb250ZXh0KG8uX3kpO3JldHVybigwLGkubHEpKGUpLGV9fSw3MjI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24uZCh0LHtaMDooKT0+bCxkdDooKT0+YyxscTooKT0+cyx3VTooKT0+dX0pO3ZhciByPW4oNTk3MSksbz1uKDI3OTEpLGk9big2MTM4KSxhPW4oNDczNik7ZnVuY3Rpb24gcyhlKXsoMCxpLmtHKShlLFwiW1JlYWN0IEludGxdIENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGBpbnRsYCBvYmplY3QuIDxJbnRsUHJvdmlkZXI+IG5lZWRzIHRvIGV4aXN0IGluIHRoZSBjb21wb25lbnQgYW5jZXN0cnkuXCIpfXZhciBsPSgwLHIucGkpKCgwLHIucGkpKHt9LGEuWjApLHt0ZXh0Q29tcG9uZW50Om8uRnJhZ21lbnR9KTtmdW5jdGlvbiBjKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZShvLkNoaWxkcmVuLnRvQXJyYXkodCkpfX1mdW5jdGlvbiB1KGUsdCl7aWYoZT09PXQpcmV0dXJuITA7aWYoIWV8fCF0KXJldHVybiExO3ZhciBuPU9iamVjdC5rZXlzKGUpLHI9T2JqZWN0LmtleXModCksbz1uLmxlbmd0aDtpZihyLmxlbmd0aCE9PW8pcmV0dXJuITE7Zm9yKHZhciBpPTA7aTxvO2krKyl7dmFyIGE9bltpXTtpZihlW2FdIT09dFthXXx8IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpKXJldHVybiExfXJldHVybiEwfX0sNTc0ODooZSx0LG4pPT57dmFyIHI9big2NDMxKSxvPW4oOTM2NyksaT1uKDUwMiksYT1pLk1VU1RfVVNFX1BST1BFUlRZLHM9aS5IQVNfQk9PTEVBTl9WQUxVRSxsPWkuSEFTX05VTUVSSUNfVkFMVUUsYz1pLkhBU19QT1NJVElWRV9OVU1FUklDX1ZBTFVFLHU9aS5IQVNfT1ZFUkxPQURFRF9CT09MRUFOX1ZBTFVFO2Z1bmN0aW9uIGQoZSx0KXtyZXR1cm4oZSZ0KT09PXR9ZnVuY3Rpb24gcChlLHQsbil7dmFyIHIsbyxpLHA9ZS5Qcm9wZXJ0aWVzLGY9ZS5ET01BdHRyaWJ1dGVOYW1lcztmb3IobyBpbiBwKXI9ZltvXXx8KG4/bzpvLnRvTG93ZXJDYXNlKCkpLGk9cFtvXSx0W3JdPXthdHRyaWJ1dGVOYW1lOnIscHJvcGVydHlOYW1lOm8sbXVzdFVzZVByb3BlcnR5OmQoaSxhKSxoYXNCb29sZWFuVmFsdWU6ZChpLHMpLGhhc051bWVyaWNWYWx1ZTpkKGksbCksaGFzUG9zaXRpdmVOdW1lcmljVmFsdWU6ZChpLGMpLGhhc092ZXJsb2FkZWRCb29sZWFuVmFsdWU6ZChpLHUpfX12YXIgZj17fTtwKHIsZik7dmFyIGg9e307cChvLGgsITApO3ZhciBtPXt9O3AocixtKSxwKG8sbSwhMCk7ZS5leHBvcnRzPXtodG1sOmYsc3ZnOmgscHJvcGVydGllczptLGlzQ3VzdG9tQXR0cmlidXRlOlJlZ0V4cC5wcm90b3R5cGUudGVzdC5iaW5kKG5ldyBSZWdFeHAoXCJeKGRhdGF8YXJpYSktWzpBLVpfYS16XFxcXHUwMEMwLVxcXFx1MDBENlxcXFx1MDBEOC1cXFxcdTAwRjZcXFxcdTAwRjgtXFxcXHUwMkZGXFxcXHUwMzcwLVxcXFx1MDM3RFxcXFx1MDM3Ri1cXFxcdTFGRkZcXFxcdTIwMEMtXFxcXHUyMDBEXFxcXHUyMDcwLVxcXFx1MjE4RlxcXFx1MkMwMC1cXFxcdTJGRUZcXFxcdTMwMDEtXFxcXHVEN0ZGXFxcXHVGOTAwLVxcXFx1RkRDRlxcXFx1RkRGMC1cXFxcdUZGRkRcXFxcLS4wLTlcXFxcdTAwQjdcXFxcdTAzMDAtXFxcXHUwMzZGXFxcXHUyMDNGLVxcXFx1MjA0MF0qJFwiKSl9fSw2NDMxOmU9PntlLmV4cG9ydHM9e1Byb3BlcnRpZXM6e2F1dG9Gb2N1czo0LGFjY2VwdDowLGFjY2VwdENoYXJzZXQ6MCxhY2Nlc3NLZXk6MCxhY3Rpb246MCxhbGxvd0Z1bGxTY3JlZW46NCxhbGxvd1RyYW5zcGFyZW5jeTowLGFsdDowLGFzOjAsYXN5bmM6NCxhdXRvQ29tcGxldGU6MCxhdXRvUGxheTo0LGNhcHR1cmU6NCxjZWxsUGFkZGluZzowLGNlbGxTcGFjaW5nOjAsY2hhclNldDowLGNoYWxsZW5nZTowLGNoZWNrZWQ6NSxjaXRlOjAsY2xhc3NJRDowLGNsYXNzTmFtZTowLGNvbHM6MjQsY29sU3BhbjowLGNvbnRlbnQ6MCxjb250ZW50RWRpdGFibGU6MCxjb250ZXh0TWVudTowLGNvbnRyb2xzOjQsY29udHJvbHNMaXN0OjAsY29vcmRzOjAsY3Jvc3NPcmlnaW46MCxkYXRhOjAsZGF0ZVRpbWU6MCxkZWZhdWx0OjQsZGVmZXI6NCxkaXI6MCxkaXNhYmxlZDo0LGRvd25sb2FkOjMyLGRyYWdnYWJsZTowLGVuY1R5cGU6MCxmb3JtOjAsZm9ybUFjdGlvbjowLGZvcm1FbmNUeXBlOjAsZm9ybU1ldGhvZDowLGZvcm1Ob1ZhbGlkYXRlOjQsZm9ybVRhcmdldDowLGZyYW1lQm9yZGVyOjAsaGVhZGVyczowLGhlaWdodDowLGhpZGRlbjo0LGhpZ2g6MCxocmVmOjAsaHJlZkxhbmc6MCxodG1sRm9yOjAsaHR0cEVxdWl2OjAsaWNvbjowLGlkOjAsaW5wdXRNb2RlOjAsaW50ZWdyaXR5OjAsaXM6MCxrZXlQYXJhbXM6MCxrZXlUeXBlOjAsa2luZDowLGxhYmVsOjAsbGFuZzowLGxpc3Q6MCxsb29wOjQsbG93OjAsbWFuaWZlc3Q6MCxtYXJnaW5IZWlnaHQ6MCxtYXJnaW5XaWR0aDowLG1heDowLG1heExlbmd0aDowLG1lZGlhOjAsbWVkaWFHcm91cDowLG1ldGhvZDowLG1pbjowLG1pbkxlbmd0aDowLG11bHRpcGxlOjUsbXV0ZWQ6NSxuYW1lOjAsbm9uY2U6MCxub1ZhbGlkYXRlOjQsb3Blbjo0LG9wdGltdW06MCxwYXR0ZXJuOjAscGxhY2Vob2xkZXI6MCxwbGF5c0lubGluZTo0LHBvc3RlcjowLHByZWxvYWQ6MCxwcm9maWxlOjAscmFkaW9Hcm91cDowLHJlYWRPbmx5OjQscmVmZXJyZXJQb2xpY3k6MCxyZWw6MCxyZXF1aXJlZDo0LHJldmVyc2VkOjQscm9sZTowLHJvd3M6MjQscm93U3Bhbjo4LHNhbmRib3g6MCxzY29wZTowLHNjb3BlZDo0LHNjcm9sbGluZzowLHNlYW1sZXNzOjQsc2VsZWN0ZWQ6NSxzaGFwZTowLHNpemU6MjQsc2l6ZXM6MCxzcGFuOjI0LHNwZWxsQ2hlY2s6MCxzcmM6MCxzcmNEb2M6MCxzcmNMYW5nOjAsc3JjU2V0OjAsc3RhcnQ6OCxzdGVwOjAsc3R5bGU6MCxzdW1tYXJ5OjAsdGFiSW5kZXg6MCx0YXJnZXQ6MCx0aXRsZTowLHR5cGU6MCx1c2VNYXA6MCx2YWx1ZTowLHdpZHRoOjAsd21vZGU6MCx3cmFwOjAsYWJvdXQ6MCxkYXRhdHlwZTowLGlubGlzdDowLHByZWZpeDowLHByb3BlcnR5OjAscmVzb3VyY2U6MCx0eXBlb2Y6MCx2b2NhYjowLGF1dG9DYXBpdGFsaXplOjAsYXV0b0NvcnJlY3Q6MCxhdXRvU2F2ZTowLGNvbG9yOjAsaXRlbVByb3A6MCxpdGVtU2NvcGU6NCxpdGVtVHlwZTowLGl0ZW1JRDowLGl0ZW1SZWY6MCxyZXN1bHRzOjAsc2VjdXJpdHk6MCx1bnNlbGVjdGFibGU6MH0sRE9NQXR0cmlidXRlTmFtZXM6e2FjY2VwdENoYXJzZXQ6XCJhY2NlcHQtY2hhcnNldFwiLGNsYXNzTmFtZTpcImNsYXNzXCIsaHRtbEZvcjpcImZvclwiLGh0dHBFcXVpdjpcImh0dHAtZXF1aXZcIn19fSw5MzY3OmU9PntlLmV4cG9ydHM9e1Byb3BlcnRpZXM6e2FjY2VudEhlaWdodDowLGFjY3VtdWxhdGU6MCxhZGRpdGl2ZTowLGFsaWdubWVudEJhc2VsaW5lOjAsYWxsb3dSZW9yZGVyOjAsYWxwaGFiZXRpYzowLGFtcGxpdHVkZTowLGFyYWJpY0Zvcm06MCxhc2NlbnQ6MCxhdHRyaWJ1dGVOYW1lOjAsYXR0cmlidXRlVHlwZTowLGF1dG9SZXZlcnNlOjAsYXppbXV0aDowLGJhc2VGcmVxdWVuY3k6MCxiYXNlUHJvZmlsZTowLGJhc2VsaW5lU2hpZnQ6MCxiYm94OjAsYmVnaW46MCxiaWFzOjAsYnk6MCxjYWxjTW9kZTowLGNhcEhlaWdodDowLGNsaXA6MCxjbGlwUGF0aDowLGNsaXBSdWxlOjAsY2xpcFBhdGhVbml0czowLGNvbG9ySW50ZXJwb2xhdGlvbjowLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6MCxjb2xvclByb2ZpbGU6MCxjb2xvclJlbmRlcmluZzowLGNvbnRlbnRTY3JpcHRUeXBlOjAsY29udGVudFN0eWxlVHlwZTowLGN1cnNvcjowLGN4OjAsY3k6MCxkOjAsZGVjZWxlcmF0ZTowLGRlc2NlbnQ6MCxkaWZmdXNlQ29uc3RhbnQ6MCxkaXJlY3Rpb246MCxkaXNwbGF5OjAsZGl2aXNvcjowLGRvbWluYW50QmFzZWxpbmU6MCxkdXI6MCxkeDowLGR5OjAsZWRnZU1vZGU6MCxlbGV2YXRpb246MCxlbmFibGVCYWNrZ3JvdW5kOjAsZW5kOjAsZXhwb25lbnQ6MCxleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjAsZmlsbDowLGZpbGxPcGFjaXR5OjAsZmlsbFJ1bGU6MCxmaWx0ZXI6MCxmaWx0ZXJSZXM6MCxmaWx0ZXJVbml0czowLGZsb29kQ29sb3I6MCxmbG9vZE9wYWNpdHk6MCxmb2N1c2FibGU6MCxmb250RmFtaWx5OjAsZm9udFNpemU6MCxmb250U2l6ZUFkanVzdDowLGZvbnRTdHJldGNoOjAsZm9udFN0eWxlOjAsZm9udFZhcmlhbnQ6MCxmb250V2VpZ2h0OjAsZm9ybWF0OjAsZnJvbTowLGZ4OjAsZnk6MCxnMTowLGcyOjAsZ2x5cGhOYW1lOjAsZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6MCxnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6MCxnbHlwaFJlZjowLGdyYWRpZW50VHJhbnNmb3JtOjAsZ3JhZGllbnRVbml0czowLGhhbmdpbmc6MCxob3JpekFkdlg6MCxob3Jpek9yaWdpblg6MCxpZGVvZ3JhcGhpYzowLGltYWdlUmVuZGVyaW5nOjAsaW46MCxpbjI6MCxpbnRlcmNlcHQ6MCxrOjAsazE6MCxrMjowLGszOjAsazQ6MCxrZXJuZWxNYXRyaXg6MCxrZXJuZWxVbml0TGVuZ3RoOjAsa2VybmluZzowLGtleVBvaW50czowLGtleVNwbGluZXM6MCxrZXlUaW1lczowLGxlbmd0aEFkanVzdDowLGxldHRlclNwYWNpbmc6MCxsaWdodGluZ0NvbG9yOjAsbGltaXRpbmdDb25lQW5nbGU6MCxsb2NhbDowLG1hcmtlckVuZDowLG1hcmtlck1pZDowLG1hcmtlclN0YXJ0OjAsbWFya2VySGVpZ2h0OjAsbWFya2VyVW5pdHM6MCxtYXJrZXJXaWR0aDowLG1hc2s6MCxtYXNrQ29udGVudFVuaXRzOjAsbWFza1VuaXRzOjAsbWF0aGVtYXRpY2FsOjAsbW9kZTowLG51bU9jdGF2ZXM6MCxvZmZzZXQ6MCxvcGFjaXR5OjAsb3BlcmF0b3I6MCxvcmRlcjowLG9yaWVudDowLG9yaWVudGF0aW9uOjAsb3JpZ2luOjAsb3ZlcmZsb3c6MCxvdmVybGluZVBvc2l0aW9uOjAsb3ZlcmxpbmVUaGlja25lc3M6MCxwYWludE9yZGVyOjAscGFub3NlMTowLHBhdGhMZW5ndGg6MCxwYXR0ZXJuQ29udGVudFVuaXRzOjAscGF0dGVyblRyYW5zZm9ybTowLHBhdHRlcm5Vbml0czowLHBvaW50ZXJFdmVudHM6MCxwb2ludHM6MCxwb2ludHNBdFg6MCxwb2ludHNBdFk6MCxwb2ludHNBdFo6MCxwcmVzZXJ2ZUFscGhhOjAscHJlc2VydmVBc3BlY3RSYXRpbzowLHByaW1pdGl2ZVVuaXRzOjAscjowLHJhZGl1czowLHJlZlg6MCxyZWZZOjAscmVuZGVyaW5nSW50ZW50OjAscmVwZWF0Q291bnQ6MCxyZXBlYXREdXI6MCxyZXF1aXJlZEV4dGVuc2lvbnM6MCxyZXF1aXJlZEZlYXR1cmVzOjAscmVzdGFydDowLHJlc3VsdDowLHJvdGF0ZTowLHJ4OjAscnk6MCxzY2FsZTowLHNlZWQ6MCxzaGFwZVJlbmRlcmluZzowLHNsb3BlOjAsc3BhY2luZzowLHNwZWN1bGFyQ29uc3RhbnQ6MCxzcGVjdWxhckV4cG9uZW50OjAsc3BlZWQ6MCxzcHJlYWRNZXRob2Q6MCxzdGFydE9mZnNldDowLHN0ZERldmlhdGlvbjowLHN0ZW1oOjAsc3RlbXY6MCxzdGl0Y2hUaWxlczowLHN0b3BDb2xvcjowLHN0b3BPcGFjaXR5OjAsc3RyaWtldGhyb3VnaFBvc2l0aW9uOjAsc3RyaWtldGhyb3VnaFRoaWNrbmVzczowLHN0cmluZzowLHN0cm9rZTowLHN0cm9rZURhc2hhcnJheTowLHN0cm9rZURhc2hvZmZzZXQ6MCxzdHJva2VMaW5lY2FwOjAsc3Ryb2tlTGluZWpvaW46MCxzdHJva2VNaXRlcmxpbWl0OjAsc3Ryb2tlT3BhY2l0eTowLHN0cm9rZVdpZHRoOjAsc3VyZmFjZVNjYWxlOjAsc3lzdGVtTGFuZ3VhZ2U6MCx0YWJsZVZhbHVlczowLHRhcmdldFg6MCx0YXJnZXRZOjAsdGV4dEFuY2hvcjowLHRleHREZWNvcmF0aW9uOjAsdGV4dFJlbmRlcmluZzowLHRleHRMZW5ndGg6MCx0bzowLHRyYW5zZm9ybTowLHUxOjAsdTI6MCx1bmRlcmxpbmVQb3NpdGlvbjowLHVuZGVybGluZVRoaWNrbmVzczowLHVuaWNvZGU6MCx1bmljb2RlQmlkaTowLHVuaWNvZGVSYW5nZTowLHVuaXRzUGVyRW06MCx2QWxwaGFiZXRpYzowLHZIYW5naW5nOjAsdklkZW9ncmFwaGljOjAsdk1hdGhlbWF0aWNhbDowLHZhbHVlczowLHZlY3RvckVmZmVjdDowLHZlcnNpb246MCx2ZXJ0QWR2WTowLHZlcnRPcmlnaW5YOjAsdmVydE9yaWdpblk6MCx2aWV3Qm94OjAsdmlld1RhcmdldDowLHZpc2liaWxpdHk6MCx3aWR0aHM6MCx3b3JkU3BhY2luZzowLHdyaXRpbmdNb2RlOjAseDowLHhIZWlnaHQ6MCx4MTowLHgyOjAseENoYW5uZWxTZWxlY3RvcjowLHhsaW5rQWN0dWF0ZTowLHhsaW5rQXJjcm9sZTowLHhsaW5rSHJlZjowLHhsaW5rUm9sZTowLHhsaW5rU2hvdzowLHhsaW5rVGl0bGU6MCx4bGlua1R5cGU6MCx4bWxCYXNlOjAseG1sbnM6MCx4bWxuc1hsaW5rOjAseG1sTGFuZzowLHhtbFNwYWNlOjAseTowLHkxOjAseTI6MCx5Q2hhbm5lbFNlbGVjdG9yOjAsejowLHpvb21BbmRQYW46MH0sRE9NQXR0cmlidXRlTmFtZXM6e2FjY2VudEhlaWdodDpcImFjY2VudC1oZWlnaHRcIixhbGlnbm1lbnRCYXNlbGluZTpcImFsaWdubWVudC1iYXNlbGluZVwiLGFyYWJpY0Zvcm06XCJhcmFiaWMtZm9ybVwiLGJhc2VsaW5lU2hpZnQ6XCJiYXNlbGluZS1zaGlmdFwiLGNhcEhlaWdodDpcImNhcC1oZWlnaHRcIixjbGlwUGF0aDpcImNsaXAtcGF0aFwiLGNsaXBSdWxlOlwiY2xpcC1ydWxlXCIsY29sb3JJbnRlcnBvbGF0aW9uOlwiY29sb3ItaW50ZXJwb2xhdGlvblwiLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6XCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnNcIixjb2xvclByb2ZpbGU6XCJjb2xvci1wcm9maWxlXCIsY29sb3JSZW5kZXJpbmc6XCJjb2xvci1yZW5kZXJpbmdcIixkb21pbmFudEJhc2VsaW5lOlwiZG9taW5hbnQtYmFzZWxpbmVcIixlbmFibGVCYWNrZ3JvdW5kOlwiZW5hYmxlLWJhY2tncm91bmRcIixmaWxsT3BhY2l0eTpcImZpbGwtb3BhY2l0eVwiLGZpbGxSdWxlOlwiZmlsbC1ydWxlXCIsZmxvb2RDb2xvcjpcImZsb29kLWNvbG9yXCIsZmxvb2RPcGFjaXR5OlwiZmxvb2Qtb3BhY2l0eVwiLGZvbnRGYW1pbHk6XCJmb250LWZhbWlseVwiLGZvbnRTaXplOlwiZm9udC1zaXplXCIsZm9udFNpemVBZGp1c3Q6XCJmb250LXNpemUtYWRqdXN0XCIsZm9udFN0cmV0Y2g6XCJmb250LXN0cmV0Y2hcIixmb250U3R5bGU6XCJmb250LXN0eWxlXCIsZm9udFZhcmlhbnQ6XCJmb250LXZhcmlhbnRcIixmb250V2VpZ2h0OlwiZm9udC13ZWlnaHRcIixnbHlwaE5hbWU6XCJnbHlwaC1uYW1lXCIsZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6XCJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsXCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOlwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWxcIixob3JpekFkdlg6XCJob3Jpei1hZHYteFwiLGhvcml6T3JpZ2luWDpcImhvcml6LW9yaWdpbi14XCIsaW1hZ2VSZW5kZXJpbmc6XCJpbWFnZS1yZW5kZXJpbmdcIixsZXR0ZXJTcGFjaW5nOlwibGV0dGVyLXNwYWNpbmdcIixsaWdodGluZ0NvbG9yOlwibGlnaHRpbmctY29sb3JcIixtYXJrZXJFbmQ6XCJtYXJrZXItZW5kXCIsbWFya2VyTWlkOlwibWFya2VyLW1pZFwiLG1hcmtlclN0YXJ0OlwibWFya2VyLXN0YXJ0XCIsb3ZlcmxpbmVQb3NpdGlvbjpcIm92ZXJsaW5lLXBvc2l0aW9uXCIsb3ZlcmxpbmVUaGlja25lc3M6XCJvdmVybGluZS10aGlja25lc3NcIixwYWludE9yZGVyOlwicGFpbnQtb3JkZXJcIixwYW5vc2UxOlwicGFub3NlLTFcIixwb2ludGVyRXZlbnRzOlwicG9pbnRlci1ldmVudHNcIixyZW5kZXJpbmdJbnRlbnQ6XCJyZW5kZXJpbmctaW50ZW50XCIsc2hhcGVSZW5kZXJpbmc6XCJzaGFwZS1yZW5kZXJpbmdcIixzdG9wQ29sb3I6XCJzdG9wLWNvbG9yXCIsc3RvcE9wYWNpdHk6XCJzdG9wLW9wYWNpdHlcIixzdHJpa2V0aHJvdWdoUG9zaXRpb246XCJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uXCIsc3RyaWtldGhyb3VnaFRoaWNrbmVzczpcInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzXCIsc3Ryb2tlRGFzaGFycmF5Olwic3Ryb2tlLWRhc2hhcnJheVwiLHN0cm9rZURhc2hvZmZzZXQ6XCJzdHJva2UtZGFzaG9mZnNldFwiLHN0cm9rZUxpbmVjYXA6XCJzdHJva2UtbGluZWNhcFwiLHN0cm9rZUxpbmVqb2luOlwic3Ryb2tlLWxpbmVqb2luXCIsc3Ryb2tlTWl0ZXJsaW1pdDpcInN0cm9rZS1taXRlcmxpbWl0XCIsc3Ryb2tlT3BhY2l0eTpcInN0cm9rZS1vcGFjaXR5XCIsc3Ryb2tlV2lkdGg6XCJzdHJva2Utd2lkdGhcIix0ZXh0QW5jaG9yOlwidGV4dC1hbmNob3JcIix0ZXh0RGVjb3JhdGlvbjpcInRleHQtZGVjb3JhdGlvblwiLHRleHRSZW5kZXJpbmc6XCJ0ZXh0LXJlbmRlcmluZ1wiLHVuZGVybGluZVBvc2l0aW9uOlwidW5kZXJsaW5lLXBvc2l0aW9uXCIsdW5kZXJsaW5lVGhpY2tuZXNzOlwidW5kZXJsaW5lLXRoaWNrbmVzc1wiLHVuaWNvZGVCaWRpOlwidW5pY29kZS1iaWRpXCIsdW5pY29kZVJhbmdlOlwidW5pY29kZS1yYW5nZVwiLHVuaXRzUGVyRW06XCJ1bml0cy1wZXItZW1cIix2QWxwaGFiZXRpYzpcInYtYWxwaGFiZXRpY1wiLHZIYW5naW5nOlwidi1oYW5naW5nXCIsdklkZW9ncmFwaGljOlwidi1pZGVvZ3JhcGhpY1wiLHZNYXRoZW1hdGljYWw6XCJ2LW1hdGhlbWF0aWNhbFwiLHZlY3RvckVmZmVjdDpcInZlY3Rvci1lZmZlY3RcIix2ZXJ0QWR2WTpcInZlcnQtYWR2LXlcIix2ZXJ0T3JpZ2luWDpcInZlcnQtb3JpZ2luLXhcIix2ZXJ0T3JpZ2luWTpcInZlcnQtb3JpZ2luLXlcIix3b3JkU3BhY2luZzpcIndvcmQtc3BhY2luZ1wiLHdyaXRpbmdNb2RlOlwid3JpdGluZy1tb2RlXCIseEhlaWdodDpcIngtaGVpZ2h0XCIseGxpbmtBY3R1YXRlOlwieGxpbms6YWN0dWF0ZVwiLHhsaW5rQXJjcm9sZTpcInhsaW5rOmFyY3JvbGVcIix4bGlua0hyZWY6XCJ4bGluazpocmVmXCIseGxpbmtSb2xlOlwieGxpbms6cm9sZVwiLHhsaW5rU2hvdzpcInhsaW5rOnNob3dcIix4bGlua1RpdGxlOlwieGxpbms6dGl0bGVcIix4bGlua1R5cGU6XCJ4bGluazp0eXBlXCIseG1sQmFzZTpcInhtbDpiYXNlXCIseG1sbnNYbGluazpcInhtbG5zOnhsaW5rXCIseG1sTGFuZzpcInhtbDpsYW5nXCIseG1sU3BhY2U6XCJ4bWw6c3BhY2VcIn19fSw1MDI6ZT0+e2UuZXhwb3J0cz17TVVTVF9VU0VfUFJPUEVSVFk6MSxIQVNfQk9PTEVBTl9WQUxVRTo0LEhBU19OVU1FUklDX1ZBTFVFOjgsSEFTX1BPU0lUSVZFX05VTUVSSUNfVkFMVUU6MjQsSEFTX09WRVJMT0FERURfQk9PTEVBTl9WQUxVRTozMn19LDYzNzQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjc5MSksbz02MDEwMztpZih0LkZyYWdtZW50PTYwMTA3LFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Ipe3ZhciBpPVN5bWJvbC5mb3I7bz1pKFwicmVhY3QuZWxlbWVudFwiKSx0LkZyYWdtZW50PWkoXCJyZWFjdC5mcmFnbWVudFwiKX12YXIgYT1yLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELlJlYWN0Q3VycmVudE93bmVyLHM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxsPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24gYyhlLHQsbil7dmFyIHIsaT17fSxjPW51bGwsdT1udWxsO2ZvcihyIGluIHZvaWQgMCE9PW4mJihjPVwiXCIrbiksdm9pZCAwIT09dC5rZXkmJihjPVwiXCIrdC5rZXkpLHZvaWQgMCE9PXQucmVmJiYodT10LnJlZiksdClzLmNhbGwodCxyKSYmIWwuaGFzT3duUHJvcGVydHkocikmJihpW3JdPXRbcl0pO2lmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihyIGluIHQ9ZS5kZWZhdWx0UHJvcHMpdm9pZCAwPT09aVtyXSYmKGlbcl09dFtyXSk7cmV0dXJueyQkdHlwZW9mOm8sdHlwZTplLGtleTpjLHJlZjp1LHByb3BzOmksX293bmVyOmEuY3VycmVudH19dC5qc3g9Yyx0LmpzeHM9Y30sOTExNzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigxNzI1KSxvPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsaT1vP1N5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpOjYwMTAzLGE9bz9TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpOjYwMTA2LHM9bz9TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik6NjAxMDcsbD1vP1N5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTo2MDEwOCxjPW8/U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpOjYwMTE0LHU9bz9TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik6NjAxMDksZD1vP1N5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpOjYwMTEwLHA9bz9TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIik6NjAxMTIsZj1vP1N5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKTo2MDExMyxoPW8/U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIik6NjAxMTUsbT1vP1N5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpOjYwMTE2LGc9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIHkoZSl7Zm9yKHZhciB0PVwiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9XCIrZSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSk7cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrZStcIjsgdmlzaXQgXCIrdCtcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9dmFyIHY9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LGI9e307ZnVuY3Rpb24gVChlLHQsbil7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD10LHRoaXMucmVmcz1iLHRoaXMudXBkYXRlcj1ufHx2fWZ1bmN0aW9uIHgoKXt9ZnVuY3Rpb24gdyhlLHQsbil7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD10LHRoaXMucmVmcz1iLHRoaXMudXBkYXRlcj1ufHx2fVQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sVC5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZSx0KXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlJiZudWxsIT1lKXRocm93IEVycm9yKHkoODUpKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZSx0LFwic2V0U3RhdGVcIil9LFQucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxlLFwiZm9yY2VVcGRhdGVcIil9LHgucHJvdG90eXBlPVQucHJvdG90eXBlO3ZhciBrPXcucHJvdG90eXBlPW5ldyB4O2suY29uc3RydWN0b3I9dyxyKGssVC5wcm90b3R5cGUpLGsuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEU9e2N1cnJlbnQ6bnVsbH0sUz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEE9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiBDKGUsdCxuKXt2YXIgcixvPXt9LGE9bnVsbCxzPW51bGw7aWYobnVsbCE9dClmb3IociBpbiB2b2lkIDAhPT10LnJlZiYmKHM9dC5yZWYpLHZvaWQgMCE9PXQua2V5JiYoYT1cIlwiK3Qua2V5KSx0KVMuY2FsbCh0LHIpJiYhQS5oYXNPd25Qcm9wZXJ0eShyKSYmKG9bcl09dFtyXSk7dmFyIGw9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1sKW8uY2hpbGRyZW49bjtlbHNlIGlmKDE8bCl7Zm9yKHZhciBjPUFycmF5KGwpLHU9MDt1PGw7dSsrKWNbdV09YXJndW1lbnRzW3UrMl07by5jaGlsZHJlbj1jfWlmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihyIGluIGw9ZS5kZWZhdWx0UHJvcHMpdm9pZCAwPT09b1tyXSYmKG9bcl09bFtyXSk7cmV0dXJueyQkdHlwZW9mOmksdHlwZTplLGtleTphLHJlZjpzLHByb3BzOm8sX293bmVyOkUuY3VycmVudH19ZnVuY3Rpb24gXyhlKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGUmJm51bGwhPT1lJiZlLiQkdHlwZW9mPT09aX12YXIgRD0vXFwvKy9nLFI9W107ZnVuY3Rpb24gTyhlLHQsbixyKXtpZihSLmxlbmd0aCl7dmFyIG89Ui5wb3AoKTtyZXR1cm4gby5yZXN1bHQ9ZSxvLmtleVByZWZpeD10LG8uZnVuYz1uLG8uY29udGV4dD1yLG8uY291bnQ9MCxvfXJldHVybntyZXN1bHQ6ZSxrZXlQcmVmaXg6dCxmdW5jOm4sY29udGV4dDpyLGNvdW50OjB9fWZ1bmN0aW9uIFAoZSl7ZS5yZXN1bHQ9bnVsbCxlLmtleVByZWZpeD1udWxsLGUuZnVuYz1udWxsLGUuY29udGV4dD1udWxsLGUuY291bnQ9MCwxMD5SLmxlbmd0aCYmUi5wdXNoKGUpfWZ1bmN0aW9uIEwoZSx0LG4scil7dmFyIG89dHlwZW9mIGU7XCJ1bmRlZmluZWRcIiE9PW8mJlwiYm9vbGVhblwiIT09b3x8KGU9bnVsbCk7dmFyIHM9ITE7aWYobnVsbD09PWUpcz0hMDtlbHNlIHN3aXRjaChvKXtjYXNlXCJzdHJpbmdcIjpjYXNlXCJudW1iZXJcIjpzPSEwO2JyZWFrO2Nhc2VcIm9iamVjdFwiOnN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIGk6Y2FzZSBhOnM9ITB9fWlmKHMpcmV0dXJuIG4ocixlLFwiXCI9PT10P1wiLlwiK0koZSwwKTp0KSwxO2lmKHM9MCx0PVwiXCI9PT10P1wiLlwiOnQrXCI6XCIsQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIGw9MDtsPGUubGVuZ3RoO2wrKyl7dmFyIGM9dCtJKG89ZVtsXSxsKTtzKz1MKG8sYyxuLHIpfWVsc2UgaWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZT9jPW51bGw6Yz1cImZ1bmN0aW9uXCI9PT10eXBlb2YoYz1nJiZlW2ddfHxlW1wiQEBpdGVyYXRvclwiXSk/YzpudWxsLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBjKWZvcihlPWMuY2FsbChlKSxsPTA7IShvPWUubmV4dCgpKS5kb25lOylzKz1MKG89by52YWx1ZSxjPXQrSShvLGwrKyksbixyKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1vKXRocm93IG49XCJcIitlLEVycm9yKHkoMzEsXCJbb2JqZWN0IE9iamVjdF1cIj09PW4/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhlKS5qb2luKFwiLCBcIikrXCJ9XCI6bixcIlwiKSk7cmV0dXJuIHN9ZnVuY3Rpb24gTihlLHQsbil7cmV0dXJuIG51bGw9PWU/MDpMKGUsXCJcIix0LG4pfWZ1bmN0aW9uIEkoZSx0KXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT9mdW5jdGlvbihlKXt2YXIgdD17XCI9XCI6XCI9MFwiLFwiOlwiOlwiPTJcIn07cmV0dXJuXCIkXCIrKFwiXCIrZSkucmVwbGFjZSgvWz06XS9nLChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKX0oZS5rZXkpOnQudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIGooZSx0KXtlLmZ1bmMuY2FsbChlLmNvbnRleHQsdCxlLmNvdW50KyspfWZ1bmN0aW9uIEIoZSx0LG4pe3ZhciByPWUucmVzdWx0LG89ZS5rZXlQcmVmaXg7ZT1lLmZ1bmMuY2FsbChlLmNvbnRleHQsdCxlLmNvdW50KyspLEFycmF5LmlzQXJyYXkoZSk/SChlLHIsbiwoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSk6bnVsbCE9ZSYmKF8oZSkmJihlPWZ1bmN0aW9uKGUsdCl7cmV0dXJueyQkdHlwZW9mOmksdHlwZTplLnR5cGUsa2V5OnQscmVmOmUucmVmLHByb3BzOmUucHJvcHMsX293bmVyOmUuX293bmVyfX0oZSxvKyghZS5rZXl8fHQmJnQua2V5PT09ZS5rZXk/XCJcIjooXCJcIitlLmtleSkucmVwbGFjZShELFwiJCYvXCIpK1wiL1wiKStuKSksci5wdXNoKGUpKX1mdW5jdGlvbiBIKGUsdCxuLHIsbyl7dmFyIGk9XCJcIjtudWxsIT1uJiYoaT0oXCJcIituKS5yZXBsYWNlKEQsXCIkJi9cIikrXCIvXCIpLE4oZSxCLHQ9Tyh0LGkscixvKSksUCh0KX12YXIgRj17Y3VycmVudDpudWxsfTtmdW5jdGlvbiBNKCl7dmFyIGU9Ri5jdXJyZW50O2lmKG51bGw9PT1lKXRocm93IEVycm9yKHkoMzIxKSk7cmV0dXJuIGV9dmFyIEc9e1JlYWN0Q3VycmVudERpc3BhdGNoZXI6RixSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzp7c3VzcGVuc2U6bnVsbH0sUmVhY3RDdXJyZW50T3duZXI6RSxJc1NvbWVSZW5kZXJlckFjdGluZzp7Y3VycmVudDohMX0sYXNzaWduOnJ9O3QuQ2hpbGRyZW49e21hcDpmdW5jdGlvbihlLHQsbil7aWYobnVsbD09ZSlyZXR1cm4gZTt2YXIgcj1bXTtyZXR1cm4gSChlLHIsbnVsbCx0LG4pLHJ9LGZvckVhY2g6ZnVuY3Rpb24oZSx0LG4pe2lmKG51bGw9PWUpcmV0dXJuIGU7TihlLGosdD1PKG51bGwsbnVsbCx0LG4pKSxQKHQpfSxjb3VudDpmdW5jdGlvbihlKXtyZXR1cm4gTihlLChmdW5jdGlvbigpe3JldHVybiBudWxsfSksbnVsbCl9LHRvQXJyYXk6ZnVuY3Rpb24oZSl7dmFyIHQ9W107cmV0dXJuIEgoZSx0LG51bGwsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpLHR9LG9ubHk6ZnVuY3Rpb24oZSl7aWYoIV8oZSkpdGhyb3cgRXJyb3IoeSgxNDMpKTtyZXR1cm4gZX19LHQuQ29tcG9uZW50PVQsdC5GcmFnbWVudD1zLHQuUHJvZmlsZXI9Yyx0LlB1cmVDb21wb25lbnQ9dyx0LlN0cmljdE1vZGU9bCx0LlN1c3BlbnNlPWYsdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1HLHQuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtpZihudWxsPT09ZXx8dm9pZCAwPT09ZSl0aHJvdyBFcnJvcih5KDI2NyxlKSk7dmFyIG89cih7fSxlLnByb3BzKSxhPWUua2V5LHM9ZS5yZWYsbD1lLl9vd25lcjtpZihudWxsIT10KXtpZih2b2lkIDAhPT10LnJlZiYmKHM9dC5yZWYsbD1FLmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYoYT1cIlwiK3Qua2V5KSxlLnR5cGUmJmUudHlwZS5kZWZhdWx0UHJvcHMpdmFyIGM9ZS50eXBlLmRlZmF1bHRQcm9wcztmb3IodSBpbiB0KVMuY2FsbCh0LHUpJiYhQS5oYXNPd25Qcm9wZXJ0eSh1KSYmKG9bdV09dm9pZCAwPT09dFt1XSYmdm9pZCAwIT09Yz9jW3VdOnRbdV0pfXZhciB1PWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09dSlvLmNoaWxkcmVuPW47ZWxzZSBpZigxPHUpe2M9QXJyYXkodSk7Zm9yKHZhciBkPTA7ZDx1O2QrKyljW2RdPWFyZ3VtZW50c1tkKzJdO28uY2hpbGRyZW49Y31yZXR1cm57JCR0eXBlb2Y6aSx0eXBlOmUudHlwZSxrZXk6YSxyZWY6cyxwcm9wczpvLF9vd25lcjpsfX0sdC5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW51bGwpLChlPXskJHR5cGVvZjpkLF9jYWxjdWxhdGVDaGFuZ2VkQml0czp0LF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0pLlByb3ZpZGVyPXskJHR5cGVvZjp1LF9jb250ZXh0OmV9LGUuQ29uc3VtZXI9ZX0sdC5jcmVhdGVFbGVtZW50PUMsdC5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGUpe3ZhciB0PUMuYmluZChudWxsLGUpO3JldHVybiB0LnR5cGU9ZSx0fSx0LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSx0LmZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOnAscmVuZGVyOmV9fSx0LmlzVmFsaWRFbGVtZW50PV8sdC5sYXp5PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjptLF9jdG9yOmUsX3N0YXR1czotMSxfcmVzdWx0Om51bGx9fSx0Lm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6aCx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LHQudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTSgpLnVzZUNhbGxiYWNrKGUsdCl9LHQudXNlQ29udGV4dD1mdW5jdGlvbihlLHQpe3JldHVybiBNKCkudXNlQ29udGV4dChlLHQpfSx0LnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LHQudXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE0oKS51c2VFZmZlY3QoZSx0KX0sdC51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gTSgpLnVzZUltcGVyYXRpdmVIYW5kbGUoZSx0LG4pfSx0LnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBNKCkudXNlTGF5b3V0RWZmZWN0KGUsdCl9LHQudXNlTWVtbz1mdW5jdGlvbihlLHQpe3JldHVybiBNKCkudXNlTWVtbyhlLHQpfSx0LnVzZVJlZHVjZXI9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBNKCkudXNlUmVkdWNlcihlLHQsbil9LHQudXNlUmVmPWZ1bmN0aW9uKGUpe3JldHVybiBNKCkudXNlUmVmKGUpfSx0LnVzZVN0YXRlPWZ1bmN0aW9uKGUpe3JldHVybiBNKCkudXNlU3RhdGUoZSl9LHQudmVyc2lvbj1cIjE2LjE0LjBcIn0sMjc5MTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPW4oOTExNyl9LDE4NDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPW4oNjM3NCl9LDY4MTM6KGUsdCk9PntcInVzZSBzdHJpY3RcIjt2YXIgbixyLG8saSxhO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciBzPW51bGwsbD1udWxsLGM9ZnVuY3Rpb24oKXtpZihudWxsIT09cyl0cnl7dmFyIGU9dC51bnN0YWJsZV9ub3coKTtzKCEwLGUpLHM9bnVsbH1jYXRjaChuKXt0aHJvdyBzZXRUaW1lb3V0KGMsMCksbn19LHU9RGF0ZS5ub3coKTt0LnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpLXV9LG49ZnVuY3Rpb24oZSl7bnVsbCE9PXM/c2V0VGltZW91dChuLDAsZSk6KHM9ZSxzZXRUaW1lb3V0KGMsMCkpfSxyPWZ1bmN0aW9uKGUsdCl7bD1zZXRUaW1lb3V0KGUsdCl9LG89ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQobCl9LGk9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sYT10LnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKCl7fX1lbHNle3ZhciBkPXdpbmRvdy5wZXJmb3JtYW5jZSxwPXdpbmRvdy5EYXRlLGY9d2luZG93LnNldFRpbWVvdXQsaD13aW5kb3cuY2xlYXJUaW1lb3V0O2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgY29uc29sZSl7dmFyIG09d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lO1wiZnVuY3Rpb25cIiE9PXR5cGVvZiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZjb25zb2xlLmVycm9yKFwiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vZmIubWUvcmVhY3QtcG9seWZpbGxzXCIpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBtJiZjb25zb2xlLmVycm9yKFwiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBjYW5jZWxBbmltYXRpb25GcmFtZS4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSBwb2x5ZmlsbCBpbiBvbGRlciBicm93c2Vycy4gaHR0cHM6Ly9mYi5tZS9yZWFjdC1wb2x5ZmlsbHNcIil9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBkJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5ub3cpdC51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gZC5ub3coKX07ZWxzZXt2YXIgZz1wLm5vdygpO3QudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHAubm93KCktZ319dmFyIHk9ITEsdj1udWxsLGI9LTEsVD01LHg9MDtpPWZ1bmN0aW9uKCl7cmV0dXJuIHQudW5zdGFibGVfbm93KCk+PXh9LGE9ZnVuY3Rpb24oKXt9LHQudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oZSl7MD5lfHwxMjU8ZT9jb25zb2xlLmVycm9yKFwiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWVyYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCB1bnN1cHBvcnRlZFwiKTpUPTA8ZT9NYXRoLmZsb29yKDFlMy9lKTo1fTt2YXIgdz1uZXcgTWVzc2FnZUNoYW5uZWwsaz13LnBvcnQyO3cucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7aWYobnVsbCE9PXYpe3ZhciBlPXQudW5zdGFibGVfbm93KCk7eD1lK1Q7dHJ5e3YoITAsZSk/ay5wb3N0TWVzc2FnZShudWxsKTooeT0hMSx2PW51bGwpfWNhdGNoKG4pe3Rocm93IGsucG9zdE1lc3NhZ2UobnVsbCksbn19ZWxzZSB5PSExfSxuPWZ1bmN0aW9uKGUpe3Y9ZSx5fHwoeT0hMCxrLnBvc3RNZXNzYWdlKG51bGwpKX0scj1mdW5jdGlvbihlLG4pe2I9ZigoZnVuY3Rpb24oKXtlKHQudW5zdGFibGVfbm93KCkpfSksbil9LG89ZnVuY3Rpb24oKXtoKGIpLGI9LTF9fWZ1bmN0aW9uIEUoZSx0KXt2YXIgbj1lLmxlbmd0aDtlLnB1c2godCk7ZTpmb3IoOzspe3ZhciByPW4tMT4+PjEsbz1lW3JdO2lmKCEodm9pZCAwIT09byYmMDxDKG8sdCkpKWJyZWFrIGU7ZVtyXT10LGVbbl09byxuPXJ9fWZ1bmN0aW9uIFMoZSl7cmV0dXJuIHZvaWQgMD09PShlPWVbMF0pP251bGw6ZX1mdW5jdGlvbiBBKGUpe3ZhciB0PWVbMF07aWYodm9pZCAwIT09dCl7dmFyIG49ZS5wb3AoKTtpZihuIT09dCl7ZVswXT1uO2U6Zm9yKHZhciByPTAsbz1lLmxlbmd0aDtyPG87KXt2YXIgaT0yKihyKzEpLTEsYT1lW2ldLHM9aSsxLGw9ZVtzXTtpZih2b2lkIDAhPT1hJiYwPkMoYSxuKSl2b2lkIDAhPT1sJiYwPkMobCxhKT8oZVtyXT1sLGVbc109bixyPXMpOihlW3JdPWEsZVtpXT1uLHI9aSk7ZWxzZXtpZighKHZvaWQgMCE9PWwmJjA+QyhsLG4pKSlicmVhayBlO2Vbcl09bCxlW3NdPW4scj1zfX19cmV0dXJuIHR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQyhlLHQpe3ZhciBuPWUuc29ydEluZGV4LXQuc29ydEluZGV4O3JldHVybiAwIT09bj9uOmUuaWQtdC5pZH12YXIgXz1bXSxEPVtdLFI9MSxPPW51bGwsUD0zLEw9ITEsTj0hMSxJPSExO2Z1bmN0aW9uIGooZSl7Zm9yKHZhciB0PVMoRCk7bnVsbCE9PXQ7KXtpZihudWxsPT09dC5jYWxsYmFjaylBKEQpO2Vsc2V7aWYoISh0LnN0YXJ0VGltZTw9ZSkpYnJlYWs7QShEKSx0LnNvcnRJbmRleD10LmV4cGlyYXRpb25UaW1lLEUoXyx0KX10PVMoRCl9fWZ1bmN0aW9uIEIoZSl7aWYoST0hMSxqKGUpLCFOKWlmKG51bGwhPT1TKF8pKU49ITAsbihIKTtlbHNle3ZhciB0PVMoRCk7bnVsbCE9PXQmJnIoQix0LnN0YXJ0VGltZS1lKX19ZnVuY3Rpb24gSChlLG4pe049ITEsSSYmKEk9ITEsbygpKSxMPSEwO3ZhciBhPVA7dHJ5e2ZvcihqKG4pLE89UyhfKTtudWxsIT09TyYmKCEoTy5leHBpcmF0aW9uVGltZT5uKXx8ZSYmIWkoKSk7KXt2YXIgcz1PLmNhbGxiYWNrO2lmKG51bGwhPT1zKXtPLmNhbGxiYWNrPW51bGwsUD1PLnByaW9yaXR5TGV2ZWw7dmFyIGw9cyhPLmV4cGlyYXRpb25UaW1lPD1uKTtuPXQudW5zdGFibGVfbm93KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGw/Ty5jYWxsYmFjaz1sOk89PT1TKF8pJiZBKF8pLGoobil9ZWxzZSBBKF8pO089UyhfKX1pZihudWxsIT09Tyl2YXIgYz0hMDtlbHNle3ZhciB1PVMoRCk7bnVsbCE9PXUmJnIoQix1LnN0YXJ0VGltZS1uKSxjPSExfXJldHVybiBjfWZpbmFsbHl7Tz1udWxsLFA9YSxMPSExfX1mdW5jdGlvbiBGKGUpe3N3aXRjaChlKXtjYXNlIDE6cmV0dXJuLTE7Y2FzZSAyOnJldHVybiAyNTA7Y2FzZSA1OnJldHVybiAxMDczNzQxODIzO2Nhc2UgNDpyZXR1cm4gMWU0O2RlZmF1bHQ6cmV0dXJuIDVlM319dmFyIE09YTt0LnVuc3RhYmxlX0lkbGVQcmlvcml0eT01LHQudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MSx0LnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsdC51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zLHQudW5zdGFibGVfUHJvZmlsaW5nPW51bGwsdC51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yLHQudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24oZSl7ZS5jYWxsYmFjaz1udWxsfSx0LnVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7Tnx8THx8KE49ITAsbihIKSl9LHQudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gUH0sdC51bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZT1mdW5jdGlvbigpe3JldHVybiBTKF8pfSx0LnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oZSl7c3dpdGNoKFApe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciB0PTM7YnJlYWs7ZGVmYXVsdDp0PVB9dmFyIG49UDtQPXQ7dHJ5e3JldHVybiBlKCl9ZmluYWxseXtQPW59fSx0LnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7fSx0LnVuc3RhYmxlX3JlcXVlc3RQYWludD1NLHQudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDplPTN9dmFyIG49UDtQPWU7dHJ5e3JldHVybiB0KCl9ZmluYWxseXtQPW59fSx0LnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oZSxpLGEpe3ZhciBzPXQudW5zdGFibGVfbm93KCk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSl7dmFyIGw9YS5kZWxheTtsPVwibnVtYmVyXCI9PT10eXBlb2YgbCYmMDxsP3MrbDpzLGE9XCJudW1iZXJcIj09PXR5cGVvZiBhLnRpbWVvdXQ/YS50aW1lb3V0OkYoZSl9ZWxzZSBhPUYoZSksbD1zO3JldHVybiBlPXtpZDpSKyssY2FsbGJhY2s6aSxwcmlvcml0eUxldmVsOmUsc3RhcnRUaW1lOmwsZXhwaXJhdGlvblRpbWU6YT1sK2Esc29ydEluZGV4Oi0xfSxsPnM/KGUuc29ydEluZGV4PWwsRShELGUpLG51bGw9PT1TKF8pJiZlPT09UyhEKSYmKEk/bygpOkk9ITAscihCLGwtcykpKTooZS5zb3J0SW5kZXg9YSxFKF8sZSksTnx8THx8KE49ITAsbihIKSkpLGV9LHQudW5zdGFibGVfc2hvdWxkWWllbGQ9ZnVuY3Rpb24oKXt2YXIgZT10LnVuc3RhYmxlX25vdygpO2ooZSk7dmFyIG49UyhfKTtyZXR1cm4gbiE9PU8mJm51bGwhPT1PJiZudWxsIT09biYmbnVsbCE9PW4uY2FsbGJhY2smJm4uc3RhcnRUaW1lPD1lJiZuLmV4cGlyYXRpb25UaW1lPE8uZXhwaXJhdGlvblRpbWV8fGkoKX0sdC51bnN0YWJsZV93cmFwQ2FsbGJhY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9UDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1QO1A9dDt0cnl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7UD1ufX19fSw1Mjk2OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9big2ODEzKX0sNTk4NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyNTA2KSxvPW4oMjY1MSksaT1uKDQ1MTApKCksYT1uKDMzNDcpLHM9cihcIiVUeXBlRXJyb3IlXCIpLGw9cihcIiVNYXRoLmZsb29yJVwiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZSl0aHJvdyBuZXcgcyhcImBmbmAgaXMgbm90IGEgZnVuY3Rpb25cIik7aWYoXCJudW1iZXJcIiE9PXR5cGVvZiB0fHx0PDB8fHQ+NDI5NDk2NzI5NXx8bCh0KSE9PXQpdGhyb3cgbmV3IHMoXCJgbGVuZ3RoYCBtdXN0IGJlIGEgcG9zaXRpdmUgMzItYml0IGludGVnZXJcIik7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiYhIWFyZ3VtZW50c1syXSxyPSEwLGM9ITA7aWYoXCJsZW5ndGhcImluIGUmJmEpe3ZhciB1PWEoZSxcImxlbmd0aFwiKTt1JiYhdS5jb25maWd1cmFibGUmJihyPSExKSx1JiYhdS53cml0YWJsZSYmKGM9ITEpfXJldHVybihyfHxjfHwhbikmJihpP28oZSxcImxlbmd0aFwiLHQsITAsITApOm8oZSxcImxlbmd0aFwiLHQpKSxlfX0sNTgxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI1MDYpLG89big0MDM3KSxpPW4oMjU4NCksYT1yKFwiJVR5cGVFcnJvciVcIikscz1yKFwiJVdlYWtNYXAlXCIsITApLGw9cihcIiVNYXAlXCIsITApLGM9byhcIldlYWtNYXAucHJvdG90eXBlLmdldFwiLCEwKSx1PW8oXCJXZWFrTWFwLnByb3RvdHlwZS5zZXRcIiwhMCksZD1vKFwiV2Vha01hcC5wcm90b3R5cGUuaGFzXCIsITApLHA9byhcIk1hcC5wcm90b3R5cGUuZ2V0XCIsITApLGY9byhcIk1hcC5wcm90b3R5cGUuc2V0XCIsITApLGg9byhcIk1hcC5wcm90b3R5cGUuaGFzXCIsITApLG09ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4scj1lO251bGwhPT0obj1yLm5leHQpO3I9bilpZihuLmtleT09PXQpcmV0dXJuIHIubmV4dD1uLm5leHQsbi5uZXh0PWUubmV4dCxlLm5leHQ9bixufTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scj17YXNzZXJ0OmZ1bmN0aW9uKGUpe2lmKCFyLmhhcyhlKSl0aHJvdyBuZXcgYShcIlNpZGUgY2hhbm5lbCBkb2VzIG5vdCBjb250YWluIFwiK2koZSkpfSxnZXQ6ZnVuY3Rpb24ocil7aWYocyYmciYmKFwib2JqZWN0XCI9PT10eXBlb2Ygcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIHIpKXtpZihlKXJldHVybiBjKGUscil9ZWxzZSBpZihsKXtpZih0KXJldHVybiBwKHQscil9ZWxzZSBpZihuKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPW0oZSx0KTtyZXR1cm4gbiYmbi52YWx1ZX0obixyKX0saGFzOmZ1bmN0aW9uKHIpe2lmKHMmJnImJihcIm9iamVjdFwiPT09dHlwZW9mIHJ8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiByKSl7aWYoZSlyZXR1cm4gZChlLHIpfWVsc2UgaWYobCl7aWYodClyZXR1cm4gaCh0LHIpfWVsc2UgaWYobilyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4hIW0oZSx0KX0obixyKTtyZXR1cm4hMX0sc2V0OmZ1bmN0aW9uKHIsbyl7cyYmciYmKFwib2JqZWN0XCI9PT10eXBlb2Ygcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIHIpPyhlfHwoZT1uZXcgcyksdShlLHIsbykpOmw/KHR8fCh0PW5ldyBsKSxmKHQscixvKSk6KG58fChuPXtrZXk6e30sbmV4dDpudWxsfSksZnVuY3Rpb24oZSx0LG4pe3ZhciByPW0oZSx0KTtyP3IudmFsdWU9bjplLm5leHQ9e2tleTp0LG5leHQ6ZS5uZXh0LHZhbHVlOm59fShuLHIsbykpfX07cmV0dXJuIHJ9fSw1NzkyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTt0Ll9fZXNNb2R1bGU9ITA7dmFyIG89cihuKDY0MjYpKSxpPW4oOTQ4Myk7dC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7dmFyIG49e307cmV0dXJuIGUmJlwic3RyaW5nXCI9PT10eXBlb2YgZT8oby5kZWZhdWx0KGUsKGZ1bmN0aW9uKGUscil7ZSYmciYmKG5baS5jYW1lbENhc2UoZSx0KV09cil9KSksbik6bn19LDk0ODM6KGUsdCk9PntcInVzZSBzdHJpY3RcIjt0Ll9fZXNNb2R1bGU9ITAsdC5jYW1lbENhc2U9dm9pZCAwO3ZhciBuPS9eLS1bYS16QS1aMC05LV0rJC8scj0vLShbYS16XSkvZyxvPS9eW14tXSskLyxpPS9eLSh3ZWJraXR8bW96fG1zfG98a2h0bWwpLS8sYT1mdW5jdGlvbihlLHQpe3JldHVybiB0LnRvVXBwZXJDYXNlKCl9LHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCtcIi1cIn07dC5jYW1lbENhc2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9e30pLGZ1bmN0aW9uKGUpe3JldHVybiFlfHxvLnRlc3QoZSl8fG4udGVzdChlKX0oZSk/ZTooZT1lLnRvTG93ZXJDYXNlKCksdC5yZWFjdENvbXBhdHx8KGU9ZS5yZXBsYWNlKGkscykpLGUucmVwbGFjZShyLGEpKX19LDY0MjY6KGUsdCxuKT0+e3ZhciByPW4oMTA2NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4sbz1udWxsO2lmKCFlfHxcInN0cmluZ1wiIT09dHlwZW9mIGUpcmV0dXJuIG87Zm9yKHZhciBpLGEscz1yKGUpLGw9XCJmdW5jdGlvblwiPT09dHlwZW9mIHQsYz0wLHU9cy5sZW5ndGg7Yzx1O2MrKylpPShuPXNbY10pLnByb3BlcnR5LGE9bi52YWx1ZSxsP3QoaSxhLG4pOmEmJihvfHwobz17fSksb1tpXT1hKTtyZXR1cm4gb319LDEyODg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24ucih0KSxuLmQodCx7RE9NRXhjZXB0aW9uOigpPT53LEhlYWRlcnM6KCk9PnUsUmVxdWVzdDooKT0+eSxSZXNwb25zZTooKT0+VCxmZXRjaDooKT0+a30pO3ZhciByPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpc3x8XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZWxmJiZzZWxmfHxcInVuZGVmaW5lZFwiIT09dHlwZW9mIG4uZyYmbi5nfHx7fSxvPXtzZWFyY2hQYXJhbXM6XCJVUkxTZWFyY2hQYXJhbXNcImluIHIsaXRlcmFibGU6XCJTeW1ib2xcImluIHImJlwiaXRlcmF0b3JcImluIFN5bWJvbCxibG9iOlwiRmlsZVJlYWRlclwiaW4gciYmXCJCbG9iXCJpbiByJiZmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEJsb2IsITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLGZvcm1EYXRhOlwiRm9ybURhdGFcImluIHIsYXJyYXlCdWZmZXI6XCJBcnJheUJ1ZmZlclwiaW4gcn07aWYoby5hcnJheUJ1ZmZlcil2YXIgaT1bXCJbb2JqZWN0IEludDhBcnJheV1cIixcIltvYmplY3QgVWludDhBcnJheV1cIixcIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldXCIsXCJbb2JqZWN0IEludDE2QXJyYXldXCIsXCJbb2JqZWN0IFVpbnQxNkFycmF5XVwiLFwiW29iamVjdCBJbnQzMkFycmF5XVwiLFwiW29iamVjdCBVaW50MzJBcnJheV1cIixcIltvYmplY3QgRmxvYXQzMkFycmF5XVwiLFwiW29iamVjdCBGbG9hdDY0QXJyYXldXCJdLGE9QXJyYXlCdWZmZXIuaXNWaWV3fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmaS5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSk+LTF9O2Z1bmN0aW9uIHMoZSl7aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBlJiYoZT1TdHJpbmcoZSkpLC9bXmEtejAtOVxcLSMkJSYnKisuXl9gfH4hXS9pLnRlc3QoZSl8fFwiXCI9PT1lKXRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgY2hhcmFjdGVyIGluIGhlYWRlciBmaWVsZCBuYW1lOiBcIicrZSsnXCInKTtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuXCJzdHJpbmdcIiE9PXR5cGVvZiBlJiYoZT1TdHJpbmcoZSkpLGV9ZnVuY3Rpb24gYyhlKXt2YXIgdD17bmV4dDpmdW5jdGlvbigpe3ZhciB0PWUuc2hpZnQoKTtyZXR1cm57ZG9uZTp2b2lkIDA9PT10LHZhbHVlOnR9fX07cmV0dXJuIG8uaXRlcmFibGUmJih0W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdH0pLHR9ZnVuY3Rpb24gdShlKXt0aGlzLm1hcD17fSxlIGluc3RhbmNlb2YgdT9lLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7dGhpcy5hcHBlbmQodCxlKX0pLHRoaXMpOkFycmF5LmlzQXJyYXkoZSk/ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZigyIT1lLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiSGVhZGVycyBjb25zdHJ1Y3RvcjogZXhwZWN0ZWQgbmFtZS92YWx1ZSBwYWlyIHRvIGJlIGxlbmd0aCAyLCBmb3VuZFwiK2UubGVuZ3RoKTt0aGlzLmFwcGVuZChlWzBdLGVbMV0pfSksdGhpcyk6ZSYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dGhpcy5hcHBlbmQodCxlW3RdKX0pLHRoaXMpfWZ1bmN0aW9uIGQoZSl7aWYoIWUuX25vQm9keSlyZXR1cm4gZS5ib2R5VXNlZD9Qcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKFwiQWxyZWFkeSByZWFkXCIpKTp2b2lkKGUuYm9keVVzZWQ9ITApfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe2Uub25sb2FkPWZ1bmN0aW9uKCl7dChlLnJlc3VsdCl9LGUub25lcnJvcj1mdW5jdGlvbigpe24oZS5lcnJvcil9fSkpfWZ1bmN0aW9uIGYoZSl7dmFyIHQ9bmV3IEZpbGVSZWFkZXIsbj1wKHQpO3JldHVybiB0LnJlYWRBc0FycmF5QnVmZmVyKGUpLG59ZnVuY3Rpb24gaChlKXtpZihlLnNsaWNlKXJldHVybiBlLnNsaWNlKDApO3ZhciB0PW5ldyBVaW50OEFycmF5KGUuYnl0ZUxlbmd0aCk7cmV0dXJuIHQuc2V0KG5ldyBVaW50OEFycmF5KGUpKSx0LmJ1ZmZlcn1mdW5jdGlvbiBtKCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24oZSl7dmFyIHQ7dGhpcy5ib2R5VXNlZD10aGlzLmJvZHlVc2VkLHRoaXMuX2JvZHlJbml0PWUsZT9cInN0cmluZ1wiPT09dHlwZW9mIGU/dGhpcy5fYm9keVRleHQ9ZTpvLmJsb2ImJkJsb2IucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSk/dGhpcy5fYm9keUJsb2I9ZTpvLmZvcm1EYXRhJiZGb3JtRGF0YS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKT90aGlzLl9ib2R5Rm9ybURhdGE9ZTpvLnNlYXJjaFBhcmFtcyYmVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGUpP3RoaXMuX2JvZHlUZXh0PWUudG9TdHJpbmcoKTpvLmFycmF5QnVmZmVyJiZvLmJsb2ImJigodD1lKSYmRGF0YVZpZXcucHJvdG90eXBlLmlzUHJvdG90eXBlT2YodCkpPyh0aGlzLl9ib2R5QXJyYXlCdWZmZXI9aChlLmJ1ZmZlciksdGhpcy5fYm9keUluaXQ9bmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTpvLmFycmF5QnVmZmVyJiYoQXJyYXlCdWZmZXIucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSl8fGEoZSkpP3RoaXMuX2JvZHlBcnJheUJ1ZmZlcj1oKGUpOnRoaXMuX2JvZHlUZXh0PWU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpOih0aGlzLl9ub0JvZHk9ITAsdGhpcy5fYm9keVRleHQ9XCJcIiksdGhpcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKXx8KFwic3RyaW5nXCI9PT10eXBlb2YgZT90aGlzLmhlYWRlcnMuc2V0KFwiY29udGVudC10eXBlXCIsXCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThcIik6dGhpcy5fYm9keUJsb2ImJnRoaXMuX2JvZHlCbG9iLnR5cGU/dGhpcy5oZWFkZXJzLnNldChcImNvbnRlbnQtdHlwZVwiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOm8uc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSkmJnRoaXMuaGVhZGVycy5zZXQoXCJjb250ZW50LXR5cGVcIixcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04XCIpKX0sby5ibG9iJiYodGhpcy5ibG9iPWZ1bmN0aW9uKCl7dmFyIGU9ZCh0aGlzKTtpZihlKXJldHVybiBlO2lmKHRoaXMuX2JvZHlCbG9iKXJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUJsb2IpO2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk7aWYodGhpcy5fYm9keUZvcm1EYXRhKXRocm93IG5ldyBFcnJvcihcImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgYmxvYlwiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0pLHRoaXMuYXJyYXlCdWZmZXI9ZnVuY3Rpb24oKXtpZih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpe3ZhciBlPWQodGhpcyk7cmV0dXJuIGV8fChBcnJheUJ1ZmZlci5pc1ZpZXcodGhpcy5fYm9keUFycmF5QnVmZmVyKT9Qcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUFycmF5QnVmZmVyLmJ1ZmZlci5zbGljZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnl0ZU9mZnNldCx0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnl0ZU9mZnNldCt0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCkpOlByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKX1pZihvLmJsb2IpcmV0dXJuIHRoaXMuYmxvYigpLnRoZW4oZik7dGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlYWQgYXMgQXJyYXlCdWZmZXJcIil9LHRoaXMudGV4dD1mdW5jdGlvbigpe3ZhciBlPWQodGhpcyk7aWYoZSlyZXR1cm4gZTtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IEZpbGVSZWFkZXIsbj1wKHQpLHI9L2NoYXJzZXQ9KFtBLVphLXowLTlfLV0rKS8uZXhlYyhlLnR5cGUpLG89cj9yWzFdOlwidXRmLThcIjtyZXR1cm4gdC5yZWFkQXNUZXh0KGUsbyksbn0odGhpcy5fYm9keUJsb2IpO2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlKSxuPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0wO3I8dC5sZW5ndGg7cisrKW5bcl09U3RyaW5nLmZyb21DaGFyQ29kZSh0W3JdKTtyZXR1cm4gbi5qb2luKFwiXCIpfSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0XCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keVRleHQpfSxvLmZvcm1EYXRhJiYodGhpcy5mb3JtRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKHYpfSksdGhpcy5qc29uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oSlNPTi5wYXJzZSl9LHRoaXN9dS5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7ZT1zKGUpLHQ9bCh0KTt2YXIgbj10aGlzLm1hcFtlXTt0aGlzLm1hcFtlXT1uP24rXCIsIFwiK3Q6dH0sdS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe2RlbGV0ZSB0aGlzLm1hcFtzKGUpXX0sdS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBlPXMoZSksdGhpcy5oYXMoZSk/dGhpcy5tYXBbZV06bnVsbH0sdS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShzKGUpKX0sdS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dGhpcy5tYXBbcyhlKV09bCh0KX0sdS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0aGlzLm1hcCl0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShuKSYmZS5jYWxsKHQsdGhpcy5tYXBbbl0sbix0aGlzKX0sdS5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7ZS5wdXNoKG4pfSkpLGMoZSl9LHUucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UucHVzaCh0KX0pKSxjKGUpfSx1LnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtlLnB1c2goW24sdF0pfSkpLGMoZSl9LG8uaXRlcmFibGUmJih1LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPXUucHJvdG90eXBlLmVudHJpZXMpO3ZhciBnPVtcIkNPTk5FQ1RcIixcIkRFTEVURVwiLFwiR0VUXCIsXCJIRUFEXCIsXCJPUFRJT05TXCIsXCJQQVRDSFwiLFwiUE9TVFwiLFwiUFVUXCIsXCJUUkFDRVwiXTtmdW5jdGlvbiB5KGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgeSkpdGhyb3cgbmV3IFR5cGVFcnJvcignUGxlYXNlIHVzZSB0aGUgXCJuZXdcIiBvcGVyYXRvciwgdGhpcyBET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4nKTt2YXIgbj0odD10fHx7fSkuYm9keTtpZihlIGluc3RhbmNlb2YgeSl7aWYoZS5ib2R5VXNlZCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQWxyZWFkeSByZWFkXCIpO3RoaXMudXJsPWUudXJsLHRoaXMuY3JlZGVudGlhbHM9ZS5jcmVkZW50aWFscyx0LmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IHUoZS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9ZS5tZXRob2QsdGhpcy5tb2RlPWUubW9kZSx0aGlzLnNpZ25hbD1lLnNpZ25hbCxufHxudWxsPT1lLl9ib2R5SW5pdHx8KG49ZS5fYm9keUluaXQsZS5ib2R5VXNlZD0hMCl9ZWxzZSB0aGlzLnVybD1TdHJpbmcoZSk7aWYodGhpcy5jcmVkZW50aWFscz10LmNyZWRlbnRpYWxzfHx0aGlzLmNyZWRlbnRpYWxzfHxcInNhbWUtb3JpZ2luXCIsIXQuaGVhZGVycyYmdGhpcy5oZWFkZXJzfHwodGhpcy5oZWFkZXJzPW5ldyB1KHQuaGVhZGVycykpLHRoaXMubWV0aG9kPWZ1bmN0aW9uKGUpe3ZhciB0PWUudG9VcHBlckNhc2UoKTtyZXR1cm4gZy5pbmRleE9mKHQpPi0xP3Q6ZX0odC5tZXRob2R8fHRoaXMubWV0aG9kfHxcIkdFVFwiKSx0aGlzLm1vZGU9dC5tb2RlfHx0aGlzLm1vZGV8fG51bGwsdGhpcy5zaWduYWw9dC5zaWduYWx8fHRoaXMuc2lnbmFsfHxmdW5jdGlvbigpe2lmKFwiQWJvcnRDb250cm9sbGVyXCJpbiByKXJldHVybihuZXcgQWJvcnRDb250cm9sbGVyKS5zaWduYWx9KCksdGhpcy5yZWZlcnJlcj1udWxsLChcIkdFVFwiPT09dGhpcy5tZXRob2R8fFwiSEVBRFwiPT09dGhpcy5tZXRob2QpJiZuKXRocm93IG5ldyBUeXBlRXJyb3IoXCJCb2R5IG5vdCBhbGxvd2VkIGZvciBHRVQgb3IgSEVBRCByZXF1ZXN0c1wiKTtpZih0aGlzLl9pbml0Qm9keShuKSwoXCJHRVRcIj09PXRoaXMubWV0aG9kfHxcIkhFQURcIj09PXRoaXMubWV0aG9kKSYmKFwibm8tc3RvcmVcIj09PXQuY2FjaGV8fFwibm8tY2FjaGVcIj09PXQuY2FjaGUpKXt2YXIgbz0vKFs/Jl0pXz1bXiZdKi87aWYoby50ZXN0KHRoaXMudXJsKSl0aGlzLnVybD10aGlzLnVybC5yZXBsYWNlKG8sXCIkMV89XCIrKG5ldyBEYXRlKS5nZXRUaW1lKCkpO2Vsc2V7dGhpcy51cmwrPSgvXFw/Ly50ZXN0KHRoaXMudXJsKT9cIiZcIjpcIj9cIikrXCJfPVwiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpfX19ZnVuY3Rpb24gdihlKXt2YXIgdD1uZXcgRm9ybURhdGE7cmV0dXJuIGUudHJpbSgpLnNwbGl0KFwiJlwiKS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZihlKXt2YXIgbj1lLnNwbGl0KFwiPVwiKSxyPW4uc2hpZnQoKS5yZXBsYWNlKC9cXCsvZyxcIiBcIiksbz1uLmpvaW4oXCI9XCIpLnJlcGxhY2UoL1xcKy9nLFwiIFwiKTt0LmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQociksZGVjb2RlVVJJQ29tcG9uZW50KG8pKX19KSksdH1mdW5jdGlvbiBiKGUpe3ZhciB0PW5ldyB1O3JldHVybiBlLnJlcGxhY2UoL1xccj9cXG5bXFx0IF0rL2csXCIgXCIpLnNwbGl0KFwiXFxyXCIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lLmluZGV4T2YoXCJcXG5cIik/ZS5zdWJzdHIoMSxlLmxlbmd0aCk6ZX0pKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1lLnNwbGl0KFwiOlwiKSxyPW4uc2hpZnQoKS50cmltKCk7aWYocil7dmFyIG89bi5qb2luKFwiOlwiKS50cmltKCk7dHJ5e3QuYXBwZW5kKHIsbyl9Y2F0Y2goaSl7Y29uc29sZS53YXJuKFwiUmVzcG9uc2UgXCIraS5tZXNzYWdlKX19fSkpLHR9ZnVuY3Rpb24gVChlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFQpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1BsZWFzZSB1c2UgdGhlIFwibmV3XCIgb3BlcmF0b3IsIHRoaXMgRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uJyk7aWYodHx8KHQ9e30pLHRoaXMudHlwZT1cImRlZmF1bHRcIix0aGlzLnN0YXR1cz12b2lkIDA9PT10LnN0YXR1cz8yMDA6dC5zdGF0dXMsdGhpcy5zdGF0dXM8MjAwfHx0aGlzLnN0YXR1cz41OTkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJGYWlsZWQgdG8gY29uc3RydWN0ICdSZXNwb25zZSc6IFRoZSBzdGF0dXMgcHJvdmlkZWQgKDApIGlzIG91dHNpZGUgdGhlIHJhbmdlIFsyMDAsIDU5OV0uXCIpO3RoaXMub2s9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwLHRoaXMuc3RhdHVzVGV4dD12b2lkIDA9PT10LnN0YXR1c1RleHQ/XCJcIjpcIlwiK3Quc3RhdHVzVGV4dCx0aGlzLmhlYWRlcnM9bmV3IHUodC5oZWFkZXJzKSx0aGlzLnVybD10LnVybHx8XCJcIix0aGlzLl9pbml0Qm9keShlKX15LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgeSh0aGlzLHtib2R5OnRoaXMuX2JvZHlJbml0fSl9LG0uY2FsbCh5LnByb3RvdHlwZSksbS5jYWxsKFQucHJvdG90eXBlKSxULnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgVCh0aGlzLl9ib2R5SW5pdCx7c3RhdHVzOnRoaXMuc3RhdHVzLHN0YXR1c1RleHQ6dGhpcy5zdGF0dXNUZXh0LGhlYWRlcnM6bmV3IHUodGhpcy5oZWFkZXJzKSx1cmw6dGhpcy51cmx9KX0sVC5lcnJvcj1mdW5jdGlvbigpe3ZhciBlPW5ldyBUKG51bGwse3N0YXR1czoyMDAsc3RhdHVzVGV4dDpcIlwifSk7cmV0dXJuIGUub2s9ITEsZS5zdGF0dXM9MCxlLnR5cGU9XCJlcnJvclwiLGV9O3ZhciB4PVszMDEsMzAyLDMwMywzMDcsMzA4XTtULnJlZGlyZWN0PWZ1bmN0aW9uKGUsdCl7aWYoLTE9PT14LmluZGV4T2YodCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbnZhbGlkIHN0YXR1cyBjb2RlXCIpO3JldHVybiBuZXcgVChudWxsLHtzdGF0dXM6dCxoZWFkZXJzOntsb2NhdGlvbjplfX0pfTt2YXIgdz1yLkRPTUV4Y2VwdGlvbjt0cnl7bmV3IHd9Y2F0Y2goRSl7KHc9ZnVuY3Rpb24oZSx0KXt0aGlzLm1lc3NhZ2U9ZSx0aGlzLm5hbWU9dDt2YXIgbj1FcnJvcihlKTt0aGlzLnN0YWNrPW4uc3RhY2t9KS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHcucHJvdG90eXBlLmNvbnN0cnVjdG9yPXd9ZnVuY3Rpb24gayhlLHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obixpKXt2YXIgYT1uZXcgeShlLHQpO2lmKGEuc2lnbmFsJiZhLnNpZ25hbC5hYm9ydGVkKXJldHVybiBpKG5ldyB3KFwiQWJvcnRlZFwiLFwiQWJvcnRFcnJvclwiKSk7dmFyIGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Z1bmN0aW9uIGQoKXtjLmFib3J0KCl9aWYoYy5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT17c3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczpiKGMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl8fFwiXCIpfTswPT09YS51cmwuaW5kZXhPZihcImZpbGU6Ly9cIikmJihjLnN0YXR1czwyMDB8fGMuc3RhdHVzPjU5OSk/ZS5zdGF0dXM9MjAwOmUuc3RhdHVzPWMuc3RhdHVzLGUudXJsPVwicmVzcG9uc2VVUkxcImluIGM/Yy5yZXNwb25zZVVSTDplLmhlYWRlcnMuZ2V0KFwiWC1SZXF1ZXN0LVVSTFwiKTt2YXIgdD1cInJlc3BvbnNlXCJpbiBjP2MucmVzcG9uc2U6Yy5yZXNwb25zZVRleHQ7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtuKG5ldyBUKHQsZSkpfSksMCl9LGMub25lcnJvcj1mdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aShuZXcgVHlwZUVycm9yKFwiTmV0d29yayByZXF1ZXN0IGZhaWxlZFwiKSl9KSwwKX0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kobmV3IFR5cGVFcnJvcihcIk5ldHdvcmsgcmVxdWVzdCB0aW1lZCBvdXRcIikpfSksMCl9LGMub25hYm9ydD1mdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aShuZXcgdyhcIkFib3J0ZWRcIixcIkFib3J0RXJyb3JcIikpfSksMCl9LGMub3BlbihhLm1ldGhvZCxmdW5jdGlvbihlKXt0cnl7cmV0dXJuXCJcIj09PWUmJnIubG9jYXRpb24uaHJlZj9yLmxvY2F0aW9uLmhyZWY6ZX1jYXRjaCh0KXtyZXR1cm4gZX19KGEudXJsKSwhMCksXCJpbmNsdWRlXCI9PT1hLmNyZWRlbnRpYWxzP2Mud2l0aENyZWRlbnRpYWxzPSEwOlwib21pdFwiPT09YS5jcmVkZW50aWFscyYmKGMud2l0aENyZWRlbnRpYWxzPSExKSxcInJlc3BvbnNlVHlwZVwiaW4gYyYmKG8uYmxvYj9jLnJlc3BvbnNlVHlwZT1cImJsb2JcIjpvLmFycmF5QnVmZmVyJiYoYy5yZXNwb25zZVR5cGU9XCJhcnJheWJ1ZmZlclwiKSksdCYmXCJvYmplY3RcIj09PXR5cGVvZiB0LmhlYWRlcnMmJiEodC5oZWFkZXJzIGluc3RhbmNlb2YgdXx8ci5IZWFkZXJzJiZ0LmhlYWRlcnMgaW5zdGFuY2VvZiByLkhlYWRlcnMpKXt2YXIgcD1bXTtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0LmhlYWRlcnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3AucHVzaChzKGUpKSxjLnNldFJlcXVlc3RIZWFkZXIoZSxsKHQuaGVhZGVyc1tlXSkpfSkpLGEuaGVhZGVycy5mb3JFYWNoKChmdW5jdGlvbihlLHQpey0xPT09cC5pbmRleE9mKHQpJiZjLnNldFJlcXVlc3RIZWFkZXIodCxlKX0pKX1lbHNlIGEuaGVhZGVycy5mb3JFYWNoKChmdW5jdGlvbihlLHQpe2Muc2V0UmVxdWVzdEhlYWRlcih0LGUpfSkpO2Euc2lnbmFsJiYoYS5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsZCksYy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09Yy5yZWFkeVN0YXRlJiZhLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIixkKX0pLGMuc2VuZChcInVuZGVmaW5lZFwiPT09dHlwZW9mIGEuX2JvZHlJbml0P251bGw6YS5fYm9keUluaXQpfSkpfWsucG9seWZpbGw9ITAsci5mZXRjaHx8KHIuZmV0Y2g9ayxyLkhlYWRlcnM9dSxyLlJlcXVlc3Q9eSxyLlJlc3BvbnNlPVQpfSw1MTg5OihlLHQsbik9Pnt2YXIgcj17XCIuL2RhLURLLmpzb25cIjo2NjEsXCIuL2RlLURFLmpzb25cIjo4MzE4LFwiLi9lbC1HUi5qc29uXCI6ODgwNixcIi4vZW4tVVMuanNvblwiOjU0NTgsXCIuL2VzLUVTLmpzb25cIjo5OTU0LFwiLi9lcy1NWC5qc29uXCI6MTQyNyxcIi4vZmktRkkuanNvblwiOjUxMCxcIi4vZnItQ0EuanNvblwiOjEzODUsXCIuL2ZyLUZSLmpzb25cIjoyNyxcIi4vZnIuanNvblwiOjE4MjIsXCIuL2hpLUlOLmpzb25cIjo3NjQ3LFwiLi9oaS5qc29uXCI6ODI3NCxcIi4vaWQtSUQuanNvblwiOjQyODMsXCIuL2lkLmpzb25cIjozODM4LFwiLi9pdC1JVC5qc29uXCI6ODA2NyxcIi4vaXQuanNvblwiOjU3NDQsXCIuL2phLUpQLmpzb25cIjo3ODE1LFwiLi9qYS5qc29uXCI6NTcyMyxcIi4va28tS1IuanNvblwiOjc2NjcsXCIuL2tvLmpzb25cIjozMzU1LFwiLi9uYi1OTy5qc29uXCI6NDAxNCxcIi4vbmIuanNvblwiOjc3MjUsXCIuL25sLU5MLmpzb25cIjo2NDk0LFwiLi9ubC5qc29uXCI6NTQ2NCxcIi4vcGwtUEwuanNvblwiOjI3NjMsXCIuL3BsLmpzb25cIjo1NzI2LFwiLi9wdC1CUi5qc29uXCI6Nzg4LFwiLi9wdC1QVC5qc29uXCI6NjgwLFwiLi9xYS1QUy5qc29uXCI6OTM1MixcIi4vcnUtUlUuanNvblwiOjg3NzQsXCIuL3N2LVNFLmpzb25cIjo4NTA5LFwiLi9zdi5qc29uXCI6ODQwLFwiLi90aC1USC5qc29uXCI6NzQwMyxcIi4vdHItVFIuanNvblwiOjU5NDUsXCIuL3VrLVVBLmpzb25cIjo5NDU0LFwiLi92aS1WTi5qc29uXCI6NDQwNixcIi4vemgtQ04uanNvblwiOjcyNTgsXCIuL3poLVRXLmpzb25cIjo3OTc0fTtmdW5jdGlvbiBvKGUpe3ZhciB0PWkoZSk7cmV0dXJuIG4odCl9ZnVuY3Rpb24gaShlKXtpZighbi5vKHIsZSkpe3ZhciB0PW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrZStcIidcIik7dGhyb3cgdC5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLHR9cmV0dXJuIHJbZV19by5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIpfSxvLnJlc29sdmU9aSxlLmV4cG9ydHM9byxvLmlkPTUxODl9LDQ2NTQ6KCk9Pnt9LDE0MTg6KGUsdCk9Pnt2YXIgbjshZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgcj17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBvKCl7Zm9yKHZhciBlPVwiXCIsdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtuJiYoZT1hKGUsaShuKSkpfXJldHVybiBlfWZ1bmN0aW9uIGkoZSl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBlfHxcIm51bWJlclwiPT09dHlwZW9mIGUpcmV0dXJuIGU7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBlKXJldHVyblwiXCI7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gby5hcHBseShudWxsLGUpO2lmKGUudG9TdHJpbmchPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nJiYhZS50b1N0cmluZy50b1N0cmluZygpLmluY2x1ZGVzKFwiW25hdGl2ZSBjb2RlXVwiKSlyZXR1cm4gZS50b1N0cmluZygpO3ZhciB0PVwiXCI7Zm9yKHZhciBuIGluIGUpci5jYWxsKGUsbikmJmVbbl0mJih0PWEodCxuKSk7cmV0dXJuIHR9ZnVuY3Rpb24gYShlLHQpe3JldHVybiB0P2U/ZStcIiBcIit0OmUrdDplfWUuZXhwb3J0cz8oby5kZWZhdWx0PW8sZS5leHBvcnRzPW8pOnZvaWQgMD09PShuPWZ1bmN0aW9uKCl7cmV0dXJuIG99LmFwcGx5KHQsW10pKXx8KGUuZXhwb3J0cz1uKX0oKX0sNTIzMDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big3MTc2KSxvPW4oNzc5OCksaT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHIoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IGkobyhlKStcIiBpcyBub3QgYSBmdW5jdGlvblwiKX19LDYzNDk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oODA5OSksbz1uKDc3OTgpLGk9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihyKGUpKXJldHVybiBlO3Rocm93IG5ldyBpKG8oZSkrXCIgaXMgbm90IGEgY29uc3RydWN0b3JcIil9fSw1NDUwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY5NDYpLmhhcztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSksZX19LDU5MDk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oODMwNiksbz1TdHJpbmcsaT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHIoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IGkoXCJDYW4ndCBzZXQgXCIrbyhlKStcIiBhcyBhIHByb3RvdHlwZVwiKX19LDY1NDk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNzIzNCkuaGFzO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihlKSxlfX0sOTI5NzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyODk5KSxvPW4oNjI1NyksaT1uKDEzNjkpLmYsYT1yKFwidW5zY29wYWJsZXNcIikscz1BcnJheS5wcm90b3R5cGU7dm9pZCAwPT09c1thXSYmaShzLGEse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpvKG51bGwpfSksZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3NbYV1bZV09ITB9fSw2NzU6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oOTgwMykuY2hhckF0O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHQrKG4/cihlLHQpLmxlbmd0aDoxKX19LDE4OTU6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTExOSksbz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYocih0LGUpKXJldHVybiBlO3Rocm93IG5ldyBvKFwiSW5jb3JyZWN0IGludm9jYXRpb25cIil9fSwyNzg2OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDkwMyksbz1TdHJpbmcsaT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHIoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IGkobyhlKStcIiBpcyBub3QgYW4gb2JqZWN0XCIpfX0sNjE4MjplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIERhdGFWaWV3fSw5MTAyOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcixvLGksYT1uKDYxODIpLHM9big4MzA3KSxsPW4oNTE4NyksYz1uKDcxNzYpLHU9big5MDMpLGQ9big2MjI1KSxwPW4oOTAyNCksZj1uKDc3OTgpLGg9big2OTU4KSxtPW4oODgyNSksZz1uKDk2NzIpLHk9big1MTE5KSx2PW4oMTk1NCksYj1uKDcwMzEpLFQ9bigyODk5KSx4PW4oOTg5Miksdz1uKDY1ODkpLGs9dy5lbmZvcmNlLEU9dy5nZXQsUz1sLkludDhBcnJheSxBPVMmJlMucHJvdG90eXBlLEM9bC5VaW50OENsYW1wZWRBcnJheSxfPUMmJkMucHJvdG90eXBlLEQ9UyYmdihTKSxSPUEmJnYoQSksTz1PYmplY3QucHJvdG90eXBlLFA9bC5UeXBlRXJyb3IsTD1UKFwidG9TdHJpbmdUYWdcIiksTj14KFwiVFlQRURfQVJSQVlfVEFHXCIpLEk9XCJUeXBlZEFycmF5Q29uc3RydWN0b3JcIixqPWEmJiEhYiYmXCJPcGVyYVwiIT09cChsLm9wZXJhKSxCPSExLEg9e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxGPXtCaWdJbnQ2NEFycmF5OjgsQmlnVWludDY0QXJyYXk6OH0sTT1mdW5jdGlvbihlKXt2YXIgdD12KGUpO2lmKHUodCkpe3ZhciBuPUUodCk7cmV0dXJuIG4mJmQobixJKT9uW0ldOk0odCl9fSxHPWZ1bmN0aW9uKGUpe2lmKCF1KGUpKXJldHVybiExO3ZhciB0PXAoZSk7cmV0dXJuIGQoSCx0KXx8ZChGLHQpfTtmb3IociBpbiBIKShpPShvPWxbcl0pJiZvLnByb3RvdHlwZSk/ayhpKVtJXT1vOmo9ITE7Zm9yKHIgaW4gRikoaT0obz1sW3JdKSYmby5wcm90b3R5cGUpJiYoayhpKVtJXT1vKTtpZigoIWp8fCFjKEQpfHxEPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgUChcIkluY29ycmVjdCBpbnZvY2F0aW9uXCIpfSxqKSlmb3IociBpbiBIKWxbcl0mJmIobFtyXSxEKTtpZigoIWp8fCFSfHxSPT09TykmJihSPUQucHJvdG90eXBlLGopKWZvcihyIGluIEgpbFtyXSYmYihsW3JdLnByb3RvdHlwZSxSKTtpZihqJiZ2KF8pIT09UiYmYihfLFIpLHMmJiFkKFIsTCkpZm9yKHIgaW4gQj0hMCxnKFIsTCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1KHRoaXMpP3RoaXNbTl06dm9pZCAwfX0pLEgpbFtyXSYmaChsW3JdLE4scik7ZS5leHBvcnRzPXtOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTOmosVFlQRURfQVJSQVlfVEFHOkImJk4sYVR5cGVkQXJyYXk6ZnVuY3Rpb24oZSl7aWYoRyhlKSlyZXR1cm4gZTt0aHJvdyBuZXcgUChcIlRhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheVwiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbihlKXtpZihjKGUpJiYoIWJ8fHkoRCxlKSkpcmV0dXJuIGU7dGhyb3cgbmV3IFAoZihlKStcIiBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvclwiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbihlLHQsbixyKXtpZihzKXtpZihuKWZvcih2YXIgbyBpbiBIKXt2YXIgaT1sW29dO2lmKGkmJmQoaS5wcm90b3R5cGUsZSkpdHJ5e2RlbGV0ZSBpLnByb3RvdHlwZVtlXX1jYXRjaChhKXt0cnl7aS5wcm90b3R5cGVbZV09dH1jYXRjaChjKXt9fX1SW2VdJiYhbnx8bShSLGUsbj90OmomJkFbZV18fHQscil9fSxleHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvO2lmKHMpe2lmKGIpe2lmKG4pZm9yKHIgaW4gSClpZigobz1sW3JdKSYmZChvLGUpKXRyeXtkZWxldGUgb1tlXX1jYXRjaChpKXt9aWYoRFtlXSYmIW4pcmV0dXJuO3RyeXtyZXR1cm4gbShELGUsbj90OmomJkRbZV18fHQpfWNhdGNoKGkpe319Zm9yKHIgaW4gSCkhKG89bFtyXSl8fG9bZV0mJiFufHxtKG8sZSx0KX19LGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpNLGlzVmlldzpmdW5jdGlvbihlKXtpZighdShlKSlyZXR1cm4hMTt2YXIgdD1wKGUpO3JldHVyblwiRGF0YVZpZXdcIj09PXR8fGQoSCx0KXx8ZChGLHQpfSxpc1R5cGVkQXJyYXk6RyxUeXBlZEFycmF5OkQsVHlwZWRBcnJheVByb3RvdHlwZTpSfX0sMTk5NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MTg3KSxvPW4oMzMyMiksaT1uKDgzMDcpLGE9big2MTgyKSxzPW4oNjQwOCksbD1uKDY5NTgpLGM9big5NjcyKSx1PW4oMTgzNSksZD1uKDI1NDIpLHA9bigxODk1KSxmPW4oMTMwNSksaD1uKDExOTMpLG09big4MTA2KSxnPW4oODI0MCkseT1uKDQ5MDMpLHY9bigxOTU0KSxiPW4oNzAzMSksVD1uKDg1NjgpLHg9big4MDA5KSx3PW4oMzY4Myksaz1uKDM2NzgpLEU9big4MjYzKSxTPW4oNjU4OSksQT1zLlBST1BFUixDPXMuQ09ORklHVVJBQkxFLF89XCJBcnJheUJ1ZmZlclwiLEQ9XCJEYXRhVmlld1wiLFI9XCJwcm90b3R5cGVcIixPPVwiV3JvbmcgaW5kZXhcIixQPVMuZ2V0dGVyRm9yKF8pLEw9Uy5nZXR0ZXJGb3IoRCksTj1TLnNldCxJPXJbX10saj1JLEI9aiYmaltSXSxIPXJbRF0sRj1IJiZIW1JdLE09T2JqZWN0LnByb3RvdHlwZSxHPXIuQXJyYXksVT1yLlJhbmdlRXJyb3Isej1vKFQpLFY9byhbXS5yZXZlcnNlKSxXPXkucGFjayxxPXkudW5wYWNrLEs9ZnVuY3Rpb24oZSl7cmV0dXJuWzI1NSZlXX0sWj1mdW5jdGlvbihlKXtyZXR1cm5bMjU1JmUsZT4+OCYyNTVdfSxZPWZ1bmN0aW9uKGUpe3JldHVyblsyNTUmZSxlPj44JjI1NSxlPj4xNiYyNTUsZT4+MjQmMjU1XX0sJD1mdW5jdGlvbihlKXtyZXR1cm4gZVszXTw8MjR8ZVsyXTw8MTZ8ZVsxXTw8OHxlWzBdfSxYPWZ1bmN0aW9uKGUpe3JldHVybiBXKGcoZSksMjMsNCl9LFE9ZnVuY3Rpb24oZSl7cmV0dXJuIFcoZSw1Miw4KX0sSj1mdW5jdGlvbihlLHQsbil7YyhlW1JdLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzKVt0XX19KX0sZWU9ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89TChlKSxpPW0obiksYT0hIXI7aWYoaSt0Pm8uYnl0ZUxlbmd0aCl0aHJvdyBuZXcgVShPKTt2YXIgcz1vLmJ5dGVzLGw9aStvLmJ5dGVPZmZzZXQsYz14KHMsbCxsK3QpO3JldHVybiBhP2M6VihjKX0sdGU9ZnVuY3Rpb24oZSx0LG4scixvLGkpe3ZhciBhPUwoZSkscz1tKG4pLGw9cigrbyksYz0hIWk7aWYocyt0PmEuYnl0ZUxlbmd0aCl0aHJvdyBuZXcgVShPKTtmb3IodmFyIHU9YS5ieXRlcyxkPXMrYS5ieXRlT2Zmc2V0LHA9MDtwPHQ7cCsrKXVbZCtwXT1sW2M/cDp0LXAtMV19O2lmKGEpe3ZhciBuZT1BJiZJLm5hbWUhPT1fO2QoKGZ1bmN0aW9uKCl7SSgxKX0pKSYmZCgoZnVuY3Rpb24oKXtuZXcgSSgtMSl9KSkmJiFkKChmdW5jdGlvbigpe3JldHVybiBuZXcgSSxuZXcgSSgxLjUpLG5ldyBJKE5hTiksMSE9PUkubGVuZ3RofHxuZSYmIUN9KSk/bmUmJkMmJmwoSSxcIm5hbWVcIixfKTooKGo9ZnVuY3Rpb24oZSl7cmV0dXJuIHAodGhpcyxCKSx3KG5ldyBJKG0oZSkpLHRoaXMsail9KVtSXT1CLEIuY29uc3RydWN0b3I9aixrKGosSSkpLGImJnYoRikhPT1NJiZiKEYsTSk7dmFyIHJlPW5ldyBIKG5ldyBqKDIpKSxvZT1vKEYuc2V0SW50OCk7cmUuc2V0SW50OCgwLDIxNDc0ODM2NDgpLHJlLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhcmUuZ2V0SW50OCgwKSYmcmUuZ2V0SW50OCgxKXx8dShGLHtzZXRJbnQ4OmZ1bmN0aW9uKGUsdCl7b2UodGhpcyxlLHQ8PDI0Pj4yNCl9LHNldFVpbnQ4OmZ1bmN0aW9uKGUsdCl7b2UodGhpcyxlLHQ8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBCPShqPWZ1bmN0aW9uKGUpe3AodGhpcyxCKTt2YXIgdD1tKGUpO04odGhpcyx7dHlwZTpfLGJ5dGVzOnooRyh0KSwwKSxieXRlTGVuZ3RoOnR9KSxpfHwodGhpcy5ieXRlTGVuZ3RoPXQsdGhpcy5kZXRhY2hlZD0hMSl9KVtSXSxGPShIPWZ1bmN0aW9uKGUsdCxuKXtwKHRoaXMsRikscChlLEIpO3ZhciByPVAoZSksbz1yLmJ5dGVMZW5ndGgsYT1mKHQpO2lmKGE8MHx8YT5vKXRocm93IG5ldyBVKFwiV3Jvbmcgb2Zmc2V0XCIpO2lmKGErKG49dm9pZCAwPT09bj9vLWE6aChuKSk+byl0aHJvdyBuZXcgVShcIldyb25nIGxlbmd0aFwiKTtOKHRoaXMse3R5cGU6RCxidWZmZXI6ZSxieXRlTGVuZ3RoOm4sYnl0ZU9mZnNldDphLGJ5dGVzOnIuYnl0ZXN9KSxpfHwodGhpcy5idWZmZXI9ZSx0aGlzLmJ5dGVMZW5ndGg9bix0aGlzLmJ5dGVPZmZzZXQ9YSl9KVtSXSxpJiYoSihqLFwiYnl0ZUxlbmd0aFwiLFApLEooSCxcImJ1ZmZlclwiLEwpLEooSCxcImJ5dGVMZW5ndGhcIixMKSxKKEgsXCJieXRlT2Zmc2V0XCIsTCkpLHUoRix7Z2V0SW50ODpmdW5jdGlvbihlKXtyZXR1cm4gZWUodGhpcywxLGUpWzBdPDwyND4+MjR9LGdldFVpbnQ4OmZ1bmN0aW9uKGUpe3JldHVybiBlZSh0aGlzLDEsZSlbMF19LGdldEludDE2OmZ1bmN0aW9uKGUpe3ZhciB0PWVlKHRoaXMsMixlLGFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdKTtyZXR1cm4odFsxXTw8OHx0WzBdKTw8MTY+PjE2fSxnZXRVaW50MTY6ZnVuY3Rpb24oZSl7dmFyIHQ9ZWUodGhpcywyLGUsYXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0pO3JldHVybiB0WzFdPDw4fHRbMF19LGdldEludDMyOmZ1bmN0aW9uKGUpe3JldHVybiAkKGVlKHRoaXMsNCxlLGFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdKSl9LGdldFVpbnQzMjpmdW5jdGlvbihlKXtyZXR1cm4gJChlZSh0aGlzLDQsZSxhcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihlKXtyZXR1cm4gcShlZSh0aGlzLDQsZSxhcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSksMjMpfSxnZXRGbG9hdDY0OmZ1bmN0aW9uKGUpe3JldHVybiBxKGVlKHRoaXMsOCxlLGFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdKSw1Mil9LHNldEludDg6ZnVuY3Rpb24oZSx0KXt0ZSh0aGlzLDEsZSxLLHQpfSxzZXRVaW50ODpmdW5jdGlvbihlLHQpe3RlKHRoaXMsMSxlLEssdCl9LHNldEludDE2OmZ1bmN0aW9uKGUsdCl7dGUodGhpcywyLGUsWix0LGFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdKX0sc2V0VWludDE2OmZ1bmN0aW9uKGUsdCl7dGUodGhpcywyLGUsWix0LGFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdKX0sc2V0SW50MzI6ZnVuY3Rpb24oZSx0KXt0ZSh0aGlzLDQsZSxZLHQsYXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0pfSxzZXRVaW50MzI6ZnVuY3Rpb24oZSx0KXt0ZSh0aGlzLDQsZSxZLHQsYXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0pfSxzZXRGbG9hdDMyOmZ1bmN0aW9uKGUsdCl7dGUodGhpcyw0LGUsWCx0LGFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihlLHQpe3RlKHRoaXMsOCxlLFEsdCxhcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSl9fSk7RShqLF8pLEUoSCxEKSxlLmV4cG9ydHM9e0FycmF5QnVmZmVyOmosRGF0YVZpZXc6SH19LDg1Njg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNDY1Niksbz1uKDM3NDIpLGk9bigxMjE0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXIodGhpcyksbj1pKHQpLGE9YXJndW1lbnRzLmxlbmd0aCxzPW8oYT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbiksbD1hPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxjPXZvaWQgMD09PWw/bjpvKGwsbik7Yz5zOyl0W3MrK109ZTtyZXR1cm4gdH19LDgyMDk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTIxNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIG89MCxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9uOnIodCksYT1uZXcgZShpKTtpPm87KWFbb109dFtvKytdO3JldHVybiBhfX0sMjkzODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigxNzkxKSxvPW4oMzAxMSksaT1uKDQ2NTYpLGE9big0NTgxKSxzPW4oMTk0NyksbD1uKDgwOTkpLGM9bigxMjE0KSx1PW4oNjYzMyksZD1uKDE0OSkscD1uKDI0MSksZj1BcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9aShlKSxuPWwodGhpcyksaD1hcmd1bWVudHMubGVuZ3RoLG09aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsZz12b2lkIDAhPT1tO2cmJihtPXIobSxoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCkpO3ZhciB5LHYsYixULHgsdyxrPXAodCksRT0wO2lmKCFrfHx0aGlzPT09ZiYmcyhrKSlmb3IoeT1jKHQpLHY9bj9uZXcgdGhpcyh5KTpmKHkpO3k+RTtFKyspdz1nP20odFtFXSxFKTp0W0VdLHUodixFLHcpO2Vsc2UgZm9yKHg9KFQ9ZCh0LGspKS5uZXh0LHY9bj9uZXcgdGhpczpbXTshKGI9byh4LFQpKS5kb25lO0UrKyl3PWc/YShULG0sW2IudmFsdWUsRV0sITApOmIudmFsdWUsdSh2LEUsdyk7cmV0dXJuIHYubGVuZ3RoPUUsdn19LDIyNjU6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNDk1OCksbz1uKDM3NDIpLGk9bigxMjE0KSxhPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4sYSl7dmFyIHMsbD1yKHQpLGM9aShsKSx1PW8oYSxjKTtpZihlJiZuIT09bil7Zm9yKDtjPnU7KWlmKChzPWxbdSsrXSkhPT1zKXJldHVybiEwfWVsc2UgZm9yKDtjPnU7dSsrKWlmKChlfHx1IGluIGwpJiZsW3VdPT09bilyZXR1cm4gZXx8dXx8MDtyZXR1cm4hZSYmLTF9fTtlLmV4cG9ydHM9e2luY2x1ZGVzOmEoITApLGluZGV4T2Y6YSghMSl9fSw4Njc5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDE3OTEpLG89bigzMzIyKSxpPW4oNTU2NCksYT1uKDQ2NTYpLHM9bigxMjE0KSxsPW4oNDQxMSksYz1vKFtdLnB1c2gpLHU9ZnVuY3Rpb24oZSl7dmFyIHQ9MT09PWUsbj0yPT09ZSxvPTM9PT1lLHU9ND09PWUsZD02PT09ZSxwPTc9PT1lLGY9NT09PWV8fGQ7cmV0dXJuIGZ1bmN0aW9uKGgsbSxnLHkpe2Zvcih2YXIgdixiLFQ9YShoKSx4PWkoVCksdz1zKHgpLGs9cihtLGcpLEU9MCxTPXl8fGwsQT10P1MoaCx3KTpufHxwP1MoaCwwKTp2b2lkIDA7dz5FO0UrKylpZigoZnx8RSBpbiB4KSYmKGI9ayh2PXhbRV0sRSxUKSxlKSlpZih0KUFbRV09YjtlbHNlIGlmKGIpc3dpdGNoKGUpe2Nhc2UgMzpyZXR1cm4hMDtjYXNlIDU6cmV0dXJuIHY7Y2FzZSA2OnJldHVybiBFO2Nhc2UgMjpjKEEsdil9ZWxzZSBzd2l0Y2goZSl7Y2FzZSA0OnJldHVybiExO2Nhc2UgNzpjKEEsdil9cmV0dXJuIGQ/LTE6b3x8dT91OkF9fTtlLmV4cG9ydHM9e2ZvckVhY2g6dSgwKSxtYXA6dSgxKSxmaWx0ZXI6dSgyKSxzb21lOnUoMyksZXZlcnk6dSg0KSxmaW5kOnUoNSksZmluZEluZGV4OnUoNiksZmlsdGVyUmVqZWN0OnUoNyl9fSw4MDA5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpO2UuZXhwb3J0cz1yKFtdLnNsaWNlKX0sODg1MjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MDA5KSxvPU1hdGguZmxvb3IsaT1mdW5jdGlvbihlLHQpe3ZhciBuPWUubGVuZ3RoO2lmKG48OClmb3IodmFyIGEscyxsPTE7bDxuOyl7Zm9yKHM9bCxhPWVbbF07cyYmdChlW3MtMV0sYSk+MDspZVtzXT1lWy0tc107cyE9PWwrKyYmKGVbc109YSl9ZWxzZSBmb3IodmFyIGM9byhuLzIpLHU9aShyKGUsMCxjKSx0KSxkPWkocihlLGMpLHQpLHA9dS5sZW5ndGgsZj1kLmxlbmd0aCxoPTAsbT0wO2g8cHx8bTxmOyllW2grbV09aDxwJiZtPGY/dCh1W2hdLGRbbV0pPD0wP3VbaCsrXTpkW20rK106aDxwP3VbaCsrXTpkW20rK107cmV0dXJuIGV9O2UuZXhwb3J0cz1pfSw5NTQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTk3Niksbz1uKDgwOTkpLGk9big5MDMpLGE9bigyODk5KShcInNwZWNpZXNcIikscz1BcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHIoZSkmJih0PWUuY29uc3RydWN0b3IsKG8odCkmJih0PT09c3x8cih0LnByb3RvdHlwZSkpfHxpKHQpJiZudWxsPT09KHQ9dFthXSkpJiYodD12b2lkIDApKSx2b2lkIDA9PT10P3M6dH19LDQ0MTE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oOTU0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3KHIoZSkpKDA9PT10PzA6dCl9fSw0NTgxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI3ODYpLG89big3MTk1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4saSl7dHJ5e3JldHVybiBpP3QocihuKVswXSxuWzFdKTp0KG4pfWNhdGNoKGEpe28oZSxcInRocm93XCIsYSl9fX0sNzkzMzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyODk5KShcIml0ZXJhdG9yXCIpLG89ITE7dHJ5e3ZhciBpPTAsYT17bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEhaSsrfX0scmV0dXJuOmZ1bmN0aW9uKCl7bz0hMH19O2Fbcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShhLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2gocyl7fWUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3RyeXtpZighdCYmIW8pcmV0dXJuITF9Y2F0Y2gocyl7cmV0dXJuITF9dmFyIG49ITE7dHJ5e3ZhciBpPXt9O2lbcl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOm49ITB9fX19LGUoaSl9Y2F0Y2gocyl7fXJldHVybiBufX0sMzMxODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMzIyKSxvPXIoe30udG9TdHJpbmcpLGk9cihcIlwiLnNsaWNlKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGkobyhlKSw4LC0xKX19LDkwMjQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oODQ2OCksbz1uKDcxNzYpLGk9bigzMzE4KSxhPW4oMjg5OSkoXCJ0b1N0cmluZ1RhZ1wiKSxzPU9iamVjdCxsPVwiQXJndW1lbnRzXCI9PT1pKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7ZS5leHBvcnRzPXI/aTpmdW5jdGlvbihlKXt2YXIgdCxuLHI7cmV0dXJuIHZvaWQgMD09PWU/XCJVbmRlZmluZWRcIjpudWxsPT09ZT9cIk51bGxcIjpcInN0cmluZ1wiPT10eXBlb2Yobj1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZVt0XX1jYXRjaChuKXt9fSh0PXMoZSksYSkpP246bD9pKHQpOlwiT2JqZWN0XCI9PT0ocj1pKHQpKSYmbyh0LmNhbGxlZSk/XCJBcmd1bWVudHNcIjpyfX0sMjQyMDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigxNzkxKSxvPW4oMjc4NiksaT1uKDQ2NTYpLGE9bigxMDI1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmdW5jdGlvbihzKXt2YXIgbD1pKHMpLGM9YXJndW1lbnRzLmxlbmd0aCx1PWM+MT9hcmd1bWVudHNbMV06dm9pZCAwLGQ9dm9pZCAwIT09dSxwPWQ/cih1LGM+Mj9hcmd1bWVudHNbMl06dm9pZCAwKTp2b2lkIDAsZj1uZXcgZSxoPTA7cmV0dXJuIGEobCwoZnVuY3Rpb24oZSl7dmFyIHI9ZD9wKGUsaCsrKTplO24/dChmLG8ocilbMF0sclsxXSk6dChmLHIpfSkpLGZ9fX0sODE5NzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyNzg2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbz1uZXcgZSxpPWFyZ3VtZW50cy5sZW5ndGgsYT0wO2E8aTthKyspe3ZhciBzPWFyZ3VtZW50c1thXTtuP3QobyxyKHMpWzBdLHNbMV0pOnQobyxzKX1yZXR1cm4gb319fSwzNjc4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDYyMjUpLG89bigyODc2KSxpPW4oMzcxOCksYT1uKDEzNjkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciBzPW8odCksbD1hLmYsYz1pLmYsdT0wO3U8cy5sZW5ndGg7dSsrKXt2YXIgZD1zW3VdO3IoZSxkKXx8biYmcihuLGQpfHxsKGUsZCxjKHQsZCkpfX19LDk5OTI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjU0Mik7ZS5leHBvcnRzPSFyKChmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBlKSE9PWUucHJvdG90eXBlfSkpfSw1OTUzOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm57dmFsdWU6ZSxkb25lOnR9fX0sNjk1ODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MzA3KSxvPW4oMTM2OSksaT1uKDgzNyk7ZS5leHBvcnRzPXI/ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBvLmYoZSx0LGkoMSxuKSl9OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVt0XT1uLGV9fSw4Mzc6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybntlbnVtZXJhYmxlOiEoMSZlKSxjb25maWd1cmFibGU6ISgyJmUpLHdyaXRhYmxlOiEoNCZlKSx2YWx1ZTp0fX19LDY2MzM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTY2NSksbz1uKDEzNjkpLGk9big4MzcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGE9cih0KTthIGluIGU/by5mKGUsYSxpKDAsbikpOmVbYV09bn19LDk2NzI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTg5OSksbz1uKDEzNjkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4uZ2V0JiZyKG4uZ2V0LHQse2dldHRlcjohMH0pLG4uc2V0JiZyKG4uc2V0LHQse3NldHRlcjohMH0pLG8uZihlLHQsbil9fSw4ODI1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDcxNzYpLG89bigxMzY5KSxpPW4oMTg5OSksYT1uKDY0NzgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixzKXtzfHwocz17fSk7dmFyIGw9cy5lbnVtZXJhYmxlLGM9dm9pZCAwIT09cy5uYW1lP3MubmFtZTp0O2lmKHIobikmJmkobixjLHMpLHMuZ2xvYmFsKWw/ZVt0XT1uOmEodCxuKTtlbHNle3RyeXtzLnVuc2FmZT9lW3RdJiYobD0hMCk6ZGVsZXRlIGVbdF19Y2F0Y2godSl7fWw/ZVt0XT1uOm8uZihlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IXMubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFzLm5vbldyaXRhYmxlfSl9cmV0dXJuIGV9fSwxODM1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDg4MjUpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciBvIGluIHQpcihlLG8sdFtvXSxuKTtyZXR1cm4gZX19LDY0Nzg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTE4Nyksbz1PYmplY3QuZGVmaW5lUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHJ5e28ocixlLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKG4pe3JbZV09dH1yZXR1cm4gdH19LDgzMDc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjU0Mik7ZS5leHBvcnRzPSFyKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw2MTk3OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxODcpLG89big5MDMpLGk9ci5kb2N1bWVudCxhPW8oaSkmJm8oaS5jcmVhdGVFbGVtZW50KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGE/aS5jcmVhdGVFbGVtZW50KGUpOnt9fX0sOTUyOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9e0NTU1J1bGVMaXN0OjAsQ1NTU3R5bGVEZWNsYXJhdGlvbjowLENTU1ZhbHVlTGlzdDowLENsaWVudFJlY3RMaXN0OjAsRE9NUmVjdExpc3Q6MCxET01TdHJpbmdMaXN0OjAsRE9NVG9rZW5MaXN0OjEsRGF0YVRyYW5zZmVySXRlbUxpc3Q6MCxGaWxlTGlzdDowLEhUTUxBbGxDb2xsZWN0aW9uOjAsSFRNTENvbGxlY3Rpb246MCxIVE1MRm9ybUVsZW1lbnQ6MCxIVE1MU2VsZWN0RWxlbWVudDowLE1lZGlhTGlzdDowLE1pbWVUeXBlQXJyYXk6MCxOYW1lZE5vZGVNYXA6MCxOb2RlTGlzdDoxLFBhaW50UmVxdWVzdExpc3Q6MCxQbHVnaW46MCxQbHVnaW5BcnJheTowLFNWR0xlbmd0aExpc3Q6MCxTVkdOdW1iZXJMaXN0OjAsU1ZHUGF0aFNlZ0xpc3Q6MCxTVkdQb2ludExpc3Q6MCxTVkdTdHJpbmdMaXN0OjAsU1ZHVHJhbnNmb3JtTGlzdDowLFNvdXJjZUJ1ZmZlckxpc3Q6MCxTdHlsZVNoZWV0TGlzdDowLFRleHRUcmFja0N1ZUxpc3Q6MCxUZXh0VHJhY2tMaXN0OjAsVG91Y2hMaXN0OjB9fSw1NDE1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDYxOTcpKFwic3BhblwiKS5jbGFzc0xpc3Qsbz1yJiZyLmNvbnN0cnVjdG9yJiZyLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtlLmV4cG9ydHM9bz09PU9iamVjdC5wcm90b3R5cGU/dm9pZCAwOm99LDE2MDc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMzcyNykubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvaSk7ZS5leHBvcnRzPSEhciYmK3JbMV19LDEyMzg6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBCdW4mJkJ1biYmXCJzdHJpbmdcIj09dHlwZW9mIEJ1bi52ZXJzaW9ufSw3NDQwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDM3MjcpO2UuZXhwb3J0cz0vTVNJRXxUcmlkZW50Ly50ZXN0KHIpfSw5MzI4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDM3MjcpO2UuZXhwb3J0cz0vKD86aXBhZHxpcGhvbmV8aXBvZCkuKmFwcGxld2Via2l0L2kudGVzdChyKX0sNzM5NDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MTg3KSxvPW4oMzMxOCk7ZS5leHBvcnRzPVwicHJvY2Vzc1wiPT09byhyLnByb2Nlc3MpfSwzNzI3OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG5hdmlnYXRvciYmU3RyaW5nKG5hdmlnYXRvci51c2VyQWdlbnQpfHxcIlwifSwxOTkxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcixvLGk9big1MTg3KSxhPW4oMzcyNykscz1pLnByb2Nlc3MsbD1pLkRlbm8sYz1zJiZzLnZlcnNpb25zfHxsJiZsLnZlcnNpb24sdT1jJiZjLnY4O3UmJihvPShyPXUuc3BsaXQoXCIuXCIpKVswXT4wJiZyWzBdPDQ/MTorKHJbMF0rclsxXSkpLCFvJiZhJiYoIShyPWEubWF0Y2goL0VkZ2VcXC8oXFxkKykvKSl8fHJbMV0+PTc0KSYmKHI9YS5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLykpJiYobz0rclsxXSksZS5leHBvcnRzPW99LDgzNTM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMzcyNykubWF0Y2goL0FwcGxlV2ViS2l0XFwvKFxcZCspXFwuLyk7ZS5leHBvcnRzPSEhciYmK3JbMV19LDg1ODc6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1bXCJjb25zdHJ1Y3RvclwiLFwiaGFzT3duUHJvcGVydHlcIixcImlzUHJvdG90eXBlT2ZcIixcInByb3BlcnR5SXNFbnVtZXJhYmxlXCIsXCJ0b0xvY2FsZVN0cmluZ1wiLFwidG9TdHJpbmdcIixcInZhbHVlT2ZcIl19LDUzNjk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTE4Nyksbz1uKDM3MTgpLmYsaT1uKDY5NTgpLGE9big4ODI1KSxzPW4oNjQ3OCksbD1uKDM2NzgpLGM9bigxMTAzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbix1LGQscCxmLGg9ZS50YXJnZXQsbT1lLmdsb2JhbCxnPWUuc3RhdDtpZihuPW0/cjpnP3JbaF18fHMoaCx7fSk6KHJbaF18fHt9KS5wcm90b3R5cGUpZm9yKHUgaW4gdCl7aWYocD10W3VdLGQ9ZS5kb250Q2FsbEdldFNldD8oZj1vKG4sdSkpJiZmLnZhbHVlOm5bdV0sIWMobT91OmgrKGc/XCIuXCI6XCIjXCIpK3UsZS5mb3JjZWQpJiZ2b2lkIDAhPT1kKXtpZih0eXBlb2YgcD09dHlwZW9mIGQpY29udGludWU7bChwLGQpfShlLnNoYW18fGQmJmQuc2hhbSkmJmkocCxcInNoYW1cIiwhMCksYShuLHUscCxlKX19fSwyNTQyOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiEhZSgpfWNhdGNoKHQpe3JldHVybiEwfX19LDYyOTY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24oNTcwMSk7dmFyIHI9big1NzA1KSxvPW4oODgyNSksaT1uKDE2OTEpLGE9bigyNTQyKSxzPW4oMjg5OSksbD1uKDY5NTgpLGM9cyhcInNwZWNpZXNcIiksdT1SZWdFeHAucHJvdG90eXBlO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixkKXt2YXIgcD1zKGUpLGY9IWEoKGZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRbcF09ZnVuY3Rpb24oKXtyZXR1cm4gN30sNyE9PVwiXCJbZV0odCl9KSksaD1mJiYhYSgoZnVuY3Rpb24oKXt2YXIgdD0hMSxuPS9hLztyZXR1cm5cInNwbGl0XCI9PT1lJiYoKG49e30pLmNvbnN0cnVjdG9yPXt9LG4uY29uc3RydWN0b3JbY109ZnVuY3Rpb24oKXtyZXR1cm4gbn0sbi5mbGFncz1cIlwiLG5bcF09Ly4vW3BdKSxuLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gdD0hMCxudWxsfSxuW3BdKFwiXCIpLCF0fSkpO2lmKCFmfHwhaHx8bil7dmFyIG09cigvLi9bcF0pLGc9dChwLFwiXCJbZV0sKGZ1bmN0aW9uKGUsdCxuLG8sYSl7dmFyIHM9cihlKSxsPXQuZXhlYztyZXR1cm4gbD09PWl8fGw9PT11LmV4ZWM/ZiYmIWE/e2RvbmU6ITAsdmFsdWU6bSh0LG4sbyl9Ontkb25lOiEwLHZhbHVlOnMobix0LG8pfTp7ZG9uZTohMX19KSk7byhTdHJpbmcucHJvdG90eXBlLGUsZ1swXSksbyh1LHAsZ1sxXSl9ZCYmbCh1W3BdLFwic2hhbVwiLCEwKX19LDUwNDI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjA4NSksbz1GdW5jdGlvbi5wcm90b3R5cGUsaT1vLmFwcGx5LGE9by5jYWxsO2UuZXhwb3J0cz1cIm9iamVjdFwiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5hcHBseXx8KHI/YS5iaW5kKGkpOmZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoaSxhcmd1bWVudHMpfSl9LDE3OTE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTcwNSksbz1uKDUyMzApLGk9bigyMDg1KSxhPXIoci5iaW5kKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyhlKSx2b2lkIDA9PT10P2U6aT9hKGUsdCk6ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fX0sMjA4NTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyNTQyKTtlLmV4cG9ydHM9IXIoKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiBlfHxlLmhhc093blByb3BlcnR5KFwicHJvdG90eXBlXCIpfSkpfSwzMDExOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDIwODUpLG89RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7ZS5leHBvcnRzPXI/by5iaW5kKG8pOmZ1bmN0aW9uKCl7cmV0dXJuIG8uYXBwbHkobyxhcmd1bWVudHMpfX0sNjQwODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MzA3KSxvPW4oNjIyNSksaT1GdW5jdGlvbi5wcm90b3R5cGUsYT1yJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHM9byhpLFwibmFtZVwiKSxsPXMmJlwic29tZXRoaW5nXCI9PT1mdW5jdGlvbigpe30ubmFtZSxjPXMmJighcnx8ciYmYShpLFwibmFtZVwiKS5jb25maWd1cmFibGUpO2UuZXhwb3J0cz17RVhJU1RTOnMsUFJPUEVSOmwsQ09ORklHVVJBQkxFOmN9fSw1MTczOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpLG89big1MjMwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3RyeXtyZXR1cm4gcihvKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KVtuXSkpfWNhdGNoKGkpe319fSw1NzA1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMTgpLG89bigzMzIyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoXCJGdW5jdGlvblwiPT09cihlKSlyZXR1cm4gbyhlKX19LDMzMjI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjA4NSksbz1GdW5jdGlvbi5wcm90b3R5cGUsaT1vLmNhbGwsYT1yJiZvLmJpbmQuYmluZChpLGkpO2UuZXhwb3J0cz1yP2E6ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkoZSxhcmd1bWVudHMpfX19LDc4MDg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTE4Nyksbz1uKDcxNzYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/KG49cltlXSxvKG4pP246dm9pZCAwKTpyW2VdJiZyW2VdW3RdO3ZhciBufX0sMzM4NjplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybntpdGVyYXRvcjplLG5leHQ6ZS5uZXh0LGRvbmU6ITF9fX0sMjQxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDkwMjQpLG89big1Mzc3KSxpPW4oNDEzNSksYT1uKDE5NTMpLHM9bigyODk5KShcIml0ZXJhdG9yXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZighaShlKSlyZXR1cm4gbyhlLHMpfHxvKGUsXCJAQGl0ZXJhdG9yXCIpfHxhW3IoZSldfX0sMTQ5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMwMTEpLG89big1MjMwKSxpPW4oMjc4NiksYT1uKDc3OTgpLHM9bigyNDEpLGw9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg8Mj9zKGUpOnQ7aWYobyhuKSlyZXR1cm4gaShyKG4sZSkpO3Rocm93IG5ldyBsKGEoZSkrXCIgaXMgbm90IGl0ZXJhYmxlXCIpfX0sNTM3NzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MjMwKSxvPW4oNDEzNSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZVt0XTtyZXR1cm4gbyhuKT92b2lkIDA6cihuKX19LDM2MDU6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTIzMCksbz1uKDI3ODYpLGk9bigzMDExKSxhPW4oMTMwNSkscz1uKDMzODYpLGw9XCJJbnZhbGlkIHNpemVcIixjPVJhbmdlRXJyb3IsdT1UeXBlRXJyb3IsZD1NYXRoLm1heCxwPWZ1bmN0aW9uKGUsdCl7dGhpcy5zZXQ9ZSx0aGlzLnNpemU9ZCh0LDApLHRoaXMuaGFzPXIoZS5oYXMpLHRoaXMua2V5cz1yKGUua2V5cyl9O3AucHJvdG90eXBlPXtnZXRJdGVyYXRvcjpmdW5jdGlvbigpe3JldHVybiBzKG8oaSh0aGlzLmtleXMsdGhpcy5zZXQpKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMuaGFzLHRoaXMuc2V0LGUpfX0sZS5leHBvcnRzPWZ1bmN0aW9uKGUpe28oZSk7dmFyIHQ9K2Uuc2l6ZTtpZih0IT09dCl0aHJvdyBuZXcgdShsKTt2YXIgbj1hKHQpO2lmKG48MCl0aHJvdyBuZXcgYyhsKTtyZXR1cm4gbmV3IHAoZSxuKX19LDMxNjg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMzMyMiksbz1uKDQ2NTYpLGk9TWF0aC5mbG9vcixhPXIoXCJcIi5jaGFyQXQpLHM9cihcIlwiLnJlcGxhY2UpLGw9cihcIlwiLnNsaWNlKSxjPS9cXCQoWyQmJ2BdfFxcZHsxLDJ9fDxbXj5dKj4pL2csdT0vXFwkKFskJidgXXxcXGR7MSwyfSkvZztlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4scixkLHApe3ZhciBmPW4rZS5sZW5ndGgsaD1yLmxlbmd0aCxtPXU7cmV0dXJuIHZvaWQgMCE9PWQmJihkPW8oZCksbT1jKSxzKHAsbSwoZnVuY3Rpb24obyxzKXt2YXIgYztzd2l0Y2goYShzLDApKXtjYXNlXCIkXCI6cmV0dXJuXCIkXCI7Y2FzZVwiJlwiOnJldHVybiBlO2Nhc2VcImBcIjpyZXR1cm4gbCh0LDAsbik7Y2FzZVwiJ1wiOnJldHVybiBsKHQsZik7Y2FzZVwiPFwiOmM9ZFtsKHMsMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIHU9K3M7aWYoMD09PXUpcmV0dXJuIG87aWYodT5oKXt2YXIgcD1pKHUvMTApO3JldHVybiAwPT09cD9vOnA8PWg/dm9pZCAwPT09cltwLTFdP2EocywxKTpyW3AtMV0rYShzLDEpOm99Yz1yW3UtMV19cmV0dXJuIHZvaWQgMD09PWM/XCJcIjpjfSkpfX0sNTE4NzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuTWF0aD09PU1hdGgmJmV9O2UuZXhwb3J0cz1yKFwib2JqZWN0XCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8cihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxyKFwib2JqZWN0XCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8cihcIm9iamVjdFwiPT10eXBlb2Ygbi5nJiZuLmcpfHxyKFwib2JqZWN0XCI9PXR5cGVvZiB0aGlzJiZ0aGlzKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpfSw2MjI1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpLG89big0NjU2KSxpPXIoe30uaGFzT3duUHJvcGVydHkpO2UuZXhwb3J0cz1PYmplY3QuaGFzT3dufHxmdW5jdGlvbihlLHQpe3JldHVybiBpKG8oZSksdCl9fSw2NjkwOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9e319LDU3Njc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNzgwOCk7ZS5leHBvcnRzPXIoXCJkb2N1bWVudFwiLFwiZG9jdW1lbnRFbGVtZW50XCIpfSw0NTcwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDgzMDcpLG89bigyNTQyKSxpPW4oNjE5Nyk7ZS5leHBvcnRzPSFyJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShpKFwiZGl2XCIpLFwiYVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpfSw0OTAzOmU9PntcInVzZSBzdHJpY3RcIjt2YXIgdD1BcnJheSxuPU1hdGguYWJzLHI9TWF0aC5wb3csbz1NYXRoLmZsb29yLGk9TWF0aC5sb2csYT1NYXRoLkxOMjtlLmV4cG9ydHM9e3BhY2s6ZnVuY3Rpb24oZSxzLGwpe3ZhciBjLHUsZCxwPXQobCksZj04Kmwtcy0xLGg9KDE8PGYpLTEsbT1oPj4xLGc9MjM9PT1zP3IoMiwtMjQpLXIoMiwtNzcpOjAseT1lPDB8fDA9PT1lJiYxL2U8MD8xOjAsdj0wO2ZvcigoZT1uKGUpKSE9PWV8fGU9PT0xLzA/KHU9ZSE9PWU/MTowLGM9aCk6KGM9byhpKGUpL2EpLGUqKGQ9cigyLC1jKSk8MSYmKGMtLSxkKj0yKSwoZSs9YyttPj0xP2cvZDpnKnIoMiwxLW0pKSpkPj0yJiYoYysrLGQvPTIpLGMrbT49aD8odT0wLGM9aCk6YyttPj0xPyh1PShlKmQtMSkqcigyLHMpLGMrPW0pOih1PWUqcigyLG0tMSkqcigyLHMpLGM9MCkpO3M+PTg7KXBbdisrXT0yNTUmdSx1Lz0yNTYscy09ODtmb3IoYz1jPDxzfHUsZis9cztmPjA7KXBbdisrXT0yNTUmYyxjLz0yNTYsZi09ODtyZXR1cm4gcFstLXZdfD0xMjgqeSxwfSx1bnBhY2s6ZnVuY3Rpb24oZSx0KXt2YXIgbixvPWUubGVuZ3RoLGk9OCpvLXQtMSxhPSgxPDxpKS0xLHM9YT4+MSxsPWktNyxjPW8tMSx1PWVbYy0tXSxkPTEyNyZ1O2Zvcih1Pj49NztsPjA7KWQ9MjU2KmQrZVtjLS1dLGwtPTg7Zm9yKG49ZCYoMTw8LWwpLTEsZD4+PS1sLGwrPXQ7bD4wOyluPTI1NipuK2VbYy0tXSxsLT04O2lmKDA9PT1kKWQ9MS1zO2Vsc2V7aWYoZD09PWEpcmV0dXJuIG4/TmFOOnU/LTEvMDoxLzA7bis9cigyLHQpLGQtPXN9cmV0dXJuKHU/LTE6MSkqbipyKDIsZC10KX19fSw1NTY0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpLG89bigyNTQyKSxpPW4oMzMxOCksYT1PYmplY3Qscz1yKFwiXCIuc3BsaXQpO2UuZXhwb3J0cz1vKChmdW5jdGlvbigpe3JldHVybiFhKFwielwiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihlKXtyZXR1cm5cIlN0cmluZ1wiPT09aShlKT9zKGUsXCJcIik6YShlKX06YX0sMzY4MzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big3MTc2KSxvPW4oOTAzKSxpPW4oNzAzMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgYSxzO3JldHVybiBpJiZyKGE9dC5jb25zdHJ1Y3RvcikmJmEhPT1uJiZvKHM9YS5wcm90b3R5cGUpJiZzIT09bi5wcm90b3R5cGUmJmkoZSxzKSxlfX0sNjUzMDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMzIyKSxvPW4oNzE3NiksaT1uKDI4NzkpLGE9cihGdW5jdGlvbi50b1N0cmluZyk7byhpLmluc3BlY3RTb3VyY2UpfHwoaS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhKGUpfSksZS5leHBvcnRzPWkuaW5zcGVjdFNvdXJjZX0sNjU4OTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbyxpLGE9big2NTE5KSxzPW4oNTE4NyksbD1uKDkwMyksYz1uKDY5NTgpLHU9big2MjI1KSxkPW4oMjg3OSkscD1uKDE4NjgpLGY9big2NjkwKSxoPVwiT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWRcIixtPXMuVHlwZUVycm9yLGc9cy5XZWFrTWFwO2lmKGF8fGQuc3RhdGUpe3ZhciB5PWQuc3RhdGV8fChkLnN0YXRlPW5ldyBnKTt5LmdldD15LmdldCx5Lmhhcz15Lmhhcyx5LnNldD15LnNldCxyPWZ1bmN0aW9uKGUsdCl7aWYoeS5oYXMoZSkpdGhyb3cgbmV3IG0oaCk7cmV0dXJuIHQuZmFjYWRlPWUseS5zZXQoZSx0KSx0fSxvPWZ1bmN0aW9uKGUpe3JldHVybiB5LmdldChlKXx8e319LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIHkuaGFzKGUpfX1lbHNle3ZhciB2PXAoXCJzdGF0ZVwiKTtmW3ZdPSEwLHI9ZnVuY3Rpb24oZSx0KXtpZih1KGUsdikpdGhyb3cgbmV3IG0oaCk7cmV0dXJuIHQuZmFjYWRlPWUsYyhlLHYsdCksdH0sbz1mdW5jdGlvbihlKXtyZXR1cm4gdShlLHYpP2Vbdl06e319LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSx2KX19ZS5leHBvcnRzPXtzZXQ6cixnZXQ6byxoYXM6aSxlbmZvcmNlOmZ1bmN0aW9uKGUpe3JldHVybiBpKGUpP28oZSk6cihlLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbjtpZighbCh0KXx8KG49byh0KSkudHlwZSE9PWUpdGhyb3cgbmV3IG0oXCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsIFwiK2UrXCIgcmVxdWlyZWRcIik7cmV0dXJuIG59fX19LDE5NDc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjg5OSksbz1uKDE5NTMpLGk9cihcIml0ZXJhdG9yXCIpLGE9QXJyYXkucHJvdG90eXBlO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09ZSYmKG8uQXJyYXk9PT1lfHxhW2ldPT09ZSl9fSwxOTc2OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMTgpO2UuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm5cIkFycmF5XCI9PT1yKGUpfX0sMzE2MDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big5MDI0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9cihlKTtyZXR1cm5cIkJpZ0ludDY0QXJyYXlcIj09PXR8fFwiQmlnVWludDY0QXJyYXlcIj09PXR9fSw3MTc2OmU9PntcInVzZSBzdHJpY3RcIjt2YXIgdD1cIm9iamVjdFwiPT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmFsbDtlLmV4cG9ydHM9XCJ1bmRlZmluZWRcIj09dHlwZW9mIHQmJnZvaWQgMCE9PXQ/ZnVuY3Rpb24oZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZXx8ZT09PXR9OmZ1bmN0aW9uKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGV9fSw4MDk5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpLG89bigyNTQyKSxpPW4oNzE3NiksYT1uKDkwMjQpLHM9big3ODA4KSxsPW4oNjUzMCksYz1mdW5jdGlvbigpe30sdT1bXSxkPXMoXCJSZWZsZWN0XCIsXCJjb25zdHJ1Y3RcIikscD0vXlxccyooPzpjbGFzc3xmdW5jdGlvbilcXGIvLGY9cihwLmV4ZWMpLGg9IXAudGVzdChjKSxtPWZ1bmN0aW9uKGUpe2lmKCFpKGUpKXJldHVybiExO3RyeXtyZXR1cm4gZChjLHUsZSksITB9Y2F0Y2godCl7cmV0dXJuITF9fSxnPWZ1bmN0aW9uKGUpe2lmKCFpKGUpKXJldHVybiExO3N3aXRjaChhKGUpKXtjYXNlXCJBc3luY0Z1bmN0aW9uXCI6Y2FzZVwiR2VuZXJhdG9yRnVuY3Rpb25cIjpjYXNlXCJBc3luY0dlbmVyYXRvckZ1bmN0aW9uXCI6cmV0dXJuITF9dHJ5e3JldHVybiBofHwhIWYocCxsKGUpKX1jYXRjaCh0KXtyZXR1cm4hMH19O2cuc2hhbT0hMCxlLmV4cG9ydHM9IWR8fG8oKGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIG0obS5jYWxsKXx8IW0oT2JqZWN0KXx8IW0oKGZ1bmN0aW9uKCl7ZT0hMH0pKXx8ZX0pKT9nOm19LDExMDM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjU0Miksbz1uKDcxNzYpLGk9LyN8XFwucHJvdG90eXBlXFwuLyxhPWZ1bmN0aW9uKGUsdCl7dmFyIG49bFtzKGUpXTtyZXR1cm4gbj09PXV8fG4hPT1jJiYobyh0KT9yKHQpOiEhdCl9LHM9YS5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKGksXCIuXCIpLnRvTG93ZXJDYXNlKCl9LGw9YS5kYXRhPXt9LGM9YS5OQVRJVkU9XCJOXCIsdT1hLlBPTFlGSUxMPVwiUFwiO2UuZXhwb3J0cz1hfSw3NzE4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDkwMyksbz1NYXRoLmZsb29yO2UuZXhwb3J0cz1OdW1iZXIuaXNJbnRlZ2VyfHxmdW5jdGlvbihlKXtyZXR1cm4hcihlKSYmaXNGaW5pdGUoZSkmJm8oZSk9PT1lfX0sNjE5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDkwMjQpLG89big2MjI1KSxpPW4oNDEzNSksYT1uKDI4OTkpLHM9bigxOTUzKSxsPWEoXCJpdGVyYXRvclwiKSxjPU9iamVjdDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoaShlKSlyZXR1cm4hMTt2YXIgdD1jKGUpO3JldHVybiB2b2lkIDAhPT10W2xdfHxcIkBAaXRlcmF0b3JcImluIHR8fG8ocyxyKHQpKX19LDQxMzU6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWV8fHZvaWQgMD09PWV9fSw5MDM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNzE3Nik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVyblwib2JqZWN0XCI9PXR5cGVvZiBlP251bGwhPT1lOnIoZSl9fSw4MzA2OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDkwMyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKGUpfHxudWxsPT09ZX19LDE2MDI6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz0hMX0sNzUyMzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big3ODA4KSxvPW4oNzE3NiksaT1uKDUxMTkpLGE9big3ODM2KSxzPU9iamVjdDtlLmV4cG9ydHM9YT9mdW5jdGlvbihlKXtyZXR1cm5cInN5bWJvbFwiPT10eXBlb2YgZX06ZnVuY3Rpb24oZSl7dmFyIHQ9cihcIlN5bWJvbFwiKTtyZXR1cm4gbyh0KSYmaSh0LnByb3RvdHlwZSxzKGUpKX19LDMyNjQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMzAxMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIG8saSxhPW4/ZTplLml0ZXJhdG9yLHM9ZS5uZXh0OyEobz1yKHMsYSkpLmRvbmU7KWlmKHZvaWQgMCE9PShpPXQoby52YWx1ZSkpKXJldHVybiBpfX0sMTAyNTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigxNzkxKSxvPW4oMzAxMSksaT1uKDI3ODYpLGE9big3Nzk4KSxzPW4oMTk0NyksbD1uKDEyMTQpLGM9big1MTE5KSx1PW4oMTQ5KSxkPW4oMjQxKSxwPW4oNzE5NSksZj1UeXBlRXJyb3IsaD1mdW5jdGlvbihlLHQpe3RoaXMuc3RvcHBlZD1lLHRoaXMucmVzdWx0PXR9LG09aC5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgZyx5LHYsYixULHgsdyxrPW4mJm4udGhhdCxFPSEoIW58fCFuLkFTX0VOVFJJRVMpLFM9ISghbnx8IW4uSVNfUkVDT1JEKSxBPSEoIW58fCFuLklTX0lURVJBVE9SKSxDPSEoIW58fCFuLklOVEVSUlVQVEVEKSxfPXIodCxrKSxEPWZ1bmN0aW9uKGUpe3JldHVybiBnJiZwKGcsXCJub3JtYWxcIixlKSxuZXcgaCghMCxlKX0sUj1mdW5jdGlvbihlKXtyZXR1cm4gRT8oaShlKSxDP18oZVswXSxlWzFdLEQpOl8oZVswXSxlWzFdKSk6Qz9fKGUsRCk6XyhlKX07aWYoUylnPWUuaXRlcmF0b3I7ZWxzZSBpZihBKWc9ZTtlbHNle2lmKCEoeT1kKGUpKSl0aHJvdyBuZXcgZihhKGUpK1wiIGlzIG5vdCBpdGVyYWJsZVwiKTtpZihzKHkpKXtmb3Iodj0wLGI9bChlKTtiPnY7disrKWlmKChUPVIoZVt2XSkpJiZjKG0sVCkpcmV0dXJuIFQ7cmV0dXJuIG5ldyBoKCExKX1nPXUoZSx5KX1mb3IoeD1TP2UubmV4dDpnLm5leHQ7ISh3PW8oeCxnKSkuZG9uZTspe3RyeXtUPVIody52YWx1ZSl9Y2F0Y2goTyl7cChnLFwidGhyb3dcIixPKX1pZihcIm9iamVjdFwiPT10eXBlb2YgVCYmVCYmYyhtLFQpKXJldHVybiBUfXJldHVybiBuZXcgaCghMSl9fSw3MTk1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMwMTEpLG89bigyNzg2KSxpPW4oNTM3Nyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgYSxzO28oZSk7dHJ5e2lmKCEoYT1pKGUsXCJyZXR1cm5cIikpKXtpZihcInRocm93XCI9PT10KXRocm93IG47cmV0dXJuIG59YT1yKGEsZSl9Y2F0Y2gobCl7cz0hMCxhPWx9aWYoXCJ0aHJvd1wiPT09dCl0aHJvdyBuO2lmKHMpdGhyb3cgYTtyZXR1cm4gbyhhKSxufX0sNTI3NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big3ODE3KS5JdGVyYXRvclByb3RvdHlwZSxvPW4oNjI1NyksaT1uKDgzNyksYT1uKDgyNjMpLHM9bigxOTUzKSxsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixjKXt2YXIgdT10K1wiIEl0ZXJhdG9yXCI7cmV0dXJuIGUucHJvdG90eXBlPW8ocix7bmV4dDppKCshYyxuKX0pLGEoZSx1LCExLCEwKSxzW3VdPWwsZX19LDc4ODI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDMwMTEpLGk9bigxNjAyKSxhPW4oNjQwOCkscz1uKDcxNzYpLGw9big1Mjc2KSxjPW4oMTk1NCksdT1uKDcwMzEpLGQ9big4MjYzKSxwPW4oNjk1OCksZj1uKDg4MjUpLGg9bigyODk5KSxtPW4oMTk1MyksZz1uKDc4MTcpLHk9YS5QUk9QRVIsdj1hLkNPTkZJR1VSQUJMRSxiPWcuSXRlcmF0b3JQcm90b3R5cGUsVD1nLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMseD1oKFwiaXRlcmF0b3JcIiksdz1cImtleXNcIixrPVwidmFsdWVzXCIsRT1cImVudHJpZXNcIixTPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixhLGgsZyxBKXtsKG4sdCxhKTt2YXIgQyxfLEQsUj1mdW5jdGlvbihlKXtpZihlPT09aCYmSSlyZXR1cm4gSTtpZighVCYmZSYmZSBpbiBMKXJldHVybiBMW2VdO3N3aXRjaChlKXtjYXNlIHc6Y2FzZSBrOmNhc2UgRTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyxlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMpfX0sTz10K1wiIEl0ZXJhdG9yXCIsUD0hMSxMPWUucHJvdG90eXBlLE49TFt4XXx8TFtcIkBAaXRlcmF0b3JcIl18fGgmJkxbaF0sST0hVCYmTnx8UihoKSxqPVwiQXJyYXlcIj09PXQmJkwuZW50cmllc3x8TjtpZihqJiYoQz1jKGouY2FsbChuZXcgZSkpKSE9PU9iamVjdC5wcm90b3R5cGUmJkMubmV4dCYmKGl8fGMoQyk9PT1ifHwodT91KEMsYik6cyhDW3hdKXx8ZihDLHgsUykpLGQoQyxPLCEwLCEwKSxpJiYobVtPXT1TKSkseSYmaD09PWsmJk4mJk4ubmFtZSE9PWsmJighaSYmdj9wKEwsXCJuYW1lXCIsayk6KFA9ITAsST1mdW5jdGlvbigpe3JldHVybiBvKE4sdGhpcyl9KSksaClpZihfPXt2YWx1ZXM6UihrKSxrZXlzOmc/STpSKHcpLGVudHJpZXM6UihFKX0sQSlmb3IoRCBpbiBfKShUfHxQfHwhKEQgaW4gTCkpJiZmKEwsRCxfW0RdKTtlbHNlIHIoe3RhcmdldDp0LHByb3RvOiEwLGZvcmNlZDpUfHxQfSxfKTtyZXR1cm4gaSYmIUF8fExbeF09PT1JfHxmKEwseCxJLHtuYW1lOmh9KSxtW3RdPUksX319LDc4MTc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByLG8saSxhPW4oMjU0Mikscz1uKDcxNzYpLGw9big5MDMpLGM9big2MjU3KSx1PW4oMTk1NCksZD1uKDg4MjUpLHA9bigyODk5KSxmPW4oMTYwMiksaD1wKFwiaXRlcmF0b3JcIiksbT0hMTtbXS5rZXlzJiYoXCJuZXh0XCJpbihpPVtdLmtleXMoKSk/KG89dSh1KGkpKSkhPT1PYmplY3QucHJvdG90eXBlJiYocj1vKTptPSEwKSwhbChyKXx8YSgoZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gcltoXS5jYWxsKGUpIT09ZX0pKT9yPXt9OmYmJihyPWMocikpLHMocltoXSl8fGQocixoLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuZXhwb3J0cz17SXRlcmF0b3JQcm90b3R5cGU6cixCVUdHWV9TQUZBUklfSVRFUkFUT1JTOm19fSwxOTUzOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9e319LDEyMTQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTE5Myk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKGUubGVuZ3RoKX19LDE4OTk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMzMyMiksbz1uKDI1NDIpLGk9big3MTc2KSxhPW4oNjIyNSkscz1uKDgzMDcpLGw9big2NDA4KS5DT05GSUdVUkFCTEUsYz1uKDY1MzApLHU9big2NTg5KSxkPXUuZW5mb3JjZSxwPXUuZ2V0LGY9U3RyaW5nLGg9T2JqZWN0LmRlZmluZVByb3BlcnR5LG09cihcIlwiLnNsaWNlKSxnPXIoXCJcIi5yZXBsYWNlKSx5PXIoW10uam9pbiksdj1zJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gOCE9PWgoKGZ1bmN0aW9uKCl7fSksXCJsZW5ndGhcIix7dmFsdWU6OH0pLmxlbmd0aH0pKSxiPVN0cmluZyhTdHJpbmcpLnNwbGl0KFwiU3RyaW5nXCIpLFQ9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtcIlN5bWJvbChcIj09PW0oZih0KSwwLDcpJiYodD1cIltcIitnKGYodCksL15TeW1ib2xcXCgoW14pXSopXFwpLyxcIiQxXCIpK1wiXVwiKSxuJiZuLmdldHRlciYmKHQ9XCJnZXQgXCIrdCksbiYmbi5zZXR0ZXImJih0PVwic2V0IFwiK3QpLCghYShlLFwibmFtZVwiKXx8bCYmZS5uYW1lIT09dCkmJihzP2goZSxcIm5hbWVcIix7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KTplLm5hbWU9dCksdiYmbiYmYShuLFwiYXJpdHlcIikmJmUubGVuZ3RoIT09bi5hcml0eSYmaChlLFwibGVuZ3RoXCIse3ZhbHVlOm4uYXJpdHl9KTt0cnl7biYmYShuLFwiY29uc3RydWN0b3JcIikmJm4uY29uc3RydWN0b3I/cyYmaChlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSk6ZS5wcm90b3R5cGUmJihlLnByb3RvdHlwZT12b2lkIDApfWNhdGNoKG8pe312YXIgcj1kKGUpO3JldHVybiBhKHIsXCJzb3VyY2VcIil8fChyLnNvdXJjZT15KGIsXCJzdHJpbmdcIj09dHlwZW9mIHQ/dDpcIlwiKSksZX07RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPVQoKGZ1bmN0aW9uKCl7cmV0dXJuIGkodGhpcykmJnAodGhpcykuc291cmNlfHxjKHRoaXMpfSksXCJ0b1N0cmluZ1wiKX0sNjk0NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMzIyKSxvPU1hcC5wcm90b3R5cGU7ZS5leHBvcnRzPXtNYXA6TWFwLHNldDpyKG8uc2V0KSxnZXQ6cihvLmdldCksaGFzOnIoby5oYXMpLHJlbW92ZTpyKG8uZGVsZXRlKSxwcm90bzpvfX0sODk4MzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMzIyKSxvPW4oMzI2NCksaT1uKDY5NDYpLGE9aS5NYXAscz1pLnByb3RvLGw9cihzLmZvckVhY2gpLGM9cihzLmVudHJpZXMpLHU9YyhuZXcgYSkubmV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuP28oe2l0ZXJhdG9yOmMoZSksbmV4dDp1fSwoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZVsxXSxlWzBdKX0pKTpsKGUsdCl9fSw5NzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big3NTY2KSxvPU1hdGguYWJzLGk9MjIyMDQ0NjA0OTI1MDMxM2UtMzEsYT0xL2k7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHMpe3ZhciBsPStlLGM9byhsKSx1PXIobCk7aWYoYzxzKXJldHVybiB1KmZ1bmN0aW9uKGUpe3JldHVybiBlK2EtYX0oYy9zL3QpKnMqdDt2YXIgZD0oMSt0L2kpKmMscD1kLShkLWMpO3JldHVybiBwPm58fHAhPT1wP3UqKDEvMCk6dSpwfX0sODI0MDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big5Nyk7ZS5leHBvcnRzPU1hdGguZnJvdW5kfHxmdW5jdGlvbihlKXtyZXR1cm4gcihlLDEuMTkyMDkyODk1NTA3ODEyNWUtNywzNDAyODIzNDY2Mzg1Mjg4NmUyMiwxMTc1NDk0MzUwODIyMjg3NWUtNTQpfX0sNzU2NjplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPU1hdGguc2lnbnx8ZnVuY3Rpb24oZSl7dmFyIHQ9K2U7cmV0dXJuIDA9PT10fHx0IT09dD90OnQ8MD8tMToxfX0sNjU5NjplPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHQ9TWF0aC5jZWlsLG49TWF0aC5mbG9vcjtlLmV4cG9ydHM9TWF0aC50cnVuY3x8ZnVuY3Rpb24oZSl7dmFyIHI9K2U7cmV0dXJuKHI+MD9uOnQpKHIpfX0sMzE0NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MjMwKSxvPVR5cGVFcnJvcixpPWZ1bmN0aW9uKGUpe3ZhciB0LG47dGhpcy5wcm9taXNlPW5ldyBlKChmdW5jdGlvbihlLHIpe2lmKHZvaWQgMCE9PXR8fHZvaWQgMCE9PW4pdGhyb3cgbmV3IG8oXCJCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvclwiKTt0PWUsbj1yfSkpLHRoaXMucmVzb2x2ZT1yKHQpLHRoaXMucmVqZWN0PXIobil9O2UuZXhwb3J0cy5mPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgaShlKX19LDYyMzg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oODMwNyksbz1uKDMzMjIpLGk9bigzMDExKSxhPW4oMjU0Mikscz1uKDQ5NTYpLGw9bigyNzAzKSxjPW4oNTMwNSksdT1uKDQ2NTYpLGQ9big1NTY0KSxwPU9iamVjdC5hc3NpZ24sZj1PYmplY3QuZGVmaW5lUHJvcGVydHksaD1vKFtdLmNvbmNhdCk7ZS5leHBvcnRzPSFwfHxhKChmdW5jdGlvbigpe2lmKHImJjEhPT1wKHtiOjF9LHAoZih7fSxcImFcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtmKHRoaXMsXCJiXCIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgZT17fSx0PXt9LG49U3ltYm9sKFwiYXNzaWduIGRldGVjdGlvblwiKSxvPVwiYWJjZGVmZ2hpamtsbW5vcHFyc3RcIjtyZXR1cm4gZVtuXT03LG8uc3BsaXQoXCJcIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dFtlXT1lfSkpLDchPT1wKHt9LGUpW25dfHxzKHAoe30sdCkpLmpvaW4oXCJcIikhPT1vfSkpP2Z1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPXUoZSksbz1hcmd1bWVudHMubGVuZ3RoLGE9MSxwPWwuZixmPWMuZjtvPmE7KWZvcih2YXIgbSxnPWQoYXJndW1lbnRzW2ErK10pLHk9cD9oKHMoZykscChnKSk6cyhnKSx2PXkubGVuZ3RoLGI9MDt2PmI7KW09eVtiKytdLHImJiFpKGYsZyxtKXx8KG5bbV09Z1ttXSk7cmV0dXJuIG59OnB9LDYyNTc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByLG89bigyNzg2KSxpPW4oOTIyNSksYT1uKDg1ODcpLHM9big2NjkwKSxsPW4oNTc2NyksYz1uKDYxOTcpLHU9bigxODY4KSxkPVwicHJvdG90eXBlXCIscD1cInNjcmlwdFwiLGY9dShcIklFX1BST1RPXCIpLGg9ZnVuY3Rpb24oKXt9LG09ZnVuY3Rpb24oZSl7cmV0dXJuXCI8XCIrcCtcIj5cIitlK1wiPC9cIitwK1wiPlwifSxnPWZ1bmN0aW9uKGUpe2Uud3JpdGUobShcIlwiKSksZS5jbG9zZSgpO3ZhciB0PWUucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gZT1udWxsLHR9LHk9ZnVuY3Rpb24oKXt0cnl7cj1uZXcgQWN0aXZlWE9iamVjdChcImh0bWxmaWxlXCIpfWNhdGNoKHQpe315PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5kb21haW4mJnI/ZyhyKTpmdW5jdGlvbigpe3ZhciBlLHQ9YyhcImlmcmFtZVwiKSxuPVwiamF2YVwiK3ArXCI6XCI7cmV0dXJuIHQuc3R5bGUuZGlzcGxheT1cIm5vbmVcIixsLmFwcGVuZENoaWxkKHQpLHQuc3JjPVN0cmluZyhuKSwoZT10LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSxlLndyaXRlKG0oXCJkb2N1bWVudC5GPU9iamVjdFwiKSksZS5jbG9zZSgpLGUuRn0oKTpnKHIpO2Zvcih2YXIgZT1hLmxlbmd0aDtlLS07KWRlbGV0ZSB5W2RdW2FbZV1dO3JldHVybiB5KCl9O3NbZl09ITAsZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKGUsdCl7dmFyIG47cmV0dXJuIG51bGwhPT1lPyhoW2RdPW8oZSksbj1uZXcgaCxoW2RdPW51bGwsbltmXT1lKTpuPXkoKSx2b2lkIDA9PT10P246aS5mKG4sdCl9fSw5MjI1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDgzMDcpLG89big1OTE1KSxpPW4oMTM2OSksYT1uKDI3ODYpLHM9big0OTU4KSxsPW4oNDk1Nik7dC5mPXImJiFvP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKGUsdCl7YShlKTtmb3IodmFyIG4scj1zKHQpLG89bCh0KSxjPW8ubGVuZ3RoLHU9MDtjPnU7KWkuZihlLG49b1t1KytdLHJbbl0pO3JldHVybiBlfX0sMTM2OTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MzA3KSxvPW4oNDU3MCksaT1uKDU5MTUpLGE9bigyNzg2KSxzPW4oMTY2NSksbD1UeXBlRXJyb3IsYz1PYmplY3QuZGVmaW5lUHJvcGVydHksdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGQ9XCJlbnVtZXJhYmxlXCIscD1cImNvbmZpZ3VyYWJsZVwiLGY9XCJ3cml0YWJsZVwiO3QuZj1yP2k/ZnVuY3Rpb24oZSx0LG4pe2lmKGEoZSksdD1zKHQpLGEobiksXCJmdW5jdGlvblwiPT09dHlwZW9mIGUmJlwicHJvdG90eXBlXCI9PT10JiZcInZhbHVlXCJpbiBuJiZmIGluIG4mJiFuW2ZdKXt2YXIgcj11KGUsdCk7ciYmcltmXSYmKGVbdF09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6cCBpbiBuP25bcF06cltwXSxlbnVtZXJhYmxlOmQgaW4gbj9uW2RdOnJbZF0sd3JpdGFibGU6ITF9KX1yZXR1cm4gYyhlLHQsbil9OmM6ZnVuY3Rpb24oZSx0LG4pe2lmKGEoZSksdD1zKHQpLGEobiksbyl0cnl7cmV0dXJuIGMoZSx0LG4pfWNhdGNoKHIpe31pZihcImdldFwiaW4gbnx8XCJzZXRcImluIG4pdGhyb3cgbmV3IGwoXCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZFwiKTtyZXR1cm5cInZhbHVlXCJpbiBuJiYoZVt0XT1uLnZhbHVlKSxlfX0sMzcxODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MzA3KSxvPW4oMzAxMSksaT1uKDUzMDUpLGE9big4MzcpLHM9big0OTU4KSxsPW4oMTY2NSksYz1uKDYyMjUpLHU9big0NTcwKSxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dC5mPXI/ZDpmdW5jdGlvbihlLHQpe2lmKGU9cyhlKSx0PWwodCksdSl0cnl7cmV0dXJuIGQoZSx0KX1jYXRjaChuKXt9aWYoYyhlLHQpKXJldHVybiBhKCFvKGkuZixlLHQpLGVbdF0pfX0sMjQ4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDc4MDYpLG89big4NTg3KS5jb25jYXQoXCJsZW5ndGhcIixcInByb3RvdHlwZVwiKTt0LmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKGUpe3JldHVybiByKGUsbyl9fSwyNzAzOihlLHQpPT57XCJ1c2Ugc3RyaWN0XCI7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDE5NTQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNjIyNSksbz1uKDcxNzYpLGk9big0NjU2KSxhPW4oMTg2OCkscz1uKDk5OTIpLGw9YShcIklFX1BST1RPXCIpLGM9T2JqZWN0LHU9Yy5wcm90b3R5cGU7ZS5leHBvcnRzPXM/Yy5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXt2YXIgdD1pKGUpO2lmKHIodCxsKSlyZXR1cm4gdFtsXTt2YXIgbj10LmNvbnN0cnVjdG9yO3JldHVybiBvKG4pJiZ0IGluc3RhbmNlb2Ygbj9uLnByb3RvdHlwZTp0IGluc3RhbmNlb2YgYz91Om51bGx9fSw1MTE5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpO2UuZXhwb3J0cz1yKHt9LmlzUHJvdG90eXBlT2YpfSw3ODA2OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpLG89big2MjI1KSxpPW4oNDk1OCksYT1uKDIyNjUpLmluZGV4T2Yscz1uKDY2OTApLGw9cihbXS5wdXNoKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWkoZSksYz0wLHU9W107Zm9yKG4gaW4gcikhbyhzLG4pJiZvKHIsbikmJmwodSxuKTtmb3IoO3QubGVuZ3RoPmM7KW8ocixuPXRbYysrXSkmJih+YSh1LG4pfHxsKHUsbikpO3JldHVybiB1fX0sNDk1NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big3ODA2KSxvPW4oODU4Nyk7ZS5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbihlKXtyZXR1cm4gcihlLG8pfX0sNTMwNTooZSx0KT0+e1widXNlIHN0cmljdFwiO3ZhciBuPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixvPXImJiFuLmNhbGwoezE6Mn0sMSk7dC5mPW8/ZnVuY3Rpb24oZSl7dmFyIHQ9cih0aGlzLGUpO3JldHVybiEhdCYmdC5lbnVtZXJhYmxlfTpufSw3MDMxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxNzMpLG89bigyNzg2KSxpPW4oNTkwOSk7ZS5leHBvcnRzPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KFwiX19wcm90b19fXCJpbnt9P2Z1bmN0aW9uKCl7dmFyIGUsdD0hMSxuPXt9O3RyeXsoZT1yKE9iamVjdC5wcm90b3R5cGUsXCJfX3Byb3RvX19cIixcInNldFwiKSkobixbXSksdD1uIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goYSl7fXJldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBvKG4pLGkociksdD9lKG4scik6bi5fX3Byb3RvX189cixufX0oKTp2b2lkIDApfSwzNzM3OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMwMTEpLG89big3MTc2KSxpPW4oOTAzKSxhPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixzO2lmKFwic3RyaW5nXCI9PT10JiZvKG49ZS50b1N0cmluZykmJiFpKHM9cihuLGUpKSlyZXR1cm4gcztpZihvKG49ZS52YWx1ZU9mKSYmIWkocz1yKG4sZSkpKXJldHVybiBzO2lmKFwic3RyaW5nXCIhPT10JiZvKG49ZS50b1N0cmluZykmJiFpKHM9cihuLGUpKSlyZXR1cm4gczt0aHJvdyBuZXcgYShcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKX19LDI4NzY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNzgwOCksbz1uKDMzMjIpLGk9bigyNDgpLGE9bigyNzAzKSxzPW4oMjc4NiksbD1vKFtdLmNvbmNhdCk7ZS5leHBvcnRzPXIoXCJSZWZsZWN0XCIsXCJvd25LZXlzXCIpfHxmdW5jdGlvbihlKXt2YXIgdD1pLmYocyhlKSksbj1hLmY7cmV0dXJuIG4/bCh0LG4oZSkpOnR9fSw2NDIyOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxODcpO2UuZXhwb3J0cz1yfSw2NzY4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxODcpO2UuZXhwb3J0cz1yLlByb21pc2V9LDk2NTg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMjc4Niksbz1uKDkwMyksaT1uKDMxNDYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHIoZSksbyh0KSYmdC5jb25zdHJ1Y3Rvcj09PWUpcmV0dXJuIHQ7dmFyIG49aS5mKGUpO3JldHVybigwLG4ucmVzb2x2ZSkodCksbi5wcm9taXNlfX0sODk4NzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMDExKSxvPW4oMjc4NiksaT1uKDcxNzYpLGE9bigzMzE4KSxzPW4oMTY5MSksbD1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5leGVjO2lmKGkobikpe3ZhciBjPXIobixlLHQpO3JldHVybiBudWxsIT09YyYmbyhjKSxjfWlmKFwiUmVnRXhwXCI9PT1hKGUpKXJldHVybiByKHMsZSx0KTt0aHJvdyBuZXcgbChcIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXJcIil9fSwxNjkxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMwMTEpLG89bigzMzIyKSxpPW4oODAyMSksYT1uKDIwNjEpLHM9big4NDM0KSxsPW4oMjIxNyksYz1uKDYyNTcpLHU9big2NTg5KS5nZXQsZD1uKDI0NDQpLHA9big1NzYxKSxmPWwoXCJuYXRpdmUtc3RyaW5nLXJlcGxhY2VcIixTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLGg9UmVnRXhwLnByb3RvdHlwZS5leGVjLG09aCxnPW8oXCJcIi5jaGFyQXQpLHk9byhcIlwiLmluZGV4T2YpLHY9byhcIlwiLnJlcGxhY2UpLGI9byhcIlwiLnNsaWNlKSxUPWZ1bmN0aW9uKCl7dmFyIGU9L2EvLHQ9L2IqL2c7cmV0dXJuIHIoaCxlLFwiYVwiKSxyKGgsdCxcImFcIiksMCE9PWUubGFzdEluZGV4fHwwIT09dC5sYXN0SW5kZXh9KCkseD1zLkJST0tFTl9DQVJFVCx3PXZvaWQgMCE9PS8oKT8/Ly5leGVjKFwiXCIpWzFdOyhUfHx3fHx4fHxkfHxwKSYmKG09ZnVuY3Rpb24oZSl7dmFyIHQsbixvLHMsbCxkLHAsaz10aGlzLEU9dShrKSxTPWkoZSksQT1FLnJhdztpZihBKXJldHVybiBBLmxhc3RJbmRleD1rLmxhc3RJbmRleCx0PXIobSxBLFMpLGsubGFzdEluZGV4PUEubGFzdEluZGV4LHQ7dmFyIEM9RS5ncm91cHMsXz14JiZrLnN0aWNreSxEPXIoYSxrKSxSPWsuc291cmNlLE89MCxQPVM7aWYoXyYmKEQ9dihELFwieVwiLFwiXCIpLC0xPT09eShELFwiZ1wiKSYmKEQrPVwiZ1wiKSxQPWIoUyxrLmxhc3RJbmRleCksay5sYXN0SW5kZXg+MCYmKCFrLm11bHRpbGluZXx8ay5tdWx0aWxpbmUmJlwiXFxuXCIhPT1nKFMsay5sYXN0SW5kZXgtMSkpJiYoUj1cIig/OiBcIitSK1wiKVwiLFA9XCIgXCIrUCxPKyspLG49bmV3IFJlZ0V4cChcIl4oPzpcIitSK1wiKVwiLEQpKSx3JiYobj1uZXcgUmVnRXhwKFwiXlwiK1IrXCIkKD8hXFxcXHMpXCIsRCkpLFQmJihvPWsubGFzdEluZGV4KSxzPXIoaCxfP246ayxQKSxfP3M/KHMuaW5wdXQ9YihzLmlucHV0LE8pLHNbMF09YihzWzBdLE8pLHMuaW5kZXg9ay5sYXN0SW5kZXgsay5sYXN0SW5kZXgrPXNbMF0ubGVuZ3RoKTprLmxhc3RJbmRleD0wOlQmJnMmJihrLmxhc3RJbmRleD1rLmdsb2JhbD9zLmluZGV4K3NbMF0ubGVuZ3RoOm8pLHcmJnMmJnMubGVuZ3RoPjEmJnIoZixzWzBdLG4sKGZ1bmN0aW9uKCl7Zm9yKGw9MTtsPGFyZ3VtZW50cy5sZW5ndGgtMjtsKyspdm9pZCAwPT09YXJndW1lbnRzW2xdJiYoc1tsXT12b2lkIDApfSkpLHMmJkMpZm9yKHMuZ3JvdXBzPWQ9YyhudWxsKSxsPTA7bDxDLmxlbmd0aDtsKyspZFsocD1DW2xdKVswXV09c1twWzFdXTtyZXR1cm4gc30pLGUuZXhwb3J0cz1tfSwyMDYxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI3ODYpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlPXIodGhpcyksdD1cIlwiO3JldHVybiBlLmhhc0luZGljZXMmJih0Kz1cImRcIiksZS5nbG9iYWwmJih0Kz1cImdcIiksZS5pZ25vcmVDYXNlJiYodCs9XCJpXCIpLGUubXVsdGlsaW5lJiYodCs9XCJtXCIpLGUuZG90QWxsJiYodCs9XCJzXCIpLGUudW5pY29kZSYmKHQrPVwidVwiKSxlLnVuaWNvZGVTZXRzJiYodCs9XCJ2XCIpLGUuc3RpY2t5JiYodCs9XCJ5XCIpLHR9fSw4NDM0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI1NDIpLG89big1MTg3KS5SZWdFeHAsaT1yKChmdW5jdGlvbigpe3ZhciBlPW8oXCJhXCIsXCJ5XCIpO3JldHVybiBlLmxhc3RJbmRleD0yLG51bGwhPT1lLmV4ZWMoXCJhYmNkXCIpfSkpLGE9aXx8cigoZnVuY3Rpb24oKXtyZXR1cm4hbyhcImFcIixcInlcIikuc3RpY2t5fSkpLHM9aXx8cigoZnVuY3Rpb24oKXt2YXIgZT1vKFwiXnJcIixcImd5XCIpO3JldHVybiBlLmxhc3RJbmRleD0yLG51bGwhPT1lLmV4ZWMoXCJzdHJcIil9KSk7ZS5leHBvcnRzPXtCUk9LRU5fQ0FSRVQ6cyxNSVNTRURfU1RJQ0tZOmEsVU5TVVBQT1JURURfWTppfX0sMjQ0NDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyNTQyKSxvPW4oNTE4NykuUmVnRXhwO2UuZXhwb3J0cz1yKChmdW5jdGlvbigpe3ZhciBlPW8oXCIuXCIsXCJzXCIpO3JldHVybiEoZS5kb3RBbGwmJmUudGVzdChcIlxcblwiKSYmXCJzXCI9PT1lLmZsYWdzKX0pKX0sNTc2MTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyNTQyKSxvPW4oNTE4NykuUmVnRXhwO2UuZXhwb3J0cz1yKChmdW5jdGlvbigpe3ZhciBlPW8oXCIoPzxhPmIpXCIsXCJnXCIpO3JldHVyblwiYlwiIT09ZS5leGVjKFwiYlwiKS5ncm91cHMuYXx8XCJiY1wiIT09XCJiXCIucmVwbGFjZShlLFwiJDxhPmNcIil9KSl9LDMwNjA6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNDEzNSksbz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHIoZSkpdGhyb3cgbmV3IG8oXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIitlKTtyZXR1cm4gZX19LDc2MzQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTE4Nyksbz1uKDgzMDcpLGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIW8pcmV0dXJuIHJbZV07dmFyIHQ9aShyLGUpO3JldHVybiB0JiZ0LnZhbHVlfX0sNzA0MjplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fHxlIT09ZSYmdCE9PXR9fSw2MzIxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxODcpLG89big1MDQyKSxpPW4oNzE3NiksYT1uKDEyMzgpLHM9bigzNzI3KSxsPW4oODAwOSksYz1uKDYyNjgpLHU9ci5GdW5jdGlvbixkPS9NU0lFIC5cXC4vLnRlc3Qocyl8fGEmJmZ1bmN0aW9uKCl7dmFyIGU9ci5CdW4udmVyc2lvbi5zcGxpdChcIi5cIik7cmV0dXJuIGUubGVuZ3RoPDN8fFwiMFwiPT09ZVswXSYmKGVbMV08M3x8XCIzXCI9PT1lWzFdJiZcIjBcIj09PWVbMl0pfSgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ/MjoxO3JldHVybiBkP2Z1bmN0aW9uKHIsYSl7dmFyIHM9Yyhhcmd1bWVudHMubGVuZ3RoLDEpPm4sZD1pKHIpP3I6dShyKSxwPXM/bChhcmd1bWVudHMsbik6W10sZj1zP2Z1bmN0aW9uKCl7byhkLHRoaXMscCl9OmQ7cmV0dXJuIHQ/ZShmLGEpOmUoZil9OmV9fSwzNTE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNzIzNCksbz1uKDQ5MTkpLGk9ci5TZXQsYT1yLmFkZDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IGk7cmV0dXJuIG8oZSwoZnVuY3Rpb24oZSl7YSh0LGUpfSkpLHR9fSw4ODk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNjU0OSksbz1uKDcyMzQpLGk9bigzNTEpLGE9bigzNTQ4KSxzPW4oMzYwNSksbD1uKDQ5MTkpLGM9bigzMjY0KSx1PW8uaGFzLGQ9by5yZW1vdmU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXIodGhpcyksbj1zKGUpLG89aSh0KTtyZXR1cm4gYSh0KTw9bi5zaXplP2wodCwoZnVuY3Rpb24oZSl7bi5pbmNsdWRlcyhlKSYmZChvLGUpfSkpOmMobi5nZXRJdGVyYXRvcigpLChmdW5jdGlvbihlKXt1KHQsZSkmJmQobyxlKX0pKSxvfX0sNzIzNDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMzIyKSxvPVNldC5wcm90b3R5cGU7ZS5leHBvcnRzPXtTZXQ6U2V0LGFkZDpyKG8uYWRkKSxoYXM6cihvLmhhcykscmVtb3ZlOnIoby5kZWxldGUpLHByb3RvOm99fSw1MjUwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY1NDkpLG89big3MjM0KSxpPW4oMzU0OCksYT1uKDM2MDUpLHM9big0OTE5KSxsPW4oMzI2NCksYz1vLlNldCx1PW8uYWRkLGQ9by5oYXM7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXIodGhpcyksbj1hKGUpLG89bmV3IGM7cmV0dXJuIGkodCk+bi5zaXplP2wobi5nZXRJdGVyYXRvcigpLChmdW5jdGlvbihlKXtkKHQsZSkmJnUobyxlKX0pKTpzKHQsKGZ1bmN0aW9uKGUpe24uaW5jbHVkZXMoZSkmJnUobyxlKX0pKSxvfX0sNzA2NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NTQ5KSxvPW4oNzIzNCkuaGFzLGk9bigzNTQ4KSxhPW4oMzYwNSkscz1uKDQ5MTkpLGw9bigzMjY0KSxjPW4oNzE5NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXIodGhpcyksbj1hKGUpO2lmKGkodCk8PW4uc2l6ZSlyZXR1cm4hMSE9PXModCwoZnVuY3Rpb24oZSl7aWYobi5pbmNsdWRlcyhlKSlyZXR1cm4hMX0pLCEwKTt2YXIgdT1uLmdldEl0ZXJhdG9yKCk7cmV0dXJuITEhPT1sKHUsKGZ1bmN0aW9uKGUpe2lmKG8odCxlKSlyZXR1cm4gYyh1LFwibm9ybWFsXCIsITEpfSkpfX0sODg0MjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NTQ5KSxvPW4oMzU0OCksaT1uKDQ5MTkpLGE9bigzNjA1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9cih0aGlzKSxuPWEoZSk7cmV0dXJuIShvKHQpPm4uc2l6ZSkmJiExIT09aSh0LChmdW5jdGlvbihlKXtpZighbi5pbmNsdWRlcyhlKSlyZXR1cm4hMX0pLCEwKX19LDg0NTQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNjU0OSksbz1uKDcyMzQpLmhhcyxpPW4oMzU0OCksYT1uKDM2MDUpLHM9bigzMjY0KSxsPW4oNzE5NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXIodGhpcyksbj1hKGUpO2lmKGkodCk8bi5zaXplKXJldHVybiExO3ZhciBjPW4uZ2V0SXRlcmF0b3IoKTtyZXR1cm4hMSE9PXMoYywoZnVuY3Rpb24oZSl7aWYoIW8odCxlKSlyZXR1cm4gbChjLFwibm9ybWFsXCIsITEpfSkpfX0sNDkxOTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMzIyKSxvPW4oMzI2NCksaT1uKDcyMzQpLGE9aS5TZXQscz1pLnByb3RvLGw9cihzLmZvckVhY2gpLGM9cihzLmtleXMpLHU9YyhuZXcgYSkubmV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuP28oe2l0ZXJhdG9yOmMoZSksbmV4dDp1fSx0KTpsKGUsdCl9fSwzNTQ4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxNzMpLG89big3MjM0KTtlLmV4cG9ydHM9cihvLnByb3RvLFwic2l6ZVwiLFwiZ2V0XCIpfHxmdW5jdGlvbihlKXtyZXR1cm4gZS5zaXplfX0sNTMzNTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big3ODA4KSxvPW4oOTY3MiksaT1uKDI4OTkpLGE9big4MzA3KSxzPWkoXCJzcGVjaWVzXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1yKGUpO2EmJnQmJiF0W3NdJiZvKHQscyx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfX0sNTM4MDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NTQ5KSxvPW4oNzIzNCksaT1uKDM1MSksYT1uKDM2MDUpLHM9bigzMjY0KSxsPW8uYWRkLGM9by5oYXMsdT1vLnJlbW92ZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9cih0aGlzKSxuPWEoZSkuZ2V0SXRlcmF0b3IoKSxvPWkodCk7cmV0dXJuIHMobiwoZnVuY3Rpb24oZSl7Yyh0LGUpP3UobyxlKTpsKG8sZSl9KSksb319LDgyNjM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTM2OSkuZixvPW4oNjIyNSksaT1uKDI4OTkpKFwidG9TdHJpbmdUYWdcIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtlJiYhbiYmKGU9ZS5wcm90b3R5cGUpLGUmJiFvKGUsaSkmJnIoZSxpLHtjb25maWd1cmFibGU6ITAsdmFsdWU6dH0pfX0sODM0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY1NDkpLG89big3MjM0KS5hZGQsaT1uKDM1MSksYT1uKDM2MDUpLHM9bigzMjY0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9cih0aGlzKSxuPWEoZSkuZ2V0SXRlcmF0b3IoKSxsPWkodCk7cmV0dXJuIHMobiwoZnVuY3Rpb24oZSl7byhsLGUpfSkpLGx9fSwxODY4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDIyMTcpLG89big5ODkyKSxpPXIoXCJrZXlzXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaVtlXXx8KGlbZV09byhlKSl9fSwyODc5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxODcpLG89big2NDc4KSxpPVwiX19jb3JlLWpzX3NoYXJlZF9fXCIsYT1yW2ldfHxvKGkse30pO2UuZXhwb3J0cz1hfSwyMjE3OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDE2MDIpLG89bigyODc5KTsoZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG9bZV18fChvW2VdPXZvaWQgMCE9PXQ/dDp7fSl9KShcInZlcnNpb25zXCIsW10pLnB1c2goe3ZlcnNpb246XCIzLjM1LjBcIixtb2RlOnI/XCJwdXJlXCI6XCJnbG9iYWxcIixjb3B5cmlnaHQ6XCJcXHhhOSAyMDE0LTIwMjMgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSlcIixsaWNlbnNlOlwiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4zNS4wL0xJQ0VOU0VcIixzb3VyY2U6XCJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qc1wifSl9LDUyOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI3ODYpLG89big2MzQ5KSxpPW4oNDEzNSksYT1uKDI4OTkpKFwic3BlY2llc1wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixzPXIoZSkuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PXN8fGkobj1yKHMpW2FdKT90Om8obil9fSw5ODAzOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpLG89bigxMzA1KSxpPW4oODAyMSksYT1uKDMwNjApLHM9cihcIlwiLmNoYXJBdCksbD1yKFwiXCIuY2hhckNvZGVBdCksYz1yKFwiXCIuc2xpY2UpLHU9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIHIsdSxkPWkoYSh0KSkscD1vKG4pLGY9ZC5sZW5ndGg7cmV0dXJuIHA8MHx8cD49Zj9lP1wiXCI6dm9pZCAwOihyPWwoZCxwKSk8NTUyOTZ8fHI+NTYzMTl8fHArMT09PWZ8fCh1PWwoZCxwKzEpKTw1NjMyMHx8dT41NzM0Mz9lP3MoZCxwKTpyOmU/YyhkLHAscCsyKTp1LTU2MzIwKyhyLTU1Mjk2PDwxMCkrNjU1MzZ9fTtlLmV4cG9ydHM9e2NvZGVBdDp1KCExKSxjaGFyQXQ6dSghMCl9fSwyNzEyOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDMzMjIpLG89MjE0NzQ4MzY0NyxpPS9bXlxcMC1cXHUwMDdFXS8sYT0vWy5cXHUzMDAyXFx1RkYwRVxcdUZGNjFdL2cscz1cIk92ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzXCIsbD1SYW5nZUVycm9yLGM9cihhLmV4ZWMpLHU9TWF0aC5mbG9vcixkPVN0cmluZy5mcm9tQ2hhckNvZGUscD1yKFwiXCIuY2hhckNvZGVBdCksZj1yKFtdLmpvaW4pLGg9cihbXS5wdXNoKSxtPXIoXCJcIi5yZXBsYWNlKSxnPXIoXCJcIi5zcGxpdCkseT1yKFwiXCIudG9Mb3dlckNhc2UpLHY9ZnVuY3Rpb24oZSl7cmV0dXJuIGUrMjIrNzUqKGU8MjYpfSxiPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0wO2ZvcihlPW4/dShlLzcwMCk6ZT4+MSxlKz11KGUvdCk7ZT40NTU7KWU9dShlLzM1KSxyKz0zNjtyZXR1cm4gdShyKzM2KmUvKGUrMzgpKX0sVD1mdW5jdGlvbihlKXt2YXIgdD1bXTtlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTAscj1lLmxlbmd0aDtuPHI7KXt2YXIgbz1wKGUsbisrKTtpZihvPj01NTI5NiYmbzw9NTYzMTkmJm48cil7dmFyIGk9cChlLG4rKyk7NTYzMjA9PT0oNjQ1MTImaSk/aCh0LCgoMTAyMyZvKTw8MTApKygxMDIzJmkpKzY1NTM2KTooaCh0LG8pLG4tLSl9ZWxzZSBoKHQsbyl9cmV0dXJuIHR9KGUpO3ZhciBuLHIsaT1lLmxlbmd0aCxhPTEyOCxjPTAsbT03Mjtmb3Iobj0wO248ZS5sZW5ndGg7bisrKShyPWVbbl0pPDEyOCYmaCh0LGQocikpO3ZhciBnPXQubGVuZ3RoLHk9Zztmb3IoZyYmaCh0LFwiLVwiKTt5PGk7KXt2YXIgVD1vO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspKHI9ZVtuXSk+PWEmJnI8VCYmKFQ9cik7dmFyIHg9eSsxO2lmKFQtYT51KChvLWMpL3gpKXRocm93IG5ldyBsKHMpO2ZvcihjKz0oVC1hKSp4LGE9VCxuPTA7bjxlLmxlbmd0aDtuKyspe2lmKChyPWVbbl0pPGEmJisrYz5vKXRocm93IG5ldyBsKHMpO2lmKHI9PT1hKXtmb3IodmFyIHc9YyxrPTM2Ozspe3ZhciBFPWs8PW0/MTprPj1tKzI2PzI2OmstbTtpZih3PEUpYnJlYWs7dmFyIFM9dy1FLEE9MzYtRTtoKHQsZCh2KEUrUyVBKSkpLHc9dShTL0EpLGsrPTM2fWgodCxkKHYodykpKSxtPWIoYyx4LHk9PT1nKSxjPTAseSsrfX1jKyssYSsrfXJldHVybiBmKHQsXCJcIil9O2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdCxuLHI9W10sbz1nKG0oeShlKSxhLFwiLlwiKSxcIi5cIik7Zm9yKHQ9MDt0PG8ubGVuZ3RoO3QrKyluPW9bdF0saChyLGMoaSxuKT9cInhuLS1cIitUKG4pOm4pO3JldHVybiBmKHIsXCIuXCIpfX0sNjE4MDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigxOTkxKSxvPW4oMjU0MiksaT1uKDUxODcpLlN0cmluZztlLmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhbygoZnVuY3Rpb24oKXt2YXIgZT1TeW1ib2woXCJzeW1ib2wgZGV0ZWN0aW9uXCIpO3JldHVybiFpKGUpfHwhKE9iamVjdChlKWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZyJiZyPDQxfSkpfSw5NDg5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcixvLGksYSxzPW4oNTE4NyksbD1uKDUwNDIpLGM9bigxNzkxKSx1PW4oNzE3NiksZD1uKDYyMjUpLHA9bigyNTQyKSxmPW4oNTc2NyksaD1uKDgwMDkpLG09big2MTk3KSxnPW4oNjI2OCkseT1uKDkzMjgpLHY9big3Mzk0KSxiPXMuc2V0SW1tZWRpYXRlLFQ9cy5jbGVhckltbWVkaWF0ZSx4PXMucHJvY2Vzcyx3PXMuRGlzcGF0Y2gsaz1zLkZ1bmN0aW9uLEU9cy5NZXNzYWdlQ2hhbm5lbCxTPXMuU3RyaW5nLEE9MCxDPXt9LF89XCJvbnJlYWR5c3RhdGVjaGFuZ2VcIjtwKChmdW5jdGlvbigpe3I9cy5sb2NhdGlvbn0pKTt2YXIgRD1mdW5jdGlvbihlKXtpZihkKEMsZSkpe3ZhciB0PUNbZV07ZGVsZXRlIENbZV0sdCgpfX0sUj1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtEKGUpfX0sTz1mdW5jdGlvbihlKXtEKGUuZGF0YSl9LFA9ZnVuY3Rpb24oZSl7cy5wb3N0TWVzc2FnZShTKGUpLHIucHJvdG9jb2wrXCIvL1wiK3IuaG9zdCl9O2ImJlR8fChiPWZ1bmN0aW9uKGUpe2coYXJndW1lbnRzLmxlbmd0aCwxKTt2YXIgdD11KGUpP2U6ayhlKSxuPWgoYXJndW1lbnRzLDEpO3JldHVybiBDWysrQV09ZnVuY3Rpb24oKXtsKHQsdm9pZCAwLG4pfSxvKEEpLEF9LFQ9ZnVuY3Rpb24oZSl7ZGVsZXRlIENbZV19LHY/bz1mdW5jdGlvbihlKXt4Lm5leHRUaWNrKFIoZSkpfTp3JiZ3Lm5vdz9vPWZ1bmN0aW9uKGUpe3cubm93KFIoZSkpfTpFJiYheT8oYT0oaT1uZXcgRSkucG9ydDIsaS5wb3J0MS5vbm1lc3NhZ2U9TyxvPWMoYS5wb3N0TWVzc2FnZSxhKSk6cy5hZGRFdmVudExpc3RlbmVyJiZ1KHMucG9zdE1lc3NhZ2UpJiYhcy5pbXBvcnRTY3JpcHRzJiZyJiZcImZpbGU6XCIhPT1yLnByb3RvY29sJiYhcChQKT8obz1QLHMuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIixPLCExKSk6bz1fIGluIG0oXCJzY3JpcHRcIik/ZnVuY3Rpb24oZSl7Zi5hcHBlbmRDaGlsZChtKFwic2NyaXB0XCIpKVtfXT1mdW5jdGlvbigpe2YucmVtb3ZlQ2hpbGQodGhpcyksRChlKX19OmZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoUihlKSwwKX0pLGUuZXhwb3J0cz17c2V0OmIsY2xlYXI6VH19LDM3NDI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTMwNSksbz1NYXRoLm1heCxpPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXIoZSk7cmV0dXJuIG48MD9vKG4rdCwwKTppKG4sdCl9fSwxNTQ5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDQ5OTMpLG89VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1yKGUsXCJudW1iZXJcIik7aWYoXCJudW1iZXJcIj09dHlwZW9mIHQpdGhyb3cgbmV3IG8oXCJDYW4ndCBjb252ZXJ0IG51bWJlciB0byBiaWdpbnRcIik7cmV0dXJuIEJpZ0ludCh0KX19LDgxMDY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTMwNSksbz1uKDExOTMpLGk9UmFuZ2VFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSlyZXR1cm4gMDt2YXIgdD1yKGUpLG49byh0KTtpZih0IT09bil0aHJvdyBuZXcgaShcIldyb25nIGxlbmd0aCBvciBpbmRleFwiKTtyZXR1cm4gbn19LDQ5NTg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTU2NCksbz1uKDMwNjApO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihvKGUpKX19LDEzMDU6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNjU5Nik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PStlO3JldHVybiB0IT09dHx8MD09PXQ/MDpyKHQpfX0sMTE5MzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigxMzA1KSxvPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZT4wP28ocihlKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sNDY1NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMDYwKSxvPU9iamVjdDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG8ocihlKSl9fSw3Mzg5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI0OTkpLG89UmFuZ2VFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yKGUpO2lmKG4ldCl0aHJvdyBuZXcgbyhcIldyb25nIG9mZnNldFwiKTtyZXR1cm4gbn19LDI0OTk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTMwNSksbz1SYW5nZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1yKGUpO2lmKHQ8MCl0aHJvdyBuZXcgbyhcIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMFwiKTtyZXR1cm4gdH19LDQ5OTM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMzAxMSksbz1uKDkwMyksaT1uKDc1MjMpLGE9big1Mzc3KSxzPW4oMzczNyksbD1uKDI4OTkpLGM9VHlwZUVycm9yLHU9bChcInRvUHJpbWl0aXZlXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCFvKGUpfHxpKGUpKXJldHVybiBlO3ZhciBuLGw9YShlLHUpO2lmKGwpe2lmKHZvaWQgMD09PXQmJih0PVwiZGVmYXVsdFwiKSxuPXIobCxlLHQpLCFvKG4pfHxpKG4pKXJldHVybiBuO3Rocm93IG5ldyBjKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpfXJldHVybiB2b2lkIDA9PT10JiYodD1cIm51bWJlclwiKSxzKGUsdCl9fSwxNjY1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDQ5OTMpLG89big3NTIzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9cihlLFwic3RyaW5nXCIpO3JldHVybiBvKHQpP3Q6dCtcIlwifX0sMTU1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDc4MDgpLG89big3MTc2KSxpPW4oNjE5KSxhPW4oOTAzKSxzPXIoXCJTZXRcIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYShlKSYmXCJudW1iZXJcIj09dHlwZW9mIGUuc2l6ZSYmbyhlLmhhcykmJm8oZS5rZXlzKX0oZSk/ZTppKGUpP25ldyBzKGUpOmV9fSw4NDY4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj17fTtyW24oMjg5OSkoXCJ0b1N0cmluZ1RhZ1wiKV09XCJ6XCIsZS5leHBvcnRzPVwiW29iamVjdCB6XVwiPT09U3RyaW5nKHIpfSw4MDIxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDkwMjQpLG89U3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihcIlN5bWJvbFwiPT09cihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmdcIik7cmV0dXJuIG8oZSl9fSwyODg6ZT0+e1widXNlIHN0cmljdFwiO3ZhciB0PU1hdGgucm91bmQ7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciBuPXQoZSk7cmV0dXJuIG48MD8wOm4+MjU1PzI1NToyNTUmbn19LDc3OTg6ZT0+e1widXNlIHN0cmljdFwiO3ZhciB0PVN0cmluZztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0KGUpfWNhdGNoKG4pe3JldHVyblwiT2JqZWN0XCJ9fX0sMzgyNTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oNTE4NyksaT1uKDMwMTEpLGE9big4MzA3KSxzPW4oNjY1NSksbD1uKDkxMDIpLGM9bigxOTk2KSx1PW4oMTg5NSksZD1uKDgzNykscD1uKDY5NTgpLGY9big3NzE4KSxoPW4oMTE5MyksbT1uKDgxMDYpLGc9big3Mzg5KSx5PW4oMjg4KSx2PW4oMTY2NSksYj1uKDYyMjUpLFQ9big5MDI0KSx4PW4oOTAzKSx3PW4oNzUyMyksaz1uKDYyNTcpLEU9big1MTE5KSxTPW4oNzAzMSksQT1uKDI0OCkuZixDPW4oNjA1KSxfPW4oODY3OSkuZm9yRWFjaCxEPW4oNTMzNSksUj1uKDk2NzIpLE89bigxMzY5KSxQPW4oMzcxOCksTD1uKDgyMDkpLE49big2NTg5KSxJPW4oMzY4Myksaj1OLmdldCxCPU4uc2V0LEg9Ti5lbmZvcmNlLEY9Ty5mLE09UC5mLEc9by5SYW5nZUVycm9yLFU9Yy5BcnJheUJ1ZmZlcix6PVUucHJvdG90eXBlLFY9Yy5EYXRhVmlldyxXPWwuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyxxPWwuVFlQRURfQVJSQVlfVEFHLEs9bC5UeXBlZEFycmF5LFo9bC5UeXBlZEFycmF5UHJvdG90eXBlLFk9bC5pc1R5cGVkQXJyYXksJD1cIkJZVEVTX1BFUl9FTEVNRU5UXCIsWD1cIldyb25nIGxlbmd0aFwiLFE9ZnVuY3Rpb24oZSx0KXtSKGUsdCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqKHRoaXMpW3RdfX0pfSxKPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBFKHosZSl8fFwiQXJyYXlCdWZmZXJcIj09PSh0PVQoZSkpfHxcIlNoYXJlZEFycmF5QnVmZmVyXCI9PT10fSxlZT1mdW5jdGlvbihlLHQpe3JldHVybiBZKGUpJiYhdyh0KSYmdCBpbiBlJiZmKCt0KSYmdD49MH0sdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD12KHQpLGVlKGUsdCk/ZCgyLGVbdF0pOk0oZSx0KX0sbmU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0PXYodCksIShlZShlLHQpJiZ4KG4pJiZiKG4sXCJ2YWx1ZVwiKSl8fGIobixcImdldFwiKXx8YihuLFwic2V0XCIpfHxuLmNvbmZpZ3VyYWJsZXx8YihuLFwid3JpdGFibGVcIikmJiFuLndyaXRhYmxlfHxiKG4sXCJlbnVtZXJhYmxlXCIpJiYhbi5lbnVtZXJhYmxlP0YoZSx0LG4pOihlW3RdPW4udmFsdWUsZSl9O2E/KFd8fChQLmY9dGUsTy5mPW5lLFEoWixcImJ1ZmZlclwiKSxRKFosXCJieXRlT2Zmc2V0XCIpLFEoWixcImJ5dGVMZW5ndGhcIiksUShaLFwibGVuZ3RoXCIpKSxyKHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDohV30se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjp0ZSxkZWZpbmVQcm9wZXJ0eTpuZX0pLGUuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGE9ZS5tYXRjaCgvXFxkKy8pWzBdLzgsbD1lKyhuP1wiQ2xhbXBlZFwiOlwiXCIpK1wiQXJyYXlcIixjPVwiZ2V0XCIrZSxkPVwic2V0XCIrZSxmPW9bbF0sdj1mLGI9diYmdi5wcm90b3R5cGUsVD17fSx3PWZ1bmN0aW9uKGUsdCl7RihlLHQse2dldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPWooZSk7cmV0dXJuIG4udmlld1tjXSh0KmErbi5ieXRlT2Zmc2V0LCEwKX0odGhpcyx0KX0sc2V0OmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlLHQscil7dmFyIG89aihlKTtvLnZpZXdbZF0odCphK28uYnl0ZU9mZnNldCxuP3kocik6ciwhMCl9KHRoaXMsdCxlKX0sZW51bWVyYWJsZTohMH0pfTtXP3MmJih2PXQoKGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB1KGUsYiksSSh4KHQpP0oodCk/dm9pZCAwIT09cj9uZXcgZih0LGcobixhKSxyKTp2b2lkIDAhPT1uP25ldyBmKHQsZyhuLGEpKTpuZXcgZih0KTpZKHQpP0wodix0KTppKEMsdix0KTpuZXcgZihtKHQpKSxlLHYpfSkpLFMmJlModixLKSxfKEEoZiksKGZ1bmN0aW9uKGUpe2UgaW4gdnx8cCh2LGUsZltlXSl9KSksdi5wcm90b3R5cGU9Yik6KHY9dCgoZnVuY3Rpb24oZSx0LG4scil7dShlLGIpO3ZhciBvLHMsbCxjPTAsZD0wO2lmKHgodCkpe2lmKCFKKHQpKXJldHVybiBZKHQpP0wodix0KTppKEMsdix0KTtvPXQsZD1nKG4sYSk7dmFyIHA9dC5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PXIpe2lmKHAlYSl0aHJvdyBuZXcgRyhYKTtpZigocz1wLWQpPDApdGhyb3cgbmV3IEcoWCl9ZWxzZSBpZigocz1oKHIpKmEpK2Q+cCl0aHJvdyBuZXcgRyhYKTtsPXMvYX1lbHNlIGw9bSh0KSxvPW5ldyBVKHM9bCphKTtmb3IoQihlLHtidWZmZXI6byxieXRlT2Zmc2V0OmQsYnl0ZUxlbmd0aDpzLGxlbmd0aDpsLHZpZXc6bmV3IFYobyl9KTtjPGw7KXcoZSxjKyspfSkpLFMmJlModixLKSxiPXYucHJvdG90eXBlPWsoWikpLGIuY29uc3RydWN0b3IhPT12JiZwKGIsXCJjb25zdHJ1Y3RvclwiLHYpLEgoYikuVHlwZWRBcnJheUNvbnN0cnVjdG9yPXYscSYmcChiLHEsbCk7dmFyIEU9diE9PWY7VFtsXT12LHIoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6RSxzaGFtOiFXfSxUKSwkIGluIHZ8fHAodiwkLGEpLCQgaW4gYnx8cChiLCQsYSksRChsKX0pOmUuZXhwb3J0cz1mdW5jdGlvbigpe319LDY2NTU6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTE4Nyksbz1uKDI1NDIpLGk9big3OTMzKSxhPW4oOTEwMikuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyxzPXIuQXJyYXlCdWZmZXIsbD1yLkludDhBcnJheTtlLmV4cG9ydHM9IWF8fCFvKChmdW5jdGlvbigpe2woMSl9KSl8fCFvKChmdW5jdGlvbigpe25ldyBsKC0xKX0pKXx8IWkoKGZ1bmN0aW9uKGUpe25ldyBsLG5ldyBsKG51bGwpLG5ldyBsKDEuNSksbmV3IGwoZSl9KSwhMCl8fG8oKGZ1bmN0aW9uKCl7cmV0dXJuIDEhPT1uZXcgbChuZXcgcygyKSwxLHZvaWQgMCkubGVuZ3RofSkpfSw2MDU6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oMTc5MSksbz1uKDMwMTEpLGk9big2MzQ5KSxhPW4oNDY1Nikscz1uKDEyMTQpLGw9bigxNDkpLGM9bigyNDEpLHU9bigxOTQ3KSxkPW4oMzE2MCkscD1uKDkxMDIpLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsZj1uKDE1NDkpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdCxuLGgsbSxnLHksdixiLFQ9aSh0aGlzKSx4PWEoZSksdz1hcmd1bWVudHMubGVuZ3RoLGs9dz4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsRT12b2lkIDAhPT1rLFM9Yyh4KTtpZihTJiYhdShTKSlmb3IoYj0odj1sKHgsUykpLm5leHQseD1bXTshKHk9byhiLHYpKS5kb25lOyl4LnB1c2goeS52YWx1ZSk7Zm9yKEUmJnc+MiYmKGs9cihrLGFyZ3VtZW50c1syXSkpLG49cyh4KSxoPW5ldyhwKFQpKShuKSxtPWQoaCksdD0wO24+dDt0KyspZz1FP2soeFt0XSx0KTp4W3RdLGhbdF09bT9mKGcpOitnO3JldHVybiBofX0sOTg5MjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMzIyKSxvPTAsaT1NYXRoLnJhbmRvbSgpLGE9cigxLi50b1N0cmluZyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVyblwiU3ltYm9sKFwiKyh2b2lkIDA9PT1lP1wiXCI6ZSkrXCIpX1wiK2EoKytvK2ksMzYpfX0sNDk3OTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigyNTQyKSxvPW4oMjg5OSksaT1uKDgzMDcpLGE9bigxNjAyKSxzPW8oXCJpdGVyYXRvclwiKTtlLmV4cG9ydHM9IXIoKGZ1bmN0aW9uKCl7dmFyIGU9bmV3IFVSTChcImI/YT0xJmI9MiZjPTNcIixcImh0dHA6Ly9hXCIpLHQ9ZS5zZWFyY2hQYXJhbXMsbj1uZXcgVVJMU2VhcmNoUGFyYW1zKFwiYT0xJmE9MiZiPTNcIikscj1cIlwiO3JldHVybiBlLnBhdGhuYW1lPVwiYyUyMGRcIix0LmZvckVhY2goKGZ1bmN0aW9uKGUsbil7dC5kZWxldGUoXCJiXCIpLHIrPW4rZX0pKSxuLmRlbGV0ZShcImFcIiwyKSxuLmRlbGV0ZShcImJcIix2b2lkIDApLGEmJighZS50b0pTT058fCFuLmhhcyhcImFcIiwxKXx8bi5oYXMoXCJhXCIsMil8fCFuLmhhcyhcImFcIix2b2lkIDApfHxuLmhhcyhcImJcIikpfHwhdC5zaXplJiYoYXx8IWkpfHwhdC5zb3J0fHxcImh0dHA6Ly9hL2MlMjBkP2E9MSZjPTNcIiE9PWUuaHJlZnx8XCIzXCIhPT10LmdldChcImNcIil8fFwiYT0xXCIhPT1TdHJpbmcobmV3IFVSTFNlYXJjaFBhcmFtcyhcIj9hPTFcIikpfHwhdFtzXXx8XCJhXCIhPT1uZXcgVVJMKFwiaHR0cHM6Ly9hQGJcIikudXNlcm5hbWV8fFwiYlwiIT09bmV3IFVSTFNlYXJjaFBhcmFtcyhuZXcgVVJMU2VhcmNoUGFyYW1zKFwiYT1iXCIpKS5nZXQoXCJhXCIpfHxcInhuLS1lMWF5YmNcIiE9PW5ldyBVUkwoXCJodHRwOi8vXFx1MDQ0MlxcdTA0MzVcXHUwNDQxXFx1MDQ0MlwiKS5ob3N0fHxcIiMlRDAlQjFcIiE9PW5ldyBVUkwoXCJodHRwOi8vYSNcXHUwNDMxXCIpLmhhc2h8fFwiYTFjM1wiIT09cnx8XCJ4XCIhPT1uZXcgVVJMKFwiaHR0cDovL3hcIix2b2lkIDApLmhvc3R9KSl9LDc4MzY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNjE4MCk7ZS5leHBvcnRzPXImJiFTeW1ib2wuc2hhbSYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sNTkxNTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MzA3KSxvPW4oMjU0Mik7ZS5leHBvcnRzPXImJm8oKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT09T2JqZWN0LmRlZmluZVByb3BlcnR5KChmdW5jdGlvbigpe30pLFwicHJvdG90eXBlXCIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpfSw2MjY4OmU9PntcInVzZSBzdHJpY3RcIjt2YXIgdD1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsbil7aWYoZTxuKXRocm93IG5ldyB0KFwiTm90IGVub3VnaCBhcmd1bWVudHNcIik7cmV0dXJuIGV9fSw2NTE5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxODcpLG89big3MTc2KSxpPXIuV2Vha01hcDtlLmV4cG9ydHM9byhpKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFN0cmluZyhpKSl9LDY5MDI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNjQyMiksbz1uKDYyMjUpLGk9bigzNTExKSxhPW4oMTM2OSkuZjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9ci5TeW1ib2x8fChyLlN5bWJvbD17fSk7byh0LGUpfHxhKHQsZSx7dmFsdWU6aS5mKGUpfSl9fSwzNTExOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI4OTkpO3QuZj1yfSwyODk5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUxODcpLG89bigyMjE3KSxpPW4oNjIyNSksYT1uKDk4OTIpLHM9big2MTgwKSxsPW4oNzgzNiksYz1yLlN5bWJvbCx1PW8oXCJ3a3NcIiksZD1sP2MuZm9yfHxjOmMmJmMud2l0aG91dFNldHRlcnx8YTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGkodSxlKXx8KHVbZV09cyYmaShjLGUpP2NbZV06ZChcIlN5bWJvbC5cIitlKSksdVtlXX19LDU1OTg6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNDk1OCksbz1uKDkyOTcpLGk9bigxOTUzKSxhPW4oNjU4OSkscz1uKDEzNjkpLmYsbD1uKDc4ODIpLGM9big1OTUzKSx1PW4oMTYwMiksZD1uKDgzMDcpLHA9XCJBcnJheSBJdGVyYXRvclwiLGY9YS5zZXQsaD1hLmdldHRlckZvcihwKTtlLmV4cG9ydHM9bChBcnJheSxcIkFycmF5XCIsKGZ1bmN0aW9uKGUsdCl7Zih0aGlzLHt0eXBlOnAsdGFyZ2V0OnIoZSksaW5kZXg6MCxraW5kOnR9KX0pLChmdW5jdGlvbigpe3ZhciBlPWgodGhpcyksdD1lLnRhcmdldCxuPWUuaW5kZXgrKztpZighdHx8bj49dC5sZW5ndGgpcmV0dXJuIGUudGFyZ2V0PXZvaWQgMCxjKHZvaWQgMCwhMCk7c3dpdGNoKGUua2luZCl7Y2FzZVwia2V5c1wiOnJldHVybiBjKG4sITEpO2Nhc2VcInZhbHVlc1wiOnJldHVybiBjKHRbbl0sITEpfXJldHVybiBjKFtuLHRbbl1dLCExKX0pLFwidmFsdWVzXCIpO3ZhciBtPWkuQXJndW1lbnRzPWkuQXJyYXk7aWYobyhcImtleXNcIiksbyhcInZhbHVlc1wiKSxvKFwiZW50cmllc1wiKSwhdSYmZCYmXCJ2YWx1ZXNcIiE9PW0ubmFtZSl0cnl7cyhtLFwibmFtZVwiLHt2YWx1ZTpcInZhbHVlc1wifSl9Y2F0Y2goZyl7fX0sMTE2NzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7big5Mjk3KShcImZsYXRNYXBcIil9LDEyMzA6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24oOTI5NykoXCJmbGF0XCIpfSwyMDE1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigzMzIyKSxpPW4oNTIzMCksYT1uKDMwNjApLHM9bigxMDI1KSxsPW4oNjk0NiksYz1uKDE2MDIpLHU9bC5NYXAsZD1sLmhhcyxwPWwuZ2V0LGY9bC5zZXQsaD1vKFtdLnB1c2gpO3Ioe3RhcmdldDpcIk1hcFwiLHN0YXQ6ITAsZm9yY2VkOmN9LHtncm91cEJ5OmZ1bmN0aW9uKGUsdCl7YShlKSxpKHQpO3ZhciBuPW5ldyB1LHI9MDtyZXR1cm4gcyhlLChmdW5jdGlvbihlKXt2YXIgbz10KGUscisrKTtkKG4sbyk/aChwKG4sbyksZSk6ZihuLG8sW2VdKX0pKSxufX0pfSwxNTAxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigxNjAyKSxpPW4oNjc2OCksYT1uKDI1NDIpLHM9big3ODA4KSxsPW4oNzE3NiksYz1uKDUyKSx1PW4oOTY1OCksZD1uKDg4MjUpLHA9aSYmaS5wcm90b3R5cGU7aWYocih7dGFyZ2V0OlwiUHJvbWlzZVwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEhaSYmYSgoZnVuY3Rpb24oKXtwLmZpbmFsbHkuY2FsbCh7dGhlbjpmdW5jdGlvbigpe319LChmdW5jdGlvbigpe30pKX0pKX0se2ZpbmFsbHk6ZnVuY3Rpb24oZSl7dmFyIHQ9Yyh0aGlzLHMoXCJQcm9taXNlXCIpKSxuPWwoZSk7cmV0dXJuIHRoaXMudGhlbihuP2Z1bmN0aW9uKG4pe3JldHVybiB1KHQsZSgpKS50aGVuKChmdW5jdGlvbigpe3JldHVybiBufSkpfTplLG4/ZnVuY3Rpb24obil7cmV0dXJuIHUodCxlKCkpLnRoZW4oKGZ1bmN0aW9uKCl7dGhyb3cgbn0pKX06ZSl9fSksIW8mJmwoaSkpe3ZhciBmPXMoXCJQcm9taXNlXCIpLnByb3RvdHlwZS5maW5hbGx5O3AuZmluYWxseSE9PWYmJmQocCxcImZpbmFsbHlcIixmLHt1bnNhZmU6ITB9KX19LDU3MDE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDE2OTEpO3Ioe3RhcmdldDpcIlJlZ0V4cFwiLHByb3RvOiEwLGZvcmNlZDovLi8uZXhlYyE9PW99LHtleGVjOm99KX0sNTM1NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MTg3KSxvPW4oODMwNyksaT1uKDk2NzIpLGE9bigyMDYxKSxzPW4oMjU0MiksbD1yLlJlZ0V4cCxjPWwucHJvdG90eXBlO28mJnMoKGZ1bmN0aW9uKCl7dmFyIGU9ITA7dHJ5e2woXCIuXCIsXCJkXCIpfWNhdGNoKHMpe2U9ITF9dmFyIHQ9e30sbj1cIlwiLHI9ZT9cImRnaW1zeVwiOlwiZ2ltc3lcIixvPWZ1bmN0aW9uKGUscil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4rPXIsITB9fSl9LGk9e2RvdEFsbDpcInNcIixnbG9iYWw6XCJnXCIsaWdub3JlQ2FzZTpcImlcIixtdWx0aWxpbmU6XCJtXCIsc3RpY2t5OlwieVwifTtmb3IodmFyIGEgaW4gZSYmKGkuaGFzSW5kaWNlcz1cImRcIiksaSlvKGEsaVthXSk7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxcImZsYWdzXCIpLmdldC5jYWxsKHQpIT09cnx8biE9PXJ9KSkmJmkoYyxcImZsYWdzXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6YX0pfSw4MDQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oOTgwMykuY2hhckF0LG89big4MDIxKSxpPW4oNjU4OSksYT1uKDc4ODIpLHM9big1OTUzKSxsPVwiU3RyaW5nIEl0ZXJhdG9yXCIsYz1pLnNldCx1PWkuZ2V0dGVyRm9yKGwpO2EoU3RyaW5nLFwiU3RyaW5nXCIsKGZ1bmN0aW9uKGUpe2ModGhpcyx7dHlwZTpsLHN0cmluZzpvKGUpLGluZGV4OjB9KX0pLChmdW5jdGlvbigpe3ZhciBlLHQ9dSh0aGlzKSxuPXQuc3RyaW5nLG89dC5pbmRleDtyZXR1cm4gbz49bi5sZW5ndGg/cyh2b2lkIDAsITApOihlPXIobixvKSx0LmluZGV4Kz1lLmxlbmd0aCxzKGUsITEpKX0pKX0sMjQxNDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MDQyKSxvPW4oMzAxMSksaT1uKDMzMjIpLGE9big2Mjk2KSxzPW4oMjU0MiksbD1uKDI3ODYpLGM9big3MTc2KSx1PW4oNDEzNSksZD1uKDEzMDUpLHA9bigxMTkzKSxmPW4oODAyMSksaD1uKDMwNjApLG09big2NzUpLGc9big1Mzc3KSx5PW4oMzE2OCksdj1uKDg5ODcpLGI9bigyODk5KShcInJlcGxhY2VcIiksVD1NYXRoLm1heCx4PU1hdGgubWluLHc9aShbXS5jb25jYXQpLGs9aShbXS5wdXNoKSxFPWkoXCJcIi5pbmRleE9mKSxTPWkoXCJcIi5zbGljZSksQT1cIiQwXCI9PT1cImFcIi5yZXBsYWNlKC8uLyxcIiQwXCIpLEM9ISEvLi9bYl0mJlwiXCI9PT0vLi9bYl0oXCJhXCIsXCIkMFwiKTthKFwicmVwbGFjZVwiLChmdW5jdGlvbihlLHQsbil7dmFyIGk9Qz9cIiRcIjpcIiQwXCI7cmV0dXJuW2Z1bmN0aW9uKGUsbil7dmFyIHI9aCh0aGlzKSxpPXUoZSk/dm9pZCAwOmcoZSxiKTtyZXR1cm4gaT9vKGksZSxyLG4pOm8odCxmKHIpLGUsbil9LGZ1bmN0aW9uKGUsbyl7dmFyIGE9bCh0aGlzKSxzPWYoZSk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIG8mJi0xPT09RShvLGkpJiYtMT09PUUobyxcIiQ8XCIpKXt2YXIgdT1uKHQsYSxzLG8pO2lmKHUuZG9uZSlyZXR1cm4gdS52YWx1ZX12YXIgaD1jKG8pO2h8fChvPWYobykpO3ZhciBnLGI9YS5nbG9iYWw7YiYmKGc9YS51bmljb2RlLGEubGFzdEluZGV4PTApO2Zvcih2YXIgQSxDPVtdO251bGwhPT0oQT12KGEscykpJiYoayhDLEEpLGIpOyl7XCJcIj09PWYoQVswXSkmJihhLmxhc3RJbmRleD1tKHMscChhLmxhc3RJbmRleCksZykpfWZvcih2YXIgXyxEPVwiXCIsUj0wLE89MDtPPEMubGVuZ3RoO08rKyl7Zm9yKHZhciBQLEw9ZigoQT1DW09dKVswXSksTj1UKHgoZChBLmluZGV4KSxzLmxlbmd0aCksMCksST1bXSxqPTE7ajxBLmxlbmd0aDtqKyspayhJLHZvaWQgMD09PShfPUFbal0pP186U3RyaW5nKF8pKTt2YXIgQj1BLmdyb3VwcztpZihoKXt2YXIgSD13KFtMXSxJLE4scyk7dm9pZCAwIT09QiYmayhILEIpLFA9ZihyKG8sdm9pZCAwLEgpKX1lbHNlIFA9eShMLHMsTixJLEIsbyk7Tj49UiYmKEQrPVMocyxSLE4pK1AsUj1OK0wubGVuZ3RoKX1yZXR1cm4gRCtTKHMsUil9XX0pLCEhcygoZnVuY3Rpb24oKXt2YXIgZT0vLi87cmV0dXJuIGUuZXhlYz1mdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiBlLmdyb3Vwcz17YTpcIjdcIn0sZX0sXCI3XCIhPT1cIlwiLnJlcGxhY2UoZSxcIiQ8YT5cIil9KSl8fCFBfHxDKX0sNjk2NDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big5MTAyKSxvPW4oODU2OCksaT1uKDE1NDkpLGE9big5MDI0KSxzPW4oMzAxMSksbD1uKDMzMjIpLGM9bigyNTQyKSx1PXIuYVR5cGVkQXJyYXksZD1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QscD1sKFwiXCIuc2xpY2UpO2QoXCJmaWxsXCIsKGZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg7dSh0aGlzKTt2YXIgbj1cIkJpZ1wiPT09cChhKHRoaXMpLDAsMyk/aShlKTorZTtyZXR1cm4gcyhvLHRoaXMsbix0PjE/YXJndW1lbnRzWzFdOnZvaWQgMCx0PjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSxjKChmdW5jdGlvbigpe3ZhciBlPTA7cmV0dXJuIG5ldyBJbnQ4QXJyYXkoMikuZmlsbCh7dmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiBlKyt9fSksMSE9PWV9KSkpfSwzNjA0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuKDM4MjUpKFwiRmxvYXQzMlwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe3JldHVybiBlKHRoaXMsdCxuLHIpfX0pKX0sMzc4MjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bigzODI1KShcIkZsb2F0NjRcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gZSh0aGlzLHQsbixyKX19KSl9LDY4OTk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNjY1NSk7KDAsbig5MTAyKS5leHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kKShcImZyb21cIixuKDYwNSkscil9LDE0NzY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24oMzgyNSkoXCJJbnQxNlwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe3JldHVybiBlKHRoaXMsdCxuLHIpfX0pKX0sMTkyMTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bigzODI1KShcIkludDMyXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4scil7cmV0dXJuIGUodGhpcyx0LG4scil9fSkpfSw1ODQxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuKDM4MjUpKFwiSW50OFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe3JldHVybiBlKHRoaXMsdCxuLHIpfX0pKX0sNjA2OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDkxMDIpLG89big2NjU1KSxpPXIuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjsoMCxyLmV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QpKFwib2ZcIiwoZnVuY3Rpb24oKXtmb3IodmFyIGU9MCx0PWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcoaSh0aGlzKSkodCk7dD5lOyluW2VdPWFyZ3VtZW50c1tlKytdO3JldHVybiBufSksbyl9LDY3MDQ6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTE4Nyksbz1uKDMwMTEpLGk9big5MTAyKSxhPW4oMTIxNCkscz1uKDczODkpLGw9big0NjU2KSxjPW4oMjU0MiksdT1yLlJhbmdlRXJyb3IsZD1yLkludDhBcnJheSxwPWQmJmQucHJvdG90eXBlLGY9cCYmcC5zZXQsaD1pLmFUeXBlZEFycmF5LG09aS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGc9IWMoKGZ1bmN0aW9uKCl7dmFyIGU9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDIpO3JldHVybiBvKGYsZSx7bGVuZ3RoOjEsMDozfSwxKSwzIT09ZVsxXX0pKSx5PWcmJmkuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyYmYygoZnVuY3Rpb24oKXt2YXIgZT1uZXcgZCgyKTtyZXR1cm4gZS5zZXQoMSksZS5zZXQoXCIyXCIsMSksMCE9PWVbMF18fDIhPT1lWzFdfSkpO20oXCJzZXRcIiwoZnVuY3Rpb24oZSl7aCh0aGlzKTt2YXIgdD1zKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDEpLG49bChlKTtpZihnKXJldHVybiBvKGYsdGhpcyxuLHQpO3ZhciByPXRoaXMubGVuZ3RoLGk9YShuKSxjPTA7aWYoaSt0PnIpdGhyb3cgbmV3IHUoXCJXcm9uZyBsZW5ndGhcIik7Zm9yKDtjPGk7KXRoaXNbdCtjXT1uW2MrK119KSwhZ3x8eSl9LDM5NjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MTg3KSxvPW4oNTcwNSksaT1uKDI1NDIpLGE9big1MjMwKSxzPW4oODg1MiksbD1uKDkxMDIpLGM9bigxNjA3KSx1PW4oNzQ0MCksZD1uKDE5OTEpLHA9big4MzUzKSxmPWwuYVR5cGVkQXJyYXksaD1sLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsbT1yLlVpbnQxNkFycmF5LGc9bSYmbyhtLnByb3RvdHlwZS5zb3J0KSx5PSEhZyYmIShpKChmdW5jdGlvbigpe2cobmV3IG0oMiksbnVsbCl9KSkmJmkoKGZ1bmN0aW9uKCl7ZyhuZXcgbSgyKSx7fSl9KSkpLHY9ISFnJiYhaSgoZnVuY3Rpb24oKXtpZihkKXJldHVybiBkPDc0O2lmKGMpcmV0dXJuIGM8Njc7aWYodSlyZXR1cm4hMDtpZihwKXJldHVybiBwPDYwMjt2YXIgZSx0LG49bmV3IG0oNTE2KSxyPUFycmF5KDUxNik7Zm9yKGU9MDtlPDUxNjtlKyspdD1lJTQsbltlXT01MTUtZSxyW2VdPWUtMip0KzM7Zm9yKGcobiwoZnVuY3Rpb24oZSx0KXtyZXR1cm4oZS80fDApLSh0LzR8MCl9KSksZT0wO2U8NTE2O2UrKylpZihuW2VdIT09cltlXSlyZXR1cm4hMH0pKTtoKFwic29ydFwiLChmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09ZSYmYShlKSx2P2codGhpcyxlKTpzKGYodGhpcyksZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7cmV0dXJuIHZvaWQgMCE9PWU/K2UodCxuKXx8MDpuIT09bj8tMTp0IT09dD8xOjA9PT10JiYwPT09bj8xL3Q+MCYmMS9uPDA/MTotMTp0Pm59fShlKSl9KSwhdnx8eSl9LDc5OTY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24oMzgyNSkoXCJVaW50MTZcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gZSh0aGlzLHQsbixyKX19KSl9LDYxMTk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24oMzgyNSkoXCJVaW50MzJcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gZSh0aGlzLHQsbixyKX19KSl9LDQ0NzI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24oMzgyNSkoXCJVaW50OFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe3JldHVybiBlKHRoaXMsdCxuLHIpfX0pKX0sMjYxMTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bigzODI1KShcIlVpbnQ4XCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4scil7cmV0dXJuIGUodGhpcyx0LG4scil9fSksITApfSw5NDQyOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89big1NDUwKSxpPW4oNjk0NikucmVtb3ZlO3Ioe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9byh0aGlzKSxuPSEwLHI9MCxhPWFyZ3VtZW50cy5sZW5ndGg7cjxhO3IrKyllPWkodCxhcmd1bWVudHNbcl0pLG49biYmZTtyZXR1cm4hIW59fSl9LDIwOTY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDE3OTEpLGk9big1NDUwKSxhPW4oODk4Myk7cih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtldmVyeTpmdW5jdGlvbihlKXt2YXIgdD1pKHRoaXMpLG49byhlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4hMSE9PWEodCwoZnVuY3Rpb24oZSxyKXtpZighbihlLHIsdCkpcmV0dXJuITF9KSwhMCl9fSl9LDc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDE3OTEpLGk9big1NDUwKSxhPW4oNjk0Nikscz1uKDg5ODMpLGw9YS5NYXAsYz1hLnNldDtyKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ZpbHRlcjpmdW5jdGlvbihlKXt2YXIgdD1pKHRoaXMpLG49byhlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSxyPW5ldyBsO3JldHVybiBzKHQsKGZ1bmN0aW9uKGUsbyl7bihlLG8sdCkmJmMocixvLGUpfSkpLHJ9fSl9LDg5ODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oMTc5MSksaT1uKDU0NTApLGE9big4OTgzKTtyKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ZpbmRLZXk6ZnVuY3Rpb24oZSl7dmFyIHQ9aSh0aGlzKSxuPW8oZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkscj1hKHQsKGZ1bmN0aW9uKGUscil7aWYobihlLHIsdCkpcmV0dXJue2tleTpyfX0pLCEwKTtyZXR1cm4gciYmci5rZXl9fSl9LDg2ODA6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDE3OTEpLGk9big1NDUwKSxhPW4oODk4Myk7cih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtmaW5kOmZ1bmN0aW9uKGUpe3ZhciB0PWkodGhpcyksbj1vKGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLHI9YSh0LChmdW5jdGlvbihlLHIpe2lmKG4oZSxyLHQpKXJldHVybnt2YWx1ZTplfX0pLCEwKTtyZXR1cm4gciYmci52YWx1ZX19KX0sOTE5NTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oNjk0Nik7cih7dGFyZ2V0OlwiTWFwXCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtmcm9tOm4oMjQyMCkoby5NYXAsby5zZXQsITApfSl9LDIxMTM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24oMjAxNSl9LDk5MDE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDcwNDIpLGk9big1NDUwKSxhPW4oODk4Myk7cih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtpbmNsdWRlczpmdW5jdGlvbihlKXtyZXR1cm4hMD09PWEoaSh0aGlzKSwoZnVuY3Rpb24odCl7aWYobyh0LGUpKXJldHVybiEwfSksITApfX0pfSw5MzYxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigzMDExKSxpPW4oMTAyNSksYT1uKDcxNzYpLHM9big1MjMwKSxsPW4oNjk0NikuTWFwO3Ioe3RhcmdldDpcIk1hcFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7a2V5Qnk6ZnVuY3Rpb24oZSx0KXt2YXIgbj1uZXcoYSh0aGlzKT90aGlzOmwpO3ModCk7dmFyIHI9cyhuLnNldCk7cmV0dXJuIGkoZSwoZnVuY3Rpb24oZSl7byhyLG4sdChlKSxlKX0pKSxufX0pfSw5NzIwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89big1NDUwKSxpPW4oODk4Myk7cih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtrZXlPZjpmdW5jdGlvbihlKXt2YXIgdD1pKG8odGhpcyksKGZ1bmN0aW9uKHQsbil7aWYodD09PWUpcmV0dXJue2tleTpufX0pLCEwKTtyZXR1cm4gdCYmdC5rZXl9fSl9LDM0MzM6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDE3OTEpLGk9big1NDUwKSxhPW4oNjk0Nikscz1uKDg5ODMpLGw9YS5NYXAsYz1hLnNldDtyKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se21hcEtleXM6ZnVuY3Rpb24oZSl7dmFyIHQ9aSh0aGlzKSxuPW8oZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkscj1uZXcgbDtyZXR1cm4gcyh0LChmdW5jdGlvbihlLG8pe2MocixuKGUsbyx0KSxlKX0pKSxyfX0pfSw3NTA1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigxNzkxKSxpPW4oNTQ1MCksYT1uKDY5NDYpLHM9big4OTgzKSxsPWEuTWFwLGM9YS5zZXQ7cih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHttYXBWYWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9aSh0aGlzKSxuPW8oZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkscj1uZXcgbDtyZXR1cm4gcyh0LChmdW5jdGlvbihlLG8pe2MocixvLG4oZSxvLHQpKX0pKSxyfX0pfSwzODMyOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89big1NDUwKSxpPW4oMTAyNSksYT1uKDY5NDYpLnNldDtyKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGFyaXR5OjEsZm9yY2VkOiEwfSx7bWVyZ2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW8odGhpcyksbj1hcmd1bWVudHMubGVuZ3RoLHI9MDtyPG47KWkoYXJndW1lbnRzW3IrK10sKGZ1bmN0aW9uKGUsbil7YSh0LGUsbil9KSx7QVNfRU5UUklFUzohMH0pO3JldHVybiB0fX0pfSw0NDk0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89big2OTQ2KTtyKHt0YXJnZXQ6XCJNYXBcIixzdGF0OiEwLGZvcmNlZDohMH0se29mOm4oODE5Nykoby5NYXAsby5zZXQsITApfSl9LDIzNTk6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDUyMzApLGk9big1NDUwKSxhPW4oODk4Mykscz1UeXBlRXJyb3I7cih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtyZWR1Y2U6ZnVuY3Rpb24oZSl7dmFyIHQ9aSh0aGlzKSxuPWFyZ3VtZW50cy5sZW5ndGg8MixyPW4/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihvKGUpLGEodCwoZnVuY3Rpb24obyxpKXtuPyhuPSExLHI9byk6cj1lKHIsbyxpLHQpfSkpLG4pdGhyb3cgbmV3IHMoXCJSZWR1Y2Ugb2YgZW1wdHkgbWFwIHdpdGggbm8gaW5pdGlhbCB2YWx1ZVwiKTtyZXR1cm4gcn19KX0sMTAxOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigxNzkxKSxpPW4oNTQ1MCksYT1uKDg5ODMpO3Ioe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7c29tZTpmdW5jdGlvbihlKXt2YXIgdD1pKHRoaXMpLG49byhlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4hMD09PWEodCwoZnVuY3Rpb24oZSxyKXtpZihuKGUscix0KSlyZXR1cm4hMH0pLCEwKX19KX0sODEwMzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oNTIzMCksaT1uKDU0NTApLGE9big2OTQ2KSxzPVR5cGVFcnJvcixsPWEuZ2V0LGM9YS5oYXMsdT1hLnNldDtyKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se3VwZGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuPWkodGhpcykscj1hcmd1bWVudHMubGVuZ3RoO28odCk7dmFyIGE9YyhuLGUpO2lmKCFhJiZyPDMpdGhyb3cgbmV3IHMoXCJVcGRhdGluZyBhYnNlbnQgdmFsdWVcIik7dmFyIGQ9YT9sKG4sZSk6byhyPjI/YXJndW1lbnRzWzJdOnZvaWQgMCkoZSxuKTtyZXR1cm4gdShuLGUsdChkLGUsbikpLG59fSl9LDYwMjY6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDY1NDkpLGk9big3MjM0KS5hZGQ7cih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHthZGRBbGw6ZnVuY3Rpb24oKXtmb3IodmFyIGU9byh0aGlzKSx0PTAsbj1hcmd1bWVudHMubGVuZ3RoO3Q8bjt0KyspaShlLGFyZ3VtZW50c1t0XSk7cmV0dXJuIGV9fSl9LDM4NDE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDY1NDkpLGk9big3MjM0KS5yZW1vdmU7cih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1vKHRoaXMpLG49ITAscj0wLGE9YXJndW1lbnRzLmxlbmd0aDtyPGE7cisrKWU9aSh0LGFyZ3VtZW50c1tyXSksbj1uJiZlO3JldHVybiEhbn19KX0sODIyNzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oMzAxMSksaT1uKDE1NSksYT1uKDg4OSk7cih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtkaWZmZXJlbmNlOmZ1bmN0aW9uKGUpe3JldHVybiBvKGEsdGhpcyxpKGUpKX19KX0sMTM3OTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oMTc5MSksaT1uKDY1NDkpLGE9big0OTE5KTtyKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2V2ZXJ5OmZ1bmN0aW9uKGUpe3ZhciB0PWkodGhpcyksbj1vKGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiExIT09YSh0LChmdW5jdGlvbihlKXtpZighbihlLGUsdCkpcmV0dXJuITF9KSwhMCl9fSl9LDE5OTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oMTc5MSksaT1uKDY1NDkpLGE9big3MjM0KSxzPW4oNDkxOSksbD1hLlNldCxjPWEuYWRkO3Ioe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmlsdGVyOmZ1bmN0aW9uKGUpe3ZhciB0PWkodGhpcyksbj1vKGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLHI9bmV3IGw7cmV0dXJuIHModCwoZnVuY3Rpb24oZSl7bihlLGUsdCkmJmMocixlKX0pKSxyfX0pfSw4MDE5OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigxNzkxKSxpPW4oNjU0OSksYT1uKDQ5MTkpO3Ioe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmluZDpmdW5jdGlvbihlKXt2YXIgdD1pKHRoaXMpLG49byhlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSxyPWEodCwoZnVuY3Rpb24oZSl7aWYobihlLGUsdCkpcmV0dXJue3ZhbHVlOmV9fSksITApO3JldHVybiByJiZyLnZhbHVlfX0pfSw5MDQ2OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89big3MjM0KTtyKHt0YXJnZXQ6XCJTZXRcIixzdGF0OiEwLGZvcmNlZDohMH0se2Zyb206bigyNDIwKShvLlNldCxvLmFkZCwhMSl9KX0sMzg0MjooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oMzAxMSksaT1uKDE1NSksYT1uKDUyNTApO3Ioe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aW50ZXJzZWN0aW9uOmZ1bmN0aW9uKGUpe3JldHVybiBvKGEsdGhpcyxpKGUpKX19KX0sMzM0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigzMDExKSxpPW4oMTU1KSxhPW4oNzA2Nik7cih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtpc0Rpc2pvaW50RnJvbTpmdW5jdGlvbihlKXtyZXR1cm4gbyhhLHRoaXMsaShlKSl9fSl9LDY0NzU6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTM2OSksbz1uKDMwMTEpLGk9bigxNTUpLGE9big4ODQyKTtyKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2lzU3Vic2V0T2Y6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oYSx0aGlzLGkoZSkpfX0pfSw5MDU3OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigzMDExKSxpPW4oMTU1KSxhPW4oODQ1NCk7cih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtpc1N1cGVyc2V0T2Y6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oYSx0aGlzLGkoZSkpfX0pfSwzNTc3OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigzMzIyKSxpPW4oNjU0OSksYT1uKDQ5MTkpLHM9big4MDIxKSxsPW8oW10uam9pbiksYz1vKFtdLnB1c2gpO3Ioe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7am9pbjpmdW5jdGlvbihlKXt2YXIgdD1pKHRoaXMpLG49dm9pZCAwPT09ZT9cIixcIjpzKGUpLHI9W107cmV0dXJuIGEodCwoZnVuY3Rpb24oZSl7YyhyLGUpfSkpLGwocixuKX19KX0sMTk1MDooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oMTc5MSksaT1uKDY1NDkpLGE9big3MjM0KSxzPW4oNDkxOSksbD1hLlNldCxjPWEuYWRkO3Ioe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7bWFwOmZ1bmN0aW9uKGUpe3ZhciB0PWkodGhpcyksbj1vKGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLHI9bmV3IGw7cmV0dXJuIHModCwoZnVuY3Rpb24oZSl7YyhyLG4oZSxlLHQpKX0pKSxyfX0pfSw2NjYwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89big3MjM0KTtyKHt0YXJnZXQ6XCJTZXRcIixzdGF0OiEwLGZvcmNlZDohMH0se29mOm4oODE5Nykoby5TZXQsby5hZGQsITEpfSl9LDM4ODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oNTIzMCksaT1uKDY1NDkpLGE9big0OTE5KSxzPVR5cGVFcnJvcjtyKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se3JlZHVjZTpmdW5jdGlvbihlKXt2YXIgdD1pKHRoaXMpLG49YXJndW1lbnRzLmxlbmd0aDwyLHI9bj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKG8oZSksYSh0LChmdW5jdGlvbihvKXtuPyhuPSExLHI9byk6cj1lKHIsbyxvLHQpfSkpLG4pdGhyb3cgbmV3IHMoXCJSZWR1Y2Ugb2YgZW1wdHkgc2V0IHdpdGggbm8gaW5pdGlhbCB2YWx1ZVwiKTtyZXR1cm4gcn19KX0sNjY4ODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oMTc5MSksaT1uKDY1NDkpLGE9big0OTE5KTtyKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se3NvbWU6ZnVuY3Rpb24oZSl7dmFyIHQ9aSh0aGlzKSxuPW8oZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuITA9PT1hKHQsKGZ1bmN0aW9uKGUpe2lmKG4oZSxlLHQpKXJldHVybiEwfSksITApfX0pfSw5MjQ0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigzMDExKSxpPW4oMTU1KSxhPW4oNTM4MCk7cih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtzeW1tZXRyaWNEaWZmZXJlbmNlOmZ1bmN0aW9uKGUpe3JldHVybiBvKGEsdGhpcyxpKGUpKX19KX0sNDY0ODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1MzY5KSxvPW4oMzAxMSksaT1uKDE1NSksYT1uKDgzNCk7cih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHt1bmlvbjpmdW5jdGlvbihlKXtyZXR1cm4gbyhhLHRoaXMsaShlKSl9fSl9LDE4MzI6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTE4Nyksbz1uKDY5MDIpLGk9bigxMzY5KS5mLGE9bigzNzE4KS5mLHM9ci5TeW1ib2w7aWYobyhcImRpc3Bvc2VcIikscyl7dmFyIGw9YShzLFwiZGlzcG9zZVwiKTtsLmVudW1lcmFibGUmJmwuY29uZmlndXJhYmxlJiZsLndyaXRhYmxlJiZpKHMsXCJkaXNwb3NlXCIse3ZhbHVlOmwudmFsdWUsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsd3JpdGFibGU6ITF9KX19LDUzNDc6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO24oNjkwMikoXCJvYnNlcnZhYmxlXCIpfSw2MTA0OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuKDY5MDIpKFwicGF0dGVybk1hdGNoXCIpfSwzNzI1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89big1MTg3KSxpPW4oOTQ4OSkuY2xlYXI7cih7Z2xvYmFsOiEwLGJpbmQ6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6by5jbGVhckltbWVkaWF0ZSE9PWl9LHtjbGVhckltbWVkaWF0ZTppfSl9LDY0MTE6KGUsdCxuKT0+e1widXNlIHN0cmljdFwiO3ZhciByPW4oNTE4Nyksbz1uKDk1MiksaT1uKDU0MTUpLGE9big1NTk4KSxzPW4oNjk1OCksbD1uKDgyNjMpLGM9bigyODk5KShcIml0ZXJhdG9yXCIpLHU9YS52YWx1ZXMsZD1mdW5jdGlvbihlLHQpe2lmKGUpe2lmKGVbY10hPT11KXRyeXtzKGUsYyx1KX1jYXRjaChyKXtlW2NdPXV9aWYobChlLHQsITApLG9bdF0pZm9yKHZhciBuIGluIGEpaWYoZVtuXSE9PWFbbl0pdHJ5e3MoZSxuLGFbbl0pfWNhdGNoKHIpe2Vbbl09YVtuXX19fTtmb3IodmFyIHAgaW4gbylkKHJbcF0mJnJbcF0ucHJvdG90eXBlLHApO2QoaSxcIkRPTVRva2VuTGlzdFwiKX0sMTE5NTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bigzNzI1KSxuKDM2OTApfSwzNjkwOihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89big1MTg3KSxpPW4oOTQ4OSkuc2V0LGE9big2MzIxKSxzPW8uc2V0SW1tZWRpYXRlP2EoaSwhMSk6aTtyKHtnbG9iYWw6ITAsYmluZDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDpvLnNldEltbWVkaWF0ZSE9PXN9LHtzZXRJbW1lZGlhdGU6c30pfSwzMTM4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuKDU1OTgpO3ZhciByPW4oNTM2OSksbz1uKDUxODcpLGk9big3NjM0KSxhPW4oMzAxMSkscz1uKDMzMjIpLGw9big4MzA3KSxjPW4oNDk3OSksdT1uKDg4MjUpLGQ9big5NjcyKSxwPW4oMTgzNSksZj1uKDgyNjMpLGg9big1Mjc2KSxtPW4oNjU4OSksZz1uKDE4OTUpLHk9big3MTc2KSx2PW4oNjIyNSksYj1uKDE3OTEpLFQ9big5MDI0KSx4PW4oMjc4Niksdz1uKDkwMyksaz1uKDgwMjEpLEU9big2MjU3KSxTPW4oODM3KSxBPW4oMTQ5KSxDPW4oMjQxKSxfPW4oNTk1MyksRD1uKDYyNjgpLFI9bigyODk5KSxPPW4oODg1MiksUD1SKFwiaXRlcmF0b3JcIiksTD1cIlVSTFNlYXJjaFBhcmFtc1wiLE49TCtcIkl0ZXJhdG9yXCIsST1tLnNldCxqPW0uZ2V0dGVyRm9yKEwpLEI9bS5nZXR0ZXJGb3IoTiksSD1pKFwiZmV0Y2hcIiksRj1pKFwiUmVxdWVzdFwiKSxNPWkoXCJIZWFkZXJzXCIpLEc9RiYmRi5wcm90b3R5cGUsVT1NJiZNLnByb3RvdHlwZSx6PW8uUmVnRXhwLFY9by5UeXBlRXJyb3IsVz1vLmRlY29kZVVSSUNvbXBvbmVudCxxPW8uZW5jb2RlVVJJQ29tcG9uZW50LEs9cyhcIlwiLmNoYXJBdCksWj1zKFtdLmpvaW4pLFk9cyhbXS5wdXNoKSwkPXMoXCJcIi5yZXBsYWNlKSxYPXMoW10uc2hpZnQpLFE9cyhbXS5zcGxpY2UpLEo9cyhcIlwiLnNwbGl0KSxlZT1zKFwiXCIuc2xpY2UpLHRlPS9cXCsvZyxuZT1BcnJheSg0KSxyZT1mdW5jdGlvbihlKXtyZXR1cm4gbmVbZS0xXXx8KG5lW2UtMV09eihcIigoPzolW1xcXFxkYS1mXXsyfSl7XCIrZStcIn0pXCIsXCJnaVwiKSl9LG9lPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gVyhlKX1jYXRjaCh0KXtyZXR1cm4gZX19LGllPWZ1bmN0aW9uKGUpe3ZhciB0PSQoZSx0ZSxcIiBcIiksbj00O3RyeXtyZXR1cm4gVyh0KX1jYXRjaChyKXtmb3IoO247KXQ9JCh0LHJlKG4tLSksb2UpO3JldHVybiB0fX0sYWU9L1shJygpfl18JTIwL2csc2U9e1wiIVwiOlwiJTIxXCIsXCInXCI6XCIlMjdcIixcIihcIjpcIiUyOFwiLFwiKVwiOlwiJTI5XCIsXCJ+XCI6XCIlN0VcIixcIiUyMFwiOlwiK1wifSxsZT1mdW5jdGlvbihlKXtyZXR1cm4gc2VbZV19LGNlPWZ1bmN0aW9uKGUpe3JldHVybiAkKHEoZSksYWUsbGUpfSx1ZT1oKChmdW5jdGlvbihlLHQpe0kodGhpcyx7dHlwZTpOLHRhcmdldDpqKGUpLmVudHJpZXMsaW5kZXg6MCxraW5kOnR9KX0pLEwsKGZ1bmN0aW9uKCl7dmFyIGU9Qih0aGlzKSx0PWUudGFyZ2V0LG49ZS5pbmRleCsrO2lmKCF0fHxuPj10Lmxlbmd0aClyZXR1cm4gZS50YXJnZXQ9dm9pZCAwLF8odm9pZCAwLCEwKTt2YXIgcj10W25dO3N3aXRjaChlLmtpbmQpe2Nhc2VcImtleXNcIjpyZXR1cm4gXyhyLmtleSwhMSk7Y2FzZVwidmFsdWVzXCI6cmV0dXJuIF8oci52YWx1ZSwhMSl9cmV0dXJuIF8oW3Iua2V5LHIudmFsdWVdLCExKX0pLCEwKSxkZT1mdW5jdGlvbihlKXt0aGlzLmVudHJpZXM9W10sdGhpcy51cmw9bnVsbCx2b2lkIDAhPT1lJiYodyhlKT90aGlzLnBhcnNlT2JqZWN0KGUpOnRoaXMucGFyc2VRdWVyeShcInN0cmluZ1wiPT10eXBlb2YgZT9cIj9cIj09PUsoZSwwKT9lZShlLDEpOmU6ayhlKSkpfTtkZS5wcm90b3R5cGU9e3R5cGU6TCxiaW5kVVJMOmZ1bmN0aW9uKGUpe3RoaXMudXJsPWUsdGhpcy51cGRhdGUoKX0scGFyc2VPYmplY3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8saSxzLGwsYz10aGlzLmVudHJpZXMsdT1DKGUpO2lmKHUpZm9yKG49KHQ9QShlLHUpKS5uZXh0OyEocj1hKG4sdCkpLmRvbmU7KXtpZihpPShvPUEoeChyLnZhbHVlKSkpLm5leHQsKHM9YShpLG8pKS5kb25lfHwobD1hKGksbykpLmRvbmV8fCFhKGksbykuZG9uZSl0aHJvdyBuZXcgVihcIkV4cGVjdGVkIHNlcXVlbmNlIHdpdGggbGVuZ3RoIDJcIik7WShjLHtrZXk6ayhzLnZhbHVlKSx2YWx1ZTprKGwudmFsdWUpfSl9ZWxzZSBmb3IodmFyIGQgaW4gZSl2KGUsZCkmJlkoYyx7a2V5OmQsdmFsdWU6ayhlW2RdKX0pfSxwYXJzZVF1ZXJ5OmZ1bmN0aW9uKGUpe2lmKGUpZm9yKHZhciB0LG4scj10aGlzLmVudHJpZXMsbz1KKGUsXCImXCIpLGk9MDtpPG8ubGVuZ3RoOykodD1vW2krK10pLmxlbmd0aCYmKG49Sih0LFwiPVwiKSxZKHIse2tleTppZShYKG4pKSx2YWx1ZTppZShaKG4sXCI9XCIpKX0pKX0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9dGhpcy5lbnRyaWVzLG49W10scj0wO3I8dC5sZW5ndGg7KWU9dFtyKytdLFkobixjZShlLmtleSkrXCI9XCIrY2UoZS52YWx1ZSkpO3JldHVybiBaKG4sXCImXCIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXMubGVuZ3RoPTAsdGhpcy5wYXJzZVF1ZXJ5KHRoaXMudXJsLnF1ZXJ5KX0sdXBkYXRlVVJMOmZ1bmN0aW9uKCl7dGhpcy51cmwmJnRoaXMudXJsLnVwZGF0ZSgpfX07dmFyIHBlPWZ1bmN0aW9uKCl7Zyh0aGlzLGZlKTt2YXIgZT1JKHRoaXMsbmV3IGRlKGFyZ3VtZW50cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06dm9pZCAwKSk7bHx8KHRoaXMuc2l6ZT1lLmVudHJpZXMubGVuZ3RoKX0sZmU9cGUucHJvdG90eXBlO2lmKHAoZmUse2FwcGVuZDpmdW5jdGlvbihlLHQpe3ZhciBuPWoodGhpcyk7RChhcmd1bWVudHMubGVuZ3RoLDIpLFkobi5lbnRyaWVzLHtrZXk6ayhlKSx2YWx1ZTprKHQpfSksbHx8dGhpcy5sZW5ndGgrKyxuLnVwZGF0ZVVSTCgpfSxkZWxldGU6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWoodGhpcyksbj1EKGFyZ3VtZW50cy5sZW5ndGgsMSkscj10LmVudHJpZXMsbz1rKGUpLGk9bjwyP3ZvaWQgMDphcmd1bWVudHNbMV0sYT12b2lkIDA9PT1pP2k6ayhpKSxzPTA7czxyLmxlbmd0aDspe3ZhciBjPXJbc107aWYoYy5rZXkhPT1vfHx2b2lkIDAhPT1hJiZjLnZhbHVlIT09YSlzKys7ZWxzZSBpZihRKHIscywxKSx2b2lkIDAhPT1hKWJyZWFrfWx8fCh0aGlzLnNpemU9ci5sZW5ndGgpLHQudXBkYXRlVVJMKCl9LGdldDpmdW5jdGlvbihlKXt2YXIgdD1qKHRoaXMpLmVudHJpZXM7RChhcmd1bWVudHMubGVuZ3RoLDEpO2Zvcih2YXIgbj1rKGUpLHI9MDtyPHQubGVuZ3RoO3IrKylpZih0W3JdLmtleT09PW4pcmV0dXJuIHRbcl0udmFsdWU7cmV0dXJuIG51bGx9LGdldEFsbDpmdW5jdGlvbihlKXt2YXIgdD1qKHRoaXMpLmVudHJpZXM7RChhcmd1bWVudHMubGVuZ3RoLDEpO2Zvcih2YXIgbj1rKGUpLHI9W10sbz0wO288dC5sZW5ndGg7bysrKXRbb10ua2V5PT09biYmWShyLHRbb10udmFsdWUpO3JldHVybiByfSxoYXM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWoodGhpcykuZW50cmllcyxuPUQoYXJndW1lbnRzLmxlbmd0aCwxKSxyPWsoZSksbz1uPDI/dm9pZCAwOmFyZ3VtZW50c1sxXSxpPXZvaWQgMD09PW8/bzprKG8pLGE9MDthPHQubGVuZ3RoOyl7dmFyIHM9dFthKytdO2lmKHMua2V5PT09ciYmKHZvaWQgMD09PWl8fHMudmFsdWU9PT1pKSlyZXR1cm4hMH1yZXR1cm4hMX0sc2V0OmZ1bmN0aW9uKGUsdCl7dmFyIG49aih0aGlzKTtEKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciByLG89bi5lbnRyaWVzLGk9ITEsYT1rKGUpLHM9ayh0KSxjPTA7YzxvLmxlbmd0aDtjKyspKHI9b1tjXSkua2V5PT09YSYmKGk/UShvLGMtLSwxKTooaT0hMCxyLnZhbHVlPXMpKTtpfHxZKG8se2tleTphLHZhbHVlOnN9KSxsfHwodGhpcy5zaXplPW8ubGVuZ3RoKSxuLnVwZGF0ZVVSTCgpfSxzb3J0OmZ1bmN0aW9uKCl7dmFyIGU9aih0aGlzKTtPKGUuZW50cmllcywoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5rZXk+dC5rZXk/MTotMX0pKSxlLnVwZGF0ZVVSTCgpfSxmb3JFYWNoOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPWoodGhpcykuZW50cmllcyxyPWIoZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksbz0wO288bi5sZW5ndGg7KXIoKHQ9bltvKytdKS52YWx1ZSx0LmtleSx0aGlzKX0sa2V5czpmdW5jdGlvbigpe3JldHVybiBuZXcgdWUodGhpcyxcImtleXNcIil9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiBuZXcgdWUodGhpcyxcInZhbHVlc1wiKX0sZW50cmllczpmdW5jdGlvbigpe3JldHVybiBuZXcgdWUodGhpcyxcImVudHJpZXNcIil9fSx7ZW51bWVyYWJsZTohMH0pLHUoZmUsUCxmZS5lbnRyaWVzLHtuYW1lOlwiZW50cmllc1wifSksdShmZSxcInRvU3RyaW5nXCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGoodGhpcykuc2VyaWFsaXplKCl9KSx7ZW51bWVyYWJsZTohMH0pLGwmJmQoZmUsXCJzaXplXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBqKHRoaXMpLmVudHJpZXMubGVuZ3RofSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pLGYocGUsTCkscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDohY30se1VSTFNlYXJjaFBhcmFtczpwZX0pLCFjJiZ5KE0pKXt2YXIgaGU9cyhVLmhhcyksbWU9cyhVLnNldCksZ2U9ZnVuY3Rpb24oZSl7aWYodyhlKSl7dmFyIHQsbj1lLmJvZHk7aWYoVChuKT09PUwpcmV0dXJuIHQ9ZS5oZWFkZXJzP25ldyBNKGUuaGVhZGVycyk6bmV3IE0saGUodCxcImNvbnRlbnQtdHlwZVwiKXx8bWUodCxcImNvbnRlbnQtdHlwZVwiLFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLThcIiksRShlLHtib2R5OlMoMCxrKG4pKSxoZWFkZXJzOlMoMCx0KX0pfXJldHVybiBlfTtpZih5KEgpJiZyKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxkb250Q2FsbEdldFNldDohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbihlKXtyZXR1cm4gSChlLGFyZ3VtZW50cy5sZW5ndGg+MT9nZShhcmd1bWVudHNbMV0pOnt9KX19KSx5KEYpKXt2YXIgeWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGcodGhpcyxHKSxuZXcgRihlLGFyZ3VtZW50cy5sZW5ndGg+MT9nZShhcmd1bWVudHNbMV0pOnt9KX07Ry5jb25zdHJ1Y3Rvcj15ZSx5ZS5wcm90b3R5cGU9RyxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZG9udENhbGxHZXRTZXQ6ITAsZm9yY2VkOiEwfSx7UmVxdWVzdDp5ZX0pfX1lLmV4cG9ydHM9e1VSTFNlYXJjaFBhcmFtczpwZSxnZXRTdGF0ZTpqfX0sMjUwMzooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bigzMTM4KX0sODkyODooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7big4MDQpO3ZhciByLG89big1MzY5KSxpPW4oODMwNyksYT1uKDQ5NzkpLHM9big1MTg3KSxsPW4oMTc5MSksYz1uKDMzMjIpLHU9big4ODI1KSxkPW4oOTY3MikscD1uKDE4OTUpLGY9big2MjI1KSxoPW4oNjIzOCksbT1uKDI5MzgpLGc9big4MDA5KSx5PW4oOTgwMykuY29kZUF0LHY9bigyNzEyKSxiPW4oODAyMSksVD1uKDgyNjMpLHg9big2MjY4KSx3PW4oMzEzOCksaz1uKDY1ODkpLEU9ay5zZXQsUz1rLmdldHRlckZvcihcIlVSTFwiKSxBPXcuVVJMU2VhcmNoUGFyYW1zLEM9dy5nZXRTdGF0ZSxfPXMuVVJMLEQ9cy5UeXBlRXJyb3IsUj1zLnBhcnNlSW50LE89TWF0aC5mbG9vcixQPU1hdGgucG93LEw9YyhcIlwiLmNoYXJBdCksTj1jKC8uLy5leGVjKSxJPWMoW10uam9pbiksaj1jKDEuLnRvU3RyaW5nKSxCPWMoW10ucG9wKSxIPWMoW10ucHVzaCksRj1jKFwiXCIucmVwbGFjZSksTT1jKFtdLnNoaWZ0KSxHPWMoXCJcIi5zcGxpdCksVT1jKFwiXCIuc2xpY2UpLHo9YyhcIlwiLnRvTG93ZXJDYXNlKSxWPWMoW10udW5zaGlmdCksVz1cIkludmFsaWQgc2NoZW1lXCIscT1cIkludmFsaWQgaG9zdFwiLEs9XCJJbnZhbGlkIHBvcnRcIixaPS9bYS16XS9pLFk9L1tcXGQrLS5hLXpdL2ksJD0vXFxkLyxYPS9eMHgvaSxRPS9eWzAtN10rJC8sSj0vXlxcZCskLyxlZT0vXltcXGRhLWZdKyQvaSx0ZT0vW1xcMFxcdFxcblxcciAjJS86PD4/QFtcXFxcXFxdXnxdLyxuZT0vW1xcMFxcdFxcblxcciAjLzo8Pj9AW1xcXFxcXF1efF0vLHJlPS9eW1xcdTAwMDAtXFx1MDAyMF0rLyxvZT0vKF58W15cXHUwMDAwLVxcdTAwMjBdKVtcXHUwMDAwLVxcdTAwMjBdKyQvLGllPS9bXFx0XFxuXFxyXS9nLGFlPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvO2lmKFwibnVtYmVyXCI9PXR5cGVvZiBlKXtmb3IodD1bXSxuPTA7bjw0O24rKylWKHQsZSUyNTYpLGU9TyhlLzI1Nik7cmV0dXJuIEkodCxcIi5cIil9aWYoXCJvYmplY3RcIj09dHlwZW9mIGUpe2Zvcih0PVwiXCIscj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bnVsbCxuPTEscj1udWxsLG89MCxpPTA7aTw4O2krKykwIT09ZVtpXT8obz5uJiYodD1yLG49bykscj1udWxsLG89MCk6KG51bGw9PT1yJiYocj1pKSwrK28pO3JldHVybiBvPm4mJih0PXIsbj1vKSx0fShlKSxuPTA7bjw4O24rKylvJiYwPT09ZVtuXXx8KG8mJihvPSExKSxyPT09bj8odCs9bj9cIjpcIjpcIjo6XCIsbz0hMCk6KHQrPWooZVtuXSwxNiksbjw3JiYodCs9XCI6XCIpKSk7cmV0dXJuXCJbXCIrdCtcIl1cIn1yZXR1cm4gZX0sc2U9e30sbGU9aCh7fSxzZSx7XCIgXCI6MSwnXCInOjEsXCI8XCI6MSxcIj5cIjoxLFwiYFwiOjF9KSxjZT1oKHt9LGxlLHtcIiNcIjoxLFwiP1wiOjEsXCJ7XCI6MSxcIn1cIjoxfSksdWU9aCh7fSxjZSx7XCIvXCI6MSxcIjpcIjoxLFwiO1wiOjEsXCI9XCI6MSxcIkBcIjoxLFwiW1wiOjEsXCJcXFxcXCI6MSxcIl1cIjoxLFwiXlwiOjEsXCJ8XCI6MX0pLGRlPWZ1bmN0aW9uKGUsdCl7dmFyIG49eShlLDApO3JldHVybiBuPjMyJiZuPDEyNyYmIWYodCxlKT9lOmVuY29kZVVSSUNvbXBvbmVudChlKX0scGU9e2Z0cDoyMSxmaWxlOm51bGwsaHR0cDo4MCxodHRwczo0NDMsd3M6ODAsd3NzOjQ0M30sZmU9ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4gMj09PWUubGVuZ3RoJiZOKFosTChlLDApKSYmKFwiOlwiPT09KG49TChlLDEpKXx8IXQmJlwifFwiPT09bil9LGhlPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBlLmxlbmd0aD4xJiZmZShVKGUsMCwyKSkmJigyPT09ZS5sZW5ndGh8fFwiL1wiPT09KHQ9TChlLDIpKXx8XCJcXFxcXCI9PT10fHxcIj9cIj09PXR8fFwiI1wiPT09dCl9LG1lPWZ1bmN0aW9uKGUpe3JldHVyblwiLlwiPT09ZXx8XCIlMmVcIj09PXooZSl9LGdlPXt9LHllPXt9LHZlPXt9LGJlPXt9LFRlPXt9LHhlPXt9LHdlPXt9LGtlPXt9LEVlPXt9LFNlPXt9LEFlPXt9LENlPXt9LF9lPXt9LERlPXt9LFJlPXt9LE9lPXt9LFBlPXt9LExlPXt9LE5lPXt9LEllPXt9LGplPXt9LEJlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGksYT1iKGUpO2lmKHQpe2lmKG89dGhpcy5wYXJzZShhKSl0aHJvdyBuZXcgRChvKTt0aGlzLnNlYXJjaFBhcmFtcz1udWxsfWVsc2V7aWYodm9pZCAwIT09biYmKHI9bmV3IEJlKG4sITApKSxvPXRoaXMucGFyc2UoYSxudWxsLHIpKXRocm93IG5ldyBEKG8pOyhpPUMobmV3IEEpKS5iaW5kVVJMKHRoaXMpLHRoaXMuc2VhcmNoUGFyYW1zPWl9fTtCZS5wcm90b3R5cGU9e3R5cGU6XCJVUkxcIixwYXJzZTpmdW5jdGlvbihlLHQsbil7dmFyIG8saSxhLHMsbCxjPXRoaXMsdT10fHxnZSxkPTAscD1cIlwiLGg9ITEseT0hMSx2PSExO2ZvcihlPWIoZSksdHx8KGMuc2NoZW1lPVwiXCIsYy51c2VybmFtZT1cIlwiLGMucGFzc3dvcmQ9XCJcIixjLmhvc3Q9bnVsbCxjLnBvcnQ9bnVsbCxjLnBhdGg9W10sYy5xdWVyeT1udWxsLGMuZnJhZ21lbnQ9bnVsbCxjLmNhbm5vdEJlQUJhc2VVUkw9ITEsZT1GKGUscmUsXCJcIiksZT1GKGUsb2UsXCIkMVwiKSksZT1GKGUsaWUsXCJcIiksbz1tKGUpO2Q8PW8ubGVuZ3RoOyl7c3dpdGNoKGk9b1tkXSx1KXtjYXNlIGdlOmlmKCFpfHwhTihaLGkpKXtpZih0KXJldHVybiBXO3U9dmU7Y29udGludWV9cCs9eihpKSx1PXllO2JyZWFrO2Nhc2UgeWU6aWYoaSYmKE4oWSxpKXx8XCIrXCI9PT1pfHxcIi1cIj09PWl8fFwiLlwiPT09aSkpcCs9eihpKTtlbHNle2lmKFwiOlwiIT09aSl7aWYodClyZXR1cm4gVztwPVwiXCIsdT12ZSxkPTA7Y29udGludWV9aWYodCYmKGMuaXNTcGVjaWFsKCkhPT1mKHBlLHApfHxcImZpbGVcIj09PXAmJihjLmluY2x1ZGVzQ3JlZGVudGlhbHMoKXx8bnVsbCE9PWMucG9ydCl8fFwiZmlsZVwiPT09Yy5zY2hlbWUmJiFjLmhvc3QpKXJldHVybjtpZihjLnNjaGVtZT1wLHQpcmV0dXJuIHZvaWQoYy5pc1NwZWNpYWwoKSYmcGVbYy5zY2hlbWVdPT09Yy5wb3J0JiYoYy5wb3J0PW51bGwpKTtwPVwiXCIsXCJmaWxlXCI9PT1jLnNjaGVtZT91PURlOmMuaXNTcGVjaWFsKCkmJm4mJm4uc2NoZW1lPT09Yy5zY2hlbWU/dT1iZTpjLmlzU3BlY2lhbCgpP3U9a2U6XCIvXCI9PT1vW2QrMV0/KHU9VGUsZCsrKTooYy5jYW5ub3RCZUFCYXNlVVJMPSEwLEgoYy5wYXRoLFwiXCIpLHU9TmUpfWJyZWFrO2Nhc2UgdmU6aWYoIW58fG4uY2Fubm90QmVBQmFzZVVSTCYmXCIjXCIhPT1pKXJldHVybiBXO2lmKG4uY2Fubm90QmVBQmFzZVVSTCYmXCIjXCI9PT1pKXtjLnNjaGVtZT1uLnNjaGVtZSxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9bi5xdWVyeSxjLmZyYWdtZW50PVwiXCIsYy5jYW5ub3RCZUFCYXNlVVJMPSEwLHU9amU7YnJlYWt9dT1cImZpbGVcIj09PW4uc2NoZW1lP0RlOnhlO2NvbnRpbnVlO2Nhc2UgYmU6aWYoXCIvXCIhPT1pfHxcIi9cIiE9PW9bZCsxXSl7dT14ZTtjb250aW51ZX11PUVlLGQrKzticmVhaztjYXNlIFRlOmlmKFwiL1wiPT09aSl7dT1TZTticmVha311PUxlO2NvbnRpbnVlO2Nhc2UgeGU6aWYoYy5zY2hlbWU9bi5zY2hlbWUsaT09PXIpYy51c2VybmFtZT1uLnVzZXJuYW1lLGMucGFzc3dvcmQ9bi5wYXNzd29yZCxjLmhvc3Q9bi5ob3N0LGMucG9ydD1uLnBvcnQsYy5wYXRoPWcobi5wYXRoKSxjLnF1ZXJ5PW4ucXVlcnk7ZWxzZSBpZihcIi9cIj09PWl8fFwiXFxcXFwiPT09aSYmYy5pc1NwZWNpYWwoKSl1PXdlO2Vsc2UgaWYoXCI/XCI9PT1pKWMudXNlcm5hbWU9bi51c2VybmFtZSxjLnBhc3N3b3JkPW4ucGFzc3dvcmQsYy5ob3N0PW4uaG9zdCxjLnBvcnQ9bi5wb3J0LGMucGF0aD1nKG4ucGF0aCksYy5xdWVyeT1cIlwiLHU9SWU7ZWxzZXtpZihcIiNcIiE9PWkpe2MudXNlcm5hbWU9bi51c2VybmFtZSxjLnBhc3N3b3JkPW4ucGFzc3dvcmQsYy5ob3N0PW4uaG9zdCxjLnBvcnQ9bi5wb3J0LGMucGF0aD1nKG4ucGF0aCksYy5wYXRoLmxlbmd0aC0tLHU9TGU7Y29udGludWV9Yy51c2VybmFtZT1uLnVzZXJuYW1lLGMucGFzc3dvcmQ9bi5wYXNzd29yZCxjLmhvc3Q9bi5ob3N0LGMucG9ydD1uLnBvcnQsYy5wYXRoPWcobi5wYXRoKSxjLnF1ZXJ5PW4ucXVlcnksYy5mcmFnbWVudD1cIlwiLHU9amV9YnJlYWs7Y2FzZSB3ZTppZighYy5pc1NwZWNpYWwoKXx8XCIvXCIhPT1pJiZcIlxcXFxcIiE9PWkpe2lmKFwiL1wiIT09aSl7Yy51c2VybmFtZT1uLnVzZXJuYW1lLGMucGFzc3dvcmQ9bi5wYXNzd29yZCxjLmhvc3Q9bi5ob3N0LGMucG9ydD1uLnBvcnQsdT1MZTtjb250aW51ZX11PVNlfWVsc2UgdT1FZTticmVhaztjYXNlIGtlOmlmKHU9RWUsXCIvXCIhPT1pfHxcIi9cIiE9PUwocCxkKzEpKWNvbnRpbnVlO2QrKzticmVhaztjYXNlIEVlOmlmKFwiL1wiIT09aSYmXCJcXFxcXCIhPT1pKXt1PVNlO2NvbnRpbnVlfWJyZWFrO2Nhc2UgU2U6aWYoXCJAXCI9PT1pKXtoJiYocD1cIiU0MFwiK3ApLGg9ITAsYT1tKHApO2Zvcih2YXIgVD0wO1Q8YS5sZW5ndGg7VCsrKXt2YXIgeD1hW1RdO2lmKFwiOlwiIT09eHx8dil7dmFyIHc9ZGUoeCx1ZSk7dj9jLnBhc3N3b3JkKz13OmMudXNlcm5hbWUrPXd9ZWxzZSB2PSEwfXA9XCJcIn1lbHNlIGlmKGk9PT1yfHxcIi9cIj09PWl8fFwiP1wiPT09aXx8XCIjXCI9PT1pfHxcIlxcXFxcIj09PWkmJmMuaXNTcGVjaWFsKCkpe2lmKGgmJlwiXCI9PT1wKXJldHVyblwiSW52YWxpZCBhdXRob3JpdHlcIjtkLT1tKHApLmxlbmd0aCsxLHA9XCJcIix1PUFlfWVsc2UgcCs9aTticmVhaztjYXNlIEFlOmNhc2UgQ2U6aWYodCYmXCJmaWxlXCI9PT1jLnNjaGVtZSl7dT1PZTtjb250aW51ZX1pZihcIjpcIiE9PWl8fHkpe2lmKGk9PT1yfHxcIi9cIj09PWl8fFwiP1wiPT09aXx8XCIjXCI9PT1pfHxcIlxcXFxcIj09PWkmJmMuaXNTcGVjaWFsKCkpe2lmKGMuaXNTcGVjaWFsKCkmJlwiXCI9PT1wKXJldHVybiBxO2lmKHQmJlwiXCI9PT1wJiYoYy5pbmNsdWRlc0NyZWRlbnRpYWxzKCl8fG51bGwhPT1jLnBvcnQpKXJldHVybjtpZihzPWMucGFyc2VIb3N0KHApKXJldHVybiBzO2lmKHA9XCJcIix1PVBlLHQpcmV0dXJuO2NvbnRpbnVlfVwiW1wiPT09aT95PSEwOlwiXVwiPT09aSYmKHk9ITEpLHArPWl9ZWxzZXtpZihcIlwiPT09cClyZXR1cm4gcTtpZihzPWMucGFyc2VIb3N0KHApKXJldHVybiBzO2lmKHA9XCJcIix1PV9lLHQ9PT1DZSlyZXR1cm59YnJlYWs7Y2FzZSBfZTppZighTigkLGkpKXtpZihpPT09cnx8XCIvXCI9PT1pfHxcIj9cIj09PWl8fFwiI1wiPT09aXx8XCJcXFxcXCI9PT1pJiZjLmlzU3BlY2lhbCgpfHx0KXtpZihcIlwiIT09cCl7dmFyIGs9UihwLDEwKTtpZihrPjY1NTM1KXJldHVybiBLO2MucG9ydD1jLmlzU3BlY2lhbCgpJiZrPT09cGVbYy5zY2hlbWVdP251bGw6ayxwPVwiXCJ9aWYodClyZXR1cm47dT1QZTtjb250aW51ZX1yZXR1cm4gS31wKz1pO2JyZWFrO2Nhc2UgRGU6aWYoYy5zY2hlbWU9XCJmaWxlXCIsXCIvXCI9PT1pfHxcIlxcXFxcIj09PWkpdT1SZTtlbHNle2lmKCFufHxcImZpbGVcIiE9PW4uc2NoZW1lKXt1PUxlO2NvbnRpbnVlfXN3aXRjaChpKXtjYXNlIHI6Yy5ob3N0PW4uaG9zdCxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9bi5xdWVyeTticmVhaztjYXNlXCI/XCI6Yy5ob3N0PW4uaG9zdCxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9XCJcIix1PUllO2JyZWFrO2Nhc2VcIiNcIjpjLmhvc3Q9bi5ob3N0LGMucGF0aD1nKG4ucGF0aCksYy5xdWVyeT1uLnF1ZXJ5LGMuZnJhZ21lbnQ9XCJcIix1PWplO2JyZWFrO2RlZmF1bHQ6aGUoSShnKG8sZCksXCJcIikpfHwoYy5ob3N0PW4uaG9zdCxjLnBhdGg9ZyhuLnBhdGgpLGMuc2hvcnRlblBhdGgoKSksdT1MZTtjb250aW51ZX19YnJlYWs7Y2FzZSBSZTppZihcIi9cIj09PWl8fFwiXFxcXFwiPT09aSl7dT1PZTticmVha31uJiZcImZpbGVcIj09PW4uc2NoZW1lJiYhaGUoSShnKG8sZCksXCJcIikpJiYoZmUobi5wYXRoWzBdLCEwKT9IKGMucGF0aCxuLnBhdGhbMF0pOmMuaG9zdD1uLmhvc3QpLHU9TGU7Y29udGludWU7Y2FzZSBPZTppZihpPT09cnx8XCIvXCI9PT1pfHxcIlxcXFxcIj09PWl8fFwiP1wiPT09aXx8XCIjXCI9PT1pKXtpZighdCYmZmUocCkpdT1MZTtlbHNlIGlmKFwiXCI9PT1wKXtpZihjLmhvc3Q9XCJcIix0KXJldHVybjt1PVBlfWVsc2V7aWYocz1jLnBhcnNlSG9zdChwKSlyZXR1cm4gcztpZihcImxvY2FsaG9zdFwiPT09Yy5ob3N0JiYoYy5ob3N0PVwiXCIpLHQpcmV0dXJuO3A9XCJcIix1PVBlfWNvbnRpbnVlfXArPWk7YnJlYWs7Y2FzZSBQZTppZihjLmlzU3BlY2lhbCgpKXtpZih1PUxlLFwiL1wiIT09aSYmXCJcXFxcXCIhPT1pKWNvbnRpbnVlfWVsc2UgaWYodHx8XCI/XCIhPT1pKWlmKHR8fFwiI1wiIT09aSl7aWYoaSE9PXImJih1PUxlLFwiL1wiIT09aSkpY29udGludWV9ZWxzZSBjLmZyYWdtZW50PVwiXCIsdT1qZTtlbHNlIGMucXVlcnk9XCJcIix1PUllO2JyZWFrO2Nhc2UgTGU6aWYoaT09PXJ8fFwiL1wiPT09aXx8XCJcXFxcXCI9PT1pJiZjLmlzU3BlY2lhbCgpfHwhdCYmKFwiP1wiPT09aXx8XCIjXCI9PT1pKSl7aWYoXCIuLlwiPT09KGw9eihsPXApKXx8XCIlMmUuXCI9PT1sfHxcIi4lMmVcIj09PWx8fFwiJTJlJTJlXCI9PT1sPyhjLnNob3J0ZW5QYXRoKCksXCIvXCI9PT1pfHxcIlxcXFxcIj09PWkmJmMuaXNTcGVjaWFsKCl8fEgoYy5wYXRoLFwiXCIpKTptZShwKT9cIi9cIj09PWl8fFwiXFxcXFwiPT09aSYmYy5pc1NwZWNpYWwoKXx8SChjLnBhdGgsXCJcIik6KFwiZmlsZVwiPT09Yy5zY2hlbWUmJiFjLnBhdGgubGVuZ3RoJiZmZShwKSYmKGMuaG9zdCYmKGMuaG9zdD1cIlwiKSxwPUwocCwwKStcIjpcIiksSChjLnBhdGgscCkpLHA9XCJcIixcImZpbGVcIj09PWMuc2NoZW1lJiYoaT09PXJ8fFwiP1wiPT09aXx8XCIjXCI9PT1pKSlmb3IoO2MucGF0aC5sZW5ndGg+MSYmXCJcIj09PWMucGF0aFswXTspTShjLnBhdGgpO1wiP1wiPT09aT8oYy5xdWVyeT1cIlwiLHU9SWUpOlwiI1wiPT09aSYmKGMuZnJhZ21lbnQ9XCJcIix1PWplKX1lbHNlIHArPWRlKGksY2UpO2JyZWFrO2Nhc2UgTmU6XCI/XCI9PT1pPyhjLnF1ZXJ5PVwiXCIsdT1JZSk6XCIjXCI9PT1pPyhjLmZyYWdtZW50PVwiXCIsdT1qZSk6aSE9PXImJihjLnBhdGhbMF0rPWRlKGksc2UpKTticmVhaztjYXNlIEllOnR8fFwiI1wiIT09aT9pIT09ciYmKFwiJ1wiPT09aSYmYy5pc1NwZWNpYWwoKT9jLnF1ZXJ5Kz1cIiUyN1wiOmMucXVlcnkrPVwiI1wiPT09aT9cIiUyM1wiOmRlKGksc2UpKTooYy5mcmFnbWVudD1cIlwiLHU9amUpO2JyZWFrO2Nhc2UgamU6aSE9PXImJihjLmZyYWdtZW50Kz1kZShpLGxlKSl9ZCsrfX0scGFyc2VIb3N0OmZ1bmN0aW9uKGUpe3ZhciB0LG4scjtpZihcIltcIj09PUwoZSwwKSl7aWYoXCJdXCIhPT1MKGUsZS5sZW5ndGgtMSkpcmV0dXJuIHE7aWYodD1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxpLGEscyxsPVswLDAsMCwwLDAsMCwwLDBdLGM9MCx1PW51bGwsZD0wLHA9ZnVuY3Rpb24oKXtyZXR1cm4gTChlLGQpfTtpZihcIjpcIj09PXAoKSl7aWYoXCI6XCIhPT1MKGUsMSkpcmV0dXJuO2QrPTIsdT0rK2N9Zm9yKDtwKCk7KXtpZig4PT09YylyZXR1cm47aWYoXCI6XCIhPT1wKCkpe2Zvcih0PW49MDtuPDQmJk4oZWUscCgpKTspdD0xNip0K1IocCgpLDE2KSxkKyssbisrO2lmKFwiLlwiPT09cCgpKXtpZigwPT09bilyZXR1cm47aWYoZC09bixjPjYpcmV0dXJuO2ZvcihyPTA7cCgpOyl7aWYobz1udWxsLHI+MCl7aWYoIShcIi5cIj09PXAoKSYmcjw0KSlyZXR1cm47ZCsrfWlmKCFOKCQscCgpKSlyZXR1cm47Zm9yKDtOKCQscCgpKTspe2lmKGk9UihwKCksMTApLG51bGw9PT1vKW89aTtlbHNle2lmKDA9PT1vKXJldHVybjtvPTEwKm8raX1pZihvPjI1NSlyZXR1cm47ZCsrfWxbY109MjU2KmxbY10rbywyIT09KytyJiY0IT09cnx8YysrfWlmKDQhPT1yKXJldHVybjticmVha31pZihcIjpcIj09PXAoKSl7aWYoZCsrLCFwKCkpcmV0dXJufWVsc2UgaWYocCgpKXJldHVybjtsW2MrK109dH1lbHNle2lmKG51bGwhPT11KXJldHVybjtkKyssdT0rK2N9fWlmKG51bGwhPT11KWZvcihhPWMtdSxjPTc7MCE9PWMmJmE+MDspcz1sW2NdLGxbYy0tXT1sW3UrYS0xXSxsW3UrLS1hXT1zO2Vsc2UgaWYoOCE9PWMpcmV0dXJuO3JldHVybiBsfShVKGUsMSwtMSkpLCF0KXJldHVybiBxO3RoaXMuaG9zdD10fWVsc2UgaWYodGhpcy5pc1NwZWNpYWwoKSl7aWYoZT12KGUpLE4odGUsZSkpcmV0dXJuIHE7aWYodD1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxpLGEscyxsPUcoZSxcIi5cIik7aWYobC5sZW5ndGgmJlwiXCI9PT1sW2wubGVuZ3RoLTFdJiZsLmxlbmd0aC0tLCh0PWwubGVuZ3RoKT40KXJldHVybiBlO2ZvcihuPVtdLHI9MDtyPHQ7cisrKXtpZihcIlwiPT09KG89bFtyXSkpcmV0dXJuIGU7aWYoaT0xMCxvLmxlbmd0aD4xJiZcIjBcIj09PUwobywwKSYmKGk9TihYLG8pPzE2Ojgsbz1VKG8sOD09PWk/MToyKSksXCJcIj09PW8pYT0wO2Vsc2V7aWYoIU4oMTA9PT1pP0o6OD09PWk/UTplZSxvKSlyZXR1cm4gZTthPVIobyxpKX1IKG4sYSl9Zm9yKHI9MDtyPHQ7cisrKWlmKGE9bltyXSxyPT09dC0xKXtpZihhPj1QKDI1Niw1LXQpKXJldHVybiBudWxsfWVsc2UgaWYoYT4yNTUpcmV0dXJuIG51bGw7Zm9yKHM9QihuKSxyPTA7cjxuLmxlbmd0aDtyKyspcys9bltyXSpQKDI1NiwzLXIpO3JldHVybiBzfShlKSxudWxsPT09dClyZXR1cm4gcTt0aGlzLmhvc3Q9dH1lbHNle2lmKE4obmUsZSkpcmV0dXJuIHE7Zm9yKHQ9XCJcIixuPW0oZSkscj0wO3I8bi5sZW5ndGg7cisrKXQrPWRlKG5bcl0sc2UpO3RoaXMuaG9zdD10fX0sY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaG9zdHx8dGhpcy5jYW5ub3RCZUFCYXNlVVJMfHxcImZpbGVcIj09PXRoaXMuc2NoZW1lfSxpbmNsdWRlc0NyZWRlbnRpYWxzOmZ1bmN0aW9uKCl7cmV0dXJuXCJcIiE9PXRoaXMudXNlcm5hbWV8fFwiXCIhPT10aGlzLnBhc3N3b3JkfSxpc1NwZWNpYWw6ZnVuY3Rpb24oKXtyZXR1cm4gZihwZSx0aGlzLnNjaGVtZSl9LHNob3J0ZW5QYXRoOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYXRoLHQ9ZS5sZW5ndGg7IXR8fFwiZmlsZVwiPT09dGhpcy5zY2hlbWUmJjE9PT10JiZmZShlWzBdLCEwKXx8ZS5sZW5ndGgtLX0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuc2NoZW1lLG49ZS51c2VybmFtZSxyPWUucGFzc3dvcmQsbz1lLmhvc3QsaT1lLnBvcnQsYT1lLnBhdGgscz1lLnF1ZXJ5LGw9ZS5mcmFnbWVudCxjPXQrXCI6XCI7cmV0dXJuIG51bGwhPT1vPyhjKz1cIi8vXCIsZS5pbmNsdWRlc0NyZWRlbnRpYWxzKCkmJihjKz1uKyhyP1wiOlwiK3I6XCJcIikrXCJAXCIpLGMrPWFlKG8pLG51bGwhPT1pJiYoYys9XCI6XCIraSkpOlwiZmlsZVwiPT09dCYmKGMrPVwiLy9cIiksYys9ZS5jYW5ub3RCZUFCYXNlVVJMP2FbMF06YS5sZW5ndGg/XCIvXCIrSShhLFwiL1wiKTpcIlwiLG51bGwhPT1zJiYoYys9XCI/XCIrcyksbnVsbCE9PWwmJihjKz1cIiNcIitsKSxjfSxzZXRIcmVmOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyc2UoZSk7aWYodCl0aHJvdyBuZXcgRCh0KTt0aGlzLnNlYXJjaFBhcmFtcy51cGRhdGUoKX0sZ2V0T3JpZ2luOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zY2hlbWUsdD10aGlzLnBvcnQ7aWYoXCJibG9iXCI9PT1lKXRyeXtyZXR1cm4gbmV3IEhlKGUucGF0aFswXSkub3JpZ2lufWNhdGNoKG4pe3JldHVyblwibnVsbFwifXJldHVyblwiZmlsZVwiIT09ZSYmdGhpcy5pc1NwZWNpYWwoKT9lK1wiOi8vXCIrYWUodGhpcy5ob3N0KSsobnVsbCE9PXQ/XCI6XCIrdDpcIlwiKTpcIm51bGxcIn0sZ2V0UHJvdG9jb2w6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zY2hlbWUrXCI6XCJ9LHNldFByb3RvY29sOmZ1bmN0aW9uKGUpe3RoaXMucGFyc2UoYihlKStcIjpcIixnZSl9LGdldFVzZXJuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXNlcm5hbWV9LHNldFVzZXJuYW1lOmZ1bmN0aW9uKGUpe3ZhciB0PW0oYihlKSk7aWYoIXRoaXMuY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0KCkpe3RoaXMudXNlcm5hbWU9XCJcIjtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLnVzZXJuYW1lKz1kZSh0W25dLHVlKX19LGdldFBhc3N3b3JkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFzc3dvcmR9LHNldFBhc3N3b3JkOmZ1bmN0aW9uKGUpe3ZhciB0PW0oYihlKSk7aWYoIXRoaXMuY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0KCkpe3RoaXMucGFzc3dvcmQ9XCJcIjtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLnBhc3N3b3JkKz1kZSh0W25dLHVlKX19LGdldEhvc3Q6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhvc3QsdD10aGlzLnBvcnQ7cmV0dXJuIG51bGw9PT1lP1wiXCI6bnVsbD09PXQ/YWUoZSk6YWUoZSkrXCI6XCIrdH0sc2V0SG9zdDpmdW5jdGlvbihlKXt0aGlzLmNhbm5vdEJlQUJhc2VVUkx8fHRoaXMucGFyc2UoZSxBZSl9LGdldEhvc3RuYW1lOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ob3N0O3JldHVybiBudWxsPT09ZT9cIlwiOmFlKGUpfSxzZXRIb3N0bmFtZTpmdW5jdGlvbihlKXt0aGlzLmNhbm5vdEJlQUJhc2VVUkx8fHRoaXMucGFyc2UoZSxDZSl9LGdldFBvcnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvcnQ7cmV0dXJuIG51bGw9PT1lP1wiXCI6YihlKX0sc2V0UG9ydDpmdW5jdGlvbihlKXt0aGlzLmNhbm5vdEhhdmVVc2VybmFtZVBhc3N3b3JkUG9ydCgpfHwoXCJcIj09PShlPWIoZSkpP3RoaXMucG9ydD1udWxsOnRoaXMucGFyc2UoZSxfZSkpfSxnZXRQYXRobmFtZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucGF0aDtyZXR1cm4gdGhpcy5jYW5ub3RCZUFCYXNlVVJMP2VbMF06ZS5sZW5ndGg/XCIvXCIrSShlLFwiL1wiKTpcIlwifSxzZXRQYXRobmFtZTpmdW5jdGlvbihlKXt0aGlzLmNhbm5vdEJlQUJhc2VVUkx8fCh0aGlzLnBhdGg9W10sdGhpcy5wYXJzZShlLFBlKSl9LGdldFNlYXJjaDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucXVlcnk7cmV0dXJuIGU/XCI/XCIrZTpcIlwifSxzZXRTZWFyY2g6ZnVuY3Rpb24oZSl7XCJcIj09PShlPWIoZSkpP3RoaXMucXVlcnk9bnVsbDooXCI/XCI9PT1MKGUsMCkmJihlPVUoZSwxKSksdGhpcy5xdWVyeT1cIlwiLHRoaXMucGFyc2UoZSxJZSkpLHRoaXMuc2VhcmNoUGFyYW1zLnVwZGF0ZSgpfSxnZXRTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWFyY2hQYXJhbXMuZmFjYWRlfSxnZXRIYXNoOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5mcmFnbWVudDtyZXR1cm4gZT9cIiNcIitlOlwiXCJ9LHNldEhhc2g6ZnVuY3Rpb24oZSl7XCJcIiE9PShlPWIoZSkpPyhcIiNcIj09PUwoZSwwKSYmKGU9VShlLDEpKSx0aGlzLmZyYWdtZW50PVwiXCIsdGhpcy5wYXJzZShlLGplKSk6dGhpcy5mcmFnbWVudD1udWxsfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLnF1ZXJ5PXRoaXMuc2VhcmNoUGFyYW1zLnNlcmlhbGl6ZSgpfHxudWxsfX07dmFyIEhlPWZ1bmN0aW9uKGUpe3ZhciB0PXAodGhpcyxGZSksbj14KGFyZ3VtZW50cy5sZW5ndGgsMSk+MT9hcmd1bWVudHNbMV06dm9pZCAwLHI9RSh0LG5ldyBCZShlLCExLG4pKTtpfHwodC5ocmVmPXIuc2VyaWFsaXplKCksdC5vcmlnaW49ci5nZXRPcmlnaW4oKSx0LnByb3RvY29sPXIuZ2V0UHJvdG9jb2woKSx0LnVzZXJuYW1lPXIuZ2V0VXNlcm5hbWUoKSx0LnBhc3N3b3JkPXIuZ2V0UGFzc3dvcmQoKSx0Lmhvc3Q9ci5nZXRIb3N0KCksdC5ob3N0bmFtZT1yLmdldEhvc3RuYW1lKCksdC5wb3J0PXIuZ2V0UG9ydCgpLHQucGF0aG5hbWU9ci5nZXRQYXRobmFtZSgpLHQuc2VhcmNoPXIuZ2V0U2VhcmNoKCksdC5zZWFyY2hQYXJhbXM9ci5nZXRTZWFyY2hQYXJhbXMoKSx0Lmhhc2g9ci5nZXRIYXNoKCkpfSxGZT1IZS5wcm90b3R5cGUsTWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFModGhpcylbZV0oKX0sc2V0OnQmJmZ1bmN0aW9uKGUpe3JldHVybiBTKHRoaXMpW3RdKGUpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19O2lmKGkmJihkKEZlLFwiaHJlZlwiLE1lKFwic2VyaWFsaXplXCIsXCJzZXRIcmVmXCIpKSxkKEZlLFwib3JpZ2luXCIsTWUoXCJnZXRPcmlnaW5cIikpLGQoRmUsXCJwcm90b2NvbFwiLE1lKFwiZ2V0UHJvdG9jb2xcIixcInNldFByb3RvY29sXCIpKSxkKEZlLFwidXNlcm5hbWVcIixNZShcImdldFVzZXJuYW1lXCIsXCJzZXRVc2VybmFtZVwiKSksZChGZSxcInBhc3N3b3JkXCIsTWUoXCJnZXRQYXNzd29yZFwiLFwic2V0UGFzc3dvcmRcIikpLGQoRmUsXCJob3N0XCIsTWUoXCJnZXRIb3N0XCIsXCJzZXRIb3N0XCIpKSxkKEZlLFwiaG9zdG5hbWVcIixNZShcImdldEhvc3RuYW1lXCIsXCJzZXRIb3N0bmFtZVwiKSksZChGZSxcInBvcnRcIixNZShcImdldFBvcnRcIixcInNldFBvcnRcIikpLGQoRmUsXCJwYXRobmFtZVwiLE1lKFwiZ2V0UGF0aG5hbWVcIixcInNldFBhdGhuYW1lXCIpKSxkKEZlLFwic2VhcmNoXCIsTWUoXCJnZXRTZWFyY2hcIixcInNldFNlYXJjaFwiKSksZChGZSxcInNlYXJjaFBhcmFtc1wiLE1lKFwiZ2V0U2VhcmNoUGFyYW1zXCIpKSxkKEZlLFwiaGFzaFwiLE1lKFwiZ2V0SGFzaFwiLFwic2V0SGFzaFwiKSkpLHUoRmUsXCJ0b0pTT05cIiwoZnVuY3Rpb24oKXtyZXR1cm4gUyh0aGlzKS5zZXJpYWxpemUoKX0pLHtlbnVtZXJhYmxlOiEwfSksdShGZSxcInRvU3RyaW5nXCIsKGZ1bmN0aW9uKCl7cmV0dXJuIFModGhpcykuc2VyaWFsaXplKCl9KSx7ZW51bWVyYWJsZTohMH0pLF8pe3ZhciBHZT1fLmNyZWF0ZU9iamVjdFVSTCxVZT1fLnJldm9rZU9iamVjdFVSTDtHZSYmdShIZSxcImNyZWF0ZU9iamVjdFVSTFwiLGwoR2UsXykpLFVlJiZ1KEhlLFwicmV2b2tlT2JqZWN0VVJMXCIsbChVZSxfKSl9VChIZSxcIlVSTFwiKSxvKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOiFhLHNoYW06IWl9LHtVUkw6SGV9KX0sNDQ4OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjtuKDg5MjgpfSw4NTQ1OihlLHQsbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDUzNjkpLG89bigzMDExKTtyKHt0YXJnZXQ6XCJVUkxcIixwcm90bzohMCxlbnVtZXJhYmxlOiEwfSx7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJuIG8oVVJMLnByb3RvdHlwZS50b1N0cmluZyx0aGlzKX19KX0sNTk3MTooZSx0LG4pPT57XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1pUOigpPT5vLF9UOigpPT5hLGV2OigpPT5zLHBpOigpPT5pfSk7dmFyIHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9LHIoZSx0KX07ZnVuY3Rpb24gbyhlLHQpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIitTdHJpbmcodCkrXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXIoZSx0KSxlLnByb3RvdHlwZT1udWxsPT09dD9PYmplY3QuY3JlYXRlKHQpOihuLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgbil9dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4gaT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKWZvcih2YXIgbyBpbiB0PWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmKGVbb109dFtvXSk7cmV0dXJuIGV9LGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBhKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihudWxsIT1lJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG89MDtmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO288ci5sZW5ndGg7bysrKXQuaW5kZXhPZihyW29dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW29dKSYmKG5bcltvXV09ZVtyW29dXSl9cmV0dXJuIG59T2JqZWN0LmNyZWF0ZTtmdW5jdGlvbiBzKGUsdCxuKXtpZihufHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIHIsbz0wLGk9dC5sZW5ndGg7bzxpO28rKykhciYmbyBpbiB0fHwocnx8KHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLG8pKSxyW29dPXRbb10pO3JldHVybiBlLmNvbmNhdChyfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSl9T2JqZWN0LmNyZWF0ZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3VwcHJlc3NlZEVycm9yJiZTdXBwcmVzc2VkRXJyb3J9LDY2MTplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIntkb21haW59IGVyIG1cXHhlNXNrZSB0aWwgc2FsZyFcIixcImRic1RleHRIZWdcIjpcImVyIHBhcmtlcmV0IGdyYXRpcyBhZiAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImVyIHVkbFxceGY4YmV0IG9nIHBhcmtlcmV0IGdyYXRpcyBhZiAxMjMgUmVnLlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcImthbiBrXFx4ZjhiZXMgcFxceGU1IEdvRGFkZHktYXVrdGlvbmVyLlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIkRldHRlIGRvbVxceGU2bmUga2FuIGtcXHhmOGJlcyBwXFx4ZTUgR29EYWRkeS1hdWt0aW9uZXJcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiZXIgdWRsXFx4ZjhiZXQgb2cga2FuIGtcXHhmOGJlcyBwXFx4ZTUgR29EYWRkeS1hdWt0aW9uZXIuXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJIdmlzIGR1IGVqZXIgZGV0dGUgZG9tXFx4ZTZuZW5hdm4gb2cga3VubmUgdFxceGU2bmtlIGRpZyBhdCBmXFx4ZTUgZGluIGVnZW4gd2Vic2l0ZSwgc1xceGU1IHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IG9nIHNlIHZvcmVzIHVkdmFsZyBhZiBwcmlzdmVubGlnZSBwcm9kdWt0ZXIsIHNvbSBpbmtsdWRlcmVyIEhqZW1tZXNpZGVwcm9ncmFtLCBXZWJob3N0aW5nIG9nIG1lZ2V0IG1lcmUuXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcImJlc1xceGY4ZyAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRG9tXFx4ZTZuZXQge2RvbWFpbn0gZXIgdGlsIHNhbGcuIFZpbCBkdSBrXFx4ZjhiZSwgc1xceGU1IHJpbmcge2FmdGVybmljU2l0ZU5hbWV9IHRpbCB7YWZ0ZXJuaWNQaG9uZTF9IGVsbGVyIHthZnRlcm5pY1Bob25lMn0uIEtsaWsgaGVyIGZvciBhdCBmXFx4ZTUgZmxlcmUgb3BseXNuaW5nZXIuXCIsXCJkYnNUZXh0XCI6XCJlciBwYXJrZXJldCBncmF0aXMgYWYgR29EYWRkeS5jb20uXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiZXIgdWRsXFx4ZjhiZXQgb2cgcGFya2VyZXQgZ3JhdGlzIGFmIEdvRGFkZHkuY29tLlwiLFwiYXVjdGlvblRleHRcIjpcImthbiBrXFx4ZjhiZXMgcFxceGU1IEdvRGFkZHktYXVrdGlvbmVyLlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIkRldHRlIGRvbVxceGU2bmUga2FuIGtcXHhmOGJlcyBwXFx4ZTUgR29EYWRkeS1hdWt0aW9uZXJcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiRXIgZHUgaW50ZXJlc3NlcmV0IGkgZGV0dGUgZG9tXFx4ZTZuZT9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiZXIgdWRsXFx4ZjhiZXQgb2cga2FuIGtcXHhmOGJlcyBwXFx4ZTUgR29EYWRkeS1hdWt0aW9uZXIuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJGXFx4ZTUgZGV0dGUgZG9tXFx4ZTZuZVwiLFwiYmFja29yZGVyVGV4dFwiOlwiRXIgZHUgaW50ZXJlc3NlcmV0IGkge2RvbWFpbn0/IEZpbmQgdWQgYWYsIGh2b3JkYW4gZHUgZlxceGU1ciBkZXQgZ2VubmVtIGRvbVxceGU2bmUgcmVzZXJ2YXRpb24uXCIsXCJleHBpcmVkQmFja29yZGVyVGV4dFwiOlwie2RvbWFpbn0gZXIgdWRsXFx4ZjhiZXQuIEZpbmQgdWQgYWYsIGh2b3JkYW4gZHUgZlxceGU1ciBkZXQgZ2VubmVtIGRvbVxceGU2bmUgcmVzZXJ2YXRpb24uXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgQWxsZSByZXR0aWdoZWRlciBmb3JiZWhvbGRlcy5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQcml2YXRsaXZzcG9saXRpa1wiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBBbGxlIHJldHRpZ2hlZGVyIGZvcmJlaG9sZGVzLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIkFuc3ZhcnNmcmFza3JpdmVsc2U6IEhlbnZpc25pbmdlciBwXFx4ZTUgZGVubmUgc2l0ZSB0aWwgbm9nZXQgc3BlY2lmaWt0IGZpcm1hLCBwcm9kdWt0IGVsbGVyIHRqZW5lc3RlciBrb250cm9sbGVyZXMgaWtrZSBhZiAxMjMgUmVnIEx0ZCwgb2cgdWRnXFx4ZjhyIGVsbGVyIGFudHlkZXIgaWtrZSBkZW5zIGZvcmJpbmRlbHNlIG1lZCBlbGxlciBwXFx4ZTV0ZWduaW5nIGFmIHRyZWRqZXBhcnRzYW5ub25jXFx4ZjhyZXIuXCIsXCJvd3NIZWFkaW5nXCI6XCJWaSBnXFx4ZTVyIGkgYnJlY2hlbiBmb3Igc21cXHhlNSB2aXJrc29taGVkZXIgI09wZW5XZVN0YW5kLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIkkgZGlzc2UgdWRmb3JkcmVuZGUgdGlkZXIgZ1xceGY4ciB2aSBhbHQsIGh2YWQgdmkga2FuIGZvciBhdCBoalxceGU2bHBlIGRpZyBvZyBkaW4gdmlya3NvbWhlZCBtZWQgdGlscGFzbmluZ2VuLlwiLFwib3dzQ1RBXCI6XCJGXFx4ZTUgbWVyZSBhdCB2aWRlXCIsXCJhZHNCbG9ja2VkVGV4dFwiOlwiQW5ub25jZXIgZXIgYmxva2VyZWRlXCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBlciBtXFx4ZTVza2UgdGlsIHNhbGdcIixcImNvbnRhY3RPd25lckRlc2NyaXB0aW9uXCI6XCJEdSBza2FsIGtvbnRha3RlIGRvbVxceGU2bmVlamVyZW5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5hdm5cIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFLW1haWxcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxlZm9uXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiQmVtXFx4ZTZya25pbmdlclwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJTZW5kIG1lZGRlbGVsc2VcIixcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wiOlwiTGVkZXIgZHUgZWZ0ZXIgbGlnbmVuZGUgZG9tXFx4ZTZuZXI/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlNlIGRpc3NlIHBvcHVsXFx4ZTZyZSB2YWxnXCIsXCJBVC1CdXlcIjpcIktcXHhmOGJcIixcIkFULVByb21vdGVkXCI6XCJNYXJrZWRzZlxceGY4cnRcIn0nKX0sODMxODplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIntkb21haW59IHN0ZWh0IG1cXHhmNmdsaWNoZXJ3ZWlzZSB6dW0gVmVya2F1ZiFcIixcImRic1RleHRIZWdcIjpcIndpcmQga29zdGVubG9zIHZvbiAxMjNcXHhhMFJlZyBnZXBhcmt0LlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImlzdCBhYmdlbGF1ZmVuIHVuZCB3aXJkIGtvc3RlbmxvcyB2b24gMTIzXFx4YTBSZWcgZ2VwYXJrdC5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJpc3QgYmVpIEdvRGFkZHktQXVrdGlvbmVuIGVyaFxceGU0bHRsaWNoLlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIkRpZXNlIERvbWFpbiBpc3QgYmVpIEdvRGFkZHktQXVrdGlvbmVuIGVyaFxceGU0bHRsaWNoXCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcImlzdCBhYmdlbGF1ZmVuIHVuZCBiZWkgR29EYWRkeS1BdWt0aW9uZW4gZXJoXFx4ZTRsdGxpY2guXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJXZW5uIGRpZXNlciBEb21haW5uYW1lIGRpciBnZWhcXHhmNnJ0IHVuZCBkdSBkZWluZSBlaWdlbmUgV2Vic2l0ZSBvbmxpbmUgc3RlbGxlbiBtXFx4ZjZjaHRlc3QsIGRhbm4ge2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua30gdW5kIGluZm9ybWllcmUgZGljaCBcXHhmY2JlciB1bnNlcmUga29zdGVuZ1xceGZjbnN0aWdlbiBQcm9kdWt0ZSB3aWUgSG9tZXBhZ2UtQmF1a2FzdGVuLCBXZWJob3N0aW5nIHVzdy5cIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwiYmVzdWNoZSAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRGllIERvbWFpbiB7ZG9tYWlufSBzdGVodCB6dW0gVmVya2F1Zi4gV2VubiBkdSBzaWUga2F1ZmVuIG1cXHhmNmNodGVzdCwgcnVmZSB7YWZ0ZXJuaWNTaXRlTmFtZX0gdW50ZXIge2FmdGVybmljUGhvbmUxfSBvZGVyIHthZnRlcm5pY1Bob25lMn0gYW4uIFdlaXRlcmUgRGV0YWlscyBlcmhcXHhlNGx0c3QgZHUgaGllci5cIixcImRic1RleHRcIjpcIndpcmQga29zdGVubG9zIHZvbiBHb0RhZGR5LmNvbSBnZXBhcmt0LlwiLFwiZXhwaXJlZERic1RleHRcIjpcImlzdCBhYmdlbGF1ZmVuIHVuZCB3aXJkIGtvc3RlbmxvcyB2b24gR29EYWRkeS5jb20gZ2VwYXJrdC5cIixcImF1Y3Rpb25UZXh0XCI6XCJpc3QgYmVpIEdvRGFkZHktQXVrdGlvbmVuIGVyaFxceGU0bHRsaWNoLlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIkRpZXNlIERvbWFpbiBpc3QgYmVpIEdvRGFkZHktQXVrdGlvbmVuIGVyaFxceGU0bHRsaWNoXCIsXCJjYXNocGFya2luZ1RleHRcIjpcIk1cXHhmNmNodGVzdCBkdSBkaWVzZSBEb21haW4gaGFiZW4/XCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcImlzdCBhYmdlbGF1ZmVuIHVuZCBiZWkgR29EYWRkeS1BdWt0aW9uZW4gZXJoXFx4ZTRsdGxpY2guXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJEaWVzZSBEb21haW4gZXJ3ZXJiZW4uXCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJIYXN0IGR1IEludGVyZXNzZSBhbiB7ZG9tYWlufT8gRGFubiBpbmZvcm1pZXJlIGRpY2gsIHdpZSBkdSBkaWUgRG9tYWluIFxceGZjYmVyIGRpZSBEb21haW52b3JtZXJrdW5nIGVyaFxceGU0bHRzdC5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSBpc3QgYWJnZWxhdWZlbi4gRXJmYWhyZSwgd2llIGR1IHNpZSBcXHhmY2JlciBkaWUgRG9tYWludm9ybWVya3VuZyBiZWtvbW1zdC5cIixcImNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSBBbGxlIFJlY2h0ZSB2b3JiZWhhbHRlbi5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJEYXRlbnNjaHV0emJlc3RpbW11bmdlblwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5XFx1MjAxM3tjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBBbGxlIFJlY2h0ZSB2b3JiZWhhbHRlbi5cIixcInBhcmt3ZWJoZWdjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkge2N1cnJlbnRZZWFyfSAxMjMgUmVnIEx0ZFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJIYWZ0dW5nc2F1c3NjaGx1c3M6IFZlcndlaXNlIGF1ZiBrb25rcmV0ZSBVbnRlcm5laG1lbiwgUHJvZHVrdGUgb2RlciBTZXJ2aWNlcyBhdWYgZGllc2VyIFdlYnNpdGUgd2VyZGVuIG5pY2h0IHZvbiAxMjMgUmVnIEx0ZCBrb250cm9sbGllcnQgdW5kIHN0ZWxsZW4gd2VkZXIgZWluZSBWZXJiaW5kdW5nIG1pdCBub2NoIGVpbmUgQmVmXFx4ZmNyd29ydHVuZyB2b24gYmVzdGltbXRlbiBEcml0dGFuYmlldGVybiBkYXIsIG5vY2ggaW1wbGl6aWVyZW4gc2llIGVpbmUgc29sY2hlLlwiLFwib3dzSGVhZGluZ1wiOlwiI09wZW5XZVN0YW5kIGZcXHhmY3Iga2xlaW5lIFVudGVybmVobWVuLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIkluIGRpZXNlbiBzY2h3aWVyaWdlbiBaZWl0ZW4gdHVuIHdpciBhbGxlcywgd2FzIGluIHVuc2VyZXIgTWFjaHQgc3RlaHQsIHVtIGRpciB1bmQgZGVpbmVtIFVudGVybmVobWVuIGRhYmVpIHp1IGhlbGZlbiwgc2ljaCBhbiBkaWUgU2l0dWF0aW9uIGFuenVwYXNzZW4uXCIsXCJvd3NDVEFcIjpcIldlaXRlcmUgSW5mb3NcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJBbnplaWdlbiBzaW5kIGdlc3BlcnJ0LlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gc3RlaHQgbVxceGY2Z2xpY2hlcndlaXNlIHp1bSBWZXJrYXVmXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiV2VuZGUgZGljaCBhbiBkZW4gRG9tYWluaW5oYWJlclwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiTmFtZVwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIkUtTWFpbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRlbGVmb25cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJLb21tZW50YXJlXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIk5hY2hyaWNodCBzZW5kZW5cIixcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wiOlwiQXVmIGRlciBTdWNoZSBuYWNoIFxceGU0aG5saWNoZW4gRG9tYWlucz9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiRGFubiBzaWVoIGRpciBtYWwgZGllIGZvbGdlbmRlIEF1c3dhaGwgYW5cIixcIkFULUJ1eVwiOlwiS2F1ZmVuXCIsXCJBVC1Qcm9tb3RlZFwiOlwiQmV3b3JiZW5cIn0nKX0sODgwNjplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIlxcdTAzYTRcXHUwM2JmIHtkb21haW59IFxcdTAzYWZcXHUwM2MzXFx1MDNjOVxcdTAzYzIgXFx1MDNiZFxcdTAzYjEgXFx1MDNiNVxcdTAzYWZcXHUwM2JkXFx1MDNiMVxcdTAzYjkgXFx1MDNjMFxcdTAzYzFcXHUwM2JmXFx1MDNjMiBcXHUwM2MwXFx1MDNjZVxcdTAzYmJcXHUwM2I3XFx1MDNjM1xcdTAzYjchXCIsXCJkYnNUZXh0SGVnXCI6XCJcXHUwM2I1XFx1MDNhZlxcdTAzYmRcXHUwM2IxXFx1MDNiOSBcXHUwM2MzXFx1MDNjNFxcdTAzYjFcXHUwM2I4XFx1MDNiY1xcdTAzYjVcXHUwM2M1XFx1MDNiY1xcdTAzYWRcXHUwM2JkXFx1MDNiZiBcXHUwM2I0XFx1MDNjOVxcdTAzYzFcXHUwM2I1XFx1MDNhY1xcdTAzYmQsIFxcdTAzYmNcXHUwM2I1IFxcdTAzYzRcXHUwM2I3XFx1MDNiZCBcXHUwM2I1XFx1MDNjNVxcdTAzYjNcXHUwM2I1XFx1MDNiZFxcdTAzYjlcXHUwM2JhXFx1MDNhZSBcXHUwM2MwXFx1MDNjMVxcdTAzYmZcXHUwM2MzXFx1MDNjNlxcdTAzYmZcXHUwM2MxXFx1MDNhYyBcXHUwM2M0XFx1MDNiN1xcdTAzYzIgMTIzIFJlZy5cIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJcXHUwM2FkXFx1MDNiYlxcdTAzYjdcXHUwM2JlXFx1MDNiNSBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDNiNVxcdTAzYWZcXHUwM2JkXFx1MDNiMVxcdTAzYjkgXFx1MDNjM1xcdTAzYzRcXHUwM2IxXFx1MDNiOFxcdTAzYmNcXHUwM2I1XFx1MDNjNVxcdTAzYmNcXHUwM2FkXFx1MDNiZFxcdTAzYmYgXFx1MDNiNFxcdTAzYzlcXHUwM2MxXFx1MDNiNVxcdTAzYWNcXHUwM2JkLCBcXHUwM2JjXFx1MDNiNSBcXHUwM2M0XFx1MDNiN1xcdTAzYmQgXFx1MDNiNVxcdTAzYzVcXHUwM2IzXFx1MDNiNVxcdTAzYmRcXHUwM2I5XFx1MDNiYVxcdTAzYWUgXFx1MDNjMFxcdTAzYzFcXHUwM2JmXFx1MDNjM1xcdTAzYzZcXHUwM2JmXFx1MDNjMVxcdTAzYWMgXFx1MDNjNFxcdTAzYjdcXHUwM2MyIDEyMyBSZWcuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiXFx1MDNiNVxcdTAzYWZcXHUwM2JkXFx1MDNiMVxcdTAzYjkgXFx1MDNiNFxcdTAzYjlcXHUwM2IxXFx1MDNiOFxcdTAzYWRcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmIFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2IxXFx1MDNiM1xcdTAzYmZcXHUwM2MxXFx1MDNhYyBcXHUwM2MzXFx1MDNjNFxcdTAzYjlcXHUwM2MyIFxcdTAzOTRcXHUwM2I3XFx1MDNiY1xcdTAzYmZcXHUwM2MwXFx1MDNjMVxcdTAzYjFcXHUwM2MzXFx1MDNhZlxcdTAzYjVcXHUwM2MyIEdvRGFkZHkuXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiXFx1MDM5MVxcdTAzYzVcXHUwM2M0XFx1MDNjYyBcXHUwM2M0XFx1MDNiZiBkb21haW4gXFx1MDNiNVxcdTAzYWZcXHUwM2JkXFx1MDNiMVxcdTAzYjkgXFx1MDNiNFxcdTAzYjlcXHUwM2IxXFx1MDNiOFxcdTAzYWRcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmIFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2IxXFx1MDNiM1xcdTAzYmZcXHUwM2MxXFx1MDNhYyBcXHUwM2MzXFx1MDNjNFxcdTAzYjlcXHUwM2MyIFxcdTAzOTRcXHUwM2I3XFx1MDNiY1xcdTAzYmZcXHUwM2MwXFx1MDNjMVxcdTAzYjFcXHUwM2MzXFx1MDNhZlxcdTAzYjVcXHUwM2MyIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiXFx1MDNhZFxcdTAzYzdcXHUwM2I1XFx1MDNiOSBcXHUwM2JiXFx1MDNhZVxcdTAzYmVcXHUwM2I1XFx1MDNiOSBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDNiNVxcdTAzYWZcXHUwM2JkXFx1MDNiMVxcdTAzYjkgXFx1MDNiNFxcdTAzYjlcXHUwM2IxXFx1MDNiOFxcdTAzYWRcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmIFxcdTAzYzNcXHUwM2M0XFx1MDNiOVxcdTAzYzIgXFx1MDM5NFxcdTAzYjdcXHUwM2JjXFx1MDNiZlxcdTAzYzBcXHUwM2MxXFx1MDNiMVxcdTAzYzNcXHUwM2FmXFx1MDNiNVxcdTAzYzIgR29EYWRkeS5cIixcImhlZ0Zvb3RlclRleHRcIjpcIlxcdTAzOTFcXHUwM2JkIFxcdTAzYzNcXHUwM2IxXFx1MDNjMiBcXHUwM2IxXFx1MDNiZFxcdTAzYWVcXHUwM2JhXFx1MDNiNVxcdTAzYjkgXFx1MDNiMVxcdTAzYzVcXHUwM2M0XFx1MDNjYyBcXHUwM2M0XFx1MDNiZiBcXHUwM2NjXFx1MDNiZFxcdTAzYmZcXHUwM2JjXFx1MDNiMSBkb21haW4gXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYjhcXHUwM2FkXFx1MDNiYlxcdTAzYjVcXHUwM2M0XFx1MDNiNSBcXHUwM2JkXFx1MDNiMSBcXHUwM2I4XFx1MDNhZFxcdTAzYzNcXHUwM2I1XFx1MDNjNFxcdTAzYjUgXFx1MDNjM1xcdTAzYjUgXFx1MDNiYlxcdTAzYjVcXHUwM2I5XFx1MDNjNFxcdTAzYmZcXHUwM2M1XFx1MDNjMVxcdTAzYjNcXHUwM2FmXFx1MDNiMSBcXHUwM2M0XFx1MDNiZlxcdTAzYmQgXFx1MDNiNFxcdTAzYjlcXHUwM2JhXFx1MDNjYyBcXHUwM2MzXFx1MDNiMVxcdTAzYzIgXFx1MDNiOVxcdTAzYzNcXHUwM2M0XFx1MDNjY1xcdTAzYzRcXHUwM2JmXFx1MDNjMFxcdTAzYmYsIFxcdTAzYjNcXHUwM2I5XFx1MDNiMVxcdTAzYzRcXHUwM2FmIFxcdTAzYmRcXHUwM2IxIFxcdTAzYmNcXHUwM2I3XFx1MDNiZCB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNiZFxcdTAzYjEgXFx1MDNiNVxcdTAzYmJcXHUwM2FkXFx1MDNiM1xcdTAzYmVcXHUwM2I1XFx1MDNjNFxcdTAzYjUgXFx1MDNjNFxcdTAzYjcgXFx1MDNiM1xcdTAzYmFcXHUwM2FjXFx1MDNiY1xcdTAzYjEgXFx1MDNjMFxcdTAzYzFcXHUwM2JmXFx1MDNjM1xcdTAzYjlcXHUwM2M0XFx1MDNjZVxcdTAzYmQgXFx1MDNjMFxcdTAzYzFcXHUwM2JmXFx1MDNjYVxcdTAzY2NcXHUwM2JkXFx1MDNjNFxcdTAzYzlcXHUwM2JkIFxcdTAzYmNcXHUwM2IxXFx1MDNjMiwgXFx1MDNjMFxcdTAzYmZcXHUwM2M1IFxcdTAzYzBcXHUwM2I1XFx1MDNjMVxcdTAzYjlcXHUwM2JiXFx1MDNiMVxcdTAzYmNcXHUwM2IyXFx1MDNhY1xcdTAzYmRcXHUwM2I1XFx1MDNiOSBcXHUwM2MwXFx1MDNjMVxcdTAzY2NcXHUwM2IzXFx1MDNjMVxcdTAzYjFcXHUwM2JjXFx1MDNiY1xcdTAzYjEgXFx1MDNiYVxcdTAzYjFcXHUwM2M0XFx1MDNiMVxcdTAzYzNcXHUwM2JhXFx1MDNiNVxcdTAzYzVcXHUwM2FlXFx1MDNjMiBcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2NjXFx1MDNjNFxcdTAzYmZcXHUwM2MwXFx1MDNjOVxcdTAzYmQsIFxcdTAzYzZcXHUwM2I5XFx1MDNiYlxcdTAzYmZcXHUwM2JlXFx1MDNiNVxcdTAzYmRcXHUwM2FmXFx1MDNiMSB3ZWIgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYWNcXHUwM2JiXFx1MDNiYlxcdTAzYjEhXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIlxcdTAzYjVcXHUwM2MwXFx1MDNiOVxcdTAzYzNcXHUwM2JhXFx1MDNhZFxcdTAzYzBcXHUwM2M0XFx1MDNiNVxcdTAzYzNcXHUwM2M0XFx1MDNiNSBcXHUwM2M0XFx1MDNiZiAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiXFx1MDNhNFxcdTAzYmYgZG9tYWluIHtkb21haW59IFxcdTAzYjVcXHUwM2FmXFx1MDNiZFxcdTAzYjFcXHUwM2I5IFxcdTAzYzBcXHUwM2MxXFx1MDNiZlxcdTAzYzIgXFx1MDNjMFxcdTAzY2VcXHUwM2JiXFx1MDNiN1xcdTAzYzNcXHUwM2I3LiBcXHUwMzkzXFx1MDNiOVxcdTAzYjEgXFx1MDNiMVxcdTAzYjNcXHUwM2JmXFx1MDNjMVxcdTAzYWMsIFxcdTAzYmFcXHUwM2IxXFx1MDNiYlxcdTAzYWRcXHUwM2MzXFx1MDNjNFxcdTAzYjUgXFx1MDNjNFxcdTAzYjdcXHUwM2JkIHthZnRlcm5pY1NpdGVOYW1lfSBcXHUwM2MzXFx1MDNjNFxcdTAzYmZcXHUwM2JkIFxcdTAzYjFcXHUwM2MxXFx1MDNiOVxcdTAzYjhcXHUwM2JjXFx1MDNjYyB7YWZ0ZXJuaWNQaG9uZTF9IFxcdTAzYWUge2FmdGVybmljUGhvbmUyfS4gXFx1MDM5M1xcdTAzYjlcXHUwM2IxIFxcdTAzYzBcXHUwM2I1XFx1MDNjMVxcdTAzYjlcXHUwM2MzXFx1MDNjM1xcdTAzY2NcXHUwM2M0XFx1MDNiNVxcdTAzYzFcXHUwM2I1XFx1MDNjMiBcXHUwM2JiXFx1MDNiNVxcdTAzYzBcXHUwM2M0XFx1MDNiZlxcdTAzYmNcXHUwM2FkXFx1MDNjMVxcdTAzYjVcXHUwM2I5XFx1MDNiNVxcdTAzYzIsIFxcdTAzYmFcXHUwM2FjXFx1MDNiZFxcdTAzYzRcXHUwM2I1IFxcdTAzYmFcXHUwM2JiXFx1MDNiOVxcdTAzYmEgXFx1MDNiNVxcdTAzYjRcXHUwM2NlLlwiLFwiZGJzVGV4dFwiOlwiXFx1MDNiNVxcdTAzYWZcXHUwM2JkXFx1MDNiMVxcdTAzYjkgXFx1MDNjM1xcdTAzYzRcXHUwM2IxXFx1MDNiOFxcdTAzYmNcXHUwM2I1XFx1MDNjNVxcdTAzYmNcXHUwM2FkXFx1MDNiZFxcdTAzYmYgXFx1MDNiNFxcdTAzYzlcXHUwM2MxXFx1MDNiNVxcdTAzYWNcXHUwM2JkLCBcXHUwM2JjXFx1MDNiNSBcXHUwM2M0XFx1MDNiN1xcdTAzYmQgXFx1MDNiNVxcdTAzYzVcXHUwM2IzXFx1MDNiNVxcdTAzYmRcXHUwM2I5XFx1MDNiYVxcdTAzYWUgXFx1MDNjMFxcdTAzYzFcXHUwM2JmXFx1MDNjM1xcdTAzYzZcXHUwM2JmXFx1MDNjMVxcdTAzYWMgXFx1MDNjNFxcdTAzYjdcXHUwM2MyIEdvRGFkZHkuY29tLlwiLFwiZXhwaXJlZERic1RleHRcIjpcIlxcdTAzYWRcXHUwM2JiXFx1MDNiN1xcdTAzYmVcXHUwM2I1IFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2I1XFx1MDNhZlxcdTAzYmRcXHUwM2IxXFx1MDNiOSBcXHUwM2MzXFx1MDNjNFxcdTAzYjFcXHUwM2I4XFx1MDNiY1xcdTAzYjVcXHUwM2M1XFx1MDNiY1xcdTAzYWRcXHUwM2JkXFx1MDNiZiBcXHUwM2I0XFx1MDNjOVxcdTAzYzFcXHUwM2I1XFx1MDNhY1xcdTAzYmQsIFxcdTAzYmNcXHUwM2I1IFxcdTAzYzRcXHUwM2I3XFx1MDNiZCBcXHUwM2I1XFx1MDNjNVxcdTAzYjNcXHUwM2I1XFx1MDNiZFxcdTAzYjlcXHUwM2JhXFx1MDNhZSBcXHUwM2M3XFx1MDNiZlxcdTAzYzFcXHUwM2I3XFx1MDNiM1xcdTAzYWZcXHUwM2IxIFxcdTAzYzRcXHUwM2JmXFx1MDNjNSBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJcXHUwM2I1XFx1MDNhZlxcdTAzYmRcXHUwM2IxXFx1MDNiOSBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2I4XFx1MDNhZFxcdTAzYzNcXHUwM2I5XFx1MDNiY1xcdTAzYmYgXFx1MDNiM1xcdTAzYjlcXHUwM2IxIFxcdTAzYjFcXHUwM2IzXFx1MDNiZlxcdTAzYzFcXHUwM2FjIFxcdTAzYzNcXHUwM2M0XFx1MDNiOVxcdTAzYzIgXFx1MDM5NFxcdTAzYjdcXHUwM2JjXFx1MDNiZlxcdTAzYzBcXHUwM2MxXFx1MDNiMVxcdTAzYzNcXHUwM2FmXFx1MDNiNVxcdTAzYzIgR29EYWRkeS5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJcXHUwMzkxXFx1MDNjNVxcdTAzYzRcXHUwM2NjIFxcdTAzYzRcXHUwM2JmIGRvbWFpbiBcXHUwM2I1XFx1MDNhZlxcdTAzYmRcXHUwM2IxXFx1MDNiOSBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2I4XFx1MDNhZFxcdTAzYzNcXHUwM2I5XFx1MDNiY1xcdTAzYmYgXFx1MDNiM1xcdTAzYjlcXHUwM2IxIFxcdTAzYjFcXHUwM2IzXFx1MDNiZlxcdTAzYzFcXHUwM2FjIFxcdTAzYzNcXHUwM2M0XFx1MDNiOVxcdTAzYzIgXFx1MDM5NFxcdTAzYjdcXHUwM2JjXFx1MDNiZlxcdTAzYzBcXHUwM2MxXFx1MDNiMVxcdTAzYzNcXHUwM2FmXFx1MDNiNVxcdTAzYzIgR29EYWRkeVwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHUwM2EzXFx1MDNiMVxcdTAzYzIgXFx1MDNiNVxcdTAzYmRcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNhZFxcdTAzYzFcXHUwM2I1XFx1MDNiOSBcXHUwM2IxXFx1MDNjNVxcdTAzYzRcXHUwM2NjIFxcdTAzYzRcXHUwM2JmIGRvbWFpbjtcIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiXFx1MDNhZFxcdTAzYzdcXHUwM2I1XFx1MDNiOSBcXHUwM2JiXFx1MDNhZVxcdTAzYmVcXHUwM2I1XFx1MDNiOSBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDNiNVxcdTAzYWZcXHUwM2JkXFx1MDNiMVxcdTAzYjkgXFx1MDNiNFxcdTAzYjlcXHUwM2IxXFx1MDNiOFxcdTAzYWRcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmIFxcdTAzYzNcXHUwM2M0XFx1MDNiOVxcdTAzYzIgXFx1MDM5NFxcdTAzYjdcXHUwM2JjXFx1MDNiZlxcdTAzYzBcXHUwM2MxXFx1MDNiMVxcdTAzYzNcXHUwM2FmXFx1MDNiNVxcdTAzYzIgR29EYWRkeS5cIixcIkdldFRoaXNEb21haW5DVEFcIjpcIlxcdTAzOTFcXHUwM2MwXFx1MDNiZlxcdTAzYmFcXHUwM2M0XFx1MDNhZVxcdTAzYzNcXHUwM2M0XFx1MDNiNSBcXHUwM2IxXFx1MDNjNVxcdTAzYzRcXHUwM2NjIFxcdTAzYzRcXHUwM2JmIGRvbWFpblwiLFwiYmFja29yZGVyVGV4dFwiOlwiXFx1MDNhM1xcdTAzYjFcXHUwM2MyIFxcdTAzYjVcXHUwM2JkXFx1MDNiNFxcdTAzYjlcXHUwM2IxXFx1MDNjNlxcdTAzYWRcXHUwM2MxXFx1MDNiNVxcdTAzYjkgXFx1MDNjNFxcdTAzYmYge2RvbWFpbn07IFxcdTAzOWNcXHUwM2FjXFx1MDNiOFxcdTAzYjVcXHUwM2M0XFx1MDNiNSBcXHUwM2MwXFx1MDNjZVxcdTAzYzIgXFx1MDNiY1xcdTAzYzBcXHUwM2JmXFx1MDNjMVxcdTAzYjVcXHUwM2FmXFx1MDNjNFxcdTAzYjUgXFx1MDNiZFxcdTAzYjEgXFx1MDNjNFxcdTAzYmYgXFx1MDNiMVxcdTAzYzBcXHUwM2JmXFx1MDNiYVxcdTAzYzRcXHUwM2FlXFx1MDNjM1xcdTAzYjVcXHUwM2M0XFx1MDNiNSBcXHUwM2JjXFx1MDNhZFxcdTAzYzNcXHUwM2M5IFxcdTAzYzBcXHUwM2MxXFx1MDNiZlxcdTAzYzBcXHUwM2IxXFx1MDNjMVxcdTAzYjFcXHUwM2IzXFx1MDNiM1xcdTAzYjVcXHUwM2JiXFx1MDNhZlxcdTAzYjFcXHUwM2MyIGRvbWFpbi5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJcXHUwM2E0XFx1MDNiZiB7ZG9tYWlufSBcXHUwM2FkXFx1MDNjN1xcdTAzYjVcXHUwM2I5IFxcdTAzYmJcXHUwM2FlXFx1MDNiZVxcdTAzYjVcXHUwM2I5LiBcXHUwMzljXFx1MDNhY1xcdTAzYjhcXHUwM2I1XFx1MDNjNFxcdTAzYjUgXFx1MDNjMFxcdTAzY2VcXHUwM2MyIFxcdTAzYmNcXHUwM2MwXFx1MDNiZlxcdTAzYzFcXHUwM2I1XFx1MDNhZlxcdTAzYzRcXHUwM2I1IFxcdTAzYmRcXHUwM2IxIFxcdTAzYzRcXHUwM2JmIFxcdTAzYjFcXHUwM2MwXFx1MDNiZlxcdTAzYmFcXHUwM2M0XFx1MDNhZVxcdTAzYzNcXHUwM2I1XFx1MDNjNFxcdTAzYjUgXFx1MDNiY1xcdTAzYWRcXHUwM2MzXFx1MDNjOSBcXHUwM2MwXFx1MDNjMVxcdTAzYmZcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2IxXFx1MDNiM1xcdTAzYjNcXHUwM2I1XFx1MDNiYlxcdTAzYWZcXHUwM2IxXFx1MDNjMiBkb21haW4uXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgLSBcXHUwMzljXFx1MDNiNSBcXHUwM2I1XFx1MDNjMFxcdTAzYjlcXHUwM2M2XFx1MDNjZFxcdTAzYmJcXHUwM2IxXFx1MDNiZVxcdTAzYjcgXFx1MDNjMFxcdTAzYjFcXHUwM2JkXFx1MDNjNFxcdTAzY2NcXHUwM2MyIFxcdTAzYjRcXHUwM2I5XFx1MDNiYVxcdTAzYjFcXHUwM2I5XFx1MDNjZVxcdTAzYmNcXHUwM2IxXFx1MDNjNFxcdTAzYmZcXHUwM2MyLlwiLFwicHJpdmFjeVBvbGljeVRleHRcIjpcIlxcdTAzYTBcXHUwM2JmXFx1MDNiYlxcdTAzYjlcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FlIFxcdTAzYjFcXHUwM2MwXFx1MDNiZlxcdTAzYzFcXHUwM2MxXFx1MDNhZVxcdTAzYzRcXHUwM2JmXFx1MDNjNVwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBcXHUwMzljXFx1MDNiNSBcXHUwM2I1XFx1MDNjMFxcdTAzYjlcXHUwM2M2XFx1MDNjZFxcdTAzYmJcXHUwM2IxXFx1MDNiZVxcdTAzYjcgXFx1MDNjMFxcdTAzYjFcXHUwM2JkXFx1MDNjNFxcdTAzY2NcXHUwM2MyIFxcdTAzYjRcXHUwM2I5XFx1MDNiYVxcdTAzYjFcXHUwM2I5XFx1MDNjZVxcdTAzYmNcXHUwM2IxXFx1MDNjNFxcdTAzYmZcXHUwM2MyLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIlxcdTAzOTFcXHUwM2MwXFx1MDNiZlxcdTAzYzBcXHUwM2JmXFx1MDNhZlxcdTAzYjdcXHUwM2MzXFx1MDNiNyBcXHUwM2I1XFx1MDNjNVxcdTAzYjhcXHUwM2M1XFx1MDNiZFxcdTAzY2VcXHUwM2JkOiBcXHUwMzlmXFx1MDNiOSBcXHUwM2IxXFx1MDNiZFxcdTAzYjFcXHUwM2M2XFx1MDNiZlxcdTAzYzFcXHUwM2FkXFx1MDNjMiBcXHUwM2MzXFx1MDNiNSBcXHUwM2JmXFx1MDNjMFxcdTAzYmZcXHUwM2I5XFx1MDNiMVxcdTAzYjRcXHUwM2FlXFx1MDNjMFxcdTAzYmZcXHUwM2M0XFx1MDNiNSBcXHUwM2MzXFx1MDNjNVxcdTAzYjNcXHUwM2JhXFx1MDNiNVxcdTAzYmFcXHUwM2MxXFx1MDNiOVxcdTAzYmNcXHUwM2FkXFx1MDNiZFxcdTAzYjcgXFx1MDNiNVxcdTAzYzRcXHUwM2IxXFx1MDNiOVxcdTAzYzFcXHUwM2I1XFx1MDNhZlxcdTAzYjEsIFxcdTAzYzBcXHUwM2MxXFx1MDNiZlxcdTAzY2FcXHUwM2NjXFx1MDNiZCBcXHUwM2FlIFxcdTAzYzVcXHUwM2MwXFx1MDNiN1xcdTAzYzFcXHUwM2I1XFx1MDNjM1xcdTAzYWZcXHUwM2IxIFxcdTAzYzNcXHUwM2I1IFxcdTAzYjFcXHUwM2M1XFx1MDNjNFxcdTAzY2NcXHUwM2JkIFxcdTAzYzRcXHUwM2JmXFx1MDNiZCBcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2NjXFx1MDNjNFxcdTAzYmZcXHUwM2MwXFx1MDNiZiBcXHUwM2I0XFx1MDNiNVxcdTAzYmQgXFx1MDNiNVxcdTAzYmJcXHUwM2FkXFx1MDNiM1xcdTAzYzdcXHUwM2JmXFx1MDNiZFxcdTAzYzRcXHUwM2IxXFx1MDNiOSBcXHUwM2IxXFx1MDNjMFxcdTAzY2MgXFx1MDNjNFxcdTAzYjdcXHUwM2JkIDEyMyBSZWcgTHRkIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2I0XFx1MDNiNVxcdTAzYmQgXFx1MDNjM1xcdTAzYzVcXHUwM2JkXFx1MDNiOVxcdTAzYzNcXHUwM2M0XFx1MDNiZlxcdTAzY2RcXHUwM2JkIFxcdTAzYmZcXHUwM2NkXFx1MDNjNFxcdTAzYjUgXFx1MDNjNVxcdTAzYzBcXHUwM2JmXFx1MDNiZFxcdTAzYmZcXHUwM2JmXFx1MDNjZFxcdTAzYmQgXFx1MDNjNFxcdTAzYjcgXFx1MDNjM1xcdTAzYzVcXHUwM2MzXFx1MDNjN1xcdTAzYWRcXHUwM2M0XFx1MDNiOVxcdTAzYzNcXHUwM2FlIFxcdTAzYzRcXHUwM2I3XFx1MDNjMiBcXHUwM2JjXFx1MDNiNSBcXHUwM2M0XFx1MDNjMVxcdTAzYWZcXHUwM2M0XFx1MDNiZlxcdTAzYzVcXHUwM2MyIFxcdTAzYjRcXHUwM2I5XFx1MDNiMVxcdTAzYzZcXHUwM2I3XFx1MDNiY1xcdTAzYjlcXHUwM2I2XFx1MDNjY1xcdTAzYmNcXHUwM2I1XFx1MDNiZFxcdTAzYmZcXHUwM2M1XFx1MDNjMiBcXHUwM2FlIFxcdTAzYzRcXHUwM2I3XFx1MDNiZCBcXHUwM2M1XFx1MDNjMFxcdTAzYmZcXHUwM2MzXFx1MDNjNFxcdTAzYWVcXHUwM2MxXFx1MDNiOVxcdTAzYmVcXHUwM2I3IFxcdTAzYzRcXHUwM2MxXFx1MDNhZlxcdTAzYzRcXHUwM2M5XFx1MDNiZCBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNiN1xcdTAzYmNcXHUwM2I5XFx1MDNiNlxcdTAzY2NcXHUwM2JjXFx1MDNiNVxcdTAzYmRcXHUwM2M5XFx1MDNiZC5cIixcIm93c0hlYWRpbmdcIjpcIlxcdTAzOTRcXHUwM2I3XFx1MDNiYlxcdTAzY2VcXHUwM2JkXFx1MDNiZlxcdTAzYzVcXHUwM2JjXFx1MDNiNSAjT3BlbldlU3RhbmQgXFx1MDNiY1xcdTAzYjUgXFx1MDNjNFxcdTAzYjlcXHUwM2MyIFxcdTAzYmNcXHUwM2I5XFx1MDNiYVxcdTAzYzFcXHUwM2FkXFx1MDNjMiBcXHUwM2I1XFx1MDNjMFxcdTAzYjlcXHUwM2M3XFx1MDNiNVxcdTAzYjlcXHUwM2MxXFx1MDNhZVxcdTAzYzNcXHUwM2I1XFx1MDNiOVxcdTAzYzIuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiXFx1MDNhM1xcdTAzYjUgXFx1MDNiMVxcdTAzYzVcXHUwM2M0XFx1MDNiZlxcdTAzY2RcXHUwM2MyIFxcdTAzYzRcXHUwM2JmXFx1MDNjNVxcdTAzYzIgXFx1MDNiNFxcdTAzY2RcXHUwM2MzXFx1MDNiYVxcdTAzYmZcXHUwM2JiXFx1MDNiZlxcdTAzYzVcXHUwM2MyIFxcdTAzYmFcXHUwM2IxXFx1MDNiOVxcdTAzYzFcXHUwM2JmXFx1MDNjZFxcdTAzYzIsIFxcdTAzYmFcXHUwM2FjXFx1MDNiZFxcdTAzYmZcXHUwM2M1XFx1MDNiY1xcdTAzYjUgXFx1MDNjYyxcXHUwM2M0XFx1MDNiOSBcXHUwM2JjXFx1MDNjMFxcdTAzYmZcXHUwM2MxXFx1MDNiZlxcdTAzY2RcXHUwM2JjXFx1MDNiNSBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNiZFxcdTAzYjEgXFx1MDNiMlxcdTAzYmZcXHUwM2I3XFx1MDNiOFxcdTAzYWVcXHUwM2MzXFx1MDNiZlxcdTAzYzVcXHUwM2JjXFx1MDNiNSBcXHUwM2I1XFx1MDNjM1xcdTAzYWNcXHUwM2MyIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2M0XFx1MDNiN1xcdTAzYmQgXFx1MDNiNVxcdTAzYzBcXHUwM2I5XFx1MDNjN1xcdTAzYjVcXHUwM2FmXFx1MDNjMVxcdTAzYjdcXHUwM2MzXFx1MDNhZSBcXHUwM2MzXFx1MDNiMVxcdTAzYzIgXFx1MDNiZFxcdTAzYjEgXFx1MDNjMFxcdTAzYzFcXHUwM2JmXFx1MDNjM1xcdTAzYjFcXHUwM2MxXFx1MDNiY1xcdTAzYmZcXHUwM2MzXFx1MDNjNFxcdTAzYjVcXHUwM2FmXFx1MDNjNFxcdTAzYjUuXCIsXCJvd3NDVEFcIjpcIlxcdTAzOWNcXHUwM2FjXFx1MDNiOFxcdTAzYjVcXHUwM2M0XFx1MDNiNSBcXHUwM2MwXFx1MDNiNVxcdTAzYzFcXHUwM2I5XFx1MDNjM1xcdTAzYzNcXHUwM2NjXFx1MDNjNFxcdTAzYjVcXHUwM2MxXFx1MDNiMVwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIlxcdTAzOWZcXHUwM2I5IFxcdTAzYjRcXHUwM2I5XFx1MDNiMVxcdTAzYzZcXHUwM2I3XFx1MDNiY1xcdTAzYWZcXHUwM2MzXFx1MDNiNVxcdTAzYjlcXHUwM2MyIFxcdTAzYWRcXHUwM2M3XFx1MDNiZlxcdTAzYzVcXHUwM2JkIFxcdTAzYjFcXHUwM2MwXFx1MDNiZlxcdTAzYmFcXHUwM2JiXFx1MDNiNVxcdTAzYjlcXHUwM2MzXFx1MDNjNFxcdTAzYjVcXHUwM2FmXCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJcXHUwM2E0XFx1MDNiZiB7ZG9tYWlufSBcXHUwM2FmXFx1MDNjM1xcdTAzYzlcXHUwM2MyIFxcdTAzYmRcXHUwM2IxIFxcdTAzYjVcXHUwM2FmXFx1MDNiZFxcdTAzYjFcXHUwM2I5IFxcdTAzYzBcXHUwM2MxXFx1MDNiZlxcdTAzYzIgXFx1MDNjMFxcdTAzY2VcXHUwM2JiXFx1MDNiN1xcdTAzYzNcXHUwM2I3XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1MDM5NVxcdTAzYzBcXHUwM2I5XFx1MDNiYVxcdTAzYmZcXHUwM2I5XFx1MDNiZFxcdTAzYzlcXHUwM2JkXFx1MDNhZVxcdTAzYzNcXHUwM2M0XFx1MDNiNSBcXHUwM2JjXFx1MDNiNSBcXHUwM2M0XFx1MDNiZlxcdTAzYmQgXFx1MDNiYVxcdTAzYWNcXHUwM2M0XFx1MDNiZlxcdTAzYzdcXHUwM2JmIFxcdTAzYzRcXHUwM2JmXFx1MDNjNSBkb21haW5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIlxcdTAzOWZcXHUwM2JkXFx1MDNiZlxcdTAzYmNcXHUwM2IxXFx1MDNjNFxcdTAzYjVcXHUwM2MwXFx1MDNjZVxcdTAzYmRcXHUwM2M1XFx1MDNiY1xcdTAzYmZcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFbWFpbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdTAzYTRcXHUwM2I3XFx1MDNiYlxcdTAzYWRcXHUwM2M2XFx1MDNjOVxcdTAzYmRcXHUwM2JmXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiXFx1MDNhM1xcdTAzYzdcXHUwM2NjXFx1MDNiYlxcdTAzYjlcXHUwM2IxXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIlxcdTAzOTFcXHUwM2MwXFx1MDNiZlxcdTAzYzNcXHUwM2M0XFx1MDNiZlxcdTAzYmJcXHUwM2FlIFxcdTAzYmNcXHUwM2I3XFx1MDNiZFxcdTAzY2RcXHUwM2JjXFx1MDNiMVxcdTAzYzRcXHUwM2JmXFx1MDNjMlwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJcXHUwMzkxXFx1MDNiZFxcdTAzYjFcXHUwM2I2XFx1MDNiN1xcdTAzYzRcXHUwM2FjXFx1MDNjNFxcdTAzYjUgXFx1MDNjMFxcdTAzYjFcXHUwM2MxXFx1MDNjY1xcdTAzYmNcXHUwM2JmXFx1MDNiOVxcdTAzYjEgZG9tYWluO1wiLFwiQVQtQ2hlY2tPdXRUaGVzZVRvcFBpY2tzXCI6XCJcXHUwMzk1XFx1MDNiYlxcdTAzYWRcXHUwM2IzXFx1MDNiZVxcdTAzYzRcXHUwM2I1IFxcdTAzYjFcXHUwM2M1XFx1MDNjNFxcdTAzYWRcXHUwM2MyIFxcdTAzYzRcXHUwM2I5XFx1MDNjMiBcXHUwM2JhXFx1MDNiZlxcdTAzYzFcXHUwM2M1XFx1MDNjNlxcdTAzYjFcXHUwM2FmXFx1MDNiNVxcdTAzYzIgXFx1MDNiNVxcdTAzYzBcXHUwM2I5XFx1MDNiYlxcdTAzYmZcXHUwM2IzXFx1MDNhZFxcdTAzYzJcIixcIkFULUJ1eVwiOlwiXFx1MDM5MVxcdTAzYjNcXHUwM2JmXFx1MDNjMVxcdTAzYWNcIixcIkFULVByb21vdGVkXCI6XCJcXHUwM2EwXFx1MDNjMVxcdTAzYmZcXHUwM2M5XFx1MDNiOFxcdTAzYjdcXHUwM2JjXFx1MDNhZFxcdTAzYmRcXHUwM2JmXCJ9Jyl9LDU0NTg6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBtYXkgYmUgZm9yIHNhbGUhXCIsXCJ0aGlzRG9tYWluSXNQdW55Q29kZVwiOlwiVGhpcyBpcyBhbiA8bGluaz5pbnRlcm5hdGlvbmFsaXplZDwvbGluaz4gZG9tYWluOiB7ZG9tYWlufVwiLFwiZGJzVGV4dEhlZ1wiOlwiaXMgcGFya2VkIGZyZWUsIGNvdXJ0ZXN5IG9mIDEyMyBSZWcuXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiaGFzIGV4cGlyZWQgYW5kIGlzIHBhcmtlZCBmcmVlLCBjb3VydGVzeSBvZiAxMjMgUmVnLlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcImlzIGF2YWlsYWJsZSBvbiBHb0RhZGR5IEF1Y3Rpb25zLlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlRoaXMgZG9tYWluIGlzIGF2YWlsYWJsZSBvbiBHb0RhZGR5IEF1Y3Rpb25zXCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcImhhcyBleHBpcmVkIGFuZCBpcyBhdmFpbGFibGUgb24gR29EYWRkeSBBdWN0aW9ucy5cIixcImhlZ0Zvb3RlclRleHRcIjpcIklmIHlvdSBvd24gdGhpcyBkb21haW4gbmFtZSBhbmQgd291bGQgbGlrZSB0byBnZXQgeW91ciBvd24gd2Vic2l0ZSB1cCBhbmQgcnVubmluZywgdGhlbiB3aHkgbm90IHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IGFuZCBjaGVjayBvdXQgb3VyIHJhbmdlIG9mIGFmZm9yZGFibGUgcHJvZHVjdHMsIHdoaWNoIGluY2x1ZGVzIFdlYnNpdGUgQnVpbGRlciwgV2ViIEhvc3RpbmcgYW5kIG1vcmUhXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcInZpc2l0IDEyMyBSZWdcIixcInRkZnNUZXh0XCI6XCJUaGUgZG9tYWluIHtkb21haW59IGlzIGZvciBzYWxlLiBUbyBwdXJjaGFzZSwgY2FsbCB7YWZ0ZXJuaWNTaXRlTmFtZX0gYXQge2FmdGVybmljUGhvbmUxfSBvciB7YWZ0ZXJuaWNQaG9uZTJ9LiBDbGljayBoZXJlIGZvciBtb3JlIGRldGFpbHMuXCIsXCJkYnNUZXh0XCI6XCJpcyBwYXJrZWQgZnJlZSwgY291cnRlc3kgb2YgR29EYWRkeS5jb20uXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiaGFzIGV4cGlyZWQgYW5kIGlzIHBhcmtlZCBmcmVlLCBjb3VydGVzeSBvZiBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJpcyBhdmFpbGFibGUgb24gR29EYWRkeSBBdWN0aW9ucy5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJUaGlzIGRvbWFpbiBpcyBhdmFpbGFibGUgb24gR29EYWRkeSBBdWN0aW9uc1wiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJJbnRlcmVzdGVkIGluIHRoaXMgZG9tYWluP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJoYXMgZXhwaXJlZCBhbmQgaXMgYXZhaWxhYmxlIG9uIEdvRGFkZHkgQXVjdGlvbnMuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJHZXQgVGhpcyBEb21haW5cIixcImJhY2tvcmRlclRleHRcIjpcIkludGVyZXN0ZWQgaW4ge2RvbWFpbn0/IEZpbmQgb3V0IGhvdyB0byBnZXQgaXQgdGhyb3VnaCBEb21haW4gQmFja29yZGVyLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGhhcyBleHBpcmVkLiBGaW5kIG91dCBob3cgdG8gZ2V0IGl0IHRocm91Z2ggRG9tYWluIEJhY2tvcmRlci5cIixcImNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAgQWxsIHJpZ2h0cyByZXNlcnZlZC5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQcml2YWN5IFBvbGljeVwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViRGlzY2xhaW1lclRleHRcIjpcIkRpc2NsYWltZXI6IFJlZmVyZW5jZXMgdG8gYW55IHNwZWNpZmljIGNvbXBhbnksIHByb2R1Y3Qgb3Igc2VydmljZXMgb24gdGhpcyBTaXRlIGFyZSBub3QgY29udHJvbGxlZCBieSBHb0RhZGR5LmNvbSBMTEMgYW5kIGRvIG5vdCBjb25zdGl0dXRlIG9yIGltcGx5IGl0cyBhc3NvY2lhdGlvbiB3aXRoIG9yIGVuZG9yc2VtZW50IG9mIHRoaXJkIHBhcnR5IGFkdmVydGlzZXJzLlwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJEaXNjbGFpbWVyOiBSZWZlcmVuY2VzIHRvIGFueSBzcGVjaWZpYyBjb21wYW55LCBwcm9kdWN0IG9yIHNlcnZpY2VzIG9uIHRoaXMgU2l0ZSBpcyBub3QgY29udHJvbGxlZCBieSAxMjMgUmVnIEx0ZCBhbmQgZG9lcyBub3QgY29uc3RpdHV0ZSBvciBpbXBseSBpdHMgYXNzb2NpYXRpb24gd2l0aCBvciBlbmRvcnNlbWVudCBvZiB0aGlyZCBwYXJ0eSBhZHZlcnRpc2Vycy5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCB3aXRoIHNtYWxsIGJ1c2luZXNzZXMuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiRHVyaW5nIHRoZXNlIHRvdWdoIHRpbWVzLCB3ZVxcJ3JlIGRvaW5nIGV2ZXJ5dGhpbmcgd2UgY2FuIHRvIGhlbHAgeW91IGFuZCB5b3VyIGJ1c2luZXNzIGFkYXB0LlwiLFwib3dzQ1RBXCI6XCJMZWFybiBNb3JlXCIsXCJhZHNCbG9ja2VkVGV4dFwiOlwiQWRzIGFyZSBibG9ja2VkXCIsXCJjb250ZW50QmxvY2tlZFRleHRcIjpcIkNvbnRlbnQgaXMgYmxvY2tlZFwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gbWF5IGJlIGZvciBzYWxlXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiQ29udGFjdCB0aGUgRG9tYWluIE93bmVyXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJOYW1lXCIsXCJjb250YWN0T3duZXJFbWFpbFwiOlwiRW1haWxcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJQaG9uZVwiLFwiY29udGFjdE93bmVyQ29tbWVudHNcIjpcIkNvbW1lbnRzXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIlNlbmQgTWVzc2FnZVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJMb29raW5nIGZvciBTaW1pbGFyIERvbWFpbnM/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIkNoZWNrIG91dCB0aGVzZSB0b3AgcGlja3NcIixcIkFULUJ1eVwiOlwiQnV5XCIsXCJBVC1Qcm9tb3RlZFwiOlwiUHJvbW90ZWRcIixcIkJhbm5lci1CdXR0b24tVGV4dFwiOlwiR2V0IFRoaXMgRG9tYWluXCIsXCJCYW5uZXItRG9tYWluLUlzUGFya2VkRnJlZVwiOlwiSXRcXHUyMDE5cyBwYXJrZWQgZnJlZSwgY291cnRlc3kgb2YgR29EYWRkeS5jb21cIixcIkJhbm5lci1Eb21haW4tSXNBdWN0aW9uZWRcIjpcIlRoZSBkb21haW4ge2RvbWFpbn0gaXMgYXZhaWxhYmxlIG9uIEdvRGFkZHkgQXVjdGlvbnMuXCIsXCJCYW5uZXItRG9tYWluLUlzRXhwaXJlZFwiOlwiVGhlIGRvbWFpbiB7ZG9tYWlufSBoYXMgZXhwaXJlZC5cIixcIkJhbm5lci1Eb21haW4tSXNFeHBpcmVkLUlzQXVjdGlvbmVkXCI6XCJUaGUgZG9tYWluIHtkb21haW59IGhhcyBleHBpcmVkIGFuZCBpcyBhdmFpbGFibGUgb24gR29EYWRkeSBBdWN0aW9ucy5cIixcIkJhbm5lci1Eb21haW4tSXNSZWdpc3RlcmVkLU1heWJlRm9yU2FsZVwiOlwiVGhlIGRvbWFpbiB7ZG9tYWlufSBpcyByZWdpc3RlcmVkLCBidXQgbWF5IHN0aWxsIGJlIGF2YWlsYWJsZS5cIixcIkJhbm5lci1Eb21haW4tQmFja09yZGVyXCI6XCJGaW5kIG91dCBob3cgdG8gZ2V0IGl0IHRocm91Z2ggRG9tYWluIEJhY2tvcmRlci5cIixcIkJhbm5lci1Eb21haW4tSW50ZXJlc3RlZFwiOlwiSW50ZXJlc3RlZCBpbiB7ZG9tYWlufT9cIn0nKX0sOTk1NDplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIntkb21haW59IHBvZHJcXHhlZGEgZXN0YXIgYSBsYSB2ZW50YS5cIixcImRic1RleHRIZWdcIjpcImVzdFxceGUxIGFwYXJjYWRvIGRlIGZvcm1hIGdyYXR1aXRhIHBvciBjb3J0ZXNcXHhlZGEgZGUgMTIzXFx4YTBSZWcuXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiaGEgY2FkdWNhZG8geSBlc3RcXHhlMSBhcGFyY2FkbyBkZSBmb3JtYSBncmF0dWl0YSBwb3IgY29ydGVzXFx4ZWRhIGRlIDEyM1xceGEwUmVnLlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcImVzdFxceGUxIGRpc3BvbmlibGUgZW4gbGFzIFN1YmFzdGFzIEdvRGFkZHkuXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiRXN0ZSBkb21pbmlvIGVzdFxceGUxIGRpc3BvbmlibGUgZW4gbGFzIFN1YmFzdGFzIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiaGEgY2FkdWNhZG8geSBlc3RcXHhlMSBkaXNwb25pYmxlIGVuIGxhcyBTdWJhc3RhcyBHb0RhZGR5LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiU2kgZXJlcyBlbCBwcm9waWV0YXJpbyBkZSBlc3RlIG5vbWJyZSBkZSBkb21pbmlvIHkgcXVpZXJlcyB0ZW5lciB0dSBwcm9waW8gc2l0aW8gd2ViIGVzdGFibGVjaWRvLCBlbnRvbmNlcyBwb3IgcXVlIG5vIHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IHkgdmVzIG51ZXN0cmEgYW1wbGlhIGdhbWEgZGUgcHJvZHVjdG9zIGFzZXF1aWJsZXMsIHF1ZSBpbmNsdXllbiBlbCBDcmVhZG9yIGRlIHBcXHhlMWdpbmFzIHdlYiwgV2ViIEhvc3RpbmcgeSBtdWNobyBtXFx4ZTFzLlwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJ2aXNpdGFzIDEyMyBSZWdcIixcInRkZnNUZXh0XCI6XCJFbCBkb21pbmlvIHtkb21haW59IGVzdFxceGUxIHBhcmEgbGEgdmVudGEuIFBhcmEgY29tcHJhcmxvLCBsbGFtYSBhIHthZnRlcm5pY1NpdGVOYW1lfSBhbCB7YWZ0ZXJuaWNQaG9uZTF9IG8ge2FmdGVybmljUGhvbmUyfS4gU2kgcXVpZXJlcyBtXFx4ZTFzIGRldGFsbGVzLCBoYXogY2xpYyBhcXVcXHhlZC5cIixcImRic1RleHRcIjpcImVzdFxceGUxIGVzdGFjaW9uYWRvIGVuIGZvcm1hIGdyYXR1aXRhIHBvciBjb3J0ZXNcXHhlZGEgZGUgR29EYWRkeS5jb21cIixcImV4cGlyZWREYnNUZXh0XCI6XCJoYSBjYWR1Y2FkbyB5IGVzdFxceGUxIGVzdGFjaW9uYWRhIGRlIGZvcm1hIGdyYXR1aXRhIHBvciBjb3J0ZXNcXHhlZGEgZGUgR29EYWRkeS5jb20uXCIsXCJhdWN0aW9uVGV4dFwiOlwiZXN0XFx4ZTEgZGlzcG9uaWJsZSBlbiBsYXMgU3ViYXN0YXMgR29EYWRkeS5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJFc3RlIGRvbWluaW8gZXN0XFx4ZTEgZGlzcG9uaWJsZSBlbiBsYXMgU3ViYXN0YXMgR29EYWRkeVwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHhiZlRlIGludGVyZXNhIGVzdGUgZG9taW5pbz9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiaGEgY2FkdWNhZG8geSBlc3RcXHhlMSBkaXNwb25pYmxlIGVuIFN1YmFzdGFzIEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJPYnRcXHhlOW4gZXN0ZSBkb21pbmlvXCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJcXHhiZlRlIGludGVyZXNhIHtkb21haW59PyBBdmVyaWd1YSBjXFx4ZjNtbyBvYnRlbmVybG8gYSB0cmF2XFx4ZTlzIGRlIERvbWluaW9zIGVuIGVzcGVyYS5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSBoYSBjYWR1Y2Fkby4gRW5jdWVudHJhIGNcXHhmM21vIG9idGVuZXJsbyBhIHRyYXZcXHhlOXMgZGUgRG9taW5pb3MgZW4gZXNwZXJhLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5ICBUb2RvcyBsb3MgZGVyZWNob3MgcmVzZXJ2YWRvcy5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQb2xcXHhlZHRpY2EgZGUgcHJpdmFjaWRhZFwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBUb2RvcyBsb3MgZGVyZWNob3MgcmVzZXJ2YWRvcy5cIixcInBhcmt3ZWJoZWdjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkge2N1cnJlbnRZZWFyfSAxMjMgUmVnIEx0ZFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJBdmlzbyBsZWdhbDogTGFzIHJlZmVyZW5jaWFzIGEgdW5hIGVtcHJlc2EsIHByb2R1Y3RvIG8gc2VydmljaW9zIGVzcGVjXFx4ZWRmaWNvcyBlbiBlc3RlIHNpdGlvIG5vIGVzdFxceGUxbiBjb250cm9sYWRhcyBwb3IgMTIzIFJlZyBMdGQgeSBubyBjb25zdGl0dXllbiBuaSBpbXBsaWNhbiBsYSBhc29jaWFjaVxceGYzbiBuaSByZXNwYWxkbyBhIGFudW5jaWFudGVzIGV4dGVybm9zLlwiLFwib3dzSGVhZGluZ1wiOlwiI09wZW5XZVN0YW5kIGVuIGFwb3lvIGEgbGFzIHBlcXVlXFx4ZjFhcyBlbXByZXNhcy5cIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJFbiBlc3RvcyB0aWVtcG9zIGRpZlxceGVkY2lsZXMsIGhhY2Vtb3MgdG9kbyBsbyBwb3NpYmxlIHBhcmEgYXl1ZGFydGUgYSB0aSB5IGEgdHUgbmVnb2NpbyBhIGFkYXB0YXJzZS5cIixcIm93c0NUQVwiOlwiTVxceGUxcyBpbmZvcm1hY2lcXHhmM25cIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJMb3MgYXZpc29zIGVzdFxceGUxbiBibG9xdWVhZG9zLlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gcG9kclxceGVkYSBlc3RhciBhIGxhIHZlbnRhXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiQ29tdW5cXHhlZGNhdGUgY29uIGVsIHByb3BpZXRhcmlvIGRlbCBkb21pbmlvLlwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiTm9tYnJlXCIsXCJjb250YWN0T3duZXJFbWFpbFwiOlwiQ29ycmVvIGVsZWN0clxceGYzbmljb1wiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRlbFxceGU5Zm9ub1wiLFwiY29udGFjdE93bmVyQ29tbWVudHNcIjpcIkNvbWVudGFyaW9zXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIkVudmlhciBtZW5zYWplXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIlxceGJmRXN0XFx4ZTFzIGJ1c2NhbmRvIGRvbWluaW9zIHNpbWlsYXJlcz9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiXFx4YzljaGFsZSB1biB2aXN0YXpvIGEgZXN0YXMgZWxlY2Npb25lcyBwcmluY2lwYWxlc1wiLFwiQVQtQnV5XCI6XCJDb21wcmFyXCIsXCJBVC1Qcm9tb3RlZFwiOlwiUHJvbW9jaW9uYWRvXCJ9Jyl9LDE0Mjc6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBwb2RyXFx4ZWRhIGVzdGFyIGEgbGEgdmVudGEuXCIsXCJkYnNUZXh0SGVnXCI6XCJlc3RcXHhlMSBhcGFyY2FkbyBkZSBmb3JtYSBncmF0dWl0YSBwb3IgY29ydGVzXFx4ZWRhIGRlIDEyM1xceGEwUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImhhIGNhZHVjYWRvIHkgZXN0XFx4ZTEgYXBhcmNhZG8gZGUgZm9ybWEgZ3JhdHVpdGEgcG9yIGNvcnRlc1xceGVkYSBkZSAxMjNcXHhhMFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJlc3RcXHhlMSBkaXNwb25pYmxlIGVuIGxhcyBTdWJhc3RhcyBHb0RhZGR5LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIkVzdGUgZG9taW5pbyBlc3RcXHhlMSBkaXNwb25pYmxlIGVuIGxhcyBTdWJhc3RhcyBHb0RhZGR5XCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcImhhIGNhZHVjYWRvIHkgZXN0XFx4ZTEgZGlzcG9uaWJsZSBlbiBsYXMgU3ViYXN0YXMgR29EYWRkeS5cIixcImhlZ0Zvb3RlclRleHRcIjpcIlNpIGVyZXMgZWwgcHJvcGlldGFyaW8gZGUgZXN0ZSBub21icmUgZGUgZG9taW5pbyB5IHF1aWVyZXMgdGVuZXIgdHUgcHJvcGlvIHNpdGlvIHdlYiBlc3RhYmxlY2lkbywgZW50b25jZXMgcG9yIHF1ZSBubyB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSB5IHZlcyBudWVzdHJhIGFtcGxpYSBnYW1hIGRlIHByb2R1Y3RvcyBhc2VxdWlibGVzLCBxdWUgaW5jbHV5ZW4gZWwgQ3JlYWRvciBkZSBwXFx4ZTFnaW5hcyB3ZWIsIFdlYiBIb3N0aW5nIHkgbXVjaG8gbVxceGUxcy5cIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwidmlzaXRhcyAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRWwgZG9taW5pbyB7ZG9tYWlufSBlc3RcXHhlMSBwYXJhIGxhIHZlbnRhLiBQYXJhIGNvbXByYXJsbywgbGxhbWEgYSB7YWZ0ZXJuaWNTaXRlTmFtZX0gYWwge2FmdGVybmljUGhvbmUxfSBvIHthZnRlcm5pY1Bob25lMn0uIFNpIHF1aWVyZXMgbVxceGUxcyBkZXRhbGxlcywgaGF6IGNsaWMgYXF1XFx4ZWQuXCIsXCJkYnNUZXh0XCI6XCJlc3RcXHhlMSBlc3RhY2lvbmFkbyBlbiBmb3JtYSBncmF0dWl0YSBwb3IgY29ydGVzXFx4ZWRhIGRlIEdvRGFkZHkuY29tXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiaGEgY2FkdWNhZG8geSBlc3RcXHhlMSBlc3RhY2lvbmFkYSBkZSBmb3JtYSBncmF0dWl0YSBwb3IgY29ydGVzXFx4ZWRhIGRlIEdvRGFkZHkuY29tLlwiLFwiYXVjdGlvblRleHRcIjpcImVzdFxceGUxIGRpc3BvbmlibGUgZW4gbGFzIFN1YmFzdGFzIEdvRGFkZHkuXCIsXCJhdWN0aW9uQmFubmVyVGV4dFwiOlwiRXN0ZSBkb21pbmlvIGVzdFxceGUxIGRpc3BvbmlibGUgZW4gbGFzIFN1YmFzdGFzIEdvRGFkZHlcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiXFx4YmZUZSBpbnRlcmVzYSBlc3RlIGRvbWluaW8/XCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcImhhIGNhZHVjYWRvIHkgZXN0XFx4ZTEgZGlzcG9uaWJsZSBlbiBTdWJhc3RhcyBHb0RhZGR5LlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiT2J0XFx4ZTluIGVzdGUgZG9taW5pb1wiLFwiYmFja29yZGVyVGV4dFwiOlwiXFx4YmZUZSBpbnRlcmVzYSB7ZG9tYWlufT8gQXZlcmlndWEgY1xceGYzbW8gb2J0ZW5lcmxvIGEgdHJhdlxceGU5cyBkZSBEb21pbmlvcyBlbiBlc3BlcmEuXCIsXCJleHBpcmVkQmFja29yZGVyVGV4dFwiOlwie2RvbWFpbn0gaGEgY2FkdWNhZG8uIEVuY3VlbnRyYSBjXFx4ZjNtbyBvYnRlbmVybG8gYSB0cmF2XFx4ZTlzIGRlIERvbWluaW9zIGVuIGVzcGVyYS5cIixcImNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAgVG9kb3MgbG9zIGRlcmVjaG9zIHJlc2VydmFkb3MuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiUG9sXFx4ZWR0aWNhIGRlIHByaXZhY2lkYWRcIixcInBhcmt3ZWJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgMTk5OS17Y3VycmVudFllYXJ9IEdvRGFkZHksIExMQy4gVG9kb3MgbG9zIGRlcmVjaG9zIHJlc2VydmFkb3MuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiQXZpc28gbGVnYWw6IExhcyByZWZlcmVuY2lhcyBhIHVuYSBlbXByZXNhLCBwcm9kdWN0byBvIHNlcnZpY2lvcyBlc3BlY1xceGVkZmljb3MgZW4gZXN0ZSBzaXRpbyBubyBlc3RcXHhlMW4gY29udHJvbGFkYXMgcG9yIDEyMyBSZWcgTHRkIHkgbm8gY29uc3RpdHV5ZW4gbmkgaW1wbGljYW4gbGEgYXNvY2lhY2lcXHhmM24gbmkgcmVzcGFsZG8gYSBhbnVuY2lhbnRlcyBleHRlcm5vcy5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBlbiBhcG95byBhIGxhcyBwZXF1ZVxceGYxYXMgZW1wcmVzYXMuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiRW4gZXN0b3MgdGllbXBvcyBkaWZcXHhlZGNpbGVzLCBoYWNlbW9zIHRvZG8gbG8gcG9zaWJsZSBwYXJhIGF5dWRhcnRlIGEgdGkgeSBhIHR1IG5lZ29jaW8gYSBhZGFwdGFyc2UuXCIsXCJvd3NDVEFcIjpcIk1cXHhlMXMgaW5mb3JtYWNpXFx4ZjNuXCIsXCJhZHNCbG9ja2VkVGV4dFwiOlwiTG9zIGF2aXNvcyBlc3RcXHhlMW4gYmxvcXVlYWRvcy5cIixcImNvbnRhY3RPd25lclRleHRcIjpcIntkb21haW59IHBvZHJcXHhlZGEgZXN0YXIgYSBsYSB2ZW50YVwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIkNvbXVuXFx4ZWRjYXRlIGNvbiBlbCBwcm9waWV0YXJpbyBkZWwgZG9taW5pby5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5vbWJyZVwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIkNvcnJlbyBlbGVjdHJcXHhmM25pY29cIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxcXHhlOWZvbm9cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJDb21lbnRhcmlvc1wiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJFbnZpYXIgbWVuc2FqZVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJcXHhiZkVzdFxceGUxcyBidXNjYW5kbyBkb21pbmlvcyBzaW1pbGFyZXM/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlxceGM5Y2hhbGUgdW4gdmlzdGF6byBhIGVzdGFzIGVsZWNjaW9uZXMgcHJpbmNpcGFsZXNcIixcIkFULUJ1eVwiOlwiQ29tcHJhclwiLFwiQVQtUHJvbW90ZWRcIjpcIlByb21vY2lvbmFkb1wifScpfSw1MTA6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBzYWF0dGFhIG9sbGEgbXl5dFxceGU0dlxceGU0blxceGU0IVwiLFwiZGJzVGV4dEhlZ1wiOlwib24gcHlzXFx4ZTRrXFx4ZjZpdHkgaWxtYWlzZWtzaS4gUGFsdmVsdW4gdGFyam9hYSAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcIm9uIHZhbmhlbnR1bnV0LCBqYSBzZSBvbiBweXNcXHhlNGtcXHhmNml0eSBpbG1haXNla3NpLiBQYWx2ZWx1biB0YXJqb2FhIDEyMyBSZWcuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwib24gb3N0ZXR0YXZpc3NhIEdvRGFkZHktaHV1dG9rYXVwcG9qZW4ga2F1dHRhLlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlRcXHhlNG1cXHhlNCB2ZXJra290dW5udXMgb24gb3N0ZXR0YXZpc3NhIEdvRGFkZHktaHV1dG9rYXVwcG9qZW4ga2F1dHRhXCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcIm9uIHZhbmhlbnR1bnV0LCBqYSBzZSBvbiBueXQgb3N0ZXR0YXZpc3NhIEdvRGFkZHktaHV1dG9rYXVwcG9qZW4ga2F1dHRhLlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiSm9zIG9taXN0YXQgdFxceGU0bVxceGU0biB2ZXJra290dW5udWtzZW4gamEgaGFsdWF0IHNhYWRhIG9tYW4gdmVya2tvc2l2dXN0b3NpIGtcXHhlNHludGlpbiwgaGFya2l0c2UgdFxceGU0dFxceGU0OiB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfS4gVHV0dXN0dSBzaXR0ZW4ga29odHV1aGludGFpc3RlbiB0dW90dGVpZGVuIHZhbGlrb2ltYWFtbWUsIGpva2Egc2lzXFx4ZTRsdFxceGU0XFx4ZTQga290aXNpdnVrb25lZW4sIHZlcmtrb2hvdGVsbGlwYWx2ZWx1dCBqYSBwYWxqb24gbXV1dGEhXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcInZpZXJhaWx1YSAxMjMgUmVnIC1wYWx2ZWx1c3NhLlwiLFwidGRmc1RleHRcIjpcIlZlcmtrb3R1bm51cyB7ZG9tYWlufSBvbiBteXl0XFx4ZTR2XFx4ZTRuXFx4ZTQuIFZvaXQgb3N0YWEgc2VuIHNvaXR0YW1hbGxhIHthZnRlcm5pY1NpdGVOYW1lfS1zaXZ1c3RvbGxlIG51bWVyb29uIHthZnRlcm5pY1Bob25lMX0gdGFpIG51bWVyb29uIHthZnRlcm5pY1Bob25lMn0uIFNhYXQgbGlzXFx4ZTR0aWV0b2phIG5hcHNhdXR0YW1hbGxhIHRcXHhlNHRcXHhlNC5cIixcImRic1RleHRcIjpcIm9uIHB5c1xceGU0a1xceGY2aXR5IGlsbWFpc2Vrc2kuIFBhbHZlbHVuIHRhcmpvYWEgR29EYWRkeS5jb20uXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwib24gdmFuaGVudHVudXQsIGphIHNlIG9uIHB5c1xceGU0a1xceGY2aXR5IGlsbWFpc2Vrc2kuIFBhbHZlbHVuIHRhcmpvYWEgR29EYWRkeS5jb20uXCIsXCJhdWN0aW9uVGV4dFwiOlwib24gb3N0ZXR0YXZpc3NhIEdvRGFkZHktaHV1dG9rYXVwcG9qZW4ga2F1dHRhLlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIlRcXHhlNG1cXHhlNCB2ZXJra290dW5udXMgb24gb3N0ZXR0YXZpc3NhIEdvRGFkZHktaHV1dG9rYXVwcG9qZW4ga2F1dHRhXCIsXCJjYXNocGFya2luZ1RleHRcIjpcIk9sZXRrbyBraWlubm9zdHVudXQgdFxceGU0c3RcXHhlNCB2ZXJra290dW5udWtzZXN0YT9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwib24gdmFuaGVudHVudXQsIGphIHNlIG9uIG55dCBvc3RldHRhdmlzc2EgR29EYWRkeS1odXV0b2thdXBwb2plbiBrYXV0dGEuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJIYW5raSB0XFx4ZTRtXFx4ZTQgdmVya2tvdHVubnVzXCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJPbGV0a28ga2lpbm5vc3R1bnV0IHRcXHhlNHN0XFx4ZTQgdHVubnVrc2VzdGE6IHtkb21haW59PyBPdGEgc2VsdmlsbGUsIG1pdGVuIHZvaXQgaGFua2tpYSBzZW4gaXRzZWxsZXNpIHZlcmtrb3R1bm51a3NpZW4galxceGU0bGtpdG9pbWl0dWtzZW4ga2F1dHRhLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IG9uIHZhbmhlbnR1bnV0LiBPdGEgc2VsdmlsbGUsIG1pdGVuIHZvaXQgaGFua2tpYSBzZW4gaXRzZWxsZXNpIHZlcmtrb3R1bm51a3NpZW4galxceGU0bGtpdG9pbWl0dWtzZW4ga2F1dHRhLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5ICBLYWlra2kgb2lrZXVkZXQgcGlkXFx4ZTR0ZXRcXHhlNFxceGU0bi5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJUaWV0b3N1b2pha1xceGU0eXRcXHhlNG50XFx4ZjZcIixcInBhcmt3ZWJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgMTk5OS17Y3VycmVudFllYXJ9IEdvRGFkZHksIExMQy4gS2Fpa2tpIG9pa2V1ZGV0IHBpZFxceGU0dGV0XFx4ZTRcXHhlNG4uXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiVmFzdHV1dmFwYXV0dXNsYXVzZWtlOiAxMjMgUmVnIEx0ZC4gZWkgaGFsbGlubm9pIHZpaXR0YXVrc2lhIG1paGlua1xceGU0XFx4ZTRuIHRpZXR0eXluIHlyaXR5a3NlZW4sIHR1b3R0ZWVzZWVuIHRhaSBwYWx2ZWx1dW4gdFxceGU0c3NcXHhlNCBzaXZ1c3Rvc3NhLCBlaXZcXHhlNHRrXFx4ZTQgbWFoZG9sbGlzZXQgdmlpdHRhdWtzZXQgbWVya2l0c2UgbWl0XFx4ZTRcXHhlNG4geWh0ZXlrc2lcXHhlNCBrb2xtYW5zaWVuIG9zYXB1b2x0ZW4gbWFpbm9zdGFqaWVuIGthbnNzYSB0YWkgbmlpZGVuIGh5dlxceGU0a3N5bWlzdFxceGU0LlwiLFwib3dzSGVhZGluZ1wiOlwiVHVlbW1lIHBpZW55cml0eWtzaVxceGU0OiAjT3BlbldlU3RhbmQuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiTlxceGU0aW5cXHhlNCB2YWlrZWluYSBhaWtvaW5hIHRlZW1tZSBrYWlra2VtbWUgdm9pZGFrc2VtbWUgYXV0dGFhIHNpbnVhIGphIHlyaXR5c3RcXHhlNHNpIHNvcGV1dHVtYWFuIHV1c2lpbiBvbG9zdWh0ZWlzaWluLlwiLFwib3dzQ1RBXCI6XCJMdWUgbGlzXFx4ZTRcXHhlNFwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIk1haW5va3NldCBvbiBlc3RldHR5XCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBzYWF0dGFhIG9sbGEgbXl5dFxceGU0dlxceGU0blxceGU0XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiT3RhIHlodGV5dHRcXHhlNCB2ZXJra290dW5udWtzZW4gb21pc3RhamFhblwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiTmltaVwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIlNcXHhlNGhrXFx4ZjZwb3N0aVwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlB1aGVsaW5cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJLb21tZW50aXRcIixcImNvbnRhY3RPd25lckNUQVwiOlwiTFxceGU0aGV0XFx4ZTQgdmllc3RpXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIkV0c2l0a1xceGY2IHNhbWFua2FsdGFpc2lhIHZlcmtrb3R1bm51a3NpYT9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiVHV0dXN0dSBuXFx4ZTRpaGluIHN1b3NpdHR1aWhpbiB2YWlodG9laHRvaWhpblwiLFwiQVQtQnV5XCI6XCJPc3RhXCIsXCJBVC1Qcm9tb3RlZFwiOlwiS2FtcGFuamF0dW90ZVwifScpfSwxMzg1OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0gZXN0IHBldXQtXFx4ZWF0cmUgZW4gdmVudGVcXHhhMCFcIixcImRic1RleHRIZWdcIjpcImVzdCBwYXJxdVxceGU5IGdyYXR1aXRlbWVudCwgYXZlYyBsYSBwZXJtaXNzaW9uIGRlIDEyM1xceGEwUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImEgZXhwaXJcXHhlOSBldCBlc3QgcGFycXVcXHhlOSBncmF0dWl0ZW1lbnQsIGF2ZWMgbGEgcGVybWlzc2lvbiBkZSAxMjNcXHhhMFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHkuXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiQ2UgZG9tYWluZSBlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiYSBleHBpclxceGU5IGV0IGVzdCBkaXNwb25pYmxlIHN1ciBFbmNoXFx4ZThyZXMgR29EYWRkeS5cIixcImhlZ0Zvb3RlclRleHRcIjpcIlZvdXMgdm91bGV6IGNlIGRvbWFpbmUgcG91ciB2b3VzLW1cXHhlYW1lXFx4YTA/IDEyM1xceGEwUmVnIHNcXCdlc3QgYXNzb2NpXFx4ZTkgXFx4ZTAgR29EYWRkeSBwb3VyIHZvdXMgb2ZmcmlyIHVuIHNlcnZpY2UgdW5pcXVlIHF1aSBwb3VycmFpdCB2b3VzIHBlcm1ldHRyZSBkZSByZXZlbmRpcXVlciBjZSBub20gZGUgZG9tYWluZS4gVmV1aWxsZXogbm90ZXJcXHhhMDogZW4gY2xpcXVhbnQgc3VyIGNlIGJvdXRvbiwgdm91cyBzZXJleiBkaXJpZ1xceGU5IHZlcnMgbGUgc2l0ZSB3ZWIgZGUgR29EYWRkeS5cIixcInRkZnNUZXh0XCI6XCJMZSBkb21haW5lIHtkb21haW59IGVzdCBlbiB2ZW50ZS4gUG91ciBsXFwnYWNoZXRlciwgYXBwZWxleiB7YWZ0ZXJuaWNTaXRlTmFtZX0gYXUge2FmdGVybmljUGhvbmUxfSBvdSBhdSB7YWZ0ZXJuaWNQaG9uZTJ9LiBQb3VyIHBsdXMgZFxcJ2luZm9ybWF0aW9ucywgY2xpcXVleiBpY2kuXCIsXCJkYnNUZXh0XCI6XCJlc3QgcGFycXVcXHhlOSBncmF0dWl0ZW1lbnQsIGF2ZWMgbGEgcGVybWlzc2lvbiBkZSBHb0RhZGR5LmNvbS5cIixcImV4cGlyZWREYnNUZXh0XCI6XCJhIGV4cGlyXFx4ZTkgZXQgZXN0IHBhcnF1XFx4ZTkgZ3JhdHVpdGVtZW50LCBhdmVjIGxhIHBlcm1pc3Npb24gZGUgR29EYWRkeS5jb20uXCIsXCJhdWN0aW9uVGV4dFwiOlwiZXN0IGRpc3BvbmlibGUgc3VyIEVuY2hcXHhlOHJlcyBHb0RhZGR5LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIkNlIGRvbWFpbmUgZXN0IGRpc3BvbmlibGUgc3VyIEVuY2hcXHhlOHJlcyBHb0RhZGR5XCIsXCJjYXNocGFya2luZ1RleHRcIjpcIkNlIGRvbWFpbmUgdm91cyBpbnRcXHhlOXJlc3NlXFx4YTA/XCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcImEgZXhwaXJcXHhlOSBldCBlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJPYnRlbmV6IGNlIGRvbWFpbmVcIixcImJhY2tvcmRlclRleHRcIjpcIlZvdXMgXFx4ZWF0ZXMgaW50XFx4ZTlyZXNzXFx4ZTkgcGFyIHtkb21haW59XFx4YTA/IERcXHhlOWNvdXZyZXogY29tbWVudCBsXFwnYWNxdVxceGU5cmlyIHBhciBsZSBiaWFpcyBkZSBsYSByXFx4ZTlzZXJ2YXRpb24gZGUgbm9tIGRlIGRvbWFpbmUgZW4gYXR0ZW50ZS5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSBhIGV4cGlyXFx4ZTkuIERcXHhlOWNvdXZyZXogY29tbWVudCBsXFwnYWNxdVxceGU5cmlyIHBhciBsZSBiaWFpcyBkZSBsYSByXFx4ZTlzZXJ2YXRpb24gZGUgZG9tYWluZSBlbiBhdHRlbnRlLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IFRvdXMgZHJvaXRzIHJcXHhlOXNlcnZcXHhlOXMuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiUG9saXRpcXVlIGRlIGNvbmZpZGVudGlhbGl0XFx4ZTlcIixcInBhcmt3ZWJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgMTk5OS17Y3VycmVudFllYXJ9IEdvRGFkZHksIExMQy4gVG91cyBkcm9pdHMgclxceGU5c2VydlxceGU5cy5cIixcInBhcmt3ZWJoZWdjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgMjAyMSAxMjMgUmVnIEx0ZCB8XCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIk1lbnRpb25zIGxcXHhlOWdhbGVzXFx4YTA6IExlcyByXFx4ZTlmXFx4ZTlyZW5jZXMgXFx4ZTAgdW5lIHNvY2lcXHhlOXRcXHhlOSwgdW4gcHJvZHVpdCBvdSB1biBzZXJ2aWNlIHNwXFx4ZTljaWZpcXVlIHN1ciBjZSBzaXRlIG5lIHNvbnQgcGFzIGNvbnRyXFx4ZjRsXFx4ZTllcyBwYXIgMTIzXFx4YTBSZWdcXHhhMEx0ZCBldCBuZSBjb25zdGl0dWVudCBwYXMgb3UgblxcJ2ltcGxpcXVlbnQgcGFzIHNvbiBhc3NvY2lhdGlvbiBhdmVjIGRlcyBhbm5vbmNldXJzIHRpZXJzIG91IHNhIHJlY29tbWFuZGF0aW9uIGRlIGNlcyBkZXJuaWVycy5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBwb3VyIGxlcyBQTUUuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiRW4gY2VzIHRlbXBzIGRpZmZpY2lsZXMsIG5vdXMgZmFpc29ucyB0b3V0IG5vdHJlIHBvc3NpYmxlIHBvdXIgdm91cyBhaWRlciwgdm91cyBldCB2b3RyZSBidXNpbmVzcywgXFx4ZTAgdm91cyBhZGFwdGVyLlwiLFwib3dzQ1RBXCI6XCJFbiBzYXZvaXIgcGx1c1wiLFwiYWRzQmxvY2tlZFRleHRcIjpcIkxlcyBhbm5vbmNlcyBzb250IGJsb3F1XFx4ZTllcy5cIixcImNvbnRhY3RPd25lclRleHRcIjpcIntkb21haW59IGVzdCBwZXV0LVxceGVhdHJlIGVuIHZlbnRlLlwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIlZldWlsbGV6IGNvbnRhY3RlciBsZSBwcm9wcmlcXHhlOXRhaXJlIGR1IGRvbWFpbmUuXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJOb21cIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJDb3VycmllbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRcXHhlOWxcXHhlOXBob25lXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiQ29tbWVudGFpcmVzXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIkVudm95ZXIgbGUgbWVzc2FnZVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJMb29raW5nIGZvciBTaW1pbGFyIERvbWFpbnM/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIkNoZWNrIG91dCB0aGVzZSB0b3AgcGlja3NcIixcIkFULUJ1eVwiOlwiQWNoZXRlclwiLFwiQVQtUHJvbW90ZWRcIjpcIlByb21vdGVkXCJ9Jyl9LDI3OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0gZXN0IHBldXQtXFx4ZWF0cmUgZW4gdmVudGVcXHhhMCFcIixcImRic1RleHRIZWdcIjpcImVzdCBwYXJxdVxceGU5IGdyYXR1aXRlbWVudCwgYXZlYyBsYSBwZXJtaXNzaW9uIGRlIDEyM1xceGEwUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImEgZXhwaXJcXHhlOSBldCBlc3QgcGFycXVcXHhlOSBncmF0dWl0ZW1lbnQsIGF2ZWMgbGEgcGVybWlzc2lvbiBkZSAxMjNcXHhhMFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHkuXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiQ2UgZG9tYWluZSBlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiYSBleHBpclxceGU5IGV0IGVzdCBkaXNwb25pYmxlIHN1ciBFbmNoXFx4ZThyZXMgR29EYWRkeS5cIixcImhlZ0Zvb3RlclRleHRcIjpcIlNpIHZvdXMgXFx4ZWF0ZXMgcHJvcHJpXFx4ZTl0YWlyZSBkZSBjZSBub20gZGUgZG9tYWluZSBldCBxdWUgdm91cyBzb3VoYWl0ZXogbWV0dHJlIGVuIHBsYWNlIHZvdHJlIHByb3ByZSBzaXRlIHdlYiwgcG91cnF1b2kgbmUgcGFzIHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IGFmaW4gZGUgZFxceGU5Y291dnJpciBub3RyZSBnYW1tZSBkZSBwcm9kdWl0cyBhYm9yZGFibGVzLCBxdWkgY29tcHJlbmQgbGUgY3JcXHhlOWF0ZXVyIGRlIHNpdGVzIHdlYiwgbFxcJ2hcXHhlOWJlcmdlbWVudCB3ZWIgZXQgYmllbiBwbHVzIGVuY29yZVxceGEwIVwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJ2b3VzIHJlbmRyZSBzdXIgMTIzIFJlZ1wiLFwidGRmc1RleHRcIjpcIkxlIGRvbWFpbmUge2RvbWFpbn0gZXN0IGVuIHZlbnRlLiBQb3VyIGxcXCdhY2hldGVyLCBhcHBlbGV6IHthZnRlcm5pY1NpdGVOYW1lfSBhdSB7YWZ0ZXJuaWNQaG9uZTF9IG91IGF1IHthZnRlcm5pY1Bob25lMn0uIFBvdXIgcGx1cyBkXFwnaW5mb3JtYXRpb25zLCBjbGlxdWV6IGljaS5cIixcImRic1RleHRcIjpcImVzdCBwYXJxdVxceGU5IGdyYXR1aXRlbWVudCwgYXZlYyBsYSBwZXJtaXNzaW9uIGRlIEdvRGFkZHkuY29tLlwiLFwiZXhwaXJlZERic1RleHRcIjpcImEgZXhwaXJcXHhlOSBldCBlc3QgcGFycXVcXHhlOSBncmF0dWl0ZW1lbnQsIGF2ZWMgbGEgcGVybWlzc2lvbiBkZSBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHkuXCIsXCJhdWN0aW9uQmFubmVyVGV4dFwiOlwiQ2UgZG9tYWluZSBlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHlcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiQ2UgZG9tYWluZSB2b3VzIGludFxceGU5cmVzc2VcXHhhMD9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiYSBleHBpclxceGU5IGV0IGVzdCBkaXNwb25pYmxlIHN1ciBFbmNoXFx4ZThyZXMgR29EYWRkeS5cIixcIkdldFRoaXNEb21haW5DVEFcIjpcIk9idGVuZXogY2UgZG9tYWluZVwiLFwiYmFja29yZGVyVGV4dFwiOlwiVm91cyBcXHhlYXRlcyBpbnRcXHhlOXJlc3NcXHhlOSBwYXIge2RvbWFpbn1cXHhhMD8gRFxceGU5Y291dnJleiBjb21tZW50IGxcXCdhY3F1XFx4ZTlyaXIgcGFyIGxlIGJpYWlzIGRlIGxhIHJcXHhlOXNlcnZhdGlvbiBkZSBub20gZGUgZG9tYWluZSBlbiBhdHRlbnRlLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGEgZXhwaXJcXHhlOS4gRFxceGU5Y291dnJleiBjb21tZW50IGxcXCdhY3F1XFx4ZTlyaXIgcGFyIGxlIGJpYWlzIGRlIGxhIHJcXHhlOXNlcnZhdGlvbiBkZSBkb21haW5lIGVuIGF0dGVudGUuXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgVG91cyBkcm9pdHMgclxceGU5c2VydlxceGU5cy5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXRcXHhlOVwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBUb3VzIGRyb2l0cyByXFx4ZTlzZXJ2XFx4ZTlzLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIk1lbnRpb25zIGxcXHhlOWdhbGVzXFx4YTA6IExlcyByXFx4ZTlmXFx4ZTlyZW5jZXMgXFx4ZTAgdW5lIHNvY2lcXHhlOXRcXHhlOSwgdW4gcHJvZHVpdCBvdSB1biBzZXJ2aWNlIHNwXFx4ZTljaWZpcXVlIHN1ciBjZSBzaXRlIG5lIHNvbnQgcGFzIGNvbnRyXFx4ZjRsXFx4ZTllcyBwYXIgMTIzXFx4YTBSZWdcXHhhMEx0ZCBldCBuZSBjb25zdGl0dWVudCBwYXMgb3UgblxcJ2ltcGxpcXVlbnQgcGFzIHNvbiBhc3NvY2lhdGlvbiBhdmVjIGRlcyBhbm5vbmNldXJzIHRpZXJzIG91IHNhIHJlY29tbWFuZGF0aW9uIGRlIGNlcyBkZXJuaWVycy5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBwb3VyIGxlcyBQTUUuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiRW4gY2VzIHRlbXBzIGRpZmZpY2lsZXMsIG5vdXMgZmFpc29ucyB0b3V0IG5vdHJlIHBvc3NpYmxlIHBvdXIgdm91cyBhaWRlciwgdm91cyBldCB2b3RyZSBidXNpbmVzcywgXFx4ZTAgdm91cyBhZGFwdGVyLlwiLFwib3dzQ1RBXCI6XCJFbiBzYXZvaXIgcGx1c1wiLFwiYWRzQmxvY2tlZFRleHRcIjpcIkxlcyBhbm5vbmNlcyBzb250IGJsb3F1XFx4ZTllcy5cIixcImNvbnRhY3RPd25lclRleHRcIjpcIntkb21haW59IGVzdCBwZXV0LVxceGVhdHJlIGVuIHZlbnRlLlwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIlZldWlsbGV6IGNvbnRhY3RlciBsZSBwcm9wcmlcXHhlOXRhaXJlIGR1IGRvbWFpbmUuXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJOb21cIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFbWFpbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRcXHhlOWxcXHhlOXBob25lXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiQ29tbWVudGFpcmVzXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIkVudm95ZXIgbGUgbWVzc2FnZVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJWb3VzIHJlY2hlcmNoZXogZGVzIGRvbWFpbmVzIHNpbWlsYWlyZXNcXHhhMD9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiQ29uc3VsdGV6IGNlcyBzXFx4ZTlsZWN0aW9ucyBwclxceGU5ZlxceGU5clxceGU5ZXNcIixcIkFULUJ1eVwiOlwiQWNoZXRlclwiLFwiQVQtUHJvbW90ZWRcIjpcIlByb21vdGlvblwifScpfSwxODIyOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0gZXN0IHBldXQtXFx4ZWF0cmUgZW4gdmVudGVcXHhhMCFcIixcImRic1RleHRIZWdcIjpcImVzdCBwYXJxdVxceGU5IGdyYXR1aXRlbWVudCwgYXZlYyBsYSBwZXJtaXNzaW9uIGRlIDEyM1xceGEwUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImEgZXhwaXJcXHhlOSBldCBlc3QgcGFycXVcXHhlOSBncmF0dWl0ZW1lbnQsIGF2ZWMgbGEgcGVybWlzc2lvbiBkZSAxMjNcXHhhMFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHkuXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiQ2UgZG9tYWluZSBlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiYSBleHBpclxceGU5IGV0IGVzdCBkaXNwb25pYmxlIHN1ciBFbmNoXFx4ZThyZXMgR29EYWRkeS5cIixcImhlZ0Zvb3RlclRleHRcIjpcIlNpIHZvdXMgXFx4ZWF0ZXMgcHJvcHJpXFx4ZTl0YWlyZSBkZSBjZSBub20gZGUgZG9tYWluZSBldCBxdWUgdm91cyBzb3VoYWl0ZXogbWV0dHJlIGVuIHBsYWNlIHZvdHJlIHByb3ByZSBzaXRlIHdlYiwgcG91cnF1b2kgbmUgcGFzIHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IGFmaW4gZGUgZFxceGU5Y291dnJpciBub3RyZSBnYW1tZSBkZSBwcm9kdWl0cyBhYm9yZGFibGVzLCBxdWkgY29tcHJlbmQgbGUgY3JcXHhlOWF0ZXVyIGRlIHNpdGVzIHdlYiwgbFxcJ2hcXHhlOWJlcmdlbWVudCB3ZWIgZXQgYmllbiBwbHVzIGVuY29yZVxceGEwIVwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJ2b3VzIHJlbmRyZSBzdXIgMTIzIFJlZ1wiLFwidGRmc1RleHRcIjpcIkxlIGRvbWFpbmUge2RvbWFpbn0gZXN0IGVuIHZlbnRlLiBQb3VyIGxcXCdhY2hldGVyLCBhcHBlbGV6IHthZnRlcm5pY1NpdGVOYW1lfSBhdSB7YWZ0ZXJuaWNQaG9uZTF9IG91IGF1IHthZnRlcm5pY1Bob25lMn0uIFBvdXIgcGx1cyBkXFwnaW5mb3JtYXRpb25zLCBjbGlxdWV6IGljaS5cIixcImRic1RleHRcIjpcImVzdCBwYXJxdVxceGU5IGdyYXR1aXRlbWVudCwgYXZlYyBsYSBwZXJtaXNzaW9uIGRlIEdvRGFkZHkuY29tLlwiLFwiZXhwaXJlZERic1RleHRcIjpcImEgZXhwaXJcXHhlOSBldCBlc3QgcGFycXVcXHhlOSBncmF0dWl0ZW1lbnQsIGF2ZWMgbGEgcGVybWlzc2lvbiBkZSBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHkuXCIsXCJhdWN0aW9uQmFubmVyVGV4dFwiOlwiQ2UgZG9tYWluZSBlc3QgZGlzcG9uaWJsZSBzdXIgRW5jaFxceGU4cmVzIEdvRGFkZHlcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiQ2UgZG9tYWluZSB2b3VzIGludFxceGU5cmVzc2VcXHhhMD9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiYSBleHBpclxceGU5IGV0IGVzdCBkaXNwb25pYmxlIHN1ciBFbmNoXFx4ZThyZXMgR29EYWRkeS5cIixcIkdldFRoaXNEb21haW5DVEFcIjpcIk9idGVuZXogY2UgZG9tYWluZVwiLFwiYmFja29yZGVyVGV4dFwiOlwiVm91cyBcXHhlYXRlcyBpbnRcXHhlOXJlc3NcXHhlOSBwYXIge2RvbWFpbn1cXHhhMD8gRFxceGU5Y291dnJleiBjb21tZW50IGxcXCdhY3F1XFx4ZTlyaXIgcGFyIGxlIGJpYWlzIGRlIGxhIHJcXHhlOXNlcnZhdGlvbiBkZSBub20gZGUgZG9tYWluZSBlbiBhdHRlbnRlLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGEgZXhwaXJcXHhlOS4gRFxceGU5Y291dnJleiBjb21tZW50IGxcXCdhY3F1XFx4ZTlyaXIgcGFyIGxlIGJpYWlzIGRlIGxhIHJcXHhlOXNlcnZhdGlvbiBkZSBkb21haW5lIGVuIGF0dGVudGUuXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgVG91cyBkcm9pdHMgclxceGU5c2VydlxceGU5cy5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXRcXHhlOVwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBUb3VzIGRyb2l0cyByXFx4ZTlzZXJ2XFx4ZTlzLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIk1lbnRpb25zIGxcXHhlOWdhbGVzXFx4YTA6IExlcyByXFx4ZTlmXFx4ZTlyZW5jZXMgXFx4ZTAgdW5lIHNvY2lcXHhlOXRcXHhlOSwgdW4gcHJvZHVpdCBvdSB1biBzZXJ2aWNlIHNwXFx4ZTljaWZpcXVlIHN1ciBjZSBzaXRlIG5lIHNvbnQgcGFzIGNvbnRyXFx4ZjRsXFx4ZTllcyBwYXIgMTIzXFx4YTBSZWdcXHhhMEx0ZCBldCBuZSBjb25zdGl0dWVudCBwYXMgb3UgblxcJ2ltcGxpcXVlbnQgcGFzIHNvbiBhc3NvY2lhdGlvbiBhdmVjIGRlcyBhbm5vbmNldXJzIHRpZXJzIG91IHNhIHJlY29tbWFuZGF0aW9uIGRlIGNlcyBkZXJuaWVycy5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBwb3VyIGxlcyBQTUUuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiRW4gY2VzIHRlbXBzIGRpZmZpY2lsZXMsIG5vdXMgZmFpc29ucyB0b3V0IG5vdHJlIHBvc3NpYmxlIHBvdXIgdm91cyBhaWRlciwgdm91cyBldCB2b3RyZSBidXNpbmVzcywgXFx4ZTAgdm91cyBhZGFwdGVyLlwiLFwib3dzQ1RBXCI6XCJFbiBzYXZvaXIgcGx1c1wiLFwiYWRzQmxvY2tlZFRleHRcIjpcIkxlcyBhbm5vbmNlcyBzb250IGJsb3F1XFx4ZTllcy5cIixcImNvbnRhY3RPd25lclRleHRcIjpcIntkb21haW59IGVzdCBwZXV0LVxceGVhdHJlIGVuIHZlbnRlLlwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIlZldWlsbGV6IGNvbnRhY3RlciBsZSBwcm9wcmlcXHhlOXRhaXJlIGR1IGRvbWFpbmUuXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJOb21cIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFbWFpbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRcXHhlOWxcXHhlOXBob25lXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiQ29tbWVudGFpcmVzXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIkVudm95ZXIgbGUgbWVzc2FnZVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJWb3VzIHJlY2hlcmNoZXogZGVzIGRvbWFpbmVzIHNpbWlsYWlyZXNcXHhhMD9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiQ29uc3VsdGV6IGNlcyBzXFx4ZTlsZWN0aW9ucyBwclxceGU5ZlxceGU5clxceGU5ZXNcIixcIkFULUJ1eVwiOlwiQWNoZXRlclwiLFwiQVQtUHJvbW90ZWRcIjpcIlByb21vdGlvblwifScpfSw3NjQ3OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0gXFx1MDkyY1xcdTA5M2ZcXHUwOTE1XFx1MDk0ZFxcdTA5MzBcXHUwOTQwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiBcXHUwOTM5XFx1MDk0YiBcXHUwOTM4XFx1MDkxNVxcdTA5MjRcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4IVwiLFwiZGJzVGV4dEhlZ1wiOlwiXFx1MDkyZVxcdTA5NDFcXHUwOTJiXFx1MDkzY1xcdTA5NGRcXHUwOTI0IFxcdTA5MmFcXHUwOTNlXFx1MDkzMFxcdTA5NGRcXHUwOTE1IFxcdTA5MTVcXHUwOTNmXFx1MDkyZlxcdTA5M2UgXFx1MDkxN1xcdTA5MmZcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4LCAxMjMgUmVnIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzhcXHUwOTRjXFx1MDkxY1xcdTA5MjhcXHUwOTRkXFx1MDkyZiBcXHUwOTM4XFx1MDk0Ny5cIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJcXHUwOTM4XFx1MDkyZVxcdTA5MmYgXFx1MDkzOFxcdTA5NDBcXHUwOTJlXFx1MDkzZSBcXHUwOTM4XFx1MDkyZVxcdTA5M2VcXHUwOTJhXFx1MDk0ZFxcdTA5MjQgXFx1MDkzOVxcdTA5NGIgXFx1MDkxN1xcdTA5MDggXFx1MDkzOVxcdTA5NDggXFx1MDkxNFxcdTA5MzAgXFx1MDkwN1xcdTA5MzhcXHUwOTQ3IFxcdTA5MmVcXHUwOTQxXFx1MDkyYlxcdTA5M2NcXHUwOTRkXFx1MDkyNCBcXHUwOTJhXFx1MDkzZVxcdTA5MzBcXHUwOTRkXFx1MDkxNSBcXHUwOTE1XFx1MDkzZlxcdTA5MmZcXHUwOTNlIFxcdTA5MTdcXHUwOTJmXFx1MDkzZSBcXHUwOTM5XFx1MDk0OCwgMTIzIFJlZyBcXHUwOTE1XFx1MDk0NyBcXHUwOTM4XFx1MDk0Y1xcdTA5MWNcXHUwOTI4XFx1MDk0ZFxcdTA5MmYgXFx1MDkzOFxcdTA5NDcuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiR29EYWRkeSBcXHUwOTI4XFx1MDk0MFxcdTA5MzJcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkyYVxcdTA5MzAgXFx1MDkwOVxcdTA5MmFcXHUwOTMyXFx1MDkyY1xcdTA5NGRcXHUwOTI3IFxcdTA5MzlcXHUwOTQ4LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlxcdTA5MmZcXHUwOTM5IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IEdvRGFkZHkgXFx1MDkyOFxcdTA5NDBcXHUwOTMyXFx1MDkzZVxcdTA5MmVcXHUwOTQwIFxcdTA5MmFcXHUwOTMwIFxcdTA5MDlcXHUwOTJhXFx1MDkzMlxcdTA5MmNcXHUwOTRkXFx1MDkyNyBcXHUwOTM5XFx1MDk0OFwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJcXHUwOTM4XFx1MDkyZVxcdTA5MmYgXFx1MDkzOFxcdTA5NDBcXHUwOTJlXFx1MDkzZSBcXHUwOTM4XFx1MDkyZVxcdTA5M2VcXHUwOTJhXFx1MDk0ZFxcdTA5MjQgXFx1MDkzOVxcdTA5NGIgXFx1MDkxN1xcdTA5MDggXFx1MDkzOVxcdTA5NDggXFx1MDkxNFxcdTA5MzAgXFx1MDkyZlxcdTA5MzkgR29EYWRkeSBcXHUwOTI4XFx1MDk0MFxcdTA5MzJcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkyYVxcdTA5MzAgXFx1MDkwOVxcdTA5MmFcXHUwOTMyXFx1MDkyY1xcdTA5NGRcXHUwOTI3IFxcdTA5MzlcXHUwOTQ4LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiXFx1MDkwNVxcdTA5MTdcXHUwOTMwIFxcdTA5MDZcXHUwOTJhIFxcdTA5MDdcXHUwOTM4IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IFxcdTA5MjhcXHUwOTNlXFx1MDkyZSBcXHUwOTE1XFx1MDk0NyBcXHUwOTM4XFx1MDk0ZFxcdTA5MzVcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkzOVxcdTA5NDhcXHUwOTAyIFxcdTA5MTRcXHUwOTMwIFxcdTA5MDVcXHUwOTJhXFx1MDkyOFxcdTA5NDAgXFx1MDkxNlxcdTA5M2NcXHUwOTQxXFx1MDkyNiBcXHUwOTE1XFx1MDk0MCBcXHUwOTM1XFx1MDk0N1xcdTA5MmNcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxcdTA5MWFcXHUwOTNlXFx1MDkzMlxcdTA5NDIgXFx1MDkxNVxcdTA5MzBcXHUwOTI4XFx1MDkzZSBcXHUwOTFhXFx1MDkzZVxcdTA5MzlcXHUwOTI0XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDIsIFxcdTA5MjRcXHUwOTRiIFxcdTA5MmJcXHUwOTNmXFx1MDkzMCB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBcXHUwOTJhXFx1MDkzMCBcXHUwOTFjXFx1MDkzZVxcdTA5MGZcXHUwOTAxIFxcdTA5MTRcXHUwOTMwIFxcdTA5MTVcXHUwOTNmXFx1MDkyYlxcdTA5M2NcXHUwOTNlXFx1MDkyZlxcdTA5MjRcXHUwOTQwIFxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5NGJcXHUwOTIxXFx1MDkxNVxcdTA5NGRcXHUwOTFmXFx1MDk0ZFxcdTA5MzggXFx1MDkxNVxcdTA5NDAgXFx1MDkzOVxcdTA5MmVcXHUwOTNlXFx1MDkzMFxcdTA5NDAgXFx1MDkzMFxcdTA5NDdcXHUwOTAyXFx1MDkxYyBcXHUwOTI2XFx1MDk0N1xcdTA5MTZcXHUwOTQ3XFx1MDkwMiwgXFx1MDkxY1xcdTA5M2ZcXHUwOTM4XFx1MDkyZVxcdTA5NDdcXHUwOTAyIFdlYnNpdGUgQnVpbGRlciBcXHUwOTE0XFx1MDkzMCBXZWIgSG9zdGluZyBcXHUwOTA2XFx1MDkyNlxcdTA5M2YgXFx1MDkzNlxcdTA5M2VcXHUwOTJlXFx1MDkzZlxcdTA5MzIgXFx1MDkzOVxcdTA5NDhcXHUwOTAyXFx1MDk2NFwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCIxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiXFx1MDkyMVxcdTA5NGJcXHUwOTJlXFx1MDk0N1xcdTA5Mjgge2RvbWFpbn0gXFx1MDkyY1xcdTA5M2ZcXHUwOTE1XFx1MDk0ZFxcdTA5MzBcXHUwOTQwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiBcXHUwOTM5XFx1MDk0OC4gXFx1MDkxNlxcdTA5MzBcXHUwOTQwXFx1MDkyNlxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiwge2FmdGVybmljU2l0ZU5hbWV9IFxcdTA5MTVcXHUwOTRiIHthZnRlcm5pY1Bob25lMX0gXFx1MDkyZlxcdTA5M2Uge2FmdGVybmljUGhvbmUyfSBcXHUwOTJhXFx1MDkzMCBcXHUwOTE1XFx1MDk0OVxcdTA5MzIgXFx1MDkxNVxcdTA5MzBcXHUwOTQ3XFx1MDkwMi4gXFx1MDkwNVxcdTA5MjdcXHUwOTNmXFx1MDkxNSBcXHUwOTM1XFx1MDkzZlxcdTA5MzVcXHUwOTMwXFx1MDkyMyBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYsIFxcdTA5MmZcXHUwOTM5XFx1MDkzZVxcdTA5MDIgXFx1MDkxNVxcdTA5NGRcXHUwOTMyXFx1MDkzZlxcdTA5MTUgXFx1MDkxNVxcdTA5MzBcXHUwOTQ3XFx1MDkwMi5cIixcImRic1RleHRcIjpcIlxcdTA5MmVcXHUwOTQxXFx1MDkyYlxcdTA5M2NcXHUwOTRkXFx1MDkyNCBcXHUwOTJhXFx1MDkzZVxcdTA5MzBcXHUwOTRkXFx1MDkxNSBcXHUwOTE1XFx1MDkzZlxcdTA5MmZcXHUwOTNlIFxcdTA5MTdcXHUwOTJmXFx1MDkzZSBcXHUwOTM5XFx1MDk0OCwgR29EYWRkeS5jb20gXFx1MDkxNVxcdTA5NDcgXFx1MDkzOFxcdTA5NGNcXHUwOTFjXFx1MDkyOFxcdTA5NGRcXHUwOTJmIFxcdTA5MzhcXHUwOTQ3LlwiLFwiZXhwaXJlZERic1RleHRcIjpcIlxcdTA5MzhcXHUwOTJlXFx1MDkyZiBcXHUwOTM4XFx1MDk0MFxcdTA5MmVcXHUwOTNlIFxcdTA5MzhcXHUwOTJlXFx1MDkzZVxcdTA5MmFcXHUwOTRkXFx1MDkyNCBcXHUwOTM5XFx1MDk0YiBcXHUwOTE3XFx1MDkwOCBcXHUwOTM5XFx1MDk0OCBcXHUwOTE0XFx1MDkzMCBcXHUwOTA3XFx1MDkzOFxcdTA5NDcgXFx1MDkyZVxcdTA5NDFcXHUwOTJiXFx1MDkzY1xcdTA5NGRcXHUwOTI0IFxcdTA5MmFcXHUwOTNlXFx1MDkzMFxcdTA5NGRcXHUwOTE1IFxcdTA5MTVcXHUwOTNmXFx1MDkyZlxcdTA5M2UgXFx1MDkxN1xcdTA5MmZcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4LCBHb0RhZGR5LmNvbSBcXHUwOTE1XFx1MDk0NyBcXHUwOTM4XFx1MDk0Y1xcdTA5MWNcXHUwOTI4XFx1MDk0ZFxcdTA5MmYgXFx1MDkzOFxcdTA5NDcuXCIsXCJhdWN0aW9uVGV4dFwiOlwiR29EYWRkeSBcXHUwOTI4XFx1MDk0MFxcdTA5MzJcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkyYVxcdTA5MzAgXFx1MDkwOVxcdTA5MmFcXHUwOTMyXFx1MDkyY1xcdTA5NGRcXHUwOTI3IFxcdTA5MzlcXHUwOTQ4LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIlxcdTA5MmZcXHUwOTM5IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IEdvRGFkZHkgXFx1MDkyOFxcdTA5NDBcXHUwOTMyXFx1MDkzZVxcdTA5MmVcXHUwOTQwIFxcdTA5MmFcXHUwOTMwIFxcdTA5MDlcXHUwOTJhXFx1MDkzMlxcdTA5MmNcXHUwOTRkXFx1MDkyNyBcXHUwOTM5XFx1MDk0OFwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHUwOTE1XFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MDdcXHUwOTM4IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IFxcdTA5MmVcXHUwOTQ3XFx1MDkwMiBcXHUwOTA2XFx1MDkyYVxcdTA5MTVcXHUwOTQwIFxcdTA5MjZcXHUwOTNmXFx1MDkzMlxcdTA5MWFcXHUwOTM4XFx1MDk0ZFxcdTA5MmFcXHUwOTQwIFxcdTA5MzlcXHUwOTQ4P1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJcXHUwOTM4XFx1MDkyZVxcdTA5MmYgXFx1MDkzOFxcdTA5NDBcXHUwOTJlXFx1MDkzZSBcXHUwOTM4XFx1MDkyZVxcdTA5M2VcXHUwOTJhXFx1MDk0ZFxcdTA5MjQgXFx1MDkzOVxcdTA5NGIgXFx1MDkxN1xcdTA5MDggXFx1MDkzOVxcdTA5NDggXFx1MDkxNFxcdTA5MzAgXFx1MDkyZlxcdTA5MzkgR29EYWRkeSBcXHUwOTI4XFx1MDk0MFxcdTA5MzJcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkyYVxcdTA5MzAgXFx1MDkwOVxcdTA5MmFcXHUwOTMyXFx1MDkyY1xcdTA5NGRcXHUwOTI3IFxcdTA5MzlcXHUwOTQ4LlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiXFx1MDkyZlxcdTA5MzkgXFx1MDkyMVxcdTA5NGJcXHUwOTJlXFx1MDk0N1xcdTA5MjggXFx1MDkyYVxcdTA5M2VcXHUwOTBmXFx1MDkwMlwiLFwiYmFja29yZGVyVGV4dFwiOlwiXFx1MDkxNVxcdTA5NGRcXHUwOTJmXFx1MDkzZSB7ZG9tYWlufSBcXHUwOTJlXFx1MDk0N1xcdTA5MDIgXFx1MDkyNlxcdTA5M2ZcXHUwOTMyXFx1MDkxYVxcdTA5MzhcXHUwOTRkXFx1MDkyYVxcdTA5NDAgXFx1MDkzMFxcdTA5MTZcXHUwOTI0XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDI/IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IFxcdTA5MmNcXHUwOTQ4XFx1MDkxNVxcdTA5MTFcXHUwOTMwXFx1MDk0ZFxcdTA5MjFcXHUwOTMwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MWNcXHUwOTNjXFx1MDkzMFxcdTA5M2ZcXHUwOTBmIFxcdTA5MDdcXHUwOTM4XFx1MDk0NyBcXHUwOTJhXFx1MDkzZVxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTNlIFxcdTA5MjRcXHUwOTMwXFx1MDk0MFxcdTA5MTVcXHUwOTNlIFxcdTA5MWNcXHUwOTNlXFx1MDkyOFxcdTA5NDdcXHUwOTAyLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IFxcdTA5MTVcXHUwOTQwIFxcdTA5MzhcXHUwOTJlXFx1MDkyZiBcXHUwOTM4XFx1MDk0MFxcdTA5MmVcXHUwOTNlIFxcdTA5MzhcXHUwOTJlXFx1MDkzZVxcdTA5MmFcXHUwOTRkXFx1MDkyNCBcXHUwOTM5XFx1MDk0YiBcXHUwOTE3XFx1MDkyZlxcdTA5NDAgXFx1MDkzOVxcdTA5NDguIFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IFxcdTA5MmNcXHUwOTQ4XFx1MDkxNVxcdTA5MTFcXHUwOTMwXFx1MDk0ZFxcdTA5MjFcXHUwOTMwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MWNcXHUwOTNjXFx1MDkzMFxcdTA5M2ZcXHUwOTBmIFxcdTA5MDdcXHUwOTM4XFx1MDk0NyBcXHUwOTJhXFx1MDkzZVxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTNlIFxcdTA5MjRcXHUwOTMwXFx1MDk0MFxcdTA5MTVcXHUwOTNlIFxcdTA5MWNcXHUwOTNlXFx1MDkyOFxcdTA5NDdcXHUwOTAyLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiXFx1MDkxNVxcdTA5NDlcXHUwOTJhXFx1MDk0MFxcdTA5MzBcXHUwOTNlXFx1MDkwN1xcdTA5MWYgXFx4YTkgIFxcdTA5MzhcXHUwOTMwXFx1MDk0ZFxcdTA5MzVcXHUwOTNlXFx1MDkyN1xcdTA5M2ZcXHUwOTE1XFx1MDkzZVxcdTA5MzAgXFx1MDkzOFxcdTA5NDFcXHUwOTMwXFx1MDkxNVxcdTA5NGRcXHUwOTM3XFx1MDkzZlxcdTA5MjQuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiXFx1MDkxN1xcdTA5NGJcXHUwOTJhXFx1MDkyOFxcdTA5NDBcXHUwOTJmXFx1MDkyNFxcdTA5M2UgXFx1MDkyOFxcdTA5NDBcXHUwOTI0XFx1MDkzZlwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIlxcdTA5MTVcXHUwOTQ5XFx1MDkyYVxcdTA5NDBcXHUwOTMwXFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIFxcdTA5MzhcXHUwOTMwXFx1MDk0ZFxcdTA5MzVcXHUwOTNlXFx1MDkyN1xcdTA5M2ZcXHUwOTE1XFx1MDkzZVxcdTA5MzAgXFx1MDkzOFxcdTA5NDFcXHUwOTMwXFx1MDkxNVxcdTA5NGRcXHUwOTM3XFx1MDkzZlxcdTA5MjQuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiXFx1MDkxNVxcdTA5NDlcXHUwOTJhXFx1MDk0MFxcdTA5MzBcXHUwOTNlXFx1MDkwN1xcdTA5MWYgXFx4YTkge2N1cnJlbnRZZWFyfSAxMjMgUmVnIEx0ZCB8XCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIlxcdTA5MDVcXHUwOTM4XFx1MDk0ZFxcdTA5MzVcXHUwOTQwXFx1MDkxNVxcdTA5MzBcXHUwOTIzOiBcXHUwOTA3XFx1MDkzOCBcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxcdTA5MmFcXHUwOTMwIFxcdTA5MTVcXHUwOTNmXFx1MDkzOFxcdTA5NDAgXFx1MDkzNVxcdTA5M2ZcXHUwOTM2XFx1MDkzZlxcdTA5MzdcXHUwOTRkXFx1MDkxZiBcXHUwOTE1XFx1MDkwMlxcdTA5MmFcXHUwOTI4XFx1MDk0MCwgXFx1MDkwOVxcdTA5MjRcXHUwOTRkXFx1MDkyYVxcdTA5M2VcXHUwOTI2IFxcdTA5MmZcXHUwOTNlIFxcdTA5MzhcXHUwOTQ3XFx1MDkzNVxcdTA5M2VcXHUwOTEzXFx1MDkwMiBcXHUwOTE1XFx1MDk0NyBcXHUwOTM4XFx1MDkwMlxcdTA5MjZcXHUwOTMwXFx1MDk0ZFxcdTA5MmQgMTIzIFJlZyBMdGQgXFx1MDkyNlxcdTA5NGRcXHUwOTM1XFx1MDkzZVxcdTA5MzBcXHUwOTNlIFxcdTA5MjhcXHUwOTNmXFx1MDkyZlxcdTA5MDJcXHUwOTI0XFx1MDk0ZFxcdTA5MzBcXHUwOTNmXFx1MDkyNCBcXHUwOTI4XFx1MDkzOVxcdTA5NDBcXHUwOTAyIFxcdTA5MzlcXHUwOTQ4XFx1MDkwMiBcXHUwOTE0XFx1MDkzMCBcXHUwOTI0XFx1MDk0MFxcdTA5MzhcXHUwOTMwXFx1MDk0NyBcXHUwOTJhXFx1MDkxNVxcdTA5NGRcXHUwOTM3IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzVcXHUwOTNmXFx1MDkxY1xcdTA5NGRcXHUwOTFlXFx1MDkzZVxcdTA5MmFcXHUwOTI4XFx1MDkyNlxcdTA5M2VcXHUwOTI0XFx1MDkzZVxcdTA5MTNcXHUwOTAyIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzhcXHUwOTNlXFx1MDkyNSBcXHUwOTA1XFx1MDkyYVxcdTA5MjhcXHUwOTQ3IFxcdTA5MWNcXHUwOTQxXFx1MDkyMVxcdTA5M2NcXHUwOTNlXFx1MDkzNSBcXHUwOTJmXFx1MDkzZSBcXHUwOTM4XFx1MDkyZVxcdTA5MzBcXHUwOTRkXFx1MDkyNVxcdTA5MjggXFx1MDkxNVxcdTA5M2UgXFx1MDkxN1xcdTA5MjBcXHUwOTI4IFxcdTA5MmZcXHUwOTNlIFxcdTA5MzhcXHUwOTAyXFx1MDkxNVxcdTA5NDdcXHUwOTI0IFxcdTA5MjhcXHUwOTM5XFx1MDk0MFxcdTA5MDIgXFx1MDkxNVxcdTA5MzBcXHUwOTI0XFx1MDkzZSBcXHUwOTM5XFx1MDk0OFxcdTA5NjRcIixcIm93c0hlYWRpbmdcIjpcIlxcdTA5MWJcXHUwOTRiXFx1MDkxZlxcdTA5NDcgXFx1MDkyY1xcdTA5M2ZcXHUwOTViXFx1MDkyOFxcdTA5NDdcXHUwOTM4IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzhcXHUwOTNlXFx1MDkyNSAjT3BlbldlU3RhbmQuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiXFx1MDkwN1xcdTA5MjggXFx1MDkyZVxcdTA5NDFcXHUwOTM2XFx1MDk0ZFxcdTA5MTVcXHUwOTNmXFx1MDkzMiBcXHUwOTI2XFx1MDk0Y1xcdTA5MzAgXFx1MDkyZVxcdTA5NDdcXHUwOTAyLCBcXHUwOTM5XFx1MDkyZSBcXHUwOTM1XFx1MDkzOSBcXHUwOTM4XFx1MDkyYyBcXHUwOTE1XFx1MDk0MVxcdTA5MWIgXFx1MDkxNVxcdTA5MzAgXFx1MDkzMFxcdTA5MzlcXHUwOTQ3IFxcdTA5MzlcXHUwOTQ4XFx1MDkwMiBcXHUwOTFjXFx1MDkzZlxcdTA5MzhcXHUwOTE1XFx1MDk0MCBcXHUwOTJlXFx1MDkyNlxcdTA5MjYgXFx1MDkzOFxcdTA5NDcgXFx1MDkzOVxcdTA5MmUgXFx1MDkwNlxcdTA5MmFcXHUwOTE1XFx1MDk0YiBcXHUwOTE0XFx1MDkzMCBcXHUwOTA2XFx1MDkyYVxcdTA5MTVcXHUwOTQ3IFxcdTA5MmNcXHUwOTNmXFx1MDk1YlxcdTA5MjhcXHUwOTQ3XFx1MDkzOCBcXHUwOTE1XFx1MDk0YiBcXHUwOTA1XFx1MDkyOFxcdTA5NDFcXHUwOTE1XFx1MDk0MlxcdTA5MzIgXFx1MDkyY1xcdTA5MjhcXHUwOTNlXFx1MDkwZiBcXHUwOTMwXFx1MDkxNiBcXHUwOTM4XFx1MDkxNVxcdTA5MjRcXHUwOTQ3IFxcdTA5MzlcXHUwOTQ4XFx1MDkwMi5cIixcIm93c0NUQVwiOlwiXFx1MDkxNFxcdTA5MzAgXFx1MDkxY1xcdTA5M2VcXHUwOTI4XFx1MDk0N1xcdTA5MDJcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJcXHUwOTM1XFx1MDkzZlxcdTA5MWNcXHUwOTRkXFx1MDkxZVxcdTA5M2VcXHUwOTJhXFx1MDkyOCBcXHUwOTJjXFx1MDk0ZFxcdTA5MzJcXHUwOTQ5XFx1MDkxNSBcXHUwOTE1XFx1MDkzZlxcdTA5MGYgXFx1MDkzOVxcdTA5NDFcXHUwOTBmIFxcdTA5MzlcXHUwOTQ4XFx1MDkwMlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gXFx1MDkyY1xcdTA5M2ZcXHUwOTE1XFx1MDk0ZFxcdTA5MzBcXHUwOTQwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiBcXHUwOTM5XFx1MDk0YiBcXHUwOTM4XFx1MDkxNVxcdTA5MjRcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1MDkyMVxcdTA5NGJcXHUwOTJlXFx1MDk0N1xcdTA5MjggXFx1MDkxNVxcdTA5NDcgXFx1MDkzOFxcdTA5NGRcXHUwOTM1XFx1MDkzZVxcdTA5MmVcXHUwOTQwIFxcdTA5MzhcXHUwOTQ3IFxcdTA5MzhcXHUwOTAyXFx1MDkyYVxcdTA5MzBcXHUwOTRkXFx1MDkxNSBcXHUwOTE1XFx1MDkzMFxcdTA5NDdcXHUwOTAyXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJcXHUwOTI4XFx1MDkzZVxcdTA5MmVcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJcXHUwOTA4XFx1MDkyZVxcdTA5NDdcXHUwOTMyXCIsXCJjb250YWN0T3duZXJQaG9uZVwiOlwiXFx1MDkyYlxcdTA5M2NcXHUwOTRiXFx1MDkyOFwiLFwiY29udGFjdE93bmVyQ29tbWVudHNcIjpcIlxcdTA5MWZcXHUwOTNmXFx1MDkyYVxcdTA5NGRcXHUwOTJhXFx1MDkyM1xcdTA5M2ZcXHUwOTJmXFx1MDkzZVxcdTA5MDJcIixcImNvbnRhY3RPd25lckNUQVwiOlwiXFx1MDkzOFxcdTA5MDJcXHUwOTI2XFx1MDk0N1xcdTA5MzYgXFx1MDkyZFxcdTA5NDdcXHUwOTFjXFx1MDk0N1xcdTA5MDJcIixcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wiOlwiXFx1MDkyZVxcdTA5M2ZcXHUwOTMyXFx1MDkyNFxcdTA5NDctXFx1MDkxY1xcdTA5NDFcXHUwOTMyXFx1MDkyNFxcdTA5NDcgXFx1MDkyMVxcdTA5NGJcXHUwOTJlXFx1MDk0N1xcdTA5MjggXFx1MDkxNlxcdTA5NGJcXHUwOTFjIFxcdTA5MzBcXHUwOTM5XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDI/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlxcdTA5MDdcXHUwOTI4IFxcdTA5MWZcXHUwOTQ5XFx1MDkyYSBcXHUwOTJhXFx1MDkzZlxcdTA5MTVcXHUwOTRkXFx1MDkzOCBcXHUwOTE1XFx1MDk0YiBcXHUwOTI2XFx1MDk0N1xcdTA5MTZcXHUwOTQ3XFx1MDkwMlwiLFwiQVQtQnV5XCI6XCJcXHUwOTE2XFx1MDkzMFxcdTA5NDBcXHUwOTI2XFx1MDk0N1xcdTA5MDJcIixcIkFULVByb21vdGVkXCI6XCJcXHUwOTJhXFx1MDk0ZFxcdTA5MzBcXHUwOTFhXFx1MDkzZVxcdTA5MzBcXHUwOTNmXFx1MDkyNFwifScpfSw4Mjc0OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0gXFx1MDkyY1xcdTA5M2ZcXHUwOTE1XFx1MDk0ZFxcdTA5MzBcXHUwOTQwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiBcXHUwOTM5XFx1MDk0YiBcXHUwOTM4XFx1MDkxNVxcdTA5MjRcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4IVwiLFwiZGJzVGV4dEhlZ1wiOlwiXFx1MDkyZVxcdTA5NDFcXHUwOTJiXFx1MDkzY1xcdTA5NGRcXHUwOTI0IFxcdTA5MmFcXHUwOTNlXFx1MDkzMFxcdTA5NGRcXHUwOTE1IFxcdTA5MTVcXHUwOTNmXFx1MDkyZlxcdTA5M2UgXFx1MDkxN1xcdTA5MmZcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4LCAxMjMgUmVnIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzhcXHUwOTRjXFx1MDkxY1xcdTA5MjhcXHUwOTRkXFx1MDkyZiBcXHUwOTM4XFx1MDk0Ny5cIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJcXHUwOTM4XFx1MDkyZVxcdTA5MmYgXFx1MDkzOFxcdTA5NDBcXHUwOTJlXFx1MDkzZSBcXHUwOTM4XFx1MDkyZVxcdTA5M2VcXHUwOTJhXFx1MDk0ZFxcdTA5MjQgXFx1MDkzOVxcdTA5NGIgXFx1MDkxN1xcdTA5MDggXFx1MDkzOVxcdTA5NDggXFx1MDkxNFxcdTA5MzAgXFx1MDkwN1xcdTA5MzhcXHUwOTQ3IFxcdTA5MmVcXHUwOTQxXFx1MDkyYlxcdTA5M2NcXHUwOTRkXFx1MDkyNCBcXHUwOTJhXFx1MDkzZVxcdTA5MzBcXHUwOTRkXFx1MDkxNSBcXHUwOTE1XFx1MDkzZlxcdTA5MmZcXHUwOTNlIFxcdTA5MTdcXHUwOTJmXFx1MDkzZSBcXHUwOTM5XFx1MDk0OCwgMTIzIFJlZyBcXHUwOTE1XFx1MDk0NyBcXHUwOTM4XFx1MDk0Y1xcdTA5MWNcXHUwOTI4XFx1MDk0ZFxcdTA5MmYgXFx1MDkzOFxcdTA5NDcuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiR29EYWRkeSBcXHUwOTI4XFx1MDk0MFxcdTA5MzJcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkyYVxcdTA5MzAgXFx1MDkwOVxcdTA5MmFcXHUwOTMyXFx1MDkyY1xcdTA5NGRcXHUwOTI3IFxcdTA5MzlcXHUwOTQ4LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlxcdTA5MmZcXHUwOTM5IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IEdvRGFkZHkgXFx1MDkyOFxcdTA5NDBcXHUwOTMyXFx1MDkzZVxcdTA5MmVcXHUwOTQwIFxcdTA5MmFcXHUwOTMwIFxcdTA5MDlcXHUwOTJhXFx1MDkzMlxcdTA5MmNcXHUwOTRkXFx1MDkyNyBcXHUwOTM5XFx1MDk0OFwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJcXHUwOTM4XFx1MDkyZVxcdTA5MmYgXFx1MDkzOFxcdTA5NDBcXHUwOTJlXFx1MDkzZSBcXHUwOTM4XFx1MDkyZVxcdTA5M2VcXHUwOTJhXFx1MDk0ZFxcdTA5MjQgXFx1MDkzOVxcdTA5NGIgXFx1MDkxN1xcdTA5MDggXFx1MDkzOVxcdTA5NDggXFx1MDkxNFxcdTA5MzAgXFx1MDkyZlxcdTA5MzkgR29EYWRkeSBcXHUwOTI4XFx1MDk0MFxcdTA5MzJcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkyYVxcdTA5MzAgXFx1MDkwOVxcdTA5MmFcXHUwOTMyXFx1MDkyY1xcdTA5NGRcXHUwOTI3IFxcdTA5MzlcXHUwOTQ4LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiXFx1MDkwNVxcdTA5MTdcXHUwOTMwIFxcdTA5MDZcXHUwOTJhIFxcdTA5MDdcXHUwOTM4IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IFxcdTA5MjhcXHUwOTNlXFx1MDkyZSBcXHUwOTE1XFx1MDk0NyBcXHUwOTM4XFx1MDk0ZFxcdTA5MzVcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkzOVxcdTA5NDhcXHUwOTAyIFxcdTA5MTRcXHUwOTMwIFxcdTA5MDVcXHUwOTJhXFx1MDkyOFxcdTA5NDAgXFx1MDkxNlxcdTA5M2NcXHUwOTQxXFx1MDkyNiBcXHUwOTE1XFx1MDk0MCBcXHUwOTM1XFx1MDk0N1xcdTA5MmNcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxcdTA5MWFcXHUwOTNlXFx1MDkzMlxcdTA5NDIgXFx1MDkxNVxcdTA5MzBcXHUwOTI4XFx1MDkzZSBcXHUwOTFhXFx1MDkzZVxcdTA5MzlcXHUwOTI0XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDIsIFxcdTA5MjRcXHUwOTRiIFxcdTA5MmJcXHUwOTNmXFx1MDkzMCB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBcXHUwOTJhXFx1MDkzMCBcXHUwOTFjXFx1MDkzZVxcdTA5MGZcXHUwOTAxIFxcdTA5MTRcXHUwOTMwIFxcdTA5MTVcXHUwOTNmXFx1MDkyYlxcdTA5M2NcXHUwOTNlXFx1MDkyZlxcdTA5MjRcXHUwOTQwIFxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5NGJcXHUwOTIxXFx1MDkxNVxcdTA5NGRcXHUwOTFmXFx1MDk0ZFxcdTA5MzggXFx1MDkxNVxcdTA5NDAgXFx1MDkzOVxcdTA5MmVcXHUwOTNlXFx1MDkzMFxcdTA5NDAgXFx1MDkzMFxcdTA5NDdcXHUwOTAyXFx1MDkxYyBcXHUwOTI2XFx1MDk0N1xcdTA5MTZcXHUwOTQ3XFx1MDkwMiwgXFx1MDkxY1xcdTA5M2ZcXHUwOTM4XFx1MDkyZVxcdTA5NDdcXHUwOTAyIFdlYnNpdGUgQnVpbGRlciBcXHUwOTE0XFx1MDkzMCBXZWIgSG9zdGluZyBcXHUwOTA2XFx1MDkyNlxcdTA5M2YgXFx1MDkzNlxcdTA5M2VcXHUwOTJlXFx1MDkzZlxcdTA5MzIgXFx1MDkzOVxcdTA5NDhcXHUwOTAyXFx1MDk2NFwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCIxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiXFx1MDkyMVxcdTA5NGJcXHUwOTJlXFx1MDk0N1xcdTA5Mjgge2RvbWFpbn0gXFx1MDkyY1xcdTA5M2ZcXHUwOTE1XFx1MDk0ZFxcdTA5MzBcXHUwOTQwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiBcXHUwOTM5XFx1MDk0OC4gXFx1MDkxNlxcdTA5MzBcXHUwOTQwXFx1MDkyNlxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiwge2FmdGVybmljU2l0ZU5hbWV9IFxcdTA5MTVcXHUwOTRiIHthZnRlcm5pY1Bob25lMX0gXFx1MDkyZlxcdTA5M2Uge2FmdGVybmljUGhvbmUyfSBcXHUwOTJhXFx1MDkzMCBcXHUwOTE1XFx1MDk0OVxcdTA5MzIgXFx1MDkxNVxcdTA5MzBcXHUwOTQ3XFx1MDkwMi4gXFx1MDkwNVxcdTA5MjdcXHUwOTNmXFx1MDkxNSBcXHUwOTM1XFx1MDkzZlxcdTA5MzVcXHUwOTMwXFx1MDkyMyBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYsIFxcdTA5MmZcXHUwOTM5XFx1MDkzZVxcdTA5MDIgXFx1MDkxNVxcdTA5NGRcXHUwOTMyXFx1MDkzZlxcdTA5MTUgXFx1MDkxNVxcdTA5MzBcXHUwOTQ3XFx1MDkwMi5cIixcImRic1RleHRcIjpcIlxcdTA5MmVcXHUwOTQxXFx1MDkyYlxcdTA5M2NcXHUwOTRkXFx1MDkyNCBcXHUwOTJhXFx1MDkzZVxcdTA5MzBcXHUwOTRkXFx1MDkxNSBcXHUwOTE1XFx1MDkzZlxcdTA5MmZcXHUwOTNlIFxcdTA5MTdcXHUwOTJmXFx1MDkzZSBcXHUwOTM5XFx1MDk0OCwgR29EYWRkeS5jb20gXFx1MDkxNVxcdTA5NDcgXFx1MDkzOFxcdTA5NGNcXHUwOTFjXFx1MDkyOFxcdTA5NGRcXHUwOTJmIFxcdTA5MzhcXHUwOTQ3LlwiLFwiZXhwaXJlZERic1RleHRcIjpcIlxcdTA5MzhcXHUwOTJlXFx1MDkyZiBcXHUwOTM4XFx1MDk0MFxcdTA5MmVcXHUwOTNlIFxcdTA5MzhcXHUwOTJlXFx1MDkzZVxcdTA5MmFcXHUwOTRkXFx1MDkyNCBcXHUwOTM5XFx1MDk0YiBcXHUwOTE3XFx1MDkwOCBcXHUwOTM5XFx1MDk0OCBcXHUwOTE0XFx1MDkzMCBcXHUwOTA3XFx1MDkzOFxcdTA5NDcgXFx1MDkyZVxcdTA5NDFcXHUwOTJiXFx1MDkzY1xcdTA5NGRcXHUwOTI0IFxcdTA5MmFcXHUwOTNlXFx1MDkzMFxcdTA5NGRcXHUwOTE1IFxcdTA5MTVcXHUwOTNmXFx1MDkyZlxcdTA5M2UgXFx1MDkxN1xcdTA5MmZcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4LCBHb0RhZGR5LmNvbSBcXHUwOTE1XFx1MDk0NyBcXHUwOTM4XFx1MDk0Y1xcdTA5MWNcXHUwOTI4XFx1MDk0ZFxcdTA5MmYgXFx1MDkzOFxcdTA5NDcuXCIsXCJhdWN0aW9uVGV4dFwiOlwiR29EYWRkeSBcXHUwOTI4XFx1MDk0MFxcdTA5MzJcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkyYVxcdTA5MzAgXFx1MDkwOVxcdTA5MmFcXHUwOTMyXFx1MDkyY1xcdTA5NGRcXHUwOTI3IFxcdTA5MzlcXHUwOTQ4LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIlxcdTA5MmZcXHUwOTM5IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IEdvRGFkZHkgXFx1MDkyOFxcdTA5NDBcXHUwOTMyXFx1MDkzZVxcdTA5MmVcXHUwOTQwIFxcdTA5MmFcXHUwOTMwIFxcdTA5MDlcXHUwOTJhXFx1MDkzMlxcdTA5MmNcXHUwOTRkXFx1MDkyNyBcXHUwOTM5XFx1MDk0OFwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHUwOTE1XFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MDdcXHUwOTM4IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IFxcdTA5MmVcXHUwOTQ3XFx1MDkwMiBcXHUwOTA2XFx1MDkyYVxcdTA5MTVcXHUwOTQwIFxcdTA5MjZcXHUwOTNmXFx1MDkzMlxcdTA5MWFcXHUwOTM4XFx1MDk0ZFxcdTA5MmFcXHUwOTQwIFxcdTA5MzlcXHUwOTQ4P1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJcXHUwOTM4XFx1MDkyZVxcdTA5MmYgXFx1MDkzOFxcdTA5NDBcXHUwOTJlXFx1MDkzZSBcXHUwOTM4XFx1MDkyZVxcdTA5M2VcXHUwOTJhXFx1MDk0ZFxcdTA5MjQgXFx1MDkzOVxcdTA5NGIgXFx1MDkxN1xcdTA5MDggXFx1MDkzOVxcdTA5NDggXFx1MDkxNFxcdTA5MzAgXFx1MDkyZlxcdTA5MzkgR29EYWRkeSBcXHUwOTI4XFx1MDk0MFxcdTA5MzJcXHUwOTNlXFx1MDkyZVxcdTA5NDAgXFx1MDkyYVxcdTA5MzAgXFx1MDkwOVxcdTA5MmFcXHUwOTMyXFx1MDkyY1xcdTA5NGRcXHUwOTI3IFxcdTA5MzlcXHUwOTQ4LlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiXFx1MDkyZlxcdTA5MzkgXFx1MDkyMVxcdTA5NGJcXHUwOTJlXFx1MDk0N1xcdTA5MjggXFx1MDkyYVxcdTA5M2VcXHUwOTBmXFx1MDkwMlwiLFwiYmFja29yZGVyVGV4dFwiOlwiXFx1MDkxNVxcdTA5NGRcXHUwOTJmXFx1MDkzZSB7ZG9tYWlufSBcXHUwOTJlXFx1MDk0N1xcdTA5MDIgXFx1MDkyNlxcdTA5M2ZcXHUwOTMyXFx1MDkxYVxcdTA5MzhcXHUwOTRkXFx1MDkyYVxcdTA5NDAgXFx1MDkzMFxcdTA5MTZcXHUwOTI0XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDI/IFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IFxcdTA5MmNcXHUwOTQ4XFx1MDkxNVxcdTA5MTFcXHUwOTMwXFx1MDk0ZFxcdTA5MjFcXHUwOTMwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MWNcXHUwOTNjXFx1MDkzMFxcdTA5M2ZcXHUwOTBmIFxcdTA5MDdcXHUwOTM4XFx1MDk0NyBcXHUwOTJhXFx1MDkzZVxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTNlIFxcdTA5MjRcXHUwOTMwXFx1MDk0MFxcdTA5MTVcXHUwOTNlIFxcdTA5MWNcXHUwOTNlXFx1MDkyOFxcdTA5NDdcXHUwOTAyLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IFxcdTA5MTVcXHUwOTQwIFxcdTA5MzhcXHUwOTJlXFx1MDkyZiBcXHUwOTM4XFx1MDk0MFxcdTA5MmVcXHUwOTNlIFxcdTA5MzhcXHUwOTJlXFx1MDkzZVxcdTA5MmFcXHUwOTRkXFx1MDkyNCBcXHUwOTM5XFx1MDk0YiBcXHUwOTE3XFx1MDkyZlxcdTA5NDAgXFx1MDkzOVxcdTA5NDguIFxcdTA5MjFcXHUwOTRiXFx1MDkyZVxcdTA5NDdcXHUwOTI4IFxcdTA5MmNcXHUwOTQ4XFx1MDkxNVxcdTA5MTFcXHUwOTMwXFx1MDk0ZFxcdTA5MjFcXHUwOTMwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MWNcXHUwOTNjXFx1MDkzMFxcdTA5M2ZcXHUwOTBmIFxcdTA5MDdcXHUwOTM4XFx1MDk0NyBcXHUwOTJhXFx1MDkzZVxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTNlIFxcdTA5MjRcXHUwOTMwXFx1MDk0MFxcdTA5MTVcXHUwOTNlIFxcdTA5MWNcXHUwOTNlXFx1MDkyOFxcdTA5NDdcXHUwOTAyLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiXFx1MDkxNVxcdTA5NDlcXHUwOTJhXFx1MDk0MFxcdTA5MzBcXHUwOTNlXFx1MDkwN1xcdTA5MWYgXFx4YTkgIFxcdTA5MzhcXHUwOTMwXFx1MDk0ZFxcdTA5MzVcXHUwOTNlXFx1MDkyN1xcdTA5M2ZcXHUwOTE1XFx1MDkzZVxcdTA5MzAgXFx1MDkzOFxcdTA5NDFcXHUwOTMwXFx1MDkxNVxcdTA5NGRcXHUwOTM3XFx1MDkzZlxcdTA5MjQuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiXFx1MDkxN1xcdTA5NGJcXHUwOTJhXFx1MDkyOFxcdTA5NDBcXHUwOTJmXFx1MDkyNFxcdTA5M2UgXFx1MDkyOFxcdTA5NDBcXHUwOTI0XFx1MDkzZlwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIlxcdTA5MTVcXHUwOTQ5XFx1MDkyYVxcdTA5NDBcXHUwOTMwXFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIFxcdTA5MzhcXHUwOTMwXFx1MDk0ZFxcdTA5MzVcXHUwOTNlXFx1MDkyN1xcdTA5M2ZcXHUwOTE1XFx1MDkzZVxcdTA5MzAgXFx1MDkzOFxcdTA5NDFcXHUwOTMwXFx1MDkxNVxcdTA5NGRcXHUwOTM3XFx1MDkzZlxcdTA5MjQuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiXFx1MDkxNVxcdTA5NDlcXHUwOTJhXFx1MDk0MFxcdTA5MzBcXHUwOTNlXFx1MDkwN1xcdTA5MWYgXFx4YTkge2N1cnJlbnRZZWFyfSAxMjMgUmVnIEx0ZCB8XCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIlxcdTA5MDVcXHUwOTM4XFx1MDk0ZFxcdTA5MzVcXHUwOTQwXFx1MDkxNVxcdTA5MzBcXHUwOTIzOiBcXHUwOTA3XFx1MDkzOCBcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxcdTA5MmFcXHUwOTMwIFxcdTA5MTVcXHUwOTNmXFx1MDkzOFxcdTA5NDAgXFx1MDkzNVxcdTA5M2ZcXHUwOTM2XFx1MDkzZlxcdTA5MzdcXHUwOTRkXFx1MDkxZiBcXHUwOTE1XFx1MDkwMlxcdTA5MmFcXHUwOTI4XFx1MDk0MCwgXFx1MDkwOVxcdTA5MjRcXHUwOTRkXFx1MDkyYVxcdTA5M2VcXHUwOTI2IFxcdTA5MmZcXHUwOTNlIFxcdTA5MzhcXHUwOTQ3XFx1MDkzNVxcdTA5M2VcXHUwOTEzXFx1MDkwMiBcXHUwOTE1XFx1MDk0NyBcXHUwOTM4XFx1MDkwMlxcdTA5MjZcXHUwOTMwXFx1MDk0ZFxcdTA5MmQgMTIzIFJlZyBMdGQgXFx1MDkyNlxcdTA5NGRcXHUwOTM1XFx1MDkzZVxcdTA5MzBcXHUwOTNlIFxcdTA5MjhcXHUwOTNmXFx1MDkyZlxcdTA5MDJcXHUwOTI0XFx1MDk0ZFxcdTA5MzBcXHUwOTNmXFx1MDkyNCBcXHUwOTI4XFx1MDkzOVxcdTA5NDBcXHUwOTAyIFxcdTA5MzlcXHUwOTQ4XFx1MDkwMiBcXHUwOTE0XFx1MDkzMCBcXHUwOTI0XFx1MDk0MFxcdTA5MzhcXHUwOTMwXFx1MDk0NyBcXHUwOTJhXFx1MDkxNVxcdTA5NGRcXHUwOTM3IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzVcXHUwOTNmXFx1MDkxY1xcdTA5NGRcXHUwOTFlXFx1MDkzZVxcdTA5MmFcXHUwOTI4XFx1MDkyNlxcdTA5M2VcXHUwOTI0XFx1MDkzZVxcdTA5MTNcXHUwOTAyIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzhcXHUwOTNlXFx1MDkyNSBcXHUwOTA1XFx1MDkyYVxcdTA5MjhcXHUwOTQ3IFxcdTA5MWNcXHUwOTQxXFx1MDkyMVxcdTA5M2NcXHUwOTNlXFx1MDkzNSBcXHUwOTJmXFx1MDkzZSBcXHUwOTM4XFx1MDkyZVxcdTA5MzBcXHUwOTRkXFx1MDkyNVxcdTA5MjggXFx1MDkxNVxcdTA5M2UgXFx1MDkxN1xcdTA5MjBcXHUwOTI4IFxcdTA5MmZcXHUwOTNlIFxcdTA5MzhcXHUwOTAyXFx1MDkxNVxcdTA5NDdcXHUwOTI0IFxcdTA5MjhcXHUwOTM5XFx1MDk0MFxcdTA5MDIgXFx1MDkxNVxcdTA5MzBcXHUwOTI0XFx1MDkzZSBcXHUwOTM5XFx1MDk0OFxcdTA5NjRcIixcIm93c0hlYWRpbmdcIjpcIlxcdTA5MWJcXHUwOTRiXFx1MDkxZlxcdTA5NDcgXFx1MDkyY1xcdTA5M2ZcXHUwOTViXFx1MDkyOFxcdTA5NDdcXHUwOTM4IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzhcXHUwOTNlXFx1MDkyNSAjT3BlbldlU3RhbmQuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiXFx1MDkwN1xcdTA5MjggXFx1MDkyZVxcdTA5NDFcXHUwOTM2XFx1MDk0ZFxcdTA5MTVcXHUwOTNmXFx1MDkzMiBcXHUwOTI2XFx1MDk0Y1xcdTA5MzAgXFx1MDkyZVxcdTA5NDdcXHUwOTAyLCBcXHUwOTM5XFx1MDkyZSBcXHUwOTM1XFx1MDkzOSBcXHUwOTM4XFx1MDkyYyBcXHUwOTE1XFx1MDk0MVxcdTA5MWIgXFx1MDkxNVxcdTA5MzAgXFx1MDkzMFxcdTA5MzlcXHUwOTQ3IFxcdTA5MzlcXHUwOTQ4XFx1MDkwMiBcXHUwOTFjXFx1MDkzZlxcdTA5MzhcXHUwOTE1XFx1MDk0MCBcXHUwOTJlXFx1MDkyNlxcdTA5MjYgXFx1MDkzOFxcdTA5NDcgXFx1MDkzOVxcdTA5MmUgXFx1MDkwNlxcdTA5MmFcXHUwOTE1XFx1MDk0YiBcXHUwOTE0XFx1MDkzMCBcXHUwOTA2XFx1MDkyYVxcdTA5MTVcXHUwOTQ3IFxcdTA5MmNcXHUwOTNmXFx1MDk1YlxcdTA5MjhcXHUwOTQ3XFx1MDkzOCBcXHUwOTE1XFx1MDk0YiBcXHUwOTA1XFx1MDkyOFxcdTA5NDFcXHUwOTE1XFx1MDk0MlxcdTA5MzIgXFx1MDkyY1xcdTA5MjhcXHUwOTNlXFx1MDkwZiBcXHUwOTMwXFx1MDkxNiBcXHUwOTM4XFx1MDkxNVxcdTA5MjRcXHUwOTQ3IFxcdTA5MzlcXHUwOTQ4XFx1MDkwMi5cIixcIm93c0NUQVwiOlwiXFx1MDkxNFxcdTA5MzAgXFx1MDkxY1xcdTA5M2VcXHUwOTI4XFx1MDk0N1xcdTA5MDJcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJcXHUwOTM1XFx1MDkzZlxcdTA5MWNcXHUwOTRkXFx1MDkxZVxcdTA5M2VcXHUwOTJhXFx1MDkyOCBcXHUwOTJjXFx1MDk0ZFxcdTA5MzJcXHUwOTQ5XFx1MDkxNSBcXHUwOTE1XFx1MDkzZlxcdTA5MGYgXFx1MDkzOVxcdTA5NDFcXHUwOTBmIFxcdTA5MzlcXHUwOTQ4XFx1MDkwMlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gXFx1MDkyY1xcdTA5M2ZcXHUwOTE1XFx1MDk0ZFxcdTA5MzBcXHUwOTQwIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiBcXHUwOTM5XFx1MDk0YiBcXHUwOTM4XFx1MDkxNVxcdTA5MjRcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1MDkyMVxcdTA5NGJcXHUwOTJlXFx1MDk0N1xcdTA5MjggXFx1MDkxNVxcdTA5NDcgXFx1MDkzOFxcdTA5NGRcXHUwOTM1XFx1MDkzZVxcdTA5MmVcXHUwOTQwIFxcdTA5MzhcXHUwOTQ3IFxcdTA5MzhcXHUwOTAyXFx1MDkyYVxcdTA5MzBcXHUwOTRkXFx1MDkxNSBcXHUwOTE1XFx1MDkzMFxcdTA5NDdcXHUwOTAyXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJcXHUwOTI4XFx1MDkzZVxcdTA5MmVcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJcXHUwOTA4XFx1MDkyZVxcdTA5NDdcXHUwOTMyXCIsXCJjb250YWN0T3duZXJQaG9uZVwiOlwiXFx1MDkyYlxcdTA5M2NcXHUwOTRiXFx1MDkyOFwiLFwiY29udGFjdE93bmVyQ29tbWVudHNcIjpcIlxcdTA5MWZcXHUwOTNmXFx1MDkyYVxcdTA5NGRcXHUwOTJhXFx1MDkyM1xcdTA5M2ZcXHUwOTJmXFx1MDkzZVxcdTA5MDJcIixcImNvbnRhY3RPd25lckNUQVwiOlwiXFx1MDkzOFxcdTA5MDJcXHUwOTI2XFx1MDk0N1xcdTA5MzYgXFx1MDkyZFxcdTA5NDdcXHUwOTFjXFx1MDk0N1xcdTA5MDJcIixcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wiOlwiXFx1MDkyZVxcdTA5M2ZcXHUwOTMyXFx1MDkyNFxcdTA5NDctXFx1MDkxY1xcdTA5NDFcXHUwOTMyXFx1MDkyNFxcdTA5NDcgXFx1MDkyMVxcdTA5NGJcXHUwOTJlXFx1MDk0N1xcdTA5MjggXFx1MDkxNlxcdTA5NGJcXHUwOTFjIFxcdTA5MzBcXHUwOTM5XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDI/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlxcdTA5MDdcXHUwOTI4IFxcdTA5MWZcXHUwOTQ5XFx1MDkyYSBcXHUwOTJhXFx1MDkzZlxcdTA5MTVcXHUwOTRkXFx1MDkzOCBcXHUwOTE1XFx1MDk0YiBcXHUwOTI2XFx1MDk0N1xcdTA5MTZcXHUwOTQ3XFx1MDkwMlwiLFwiQVQtQnV5XCI6XCJcXHUwOTE2XFx1MDkzMFxcdTA5NDBcXHUwOTI2XFx1MDk0N1xcdTA5MDJcIixcIkFULVByb21vdGVkXCI6XCJcXHUwOTJhXFx1MDk0ZFxcdTA5MzBcXHUwOTFhXFx1MDkzZVxcdTA5MzBcXHUwOTNmXFx1MDkyNFwifScpfSw0MjgzOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0gbXVuZ2tpbiBkaWp1YWwhXCIsXCJkYnNUZXh0SGVnXCI6XCJkaXBhcmtpciBzZWNhcmEgZ3JhdGlzLCBkZW5nYW4gaXppbiAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcInRlbGFoIGtlZGFsdXdhcnNhIGRhbiBkaXBhcmtpciBzZWNhcmEgZ3JhdGlzLCBkZW5nYW4gaXppbiAxMjMgUmVnLlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcInRlcnNlZGlhIGRpIExlbGFuZyBHb0RhZGR5LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIkRvbWFpbiBpbmkgdGVyc2VkaWEgZGkgTGVsYW5nIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwidGVsYWgga2VkYWx1d2Fyc2EgZGFuIHRlcnNlZGlhIGRpIExlbGFuZyBHb0RhZGR5LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiSmlrYSBBbmRhIG1lbWlsaWtpIG5hbWEgZG9tYWluIGluaSBzZXJ0YSBpbmdpbiBtZW5nYWt0aWZrYW4gZGFuIG1lbmphbGFua2FuIHNpdHVzIHdlYiwgQW5kYSBwZXJsdSB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBkYW4gcGVyaWtzYSBsaW5pIHByb2R1ayBrYW1pIHlhbmcgdGVyamFuZ2thdSwgdGVybWFzdWsgV2Vic2l0ZSBCdWlsZGVyLCBIb3N0aW5nIFdlYiwgZGFuIGJhbnlhayBsYWlubnlhIVwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJtZW5ndW5qdW5naSAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRG9tYWluIHtkb21haW59IGRpanVhbC4gVW50dWsgbWVtYmVsaSwgaHVidW5naSB7YWZ0ZXJuaWNTaXRlTmFtZX0gZGkge2FmdGVybmljUGhvbmUxfSBhdGF1IHthZnRlcm5pY1Bob25lMn0uIEtsaWsgZGkgc2luaSB1bnR1ayBpbmZvcm1hc2kgc2VsZW5na2FwbnlhLlwiLFwiZGJzVGV4dFwiOlwiZGlwYXJraXIgc2VjYXJhIGdyYXRpcywgZGVuZ2FuIGl6aW4gR29EYWRkeS5jb20uXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwidGVsYWgga2VkYWx1d2Fyc2EgZGFuIGRpcGFya2lyIHNlY2FyYSBncmF0aXMsIGRlbmdhbiBpemluIEdvRGFkZHkuY29tLlwiLFwiYXVjdGlvblRleHRcIjpcInRlcnNlZGlhIGRpIExlbGFuZyBHb0RhZGR5LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIkRvbWFpbiBpbmkgdGVyc2VkaWEgZGkgTGVsYW5nIEdvRGFkZHlcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiQmVybWluYXQgbWVtYmVsaSBkb21haW4gaW5pP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJ0ZWxhaCBrZWRhbHV3YXJzYSBkYW4gdGVyc2VkaWEgZGkgTGVsYW5nIEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJEYXBhdGthbiBEb21haW4gSW5pXCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJUZXJ0YXJpayBkZW5nYW4ge2RvbWFpbn0/IFRlbXVrYW4gY2FyYSBtZW5kYXBhdGthbm55YSBtZWxhbHVpIFBlbWVzYW5hbiBEb21haW4gZGkgQXdhbC5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSB0ZWxhaCBrZWRhbHV3YXJzYS4gVGVtdWthbiBjYXJhIG1lbmRhcGF0a2FubnlhIG1lbGFsdWkgUGVtZXNhbmFuIERvbWFpbiBkaSBBd2FsLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiSGFrIGNpcHRhIFxceGE5ICBTZW11YSBIYWsgRGlsaW5kdW5naSBVbmRhbmctVW5kYW5nLlwiLFwicHJpdmFjeVBvbGljeVRleHRcIjpcIktlYmlqYWthbiBQcml2YXNpXCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiSGFrIENpcHRhIFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIFNlbXVhIGhhayBkaWxpbmR1bmdpIHVuZGFuZy11bmRhbmcuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiSGFrIENpcHRhIFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGQgfFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJTYW5na2FsYW46IFJ1anVrYW4gcGFkYSBwZXJ1c2FoYWFuLCBwcm9kdWssIGF0YXUgbGF5YW5hbiB0ZXJ0ZW50dSBkaSBTaXR1cyBpbmkgdGlkYWsgZGlrb250cm9sIG9sZWggMTIzIFJlZyBMdGQgZGFuIGJ1a2FuIG1lcnVwYWthbiBhdGF1IG1lbnlpcmF0a2FuIGh1YnVuZ2FubnlhIGRlbmdhbiBhdGF1IGR1a3VuZ2FuIGRhcmkgcGVuZ2lrbGFuIHBpaGFrIGtldGlnYS5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBkZW5nYW4gYmlzbmlzIGtlY2lsLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlNlbGFtYSBtYXNhIHN1bGl0IGluaSwga2VtaSBtZWxha3VrYW4geWFuZyBrYW1pIGJpc2EgdW50dWsgbWVtYmFudHUgQW5kYSBkYW4gYmlzbmlzIEFuZGEgbWVueWVzdWFpa2FuIGRpcmkuXCIsXCJvd3NDVEFcIjpcIlBlbGFqYXJpIFNlbGVuZ2thcG55YVwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIklrbGFuIGRpYmxva2lyXCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBtdW5na2luIGRpanVhbFwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIkh1YnVuZ2kgUGVtaWxpayBEb21haW5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5hbWFcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFbWFpbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRlbGVwb25cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJLb21lbnRhclwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJLaXJpbSBQZXNhblwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJNZW5jYXJpIERvbWFpbiBTZXJ1cGE/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIkNvYmEgbGloYXQgcGlsaWhhbiB0ZXJhdGFzIGluaVwiLFwiQVQtQnV5XCI6XCJCZWxpXCIsXCJBVC1Qcm9tb3RlZFwiOlwiUHJvbW9zaVwifScpfSwzODM4OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0gbXVuZ2tpbiBkaWp1YWwhXCIsXCJkYnNUZXh0SGVnXCI6XCJkaXBhcmtpciBzZWNhcmEgZ3JhdGlzLCBkZW5nYW4gaXppbiAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcInRlbGFoIGtlZGFsdXdhcnNhIGRhbiBkaXBhcmtpciBzZWNhcmEgZ3JhdGlzLCBkZW5nYW4gaXppbiAxMjMgUmVnLlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcInRlcnNlZGlhIGRpIExlbGFuZyBHb0RhZGR5LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIkRvbWFpbiBpbmkgdGVyc2VkaWEgZGkgTGVsYW5nIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwidGVsYWgga2VkYWx1d2Fyc2EgZGFuIHRlcnNlZGlhIGRpIExlbGFuZyBHb0RhZGR5LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiSmlrYSBBbmRhIG1lbWlsaWtpIG5hbWEgZG9tYWluIGluaSBzZXJ0YSBpbmdpbiBtZW5nYWt0aWZrYW4gZGFuIG1lbmphbGFua2FuIHNpdHVzIHdlYiwgQW5kYSBwZXJsdSB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBkYW4gcGVyaWtzYSBsaW5pIHByb2R1ayBrYW1pIHlhbmcgdGVyamFuZ2thdSwgdGVybWFzdWsgV2Vic2l0ZSBCdWlsZGVyLCBIb3N0aW5nIFdlYiwgZGFuIGJhbnlhayBsYWlubnlhIVwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJtZW5ndW5qdW5naSAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRG9tYWluIHtkb21haW59IGRpanVhbC4gVW50dWsgbWVtYmVsaSwgaHVidW5naSB7YWZ0ZXJuaWNTaXRlTmFtZX0gZGkge2FmdGVybmljUGhvbmUxfSBhdGF1IHthZnRlcm5pY1Bob25lMn0uIEtsaWsgZGkgc2luaSB1bnR1ayBpbmZvcm1hc2kgc2VsZW5na2FwbnlhLlwiLFwiZGJzVGV4dFwiOlwiZGlwYXJraXIgc2VjYXJhIGdyYXRpcywgZGVuZ2FuIGl6aW4gR29EYWRkeS5jb20uXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwidGVsYWgga2VkYWx1d2Fyc2EgZGFuIGRpcGFya2lyIHNlY2FyYSBncmF0aXMsIGRlbmdhbiBpemluIEdvRGFkZHkuY29tLlwiLFwiYXVjdGlvblRleHRcIjpcInRlcnNlZGlhIGRpIExlbGFuZyBHb0RhZGR5LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIkRvbWFpbiBpbmkgdGVyc2VkaWEgZGkgTGVsYW5nIEdvRGFkZHlcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiQmVybWluYXQgbWVtYmVsaSBkb21haW4gaW5pP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJ0ZWxhaCBrZWRhbHV3YXJzYSBkYW4gdGVyc2VkaWEgZGkgTGVsYW5nIEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJEYXBhdGthbiBEb21haW4gSW5pXCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJUZXJ0YXJpayBkZW5nYW4ge2RvbWFpbn0/IFRlbXVrYW4gY2FyYSBtZW5kYXBhdGthbm55YSBtZWxhbHVpIFBlbWVzYW5hbiBEb21haW4gZGkgQXdhbC5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSB0ZWxhaCBrZWRhbHV3YXJzYS4gVGVtdWthbiBjYXJhIG1lbmRhcGF0a2FubnlhIG1lbGFsdWkgUGVtZXNhbmFuIERvbWFpbiBkaSBBd2FsLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiSGFrIGNpcHRhIFxceGE5ICBTZW11YSBIYWsgRGlsaW5kdW5naSBVbmRhbmctVW5kYW5nLlwiLFwicHJpdmFjeVBvbGljeVRleHRcIjpcIktlYmlqYWthbiBQcml2YXNpXCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiSGFrIENpcHRhIFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIFNlbXVhIGhhayBkaWxpbmR1bmdpIHVuZGFuZy11bmRhbmcuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiSGFrIENpcHRhIFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGQgfFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJTYW5na2FsYW46IFJ1anVrYW4gcGFkYSBwZXJ1c2FoYWFuLCBwcm9kdWssIGF0YXUgbGF5YW5hbiB0ZXJ0ZW50dSBkaSBTaXR1cyBpbmkgdGlkYWsgZGlrb250cm9sIG9sZWggMTIzIFJlZyBMdGQgZGFuIGJ1a2FuIG1lcnVwYWthbiBhdGF1IG1lbnlpcmF0a2FuIGh1YnVuZ2FubnlhIGRlbmdhbiBhdGF1IGR1a3VuZ2FuIGRhcmkgcGVuZ2lrbGFuIHBpaGFrIGtldGlnYS5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBkZW5nYW4gYmlzbmlzIGtlY2lsLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlNlbGFtYSBtYXNhIHN1bGl0IGluaSwga2VtaSBtZWxha3VrYW4geWFuZyBrYW1pIGJpc2EgdW50dWsgbWVtYmFudHUgQW5kYSBkYW4gYmlzbmlzIEFuZGEgbWVueWVzdWFpa2FuIGRpcmkuXCIsXCJvd3NDVEFcIjpcIlBlbGFqYXJpIFNlbGVuZ2thcG55YVwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIklrbGFuIGRpYmxva2lyXCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBtdW5na2luIGRpanVhbFwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIkh1YnVuZ2kgUGVtaWxpayBEb21haW5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5hbWFcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFbWFpbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRlbGVwb25cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJLb21lbnRhclwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJLaXJpbSBQZXNhblwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJNZW5jYXJpIERvbWFpbiBTZXJ1cGE/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIkNvYmEgbGloYXQgcGlsaWhhbiB0ZXJhdGFzIGluaVwiLFwiQVQtQnV5XCI6XCJCZWxpXCIsXCJBVC1Qcm9tb3RlZFwiOlwiUHJvbW9zaVwifScpfSw4MDY3OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0gcHVcXHhmMiBlc3NlcmUgaW4gdmVuZGl0YS5cIixcImRic1RleHRIZWdcIjpcInRlbXBvcmFuZWFtZW50ZSBkaXNwb25pYmlsZSBhIHRpdG9sbyBncmF0dWl0byBwZXIgZ2VudGlsZSBjb25jZXNzaW9uZSBkaSAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcInNjYWR1dG8gZSB0ZW1wb3JhbmVhbWVudGUgZGlzcG9uaWJpbGUgYSB0aXRvbG8gZ3JhdHVpdG8gcGVyIGdlbnRpbGUgY29uY2Vzc2lvbmUgZGkgMTIzIFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJcXHhlOCBkaXNwb25pYmlsZSBwZXIgbFxcdTIwMTlhY3F1aXN0byBzdSBBc3RlIEdvRGFkZHkuXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiUXVlc3RvIGRvbWluaW8gXFx4ZTggZGlzcG9uaWJpbGUgc3UgQXN0ZSBHb0RhZGR5XCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcIlxceGU4IHNjYWR1dG8gZSBkaXNwb25pYmlsZSBwZXIgbFxcdTIwMTlhY3F1aXN0byBzdSBBc3RlIEdvRGFkZHkuXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJTZSBxdWVzdG8gbm9tZSBkaSBkb21pbmlvIHRpIGFwcGFydGllbmUgZSBzZSBkZXNpZGVyaSBhdHRpdmFyZSB1biBzaXRvIHdlYiB0dXR0byB0dW8sIHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IGRvdmUgcHVvaSB0cm92YXJlIGxhIG5vc3RyYSBnYW1tYSBkaSBwcm9kb3R0aSBjb252ZW5pZW50aSwgdHJhIGN1aSBXZWJzaXRlIEJ1aWxkZXIsIFdlYiBIb3N0aW5nIGUgYWx0cm8gYW5jb3JhLlwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJ2aXNpdGEgMTIzIFJlZ1wiLFwidGRmc1RleHRcIjpcIklsIGRvbWluaW8ge2RvbWFpbn0gXFx4ZTggaW4gdmVuZGl0YS4gUGVyIHByb2NlZGVyZSBhbGxcXHUyMDE5YWNxdWlzdG8sIGNoaWFtYSB7YWZ0ZXJuaWNTaXRlTmFtZX0gYWwgbnVtZXJvIHthZnRlcm5pY1Bob25lMX0gbyB7YWZ0ZXJuaWNQaG9uZTJ9LiBQZXIgc2FwZXJuZSBkaSBwaVxceGY5LCBmYWkgY2xpYyBxdWkuXCIsXCJkYnNUZXh0XCI6XCJ0ZW1wb3JhbmVhbWVudGUgZGlzcG9uaWJpbGUgYSB0aXRvbG8gZ3JhdHVpdG8gcGVyIGdlbnRpbGUgY29uY2Vzc2lvbmUgZGkgR29EYWRkeS5jb21cIixcImV4cGlyZWREYnNUZXh0XCI6XCJzY2FkdXRvIGUgdGVtcG9yYW5lYW1lbnRlIGRpc3BvbmliaWxlIGEgdGl0b2xvIGdyYXR1aXRvIHBlciBnZW50aWxlIGNvbmNlc3Npb25lIGRpIEdvRGFkZHkuY29tXCIsXCJhdWN0aW9uVGV4dFwiOlwiXFx4ZTggZGlzcG9uaWJpbGUgcGVyIGxcXHUyMDE5YWNxdWlzdG8gc3UgQXN0ZSBHb0RhZGR5LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIlF1ZXN0byBkb21pbmlvIFxceGU4IGRpc3BvbmliaWxlIHN1IEFzdGUgR29EYWRkeVwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJUaSBpbnRlcmVzc2EgcXVlc3RvIGRvbWluaW8/XCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcIlxceGU4IHNjYWR1dG8gZSBkaXNwb25pYmlsZSBwZXIgbFxcdTIwMTlhY3F1aXN0byBzdSBBc3RlIEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJSZWdpc3RyYSBxdWVzdG8gZG9taW5pb1wiLFwiYmFja29yZGVyVGV4dFwiOlwiVGkgaW50ZXJlc3NhIHtkb21haW59PyBTY29wcmkgY29tZSBvdHRlbmVybG8gdHJhbWl0ZSBCYWNrb3JkZXIgZGkgZG9taW5pLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IFxceGU4IHNjYWR1dG8uIFNjb3ByaSBjb21lIG90dGVuZXJsbyB0cmFtaXRlIEJhY2tvcmRlciBkaSBkb21pbmkuXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgVHV0dGkgaSBkaXJpdHRpIHJpc2VydmF0aS5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQb2xpdGljYSBzdWxsYSBwcml2YWN5XCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIFR1dHRpIGkgZGlyaXR0aSByaXNlcnZhdGkuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiRGljaGlhcmF6aW9uZSBkaSBub24gcmVzcG9uc2FiaWxpdFxceGUwOiBvZ25pIHJpZmVyaW1lbnRvIGFkIGF6aWVuZGUsIHByb2RvdHRpIG8gc2Vydml6aSBzcGVjaWZpY2kgY29udGVudXRvIGluIHF1ZXN0byBTaXRvIG5vbiBcXHhlOCBjb250cm9sbGF0byBkYSAxMjMgUmVnIEx0ZCBlIG5vbiBjb3N0aXR1aXNjZSBvIGltcGxpY2EgYWxjdW5hIGZvcm1hIGRpIGFzc29jaWF6aW9uZSBvIGF2dmFsbG8gZGkgaW5zZXJ6aW9uaXN0aSBkaSB0ZXJ6ZSBwYXJ0aS5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBwZXIgcGljY29sZSBhemllbmRlLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIkluIHBlcmlvZGkgZGlmZmljaWxpIGNvbWUgcXVlc3RvLCBmYWNjaWFtbyBpbCBwb3NzaWJpbGUgcGVyIGFpdXRhcmUgYXppZW5kZSBjb21lIGxhIHR1YSBhIHRlbmVyZSBpbCBwYXNzby5cIixcIm93c0NUQVwiOlwiU2NvcHJpIGRpIHBpXFx4ZjlcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJMYSBwdWJibGljaXRcXHhlMCBcXHhlOCBibG9jY2F0YVwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gcHVcXHhmMiBlc3NlcmUgaW4gdmVuZGl0YVwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIkNvbnRhdHRhIGlsIHByb3ByaWV0YXJpbyBkZWwgZG9taW5pb1wiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiTm9tZVwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIkVtYWlsXCIsXCJjb250YWN0T3duZXJQaG9uZVwiOlwiVGVsZWZvbm9cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJDb21tZW50aVwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJJbnZpYSBtZXNzYWdnaW9cIixcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wiOlwiQ2VyY2hpIGRvbWluaSBzaW1pbGk/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIkRhaSB1bm8gc2d1YXJkbyBhIHF1ZXN0aVwiLFwiQVQtQnV5XCI6XCJBY3F1aXN0YVwiLFwiQVQtUHJvbW90ZWRcIjpcIkluIHByb21vemlvbmVcIn0nKX0sNTc0NDplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIntkb21haW59IHB1XFx4ZjIgZXNzZXJlIGluIHZlbmRpdGEuXCIsXCJkYnNUZXh0SGVnXCI6XCJ0ZW1wb3JhbmVhbWVudGUgZGlzcG9uaWJpbGUgYSB0aXRvbG8gZ3JhdHVpdG8gcGVyIGdlbnRpbGUgY29uY2Vzc2lvbmUgZGkgMTIzIFJlZy5cIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJzY2FkdXRvIGUgdGVtcG9yYW5lYW1lbnRlIGRpc3BvbmliaWxlIGEgdGl0b2xvIGdyYXR1aXRvIHBlciBnZW50aWxlIGNvbmNlc3Npb25lIGRpIDEyMyBSZWcuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiXFx4ZTggZGlzcG9uaWJpbGUgcGVyIGxcXHUyMDE5YWNxdWlzdG8gc3UgQXN0ZSBHb0RhZGR5LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlF1ZXN0byBkb21pbmlvIFxceGU4IGRpc3BvbmliaWxlIHN1IEFzdGUgR29EYWRkeVwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJcXHhlOCBzY2FkdXRvIGUgZGlzcG9uaWJpbGUgcGVyIGxcXHUyMDE5YWNxdWlzdG8gc3UgQXN0ZSBHb0RhZGR5LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiU2UgcXVlc3RvIG5vbWUgZGkgZG9taW5pbyB0aSBhcHBhcnRpZW5lIGUgc2UgZGVzaWRlcmkgYXR0aXZhcmUgdW4gc2l0byB3ZWIgdHV0dG8gdHVvLCB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBkb3ZlIHB1b2kgdHJvdmFyZSBsYSBub3N0cmEgZ2FtbWEgZGkgcHJvZG90dGkgY29udmVuaWVudGksIHRyYSBjdWkgV2Vic2l0ZSBCdWlsZGVyLCBXZWIgSG9zdGluZyBlIGFsdHJvIGFuY29yYS5cIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwidmlzaXRhIDEyMyBSZWdcIixcInRkZnNUZXh0XCI6XCJJbCBkb21pbmlvIHtkb21haW59IFxceGU4IGluIHZlbmRpdGEuIFBlciBwcm9jZWRlcmUgYWxsXFx1MjAxOWFjcXVpc3RvLCBjaGlhbWEge2FmdGVybmljU2l0ZU5hbWV9IGFsIG51bWVybyB7YWZ0ZXJuaWNQaG9uZTF9IG8ge2FmdGVybmljUGhvbmUyfS4gUGVyIHNhcGVybmUgZGkgcGlcXHhmOSwgZmFpIGNsaWMgcXVpLlwiLFwiZGJzVGV4dFwiOlwidGVtcG9yYW5lYW1lbnRlIGRpc3BvbmliaWxlIGEgdGl0b2xvIGdyYXR1aXRvIHBlciBnZW50aWxlIGNvbmNlc3Npb25lIGRpIEdvRGFkZHkuY29tXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwic2NhZHV0byBlIHRlbXBvcmFuZWFtZW50ZSBkaXNwb25pYmlsZSBhIHRpdG9sbyBncmF0dWl0byBwZXIgZ2VudGlsZSBjb25jZXNzaW9uZSBkaSBHb0RhZGR5LmNvbVwiLFwiYXVjdGlvblRleHRcIjpcIlxceGU4IGRpc3BvbmliaWxlIHBlciBsXFx1MjAxOWFjcXVpc3RvIHN1IEFzdGUgR29EYWRkeS5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJRdWVzdG8gZG9taW5pbyBcXHhlOCBkaXNwb25pYmlsZSBzdSBBc3RlIEdvRGFkZHlcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiVGkgaW50ZXJlc3NhIHF1ZXN0byBkb21pbmlvP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJcXHhlOCBzY2FkdXRvIGUgZGlzcG9uaWJpbGUgcGVyIGxcXHUyMDE5YWNxdWlzdG8gc3UgQXN0ZSBHb0RhZGR5LlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiUmVnaXN0cmEgcXVlc3RvIGRvbWluaW9cIixcImJhY2tvcmRlclRleHRcIjpcIlRpIGludGVyZXNzYSB7ZG9tYWlufT8gU2NvcHJpIGNvbWUgb3R0ZW5lcmxvIHRyYW1pdGUgQmFja29yZGVyIGRpIGRvbWluaS5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSBcXHhlOCBzY2FkdXRvLiBTY29wcmkgY29tZSBvdHRlbmVybG8gdHJhbWl0ZSBCYWNrb3JkZXIgZGkgZG9taW5pLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IFR1dHRpIGkgZGlyaXR0aSByaXNlcnZhdGkuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiUG9saXRpY2Egc3VsbGEgcHJpdmFjeVwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBUdXR0aSBpIGRpcml0dGkgcmlzZXJ2YXRpLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIkRpY2hpYXJhemlvbmUgZGkgbm9uIHJlc3BvbnNhYmlsaXRcXHhlMDogb2duaSByaWZlcmltZW50byBhZCBhemllbmRlLCBwcm9kb3R0aSBvIHNlcnZpemkgc3BlY2lmaWNpIGNvbnRlbnV0byBpbiBxdWVzdG8gU2l0byBub24gXFx4ZTggY29udHJvbGxhdG8gZGEgMTIzIFJlZyBMdGQgZSBub24gY29zdGl0dWlzY2UgbyBpbXBsaWNhIGFsY3VuYSBmb3JtYSBkaSBhc3NvY2lhemlvbmUgbyBhdnZhbGxvIGRpIGluc2VyemlvbmlzdGkgZGkgdGVyemUgcGFydGkuXCIsXCJvd3NIZWFkaW5nXCI6XCIjT3BlbldlU3RhbmQgcGVyIHBpY2NvbGUgYXppZW5kZS5cIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJJbiBwZXJpb2RpIGRpZmZpY2lsaSBjb21lIHF1ZXN0bywgZmFjY2lhbW8gaWwgcG9zc2liaWxlIHBlciBhaXV0YXJlIGF6aWVuZGUgY29tZSBsYSB0dWEgYSB0ZW5lcmUgaWwgcGFzc28uXCIsXCJvd3NDVEFcIjpcIlNjb3ByaSBkaSBwaVxceGY5XCIsXCJhZHNCbG9ja2VkVGV4dFwiOlwiTGEgcHViYmxpY2l0XFx4ZTAgXFx4ZTggYmxvY2NhdGFcIixcImNvbnRhY3RPd25lclRleHRcIjpcIntkb21haW59IHB1XFx4ZjIgZXNzZXJlIGluIHZlbmRpdGFcIixcImNvbnRhY3RPd25lckRlc2NyaXB0aW9uXCI6XCJDb250YXR0YSBpbCBwcm9wcmlldGFyaW8gZGVsIGRvbWluaW9cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5vbWVcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFbWFpbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRlbGVmb25vXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiQ29tbWVudGlcIixcImNvbnRhY3RPd25lckNUQVwiOlwiSW52aWEgbWVzc2FnZ2lvXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIkNlcmNoaSBkb21pbmkgc2ltaWxpP1wiLFwiQVQtQ2hlY2tPdXRUaGVzZVRvcFBpY2tzXCI6XCJEYWkgdW5vIHNndWFyZG8gYSBxdWVzdGlcIixcIkFULUJ1eVwiOlwiQWNxdWlzdGFcIixcIkFULVByb21vdGVkXCI6XCJJbiBwcm9tb3ppb25lXCJ9Jyl9LDc4MTU6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBcXHUzMDRjXFx1OGNhOVxcdTU4ZjJcXHU0ZTJkXFx1MzA2ZVxcdTUzZWZcXHU4MGZkXFx1NjAyN1xcdTMwNGNcXHUzMDQyXFx1MzA4YVxcdTMwN2VcXHUzMDU5XFx1MzAwMlwiLFwiZGJzVGV4dEhlZ1wiOlwiXFx1MzA2ZlxcdTMwMDExMjMgUmVnIFxcdTMwNmJcXHUzMDg4XFx1MzA4YVxcdTcxMjFcXHU2NTk5XFx1MzA2N1xcdTMwZDFcXHUzMGZjXFx1MzBhZFxcdTMwZjNcXHUzMGIwXFx1MzA1NVxcdTMwOGNcXHUzMDY2XFx1MzA0NFxcdTMwN2VcXHUzMDU5XFx1MzAwMlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcIlxcdTMwNmZcXHU2NzFmXFx1OTY1MFxcdTUyMDdcXHUzMDhjXFx1MzA2N1xcdTMwMDExMjMgUmVnIFxcdTMwNmJcXHUzMDg4XFx1MzA4YVxcdTcxMjFcXHU2NTk5XFx1MzA2N1xcdTMwZDFcXHUzMGZjXFx1MzBhZFxcdTMwZjNcXHUzMGIwXFx1MzA1NVxcdTMwOGNcXHUzMDY2XFx1MzA0NFxcdTMwN2VcXHUzMDU5XFx1MzAwMlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcIlxcdTMwNmYgR29EYWRkeVxcdTMwYWFcXHUzMGZjXFx1MzBhZlxcdTMwYjdcXHUzMGU3XFx1MzBmM1xcdTMwNjdcXHU4Y2ZjXFx1NTE2NVxcdTUzZWZcXHU4MGZkXFx1MzA2N1xcdTMwNTlcXHUzMDAyXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiXFx1MzA1M1xcdTMwNmVcXHUzMGM5XFx1MzBlMVxcdTMwYTRcXHUzMGYzXFx1MzA2ZiBHb0RhZGR5XFx1MzBhYVxcdTMwZmNcXHUzMGFmXFx1MzBiN1xcdTMwZTdcXHUzMGYzXFx1MzA2N1xcdThjZmNcXHU1MTY1XFx1NTNlZlxcdTgwZmRcXHUzMDY3XFx1MzA1OVwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJcXHUzMDZmXFx1NjcxZlxcdTk2NTBcXHU1MjA3XFx1MzA4Y1xcdTMwNjdcXHUzMDAxR29EYWRkeVxcdTMwYWFcXHUzMGZjXFx1MzBhZlxcdTMwYjdcXHUzMGU3XFx1MzBmM1xcdTMwNjdcXHU4Y2ZjXFx1NTE2NVxcdTUzZWZcXHU4MGZkXFx1MzA2N1xcdTMwNTlcXHUzMDAyXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJcXHUzMDUzXFx1MzA2ZVxcdTMwYzlcXHUzMGUxXFx1MzBhNFxcdTMwZjNcXHU1NDBkXFx1MzA5MlxcdTMwNGFcXHU2MzAxXFx1MzA2MVxcdTMwNjdcXHUzMDAxXFx1MzA1NFxcdTgxZWFcXHU4ZWFiXFx1MzA2ZSBXZWJcXHUzMGI1XFx1MzBhNFxcdTMwYzhcXHUzMDkyXFx1N2FjYlxcdTMwNjFcXHU0ZTBhXFx1MzA1MlxcdTMwNWZcXHUzMDQ0XFx1MzA2YVxcdTMwODlcXHUzMDAxe2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua30gXFx1MzA1N1xcdTMwNjZcXHUzMDAxV2ViXFx1MzBiNVxcdTMwYTRcXHUzMGM4XFx1MzBkM1xcdTMwZWJcXHUzMGMwXFx1MzBmY1xcdTMwODQgV2ViXFx1MzBkYlxcdTMwYjlcXHUzMGM2XFx1MzBhM1xcdTMwZjNcXHUzMGIwXFx1MzA2YVxcdTMwNjlcXHUzMDkyXFx1NTQyYlxcdTMwODBcXHUzMDRhXFx1NjI0YlxcdTk4MDNcXHUzMDZhXFx1NWYwYVxcdTc5M2VcXHU4OGZkXFx1NTRjMVxcdTMwOTJcXHUzMDU0XFx1ODlhN1xcdTMwNGZcXHUzMDYwXFx1MzA1NVxcdTMwNDRcXHUzMDAyXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIjEyMyBSZWcgXFx1MzA5MlxcdThhMmFcXHU1NTRmXCIsXCJ0ZGZzVGV4dFwiOlwiXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmMyB7ZG9tYWlufSBcXHUzMDZmXFx1OGNhOVxcdTU4ZjJcXHU0ZTJkXFx1MzA2N1xcdTMwNTlcXHUzMDAyXFx1OGNmY1xcdTUxNjVcXHUzMDU5XFx1MzA4YlxcdTMwNmJcXHUzMDZmXFx1MzAwMXthZnRlcm5pY1Bob25lMX0gXFx1MzA3ZVxcdTMwNWZcXHUzMDZmIHthZnRlcm5pY1Bob25lMn0gXFx1MzA2ZXthZnRlcm5pY1NpdGVOYW1lfVxcdTMwN2VcXHUzMDY3XFx1MzA0YVxcdTk2ZmJcXHU4YTcxXFx1MzA0ZlxcdTMwNjBcXHUzMDU1XFx1MzA0NFxcdTMwMDJcXHU4YTczXFx1N2QzMFxcdTMwNmJcXHUzMDY0XFx1MzA0NFxcdTMwNjZcXHUzMDZmXFx1MzAwMVxcdTMwNTNcXHUzMDYxXFx1MzA4OVxcdTMwOTJcXHUzMGFmXFx1MzBlYVxcdTMwYzNcXHUzMGFmXFx1MzA1N1xcdTMwNjZcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XFx1MzAwMlwiLFwiZGJzVGV4dFwiOlwiXFx1MzA2ZlxcdTMwMDFHb0RhZGR5LmNvbSBcXHUzMDZiXFx1MzA4OFxcdTMwOGFcXHU3MTIxXFx1NjU5OVxcdTMwNjdcXHUzMGQxXFx1MzBmY1xcdTMwYWRcXHUzMGYzXFx1MzBiMFxcdTMwNTVcXHUzMDhjXFx1MzA2NlxcdTMwNDRcXHUzMDdlXFx1MzA1OVxcdTMwMDJcIixcImV4cGlyZWREYnNUZXh0XCI6XCJcXHUzMDZmXFx1NjcxZlxcdTk2NTBcXHU1MjA3XFx1MzA4Y1xcdTMwNjdcXHUzMDAxR29EYWRkeS5jb20gXFx1MzA2YlxcdTMwODhcXHUzMDhhXFx1NzEyMVxcdTY1OTlcXHUzMDY3XFx1MzBkMVxcdTMwZmNcXHUzMGFkXFx1MzBmM1xcdTMwYjBcXHUzMDU1XFx1MzA4Y1xcdTMwNjZcXHUzMDQ0XFx1MzA3ZVxcdTMwNTlcXHUzMDAyXCIsXCJhdWN0aW9uVGV4dFwiOlwiXFx1MzA2ZiBHb0RhZGR5XFx1MzBhYVxcdTMwZmNcXHUzMGFmXFx1MzBiN1xcdTMwZTdcXHUzMGYzXFx1MzA2N1xcdThjZmNcXHU1MTY1XFx1NTNlZlxcdTgwZmRcXHUzMDY3XFx1MzA1OVxcdTMwMDJcIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJcXHUzMDUzXFx1MzA2ZVxcdTMwYzlcXHUzMGUxXFx1MzBhNFxcdTMwZjNcXHUzMDZmIEdvRGFkZHlcXHUzMGFhXFx1MzBmY1xcdTMwYWZcXHUzMGI3XFx1MzBlN1xcdTMwZjNcXHUzMDY3XFx1OGNmY1xcdTUxNjVcXHU1M2VmXFx1ODBmZFxcdTMwNjdcXHUzMDU5XCIsXCJjYXNocGFya2luZ1RleHRcIjpcIlxcdTMwNTNcXHUzMDZlXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTMwNmJcXHU4MjA4XFx1NTQ3M1xcdTMwNGNcXHUzMDRhXFx1MzA0MlxcdTMwOGFcXHUzMDY3XFx1MzA1OVxcdTMwNGJcXHVmZjFmXCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcIlxcdTMwNmZcXHU2NzFmXFx1OTY1MFxcdTUyMDdcXHUzMDhjXFx1MzA2N1xcdTMwMDFHb0RhZGR5XFx1MzBhYVxcdTMwZmNcXHUzMGFmXFx1MzBiN1xcdTMwZTdcXHUzMGYzXFx1MzA2N1xcdThjZmNcXHU1MTY1XFx1NTNlZlxcdTgwZmRcXHUzMDY3XFx1MzA1OVxcdTMwMDJcIixcIkdldFRoaXNEb21haW5DVEFcIjpcIlxcdTMwNTNcXHUzMDZlXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTMwOTJcXHU1M2Q2XFx1NWY5N1wiLFwiYmFja29yZGVyVGV4dFwiOlwie2RvbWFpbn0gXFx1MzA2YlxcdTgyMDhcXHU1NDczXFx1MzA5MlxcdTMwNGFcXHU2MzAxXFx1MzA2MVxcdTMwNjdcXHUzMDU5XFx1MzA0Yj9cXHUzMGM5XFx1MzBlMVxcdTMwYTRcXHUzMGYzXFx1MzBkMFxcdTMwYzNcXHUzMGFmXFx1MzBhYVxcdTMwZmNcXHUzMGMwXFx1MzBmY1xcdTMwNjdcXHU1M2Q2XFx1NWY5N1xcdTMwNTlcXHUzMDhiXFx1NjViOVxcdTZjZDVcXHUzMDkyXFx1MzA1NFxcdTg5YTdcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XFx1MzAwMlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IFxcdTMwNmVcXHU2NzA5XFx1NTJiOVxcdTY3MWZcXHU5NjUwXFx1MzA0Y1xcdTUyMDdcXHUzMDhjXFx1MzA3ZVxcdTMwNTdcXHUzMDVmXFx1MzAwMlxcdTMwYzlcXHUzMGUxXFx1MzBhNFxcdTMwZjNcXHUzMGQwXFx1MzBjM1xcdTMwYWZcXHUzMGFhXFx1MzBmY1xcdTMwYzBcXHUzMGZjXFx1MzA2N1xcdTUzZDZcXHU1Zjk3XFx1MzA1OVxcdTMwOGJcXHU2NWI5XFx1NmNkNVxcdTMwOTJcXHUzMDU0XFx1ODlhN1xcdTMwNGZcXHUzMDYwXFx1MzA1NVxcdTMwNDRcXHUzMDAyXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgIEFsbCByaWdodHMgcmVzZXJ2ZWQuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiXFx1MzBkN1xcdTMwZTlcXHUzMGE0XFx1MzBkMFxcdTMwYjdcXHUzMGZjXFx1MzBkZFxcdTMwZWFcXHUzMGI3XFx1MzBmY1wiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLkFsbCByaWdodHMgcmVzZXJ2ZWQuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiXFx1NTE0ZFxcdThjYWNcXHU0ZThiXFx1OTgwNVxcdWZmMWFcXHU2NzJjXFx1MzBiNVxcdTMwYTRcXHUzMGM4XFx1MzA2YlxcdTMwNGFcXHUzMDUxXFx1MzA4YlxcdTMwMDFcXHUzMDQ0XFx1MzA0YlxcdTMwNmFcXHUzMDhiXFx1NzI3OVxcdTViOWFcXHUzMDZlXFx1NGYxYVxcdTc5M2VcXHUzMDAxXFx1ODhmZFxcdTU0YzFcXHUzMDdlXFx1MzA1ZlxcdTMwNmZcXHUzMGI1XFx1MzBmY1xcdTMwZDNcXHUzMGI5XFx1MzA3OFxcdTMwNmVcXHU4YTAwXFx1NTNjYVxcdTMwODJcXHUzMDAxMTIzIFJlZyBMdGQgXFx1MzA2ZVxcdTdiYTFcXHU3NDA2XFx1NGUwYlxcdTMwNmJcXHUzMDZmXFx1MzA2YVxcdTMwNGZcXHUzMDAxXFx1N2IyY1xcdTRlMDlcXHU4MDA1XFx1MzA2ZVxcdTVlODNcXHU1NDRhXFx1NGUzYlxcdTMwNjhcXHUzMDZlXFx1OTVhMlxcdTkwMjNcXHUzMDdlXFx1MzA1ZlxcdTMwNmZcXHUzMDVkXFx1MzA2ZVxcdTYyN2ZcXHU4YThkXFx1MzA5MlxcdTY5Y2JcXHU2MjEwXFx1MzA3ZVxcdTMwNWZcXHUzMDZmXFx1NjY5N1xcdTc5M2FcXHUzMDU5XFx1MzA4YlxcdTMwODJcXHUzMDZlXFx1MzA2N1xcdTMwODJcXHUzMDQyXFx1MzA4YVxcdTMwN2VcXHUzMDViXFx1MzA5M1xcdTMwMDJcIixcIm93c0hlYWRpbmdcIjpcIlxcdTRlMmRcXHU1YzBmXFx1MzBkM1xcdTMwYjhcXHUzMGNkXFx1MzBiOVxcdTMwNjggI09wZW5XZVN0YW5kXFx1MzAwMlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlxcdTVmMGFcXHU3OTNlXFx1MzA2N1xcdTMwNmZcXHUzMDUzXFx1MzA2ZVxcdTU2ZjBcXHU5NmUzXFx1MzA2YVxcdTcyYjZcXHU2Y2MxXFx1NGUwYlxcdTMwNjdcXHUzMDAxXFx1NzY4NlxcdTY5ZDhcXHUzMDRhXFx1MzA4OFxcdTMwNzNcXHU3Njg2XFx1NjlkOFxcdTMwNmVcXHU0ZThiXFx1Njk2ZFxcdTMwNGNcXHU3M2ZlXFx1NTcyOFxcdTMwNmVcXHUzMGQzXFx1MzBiOFxcdTMwY2RcXHUzMGI5XFx1NzRiMFxcdTU4ODNcXHUzMDZiXFx1OTA2OVxcdTVmZGNcXHUzMDY3XFx1MzA0ZFxcdTMwOGJcXHUzMDg4XFx1MzA0NlxcdTY1MmZcXHU2M2Y0XFx1MzA1OVxcdTMwOGJcXHUzMDVmXFx1MzA4MVxcdTMwMDFcXHU1MTY4XFx1NTI5YlxcdTMwNjdcXHU1M2Q2XFx1MzA4YVxcdTdkNDRcXHUzMDkzXFx1MzA2N1xcdTMwNDRcXHUzMDdlXFx1MzA1OVxcdTMwMDJcIixcIm93c0NUQVwiOlwiXFx1OGE3M1xcdTdkMzBcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJcXHU1ZTgzXFx1NTQ0YVxcdTMwNmZcXHUzMGQ2XFx1MzBlZFxcdTMwYzNcXHUzMGFmXFx1MzA1NVxcdTMwOGNcXHUzMDY2XFx1MzA0NFxcdTMwN2VcXHUzMDU5XCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBcXHUzMDRjXFx1OGNhOVxcdTU4ZjJcXHU0ZTJkXFx1MzA2ZVxcdTUzZWZcXHU4MGZkXFx1NjAyN1xcdTMwNGNcXHUzMDQyXFx1MzA4YVxcdTMwN2VcXHUzMDU5XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTYyNDBcXHU2NzA5XFx1ODAwNVxcdTMwNmJcXHUzMDRhXFx1NTU0ZlxcdTMwNDRcXHU1NDA4XFx1MzA4ZlxcdTMwNWJcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJcXHU1NDBkXFx1NTI0ZFwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIlxcdTMwZTFcXHUzMGZjXFx1MzBlYlwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdTk2ZmJcXHU4YTcxXFx1NzU2YVxcdTUzZjdcIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJcXHUzMGIzXFx1MzBlMVxcdTMwZjNcXHUzMGM4XCIsXCJjb250YWN0T3duZXJDVEFcIjpcIlxcdTMwZTFcXHUzMGMzXFx1MzBiYlxcdTMwZmNcXHUzMGI4XFx1MzA5MlxcdTkwMDFcXHU0ZmUxXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIlxcdTk4NWVcXHU0ZjNjXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTMwOTJcXHUzMDRhXFx1NjNhMlxcdTMwNTdcXHUzMDY3XFx1MzA1OVxcdTMwNGI/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlxcdTUzYjNcXHU5MDc4XFx1MzA1NVxcdTMwOGNcXHUzMDVmXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTMwOTJcXHUzMDU0XFx1NzhiYVxcdThhOGRcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XCIsXCJBVC1CdXlcIjpcIlxcdThjZmNcXHU1MTY1XCIsXCJBVC1Qcm9tb3RlZFwiOlwiXFx1MzBkN1xcdTMwZWRcXHUzMGUyXFx1MzBmY1xcdTMwYjdcXHUzMGU3XFx1MzBmM1xcdTY3MDlcXHUzMDhhXCJ9Jyl9LDU3MjM6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBcXHUzMDRjXFx1OGNhOVxcdTU4ZjJcXHU0ZTJkXFx1MzA2ZVxcdTUzZWZcXHU4MGZkXFx1NjAyN1xcdTMwNGNcXHUzMDQyXFx1MzA4YVxcdTMwN2VcXHUzMDU5XFx1MzAwMlwiLFwiZGJzVGV4dEhlZ1wiOlwiXFx1MzA2ZlxcdTMwMDExMjMgUmVnIFxcdTMwNmJcXHUzMDg4XFx1MzA4YVxcdTcxMjFcXHU2NTk5XFx1MzA2N1xcdTMwZDFcXHUzMGZjXFx1MzBhZFxcdTMwZjNcXHUzMGIwXFx1MzA1NVxcdTMwOGNcXHUzMDY2XFx1MzA0NFxcdTMwN2VcXHUzMDU5XFx1MzAwMlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcIlxcdTMwNmZcXHU2NzFmXFx1OTY1MFxcdTUyMDdcXHUzMDhjXFx1MzA2N1xcdTMwMDExMjMgUmVnIFxcdTMwNmJcXHUzMDg4XFx1MzA4YVxcdTcxMjFcXHU2NTk5XFx1MzA2N1xcdTMwZDFcXHUzMGZjXFx1MzBhZFxcdTMwZjNcXHUzMGIwXFx1MzA1NVxcdTMwOGNcXHUzMDY2XFx1MzA0NFxcdTMwN2VcXHUzMDU5XFx1MzAwMlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcIlxcdTMwNmYgR29EYWRkeVxcdTMwYWFcXHUzMGZjXFx1MzBhZlxcdTMwYjdcXHUzMGU3XFx1MzBmM1xcdTMwNjdcXHU4Y2ZjXFx1NTE2NVxcdTUzZWZcXHU4MGZkXFx1MzA2N1xcdTMwNTlcXHUzMDAyXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiXFx1MzA1M1xcdTMwNmVcXHUzMGM5XFx1MzBlMVxcdTMwYTRcXHUzMGYzXFx1MzA2ZiBHb0RhZGR5XFx1MzBhYVxcdTMwZmNcXHUzMGFmXFx1MzBiN1xcdTMwZTdcXHUzMGYzXFx1MzA2N1xcdThjZmNcXHU1MTY1XFx1NTNlZlxcdTgwZmRcXHUzMDY3XFx1MzA1OVwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJcXHUzMDZmXFx1NjcxZlxcdTk2NTBcXHU1MjA3XFx1MzA4Y1xcdTMwNjdcXHUzMDAxR29EYWRkeVxcdTMwYWFcXHUzMGZjXFx1MzBhZlxcdTMwYjdcXHUzMGU3XFx1MzBmM1xcdTMwNjdcXHU4Y2ZjXFx1NTE2NVxcdTUzZWZcXHU4MGZkXFx1MzA2N1xcdTMwNTlcXHUzMDAyXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJcXHUzMDUzXFx1MzA2ZVxcdTMwYzlcXHUzMGUxXFx1MzBhNFxcdTMwZjNcXHU1NDBkXFx1MzA5MlxcdTMwNGFcXHU2MzAxXFx1MzA2MVxcdTMwNjdcXHUzMDAxXFx1MzA1NFxcdTgxZWFcXHU4ZWFiXFx1MzA2ZSBXZWJcXHUzMGI1XFx1MzBhNFxcdTMwYzhcXHUzMDkyXFx1N2FjYlxcdTMwNjFcXHU0ZTBhXFx1MzA1MlxcdTMwNWZcXHUzMDQ0XFx1MzA2YVxcdTMwODlcXHUzMDAxe2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua30gXFx1MzA1N1xcdTMwNjZcXHUzMDAxV2ViXFx1MzBiNVxcdTMwYTRcXHUzMGM4XFx1MzBkM1xcdTMwZWJcXHUzMGMwXFx1MzBmY1xcdTMwODQgV2ViXFx1MzBkYlxcdTMwYjlcXHUzMGM2XFx1MzBhM1xcdTMwZjNcXHUzMGIwXFx1MzA2YVxcdTMwNjlcXHUzMDkyXFx1NTQyYlxcdTMwODBcXHUzMDRhXFx1NjI0YlxcdTk4MDNcXHUzMDZhXFx1NWYwYVxcdTc5M2VcXHU4OGZkXFx1NTRjMVxcdTMwOTJcXHUzMDU0XFx1ODlhN1xcdTMwNGZcXHUzMDYwXFx1MzA1NVxcdTMwNDRcXHUzMDAyXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIjEyMyBSZWcgXFx1MzA5MlxcdThhMmFcXHU1NTRmXCIsXCJ0ZGZzVGV4dFwiOlwiXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmMyB7ZG9tYWlufSBcXHUzMDZmXFx1OGNhOVxcdTU4ZjJcXHU0ZTJkXFx1MzA2N1xcdTMwNTlcXHUzMDAyXFx1OGNmY1xcdTUxNjVcXHUzMDU5XFx1MzA4YlxcdTMwNmJcXHUzMDZmXFx1MzAwMXthZnRlcm5pY1Bob25lMX0gXFx1MzA3ZVxcdTMwNWZcXHUzMDZmIHthZnRlcm5pY1Bob25lMn0gXFx1MzA2ZXthZnRlcm5pY1NpdGVOYW1lfVxcdTMwN2VcXHUzMDY3XFx1MzA0YVxcdTk2ZmJcXHU4YTcxXFx1MzA0ZlxcdTMwNjBcXHUzMDU1XFx1MzA0NFxcdTMwMDJcXHU4YTczXFx1N2QzMFxcdTMwNmJcXHUzMDY0XFx1MzA0NFxcdTMwNjZcXHUzMDZmXFx1MzAwMVxcdTMwNTNcXHUzMDYxXFx1MzA4OVxcdTMwOTJcXHUzMGFmXFx1MzBlYVxcdTMwYzNcXHUzMGFmXFx1MzA1N1xcdTMwNjZcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XFx1MzAwMlwiLFwiZGJzVGV4dFwiOlwiXFx1MzA2ZlxcdTMwMDFHb0RhZGR5LmNvbSBcXHUzMDZiXFx1MzA4OFxcdTMwOGFcXHU3MTIxXFx1NjU5OVxcdTMwNjdcXHUzMGQxXFx1MzBmY1xcdTMwYWRcXHUzMGYzXFx1MzBiMFxcdTMwNTVcXHUzMDhjXFx1MzA2NlxcdTMwNDRcXHUzMDdlXFx1MzA1OVxcdTMwMDJcIixcImV4cGlyZWREYnNUZXh0XCI6XCJcXHUzMDZmXFx1NjcxZlxcdTk2NTBcXHU1MjA3XFx1MzA4Y1xcdTMwNjdcXHUzMDAxR29EYWRkeS5jb20gXFx1MzA2YlxcdTMwODhcXHUzMDhhXFx1NzEyMVxcdTY1OTlcXHUzMDY3XFx1MzBkMVxcdTMwZmNcXHUzMGFkXFx1MzBmM1xcdTMwYjBcXHUzMDU1XFx1MzA4Y1xcdTMwNjZcXHUzMDQ0XFx1MzA3ZVxcdTMwNTlcXHUzMDAyXCIsXCJhdWN0aW9uVGV4dFwiOlwiXFx1MzA2ZiBHb0RhZGR5XFx1MzBhYVxcdTMwZmNcXHUzMGFmXFx1MzBiN1xcdTMwZTdcXHUzMGYzXFx1MzA2N1xcdThjZmNcXHU1MTY1XFx1NTNlZlxcdTgwZmRcXHUzMDY3XFx1MzA1OVxcdTMwMDJcIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJcXHUzMDUzXFx1MzA2ZVxcdTMwYzlcXHUzMGUxXFx1MzBhNFxcdTMwZjNcXHUzMDZmIEdvRGFkZHlcXHUzMGFhXFx1MzBmY1xcdTMwYWZcXHUzMGI3XFx1MzBlN1xcdTMwZjNcXHUzMDY3XFx1OGNmY1xcdTUxNjVcXHU1M2VmXFx1ODBmZFxcdTMwNjdcXHUzMDU5XCIsXCJjYXNocGFya2luZ1RleHRcIjpcIlxcdTMwNTNcXHUzMDZlXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTMwNmJcXHU4MjA4XFx1NTQ3M1xcdTMwNGNcXHUzMDRhXFx1MzA0MlxcdTMwOGFcXHUzMDY3XFx1MzA1OVxcdTMwNGJcXHVmZjFmXCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcIlxcdTMwNmZcXHU2NzFmXFx1OTY1MFxcdTUyMDdcXHUzMDhjXFx1MzA2N1xcdTMwMDFHb0RhZGR5XFx1MzBhYVxcdTMwZmNcXHUzMGFmXFx1MzBiN1xcdTMwZTdcXHUzMGYzXFx1MzA2N1xcdThjZmNcXHU1MTY1XFx1NTNlZlxcdTgwZmRcXHUzMDY3XFx1MzA1OVxcdTMwMDJcIixcIkdldFRoaXNEb21haW5DVEFcIjpcIlxcdTMwNTNcXHUzMDZlXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTMwOTJcXHU1M2Q2XFx1NWY5N1wiLFwiYmFja29yZGVyVGV4dFwiOlwie2RvbWFpbn0gXFx1MzA2YlxcdTgyMDhcXHU1NDczXFx1MzA5MlxcdTMwNGFcXHU2MzAxXFx1MzA2MVxcdTMwNjdcXHUzMDU5XFx1MzA0Yj9cXHUzMGM5XFx1MzBlMVxcdTMwYTRcXHUzMGYzXFx1MzBkMFxcdTMwYzNcXHUzMGFmXFx1MzBhYVxcdTMwZmNcXHUzMGMwXFx1MzBmY1xcdTMwNjdcXHU1M2Q2XFx1NWY5N1xcdTMwNTlcXHUzMDhiXFx1NjViOVxcdTZjZDVcXHUzMDkyXFx1MzA1NFxcdTg5YTdcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XFx1MzAwMlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IFxcdTMwNmVcXHU2NzA5XFx1NTJiOVxcdTY3MWZcXHU5NjUwXFx1MzA0Y1xcdTUyMDdcXHUzMDhjXFx1MzA3ZVxcdTMwNTdcXHUzMDVmXFx1MzAwMlxcdTMwYzlcXHUzMGUxXFx1MzBhNFxcdTMwZjNcXHUzMGQwXFx1MzBjM1xcdTMwYWZcXHUzMGFhXFx1MzBmY1xcdTMwYzBcXHUzMGZjXFx1MzA2N1xcdTUzZDZcXHU1Zjk3XFx1MzA1OVxcdTMwOGJcXHU2NWI5XFx1NmNkNVxcdTMwOTJcXHUzMDU0XFx1ODlhN1xcdTMwNGZcXHUzMDYwXFx1MzA1NVxcdTMwNDRcXHUzMDAyXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgIEFsbCByaWdodHMgcmVzZXJ2ZWQuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiXFx1MzBkN1xcdTMwZTlcXHUzMGE0XFx1MzBkMFxcdTMwYjdcXHUzMGZjXFx1MzBkZFxcdTMwZWFcXHUzMGI3XFx1MzBmY1wiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLkFsbCByaWdodHMgcmVzZXJ2ZWQuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiXFx1NTE0ZFxcdThjYWNcXHU0ZThiXFx1OTgwNVxcdWZmMWFcXHU2NzJjXFx1MzBiNVxcdTMwYTRcXHUzMGM4XFx1MzA2YlxcdTMwNGFcXHUzMDUxXFx1MzA4YlxcdTMwMDFcXHUzMDQ0XFx1MzA0YlxcdTMwNmFcXHUzMDhiXFx1NzI3OVxcdTViOWFcXHUzMDZlXFx1NGYxYVxcdTc5M2VcXHUzMDAxXFx1ODhmZFxcdTU0YzFcXHUzMDdlXFx1MzA1ZlxcdTMwNmZcXHUzMGI1XFx1MzBmY1xcdTMwZDNcXHUzMGI5XFx1MzA3OFxcdTMwNmVcXHU4YTAwXFx1NTNjYVxcdTMwODJcXHUzMDAxMTIzIFJlZyBMdGQgXFx1MzA2ZVxcdTdiYTFcXHU3NDA2XFx1NGUwYlxcdTMwNmJcXHUzMDZmXFx1MzA2YVxcdTMwNGZcXHUzMDAxXFx1N2IyY1xcdTRlMDlcXHU4MDA1XFx1MzA2ZVxcdTVlODNcXHU1NDRhXFx1NGUzYlxcdTMwNjhcXHUzMDZlXFx1OTVhMlxcdTkwMjNcXHUzMDdlXFx1MzA1ZlxcdTMwNmZcXHUzMDVkXFx1MzA2ZVxcdTYyN2ZcXHU4YThkXFx1MzA5MlxcdTY5Y2JcXHU2MjEwXFx1MzA3ZVxcdTMwNWZcXHUzMDZmXFx1NjY5N1xcdTc5M2FcXHUzMDU5XFx1MzA4YlxcdTMwODJcXHUzMDZlXFx1MzA2N1xcdTMwODJcXHUzMDQyXFx1MzA4YVxcdTMwN2VcXHUzMDViXFx1MzA5M1xcdTMwMDJcIixcIm93c0hlYWRpbmdcIjpcIlxcdTRlMmRcXHU1YzBmXFx1MzBkM1xcdTMwYjhcXHUzMGNkXFx1MzBiOVxcdTMwNjggI09wZW5XZVN0YW5kXFx1MzAwMlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlxcdTVmMGFcXHU3OTNlXFx1MzA2N1xcdTMwNmZcXHUzMDUzXFx1MzA2ZVxcdTU2ZjBcXHU5NmUzXFx1MzA2YVxcdTcyYjZcXHU2Y2MxXFx1NGUwYlxcdTMwNjdcXHUzMDAxXFx1NzY4NlxcdTY5ZDhcXHUzMDRhXFx1MzA4OFxcdTMwNzNcXHU3Njg2XFx1NjlkOFxcdTMwNmVcXHU0ZThiXFx1Njk2ZFxcdTMwNGNcXHU3M2ZlXFx1NTcyOFxcdTMwNmVcXHUzMGQzXFx1MzBiOFxcdTMwY2RcXHUzMGI5XFx1NzRiMFxcdTU4ODNcXHUzMDZiXFx1OTA2OVxcdTVmZGNcXHUzMDY3XFx1MzA0ZFxcdTMwOGJcXHUzMDg4XFx1MzA0NlxcdTY1MmZcXHU2M2Y0XFx1MzA1OVxcdTMwOGJcXHUzMDVmXFx1MzA4MVxcdTMwMDFcXHU1MTY4XFx1NTI5YlxcdTMwNjdcXHU1M2Q2XFx1MzA4YVxcdTdkNDRcXHUzMDkzXFx1MzA2N1xcdTMwNDRcXHUzMDdlXFx1MzA1OVxcdTMwMDJcIixcIm93c0NUQVwiOlwiXFx1OGE3M1xcdTdkMzBcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJcXHU1ZTgzXFx1NTQ0YVxcdTMwNmZcXHUzMGQ2XFx1MzBlZFxcdTMwYzNcXHUzMGFmXFx1MzA1NVxcdTMwOGNcXHUzMDY2XFx1MzA0NFxcdTMwN2VcXHUzMDU5XCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBcXHUzMDRjXFx1OGNhOVxcdTU4ZjJcXHU0ZTJkXFx1MzA2ZVxcdTUzZWZcXHU4MGZkXFx1NjAyN1xcdTMwNGNcXHUzMDQyXFx1MzA4YVxcdTMwN2VcXHUzMDU5XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTYyNDBcXHU2NzA5XFx1ODAwNVxcdTMwNmJcXHUzMDRhXFx1NTU0ZlxcdTMwNDRcXHU1NDA4XFx1MzA4ZlxcdTMwNWJcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJcXHU1NDBkXFx1NTI0ZFwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIlxcdTMwZTFcXHUzMGZjXFx1MzBlYlwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdTk2ZmJcXHU4YTcxXFx1NzU2YVxcdTUzZjdcIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJcXHUzMGIzXFx1MzBlMVxcdTMwZjNcXHUzMGM4XCIsXCJjb250YWN0T3duZXJDVEFcIjpcIlxcdTMwZTFcXHUzMGMzXFx1MzBiYlxcdTMwZmNcXHUzMGI4XFx1MzA5MlxcdTkwMDFcXHU0ZmUxXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIlxcdTk4NWVcXHU0ZjNjXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTMwOTJcXHUzMDRhXFx1NjNhMlxcdTMwNTdcXHUzMDY3XFx1MzA1OVxcdTMwNGI/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlxcdTUzYjNcXHU5MDc4XFx1MzA1NVxcdTMwOGNcXHUzMDVmXFx1MzBjOVxcdTMwZTFcXHUzMGE0XFx1MzBmM1xcdTMwOTJcXHUzMDU0XFx1NzhiYVxcdThhOGRcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XCIsXCJBVC1CdXlcIjpcIlxcdThjZmNcXHU1MTY1XCIsXCJBVC1Qcm9tb3RlZFwiOlwiXFx1MzBkN1xcdTMwZWRcXHUzMGUyXFx1MzBmY1xcdTMwYjdcXHUzMGU3XFx1MzBmM1xcdTY3MDlcXHUzMDhhXCJ9Jyl9LDc2Njc6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufVxcdWM3NzQoXFx1YWMwMCkgXFx1ZDMxMFxcdWI5ZTQgXFx1YzkxMVxcdWM3N2MgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0IVwiLFwiZGJzVGV4dEhlZ1wiOlwiMTIzIFJlZ1xcdWM1ZDBcXHVjMTFjIFxcdWJiMzRcXHViOGNjIFxcdWM4MWNcXHVhY2Y1XFx1YjQxOFxcdWIyOTQgXFx1YzExY1xcdWJlNDRcXHVjMmE0XFx1Yjg1YyBcXHViYjM0XFx1YjhjY1xcdWI4NWMgXFx1ZDMwY1xcdWQwYjlcXHViNDI5XFx1YjJjOFxcdWIyZTQuXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiMTIzIFJlZ1xcdWM1ZDBcXHVjMTFjIFxcdWJiMzRcXHViOGNjIFxcdWM4MWNcXHVhY2Y1XFx1YjQxOFxcdWIyOTQgXFx1YzExY1xcdWJlNDRcXHVjMmE0XFx1Yjg1YyBcXHViOWNjXFx1YjhjY1xcdWI0MThcXHVjNWM4XFx1YzczY1xcdWJhNzAgXFx1YmIzNFxcdWI4Y2NcXHViODVjIFxcdWQzMGNcXHVkMGI5XFx1YjQyOVxcdWIyYzhcXHViMmU0LlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcIkdvRGFkZHkgXFx1YWNiZFxcdWI5ZTRcXHVjNWQwXFx1YzExYyBcXHVhZDZjXFx1YjllNFxcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlxcdWM3NzQgXFx1YjNjNFxcdWJhNTRcXHVjNzc4XFx1Yzc0MCBHb0RhZGR5IFxcdWFjYmRcXHViOWU0XFx1YzVkMFxcdWMxMWMgXFx1YWQ2Y1xcdWI5ZTRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiXFx1YjljY1xcdWI4Y2NcXHViNDE4XFx1YzVjOFxcdWM3M2NcXHViYTcwIEdvRGFkZHkgXFx1YWNiZFxcdWI5ZTRcXHVjNWQwXFx1YzExYyBcXHVhZDZjXFx1YjllNFxcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiXFx1Yzc3NCBcXHViM2M0XFx1YmE1NFxcdWM3NzggXFx1Yzc3NFxcdWI5ODRcXHVjNzQ0IFxcdWMxOGNcXHVjNzIwXFx1ZDU1OFxcdWFjZTAgXFx1Yzc4OFxcdWFjZTAgXFx1Yzc5MFxcdWMyZTBcXHVjNzU4IFxcdWM2ZjlcXHVjMGFjXFx1Yzc3NFxcdWQyYjhcXHViOTdjIFxcdWM2YjRcXHVjNjAxXFx1ZDU1OFxcdWFjZTAgXFx1YzJmNlxcdWM3NDAgXFx1YWNiZFxcdWM2YjAge2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua31cXHVkNTU4XFx1YzVlYyBcXHVjNmY5XFx1YzBhY1xcdWM3NzRcXHVkMmI4IFxcdWJlNGNcXHViMzU0LCBcXHVjNmY5IFxcdWQ2MzhcXHVjMmE0XFx1ZDMwNSBcXHViNGYxXFx1Yzc3NCBcXHVkM2VjXFx1ZDU2OFxcdWI0MWMgXFx1YjJlNFxcdWM1OTFcXHVkNTVjIFxcdWM4MDBcXHViODM0XFx1ZDU1YyBcXHVjODFjXFx1ZDQ4OFxcdWM3NDQgXFx1ZDY1NVxcdWM3NzhcXHVkNTU4XFx1YzEzOFxcdWM2OTQhXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIjEyMyBSZWdcXHViOTdjIFxcdWJjMjlcXHViYjM4XFx1ZDU1OFxcdWM1ZWNcIixcInRkZnNUZXh0XCI6XCJ7ZG9tYWlufSBcXHViM2M0XFx1YmE1NFxcdWM3NzhcXHVjNzQwIFxcdWQzMTBcXHViOWU0IFxcdWM5MTFcXHVjNzg1XFx1YjJjOFxcdWIyZTQuIFxcdWFkNmNcXHViOWU0XFx1ZDU1OFxcdWI4MjRcXHViYTc0IHthZnRlcm5pY1Bob25lMX0gXFx1YjYxMFxcdWIyOTQge2FmdGVybmljUGhvbmUyfSBcXHViYzg4XFx1YzczY1xcdWI4NWMge2FmdGVybmljU2l0ZU5hbWV9XFx1YzVkMCBcXHViYjM4XFx1Yzc1OFxcdWQ1NThcXHVjMmRjXFx1YWUzMCBcXHViYzE0XFx1Yjc4ZFxcdWIyYzhcXHViMmU0LiBcXHViMzU0IFxcdWM3OTBcXHVjMTM4XFx1ZDU1YyBcXHViMGI0XFx1YzZhOVxcdWM3NDQgXFx1YzZkMFxcdWQ1NThcXHVjMmRjXFx1YmE3NCBcXHVjNWVjXFx1YWUzMFxcdWI5N2MgXFx1ZDA3NFxcdWI5YWRcXHVkNTU4XFx1YzEzOFxcdWM2OTQuXCIsXCJkYnNUZXh0XCI6XCJHb0RhZGR5LmNvbVxcdWM1ZDBcXHVjMTFjIFxcdWJiMzRcXHViOGNjIFxcdWM4MWNcXHVhY2Y1XFx1YjQxOFxcdWIyOTQgXFx1YzExY1xcdWJlNDRcXHVjMmE0XFx1Yjg1YyBcXHViYjM0XFx1YjhjY1xcdWI4NWMgXFx1ZDMwY1xcdWQwYjlcXHViNDI5XFx1YjJjOFxcdWIyZTQuXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiXFx1YjljY1xcdWI4Y2NcXHViNDE4XFx1YzVjOFxcdWM3M2NcXHViYTcwIEdvRGFkZHkuY29tXFx1YzVkMFxcdWMxMWMgXFx1YmIzNFxcdWI4Y2MgXFx1YzgxY1xcdWFjZjVcXHViNDE4XFx1YjI5NCBcXHVjMTFjXFx1YmU0NFxcdWMyYTRcXHViODVjIFxcdWJiMzRcXHViOGNjXFx1Yjg1YyBcXHVkMzBjXFx1ZDBiOVxcdWI0MjlcXHViMmM4XFx1YjJlNC5cIixcImF1Y3Rpb25UZXh0XCI6XCJHb0RhZGR5IFxcdWFjYmRcXHViOWU0XFx1YzVkMFxcdWMxMWMgXFx1YWQ2Y1xcdWI5ZTRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJcXHVjNzc0IFxcdWIzYzRcXHViYTU0XFx1Yzc3OFxcdWM3NDAgR29EYWRkeSBcXHVhY2JkXFx1YjllNFxcdWM1ZDBcXHVjMTFjIFxcdWFkNmNcXHViOWU0XFx1ZDU2MCBcXHVjMjE4IFxcdWM3ODhcXHVjMmI1XFx1YjJjOFxcdWIyZTQuXCIsXCJjYXNocGFya2luZ1RleHRcIjpcIlxcdWM3NzQgXFx1YjNjNFxcdWJhNTRcXHVjNzc4XFx1YzVkMCBcXHVhZDAwXFx1YzJlY1xcdWM3NzQgXFx1Yzc4OFxcdWM3M2NcXHVjMmUwXFx1YWMwMFxcdWM2OTQ/XCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcIlxcdWI5Y2NcXHViOGNjXFx1YjQxOFxcdWM1YzhcXHVjNzNjXFx1YmE3MCBHb0RhZGR5IFxcdWFjYmRcXHViOWU0XFx1YzVkMFxcdWMxMWMgXFx1YWQ2Y1xcdWI5ZTRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcIkdldFRoaXNEb21haW5DVEFcIjpcIlxcdWM3NzQgXFx1YjNjNFxcdWJhNTRcXHVjNzc4IFxcdWQ2NTVcXHViY2Y0XCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufVxcdWM1ZDAgXFx1YWQwMFxcdWMyZWMgXFx1Yzc4OFxcdWM3M2NcXHVjMmUwXFx1YWMwMFxcdWM2OTQ/IFxcdWIzYzRcXHViYTU0XFx1Yzc3OCBcXHVjNjA4XFx1YzU3ZCBcXHVjOGZjXFx1YmIzOFxcdWM3M2NcXHViODVjIFxcdWQxYjVcXHVkNTc0IFxcdWFkNmNcXHViOWU0XFx1ZDU2MCBcXHVjMjE4IFxcdWM3ODhcXHViMjk0IFxcdWJjMjlcXHViYzk1XFx1Yzc0NCBcXHVjNTRjXFx1YzU0NFxcdWJjZjRcXHVjMTM4XFx1YzY5NC5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufVxcdWM3NzQoXFx1YWMwMCkgXFx1YjljY1xcdWI4Y2NcXHViNDE4XFx1YzVjOFxcdWMyYjVcXHViMmM4XFx1YjJlNC4gXFx1YjNjNFxcdWJhNTRcXHVjNzc4IFxcdWM2MDhcXHVjNTdkIFxcdWM4ZmNcXHViYjM4XFx1YzczY1xcdWI4NWMgXFx1ZDFiNVxcdWQ1NzQgXFx1YWQ2Y1xcdWI5ZTRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWIyOTQgXFx1YmMyOVxcdWJjOTVcXHVjNzQ0IFxcdWM1NGNcXHVjNTQ0XFx1YmNmNFxcdWMxMzhcXHVjNjk0LlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IFxcdWJhYThcXHViNGUwIFxcdWFkOGNcXHViOWFjIFxcdWJjZjRcXHVjNzIwLlwiLFwicHJpdmFjeVBvbGljeVRleHRcIjpcIlxcdWFjMWNcXHVjNzc4XFx1YzgxNVxcdWJjZjQgXFx1Y2RlOFxcdWFlMDlcXHViYzI5XFx1Y2U2OFwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIlxcdWJhNzRcXHVjYzQ1IFxcdWM4NzBcXHVkNTZkOiBcXHViY2Y4IFxcdWMwYWNcXHVjNzc0XFx1ZDJiOFxcdWM3NTggXFx1ZDJiOVxcdWM4MTUgXFx1ZDY4Y1xcdWMwYWMsIFxcdWM4MWNcXHVkNDg4IFxcdWI2MTBcXHViMjk0IFxcdWMxMWNcXHViZTQ0XFx1YzJhNFxcdWM1ZDAgXFx1YjMwMFxcdWQ1NWMgXFx1YzViOFxcdWFlMDlcXHVjNzQwIDEyMyBSZWcgTHRkXFx1YWMwMCBcXHVkMWI1XFx1YzgxY1xcdWQ1NThcXHVjOWMwIFxcdWM1NGFcXHVjNzNjXFx1YmE3MCwgXFx1YzgxYzNcXHVjNzkwIFxcdWFkMTFcXHVhY2UwXFx1YzhmY1xcdWM2NDBcXHVjNzU4IFxcdWFkMDBcXHVhY2M0XFx1Yjk3YyBcXHVhZDZjXFx1YzEzMVxcdWQ1NThcXHVhYzcwXFx1YjA5OCBcXHViY2Y0XFx1Yzk5ZFxcdWQ1NjhcXHVjNzQ0IFxcdWM3NThcXHViYmY4XFx1ZDU1OFxcdWM5YzAgXFx1YzU0YVxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcIm93c0hlYWRpbmdcIjpcIlxcdWMxOGNcXHVhZGRjXFx1YmFhOCBcXHViZTQ0XFx1Yzk4OFxcdWIyYzhcXHVjMmE0XFx1YzY0MCBcXHVkNTY4XFx1YWVkOFxcdWQ1NThcXHViMjk0ICNPcGVuV2VTdGFuZC5cIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJcXHVjNzc0IFxcdWQ3OThcXHVhY2E4XFx1YzZiNCBcXHVjMmRjXFx1YWMwNCBcXHViM2Q5XFx1YzU0OCBcXHViMmY5XFx1YzBhY1xcdWIyOTQgXFx1YWRjMFxcdWQ1NThcXHVjNjQwIFxcdWFkYzBcXHVkNTU4XFx1Yzc1OCBcXHViZTQ0XFx1Yzk4OFxcdWIyYzhcXHVjMmE0XFx1YWMwMCBcXHVjNzA0XFx1YWUzMFxcdWI5N2MgXFx1YjMwMFxcdWNjOThcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWIzYzRcXHViODVkIFxcdWJhYThcXHViNGUwIFxcdWM5YzBcXHVjNmQwXFx1Yzc0NCBcXHViMmU0XFx1ZDU1OFxcdWFjZTAgXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcIm93c0NUQVwiOlwiXFx1Yzc5MFxcdWMxMzhcXHVkNzg4IFxcdWM1NGNcXHVjNTQ0XFx1YmNmNFxcdWFlMzBcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJcXHVhZDExXFx1YWNlMFxcdWFjMDAgXFx1Y2MyOFxcdWIyZThcXHViNDE4XFx1YzVjOFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcImNvbnRhY3RPd25lclRleHRcIjpcIntkb21haW59XFx1Yzc3NChcXHVhYzAwKSBcXHVkMzEwXFx1YjllNCBcXHVjOTExXFx1Yzc3YyBcXHVjMjE4IFxcdWM3ODhcXHVjMmI1XFx1YjJjOFxcdWIyZTQuXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1YjNjNFxcdWJhNTRcXHVjNzc4IFxcdWMxOGNcXHVjNzIwXFx1Yzc5MFxcdWM1ZDBcXHVhYzhjIFxcdWJiMzhcXHVjNzU4XCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJcXHVjNzc0XFx1Yjk4NFwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIlxcdWM3NzRcXHViYTU0XFx1Yzc3Y1wiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdWM4MDRcXHVkNjU0XCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiXFx1Yzc1OFxcdWFjYWNcIixcImNvbnRhY3RPd25lckNUQVwiOlwiXFx1YmE1NFxcdWMyZGNcXHVjOWMwIFxcdWJjZjRcXHViMGI0XFx1YWUzMFwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJcXHVjNzIwXFx1YzBhY1xcdWQ1NWMgXFx1YjNjNFxcdWJhNTRcXHVjNzc4XFx1Yzc0NCBcXHVjYzNlXFx1YWNlMCBcXHVhY2M0XFx1YzJlMFxcdWFjMDBcXHVjNjk0P1wiLFwiQVQtQ2hlY2tPdXRUaGVzZVRvcFBpY2tzXCI6XCJcXHVjMGMxXFx1YzcwNCBcXHVjZDk0XFx1Y2M5YyBcXHVkNTZkXFx1YmFhOVxcdWM3NDQgXFx1ZDY1NVxcdWM3NzhcXHVkNTc0IFxcdWJjZjRcXHVjMTM4XFx1YzY5NFwiLFwiQVQtQnV5XCI6XCJcXHVhZDZjXFx1YjllNFwiLFwiQVQtUHJvbW90ZWRcIjpcIlxcdWQ1MDRcXHViODVjXFx1YmFhOFxcdWMxNThcXHViNDI4XCJ9Jyl9LDMzNTU6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufVxcdWM3NzQoXFx1YWMwMCkgXFx1ZDMxMFxcdWI5ZTQgXFx1YzkxMVxcdWM3N2MgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0IVwiLFwiZGJzVGV4dEhlZ1wiOlwiMTIzIFJlZ1xcdWM1ZDBcXHVjMTFjIFxcdWJiMzRcXHViOGNjIFxcdWM4MWNcXHVhY2Y1XFx1YjQxOFxcdWIyOTQgXFx1YzExY1xcdWJlNDRcXHVjMmE0XFx1Yjg1YyBcXHViYjM0XFx1YjhjY1xcdWI4NWMgXFx1ZDMwY1xcdWQwYjlcXHViNDI5XFx1YjJjOFxcdWIyZTQuXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiMTIzIFJlZ1xcdWM1ZDBcXHVjMTFjIFxcdWJiMzRcXHViOGNjIFxcdWM4MWNcXHVhY2Y1XFx1YjQxOFxcdWIyOTQgXFx1YzExY1xcdWJlNDRcXHVjMmE0XFx1Yjg1YyBcXHViOWNjXFx1YjhjY1xcdWI0MThcXHVjNWM4XFx1YzczY1xcdWJhNzAgXFx1YmIzNFxcdWI4Y2NcXHViODVjIFxcdWQzMGNcXHVkMGI5XFx1YjQyOVxcdWIyYzhcXHViMmU0LlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcIkdvRGFkZHkgXFx1YWNiZFxcdWI5ZTRcXHVjNWQwXFx1YzExYyBcXHVhZDZjXFx1YjllNFxcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlxcdWM3NzQgXFx1YjNjNFxcdWJhNTRcXHVjNzc4XFx1Yzc0MCBHb0RhZGR5IFxcdWFjYmRcXHViOWU0XFx1YzVkMFxcdWMxMWMgXFx1YWQ2Y1xcdWI5ZTRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiXFx1YjljY1xcdWI4Y2NcXHViNDE4XFx1YzVjOFxcdWM3M2NcXHViYTcwIEdvRGFkZHkgXFx1YWNiZFxcdWI5ZTRcXHVjNWQwXFx1YzExYyBcXHVhZDZjXFx1YjllNFxcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiXFx1Yzc3NCBcXHViM2M0XFx1YmE1NFxcdWM3NzggXFx1Yzc3NFxcdWI5ODRcXHVjNzQ0IFxcdWMxOGNcXHVjNzIwXFx1ZDU1OFxcdWFjZTAgXFx1Yzc4OFxcdWFjZTAgXFx1Yzc5MFxcdWMyZTBcXHVjNzU4IFxcdWM2ZjlcXHVjMGFjXFx1Yzc3NFxcdWQyYjhcXHViOTdjIFxcdWM2YjRcXHVjNjAxXFx1ZDU1OFxcdWFjZTAgXFx1YzJmNlxcdWM3NDAgXFx1YWNiZFxcdWM2YjAge2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua31cXHVkNTU4XFx1YzVlYyBcXHVjNmY5XFx1YzBhY1xcdWM3NzRcXHVkMmI4IFxcdWJlNGNcXHViMzU0LCBcXHVjNmY5IFxcdWQ2MzhcXHVjMmE0XFx1ZDMwNSBcXHViNGYxXFx1Yzc3NCBcXHVkM2VjXFx1ZDU2OFxcdWI0MWMgXFx1YjJlNFxcdWM1OTFcXHVkNTVjIFxcdWM4MDBcXHViODM0XFx1ZDU1YyBcXHVjODFjXFx1ZDQ4OFxcdWM3NDQgXFx1ZDY1NVxcdWM3NzhcXHVkNTU4XFx1YzEzOFxcdWM2OTQhXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIjEyMyBSZWdcXHViOTdjIFxcdWJjMjlcXHViYjM4XFx1ZDU1OFxcdWM1ZWNcIixcInRkZnNUZXh0XCI6XCJ7ZG9tYWlufSBcXHViM2M0XFx1YmE1NFxcdWM3NzhcXHVjNzQwIFxcdWQzMTBcXHViOWU0IFxcdWM5MTFcXHVjNzg1XFx1YjJjOFxcdWIyZTQuIFxcdWFkNmNcXHViOWU0XFx1ZDU1OFxcdWI4MjRcXHViYTc0IHthZnRlcm5pY1Bob25lMX0gXFx1YjYxMFxcdWIyOTQge2FmdGVybmljUGhvbmUyfSBcXHViYzg4XFx1YzczY1xcdWI4NWMge2FmdGVybmljU2l0ZU5hbWV9XFx1YzVkMCBcXHViYjM4XFx1Yzc1OFxcdWQ1NThcXHVjMmRjXFx1YWUzMCBcXHViYzE0XFx1Yjc4ZFxcdWIyYzhcXHViMmU0LiBcXHViMzU0IFxcdWM3OTBcXHVjMTM4XFx1ZDU1YyBcXHViMGI0XFx1YzZhOVxcdWM3NDQgXFx1YzZkMFxcdWQ1NThcXHVjMmRjXFx1YmE3NCBcXHVjNWVjXFx1YWUzMFxcdWI5N2MgXFx1ZDA3NFxcdWI5YWRcXHVkNTU4XFx1YzEzOFxcdWM2OTQuXCIsXCJkYnNUZXh0XCI6XCJHb0RhZGR5LmNvbVxcdWM1ZDBcXHVjMTFjIFxcdWJiMzRcXHViOGNjIFxcdWM4MWNcXHVhY2Y1XFx1YjQxOFxcdWIyOTQgXFx1YzExY1xcdWJlNDRcXHVjMmE0XFx1Yjg1YyBcXHViYjM0XFx1YjhjY1xcdWI4NWMgXFx1ZDMwY1xcdWQwYjlcXHViNDI5XFx1YjJjOFxcdWIyZTQuXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiXFx1YjljY1xcdWI4Y2NcXHViNDE4XFx1YzVjOFxcdWM3M2NcXHViYTcwIEdvRGFkZHkuY29tXFx1YzVkMFxcdWMxMWMgXFx1YmIzNFxcdWI4Y2MgXFx1YzgxY1xcdWFjZjVcXHViNDE4XFx1YjI5NCBcXHVjMTFjXFx1YmU0NFxcdWMyYTRcXHViODVjIFxcdWJiMzRcXHViOGNjXFx1Yjg1YyBcXHVkMzBjXFx1ZDBiOVxcdWI0MjlcXHViMmM4XFx1YjJlNC5cIixcImF1Y3Rpb25UZXh0XCI6XCJHb0RhZGR5IFxcdWFjYmRcXHViOWU0XFx1YzVkMFxcdWMxMWMgXFx1YWQ2Y1xcdWI5ZTRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJcXHVjNzc0IFxcdWIzYzRcXHViYTU0XFx1Yzc3OFxcdWM3NDAgR29EYWRkeSBcXHVhY2JkXFx1YjllNFxcdWM1ZDBcXHVjMTFjIFxcdWFkNmNcXHViOWU0XFx1ZDU2MCBcXHVjMjE4IFxcdWM3ODhcXHVjMmI1XFx1YjJjOFxcdWIyZTQuXCIsXCJjYXNocGFya2luZ1RleHRcIjpcIlxcdWM3NzQgXFx1YjNjNFxcdWJhNTRcXHVjNzc4XFx1YzVkMCBcXHVhZDAwXFx1YzJlY1xcdWM3NzQgXFx1Yzc4OFxcdWM3M2NcXHVjMmUwXFx1YWMwMFxcdWM2OTQ/XCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcIlxcdWI5Y2NcXHViOGNjXFx1YjQxOFxcdWM1YzhcXHVjNzNjXFx1YmE3MCBHb0RhZGR5IFxcdWFjYmRcXHViOWU0XFx1YzVkMFxcdWMxMWMgXFx1YWQ2Y1xcdWI5ZTRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcIkdldFRoaXNEb21haW5DVEFcIjpcIlxcdWM3NzQgXFx1YjNjNFxcdWJhNTRcXHVjNzc4IFxcdWQ2NTVcXHViY2Y0XCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufVxcdWM1ZDAgXFx1YWQwMFxcdWMyZWMgXFx1Yzc4OFxcdWM3M2NcXHVjMmUwXFx1YWMwMFxcdWM2OTQ/IFxcdWIzYzRcXHViYTU0XFx1Yzc3OCBcXHVjNjA4XFx1YzU3ZCBcXHVjOGZjXFx1YmIzOFxcdWM3M2NcXHViODVjIFxcdWQxYjVcXHVkNTc0IFxcdWFkNmNcXHViOWU0XFx1ZDU2MCBcXHVjMjE4IFxcdWM3ODhcXHViMjk0IFxcdWJjMjlcXHViYzk1XFx1Yzc0NCBcXHVjNTRjXFx1YzU0NFxcdWJjZjRcXHVjMTM4XFx1YzY5NC5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufVxcdWM3NzQoXFx1YWMwMCkgXFx1YjljY1xcdWI4Y2NcXHViNDE4XFx1YzVjOFxcdWMyYjVcXHViMmM4XFx1YjJlNC4gXFx1YjNjNFxcdWJhNTRcXHVjNzc4IFxcdWM2MDhcXHVjNTdkIFxcdWM4ZmNcXHViYjM4XFx1YzczY1xcdWI4NWMgXFx1ZDFiNVxcdWQ1NzQgXFx1YWQ2Y1xcdWI5ZTRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWIyOTQgXFx1YmMyOVxcdWJjOTVcXHVjNzQ0IFxcdWM1NGNcXHVjNTQ0XFx1YmNmNFxcdWMxMzhcXHVjNjk0LlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IFxcdWJhYThcXHViNGUwIFxcdWFkOGNcXHViOWFjIFxcdWJjZjRcXHVjNzIwLlwiLFwicHJpdmFjeVBvbGljeVRleHRcIjpcIlxcdWFjMWNcXHVjNzc4XFx1YzgxNVxcdWJjZjQgXFx1Y2RlOFxcdWFlMDlcXHViYzI5XFx1Y2U2OFwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIlxcdWJhNzRcXHVjYzQ1IFxcdWM4NzBcXHVkNTZkOiBcXHViY2Y4IFxcdWMwYWNcXHVjNzc0XFx1ZDJiOFxcdWM3NTggXFx1ZDJiOVxcdWM4MTUgXFx1ZDY4Y1xcdWMwYWMsIFxcdWM4MWNcXHVkNDg4IFxcdWI2MTBcXHViMjk0IFxcdWMxMWNcXHViZTQ0XFx1YzJhNFxcdWM1ZDAgXFx1YjMwMFxcdWQ1NWMgXFx1YzViOFxcdWFlMDlcXHVjNzQwIDEyMyBSZWcgTHRkXFx1YWMwMCBcXHVkMWI1XFx1YzgxY1xcdWQ1NThcXHVjOWMwIFxcdWM1NGFcXHVjNzNjXFx1YmE3MCwgXFx1YzgxYzNcXHVjNzkwIFxcdWFkMTFcXHVhY2UwXFx1YzhmY1xcdWM2NDBcXHVjNzU4IFxcdWFkMDBcXHVhY2M0XFx1Yjk3YyBcXHVhZDZjXFx1YzEzMVxcdWQ1NThcXHVhYzcwXFx1YjA5OCBcXHViY2Y0XFx1Yzk5ZFxcdWQ1NjhcXHVjNzQ0IFxcdWM3NThcXHViYmY4XFx1ZDU1OFxcdWM5YzAgXFx1YzU0YVxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcIm93c0hlYWRpbmdcIjpcIlxcdWMxOGNcXHVhZGRjXFx1YmFhOCBcXHViZTQ0XFx1Yzk4OFxcdWIyYzhcXHVjMmE0XFx1YzY0MCBcXHVkNTY4XFx1YWVkOFxcdWQ1NThcXHViMjk0ICNPcGVuV2VTdGFuZC5cIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJcXHVjNzc0IFxcdWQ3OThcXHVhY2E4XFx1YzZiNCBcXHVjMmRjXFx1YWMwNCBcXHViM2Q5XFx1YzU0OCBcXHViMmY5XFx1YzBhY1xcdWIyOTQgXFx1YWRjMFxcdWQ1NThcXHVjNjQwIFxcdWFkYzBcXHVkNTU4XFx1Yzc1OCBcXHViZTQ0XFx1Yzk4OFxcdWIyYzhcXHVjMmE0XFx1YWMwMCBcXHVjNzA0XFx1YWUzMFxcdWI5N2MgXFx1YjMwMFxcdWNjOThcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWIzYzRcXHViODVkIFxcdWJhYThcXHViNGUwIFxcdWM5YzBcXHVjNmQwXFx1Yzc0NCBcXHViMmU0XFx1ZDU1OFxcdWFjZTAgXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcIm93c0NUQVwiOlwiXFx1Yzc5MFxcdWMxMzhcXHVkNzg4IFxcdWM1NGNcXHVjNTQ0XFx1YmNmNFxcdWFlMzBcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJcXHVhZDExXFx1YWNlMFxcdWFjMDAgXFx1Y2MyOFxcdWIyZThcXHViNDE4XFx1YzVjOFxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIixcImNvbnRhY3RPd25lclRleHRcIjpcIntkb21haW59XFx1Yzc3NChcXHVhYzAwKSBcXHVkMzEwXFx1YjllNCBcXHVjOTExXFx1Yzc3YyBcXHVjMjE4IFxcdWM3ODhcXHVjMmI1XFx1YjJjOFxcdWIyZTQuXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1YjNjNFxcdWJhNTRcXHVjNzc4IFxcdWMxOGNcXHVjNzIwXFx1Yzc5MFxcdWM1ZDBcXHVhYzhjIFxcdWJiMzhcXHVjNzU4XCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJcXHVjNzc0XFx1Yjk4NFwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIlxcdWM3NzRcXHViYTU0XFx1Yzc3Y1wiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdWM4MDRcXHVkNjU0XCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiXFx1Yzc1OFxcdWFjYWNcIixcImNvbnRhY3RPd25lckNUQVwiOlwiXFx1YmE1NFxcdWMyZGNcXHVjOWMwIFxcdWJjZjRcXHViMGI0XFx1YWUzMFwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJcXHVjNzIwXFx1YzBhY1xcdWQ1NWMgXFx1YjNjNFxcdWJhNTRcXHVjNzc4XFx1Yzc0NCBcXHVjYzNlXFx1YWNlMCBcXHVhY2M0XFx1YzJlMFxcdWFjMDBcXHVjNjk0P1wiLFwiQVQtQ2hlY2tPdXRUaGVzZVRvcFBpY2tzXCI6XCJcXHVjMGMxXFx1YzcwNCBcXHVjZDk0XFx1Y2M5YyBcXHVkNTZkXFx1YmFhOVxcdWM3NDQgXFx1ZDY1NVxcdWM3NzhcXHVkNTc0IFxcdWJjZjRcXHVjMTM4XFx1YzY5NFwiLFwiQVQtQnV5XCI6XCJcXHVhZDZjXFx1YjllNFwiLFwiQVQtUHJvbW90ZWRcIjpcIlxcdWQ1MDRcXHViODVjXFx1YmFhOFxcdWMxNThcXHViNDI4XCJ9Jyl9LDQwMTQ6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBrYW4gdlxceGU2cmUgdGlsIHNhbGdzIVwiLFwiZGJzVGV4dEhlZ1wiOlwiZXIgcGFya2VydCBncmF0aXMsIHRha2tldCB2XFx4ZTZyZSAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImhhciB1dGxcXHhmOHB0IG9nIGVyIHBhcmtlcnQgZ3JhdGlzLCB0YWtrZXQgdlxceGU2cmUgMTIzIFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJlciB0aWxnamVuZ2VsaWcgb2cga2FuIGtqXFx4ZjhwZXMgaSBHb0RhZGR5LWF1a3Nqb25lci5cIixcImF1Y3Rpb25IZWdCYW5uZXJUZXh0XCI6XCJEZXR0ZSBkb21lbmV0IGVyIHRpbGdqZW5nZWxpZyBwXFx4ZTUgR29EYWRkeS1hdWtzam9uZXJcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiaGFyIHV0bFxceGY4cHQgb2cgZXIgdGlsZ2plbmdlbGlnIGkgR29EYWRkeS1hdWtzam9uZXIuXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJIdmlzIGR1IGVpZXIgZGV0dGUgZG9tZW5lbmF2bmV0IG9nIFxceGY4bnNrZXIgXFx4ZTUgZlxceGU1IG5ldHRzdGVkZXQgZGl0dCBvcHAgb2cgaSBnYW5nLCBodm9yZm9yIGlra2UgZGEge2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua30gb2cgc2pla2tlIHV0IHZcXHhlNXJ0IHV0dmFsZyBhdiByaW1lbGlnZSBwcm9kdWt0ZXIsIHNvbSBpbmtsdWRlcmVyIFdlYnNpdGUgQnVpbGRlciwgV2ViaG90ZWxsIG9nIG1lciFcIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwiYmVzXFx4ZjhrZSAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRG9tZW5ldCB7ZG9tYWlufSBlciB0aWwgc2FsZ3MuIEh2aXMgZHUgdmlsIGtqXFx4ZjhwZSBkZXQsIHJpbmdlciBkdSB7YWZ0ZXJuaWNTaXRlTmFtZX0gcFxceGU1IHthZnRlcm5pY1Bob25lMX0gZWxsZXIge2FmdGVybmljUGhvbmUyfS4gS2xpa2sgaGVyIGZvciBtZXIgaW5mb3JtYXNqb24uXCIsXCJkYnNUZXh0XCI6XCJlciBwYXJrZXJ0IGdyYXRpcywgdGFra2V0IHZcXHhlNnJlIEdvRGFkZHkuY29tXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiaGFyIHV0bFxceGY4cHQgb2cgZXIgcGFya2VydCBncmF0aXMsIHRha2tldCB2XFx4ZTZyZSBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJlciB0aWxnamVuZ2VsaWcgb2cga2FuIGtqXFx4ZjhwZXMgaSBHb0RhZGR5LWF1a3Nqb25lci5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJEZXR0ZSBkb21lbmV0IGVyIHRpbGdqZW5nZWxpZyBwXFx4ZTUgR29EYWRkeS1hdWtzam9uZXJcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiRXIgZHUgaW50ZXJlc3NlcnQgaSBkZXR0ZSBkb21lbmV0P1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJoYXIgdXRsXFx4ZjhwdCBvZyBlciB0aWxnamVuZ2VsaWcgaSBHb0RhZGR5LWF1a3Nqb25lci5cIixcIkdldFRoaXNEb21haW5DVEFcIjpcIkZcXHhlNSBkZXR0ZSBkb21lbmV0XCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJJbnRlcmVzc2VydCBpIHtkb21haW59PyBGaW5uIHV0IGh2b3JkYW4gZHUgc2thZmZlciBkZWcgZGV0IGdqZW5ub20gUmVzdG9yZHJlIGZvciBkb21lbmVyLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGhhciB1dGxcXHhmOHB0LiBGaW5uIHV0IGh2b3JkYW4gZHUgc2thZmZlciBkZWcgZGV0IGdqZW5ub20gUmVzdG9yZHJlIGZvciBkb21lbmVyLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5ICBNZWQgZW5lcmV0dC5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQZXJzb252ZXJucG9saWN5XCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIE1lZCBlbmVyZXR0LlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIk9wcGhhdnNyZXR0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGQgfFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJBbnN2YXJzZnJhc2tyaXZlbHNlOiBSZWZlcmFuc2VyIHRpbCBldmVudHVlbGxlIHNwZXNpZmlra2Ugc2Vsc2thcGVyLCBwcm9kdWt0ZXIgZWxsZXIgdGplbmVzdGVyIHBcXHhlNSBkZXR0ZSBuZXR0c3RlZGV0IGtvbnRyb2xsZXJlcyBpa2tlIGF2IDEyMyBSZWcgTHRkLCBvZyB1dGdqXFx4ZjhyIGVsbGVyIGFudHlkZXIgaWtrZSAxMjMgUmVnIEx0ZCBzaW4gdGlsa255dG5pbmcgdGlsIGVsbGVyIHN0XFx4Zjh0dGUgdGlsIHRyZWRqZXBhcnRzYW5ub25zXFx4ZjhyZXIuXCIsXCJvd3NIZWFkaW5nXCI6XCIjT3BlbldlU3RhbmQgbWVkIHNtXFx4ZTViZWRyaWZ0ZXIuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiSSBkaXNzZSB2YW5za2VsaWdlIHRpZGVyIGdqXFx4ZjhyIHZpIGFsdCB2aSBrYW4gZm9yIFxceGU1IGhqZWxwZSBkZWcgb2cgdmlya3NvbWhldGVuIGRpbiBtZWQgXFx4ZTUgdGlscGFzc2Ugc2VnLlwiLFwib3dzQ1RBXCI6XCJGaW5uIHV0IG1lclwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIkFubm9uc2VyIGVyIGJsb2trZXJ0XCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBrYW4gdlxceGU2cmUgdGlsIHNhbGdzXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiS29udGFrdCBkb21lbmVlaWVyZW5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5hdm5cIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFLXBvc3RcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxlZm9uXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiS29tbWVudGFyZXJcIixcImNvbnRhY3RPd25lckNUQVwiOlwiU2VuZCBtZWxkaW5nXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIkxldGVyIGR1IGV0dGVyIGxpZ25lbmRlIGRvbWVuZXI/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlNqZWtrIHV0IGRpc3NlIHBvcHVsXFx4ZTZyZSB2YWxnZW5lXCIsXCJBVC1CdXlcIjpcIktqXFx4ZjhwXCIsXCJBVC1Qcm9tb3RlZFwiOlwiRnJlbWhldmV0XCJ9Jyl9LDc3MjU6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBrYW4gdlxceGU2cmUgdGlsIHNhbGdzIVwiLFwiZGJzVGV4dEhlZ1wiOlwiZXIgcGFya2VydCBncmF0aXMsIHRha2tldCB2XFx4ZTZyZSAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImhhciB1dGxcXHhmOHB0IG9nIGVyIHBhcmtlcnQgZ3JhdGlzLCB0YWtrZXQgdlxceGU2cmUgMTIzIFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJlciB0aWxnamVuZ2VsaWcgb2cga2FuIGtqXFx4ZjhwZXMgaSBHb0RhZGR5LWF1a3Nqb25lci5cIixcImF1Y3Rpb25IZWdCYW5uZXJUZXh0XCI6XCJEZXR0ZSBkb21lbmV0IGVyIHRpbGdqZW5nZWxpZyBwXFx4ZTUgR29EYWRkeS1hdWtzam9uZXJcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiaGFyIHV0bFxceGY4cHQgb2cgZXIgdGlsZ2plbmdlbGlnIGkgR29EYWRkeS1hdWtzam9uZXIuXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJIdmlzIGR1IGVpZXIgZGV0dGUgZG9tZW5lbmF2bmV0IG9nIFxceGY4bnNrZXIgXFx4ZTUgZlxceGU1IG5ldHRzdGVkZXQgZGl0dCBvcHAgb2cgaSBnYW5nLCBodm9yZm9yIGlra2UgZGEge2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua30gb2cgc2pla2tlIHV0IHZcXHhlNXJ0IHV0dmFsZyBhdiByaW1lbGlnZSBwcm9kdWt0ZXIsIHNvbSBpbmtsdWRlcmVyIFdlYnNpdGUgQnVpbGRlciwgV2ViaG90ZWxsIG9nIG1lciFcIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwiYmVzXFx4ZjhrZSAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRG9tZW5ldCB7ZG9tYWlufSBlciB0aWwgc2FsZ3MuIEh2aXMgZHUgdmlsIGtqXFx4ZjhwZSBkZXQsIHJpbmdlciBkdSB7YWZ0ZXJuaWNTaXRlTmFtZX0gcFxceGU1IHthZnRlcm5pY1Bob25lMX0gZWxsZXIge2FmdGVybmljUGhvbmUyfS4gS2xpa2sgaGVyIGZvciBtZXIgaW5mb3JtYXNqb24uXCIsXCJkYnNUZXh0XCI6XCJlciBwYXJrZXJ0IGdyYXRpcywgdGFra2V0IHZcXHhlNnJlIEdvRGFkZHkuY29tXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiaGFyIHV0bFxceGY4cHQgb2cgZXIgcGFya2VydCBncmF0aXMsIHRha2tldCB2XFx4ZTZyZSBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJlciB0aWxnamVuZ2VsaWcgb2cga2FuIGtqXFx4ZjhwZXMgaSBHb0RhZGR5LWF1a3Nqb25lci5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJEZXR0ZSBkb21lbmV0IGVyIHRpbGdqZW5nZWxpZyBwXFx4ZTUgR29EYWRkeS1hdWtzam9uZXJcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiRXIgZHUgaW50ZXJlc3NlcnQgaSBkZXR0ZSBkb21lbmV0P1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJoYXIgdXRsXFx4ZjhwdCBvZyBlciB0aWxnamVuZ2VsaWcgaSBHb0RhZGR5LWF1a3Nqb25lci5cIixcIkdldFRoaXNEb21haW5DVEFcIjpcIkZcXHhlNSBkZXR0ZSBkb21lbmV0XCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJJbnRlcmVzc2VydCBpIHtkb21haW59PyBGaW5uIHV0IGh2b3JkYW4gZHUgc2thZmZlciBkZWcgZGV0IGdqZW5ub20gUmVzdG9yZHJlIGZvciBkb21lbmVyLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGhhciB1dGxcXHhmOHB0LiBGaW5uIHV0IGh2b3JkYW4gZHUgc2thZmZlciBkZWcgZGV0IGdqZW5ub20gUmVzdG9yZHJlIGZvciBkb21lbmVyLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5ICBNZWQgZW5lcmV0dC5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQZXJzb252ZXJucG9saWN5XCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIE1lZCBlbmVyZXR0LlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIk9wcGhhdnNyZXR0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGQgfFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJBbnN2YXJzZnJhc2tyaXZlbHNlOiBSZWZlcmFuc2VyIHRpbCBldmVudHVlbGxlIHNwZXNpZmlra2Ugc2Vsc2thcGVyLCBwcm9kdWt0ZXIgZWxsZXIgdGplbmVzdGVyIHBcXHhlNSBkZXR0ZSBuZXR0c3RlZGV0IGtvbnRyb2xsZXJlcyBpa2tlIGF2IDEyMyBSZWcgTHRkLCBvZyB1dGdqXFx4ZjhyIGVsbGVyIGFudHlkZXIgaWtrZSAxMjMgUmVnIEx0ZCBzaW4gdGlsa255dG5pbmcgdGlsIGVsbGVyIHN0XFx4Zjh0dGUgdGlsIHRyZWRqZXBhcnRzYW5ub25zXFx4ZjhyZXIuXCIsXCJvd3NIZWFkaW5nXCI6XCIjT3BlbldlU3RhbmQgbWVkIHNtXFx4ZTViZWRyaWZ0ZXIuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiSSBkaXNzZSB2YW5za2VsaWdlIHRpZGVyIGdqXFx4ZjhyIHZpIGFsdCB2aSBrYW4gZm9yIFxceGU1IGhqZWxwZSBkZWcgb2cgdmlya3NvbWhldGVuIGRpbiBtZWQgXFx4ZTUgdGlscGFzc2Ugc2VnLlwiLFwib3dzQ1RBXCI6XCJGaW5uIHV0IG1lclwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIkFubm9uc2VyIGVyIGJsb2trZXJ0XCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBrYW4gdlxceGU2cmUgdGlsIHNhbGdzXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiS29udGFrdCBkb21lbmVlaWVyZW5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5hdm5cIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFLXBvc3RcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxlZm9uXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiS29tbWVudGFyZXJcIixcImNvbnRhY3RPd25lckNUQVwiOlwiU2VuZCBtZWxkaW5nXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIkxldGVyIGR1IGV0dGVyIGxpZ25lbmRlIGRvbWVuZXI/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlNqZWtrIHV0IGRpc3NlIHBvcHVsXFx4ZTZyZSB2YWxnZW5lXCIsXCJBVC1CdXlcIjpcIktqXFx4ZjhwXCIsXCJBVC1Qcm9tb3RlZFwiOlwiRnJlbWhldmV0XCJ9Jyl9LDY0OTQ6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBpcyBtb2dlbGlqayB0ZSBrb29wLlwiLFwiZGJzVGV4dEhlZ1wiOlwiaXMgZ3JhdGlzIGdlcGFya2VlcmQsIG1ldCBkYW5rIGFhbiAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImlzIHZlcmxvcGVuIGVuIGlzIGdyYXRpcyBnZXBhcmtlZXJkLCBtZXQgZGFuayBhYW4gMTIzIFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJpcyBiZXNjaGlrYmFhciBvcCBHb0RhZGR5LXZlaWxpbmdlbi5cIixcImF1Y3Rpb25IZWdCYW5uZXJUZXh0XCI6XCJEaXQgZG9tZWluIGlzIGJlc2NoaWtiYWFyIG9wIEdvRGFkZHktdmVpbGluZ2VuXCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcImlzIHZlcmxvcGVuIGVuIGlzIHZlcmtyaWpnYmFhciBvcCBHb0RhZGR5LXZlaWxpbmdlbi5cIixcImhlZ0Zvb3RlclRleHRcIjpcIkFscyBqZSBlaWdlbmFhciBiZW50IHZhbiBkZXplIGRvbWVpbm5hYW0gZW4gamUgYWFuIGRlIHNsYWcgd2lsdCBtZXQgamUgZWlnZW4gd2Vic2l0ZSwgYmV6b2VrIGRhbiBlZW5zIHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IGVuIGJla2lqayBhbCBvbnplIHZvb3JkZWxpZ2UgcHJvZHVjdGVuLCB3YWFyb25kZXIgV2Vic2l0ZWJvdXdlciwgV2ViaG9zdGluZyBlbiBtZWVyLlwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJiZXpvZWsgZGFuIDEyMyBSZWdcIixcInRkZnNUZXh0XCI6XCJIZXQgZG9tZWluIHtkb21haW59IGlzIHRlIGtvb3AuIEJlbCB7YWZ0ZXJuaWNTaXRlTmFtZX0gdmlhIHthZnRlcm5pY1Bob25lMX0gb2Yge2FmdGVybmljUGhvbmUyfSBhbHMgamUgZGl0IHdpbHQga29wZW4uIEtsaWsgaGllciB2b29yIG1lZXIgaW5mb3JtYXRpZS5cIixcImRic1RleHRcIjpcImlzIGdyYXRpcyBnZXBhcmtlZXJkLCBtZXQgZGFuayBhYW4gR29EYWRkeS5jb20uXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiaXMgdmVybG9wZW4gZW4gaXMgZ3JhdGlzIGdlcGFya2VlcmQsIG1ldCBkYW5rIGFhbiBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJpcyBiZXNjaGlrYmFhciBvcCBHb0RhZGR5LXZlaWxpbmdlbi5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJEaXQgZG9tZWluIGlzIGJlc2NoaWtiYWFyIG9wIEdvRGFkZHktdmVpbGluZ2VuXCIsXCJjYXNocGFya2luZ1RleHRcIjpcIkhlYiBqZSBpbnRlcmVzc2UgaW4gZGl0IGRvbWVpbj9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiaXMgdmVybG9wZW4gZW4gaXMgdmVya3JpamdiYWFyIG9wIEdvRGFkZHktdmVpbGluZ2VuLlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiS29vcCBkaXQgZG9tZWluXCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJHZVxceGVmbnRlcmVzc2VlcmQgaW4ge2RvbWFpbn0/IE9udGRlayBob2UgZWVuIGRvbWVpbnJlc2VydmVyaW5nIHdlcmt0LlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGlzIHZlcmxvcGVuLiBPbnRkZWsgaG9lIGVlbiBkb21laW5yZXNlcnZlcmluZyB3ZXJrdC5cIixcImNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAtIEFsbGUgcmVjaHRlbiB2b29yYmVob3VkZW5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQcml2YWN5YmVsZWlkXCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LmNvbSwgTExDLiBBbGxlIHJlY2h0ZW4gdm9vcmJlaG91ZGVuLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIkRpc2NsYWltZXI6IFJlZmVyZW50aWVzIG5hYXIgZWxrIGJlZHJpamYsIHByb2R1Y3Qgb2Ygc2VydmljZSBvcCBkZXplIHNpdGUgd29yZGVuIG5pZXQgZ2Vjb250cm9sZWVyZCBkb29yIDEyMyBSZWcgTHRkIGVuIGJldGVrZW5lbiBvZiBpbXBsaWNlcmVuIG5pZXQgZGF0IHppaiB2ZXJ3YW50IHppam4gbWV0IG9mIGdvZWRrZXVyaW5nIGdldmVuIGFhbiBhZHZlcnRlZXJkZXJzIHZhbiBkZXJkZW4uXCIsXCJvd3NIZWFkaW5nXCI6XCIjT3BlbldlU3RhbmQgdm9vciBrbGVpbmUgYmVkcmlqdmVuLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlRpamRlbnMgZGV6ZSBtb2VpbGlqa2UgcGVyaW9kZSBkb2VuIHdlIGFsbGVzIHdhdCB3ZSBrdW5uZW4gb20gam91IGVuIGplIGJlZHJpamYgdGUgaGVscGVuLlwiLFwib3dzQ1RBXCI6XCJNZWVyIGluZm9ybWF0aWVcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJBZHZlcnRlbnRpZXMgd29yZGVuIGdlYmxva2tlZXJkLlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gaXMgbW9nZWxpamsgdGUga29vcFwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIkNvbnRhY3Qgb3BuZW1lbiBtZXQgZGUgZWlnZW5hYXIgdmFuIGhldCBkb21laW5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5hYW1cIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFLW1haWxcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxlZm9vblwiLFwiY29udGFjdE93bmVyQ29tbWVudHNcIjpcIk9wbWVya2luZ2VuXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIkVlbiBiZXJpY2h0IHN0dXJlblwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJPcCB6b2VrIG5hYXIgdmVyZ2VsaWprYmFyZSBkb21laW5lbj9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiQmVraWprIGRlemUgYmVzdGUga2V1emVzXCIsXCJBVC1CdXlcIjpcIktvcGVuXCIsXCJBVC1Qcm9tb3RlZFwiOlwiR2Vwcm9tb290XCJ9Jyl9LDU0NjQ6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBpcyBtb2dlbGlqayB0ZSBrb29wLlwiLFwiZGJzVGV4dEhlZ1wiOlwiaXMgZ3JhdGlzIGdlcGFya2VlcmQsIG1ldCBkYW5rIGFhbiAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImlzIHZlcmxvcGVuIGVuIGlzIGdyYXRpcyBnZXBhcmtlZXJkLCBtZXQgZGFuayBhYW4gMTIzIFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJpcyBiZXNjaGlrYmFhciBvcCBHb0RhZGR5LXZlaWxpbmdlbi5cIixcImF1Y3Rpb25IZWdCYW5uZXJUZXh0XCI6XCJEaXQgZG9tZWluIGlzIGJlc2NoaWtiYWFyIG9wIEdvRGFkZHktdmVpbGluZ2VuXCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcImlzIHZlcmxvcGVuIGVuIGlzIHZlcmtyaWpnYmFhciBvcCBHb0RhZGR5LXZlaWxpbmdlbi5cIixcImhlZ0Zvb3RlclRleHRcIjpcIkFscyBqZSBlaWdlbmFhciBiZW50IHZhbiBkZXplIGRvbWVpbm5hYW0gZW4gamUgYWFuIGRlIHNsYWcgd2lsdCBtZXQgamUgZWlnZW4gd2Vic2l0ZSwgYmV6b2VrIGRhbiBlZW5zIHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IGVuIGJla2lqayBhbCBvbnplIHZvb3JkZWxpZ2UgcHJvZHVjdGVuLCB3YWFyb25kZXIgV2Vic2l0ZWJvdXdlciwgV2ViaG9zdGluZyBlbiBtZWVyLlwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJiZXpvZWsgZGFuIDEyMyBSZWdcIixcInRkZnNUZXh0XCI6XCJIZXQgZG9tZWluIHtkb21haW59IGlzIHRlIGtvb3AuIEJlbCB7YWZ0ZXJuaWNTaXRlTmFtZX0gdmlhIHthZnRlcm5pY1Bob25lMX0gb2Yge2FmdGVybmljUGhvbmUyfSBhbHMgamUgZGl0IHdpbHQga29wZW4uIEtsaWsgaGllciB2b29yIG1lZXIgaW5mb3JtYXRpZS5cIixcImRic1RleHRcIjpcImlzIGdyYXRpcyBnZXBhcmtlZXJkLCBtZXQgZGFuayBhYW4gR29EYWRkeS5jb20uXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiaXMgdmVybG9wZW4gZW4gaXMgZ3JhdGlzIGdlcGFya2VlcmQsIG1ldCBkYW5rIGFhbiBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJpcyBiZXNjaGlrYmFhciBvcCBHb0RhZGR5LXZlaWxpbmdlbi5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJEaXQgZG9tZWluIGlzIGJlc2NoaWtiYWFyIG9wIEdvRGFkZHktdmVpbGluZ2VuXCIsXCJjYXNocGFya2luZ1RleHRcIjpcIkhlYiBqZSBpbnRlcmVzc2UgaW4gZGl0IGRvbWVpbj9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiaXMgdmVybG9wZW4gZW4gaXMgdmVya3JpamdiYWFyIG9wIEdvRGFkZHktdmVpbGluZ2VuLlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiS29vcCBkaXQgZG9tZWluXCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJHZVxceGVmbnRlcmVzc2VlcmQgaW4ge2RvbWFpbn0/IE9udGRlayBob2UgZWVuIGRvbWVpbnJlc2VydmVyaW5nIHdlcmt0LlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGlzIHZlcmxvcGVuLiBPbnRkZWsgaG9lIGVlbiBkb21laW5yZXNlcnZlcmluZyB3ZXJrdC5cIixcImNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAtIEFsbGUgcmVjaHRlbiB2b29yYmVob3VkZW5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJQcml2YWN5YmVsZWlkXCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LmNvbSwgTExDLiBBbGxlIHJlY2h0ZW4gdm9vcmJlaG91ZGVuLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIkRpc2NsYWltZXI6IFJlZmVyZW50aWVzIG5hYXIgZWxrIGJlZHJpamYsIHByb2R1Y3Qgb2Ygc2VydmljZSBvcCBkZXplIHNpdGUgd29yZGVuIG5pZXQgZ2Vjb250cm9sZWVyZCBkb29yIDEyMyBSZWcgTHRkIGVuIGJldGVrZW5lbiBvZiBpbXBsaWNlcmVuIG5pZXQgZGF0IHppaiB2ZXJ3YW50IHppam4gbWV0IG9mIGdvZWRrZXVyaW5nIGdldmVuIGFhbiBhZHZlcnRlZXJkZXJzIHZhbiBkZXJkZW4uXCIsXCJvd3NIZWFkaW5nXCI6XCIjT3BlbldlU3RhbmQgdm9vciBrbGVpbmUgYmVkcmlqdmVuLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlRpamRlbnMgZGV6ZSBtb2VpbGlqa2UgcGVyaW9kZSBkb2VuIHdlIGFsbGVzIHdhdCB3ZSBrdW5uZW4gb20gam91IGVuIGplIGJlZHJpamYgdGUgaGVscGVuLlwiLFwib3dzQ1RBXCI6XCJNZWVyIGluZm9ybWF0aWVcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJBZHZlcnRlbnRpZXMgd29yZGVuIGdlYmxva2tlZXJkLlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gaXMgbW9nZWxpamsgdGUga29vcFwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIkNvbnRhY3Qgb3BuZW1lbiBtZXQgZGUgZWlnZW5hYXIgdmFuIGhldCBkb21laW5cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5hYW1cIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFLW1haWxcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxlZm9vblwiLFwiY29udGFjdE93bmVyQ29tbWVudHNcIjpcIk9wbWVya2luZ2VuXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIkVlbiBiZXJpY2h0IHN0dXJlblwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJPcCB6b2VrIG5hYXIgdmVyZ2VsaWprYmFyZSBkb21laW5lbj9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiQmVraWprIGRlemUgYmVzdGUga2V1emVzXCIsXCJBVC1CdXlcIjpcIktvcGVuXCIsXCJBVC1Qcm9tb3RlZFwiOlwiR2Vwcm9tb290XCJ9Jyl9LDI3NjM6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJEb21lbmEge2RvbWFpbn0gbW9cXHUwMTdjZSBieVxcdTAxMDcgbmEgc3ByemVkYVxcdTAxN2MhXCIsXCJkYnNUZXh0SGVnXCI6XCJqZXN0IHphcGFya293YW5hIGJlenBcXHUwMTQyYXRuaWUgZHppXFx1MDExOWtpIHVwcnplam1vXFx1MDE1YmNpIHNlcndpc3UgMTIzIFJlZy5cIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJ3eWdhc1xcdTAxNDJhIGkgamVzdCB6YXBhcmtvd2FuYSBiZXpwXFx1MDE0MmF0bmllIGR6aVxcdTAxMTlraSB1cHJ6ZWptb1xcdTAxNWJjaSBzZXJ3aXN1IDEyMyBSZWcuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiamVzdCBkb3N0XFx1MDExOXBuYSBuYSBBdWtjamFjaCBHb0RhZGR5LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlRhIGRvbWVuYSBqZXN0IGRvc3RcXHUwMTE5cG5hIG5hIEF1a2NqYWNoIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwid3lnYXNcXHUwMTQyYSBpIGplc3QgZG9zdFxcdTAxMTlwbmEgbmEgQXVrY2phY2ggR29EYWRkeS5cIixcImhlZ0Zvb3RlclRleHRcIjpcIkplXFx1MDE1YmxpIGplc3RlXFx1MDE1YiB3XFx1MDE0MmFcXHUwMTViY2ljaWVsZW0gdGVqIG5hend5IGRvbWVueSBpIGNoY2VzeiB1dHdvcnp5XFx1MDEwNyB3XFx1MDE0MmFzblxcdTAxMDVcXHhhMHdpdHJ5blxcdTAxMTksIHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IGkgem9iYWN6IHByenlzdFxcdTAxMTlwbmUgY2Vub3dvIHByb2R1a3R5IG9iZWptdWpcXHUwMTA1Y2UgS3JlYXRvciBzdHJvbiB3d3csIGhvc3RpbmcgaW50ZXJuZXRvd3kgaSBuaWUgdHlsa28hXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIm9kd2llZFxcdTAxN2EgMTIzIFJlZ1wiLFwidGRmc1RleHRcIjpcIkRvbWVuYSB7ZG9tYWlufSBqZXN0IG5hIHNwcnplZGFcXHUwMTdjLiBBYnkga3VwaVxcdTAxMDcsIHphZHp3b1xcdTAxNDQgZG8gZmlybXkge2FmdGVybmljU2l0ZU5hbWV9IHBvZCBudW1lciB7YWZ0ZXJuaWNQaG9uZTF9IGx1YiB7YWZ0ZXJuaWNQaG9uZTJ9LiBLbGlrbmlqIHR1dGFqLCBhYnkgdXp5c2thXFx1MDEwNyB3aVxcdTAxMTljZWogc3pjemVnXFx4ZjNcXHUwMTQyXFx4ZjN3LlwiLFwiZGJzVGV4dFwiOlwiamVzdCB6YXBhcmtvd2FuYSBiZXpwXFx1MDE0MmF0bmllIGR6aVxcdTAxMTlraSB1cHJ6ZWptb1xcdTAxNWJjaSBzZXJ3aXN1IEdvRGFkZHkuY29tLlwiLFwiZXhwaXJlZERic1RleHRcIjpcInd5Z2FzXFx1MDE0MmEgaSBqZXN0IHphcGFya293YW5hIGJlenBcXHUwMTQyYXRuaWUgZHppXFx1MDExOWtpIHVwcnplam1vXFx1MDE1YmNpIHNlcndpc3UgR29EYWRkeS5jb20uXCIsXCJhdWN0aW9uVGV4dFwiOlwiamVzdCBkb3N0XFx1MDExOXBuYSBuYSBBdWtjamFjaCBHb0RhZGR5LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIlRhIGRvbWVuYSBqZXN0IGRvc3RcXHUwMTE5cG5hIG5hIEF1a2NqYWNoIEdvRGFkZHlcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiSW50ZXJlc3VqZSBDaVxcdTAxMTkgdGEgZG9tZW5hP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJ3eWdhc1xcdTAxNDJhIGkgamVzdCBkb3N0XFx1MDExOXBuYSBuYSBBdWtjamFjaCBHb0RhZGR5LlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiWmRvYlxcdTAxMDVkXFx1MDE3YSB0XFx1MDExOSBkb21lblxcdTAxMTlcIixcImJhY2tvcmRlclRleHRcIjpcIkludGVyZXN1amUgQ2lcXHUwMTE5IGRvbWVuYSB7ZG9tYWlufT8gRG93aWVkeiBzaVxcdTAxMTksIGphayBqXFx1MDEwNSB1enlza2FcXHUwMTA3IHByenkgdVxcdTAxN2N5Y2l1IG9wY2ppIFphbVxceGYzd2llbmlhIG9jemVrdWpcXHUwMTA1Y2UgbmEgZG9tZW55LlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIkRvbWVuYSB7ZG9tYWlufSB3eWdhc1xcdTAxNDJhLiBEb3dpZWR6IHNpXFx1MDExOSwgamFrIGpcXHUwMTA1IHV6eXNrYVxcdTAxMDcgcHJ6eSB1XFx1MDE3Y3ljaXUgb3BjamkgWmFtXFx4ZjN3aWVuaWEgb2N6ZWt1alxcdTAxMDVjZSBuYSBkb21lbnkuXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgV3N6ZWxraWUgcHJhd2EgemFzdHJ6ZVxcdTAxN2NvbmUuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiWmFzYWR5IG9jaHJvbnkgZGFueWNoIG9zb2Jvd3ljaFwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBXc3plbGtpZSBwcmF3YSB6YXN0cnplXFx1MDE3Y29uZS5cIixcInBhcmt3ZWJoZWdjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkge2N1cnJlbnRZZWFyfSAxMjMgUmVnIEx0ZFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJaYXN0cnplXFx1MDE3Y2VuaWU6IE9kbmllc2llbmlhIGRvIGtvbmtyZXRuZWogZmlybXksIHByb2R1a3R1IGx1YiB1c1xcdTAxNDJ1ZyBuYSB0ZWogc3Ryb25pZSBuaWUgc1xcdTAxMDUga29udHJvbG93YW5lIHByemV6IDEyMyBSZWcgTHRkIGkgbmllIHN0YW5vd2lcXHUwMTA1IGFuaSBuaWUgc3VnZXJ1alxcdTAxMDUgamVqIHBvd2lcXHUwMTA1emFuaWEgbHViIHBvcGllcmFuaWEgaW5ueWNoIHJla2xhbW9kYXdjXFx4ZjN3LlwiLFwib3dzSGVhZGluZ1wiOlwiI09wZW5XZVN0YW5kIFxcdTIwMTQgd3NwaWVyYW15IG1hXFx1MDE0MmUgZmlybXkuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiVyB0eWNoIHRydWRueWNoIGN6YXNhY2ggZG9rXFx1MDE0MmFkYW15IHdzemVsa2ljaCBzdGFyYVxcdTAxNDQsIGFieSBwb21cXHhmM2MgVG9iaWUgaSBUd29qZWogZmlybWllIHcgZG9zdG9zb3dhbml1IHNpXFx1MDExOSBkbyBub3dlaiBzeXR1YWNqaS5cIixcIm93c0NUQVwiOlwiRG93aWVkeiBzaVxcdTAxMTkgd2lcXHUwMTE5Y2VqXCIsXCJhZHNCbG9ja2VkVGV4dFwiOlwiUmVrbGFteSBzXFx1MDEwNSB6YWJsb2tvd2FuZVwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwiRG9tZW5hIHtkb21haW59IG1vXFx1MDE3Y2UgYnlcXHUwMTA3IG5hIHNwcnplZGFcXHUwMTdjXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiU2tvbnRha3R1aiBzaVxcdTAxMTkgelxceGEwd1xcdTAxNDJhXFx1MDE1YmNpY2llbGVtIGRvbWVueVwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiTmF6d2FcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFLW1haWxcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxlZm9uXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiS29tZW50YXJ6ZVwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJXeVxcdTAxNWJsaWogd2lhZG9tb1xcdTAxNWJcXHUwMTA3XCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIlN6dWthc3ogcG9kb2JueWNoIGRvbWVuP1wiLFwiQVQtQ2hlY2tPdXRUaGVzZVRvcFBpY2tzXCI6XCJXeXByXFx4ZjNidWogdGUgbmFqbGVwc3plIHByb3BvenljamVcIixcIkFULUJ1eVwiOlwiS3VwXCIsXCJBVC1Qcm9tb3RlZFwiOlwiUHJvbW93YW5lXCJ9Jyl9LDU3MjY6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJEb21lbmEge2RvbWFpbn0gbW9cXHUwMTdjZSBieVxcdTAxMDcgbmEgc3ByemVkYVxcdTAxN2MhXCIsXCJkYnNUZXh0SGVnXCI6XCJqZXN0IHphcGFya293YW5hIGJlenBcXHUwMTQyYXRuaWUgZHppXFx1MDExOWtpIHVwcnplam1vXFx1MDE1YmNpIHNlcndpc3UgMTIzIFJlZy5cIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJ3eWdhc1xcdTAxNDJhIGkgamVzdCB6YXBhcmtvd2FuYSBiZXpwXFx1MDE0MmF0bmllIGR6aVxcdTAxMTlraSB1cHJ6ZWptb1xcdTAxNWJjaSBzZXJ3aXN1IDEyMyBSZWcuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiamVzdCBkb3N0XFx1MDExOXBuYSBuYSBBdWtjamFjaCBHb0RhZGR5LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlRhIGRvbWVuYSBqZXN0IGRvc3RcXHUwMTE5cG5hIG5hIEF1a2NqYWNoIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwid3lnYXNcXHUwMTQyYSBpIGplc3QgZG9zdFxcdTAxMTlwbmEgbmEgQXVrY2phY2ggR29EYWRkeS5cIixcImhlZ0Zvb3RlclRleHRcIjpcIkplXFx1MDE1YmxpIGplc3RlXFx1MDE1YiB3XFx1MDE0MmFcXHUwMTViY2ljaWVsZW0gdGVqIG5hend5IGRvbWVueSBpIGNoY2VzeiB1dHdvcnp5XFx1MDEwNyB3XFx1MDE0MmFzblxcdTAxMDVcXHhhMHdpdHJ5blxcdTAxMTksIHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IGkgem9iYWN6IHByenlzdFxcdTAxMTlwbmUgY2Vub3dvIHByb2R1a3R5IG9iZWptdWpcXHUwMTA1Y2UgS3JlYXRvciBzdHJvbiB3d3csIGhvc3RpbmcgaW50ZXJuZXRvd3kgaSBuaWUgdHlsa28hXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIm9kd2llZFxcdTAxN2EgMTIzIFJlZ1wiLFwidGRmc1RleHRcIjpcIkRvbWVuYSB7ZG9tYWlufSBqZXN0IG5hIHNwcnplZGFcXHUwMTdjLiBBYnkga3VwaVxcdTAxMDcsIHphZHp3b1xcdTAxNDQgZG8gZmlybXkge2FmdGVybmljU2l0ZU5hbWV9IHBvZCBudW1lciB7YWZ0ZXJuaWNQaG9uZTF9IGx1YiB7YWZ0ZXJuaWNQaG9uZTJ9LiBLbGlrbmlqIHR1dGFqLCBhYnkgdXp5c2thXFx1MDEwNyB3aVxcdTAxMTljZWogc3pjemVnXFx4ZjNcXHUwMTQyXFx4ZjN3LlwiLFwiZGJzVGV4dFwiOlwiamVzdCB6YXBhcmtvd2FuYSBiZXpwXFx1MDE0MmF0bmllIGR6aVxcdTAxMTlraSB1cHJ6ZWptb1xcdTAxNWJjaSBzZXJ3aXN1IEdvRGFkZHkuY29tLlwiLFwiZXhwaXJlZERic1RleHRcIjpcInd5Z2FzXFx1MDE0MmEgaSBqZXN0IHphcGFya293YW5hIGJlenBcXHUwMTQyYXRuaWUgZHppXFx1MDExOWtpIHVwcnplam1vXFx1MDE1YmNpIHNlcndpc3UgR29EYWRkeS5jb20uXCIsXCJhdWN0aW9uVGV4dFwiOlwiamVzdCBkb3N0XFx1MDExOXBuYSBuYSBBdWtjamFjaCBHb0RhZGR5LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIlRhIGRvbWVuYSBqZXN0IGRvc3RcXHUwMTE5cG5hIG5hIEF1a2NqYWNoIEdvRGFkZHlcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiSW50ZXJlc3VqZSBDaVxcdTAxMTkgdGEgZG9tZW5hP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJ3eWdhc1xcdTAxNDJhIGkgamVzdCBkb3N0XFx1MDExOXBuYSBuYSBBdWtjamFjaCBHb0RhZGR5LlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiWmRvYlxcdTAxMDVkXFx1MDE3YSB0XFx1MDExOSBkb21lblxcdTAxMTlcIixcImJhY2tvcmRlclRleHRcIjpcIkludGVyZXN1amUgQ2lcXHUwMTE5IGRvbWVuYSB7ZG9tYWlufT8gRG93aWVkeiBzaVxcdTAxMTksIGphayBqXFx1MDEwNSB1enlza2FcXHUwMTA3IHByenkgdVxcdTAxN2N5Y2l1IG9wY2ppIFphbVxceGYzd2llbmlhIG9jemVrdWpcXHUwMTA1Y2UgbmEgZG9tZW55LlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIkRvbWVuYSB7ZG9tYWlufSB3eWdhc1xcdTAxNDJhLiBEb3dpZWR6IHNpXFx1MDExOSwgamFrIGpcXHUwMTA1IHV6eXNrYVxcdTAxMDcgcHJ6eSB1XFx1MDE3Y3ljaXUgb3BjamkgWmFtXFx4ZjN3aWVuaWEgb2N6ZWt1alxcdTAxMDVjZSBuYSBkb21lbnkuXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgV3N6ZWxraWUgcHJhd2EgemFzdHJ6ZVxcdTAxN2NvbmUuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiWmFzYWR5IG9jaHJvbnkgZGFueWNoIG9zb2Jvd3ljaFwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBXc3plbGtpZSBwcmF3YSB6YXN0cnplXFx1MDE3Y29uZS5cIixcInBhcmt3ZWJoZWdjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkge2N1cnJlbnRZZWFyfSAxMjMgUmVnIEx0ZFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJaYXN0cnplXFx1MDE3Y2VuaWU6IE9kbmllc2llbmlhIGRvIGtvbmtyZXRuZWogZmlybXksIHByb2R1a3R1IGx1YiB1c1xcdTAxNDJ1ZyBuYSB0ZWogc3Ryb25pZSBuaWUgc1xcdTAxMDUga29udHJvbG93YW5lIHByemV6IDEyMyBSZWcgTHRkIGkgbmllIHN0YW5vd2lcXHUwMTA1IGFuaSBuaWUgc3VnZXJ1alxcdTAxMDUgamVqIHBvd2lcXHUwMTA1emFuaWEgbHViIHBvcGllcmFuaWEgaW5ueWNoIHJla2xhbW9kYXdjXFx4ZjN3LlwiLFwib3dzSGVhZGluZ1wiOlwiI09wZW5XZVN0YW5kIFxcdTIwMTQgd3NwaWVyYW15IG1hXFx1MDE0MmUgZmlybXkuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiVyB0eWNoIHRydWRueWNoIGN6YXNhY2ggZG9rXFx1MDE0MmFkYW15IHdzemVsa2ljaCBzdGFyYVxcdTAxNDQsIGFieSBwb21cXHhmM2MgVG9iaWUgaSBUd29qZWogZmlybWllIHcgZG9zdG9zb3dhbml1IHNpXFx1MDExOSBkbyBub3dlaiBzeXR1YWNqaS5cIixcIm93c0NUQVwiOlwiRG93aWVkeiBzaVxcdTAxMTkgd2lcXHUwMTE5Y2VqXCIsXCJhZHNCbG9ja2VkVGV4dFwiOlwiUmVrbGFteSBzXFx1MDEwNSB6YWJsb2tvd2FuZVwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwiRG9tZW5hIHtkb21haW59IG1vXFx1MDE3Y2UgYnlcXHUwMTA3IG5hIHNwcnplZGFcXHUwMTdjXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiU2tvbnRha3R1aiBzaVxcdTAxMTkgelxceGEwd1xcdTAxNDJhXFx1MDE1YmNpY2llbGVtIGRvbWVueVwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiTmF6d2FcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFLW1haWxcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxlZm9uXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiS29tZW50YXJ6ZVwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJXeVxcdTAxNWJsaWogd2lhZG9tb1xcdTAxNWJcXHUwMTA3XCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIlN6dWthc3ogcG9kb2JueWNoIGRvbWVuP1wiLFwiQVQtQ2hlY2tPdXRUaGVzZVRvcFBpY2tzXCI6XCJXeXByXFx4ZjNidWogdGUgbmFqbGVwc3plIHByb3BvenljamVcIixcIkFULUJ1eVwiOlwiS3VwXCIsXCJBVC1Qcm9tb3RlZFwiOlwiUHJvbW93YW5lXCJ9Jyl9LDc4ODplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIntkb21haW59IHBvZGUgZXN0YXIgXFx4ZTAgdmVuZGEhXCIsXCJkYnNUZXh0SGVnXCI6XCJcXHhlOSBlc3RhY2lvbmFkbyBncmF0dWl0YW1lbnRlLCB1bWEgY29ydGVzaWEgZGEgMTIzIFJlZy5cIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJ2ZW5jZXUgZSBlc3RcXHhlMSBlc3RhY2lvbmFkbyBncmF0dWl0YW1lbnRlLCBjb3J0ZXNpYSBkYSAxMjMgUmVnLlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcImVzdFxceGUxIGRpc3BvblxceGVkdmVsIG5vIExlaWxcXHhmNWVzIEdvRGFkZHkuXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiRXNzZSBkb21cXHhlZG5pbyBlc3RcXHhlMSBkaXNwb25cXHhlZHZlbCBubyBMZWlsXFx4ZjVlcyBHb0RhZGR5LlwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJ2ZW5jZXUgZSBlc3RcXHhlMSBkaXNwb25cXHhlZHZlbCBubyBMZWlsXFx4ZjVlcyBHb0RhZGR5LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiU2UgZXNzZSBkb21cXHhlZG5pbyBmb3Igc2V1IGUgdm9jXFx4ZWEgcXVpc2VyIHRlciBzZXUgcHJcXHhmM3ByaW8gc2l0ZSwge2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua30gZSBjb25maXJhIG9zIHByb2R1dG9zIGFjZXNzXFx4ZWR2ZWlzLCBjb21vIG8gQ3JpYWRvciBkZSBTaXRlcywgYSBIb3NwZWRhZ2VtIGRlIHNpdGUgZSBtdWl0byBtYWlzLlwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJhY2Vzc2UgbyAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiTyBkb21cXHhlZG5pbyB7ZG9tYWlufSBlc3RcXHhlMSBcXHhlMCB2ZW5kYS4gUGFyYSBhZHF1aXJpLWxvLCBsaWd1ZSBwYXJhIGEge2FmdGVybmljU2l0ZU5hbWV9IG5vIG5cXHhmYW1lcm8ge2FmdGVybmljUGhvbmUxfSBvdSB7YWZ0ZXJuaWNQaG9uZTJ9LiBDbGlxdWUgYXF1aSBwYXJhIHNhYmVyIG1haXMuXCIsXCJkYnNUZXh0XCI6XCJlc3RcXHhlMSBob3NwZWRhZG8gZ3JhdHVpdGFtZW50ZSwgY29ydGVzaWEgZGEgR29EYWRkeS5jb20uXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwidmVuY2V1IGUgZXN0XFx4ZTEgaG9zcGVkYWRvIGdyYXR1aXRhbWVudGUsIGNvcnRlc2lhIGRhIEdvRGFkZHkuY29tLlwiLFwiYXVjdGlvblRleHRcIjpcImVzdFxceGUxIGRpc3BvblxceGVkdmVsIG5vIExlaWxcXHhmNWVzIEdvRGFkZHkuXCIsXCJhdWN0aW9uQmFubmVyVGV4dFwiOlwiRXNzZSBkb21cXHhlZG5pbyBlc3RcXHhlMSBkaXNwb25cXHhlZHZlbCBubyBMZWlsXFx4ZjVlcyBHb0RhZGR5LlwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJWb2NcXHhlYSBxdWVyIGNvbXByXFx4ZTEtbG8/XCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcInZlbmNldSBlIGVzdFxceGUxIGRpc3BvblxceGVkdmVsIG5vIExlaWxcXHhmNWVzIEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJBZHF1aXJhIGVzdGUgZG9tXFx4ZWRuaW9cIixcImJhY2tvcmRlclRleHRcIjpcIlZvY1xceGVhIHRlbSBpbnRlcmVzc2Ugbm8gZG9tXFx4ZWRuaW8ge2RvbWFpbn0/IFZlamEgY29tbyBvYnRcXHhlYS1sbyBlbSBQZWRpZG9zIGRlIERvbVxceGVkbmlvcyBQZW5kZW50ZXMuXCIsXCJleHBpcmVkQmFja29yZGVyVGV4dFwiOlwie2RvbWFpbn0gdmVuY2V1LiBWZWphIGNvbW8gb2J0XFx4ZWEtbG8gZW0gUGVkaWRvcyBkZSBEb21cXHhlZG5pb3MgUGVuZGVudGVzLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IFRvZG9zIG9zIGRpcmVpdG9zIHJlc2VydmFkb3MuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiUG9sXFx4ZWR0aWNhIGRlIFByaXZhY2lkYWRlXCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIFRvZG9zIG9zIGRpcmVpdG9zIHJlc2VydmFkb3MuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiQXZpc28gZGUgaXNlblxceGU3XFx4ZTNvIGRlIHJlc3BvbnNhYmlsaWRhZGU6IEFzIHJlZmVyXFx4ZWFuY2lhcyBhIHF1YWxxdWVyIGVtcHJlc2EsIHByb2R1dG8gb3Ugc2VydmlcXHhlN28gbmVzdGUgU2l0ZSBuXFx4ZTNvIHNcXHhlM28gY29udHJvbGFkYXMgcGVsYSAxMjMgUmVnIEx0ZCBlIG5cXHhlM28gY29uc3RpdHVlbSBvdSBpbXBsaWNhbSBzdWEgYXNzb2NpYVxceGU3XFx4ZTNvIGEgZXNzZXMgdGVyY2Vpcm9zIG91IHNldSBlbmRvc3NvIGRlbGVzLlwiLFwib3dzSGVhZGluZ1wiOlwiQSBoYXNodGFnICNPcGVuV2VTdGFuZCByZXNzYWx0YSBub3NzYSBwYXJjZXJpYSBqdW50byBhb3MgcGVxdWVub3MgbmVnXFx4ZjNjaW9zLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIk5lc3RlIG1vbWVudG8gZGVzYWZpYWRvciwgZXN0YW1vcyBmYXplbmRvIG8gcG9zc1xceGVkdmVsIHBhcmEgYWp1ZGFyIHZvY1xceGVhIGUgc2V1IG5lZ1xceGYzY2lvIGEgc2UgYWRhcHRhcmVtLlwiLFwib3dzQ1RBXCI6XCJTYWliYSBtYWlzXCIsXCJhZHNCbG9ja2VkVGV4dFwiOlwiT3MgYW5cXHhmYW5jaW9zIGVzdFxceGUzbyBibG9xdWVhZG9zLlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gcG9kZSBlc3RhciBcXHhlMCB2ZW5kYS5cIixcImNvbnRhY3RPd25lckRlc2NyaXB0aW9uXCI6XCJFbnRyZSBlbSBjb250YXRvIGNvbSBvIHByb3ByaWV0XFx4ZTFyaW8gZG8gZG9tXFx4ZWRuaW8uXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJOb21lXCIsXCJjb250YWN0T3duZXJFbWFpbFwiOlwiRS1tYWlsXCIsXCJjb250YWN0T3duZXJQaG9uZVwiOlwiVGVsZWZvbmVcIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJDb21lbnRcXHhlMXJpb3NcIixcImNvbnRhY3RPd25lckNUQVwiOlwiRW52aWFyIG1lbnNhZ2VtXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIkVzdFxceGUxIGJ1c2NhbmRvIGRvbVxceGVkbmlvcyBzZW1lbGhhbnRlcz9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiQ29uZmlyYSBlc3RhcyBzdWdlc3RcXHhmNWVzXCIsXCJBVC1CdXlcIjpcIkNvbXByYXJcIixcIkFULVByb21vdGVkXCI6XCJQcm9tb3ZpZG9cIn0nKX0sNjgwOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwiTyBkb21cXHhlZG5pbyB7ZG9tYWlufSBwb2RlclxceGUxIGVzdGFyIFxceGUwIHZlbmRhIVwiLFwiZGJzVGV4dEhlZ1wiOlwiZXN0XFx4ZTEgZXN0YWNpb25hZG8gZ3JhdHVpdGFtZW50ZSBjb21vIGNvcnRlc2lhIGRhIDEyMyBSZWcuXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiZXhwaXJvdSBlIGVzdFxceGUxIGVzdGFjaW9uYWRvIGdyYXR1aXRhbWVudGUgY29tbyBjb3J0ZXNpYSBkYSAxMjMgUmVnLlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcImVzdFxceGUxIGRpc3BvblxceGVkdmVsIG5vcyBMZWlsXFx4ZjVlcyBHb0RhZGR5LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIkVzdGUgZG9tXFx4ZWRuaW8gZXN0XFx4ZTEgZGlzcG9uXFx4ZWR2ZWwgbm9zIExlaWxcXHhmNWVzIEdvRGFkZHlcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiZXhwaXJvdSBlIGVzdFxceGUxIGRpc3BvblxceGVkdmVsIG5vcyBMZWlsXFx4ZjVlcyBHb0RhZGR5LlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiU2UgZm9yIG8gcHJvcHJpZXRcXHhlMXJpbyBkZXN0ZSBub21lIGRlIGRvbVxceGVkbmlvIGUgcHJldGVuZGVyIGNyaWFyIGUgZGlzcG9uaWJpbGl6YXIgb25saW5lIG8gc2V1IHByXFx4ZjNwcmlvIHNpdGUgd2ViLCB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBlIGNvbnN1bHRlIGEgbm9zc2EgZ2FtYSBkZSBwcm9kdXRvcyBhY2Vzc1xceGVkdmVpcywgaW5jbHVpbmRvIHVtIENyaWFkb3IgZGUgU2l0ZXMgV2ViLCBBbG9qYW1lbnRvIFdlYiBlIG1haXMgYWluZGEhXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcInZpc2l0ZSBhIDEyMyBSZWdcIixcInRkZnNUZXh0XCI6XCJPIGRvbVxceGVkbmlvIHtkb21haW59IGVzdFxceGUxIFxceGUwIHZlbmRhLiBQYXJhIG8gYWRxdWlyaXIsIGNvbnRhY3RlIGEge2FmdGVybmljU2l0ZU5hbWV9IGF0cmF2XFx4ZTlzIGRvIG5cXHhmYW1lcm8ge2FmdGVybmljUGhvbmUxfSBvdSB7YWZ0ZXJuaWNQaG9uZTJ9LiBDbGlxdWUgYXF1aSBwYXJhIG9idGVyIG1haXMgaW5mb3JtYVxceGU3XFx4ZjVlcy5cIixcImRic1RleHRcIjpcImVzdFxceGUxIGVzdGFjaW9uYWRvIGdyYXR1aXRhbWVudGUgY29tbyBjb3J0ZXNpYSBkbyBzaXRlIEdvRGFkZHkuY29tLlwiLFwiZXhwaXJlZERic1RleHRcIjpcImV4cGlyb3UgZSBlc3RcXHhlMSBlc3RhY2lvbmFkbyBncmF0dWl0YW1lbnRlIGNvbW8gY29ydGVzaWEgZG8gc2l0ZSBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJlc3RcXHhlMSBkaXNwb25cXHhlZHZlbCBub3MgTGVpbFxceGY1ZXMgR29EYWRkeS5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJFc3RlIGRvbVxceGVkbmlvIGVzdFxceGUxIGRpc3BvblxceGVkdmVsIG5vcyBMZWlsXFx4ZjVlcyBHb0RhZGR5XCIsXCJjYXNocGFya2luZ1RleHRcIjpcIkVzdFxceGUxIGludGVyZXNzYWRvIG5lc3RlIGRvbVxceGVkbmlvP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJleHBpcm91IGUgZXN0XFx4ZTEgZGlzcG9uXFx4ZWR2ZWwgbm9zIExlaWxcXHhmNWVzIEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJPYnRlbmhhIGVzdGUgRG9tXFx4ZWRuaW9cIixcImJhY2tvcmRlclRleHRcIjpcIlRlbSBpbnRlcmVzc2Ugbm8gZG9tXFx4ZWRuaW8ge2RvbWFpbn0/IERlc2N1YnJhIGNvbW8gbyBvYnRlciBhdHJhdlxceGU5cyBkYXMgUmVzZXJ2YXMgZGUgTm9tZXMgZGUgRG9tXFx4ZWRuaW8uXCIsXCJleHBpcmVkQmFja29yZGVyVGV4dFwiOlwiTyBkb21cXHhlZG5pbyB7ZG9tYWlufSBleHBpcm91LiBEZXNjdWJyYSBjb21vIG8gb2J0ZXIgYXRyYXZcXHhlOXMgZGFzIFJlc2VydmFzIGRlIE5vbWVzIGRlIERvbVxceGVkbmlvLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IFRvZG9zIG9zIGRpcmVpdG9zIHJlc2VydmFkb3MuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiUG9sXFx4ZWR0aWNhIGRlIFByaXZhY2lkYWRlXCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIFRvZG9zIG9zIGRpcmVpdG9zIHJlc2VydmFkb3MuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiQXZpc28gZGUgZXhjbHVzXFx4ZTNvIGRlIHJlc3BvbnNhYmlsaWRhZGU6IGFzIHJlZmVyXFx4ZWFuY2lhcyBhIHF1YWxxdWVyIGVtcHJlc2EsIHByb2R1dG8gb3Ugc2VydmlcXHhlN28gZXNwZWNcXHhlZGZpY28gbmVzdGUgU2l0ZSBuXFx4ZTNvIHNcXHhlM28gY29udHJvbGFkYXMgcGVsYSAxMjMgUmVnIEx0ZCBlIG5cXHhlM28gY29uc3RpdHVlbSBuZW0gaW1wbGljYW0gYSByZXNwZXRpdmEgYXNzb2NpYVxceGU3XFx4ZTNvIGEgcXVhaXNxdWVyIGFudW5jaWFudGVzIGV4dGVybm9zIG91IG8gYXBvaW8gZG9zIG1lc21vcy5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBjb20gcGVxdWVuYXMgZW1wcmVzYXMuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiRHVyYW50ZSBlc3RlcyB0ZW1wb3MgZGlmXFx4ZWRjZWlzLCBlc3RhbW9zIGEgZmF6ZXIgdHVkbyBvIHF1ZSBlc3RcXHhlMSBhbyBub3NzbyBhbGNhbmNlIHBhcmEgbyBhanVkYXIgYSBzaSBlIGFvIHNldSBuZWdcXHhmM2NpbyBhIGFkYXB0YXJlbS1zZS5cIixcIm93c0NUQVwiOlwiU2FpYmEgbWFpc1wiLFwiYWRzQmxvY2tlZFRleHRcIjpcIk9zIGFuXFx4ZmFuY2lvcyBwdWJsaWNpdFxceGUxcmlvcyBlc3RcXHhlM28gYmxvcXVlYWRvc1wiLFwiY29udGFjdE93bmVyVGV4dFwiOlwiTyBkb21cXHhlZG5pbyB7ZG9tYWlufSBwb2RlclxceGUxIGVzdGFyIFxceGUwIHZlbmRhLlwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIkNvbnRhY3RhciBvIFByb3ByaWV0XFx4ZTFyaW8gZG8gRG9tXFx4ZWRuaW9cIixcImNvbnRhY3RPd25lck5hbWVcIjpcIk5vbWVcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJFbWFpbFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRlbGVmb25lXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiQ29tZW50XFx4ZTFyaW9zXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIkVudmlhciBtZW5zYWdlbVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJFc3RcXHhlMSBcXHhlMCBwcm9jdXJhIGRlIGRvbVxceGVkbmlvcyBzZW1lbGhhbnRlcz9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiVmVqYSBlc3RhcyBleGNlbGVudGVzIG9wXFx4ZTdcXHhmNWVzXCIsXCJBVC1CdXlcIjpcIkNvbXByYXJcIixcIkFULVByb21vdGVkXCI6XCJQcm9tb3ZpZG8ocylcIn0nKX0sOTM1MjplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIlxcdTIzMjAyNDA2MzExXFx1MjMyMXtkb21haW59IG1cXHhlNXkgYlxceGU5IGZcXHhmMnIgc1xceGU1bFxceGU5IVxcdTIzMjAyNDA2MzExXFx1MjMyMVwiLFwiZGJzVGV4dEhlZ1wiOlwiXFx1MjMyMDI0MDg5ODJcXHUyMzIxXFx4ZWVzIHBcXHhlNXJrXFx4ZTlkIGZyXFx4ZTlcXHhlOSwgY1xceGYyXFx4ZmNydFxceGU5c3kgXFx4ZjJmIDEyMyBSXFx4ZTlnLlxcdTIzMjAyNDA4OTgyXFx1MjMyMVwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcIlxcdTIzMjAyNDA4OTgzXFx1MjMyMWhcXHhlNXMgXFx4ZTl4cFxceGVlclxceGU5ZCBcXHhlNW5kIFxceGVlcyBwXFx4ZTVya1xceGU5ZCBmclxceGU5XFx4ZTksIGNcXHhmMlxceGZjcnRcXHhlOXN5IFxceGYyZiAxMjMgUlxceGU5Zy5cXHUyMzIwMjQwODk4M1xcdTIzMjFcIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJcXHUyMzIwMjQwNjMxNFxcdTIzMjFcXHhlZXMgXFx4ZTV2XFx4ZTVcXHhlZWxcXHhlNWJsXFx4ZTkgXFx4ZjJuIEdcXHhmMkRcXHhlNWRkeSBcXHhjNVxceGZjY3RcXHhlZVxceGYybnMuXFx1MjMyMDI0MDYzMTRcXHUyMzIxXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiXFx1MjMyMDI0MDYzMTVcXHUyMzIxVGhcXHhlZXMgZFxceGYybVxceGU1XFx4ZWVuIFxceGVlcyBcXHhlNXZcXHhlNVxceGVlbFxceGU1YmxcXHhlOSBcXHhmMm4gR1xceGYyRFxceGU1ZGR5IFxceGM1XFx4ZmNjdFxceGVlXFx4ZjJuc1xcdTIzMjAyNDA2MzE1XFx1MjMyMVwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJcXHUyMzIwMjQwNjMxNlxcdTIzMjFoXFx4ZTVzIFxceGU5eHBcXHhlZXJcXHhlOWQgXFx4ZTVuZCBcXHhlZXMgXFx4ZTV2XFx4ZTVcXHhlZWxcXHhlNWJsXFx4ZTkgXFx4ZjJuIEdcXHhmMkRcXHhlNWRkeSBcXHhjNVxceGZjY3RcXHhlZVxceGYybnMuXFx1MjMyMDI0MDYzMTZcXHUyMzIxXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJcXHUyMzIwMjYwODM4NlxcdTIzMjFcXHhjZWYgeVxceGYyXFx4ZmMgXFx4ZjJ3biB0aFxceGVlcyBkXFx4ZjJtXFx4ZTVcXHhlZW4gblxceGU1bVxceGU5IFxceGU1bmQgd1xceGYyXFx4ZmNsZCBsXFx4ZWVrXFx4ZTkgdFxceGYyIGdcXHhlOXQgeVxceGYyXFx4ZmNyIFxceGYyd24gd1xceGU5YnNcXHhlZXRcXHhlOSBcXHhmY3AgXFx4ZTVuZCByXFx4ZmNublxceGVlbmcsIHRoXFx4ZTluIHdoeSBuXFx4ZjJ0IHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IFxceGU1bmQgY2hcXHhlOWNrIFxceGYyXFx4ZmN0IFxceGYyXFx4ZmNyIHJcXHhlNW5nXFx4ZTkgXFx4ZjJmIFxceGU1ZmZcXHhmMnJkXFx4ZTVibFxceGU5IHByXFx4ZjJkXFx4ZmNjdHMsIHdoXFx4ZWVjaCBcXHhlZW5jbFxceGZjZFxceGU5cyBXXFx4ZTlic1xceGVldFxceGU5IEJcXHhmY1xceGVlbGRcXHhlOXIsIFdcXHhlOWIgSFxceGYyc3RcXHhlZW5nIFxceGU1bmQgbVxceGYyclxceGU5IVxcdTIzMjAyNjA4Mzg2XFx1MjMyMVwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJcXHUyMzIwMjYwODM4N1xcdTIzMjF2XFx4ZWVzXFx4ZWV0IDEyMyBSXFx4ZTlnXFx1MjMyMDI2MDgzODdcXHUyMzIxXCIsXCJ0ZGZzVGV4dFwiOlwiXFx1MjMyMDIyNDYyMjhcXHUyMzIxVGhcXHhlOSBkXFx4ZjJtXFx4ZTVcXHhlZW4ge2RvbWFpbn0gXFx4ZWVzIGZcXHhmMnIgc1xceGU1bFxceGU5LiBUXFx4ZjIgcFxceGZjcmNoXFx4ZTVzXFx4ZTksIGNcXHhlNWxsIHthZnRlcm5pY1NpdGVOYW1lfSBcXHhlNXQge2FmdGVybmljUGhvbmUxfSBcXHhmMnIge2FmdGVybmljUGhvbmUyfS4gQ2xcXHhlZWNrIGhcXHhlOXJcXHhlOSBmXFx4ZjJyIG1cXHhmMnJcXHhlOSBkXFx4ZTl0XFx4ZTVcXHhlZWxzLlxcdTIzMjAyMjQ2MjI4XFx1MjMyMVwiLFwiZGJzVGV4dFwiOlwiXFx1MjMyMDIyNDYyMjlcXHUyMzIxXFx4ZWVzIHBcXHhlNXJrXFx4ZTlkIGZyXFx4ZTlcXHhlOSwgY1xceGYyXFx4ZmNydFxceGU5c3kgXFx4ZjJmIEdcXHhmMkRcXHhlNWRkeS5jXFx4ZjJtLlxcdTIzMjAyMjQ2MjI5XFx1MjMyMVwiLFwiZXhwaXJlZERic1RleHRcIjpcIlxcdTIzMjAyMjQ2MjMwXFx1MjMyMWhcXHhlNXMgXFx4ZTl4cFxceGVlclxceGU5ZCBcXHhlNW5kIFxceGVlcyBwXFx4ZTVya1xceGU5ZCBmclxceGU5XFx4ZTksIGNcXHhmMlxceGZjcnRcXHhlOXN5IFxceGYyZiBHXFx4ZjJEXFx4ZTVkZHkuY1xceGYybS5cXHUyMzIwMjI0NjIzMFxcdTIzMjFcIixcImF1Y3Rpb25UZXh0XCI6XCJcXHUyMzIwMjI0NjIzMVxcdTIzMjFcXHhlZXMgXFx4ZTV2XFx4ZTVcXHhlZWxcXHhlNWJsXFx4ZTkgXFx4ZjJuIEdcXHhmMkRcXHhlNWRkeSBcXHhjNVxceGZjY3RcXHhlZVxceGYybnMuXFx1MjMyMDIyNDYyMzFcXHUyMzIxXCIsXCJhdWN0aW9uQmFubmVyVGV4dFwiOlwiXFx1MjMyMDIyNjMzNDlcXHUyMzIxVGhcXHhlZXMgZFxceGYybVxceGU1XFx4ZWVuIFxceGVlcyBcXHhlNXZcXHhlNVxceGVlbFxceGU1YmxcXHhlOSBcXHhmMm4gR1xceGYyRFxceGU1ZGR5IFxceGM1XFx4ZmNjdFxceGVlXFx4ZjJuc1xcdTIzMjAyMjYzMzQ5XFx1MjMyMVwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHUyMzIwMjI2MzM1MFxcdTIzMjFcXHhjZW50XFx4ZTlyXFx4ZTlzdFxceGU5ZCBcXHhlZW4gdGhcXHhlZXMgZFxceGYybVxceGU1XFx4ZWVuP1xcdTIzMjAyMjYzMzUwXFx1MjMyMVwiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJcXHUyMzIwMjI0NjIzMlxcdTIzMjFoXFx4ZTVzIFxceGU5eHBcXHhlZXJcXHhlOWQgXFx4ZTVuZCBcXHhlZXMgXFx4ZTV2XFx4ZTVcXHhlZWxcXHhlNWJsXFx4ZTkgXFx4ZjJuIEdcXHhmMkRcXHhlNWRkeSBcXHhjNVxceGZjY3RcXHhlZVxceGYybnMuXFx1MjMyMDIyNDYyMzJcXHUyMzIxXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJcXHUyMzIwMjI0NjIzM1xcdTIzMjFHXFx4ZTl0IFRoXFx4ZWVzIERcXHhmMm1cXHhlNVxceGVlblxcdTIzMjAyMjQ2MjMzXFx1MjMyMVwiLFwiYmFja29yZGVyVGV4dFwiOlwiXFx1MjMyMDI0MDYzMThcXHUyMzIxXFx4Y2VudFxceGU5clxceGU5c3RcXHhlOWQgXFx4ZWVuIHtkb21haW59PyBGXFx4ZWVuZCBcXHhmMlxceGZjdCBoXFx4ZjJ3IHRcXHhmMiBnXFx4ZTl0IFxceGVldCB0aHJcXHhmMlxceGZjZ2ggRFxceGYybVxceGU1XFx4ZWVuIEJcXHhlNWNrXFx4ZjJyZFxceGU5ci5cXHUyMzIwMjQwNjMxOFxcdTIzMjFcIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJcXHUyMzIwMjI0NjIzNVxcdTIzMjF7ZG9tYWlufSBoXFx4ZTVzIFxceGU5eHBcXHhlZXJcXHhlOWQuIEZcXHhlZW5kIFxceGYyXFx4ZmN0IGhcXHhmMncgdFxceGYyIGdcXHhlOXQgXFx4ZWV0IHRoclxceGYyXFx4ZmNnaCBEXFx4ZjJtXFx4ZTVcXHhlZW4gQlxceGU1Y2tcXHhmMnJkXFx4ZTlyLlxcdTIzMjAyMjQ2MjM1XFx1MjMyMVwiLFwiY29weXJpZ2h0VGV4dFwiOlwiXFx1MjMyMDIyNDYyMzZcXHUyMzIxQ1xceGYycHlyXFx4ZWVnaHQgXFx4YTkgIFxceGM1bGwgclxceGVlZ2h0cyByXFx4ZTlzXFx4ZTlydlxceGU5ZC5cXHUyMzIwMjI0NjIzNlxcdTIzMjFcIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJcXHUyMzIwMjI0NjIzN1xcdTIzMjFQclxceGVldlxceGU1Y3kgUFxceGYybFxceGVlY3lcXHUyMzIwMjI0NjIzN1xcdTIzMjFcIixcInBhcmt3ZWJjb3B5cmlnaHRUZXh0XCI6XCJcXHUyMzIwMjI0ODg4N1xcdTIzMjFDXFx4ZjJweXJcXHhlZWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR1xceGYyRFxceGU1ZGR5LCBMTEMuIFxceGM1bGwgclxceGVlZ2h0cyByXFx4ZTlzXFx4ZTlydlxceGU5ZC5cXHUyMzIwMjI0ODg4N1xcdTIzMjFcIixcInBhcmt3ZWJoZWdjb3B5cmlnaHRUZXh0XCI6XCJcXHUyMzIwMjYwODM4OFxcdTIzMjFDXFx4ZjJweXJcXHhlZWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSXFx4ZTlnIEx0ZCB8XFx1MjMyMDI2MDgzODhcXHUyMzIxXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIlxcdTIzMjAyNDE2MDQ4XFx1MjMyMURcXHhlZXNjbFxceGU1XFx4ZWVtXFx4ZTlyOiBSXFx4ZTlmXFx4ZTlyXFx4ZTluY1xceGU5cyB0XFx4ZjIgXFx4ZTVueSBzcFxceGU5Y1xceGVlZlxceGVlYyBjXFx4ZjJtcFxceGU1bnksIHByXFx4ZjJkXFx4ZmNjdCBcXHhmMnIgc1xceGU5cnZcXHhlZWNcXHhlOXMgXFx4ZjJuIHRoXFx4ZWVzIFNcXHhlZXRcXHhlOSBcXHhlZXMgblxceGYydCBjXFx4ZjJudHJcXHhmMmxsXFx4ZTlkIGJ5IDEyMyBSXFx4ZTlnIEx0ZCBcXHhlNW5kIGRcXHhmMlxceGU5cyBuXFx4ZjJ0IGNcXHhmMm5zdFxceGVldFxceGZjdFxceGU5IFxceGYyciBcXHhlZW1wbHkgXFx4ZWV0cyBcXHhlNXNzXFx4ZjJjXFx4ZWVcXHhlNXRcXHhlZVxceGYybiB3XFx4ZWV0aCBcXHhmMnIgXFx4ZTluZFxceGYycnNcXHhlOW1cXHhlOW50IFxceGYyZiB0aFxceGVlcmQgcFxceGU1cnR5IFxceGU1ZHZcXHhlOXJ0XFx4ZWVzXFx4ZTlycy5cXHUyMzIwMjQxNjA0OFxcdTIzMjFcIixcIm93c0hlYWRpbmdcIjpcIlxcdTIzMjAyMjQ2MjM5XFx1MjMyMSNcXHhkMnBcXHhlOW5XXFx4ZTlTdFxceGU1bmQgd1xceGVldGggc21cXHhlNWxsIGJcXHhmY3NcXHhlZW5cXHhlOXNzXFx4ZTlzLlxcdTIzMjAyMjQ2MjM5XFx1MjMyMVwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlxcdTIzMjAyMjQ2MjQwXFx1MjMyMURcXHhmY3JcXHhlZW5nIHRoXFx4ZTlzXFx4ZTkgdFxceGYyXFx4ZmNnaCB0XFx4ZWVtXFx4ZTlzLCB3XFx4ZTlcXCdyXFx4ZTkgZFxceGYyXFx4ZWVuZyBcXHhlOXZcXHhlOXJ5dGhcXHhlZW5nIHdcXHhlOSBjXFx4ZTVuIHRcXHhmMiBoXFx4ZTlscCB5XFx4ZjJcXHhmYyBcXHhlNW5kIHlcXHhmMlxceGZjciBiXFx4ZmNzXFx4ZWVuXFx4ZTlzcyBcXHhlNWRcXHhlNXB0LlxcdTIzMjAyMjQ2MjQwXFx1MjMyMVwiLFwib3dzQ1RBXCI6XCJcXHUyMzIwMjI0NjI0MVxcdTIzMjFMXFx4ZTlcXHhlNXJuIE1cXHhmMnJcXHhlOVxcdTIzMjAyMjQ2MjQxXFx1MjMyMVwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIlxcdTIzMjAyMjQ2MjQyXFx1MjMyMVxceGM1ZHMgXFx4ZTVyXFx4ZTkgYmxcXHhmMmNrXFx4ZTlkXFx1MjMyMDIyNDYyNDJcXHUyMzIxXCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJcXHUyMzIwMjI0NjI0M1xcdTIzMjF7ZG9tYWlufSBtXFx4ZTV5IGJcXHhlOSBmXFx4ZjJyIHNcXHhlNWxcXHhlOVxcdTIzMjAyMjQ2MjQzXFx1MjMyMVwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIlxcdTIzMjAyMjQ2MjQ0XFx1MjMyMUNcXHhmMm50XFx4ZTVjdCB0aFxceGU5IERcXHhmMm1cXHhlNVxceGVlbiBcXHhkMnduXFx4ZTlyXFx1MjMyMDIyNDYyNDRcXHUyMzIxXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJcXHUyMzIwMjI0NjI0NVxcdTIzMjFOXFx4ZTVtXFx4ZTlcXHUyMzIwMjI0NjI0NVxcdTIzMjFcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJcXHUyMzIwMjI0NjI0NlxcdTIzMjFcXHhjOW1cXHhlNVxceGVlbFxcdTIzMjAyMjQ2MjQ2XFx1MjMyMVwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdTIzMjAyMjQ2MjQ3XFx1MjMyMVBoXFx4ZjJuXFx4ZTlcXHUyMzIwMjI0NjI0N1xcdTIzMjFcIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJcXHUyMzIwMjI0NjI0OFxcdTIzMjFDXFx4ZjJtbVxceGU5bnRzXFx1MjMyMDIyNDYyNDhcXHUyMzIxXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIlxcdTIzMjAyMjQ2MjQ5XFx1MjMyMVNcXHhlOW5kIE1cXHhlOXNzXFx4ZTVnXFx4ZTlcXHUyMzIwMjI0NjI0OVxcdTIzMjFcIixcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wiOlwiXFx1MjMyMDI1OTQ2ODRcXHUyMzIxTFxceGYyXFx4ZjJrXFx4ZWVuZyBmXFx4ZjJyIFNcXHhlZW1cXHhlZWxcXHhlNXIgRFxceGYybVxceGU1XFx4ZWVucz9cXHUyMzIwMjU5NDY4NFxcdTIzMjFcIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiXFx1MjMyMDI1OTQ2ODVcXHUyMzIxQ2hcXHhlOWNrIFxceGYyXFx4ZmN0IHRoXFx4ZTlzXFx4ZTkgdFxceGYycCBwXFx4ZWVja3NcXHUyMzIwMjU5NDY4NVxcdTIzMjFcIixcIkFULUJ1eVwiOlwiXFx1MjMyMDI1OTQ2ODZcXHUyMzIxQlxceGZjeVxcdTIzMjAyNTk0Njg2XFx1MjMyMVwiLFwiQVQtUHJvbW90ZWRcIjpcIlxcdTIzMjAyNTk0Njg3XFx1MjMyMVByXFx4ZjJtXFx4ZjJ0XFx4ZTlkXFx1MjMyMDI1OTQ2ODdcXHUyMzIxXCJ9Jyl9LDg3NzQ6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJcXHUwNDE0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZCB7ZG9tYWlufSBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDM1XFx1MDQ0MiBcXHUwNDMxXFx1MDQ0YlxcdTA0NDJcXHUwNDRjIFxcdTA0MzJcXHUwNDRiXFx1MDQ0MVxcdTA0NDJcXHUwNDMwXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZCBcXHUwNDNkXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDM0XFx1MDQzMFxcdTA0MzZcXHUwNDQzIVwiLFwiZGJzVGV4dEhlZ1wiOlwiXFx1MDQzZlxcdTA0NDBcXHUwNDM4XFx1MDQzZlxcdTA0MzBcXHUwNDQwXFx1MDQzYVxcdTA0M2VcXHUwNDMyXFx1MDQzMFxcdTA0M2QgXFx1MDQzMVxcdTA0MzVcXHUwNDQxXFx1MDQzZlxcdTA0M2JcXHUwNDMwXFx1MDQ0MlxcdTA0M2RcXHUwNDNlIFxcdTA0MzdcXHUwNDMwIFxcdTA0NDFcXHUwNDQ3XFx1MDQzNVxcdTA0NDIgMTIzIFJlZy5cIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJcXHUwNDM4XFx1MDQ0MVxcdTA0NDJcXHUwNDM1XFx1MDQzYSBcXHUwNDM4IFxcdTA0M2ZcXHUwNDQwXFx1MDQzOFxcdTA0M2ZcXHUwNDMwXFx1MDQ0MFxcdTA0M2FcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkIFxcdTA0MzFcXHUwNDM1XFx1MDQ0MVxcdTA0M2ZcXHUwNDNiXFx1MDQzMFxcdTA0NDJcXHUwNDNkXFx1MDQzZSBcXHUwNDM3XFx1MDQzMCBcXHUwNDQxXFx1MDQ0N1xcdTA0MzVcXHUwNDQyIDEyMyBSZWcuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiXFx1MDQzMlxcdTA0NGJcXHUwNDQxXFx1MDQ0MlxcdTA0MzBcXHUwNDMyXFx1MDQzYlxcdTA0MzVcXHUwNDNkIFxcdTA0M2RcXHUwNDMwIFxcdTA0M2ZcXHUwNDQwXFx1MDQzZVxcdTA0MzRcXHUwNDMwXFx1MDQzNlxcdTA0NDMgXFx1MDQzZFxcdTA0MzAgXFx1MDQxMFxcdTA0NDNcXHUwNDNhXFx1MDQ0NlxcdTA0MzhcXHUwNDNlXFx1MDQzZFxcdTA0NGIgR29EYWRkeS5cIixcImF1Y3Rpb25IZWdCYW5uZXJUZXh0XCI6XCJcXHUwNDJkXFx1MDQ0MlxcdTA0M2VcXHUwNDQyIFxcdTA0MzRcXHUwNDNlXFx1MDQzY1xcdTA0MzVcXHUwNDNkIFxcdTA0MzJcXHUwNDRiXFx1MDQ0MVxcdTA0NDJcXHUwNDMwXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZCBcXHUwNDNkXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDM0XFx1MDQzMFxcdTA0MzZcXHUwNDQzIFxcdTA0NDdcXHUwNDM1XFx1MDQ0MFxcdTA0MzVcXHUwNDM3IFxcdTA0MTBcXHUwNDQzXFx1MDQzYVxcdTA0NDZcXHUwNDM4XFx1MDQzZVxcdTA0M2RcXHUwNDRiIEdvRGFkZHkuXCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcIlxcdTA0MzhcXHUwNDQxXFx1MDQ0MlxcdTA0MzVcXHUwNDNhIFxcdTA0MzggXFx1MDQzMlxcdTA0NGJcXHUwNDQxXFx1MDQ0MlxcdTA0MzBcXHUwNDMyXFx1MDQzYlxcdTA0MzVcXHUwNDNkIFxcdTA0M2RcXHUwNDMwIFxcdTA0M2ZcXHUwNDQwXFx1MDQzZVxcdTA0MzRcXHUwNDMwXFx1MDQzNlxcdTA0NDMgXFx1MDQzZFxcdTA0MzAgXFx1MDQxMFxcdTA0NDNcXHUwNDNhXFx1MDQ0NlxcdTA0MzhcXHUwNDNlXFx1MDQzZFxcdTA0NGIgR29EYWRkeS5cIixcImhlZ0Zvb3RlclRleHRcIjpcIlxcdTA0MjVcXHUwNDNlXFx1MDQ0MlxcdTA0MzhcXHUwNDQyXFx1MDQzNSBcXHUwNDNmXFx1MDQ0MFxcdTA0MzhcXHUwNDNlXFx1MDQzMVxcdTA0NDBcXHUwNDM1XFx1MDQ0MVxcdTA0NDJcXHUwNDM4IFxcdTA0NGRcXHUwNDQyXFx1MDQzZVxcdTA0NDIgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2QgXFx1MDQzNFxcdTA0M2JcXHUwNDRmIFxcdTA0NDFcXHUwNDM1XFx1MDQzMVxcdTA0NGY/IFxcdTA0MjFcXHUwNDM1XFx1MDQ0MFxcdTA0MzJcXHUwNDM4XFx1MDQ0MSAxMjMgUmVnIFxcdTA0MzdcXHUwNDMwXFx1MDQzYVxcdTA0M2JcXHUwNDRlXFx1MDQ0N1xcdTA0MzhcXHUwNDNiIFxcdTA0M2ZcXHUwNDMwXFx1MDQ0MFxcdTA0NDJcXHUwNDNkXFx1MDQzNVxcdTA0NDBcXHUwNDQxXFx1MDQzYVxcdTA0M2VcXHUwNDM1IFxcdTA0NDFcXHUwNDNlXFx1MDQzM1xcdTA0M2JcXHUwNDMwXFx1MDQ0OFxcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQ0MSBHb0RhZGR5LCBcXHUwNDQ3XFx1MDQ0MlxcdTA0M2VcXHUwNDMxXFx1MDQ0YiBcXHUwNDNmXFx1MDQ0MFxcdTA0MzVcXHUwNDM0XFx1MDQzYlxcdTA0M2VcXHUwNDM2XFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0MzJcXHUwNDMwXFx1MDQzYyBcXHUwNDQzXFx1MDQzZFxcdTA0MzhcXHUwNDNhXFx1MDQzMFxcdTA0M2JcXHUwNDRjXFx1MDQzZFxcdTA0NDNcXHUwNDRlIFxcdTA0NDNcXHUwNDQxXFx1MDQzYlxcdTA0NDNcXHUwNDMzXFx1MDQ0MywgXFx1MDQzYVxcdTA0M2VcXHUwNDQyXFx1MDQzZVxcdTA0NDBcXHUwNDMwXFx1MDQ0ZiBcXHUwNDNmXFx1MDQzZVxcdTA0MzdcXHUwNDMyXFx1MDQzZVxcdTA0M2JcXHUwNDM4XFx1MDQ0MiBcXHUwNDMyXFx1MDQzMFxcdTA0M2MgXFx1MDQzN1xcdTA0MzBcXHUwNDRmXFx1MDQzMlxcdTA0MzhcXHUwNDQyXFx1MDQ0YyBcXHUwNDNmXFx1MDQ0MFxcdTA0MzBcXHUwNDMyXFx1MDQzMCBcXHUwNDNkXFx1MDQzMCBcXHUwNDRkXFx1MDQ0MlxcdTA0M2UgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDNkXFx1MDQzZVxcdTA0MzUgXFx1MDQzOFxcdTA0M2NcXHUwNDRmLiBcXHUwNDFlXFx1MDQzMVxcdTA0NDBcXHUwNDMwXFx1MDQ0MlxcdTA0MzhcXHUwNDQyXFx1MDQzNSBcXHUwNDMyXFx1MDQzZFxcdTA0MzhcXHUwNDNjXFx1MDQzMFxcdTA0M2RcXHUwNDM4XFx1MDQzNTogXFx1MDQzZFxcdTA0MzBcXHUwNDM2XFx1MDQzMFxcdTA0MzIgXFx1MDQ0ZFxcdTA0NDJcXHUwNDQzIFxcdTA0M2FcXHUwNDNkXFx1MDQzZVxcdTA0M2ZcXHUwNDNhXFx1MDQ0MywgXFx1MDQzMlxcdTA0NGIgXFx1MDQzZlxcdTA0MzVcXHUwNDQwXFx1MDQzNVxcdTA0MzlcXHUwNDM0XFx1MDQzNVxcdTA0NDJcXHUwNDM1IFxcdTA0M2RcXHUwNDMwIFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDIgR29EYWRkeS5cIixcInRkZnNUZXh0XCI6XCJcXHUwNDE0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZCB7ZG9tYWlufSBcXHUwNDMyXFx1MDQ0YlxcdTA0NDFcXHUwNDQyXFx1MDQzMFxcdTA0MzJcXHUwNDNiXFx1MDQzNVxcdTA0M2QgXFx1MDQzZFxcdTA0MzAgXFx1MDQzZlxcdTA0NDBcXHUwNDNlXFx1MDQzNFxcdTA0MzBcXHUwNDM2XFx1MDQ0My4gXFx1MDQxNFxcdTA0M2JcXHUwNDRmIFxcdTA0M2ZcXHUwNDNlXFx1MDQzYVxcdTA0NDNcXHUwNDNmXFx1MDQzYVxcdTA0MzggXFx1MDQzZlxcdTA0M2VcXHUwNDM3XFx1MDQzMlxcdTA0M2VcXHUwNDNkXFx1MDQzOFxcdTA0NDJcXHUwNDM1IHthZnRlcm5pY1NpdGVOYW1lfSBcXHUwNDNmXFx1MDQzZSBcXHUwNDNkXFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQ0MFxcdTA0NDMge2FmdGVybmljUGhvbmUxfSBcXHUwNDM4XFx1MDQzYlxcdTA0Mzgge2FmdGVybmljUGhvbmUyfS4gXFx1MDQxYVxcdTA0M2JcXHUwNDM4XFx1MDQzYVxcdTA0M2RcXHUwNDM4XFx1MDQ0MlxcdTA0MzUgXFx1MDQzN1xcdTA0MzRcXHUwNDM1XFx1MDQ0MVxcdTA0NGMgXFx1MDQzNFxcdTA0M2JcXHUwNDRmIFxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NDNcXHUwNDQ3XFx1MDQzNVxcdTA0M2RcXHUwNDM4XFx1MDQ0ZiBcXHUwNDNmXFx1MDQzZVxcdTA0MzRcXHUwNDQwXFx1MDQzZVxcdTA0MzFcXHUwNDNkXFx1MDQzZVxcdTA0MzkgXFx1MDQzOFxcdTA0M2RcXHUwNDQ0XFx1MDQzZVxcdTA0NDBcXHUwNDNjXFx1MDQzMFxcdTA0NDZcXHUwNDM4XFx1MDQzOC5cIixcImRic1RleHRcIjpcIlxcdTA0M2ZcXHUwNDQwXFx1MDQzOFxcdTA0M2ZcXHUwNDMwXFx1MDQ0MFxcdTA0M2FcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkIFxcdTA0MzFcXHUwNDM1XFx1MDQ0MVxcdTA0M2ZcXHUwNDNiXFx1MDQzMFxcdTA0NDJcXHUwNDNkXFx1MDQzZSBcXHUwNDM3XFx1MDQzMCBcXHUwNDQxXFx1MDQ0N1xcdTA0MzVcXHUwNDQyIEdvRGFkZHkuY29tXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiXFx1MDQzOFxcdTA0NDFcXHUwNDQyXFx1MDQzNVxcdTA0M2EgXFx1MDQzOCBcXHUwNDNmXFx1MDQ0MFxcdTA0MzhcXHUwNDNmXFx1MDQzMFxcdTA0NDBcXHUwNDNhXFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQzZCBcXHUwNDMxXFx1MDQzNVxcdTA0NDFcXHUwNDNmXFx1MDQzYlxcdTA0MzBcXHUwNDQyXFx1MDQzZFxcdTA0M2UgXFx1MDQzN1xcdTA0MzAgXFx1MDQ0MVxcdTA0NDdcXHUwNDM1XFx1MDQ0MiBHb0RhZGR5LmNvbVwiLFwiYXVjdGlvblRleHRcIjpcIlxcdTA0MzJcXHUwNDRiXFx1MDQ0MVxcdTA0NDJcXHUwNDMwXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZCBcXHUwNDNkXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDM0XFx1MDQzMFxcdTA0MzZcXHUwNDQzIFxcdTA0M2RcXHUwNDMwIFxcdTA0MTBcXHUwNDQzXFx1MDQzYVxcdTA0NDZcXHUwNDM4XFx1MDQzZVxcdTA0M2RcXHUwNDRiIEdvRGFkZHkuXCIsXCJhdWN0aW9uQmFubmVyVGV4dFwiOlwiXFx1MDQyZFxcdTA0NDJcXHUwNDNlXFx1MDQ0MiBcXHUwNDM0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZCBcXHUwNDMyXFx1MDQ0YlxcdTA0NDFcXHUwNDQyXFx1MDQzMFxcdTA0MzJcXHUwNDNiXFx1MDQzNVxcdTA0M2QgXFx1MDQzZFxcdTA0MzAgXFx1MDQzZlxcdTA0NDBcXHUwNDNlXFx1MDQzNFxcdTA0MzBcXHUwNDM2XFx1MDQ0MyBcXHUwNDQ3XFx1MDQzNVxcdTA0NDBcXHUwNDM1XFx1MDQzNyBcXHUwNDEwXFx1MDQ0M1xcdTA0M2FcXHUwNDQ2XFx1MDQzOFxcdTA0M2VcXHUwNDNkXFx1MDQ0YiBHb0RhZGR5LlwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHUwNDI1XFx1MDQzZVxcdTA0NDJcXHUwNDM4XFx1MDQ0MlxcdTA0MzUgXFx1MDQzZlxcdTA0NDBcXHUwNDM4XFx1MDQzZVxcdTA0MzFcXHUwNDQwXFx1MDQzNVxcdTA0NDFcXHUwNDQyXFx1MDQzOCBcXHUwNDRkXFx1MDQ0MlxcdTA0M2VcXHUwNDQyIFxcdTA0MzRcXHUwNDNlXFx1MDQzY1xcdTA0MzVcXHUwNDNkP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJcXHUwNDM4XFx1MDQ0MVxcdTA0NDJcXHUwNDM1XFx1MDQzYSBcXHUwNDM4IFxcdTA0MzJcXHUwNDRiXFx1MDQ0MVxcdTA0NDJcXHUwNDMwXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZCBcXHUwNDNkXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDM0XFx1MDQzMFxcdTA0MzZcXHUwNDQzIFxcdTA0M2RcXHUwNDMwIFxcdTA0MTBcXHUwNDQzXFx1MDQzYVxcdTA0NDZcXHUwNDM4XFx1MDQzZVxcdTA0M2RcXHUwNDRiIEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJcXHUwNDFmXFx1MDQ0MFxcdTA0MzhcXHUwNDNlXFx1MDQzMVxcdTA0NDBcXHUwNDM1XFx1MDQ0MVxcdTA0NDJcXHUwNDM4IFxcdTA0NGRcXHUwNDQyXFx1MDQzZVxcdTA0NDIgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2RcIixcImJhY2tvcmRlclRleHRcIjpcIlxcdTA0MThcXHUwNDNkXFx1MDQ0MlxcdTA0MzVcXHUwNDQwXFx1MDQzNVxcdTA0NDFcXHUwNDQzXFx1MDQzNVxcdTA0NDJcXHUwNDM1XFx1MDQ0MVxcdTA0NGMgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDNlXFx1MDQzYyB7ZG9tYWlufT8gXFx1MDQyM1xcdTA0MzdcXHUwNDNkXFx1MDQzMFxcdTA0MzlcXHUwNDQyXFx1MDQzNSwgXFx1MDQzYVxcdTA0MzBcXHUwNDNhIFxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NDNcXHUwNDQ3XFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0MzVcXHUwNDMzXFx1MDQzZSBcXHUwNDQ3XFx1MDQzNVxcdTA0NDBcXHUwNDM1XFx1MDQzNyBcXHUwNDExXFx1MDQ0MFxcdTA0M2VcXHUwNDNkXFx1MDQzOFxcdTA0NDBcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDNlXFx1MDQzMi5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJcXHUwNDIxXFx1MDQ0MFxcdTA0M2VcXHUwNDNhIFxcdTA0MzRcXHUwNDM1XFx1MDQzOVxcdTA0NDFcXHUwNDQyXFx1MDQzMlxcdTA0MzhcXHUwNDRmIFxcdTA0MzRcXHUwNDNlXFx1MDQzY1xcdTA0MzVcXHUwNDNkXFx1MDQzMCB7ZG9tYWlufSBcXHUwNDM4XFx1MDQ0MVxcdTA0NDJcXHUwNDM1XFx1MDQzYS4gXFx1MDQyM1xcdTA0MzdcXHUwNDNkXFx1MDQzMFxcdTA0MzlcXHUwNDQyXFx1MDQzNSwgXFx1MDQzYVxcdTA0MzBcXHUwNDNhIFxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NDNcXHUwNDQ3XFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0MzVcXHUwNDMzXFx1MDQzZSBcXHUwNDQ3XFx1MDQzNVxcdTA0NDBcXHUwNDM1XFx1MDQzNyBcXHUwNDExXFx1MDQ0MFxcdTA0M2VcXHUwNDNkXFx1MDQzOFxcdTA0NDBcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDNlXFx1MDQzMi5cIixcImNvcHlyaWdodFRleHRcIjpcIlxcdTA0MTBcXHUwNDMyXFx1MDQ0MlxcdTA0M2VcXHUwNDQwXFx1MDQ0MVxcdTA0M2FcXHUwNDNlXFx1MDQzNSBcXHUwNDNmXFx1MDQ0MFxcdTA0MzBcXHUwNDMyXFx1MDQzZSBcXHhhOSAgXFx1MDQxMlxcdTA0NDFcXHUwNDM1IFxcdTA0M2ZcXHUwNDQwXFx1MDQzMFxcdTA0MzJcXHUwNDMwIFxcdTA0NDFcXHUwNDNlXFx1MDQ0NVxcdTA0NDBcXHUwNDMwXFx1MDQzZFxcdTA0MzVcXHUwNDNkXFx1MDQ0Yi5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJcXHUwNDFmXFx1MDQzZVxcdTA0M2JcXHUwNDM4XFx1MDQ0MlxcdTA0MzhcXHUwNDNhXFx1MDQzOCBcXHUwNDNhXFx1MDQzZVxcdTA0M2RcXHUwNDQ0XFx1MDQzOFxcdTA0MzRcXHUwNDM1XFx1MDQzZFxcdTA0NDZcXHUwNDM4XFx1MDQzMFxcdTA0M2JcXHUwNDRjXFx1MDQzZFxcdTA0M2VcXHUwNDQxXFx1MDQ0MlxcdTA0MzhcIixcInBhcmt3ZWJjb3B5cmlnaHRUZXh0XCI6XCJcXHUwNDEwXFx1MDQzMlxcdTA0NDJcXHUwNDNlXFx1MDQ0MFxcdTA0NDFcXHUwNDNhXFx1MDQzZVxcdTA0MzUgXFx1MDQzZlxcdTA0NDBcXHUwNDMwXFx1MDQzMlxcdTA0M2UgXFx4YTkgMTk5OSAtIHtjdXJyZW50WWVhcn0gXFx1MDQzM1xcdTA0MzMuLCBHb0RhZGR5LmNvbSwgTExDLiBcXHUwNDEyXFx1MDQ0MVxcdTA0MzUgXFx1MDQzZlxcdTA0NDBcXHUwNDMwXFx1MDQzMlxcdTA0MzAgXFx1MDQzN1xcdTA0MzBcXHUwNDQ5XFx1MDQzOFxcdTA0NDlcXHUwNDM1XFx1MDQzZFxcdTA0NGIuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiXFx1MDQxMFxcdTA0MzJcXHUwNDQyXFx1MDQzZVxcdTA0NDBcXHUwNDQxXFx1MDQzYVxcdTA0M2VcXHUwNDM1IFxcdTA0M2ZcXHUwNDQwXFx1MDQzMFxcdTA0MzJcXHUwNDNlIFxceGE5IDIwMjEgXFx1MDQzMy4sIDEyMyBSZWcgTHRkIHxcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiXFx1MDQxZVxcdTA0MzNcXHUwNDQwXFx1MDQzMFxcdTA0M2RcXHUwNDM4XFx1MDQ0N1xcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQzZVxcdTA0NDJcXHUwNDMyXFx1MDQzNVxcdTA0NDJcXHUwNDQxXFx1MDQ0MlxcdTA0MzJcXHUwNDM1XFx1MDQzZFxcdTA0M2RcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDM4OiBcXHUwNDIxXFx1MDQ0MVxcdTA0NGJcXHUwNDNiXFx1MDQzYVxcdTA0MzggXFx1MDQzZFxcdTA0MzAgXFx1MDQzYVxcdTA0MzBcXHUwNDNhXFx1MDQ0M1xcdTA0NGUtXFx1MDQzYlxcdTA0MzhcXHUwNDMxXFx1MDQzZSBcXHUwNDNhXFx1MDQzZVxcdTA0M2RcXHUwNDNhXFx1MDQ0MFxcdTA0MzVcXHUwNDQyXFx1MDQzZFxcdTA0NDNcXHUwNDRlIFxcdTA0M2FcXHUwNDNlXFx1MDQzY1xcdTA0M2ZcXHUwNDMwXFx1MDQzZFxcdTA0MzhcXHUwNDRlLCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDM0XFx1MDQ0M1xcdTA0M2FcXHUwNDQyIFxcdTA0MzhcXHUwNDNiXFx1MDQzOCBcXHUwNDQzXFx1MDQ0MVxcdTA0M2JcXHUwNDQzXFx1MDQzM1xcdTA0MzggXFx1MDQzZFxcdTA0MzAgXFx1MDQ0ZFxcdTA0NDJcXHUwNDNlXFx1MDQzYyBcXHUwNDIxXFx1MDQzMFxcdTA0MzlcXHUwNDQyXFx1MDQzNSBcXHUwNDNkXFx1MDQzNSBcXHUwNDNhXFx1MDQzZVxcdTA0M2RcXHUwNDQyXFx1MDQ0MFxcdTA0M2VcXHUwNDNiXFx1MDQzOFxcdTA0NDBcXHUwNDQzXFx1MDQ0ZVxcdTA0NDJcXHUwNDQxXFx1MDQ0ZiBcXHUwNDNhXFx1MDQzZVxcdTA0M2NcXHUwNDNmXFx1MDQzMFxcdTA0M2RcXHUwNDM4XFx1MDQzNVxcdTA0MzkgMTIzIFJlZyBMdGQgXFx1MDQzOCBcXHUwNDNkXFx1MDQzNSBcXHUwNDNlXFx1MDQzN1xcdTA0M2RcXHUwNDMwXFx1MDQ0N1xcdTA0MzBcXHUwNDRlXFx1MDQ0MiBcXHUwNDM4IFxcdTA0M2RcXHUwNDM1IFxcdTA0M2ZcXHUwNDNlXFx1MDQzNFxcdTA0NDBcXHUwNDMwXFx1MDQzN1xcdTA0NDNcXHUwNDNjXFx1MDQzNVxcdTA0MzJcXHUwNDMwXFx1MDQ0ZVxcdTA0NDIgXFx1MDQzNVxcdTA0MzUgXFx1MDQ0MVxcdTA0MzJcXHUwNDRmXFx1MDQzN1xcdTA0MzggXFx1MDQ0MVxcdTA0M2UgXFx1MDQ0MVxcdTA0NDJcXHUwNDNlXFx1MDQ0MFxcdTA0M2VcXHUwNDNkXFx1MDQzZFxcdTA0MzhcXHUwNDNjXFx1MDQzOCBcXHUwNDQwXFx1MDQzNVxcdTA0M2FcXHUwNDNiXFx1MDQzMFxcdTA0M2NcXHUwNDNlXFx1MDQzNFxcdTA0MzBcXHUwNDQyXFx1MDQzNVxcdTA0M2JcXHUwNDRmXFx1MDQzY1xcdTA0MzggXFx1MDQzOFxcdTA0M2JcXHUwNDM4IFxcdTA0MzhcXHUwNDQ1IFxcdTA0M2ZcXHUwNDNlXFx1MDQzNFxcdTA0MzRcXHUwNDM1XFx1MDQ0MFxcdTA0MzZcXHUwNDNhXFx1MDQzOC5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZC5cXHhhMFxcdTA0MWNcXHUwNDRiIFxcdTA0M2ZcXHUwNDNlXFx1MDQzNFxcdTA0MzRcXHUwNDM1XFx1MDQ0MFxcdTA0MzZcXHUwNDM4XFx1MDQzMlxcdTA0MzBcXHUwNDM1XFx1MDQzYyBcXHUwNDNjXFx1MDQzMFxcdTA0M2JcXHUwNDRiXFx1MDQzOSBcXHUwNDMxXFx1MDQzOFxcdTA0MzdcXHUwNDNkXFx1MDQzNVxcdTA0NDEuXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiXFx1MDQxMiBcXHUwNDRkXFx1MDQ0MlxcdTA0MzggXFx1MDQ0MlxcdTA0NGZcXHUwNDM2XFx1MDQzNVxcdTA0M2JcXHUwNDRiXFx1MDQzNSBcXHUwNDMyXFx1MDQ0MFxcdTA0MzVcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDMwIFxcdTA0M2NcXHUwNDRiIFxcdTA0MzRcXHUwNDM1XFx1MDQzYlxcdTA0MzBcXHUwNDM1XFx1MDQzYyBcXHUwNDMyXFx1MDQ0MVxcdTA0MzUgXFx1MDQzMlxcdTA0M2VcXHUwNDM3XFx1MDQzY1xcdTA0M2VcXHUwNDM2XFx1MDQzZFxcdTA0M2VcXHUwNDM1LCBcXHUwNDQ3XFx1MDQ0MlxcdTA0M2VcXHUwNDMxXFx1MDQ0YiBcXHUwNDNmXFx1MDQzZVxcdTA0M2NcXHUwNDNlXFx1MDQ0N1xcdTA0NGMgXFx1MDQzMlxcdTA0MzBcXHUwNDNjIFxcdTA0MzggXFx1MDQzMlxcdTA0MzBcXHUwNDQ4XFx1MDQzNVxcdTA0M2NcXHUwNDQzIFxcdTA0MzFcXHUwNDM4XFx1MDQzN1xcdTA0M2RcXHUwNDM1XFx1MDQ0MVxcdTA0NDMgXFx1MDQzMFxcdTA0MzRcXHUwNDMwXFx1MDQzZlxcdTA0NDJcXHUwNDM4XFx1MDQ0MFxcdTA0M2VcXHUwNDMyXFx1MDQzMFxcdTA0NDJcXHUwNDRjXFx1MDQ0MVxcdTA0NGYuXCIsXCJvd3NDVEFcIjpcIlxcdTA0MWZcXHUwNDNlXFx1MDQzNFxcdTA0NDBcXHUwNDNlXFx1MDQzMVxcdTA0M2RcXHUwNDM1XFx1MDQzNVwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIlxcdTA0MjBcXHUwNDM1XFx1MDQzYVxcdTA0M2JcXHUwNDMwXFx1MDQzY1xcdTA0M2RcXHUwNDRiXFx1MDQzNSBcXHUwNDNlXFx1MDQzMVxcdTA0NGFcXHUwNDRmXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZFxcdTA0MzhcXHUwNDM1IFxcdTA0MzdcXHUwNDMwXFx1MDQzMVxcdTA0M2JcXHUwNDNlXFx1MDQzYVxcdTA0MzhcXHUwNDQwXFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQzZFxcdTA0NGIuXCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJcXHUwNDE0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZCB7ZG9tYWlufSBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDM1XFx1MDQ0MiBcXHUwNDMxXFx1MDQ0YlxcdTA0NDJcXHUwNDRjIFxcdTA0MzJcXHUwNDRiXFx1MDQ0MVxcdTA0NDJcXHUwNDMwXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZCBcXHUwNDNkXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDM0XFx1MDQzMFxcdTA0MzZcXHUwNDQzXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1MDQyMVxcdTA0MzJcXHUwNDRmXFx1MDQzNlxcdTA0MzhcXHUwNDQyXFx1MDQzNVxcdTA0NDFcXHUwNDRjIFxcdTA0NDEgXFx1MDQzMlxcdTA0M2JcXHUwNDMwXFx1MDQzNFxcdTA0MzVcXHUwNDNiXFx1MDQ0Y1xcdTA0NDZcXHUwNDM1XFx1MDQzYyBcXHUwNDM0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZFxcdTA0MzAuXCIsXCJjb250YWN0T3duZXJOYW1lXCI6XCJcXHUwNDE4XFx1MDQzY1xcdTA0NGZcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJcXHUwNDJkXFx1MDQzYlxcdTA0MzVcXHUwNDNhXFx1MDQ0MlxcdTA0NDBcXHUwNDNlXFx1MDQzZFxcdTA0M2RcXHUwNDMwXFx1MDQ0ZiBcXHUwNDNmXFx1MDQzZVxcdTA0NDdcXHUwNDQyXFx1MDQzMFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdTA0MjJcXHUwNDM1XFx1MDQzYi5cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJcXHUwNDFhXFx1MDQzZVxcdTA0M2NcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDQyXFx1MDQzMFxcdTA0NDBcXHUwNDM4XFx1MDQzOFwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJcXHUwNDFlXFx1MDQ0MlxcdTA0M2ZcXHUwNDQwXFx1MDQzMFxcdTA0MzJcXHUwNDM4XFx1MDQ0MlxcdTA0NGMgXFx1MDQ0MVxcdTA0M2VcXHUwNDNlXFx1MDQzMVxcdTA0NDlcXHUwNDM1XFx1MDQzZFxcdTA0MzhcXHUwNDM1XCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIkxvb2tpbmcgZm9yIFNpbWlsYXIgRG9tYWlucz9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiQ2hlY2sgb3V0IHRoZXNlIHRvcCBwaWNrc1wiLFwiQVQtQnV5XCI6XCJcXHUwNDFhXFx1MDQ0M1xcdTA0M2ZcXHUwNDM4XFx1MDQ0MlxcdTA0NGNcIixcIkFULVByb21vdGVkXCI6XCJQcm9tb3RlZFwifScpfSw4NTA5OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0ga2FuIHZhcmEgdGlsbCBzYWx1IVwiLFwiZGJzVGV4dEhlZ1wiOlwiXFx4ZTRyIHBhcmtlcmFkIGtvc3RuYWRzZnJpdHQgbWVkIDEyMyBSZWcuXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiaGFyIGxcXHhmNnB0IHV0IG9jaCBcXHhlNHIgcGFya2VyYWQga29zdG5hZHNmcml0dCBtZWQgMTIzIFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJmaW5ucyBhdHQga1xceGY2cGEgcFxceGU1IEdvRGFkZHkgQXVrdGlvbmVyLlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIkRlbiBoXFx4ZTRyIGRvbVxceGU0bmVuIGZpbm5zIGF0dCBrXFx4ZjZwYSBwXFx4ZTUgR29EYWRkeSBBdWt0aW9uZXJcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiaGFyIGxcXHhmNnB0IHV0IG9jaCBmaW5ucyBhdHQga1xceGY2cGEgcFxceGU1IEdvRGFkZHkgQXVrdGlvbmVyLlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiT20gZHUgXFx4ZTRnZXIgZGV0IGhcXHhlNHIgZG9tXFx4ZTRubmFtbmV0IG9jaCB2aWxsIGZcXHhlNSB1cHAgZW4gZWdlbiB3ZWJicGxhdHMga2FuIGR1IHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IHRpdHRhIG5cXHhlNHJtYXJlIHBcXHhlNSB2XFx4ZTVyIHNlcmllIHByaXN2XFx4ZTRyZGEgcHJvZHVrdGVyLCBzb20gSGVtc2lkZXByb2dyYW0sIFZcXHhlNHJkdGpcXHhlNG5zdGVyIGZcXHhmNnIgd2ViYmhvdGVsbCBtZWQgbWVyYSFcIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwiYmVzXFx4ZjZrYSAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRG9tXFx4ZTRuZW4ge2RvbWFpbn0gXFx4ZTRyIHRpbGwgc2FsdS4gT20gZHUgdmlsbCBrXFx4ZjZwYSByaW5nZXIgZHUge2FmdGVybmljU2l0ZU5hbWV9IHBcXHhlNSB7YWZ0ZXJuaWNQaG9uZTF9IGVsbGVyIHthZnRlcm5pY1Bob25lMn0uIEtsaWNrYSBoXFx4ZTRyIGZcXHhmNnIgYXR0IGZcXHhlNSBtZXIgaW5mb3JtYXRpb24uXCIsXCJkYnNUZXh0XCI6XCJcXHhlNHIgcGFya2VyYWQga29zdG5hZHNmcml0dCBtZWQgR29EYWRkeS5jb21cIixcImV4cGlyZWREYnNUZXh0XCI6XCJoYXIgbFxceGY2cHQgdXQgb2NoIFxceGU0ciBwYXJrZXJhZCBrb3N0bmFkc2ZyaXR0IG1lZCBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJmaW5ucyBhdHQga1xceGY2cGEgcFxceGU1IEdvRGFkZHkgQXVrdGlvbmVyLlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIkRlbiBoXFx4ZTRyIGRvbVxceGU0bmVuIGZpbm5zIGF0dCBrXFx4ZjZwYSBwXFx4ZTUgR29EYWRkeSBBdWt0aW9uZXJcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiXFx4YzRyIGR1IGludHJlc3NlcmFkIGF2IGRlbiBoXFx4ZTRyIGRvbVxceGU0bmVuP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJoYXIgbFxceGY2cHQgdXQgb2NoIGZpbm5zIGF0dCBrXFx4ZjZwYSBwXFx4ZTUgR29EYWRkeSBBdWt0aW9uZXIuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJTa2FmZmEgZGVuIGhcXHhlNHIgZG9tXFx4ZTRuZW5cIixcImJhY2tvcmRlclRleHRcIjpcIkludHJlc3NlcmFkIGF2IHtkb21haW59PyBUYSByZWRhIHBcXHhlNSBodXIgZHUga2FuIHNrYWZmYSBkZW4gdmlhIGRvbVxceGU0bmJldmFrbmluZy5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSBoYXIgbFxceGY2cHQgdXQuIFRhIHJlZGEgcFxceGU1IGh1ciBkdSBrYW4gc2thZmZhIGRlbiB2aWEgZG9tXFx4ZTRuYmV2YWtuaW5nLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IE1lZCBlbnNhbXJcXHhlNHR0LlwiLFwicHJpdmFjeVBvbGljeVRleHRcIjpcIlNla3JldGVzc3BvbGljeVwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5XFx1MjAxM3tjdXJyZW50WWVhcn0gR29EYWRkeS5jb20sIExMQy4gTWVkIGVuc2FtclxceGU0dHQuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiRnJpc2tyaXZuaW5nOiBIXFx4ZTRudmlzbmluZ2FyIHRpbGwgc3BlY2lmaWthIGZcXHhmNnJldGFnLCBwcm9kdWt0ZXIgZWxsZXIgdGpcXHhlNG5zdGVyIHBcXHhlNSBkZW4gaFxceGU0ciB3ZWJicGxhdHNlbiBrb250cm9sbGVyYXMgaW50ZSBhdiAxMjMgUmVnIEx0ZCBvY2ggdXRnXFx4ZjZyIGludGUga29udGFrdCBtZWQgZWxsZXIgc3RcXHhmNmQgYXYgdHJlZGplcGFydHNhbm5vbnNcXHhmNnJlci5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBtZWQgc21cXHhlNWZcXHhmNnJldGFnLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlVuZGVyIHJcXHhlNWRhbmRlIHN2XFx4ZTVyYSBvbXN0XFx4ZTRuZGlnaGV0ZXIgZ1xceGY2ciB2aSBhbGx0IHZpIGthbiBmXFx4ZjZyIGF0dCBoalxceGU0bHBhIGRpZyBvY2ggZGl0dCBmXFx4ZjZyZXRhZyBhdHQgYW5wYXNzYSBlci5cIixcIm93c0NUQVwiOlwiTFxceGU0cyBtZXJcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJBbm5vbnNlciBcXHhlNHIgYmxvY2tlcmFkZVwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0ga2FuIHZhcmEgdGlsbCBzYWx1XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiS29udGFrdGEgZG9tXFx4ZTRuXFx4ZTRnYXJlblwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiTmFtblwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIkUtcG9zdFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRlbGVmb25cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJLb21tZW50YXJlclwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJTa2lja2EgbWVkZGVsYW5kZVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJMZXRhciBkdSBlZnRlciBsaWtuYW5kZSBkb21cXHhlNG5lcj9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiS29sbGEgaW4gZGUgaFxceGU0ciB1dHZhbGRhIGZcXHhmNnJzbGFnZW5cIixcIkFULUJ1eVwiOlwiS1xceGY2cFwiLFwiQVQtUHJvbW90ZWRcIjpcIkthbXBhbmpcIn0nKX0sODQwOmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwie2RvbWFpbn0ga2FuIHZhcmEgdGlsbCBzYWx1IVwiLFwiZGJzVGV4dEhlZ1wiOlwiXFx4ZTRyIHBhcmtlcmFkIGtvc3RuYWRzZnJpdHQgbWVkIDEyMyBSZWcuXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiaGFyIGxcXHhmNnB0IHV0IG9jaCBcXHhlNHIgcGFya2VyYWQga29zdG5hZHNmcml0dCBtZWQgMTIzIFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJmaW5ucyBhdHQga1xceGY2cGEgcFxceGU1IEdvRGFkZHkgQXVrdGlvbmVyLlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIkRlbiBoXFx4ZTRyIGRvbVxceGU0bmVuIGZpbm5zIGF0dCBrXFx4ZjZwYSBwXFx4ZTUgR29EYWRkeSBBdWt0aW9uZXJcIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiaGFyIGxcXHhmNnB0IHV0IG9jaCBmaW5ucyBhdHQga1xceGY2cGEgcFxceGU1IEdvRGFkZHkgQXVrdGlvbmVyLlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiT20gZHUgXFx4ZTRnZXIgZGV0IGhcXHhlNHIgZG9tXFx4ZTRubmFtbmV0IG9jaCB2aWxsIGZcXHhlNSB1cHAgZW4gZWdlbiB3ZWJicGxhdHMga2FuIGR1IHtoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmt9IHRpdHRhIG5cXHhlNHJtYXJlIHBcXHhlNSB2XFx4ZTVyIHNlcmllIHByaXN2XFx4ZTRyZGEgcHJvZHVrdGVyLCBzb20gSGVtc2lkZXByb2dyYW0sIFZcXHhlNHJkdGpcXHhlNG5zdGVyIGZcXHhmNnIgd2ViYmhvdGVsbCBtZWQgbWVyYSFcIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwiYmVzXFx4ZjZrYSAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiRG9tXFx4ZTRuZW4ge2RvbWFpbn0gXFx4ZTRyIHRpbGwgc2FsdS4gT20gZHUgdmlsbCBrXFx4ZjZwYSByaW5nZXIgZHUge2FmdGVybmljU2l0ZU5hbWV9IHBcXHhlNSB7YWZ0ZXJuaWNQaG9uZTF9IGVsbGVyIHthZnRlcm5pY1Bob25lMn0uIEtsaWNrYSBoXFx4ZTRyIGZcXHhmNnIgYXR0IGZcXHhlNSBtZXIgaW5mb3JtYXRpb24uXCIsXCJkYnNUZXh0XCI6XCJcXHhlNHIgcGFya2VyYWQga29zdG5hZHNmcml0dCBtZWQgR29EYWRkeS5jb21cIixcImV4cGlyZWREYnNUZXh0XCI6XCJoYXIgbFxceGY2cHQgdXQgb2NoIFxceGU0ciBwYXJrZXJhZCBrb3N0bmFkc2ZyaXR0IG1lZCBHb0RhZGR5LmNvbS5cIixcImF1Y3Rpb25UZXh0XCI6XCJmaW5ucyBhdHQga1xceGY2cGEgcFxceGU1IEdvRGFkZHkgQXVrdGlvbmVyLlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIkRlbiBoXFx4ZTRyIGRvbVxceGU0bmVuIGZpbm5zIGF0dCBrXFx4ZjZwYSBwXFx4ZTUgR29EYWRkeSBBdWt0aW9uZXJcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiXFx4YzRyIGR1IGludHJlc3NlcmFkIGF2IGRlbiBoXFx4ZTRyIGRvbVxceGU0bmVuP1wiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJoYXIgbFxceGY2cHQgdXQgb2NoIGZpbm5zIGF0dCBrXFx4ZjZwYSBwXFx4ZTUgR29EYWRkeSBBdWt0aW9uZXIuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJTa2FmZmEgZGVuIGhcXHhlNHIgZG9tXFx4ZTRuZW5cIixcImJhY2tvcmRlclRleHRcIjpcIkludHJlc3NlcmFkIGF2IHtkb21haW59PyBUYSByZWRhIHBcXHhlNSBodXIgZHUga2FuIHNrYWZmYSBkZW4gdmlhIGRvbVxceGU0bmJldmFrbmluZy5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSBoYXIgbFxceGY2cHQgdXQuIFRhIHJlZGEgcFxceGU1IGh1ciBkdSBrYW4gc2thZmZhIGRlbiB2aWEgZG9tXFx4ZTRuYmV2YWtuaW5nLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IE1lZCBlbnNhbXJcXHhlNHR0LlwiLFwicHJpdmFjeVBvbGljeVRleHRcIjpcIlNla3JldGVzc3BvbGljeVwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5XFx1MjAxM3tjdXJyZW50WWVhcn0gR29EYWRkeS5jb20sIExMQy4gTWVkIGVuc2FtclxceGU0dHQuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiRnJpc2tyaXZuaW5nOiBIXFx4ZTRudmlzbmluZ2FyIHRpbGwgc3BlY2lmaWthIGZcXHhmNnJldGFnLCBwcm9kdWt0ZXIgZWxsZXIgdGpcXHhlNG5zdGVyIHBcXHhlNSBkZW4gaFxceGU0ciB3ZWJicGxhdHNlbiBrb250cm9sbGVyYXMgaW50ZSBhdiAxMjMgUmVnIEx0ZCBvY2ggdXRnXFx4ZjZyIGludGUga29udGFrdCBtZWQgZWxsZXIgc3RcXHhmNmQgYXYgdHJlZGplcGFydHNhbm5vbnNcXHhmNnJlci5cIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBtZWQgc21cXHhlNWZcXHhmNnJldGFnLlwiLFwib3dzRGVzY3JpcHRpb25cIjpcIlVuZGVyIHJcXHhlNWRhbmRlIHN2XFx4ZTVyYSBvbXN0XFx4ZTRuZGlnaGV0ZXIgZ1xceGY2ciB2aSBhbGx0IHZpIGthbiBmXFx4ZjZyIGF0dCBoalxceGU0bHBhIGRpZyBvY2ggZGl0dCBmXFx4ZjZyZXRhZyBhdHQgYW5wYXNzYSBlci5cIixcIm93c0NUQVwiOlwiTFxceGU0cyBtZXJcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJBbm5vbnNlciBcXHhlNHIgYmxvY2tlcmFkZVwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0ga2FuIHZhcmEgdGlsbCBzYWx1XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiS29udGFrdGEgZG9tXFx4ZTRuXFx4ZTRnYXJlblwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiTmFtblwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIkUtcG9zdFwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlRlbGVmb25cIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJLb21tZW50YXJlclwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJTa2lja2EgbWVkZGVsYW5kZVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJMZXRhciBkdSBlZnRlciBsaWtuYW5kZSBkb21cXHhlNG5lcj9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiS29sbGEgaW4gZGUgaFxceGU0ciB1dHZhbGRhIGZcXHhmNnJzbGFnZW5cIixcIkFULUJ1eVwiOlwiS1xceGY2cFwiLFwiQVQtUHJvbW90ZWRcIjpcIkthbXBhbmpcIn0nKX0sNzQwMzplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIntkb21haW59IFxcdTBlMmRcXHUwZTMyXFx1MGUwOFxcdTBlMWJcXHUwZTIzXFx1MGUzMFxcdTBlMDFcXHUwZTMyXFx1MGUyOFxcdTBlMDJcXHUwZTMyXFx1MGUyMiFcIixcImRic1RleHRIZWdcIjpcIlxcdTBlMWRcXHUwZTMyXFx1MGUwMVxcdTBlMWZcXHUwZTIzXFx1MGUzNSBcXHUwZTE0XFx1MGU0OVxcdTBlMjdcXHUwZTIyXFx1MGUwNFxcdTBlMjdcXHUwZTMyXFx1MGUyMVxcdTBlMmRcXHUwZTE5XFx1MGUzOFxcdTBlNDBcXHUwZTA0XFx1MGUyM1xcdTBlMzJcXHUwZTMwXFx1MGUyYlxcdTBlNGNcXHUwZTA4XFx1MGUzMlxcdTBlMDEgMTIzIFJlZ1wiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcIlxcdTBlMmJcXHUwZTIxXFx1MGUxNFxcdTBlMmRcXHUwZTMyXFx1MGUyMlxcdTBlMzhcXHUwZTQxXFx1MGUyNVxcdTBlNDlcXHUwZTI3XFx1MGU0MVxcdTBlMjVcXHUwZTMwXFx1MGUxZFxcdTBlMzJcXHUwZTAxXFx1MGUxZlxcdTBlMjNcXHUwZTM1IFxcdTBlMTRcXHUwZTQ5XFx1MGUyN1xcdTBlMjJcXHUwZTA0XFx1MGUyN1xcdTBlMzJcXHUwZTIxXFx1MGUyZFxcdTBlMTlcXHUwZTM4XFx1MGU0MFxcdTBlMDRcXHUwZTIzXFx1MGUzMlxcdTBlMzBcXHUwZTJiXFx1MGU0Y1xcdTBlMDhcXHUwZTMyXFx1MGUwMSAxMjMgUmVnXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiXFx1MGUyMVxcdTBlMzVcXHUwZTJkXFx1MGUyMlxcdTBlMzlcXHUwZTQ4XFx1MGU0M1xcdTBlMTlcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTIxXFx1MGUzOVxcdTBlMjVcXHUwZTAyXFx1MGUyZFxcdTBlMDcgR29EYWRkeVwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlxcdTBlNDJcXHUwZTE0XFx1MGU0MFxcdTBlMjFcXHUwZTE5XFx1MGUxOVxcdTBlMzVcXHUwZTQ5XFx1MGUyMVxcdTBlMzVcXHUwZTJkXFx1MGUyMlxcdTBlMzlcXHUwZTQ4XFx1MGU0M1xcdTBlMTlcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTIxXFx1MGUzOVxcdTBlMjVcXHUwZTAyXFx1MGUyZFxcdTBlMDcgR29EYWRkeVwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJcXHUwZTJiXFx1MGUyMVxcdTBlMTRcXHUwZTJkXFx1MGUzMlxcdTBlMjJcXHUwZTM4XFx1MGU0MVxcdTBlMjVcXHUwZTQ5XFx1MGUyN1xcdTBlNDFcXHUwZTI1XFx1MGUzMFxcdTBlMjFcXHUwZTM1XFx1MGUyZFxcdTBlMjJcXHUwZTM5XFx1MGU0OFxcdTBlNDNcXHUwZTE5XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxYlxcdTBlMjNcXHUwZTMwXFx1MGUyMVxcdTBlMzlcXHUwZTI1XFx1MGUwMlxcdTBlMmRcXHUwZTA3IEdvRGFkZHlcIixcImhlZ0Zvb3RlclRleHRcIjpcIlxcdTBlMmJcXHUwZTMyXFx1MGUwMVxcdTBlMDRcXHUwZTM4XFx1MGUxM1xcdTBlNDBcXHUwZTFiXFx1MGU0N1xcdTBlMTlcXHUwZTQwXFx1MGUwOFxcdTBlNDlcXHUwZTMyXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGUwYVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlNDJcXHUwZTE0XFx1MGU0MFxcdTBlMjFcXHUwZTE5XFx1MGUxOVxcdTBlMzVcXHUwZTQ5XFx1MGU0MVxcdTBlMjVcXHUwZTMwXFx1MGUxNVxcdTBlNDlcXHUwZTJkXFx1MGUwN1xcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDBcXHUwZTFiXFx1MGUzNFxcdTBlMTRcXHUwZTQwXFx1MGUyN1xcdTBlNDdcXHUwZTFhXFx1MGU0NFxcdTBlMGJcXHUwZTE1XFx1MGU0YyBcXHUwZTI1XFx1MGUyZFxcdTBlMDd7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBcXHUwZTQxXFx1MGUyNVxcdTBlNDlcXHUwZTI3XFx1MGUxNFxcdTBlMzlcXHUwZTIzXFx1MGUzMlxcdTBlMjJcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTFjXFx1MGUyNVxcdTBlMzRcXHUwZTE1XFx1MGUyMFxcdTBlMzFcXHUwZTEzXFx1MGUxMVxcdTBlNGNcXHUwZTIxXFx1MGUzMlxcdTBlMDFcXHUwZTIxXFx1MGUzMlxcdTBlMjJcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTIzXFx1MGUzMlxcdTBlMDRcXHUwZTMyXFx1MGUyMlxcdTBlNDhcXHUwZTJkXFx1MGUyMVxcdTBlNDBcXHUwZTIyXFx1MGUzMlxcdTBlMjdcXHUwZTRjIFxcdTBlMjNcXHUwZTI3XFx1MGUyMVxcdTBlMTZcXHUwZTM2XFx1MGUwN1xcdTBlNDJcXHUwZTFiXFx1MGUyM1xcdTBlNDFcXHUwZTAxXFx1MGUyM1xcdTBlMjFcXHUwZTJhXFx1MGUyM1xcdTBlNDlcXHUwZTMyXFx1MGUwN1xcdTBlNDBcXHUwZTI3XFx1MGU0N1xcdTBlMWEgXFx1MGU0MFxcdTBlMjdcXHUwZTQ3XFx1MGUxYVxcdTBlNDJcXHUwZTJlXFx1MGUyYVxcdTBlMTVcXHUwZTM0XFx1MGU0OVxcdTBlMDcgXFx1MGU0MVxcdTBlMjVcXHUwZTMwXFx1MGUyZFxcdTBlMzdcXHUwZTQ4XFx1MGUxOVxcdTBlNDYhXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIlxcdTBlMjVcXHUwZTJkXFx1MGUwN1xcdTBlNDRcXHUwZTFiXFx1MGUxN1xcdTBlMzVcXHUwZTQ4IDEyMyBSZWdcIixcInRkZnNUZXh0XCI6XCJcXHUwZTQyXFx1MGUxNFxcdTBlNDBcXHUwZTIxXFx1MGUxOSB7ZG9tYWlufSBcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTAxXFx1MGUzMlxcdTBlMjhcXHUwZTAyXFx1MGUzMlxcdTBlMjIgXFx1MGUyYlxcdTBlMzJcXHUwZTAxXFx1MGUwOFxcdTBlMzBcXHUwZTBiXFx1MGUzN1xcdTBlNDlcXHUwZTJkIFxcdTBlNDJcXHUwZTE3XFx1MGUyM1xcdTBlMTVcXHUwZTM0XFx1MGUxNFxcdTBlMTVcXHUwZTQ4XFx1MGUyZCB7YWZ0ZXJuaWNTaXRlTmFtZX0gXFx1MGUxN1xcdTBlMzVcXHUwZTQ4IHthZnRlcm5pY1Bob25lMX0gXFx1MGUyYlxcdTBlMjNcXHUwZTM3XFx1MGUyZCB7YWZ0ZXJuaWNQaG9uZTJ9IFxcdTBlMmFcXHUwZTMzXFx1MGUyYlxcdTBlMjNcXHUwZTMxXFx1MGUxYVxcdTBlMDJcXHUwZTQ5XFx1MGUyZFxcdTBlMjFcXHUwZTM5XFx1MGUyNVxcdTBlNDBcXHUwZTFlXFx1MGUzNFxcdTBlNDhcXHUwZTIxXFx1MGU0MFxcdTBlMTVcXHUwZTM0XFx1MGUyMSBcXHUwZTA0XFx1MGUyNVxcdTBlMzRcXHUwZTAxXFx1MGUxN1xcdTBlMzVcXHUwZTQ4XFx1MGUxOVxcdTBlMzVcXHUwZTQ4XCIsXCJkYnNUZXh0XCI6XCJcXHUwZTFkXFx1MGUzMlxcdTBlMDFcXHUwZTFmXFx1MGUyM1xcdTBlMzUgXFx1MGUxNFxcdTBlNDlcXHUwZTI3XFx1MGUyMlxcdTBlMDRcXHUwZTI3XFx1MGUzMlxcdTBlMjFcXHUwZTJkXFx1MGUxOVxcdTBlMzhcXHUwZTQwXFx1MGUwNFxcdTBlMjNcXHUwZTMyXFx1MGUzMFxcdTBlMmJcXHUwZTRjXFx1MGUwOFxcdTBlMzJcXHUwZTAxIEdvRGFkZHkuY29tXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiXFx1MGUyYlxcdTBlMjFcXHUwZTE0XFx1MGUyZFxcdTBlMzJcXHUwZTIyXFx1MGUzOFxcdTBlNDFcXHUwZTI1XFx1MGU0OVxcdTBlMjdcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTFkXFx1MGUzMlxcdTBlMDFcXHUwZTFmXFx1MGUyM1xcdTBlMzUgXFx1MGUxNFxcdTBlNDlcXHUwZTI3XFx1MGUyMlxcdTBlMDRcXHUwZTI3XFx1MGUzMlxcdTBlMjFcXHUwZTJkXFx1MGUxOVxcdTBlMzhcXHUwZTQwXFx1MGUwNFxcdTBlMjNcXHUwZTMyXFx1MGUzMFxcdTBlMmJcXHUwZTRjXFx1MGUwOFxcdTBlMzJcXHUwZTAxIEdvRGFkZHkuY29tXCIsXCJhdWN0aW9uVGV4dFwiOlwiXFx1MGUyMVxcdTBlMzVcXHUwZTJkXFx1MGUyMlxcdTBlMzlcXHUwZTQ4XFx1MGU0M1xcdTBlMTlcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTIxXFx1MGUzOVxcdTBlMjVcXHUwZTAyXFx1MGUyZFxcdTBlMDcgR29EYWRkeVwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIlxcdTBlNDJcXHUwZTE0XFx1MGU0MFxcdTBlMjFcXHUwZTE5XFx1MGUxOVxcdTBlMzVcXHUwZTQ5XFx1MGUyMVxcdTBlMzVcXHUwZTJkXFx1MGUyMlxcdTBlMzlcXHUwZTQ4XFx1MGU0M1xcdTBlMTlcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTIxXFx1MGUzOVxcdTBlMjVcXHUwZTAyXFx1MGUyZFxcdTBlMDcgR29EYWRkeVwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHUwZTJhXFx1MGUxOVxcdTBlNDNcXHUwZTA4XFx1MGU0MlxcdTBlMTRcXHUwZTQwXFx1MGUyMVxcdTBlMTlcXHUwZTE5XFx1MGUzNVxcdTBlNDlcXHUwZTQzXFx1MGUwYVxcdTBlNDhcXHUwZTQ0XFx1MGUyYlxcdTBlMjFcIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiXFx1MGUyYlxcdTBlMjFcXHUwZTE0XFx1MGUyZFxcdTBlMzJcXHUwZTIyXFx1MGUzOFxcdTBlNDFcXHUwZTI1XFx1MGU0OVxcdTBlMjdcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTIxXFx1MGUzNVxcdTBlMmRcXHUwZTIyXFx1MGUzOVxcdTBlNDhcXHUwZTQzXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMWJcXHUwZTIzXFx1MGUzMFxcdTBlMjFcXHUwZTM5XFx1MGUyNVxcdTBlMDJcXHUwZTJkXFx1MGUwNyBHb0RhZGR5XCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJcXHUwZTBiXFx1MGUzN1xcdTBlNDlcXHUwZTJkXFx1MGU0MlxcdTBlMTRcXHUwZTQwXFx1MGUyMVxcdTBlMTlcXHUwZTE5XFx1MGUzNVxcdTBlNDlcIixcImJhY2tvcmRlclRleHRcIjpcIlxcdTBlMmFcXHUwZTE5XFx1MGU0M1xcdTBlMDgge2RvbWFpbn0gXFx1MGU0M1xcdTBlMGFcXHUwZTQ4XFx1MGU0NFxcdTBlMmJcXHUwZTIxIFxcdTBlMDRcXHUwZTQ5XFx1MGUxOVxcdTBlMmJcXHUwZTMyXFx1MGUyN1xcdTBlMzRcXHUwZTE4XFx1MGUzNVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMTRcXHUwZTMzXFx1MGU0MFxcdTBlMTlcXHUwZTM0XFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMWNcXHUwZTQ4XFx1MGUzMlxcdTBlMTlcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTA4XFx1MGUyZFxcdTBlMDdcXHUwZTBhXFx1MGUzN1xcdTBlNDhcXHUwZTJkXFx1MGU0MlxcdTBlMTRcXHUwZTQwXFx1MGUyMVxcdTBlMTlcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTE2XFx1MGUzOVxcdTBlMDFcXHUwZTA4XFx1MGUxNFxcdTBlMTdcXHUwZTMwXFx1MGU0MFxcdTBlMWFcXHUwZTM1XFx1MGUyMlxcdTBlMTlcXHUwZTQxXFx1MGUyNVxcdTBlNDlcXHUwZTI3XCIsXCJleHBpcmVkQmFja29yZGVyVGV4dFwiOlwie2RvbWFpbn0gXFx1MGUyYlxcdTBlMjFcXHUwZTE0XFx1MGUyZFxcdTBlMzJcXHUwZTIyXFx1MGUzOFxcdTBlNDFcXHUwZTI1XFx1MGU0OVxcdTBlMjcgXFx1MGUwNFxcdTBlNDlcXHUwZTE5XFx1MGUyYlxcdTBlMzJcXHUwZTI3XFx1MGUzNFxcdTBlMThcXHUwZTM1XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxNFxcdTBlMzNcXHUwZTQwXFx1MGUxOVxcdTBlMzRcXHUwZTE5XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxY1xcdTBlNDhcXHUwZTMyXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMDhcXHUwZTJkXFx1MGUwN1xcdTBlMGFcXHUwZTM3XFx1MGU0OFxcdTBlMmRcXHUwZTQyXFx1MGUxNFxcdTBlNDBcXHUwZTIxXFx1MGUxOVxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMTZcXHUwZTM5XFx1MGUwMVxcdTBlMDhcXHUwZTE0XFx1MGUxN1xcdTBlMzBcXHUwZTQwXFx1MGUxYVxcdTBlMzVcXHUwZTIyXFx1MGUxOVxcdTBlNDFcXHUwZTI1XFx1MGU0OVxcdTBlMjdcIixcImNvcHlyaWdodFRleHRcIjpcIlxcdTBlMjVcXHUwZTM0XFx1MGUwMlxcdTBlMmFcXHUwZTM0XFx1MGUxN1xcdTBlMThcXHUwZTM0XFx1MGU0YyBcXHhhOSBcXHUwZTJhXFx1MGUwN1xcdTBlMjdcXHUwZTE5XFx1MGUyYVxcdTBlMzRcXHUwZTE3XFx1MGUxOFxcdTBlMzRcXHUwZTRjXFx1MGUxN1xcdTBlMzhcXHUwZTAxXFx1MGUxYlxcdTBlMjNcXHUwZTMwXFx1MGUwMVxcdTBlMzJcXHUwZTIzXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiXFx1MGUxOVxcdTBlNDJcXHUwZTIyXFx1MGUxYVxcdTBlMzJcXHUwZTIyXFx1MGUwNFxcdTBlMjdcXHUwZTMyXFx1MGUyMVxcdTBlNDBcXHUwZTFiXFx1MGU0N1xcdTBlMTlcXHUwZTJhXFx1MGU0OFxcdTBlMjdcXHUwZTE5XFx1MGUxNVxcdTBlMzFcXHUwZTI3XCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiXFx1MGUyNVxcdTBlMzRcXHUwZTAyXFx1MGUyYVxcdTBlMzRcXHUwZTE3XFx1MGUxOFxcdTBlMzRcXHUwZTRjIFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIFxcdTBlMmFcXHUwZTA3XFx1MGUyN1xcdTBlMTlcXHUwZTJhXFx1MGUzNFxcdTBlMTdcXHUwZTE4XFx1MGUzNFxcdTBlNGNcXHUwZTE3XFx1MGUzOFxcdTBlMDFcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTAxXFx1MGUzMlxcdTBlMjNcIixcInBhcmt3ZWJoZWdjb3B5cmlnaHRUZXh0XCI6XCJcXHUwZTJhXFx1MGUwN1xcdTBlMjdcXHUwZTE5XFx1MGUyNVxcdTBlMzRcXHUwZTAyXFx1MGUyYVxcdTBlMzRcXHUwZTE3XFx1MGUxOFxcdTBlMzRcXHUwZTRjIFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGQgfFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJcXHUwZTAyXFx1MGU0OVxcdTBlMmRcXHUwZTA4XFx1MGUzM1xcdTBlMDFcXHUwZTMxXFx1MGUxNFxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMjNcXHUwZTMxXFx1MGUxYVxcdTBlMWNcXHUwZTM0XFx1MGUxNDogXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUyZFxcdTBlNDlcXHUwZTMyXFx1MGUwN1xcdTBlMmRcXHUwZTM0XFx1MGUwN1xcdTBlMTZcXHUwZTM2XFx1MGUwN1xcdTBlMWFcXHUwZTIzXFx1MGUzNFxcdTBlMjlcXHUwZTMxXFx1MGUxNyBcXHUwZTFjXFx1MGUyNVxcdTBlMzRcXHUwZTE1XFx1MGUyMFxcdTBlMzFcXHUwZTEzXFx1MGUxMVxcdTBlNGMgXFx1MGUyYlxcdTBlMjNcXHUwZTM3XFx1MGUyZFxcdTBlMWFcXHUwZTIzXFx1MGUzNFxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDNcXHUwZTE0XFx1MGU0NiBcXHUwZTJkXFx1MGUyMlxcdTBlNDhcXHUwZTMyXFx1MGUwN1xcdTBlNDBcXHUwZTA5XFx1MGUxZVxcdTBlMzJcXHUwZTMwXFx1MGU0MFxcdTBlMDhcXHUwZTMyXFx1MGUzMFxcdTBlMDhcXHUwZTA3XFx1MGUxYVxcdTBlMTlcXHUwZTQwXFx1MGUyN1xcdTBlNDdcXHUwZTFhXFx1MGU0NFxcdTBlMGJcXHUwZTE1XFx1MGU0Y1xcdTBlMTlcXHUwZTM1XFx1MGU0OVxcdTBlNDRcXHUwZTIxXFx1MGU0OFxcdTBlNDRcXHUwZTE0XFx1MGU0OVxcdTBlMmRcXHUwZTIyXFx1MGUzOVxcdTBlNDhcXHUwZTIwXFx1MGUzMlxcdTBlMjJcXHUwZTQzXFx1MGUxNVxcdTBlNDlcXHUwZTA0XFx1MGUyN1xcdTBlMzJcXHUwZTIxXFx1MGUwNFxcdTBlMjdcXHUwZTFhXFx1MGUwNFxcdTBlMzhcXHUwZTIxXFx1MGUwMlxcdTBlMmRcXHUwZTA3IDEyMyBSZWcgTHRkIFxcdTBlNDFcXHUwZTI1XFx1MGUzMFxcdTBlMDhcXHUwZTMwXFx1MGU0NFxcdTBlMjFcXHUwZTQ4XFx1MGUxNlxcdTBlMzdcXHUwZTJkXFx1MGUyN1xcdTBlNDhcXHUwZTMyXFx1MGUyYlxcdTBlMjNcXHUwZTM3XFx1MGUyZFxcdTBlMmFcXHUwZTM3XFx1MGU0OFxcdTBlMmRcXHUwZTI3XFx1MGU0OFxcdTBlMzJcXHUwZTIxXFx1MGUzNVxcdTBlMDRcXHUwZTI3XFx1MGUzMlxcdTBlMjFcXHUwZTQwXFx1MGUwMVxcdTBlMzVcXHUwZTQ4XFx1MGUyMlxcdTBlMjdcXHUwZTAyXFx1MGU0OVxcdTBlMmRcXHUwZTA3XFx1MGUyYlxcdTBlMjNcXHUwZTM3XFx1MGUyZFxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMmFcXHUwZTE5XFx1MGUzMVxcdTBlMWFcXHUwZTJhXFx1MGUxOVxcdTBlMzhcXHUwZTE5XFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGUxY1xcdTBlMzlcXHUwZTQ5XFx1MGU0MlxcdTBlMDZcXHUwZTI5XFx1MGUxM1xcdTBlMzJcXHUwZTA4XFx1MGUzMlxcdTBlMDFcXHUwZTIwXFx1MGUzMlxcdTBlMjJcXHUwZTE5XFx1MGUyZFxcdTBlMDFcIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBcXHUwZTIzXFx1MGU0OFxcdTBlMjdcXHUwZTIxXFx1MGUwMVxcdTBlMzFcXHUwZTFhXFx1MGUxOFxcdTBlMzhcXHUwZTIzXFx1MGUwMVxcdTBlMzRcXHUwZTA4XFx1MGUwMlxcdTBlMTlcXHUwZTMyXFx1MGUxNFxcdTBlNDBcXHUwZTI1XFx1MGU0N1xcdTBlMDFcIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJcXHUwZTQzXFx1MGUxOVxcdTBlMGFcXHUwZTQ4XFx1MGUyN1xcdTBlMDdcXHUwZTQwXFx1MGUyN1xcdTBlMjVcXHUwZTMyXFx1MGUyNVxcdTBlMzNcXHUwZTFhXFx1MGUzMlxcdTBlMDFcXHUwZTQwXFx1MGUwYVxcdTBlNDhcXHUwZTE5XFx1MGUxOVxcdTBlMzVcXHUwZTQ5IFxcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlMDhcXHUwZTMwXFx1MGUxN1xcdTBlMzNcXHUwZTE3XFx1MGUzOFxcdTBlMDFcXHUwZTJkXFx1MGUyMlxcdTBlNDhcXHUwZTMyXFx1MGUwN1xcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMTdcXHUwZTMzXFx1MGU0NFxcdTBlMTRcXHUwZTQ5XFx1MGU0MFxcdTBlMWVcXHUwZTM3XFx1MGU0OFxcdTBlMmRcXHUwZTBhXFx1MGU0OFxcdTBlMjdcXHUwZTIyXFx1MGU0MFxcdTBlMmJcXHUwZTI1XFx1MGUzN1xcdTBlMmRcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTE4XFx1MGUzOFxcdTBlMjNcXHUwZTAxXFx1MGUzNFxcdTBlMDhcXHUwZTAyXFx1MGUyZFxcdTBlMDdcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTQzXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMWJcXHUwZTIzXFx1MGUzMVxcdTBlMWFcXHUwZTE1XFx1MGUzMVxcdTBlMjdcIixcIm93c0NUQVwiOlwiXFx1MGU0MFxcdTBlMjNcXHUwZTM1XFx1MGUyMlxcdTBlMTlcXHUwZTIzXFx1MGUzOVxcdTBlNDlcXHUwZTQwXFx1MGUxZVxcdTBlMzRcXHUwZTQ4XFx1MGUyMVxcdTBlNDBcXHUwZTE1XFx1MGUzNFxcdTBlMjFcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJcXHUwZTQyXFx1MGUwNlxcdTBlMjlcXHUwZTEzXFx1MGUzMlxcdTBlMTZcXHUwZTM5XFx1MGUwMVxcdTBlMWFcXHUwZTI1XFx1MGU0N1xcdTBlMmRcXHUwZTA0XCIsXCJjb250YWN0T3duZXJUZXh0XCI6XCJ7ZG9tYWlufSBcXHUwZTJkXFx1MGUzMlxcdTBlMDhcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTAxXFx1MGUzMlxcdTBlMjhcXHUwZTAyXFx1MGUzMlxcdTBlMjJcIixcImNvbnRhY3RPd25lckRlc2NyaXB0aW9uXCI6XCJcXHUwZTE1XFx1MGUzNFxcdTBlMTRcXHUwZTE1XFx1MGU0OFxcdTBlMmRcXHUwZTQwXFx1MGUwOFxcdTBlNDlcXHUwZTMyXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGU0MlxcdTBlMTRcXHUwZTQwXFx1MGUyMVxcdTBlMTlcIixcImNvbnRhY3RPd25lck5hbWVcIjpcIlxcdTBlMGFcXHUwZTM3XFx1MGU0OFxcdTBlMmRcIixcImNvbnRhY3RPd25lckVtYWlsXCI6XCJcXHUwZTJkXFx1MGUzNVxcdTBlNDBcXHUwZTIxXFx1MGUyNVwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdTBlNDJcXHUwZTE3XFx1MGUyM1xcdTBlMjhcXHUwZTMxXFx1MGUxZVxcdTBlMTdcXHUwZTRjXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiXFx1MGUwNFxcdTBlMjdcXHUwZTMyXFx1MGUyMVxcdTBlMDRcXHUwZTM0XFx1MGUxNFxcdTBlNDBcXHUwZTJiXFx1MGU0N1xcdTBlMTlcIixcImNvbnRhY3RPd25lckNUQVwiOlwiXFx1MGUyYVxcdTBlNDhcXHUwZTA3XFx1MGUwMlxcdTBlNDlcXHUwZTJkXFx1MGUwNFxcdTBlMjdcXHUwZTMyXFx1MGUyMVwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJcXHUwZTAxXFx1MGUzM1xcdTBlMjVcXHUwZTMxXFx1MGUwN1xcdTBlMmJcXHUwZTMyXFx1MGU0MlxcdTBlMTRcXHUwZTQwXFx1MGUyMVxcdTBlMTlcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTA0XFx1MGUyNVxcdTBlNDlcXHUwZTMyXFx1MGUyMlxcdTBlMDRcXHUwZTI1XFx1MGUzNlxcdTBlMDdcXHUwZTAxXFx1MGUzMVxcdTBlMTlcXHUwZTJkXFx1MGUyMlxcdTBlMzlcXHUwZTQ4XFx1MGU0M1xcdTBlMGFcXHUwZTQ4XFx1MGU0NFxcdTBlMmJcXHUwZTIxXCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlxcdTBlMjVcXHUwZTJkXFx1MGUwN1xcdTBlMTRcXHUwZTM5XFx1MGU0MlxcdTBlMTRcXHUwZTQwXFx1MGUyMVxcdTBlMTlcXHUwZTIyXFx1MGUyZFxcdTBlMTRcXHUwZTE5XFx1MGUzNFxcdTBlMjJcXHUwZTIxXFx1MGU0MFxcdTBlMmJcXHUwZTI1XFx1MGU0OFxcdTBlMzJcXHUwZTE5XFx1MGUzNVxcdTBlNDlcIixcIkFULUJ1eVwiOlwiXFx1MGUwYlxcdTBlMzdcXHUwZTQ5XFx1MGUyZFwiLFwiQVQtUHJvbW90ZWRcIjpcIlxcdTBlMjFcXHUwZTM1XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGU0MlxcdTBlMWJcXHUwZTIzXFx1MGU0MlxcdTBlMjFcXHUwZTE3XCJ9Jyl9LDU5NDU6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBzYXRcXHUwMTMxXFx1MDE1ZmEgXFx4ZTdcXHUwMTMxa2FiaWxpciFcIixcImRic1RleHRIZWdcIjpcIjEyMyBSZWdcXHUyMDE5aW4gaXpuaXlsZSBcXHhmY2NyZXRzaXogb2xhcmFrIHBhcmsgZWRpbGRpLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcImlcXHhlN2luIGdlXFx4ZTdlcmxpbGlrIHNcXHhmY3Jlc2kgZG9sZHUgdmUgMTIzIFJlZ1xcdTIwMTlpbiBpem5peWxlIFxceGZjY3JldHNpeiBvbGFyYWsgcGFyayBlZGlsZGkuXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiR29EYWRkeSBBXFx4ZTdcXHUwMTMxayBBcnRcXHUwMTMxcm1hbGFyXFx1MDEzMSBcXHhmY3plcmluZGVuIHNhdFxcdTAxMzFuIGFsXFx1MDEzMW5hYmlsaXIuXCIsXCJhdWN0aW9uSGVnQmFubmVyVGV4dFwiOlwiQnUgYWxhbiBhZFxcdTAxMzEsIEdvRGFkZHkgQVxceGU3XFx1MDEzMWsgQXJ0XFx1MDEzMXJtYWxhclxcdTAxMzEgXFx4ZmN6ZXJpbmRlbiBzYXRcXHUwMTMxbiBhbFxcdTAxMzFuYWJpbGlyLlwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJpXFx4ZTdpbiBnZVxceGU3ZXJsaWxpayBzXFx4ZmNyZXNpIGRvbGR1IHZlIEdvRGFkZHkgQVxceGU3XFx1MDEzMWsgQXJ0XFx1MDEzMXJtYWxhclxcdTAxMzEgXFx4ZmN6ZXJpbmRlbiBzYXRcXHUwMTMxbiBhbFxcdTAxMzFuYWJpbGlyLlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiQnUgYWxhbiBhZFxcdTAxMzFuXFx1MDEzMW4gc2FoaWJpeXNlbml6IHZlIGtlbmRpIHdlYiBzaXRlbml6aSBvbHVcXHUwMTVmdHVybWFrIHZlIGt1bGxhbm1hayBpc3RpeW9yc2FuXFx1MDEzMXoge2hlZ0Zvb3RlclRleHRIZWdTaXRlTGlua30gdmUgSGF6XFx1MDEzMXIgV2ViIFNpdGVzaSwgV2ViIEhvc3RpbmcgdmUgZGFoYSBmYXpsYXNcXHUwMTMxblxcdTAxMzEgaVxceGU3ZXJlbiB1eWd1biBmaXlhdGxcXHUwMTMxIFxceGZjclxceGZjbiB5ZWxwYXplbWl6ZSBnXFx4ZjZ6IGF0XFx1MDEzMW4hXCIsXCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIjpcIjEyMyBSZWdcXCdpIHppeWFyZXQgZWRpblwiLFwidGRmc1RleHRcIjpcIntkb21haW59IGFsYW4gYWRcXHUwMTMxIHNhdFxcdTAxMzFcXHUwMTVmdGEuIFNhdFxcdTAxMzFuIGFsbWFrIGlcXHhlN2luIHthZnRlcm5pY1Bob25lMX0gdmV5YSB7YWZ0ZXJuaWNQaG9uZTJ9IG51bWFyYWxcXHUwMTMxIHRlbGVmb25kYW4ge2FmdGVybmljU2l0ZU5hbWV9IGlsZSBpbGV0aVxcdTAxNWZpbWUgZ2VcXHhlN2luLiBBeXJcXHUwMTMxbnRcXHUwMTMxbGFyIGlcXHhlN2luIGJ1cmF5XFx1MDEzMSB0XFx1MDEzMWtsYXlcXHUwMTMxbi5cIixcImRic1RleHRcIjpcIkdvRGFkZHkuY29tXFx1MjAxOXVuIGl6bml5bGUgXFx4ZmNjcmV0c2l6IG9sYXJhayBwYXJrIGVkaWxkaS5cIixcImV4cGlyZWREYnNUZXh0XCI6XCJpXFx4ZTdpbiBnZVxceGU3ZXJsaWxpayBzXFx4ZmNyZXNpIGRvbGR1IHZlIEdvRGFkZHkuY29tXFx1MjAxOXVuIGl6bml5bGUgXFx4ZmNjcmV0c2l6IG9sYXJhayBwYXJrIGVkaWxkaS5cIixcImF1Y3Rpb25UZXh0XCI6XCJHb0RhZGR5IEFcXHhlN1xcdTAxMzFrIEFydFxcdTAxMzFybWFsYXJcXHUwMTMxIFxceGZjemVyaW5kZW4gc2F0XFx1MDEzMW4gYWxcXHUwMTMxbmFiaWxpci5cIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJCdSBhbGFuIGFkXFx1MDEzMSwgR29EYWRkeSBBXFx4ZTdcXHUwMTMxayBBcnRcXHUwMTMxcm1hbGFyXFx1MDEzMSBcXHhmY3plcmluZGVuIHNhdFxcdTAxMzFuIGFsXFx1MDEzMW5hYmlsaXIuXCIsXCJjYXNocGFya2luZ1RleHRcIjpcIkJ1IGFsYW4gYWRcXHUwMTMxeWxhIGlsZ2lsZW5peW9yIG11c3VudXo/XCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcImlcXHhlN2luIGdlXFx4ZTdlcmxpbGlrIHNcXHhmY3Jlc2kgZG9sZHUgdmUgR29EYWRkeSBBXFx4ZTdcXHUwMTMxayBBcnRcXHUwMTMxcm1hbGFyXFx1MDEzMSBcXHhmY3plcmluZGVuIHNhdFxcdTAxMzFuIGFsXFx1MDEzMW5hYmlsaXIuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJCdSBBbGFuIEFkXFx1MDEzMW5cXHUwMTMxIEFsXFx1MDEzMW5cIixcImJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGFsYW4gYWRcXHUwMTMxeWxhIGlsZ2lsZW5peW9yIG11c3VudXo/IEFsYW4gQWRcXHUwMTMxIFxceGQ2biBTaXBhcmlcXHUwMTVmbGVyaSBcXHhmY3plcmluZGVuIHNpcGFyaVxcdTAxNWYgdmVybWVuaW4geW9sdW51IFxceGY2XFx1MDExZnJlbmluLlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IGFsYW4gYWRcXHUwMTMxblxcdTAxMzFuIHNcXHhmY3Jlc2kgZG9sZHUuIEFsYW4gQWRcXHUwMTMxIFxceGQ2biBTaXBhcmlcXHUwMTVmbGVyaSBcXHhmY3plcmluZGVuIHNpcGFyaVxcdTAxNWYgdmVybWVuaW4geW9sdW51IFxceGY2XFx1MDExZnJlbmluLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiVGVsaWYgSGFra1xcdTAxMzEgXFx4YTkgIFRcXHhmY20gaGFrbGFyXFx1MDEzMSBzYWtsXFx1MDEzMWRcXHUwMTMxci5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJHaXpsaWxpayBQb2xpdGlrYXNcXHUwMTMxXCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiVGVsaWYgSGFra1xcdTAxMzEgXFx4YTkgMTk5OS17Y3VycmVudFllYXJ9IEdvRGFkZHksIExMQy4gVFxceGZjbSBoYWtsYXJcXHUwMTMxIHNha2xcXHUwMTMxZFxcdTAxMzFyLlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIlRlbGlmIEhha2tcXHUwMTMxIFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGQgfFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJTb3J1bWx1bHVrIFJlZGRpOiBCdSBzaXRlZGUgYmVsaXJsaSBiaXIgXFx4ZmNyXFx4ZmNuZSwgXFx1MDE1Zmlya2V0ZSB2ZXlhIGhpem1ldGUgYnVsdW51bGFuIGF0XFx1MDEzMWZsYXIsIDEyMyBSZWcgTHRkIHRhcmFmXFx1MDEzMW5kYW4ga29udHJvbCBlZGlsbWVtZWt0ZWRpciB2ZSBidW5sYXIsIHNpdGVuaW4gXFx4ZmNcXHhlN1xceGZjbmNcXHhmYyB0YXJhZiByZWtsYW1jXFx1MDEzMWxhcmxhIGlsaVxcdTAxNWZraXNpIHlhIGRhIGJ1bmxhclxcdTAxMzEgZGVzdGVrbGVtZXNpIGFubGFtXFx1MDEzMW5hIGdlbG1lbWVrdGUgeWEgZGEgYnVudSBpbWEgZXRtZW1la3RlZGlyLlwiLFwib3dzSGVhZGluZ1wiOlwiI09wZW5XZVN0YW5kIGhhcmVrZXRpeWxlIGtcXHhmY1xceGU3XFx4ZmNrIFxceGY2bFxceGU3ZWtsaSBpXFx1MDE1ZmxldG1lbGVyaW4geWFuXFx1MDEzMW5kYXlcXHUwMTMxei5cIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJTaXppbiB2ZSBpXFx1MDE1ZmxldG1lbml6aW4gYnUgem9yIHphbWFubGFyZGEgc1xceGZjcmVjZSBhZGFwdGUgb2xtYXNcXHUwMTMxIGlcXHhlN2luIGVsaW1pemRlbiBnZWxlbiBoZXIgXFx1MDE1ZmV5aSB5YXBcXHUwMTMxeW9ydXouXCIsXCJvd3NDVEFcIjpcIkRhaGEgRmF6bGEgQmlsZ2lcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJSZWtsYW1sYXIgZW5nZWxsZW5kaVwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gc2F0XFx1MDEzMVxcdTAxNWZhIFxceGU3XFx1MDEzMWthYmlsaXJcIixcImNvbnRhY3RPd25lckRlc2NyaXB0aW9uXCI6XCJBbGFuIEFkXFx1MDEzMSBTYWhpYml5bGUgXFx1MDEzMGxldGlcXHUwMTVmaW1lIEdlXFx4ZTdpblwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiXFx1MDEzMHNpbVwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIkUtcG9zdGFcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJUZWxlZm9uXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiWW9ydW1sYXJcIixcImNvbnRhY3RPd25lckNUQVwiOlwiTWVzYWogR1xceGY2bmRlclwiLFwiQVQtTG9va2luZ0ZvclNpbWlsYXJEb21haW5zXCI6XCJCZW56ZXIgQWxhbiBBZGxhclxcdTAxMzEgbVxcdTAxMzEgYXJcXHUwMTMxeW9yc3VudXo/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIkVuIFxceGU3b2sgc2VcXHhlN2lsZW5sZXJlIGdcXHhmNnogYXRcXHUwMTMxblwiLFwiQVQtQnV5XCI6XCJTYXRcXHUwMTMxbiBhbFwiLFwiQVQtUHJvbW90ZWRcIjpcIlByb21vc3lvbmx1XCJ9Jyl9LDk0NTQ6ZT0+e1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7XCJjb250YWN0TWVUZXh0XCI6XCJ7ZG9tYWlufSBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDM1IFxcdTA0MzFcXHUwNDQzXFx1MDQ0MlxcdTA0MzggXFx1MDQzMlxcdTA0MzhcXHUwNDQxXFx1MDQ0MlxcdTA0MzBcXHUwNDMyXFx1MDQzYlxcdTA0MzVcXHUwNDNkXFx1MDQzZSBcXHUwNDNkXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDM0XFx1MDQzMFxcdTA0MzYhXCIsXCJkYnNUZXh0SGVnXCI6XCJcXHUwNDNmXFx1MDQ0MFxcdTA0MzhcXHUwNDNmXFx1MDQzMFxcdTA0NDBcXHUwNDNhXFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQzZFxcdTA0M2UgXFx1MDQzMVxcdTA0MzVcXHUwNDM3XFx1MDQzYVxcdTA0M2VcXHUwNDQ4XFx1MDQ0MlxcdTA0M2VcXHUwNDMyXFx1MDQzZFxcdTA0M2UgXFx1MDQzZFxcdTA0MzAgXFx1MDQzN1xcdTA0M2RcXHUwNDMwXFx1MDQzYSBcXHUwNDNmXFx1MDQzZVxcdTA0MzRcXHUwNDRmXFx1MDQzYVxcdTA0MzggXFx1MDQzMlxcdTA0NTZcXHUwNDM0IDEyMyBSZWcuXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiXFx1MDQzMVxcdTA0NTZcXHUwNDNiXFx1MDQ0Y1xcdTA0NDhcXHUwNDM1IFxcdTA0M2RcXHUwNDM1IFxcdTA0MzRcXHUwNDU2XFx1MDQ1NCBcXHUwNDQyXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0MzhcXHUwNDNmXFx1MDQzMFxcdTA0NDBcXHUwNDNhXFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQzZFxcdTA0MzhcXHUwNDM5IFxcdTA0MzFcXHUwNDM1XFx1MDQzN1xcdTA0M2FcXHUwNDNlXFx1MDQ0OFxcdTA0NDJcXHUwNDNlXFx1MDQzMlxcdTA0M2RcXHUwNDNlIFxcdTA0M2RcXHUwNDMwIFxcdTA0MzdcXHUwNDNkXFx1MDQzMFxcdTA0M2EgXFx1MDQzZlxcdTA0M2VcXHUwNDM0XFx1MDQ0ZlxcdTA0M2FcXHUwNDM4IFxcdTA0MzJcXHUwNDU2XFx1MDQzNCAxMjMgUmVnLlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcIlxcdTA0M2NcXHUwNDNlXFx1MDQzNlxcdTA0M2RcXHUwNDMwIFxcdTA0M2ZcXHUwNDQwXFx1MDQzOFxcdTA0MzRcXHUwNDMxXFx1MDQzMFxcdTA0NDJcXHUwNDM4IFxcdTA0M2RcXHUwNDMwIFxcdTA0MTBcXHUwNDQzXFx1MDQzYVxcdTA0NDZcXHUwNDU2XFx1MDQzZVxcdTA0M2RcXHUwNDMwXFx1MDQ0NSBHb0RhZGR5LlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlxcdTA0MjZcXHUwNDM1XFx1MDQzOSBcXHUwNDM0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZCBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDNkXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0MzhcXHUwNDM0XFx1MDQzMVxcdTA0MzBcXHUwNDQyXFx1MDQzOCBcXHUwNDNkXFx1MDQzMCBcXHUwNDEwXFx1MDQ0M1xcdTA0M2FcXHUwNDQ2XFx1MDQ1NlxcdTA0M2VcXHUwNDNkXFx1MDQzMFxcdTA0NDUgR29EYWRkeS5cIixcImV4cGlyZWRBdWN0aW9uSGVnVGV4dFwiOlwiXFx1MDQzMVxcdTA0NTZcXHUwNDNiXFx1MDQ0Y1xcdTA0NDhcXHUwNDM1IFxcdTA0M2RcXHUwNDM1IFxcdTA0MzRcXHUwNDU2XFx1MDQ1NCBcXHUwNDQyXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDNmXFx1MDQzZVxcdTA0M2RcXHUwNDQzXFx1MDQ1NFxcdTA0NDJcXHUwNDRjXFx1MDQ0MVxcdTA0NGYgXFx1MDQzZFxcdTA0MzAgXFx1MDQxMFxcdTA0NDNcXHUwNDNhXFx1MDQ0NlxcdTA0NTZcXHUwNDNlXFx1MDQzZFxcdTA0MzBcXHUwNDQ1IEdvRGFkZHkuXCIsXCJoZWdGb290ZXJUZXh0XCI6XCJcXHUwNDJmXFx1MDQzYVxcdTA0NDlcXHUwNDNlIFxcdTA0MzJcXHUwNDM4IFxcdTA0MzJcXHUwNDNlXFx1MDQzYlxcdTA0M2VcXHUwNDM0XFx1MDQ1NlxcdTA0NTRcXHUwNDQyXFx1MDQzNSBcXHUwNDQ2XFx1MDQzOFxcdTA0M2MgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDNkXFx1MDQzOFxcdTA0M2MgXFx1MDQ1NlxcdTA0M2NcXHUwNDM1XFx1MDQzZFxcdTA0MzVcXHUwNDNjIFxcdTA0NTYgXFx1MDQzMVxcdTA0MzBcXHUwNDM2XFx1MDQzMFxcdTA0NTRcXHUwNDQyXFx1MDQzNSBcXHUwNDNjXFx1MDQzMFxcdTA0NDJcXHUwNDM4IFxcdTA0MzJcXHUwNDNiXFx1MDQzMFxcdTA0NDFcXHUwNDNkXFx1MDQzOFxcdTA0MzkgXFx1MDQzMlxcdTA0MzVcXHUwNDMxLVxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDIsIFxcdTA0NDFcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDMxXFx1MDQ0M1xcdTA0MzlcXHUwNDQyXFx1MDQzNSB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBcXHUwNDU2IFxcdTA0M2VcXHUwNDM3XFx1MDQzZFxcdTA0MzBcXHUwNDM5XFx1MDQzZVxcdTA0M2NcXHUwNDM4XFx1MDQ0MlxcdTA0MzhcXHUwNDQxXFx1MDQ0ZiBcXHUwNDM3IFxcdTA0M2RcXHUwNDMwXFx1MDQ0OFxcdTA0MzhcXHUwNDNjIFxcdTA0MzBcXHUwNDQxXFx1MDQzZVxcdTA0NDBcXHUwNDQyXFx1MDQzOFxcdTA0M2NcXHUwNDM1XFx1MDQzZFxcdTA0NDJcXHUwNDNlXFx1MDQzYyBcXHUwNDNkXFx1MDQzNVxcdTA0MzRcXHUwNDNlXFx1MDQ0MFxcdTA0M2VcXHUwNDMzXFx1MDQzOFxcdTA0NDUgXFx1MDQzZlxcdTA0NDBcXHUwNDNlXFx1MDQzNFxcdTA0NDNcXHUwNDNhXFx1MDQ0MlxcdTA0NTZcXHUwNDMyLCBcXHUwNDQxXFx1MDQzNVxcdTA0NDBcXHUwNDM1XFx1MDQzNCBcXHUwNDRmXFx1MDQzYVxcdTA0MzhcXHUwNDQ1IFxcdTA0MzdcXHUwNDMwXFx1MDQ0MVxcdTA0NTZcXHUwNDMxIFxcdTA0NDFcXHUwNDQyXFx1MDQzMlxcdTA0M2VcXHUwNDQwXFx1MDQzNVxcdTA0M2RcXHUwNDNkXFx1MDQ0ZiBcXHUwNDQxXFx1MDQzMFxcdTA0MzlcXHUwNDQyXFx1MDQ0MywgXFx1MDQzMlxcdTA0MzVcXHUwNDMxLVxcdTA0NDVcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDM4XFx1MDQzZFxcdTA0MzMgXFx1MDQ1NiBcXHUwNDMxXFx1MDQzMFxcdTA0MzNcXHUwNDMwXFx1MDQ0MlxcdTA0M2UgXFx1MDQ1NlxcdTA0M2RcXHUwNDQ4XFx1MDQzZVxcdTA0MzNcXHUwNDNlIVwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJcXHUwNDMyXFx1MDQ1NlxcdTA0MzRcXHUwNDMyXFx1MDQ1NlxcdTA0MzRcXHUwNDMwXFx1MDQ0MlxcdTA0MzggMTIzIFJlZ1wiLFwidGRmc1RleHRcIjpcIlxcdTA0MTRcXHUwNDNlXFx1MDQzY1xcdTA0MzVcXHUwNDNkIHtkb21haW59IFxcdTA0MzJcXHUwNDM4XFx1MDQ0MVxcdTA0NDJcXHUwNDMwXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZFxcdTA0M2UgXFx1MDQzZFxcdTA0MzAgXFx1MDQzZlxcdTA0NDBcXHUwNDNlXFx1MDQzNFxcdTA0MzBcXHUwNDM2LiBcXHUwNDI5XFx1MDQzZVxcdTA0MzEgXFx1MDQzZlxcdTA0NDBcXHUwNDM4XFx1MDQzNFxcdTA0MzFcXHUwNDMwXFx1MDQ0MlxcdTA0MzggXFx1MDQzOVxcdTA0M2VcXHUwNDMzXFx1MDQzZSwgXFx1MDQzZlxcdTA0M2VcXHUwNDM0XFx1MDQzN1xcdTA0MzJcXHUwNDNlXFx1MDQzZFxcdTA0NTZcXHUwNDQyXFx1MDQ0YyBcXHUwNDNkXFx1MDQzMCB7YWZ0ZXJuaWNTaXRlTmFtZX0gXFx1MDQzN1xcdTA0MzAgXFx1MDQzZFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0NDBcXHUwNDNlXFx1MDQzYyB7YWZ0ZXJuaWNQaG9uZTF9IFxcdTA0MzBcXHUwNDMxXFx1MDQzZSB7YWZ0ZXJuaWNQaG9uZTJ9LiBcXHUwNDFhXFx1MDQzYlxcdTA0MzBcXHUwNDQ2XFx1MDQzZFxcdTA0NTZcXHUwNDQyXFx1MDQ0YyBcXHUwNDQyXFx1MDQ0M1xcdTA0NDIsIFxcdTA0NDlcXHUwNDNlIFxcdTA0M2VcXHUwNDQyXFx1MDQ0MFxcdTA0MzhcXHUwNDNjXFx1MDQzMFxcdTA0NDJcXHUwNDM4IFxcdTA0MzRcXHUwNDNlXFx1MDQzYVxcdTA0M2JcXHUwNDMwXFx1MDQzNFxcdTA0M2RcXHUwNDU2XFx1MDQ0OFxcdTA0NTYgXFx1MDQzMlxcdTA0NTZcXHUwNDM0XFx1MDQzZVxcdTA0M2NcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDU2LlwiLFwiZGJzVGV4dFwiOlwiXFx1MDQzZlxcdTA0NDBcXHUwNDM4XFx1MDQzZlxcdTA0MzBcXHUwNDQwXFx1MDQzYVxcdTA0M2VcXHUwNDMyXFx1MDQzMFxcdTA0M2RcXHUwNDNlIFxcdTA0MzFcXHUwNDM1XFx1MDQzN1xcdTA0M2FcXHUwNDNlXFx1MDQ0OFxcdTA0NDJcXHUwNDNlXFx1MDQzMlxcdTA0M2RcXHUwNDNlIFxcdTA0M2RcXHUwNDMwIFxcdTA0MzdcXHUwNDNkXFx1MDQzMFxcdTA0M2EgXFx1MDQzZlxcdTA0M2VcXHUwNDM0XFx1MDQ0ZlxcdTA0M2FcXHUwNDM4IFxcdTA0MzJcXHUwNDU2XFx1MDQzNCBHb0RhZGR5LmNvbS5cIixcImV4cGlyZWREYnNUZXh0XCI6XCJcXHUwNDMxXFx1MDQ1NlxcdTA0M2JcXHUwNDRjXFx1MDQ0OFxcdTA0MzUgXFx1MDQzZFxcdTA0MzUgXFx1MDQzNFxcdTA0NTZcXHUwNDU0IFxcdTA0NDJcXHUwNDMwIFxcdTA0M2ZcXHUwNDQwXFx1MDQzOFxcdTA0M2ZcXHUwNDMwXFx1MDQ0MFxcdTA0M2FcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0MzkgXFx1MDQzMVxcdTA0MzVcXHUwNDM3XFx1MDQzYVxcdTA0M2VcXHUwNDQ4XFx1MDQ0MlxcdTA0M2VcXHUwNDMyXFx1MDQzZFxcdTA0M2UgXFx1MDQzZFxcdTA0MzAgXFx1MDQzN1xcdTA0M2RcXHUwNDMwXFx1MDQzYSBcXHUwNDNmXFx1MDQzZVxcdTA0MzRcXHUwNDRmXFx1MDQzYVxcdTA0MzggXFx1MDQzMlxcdTA0NTZcXHUwNDM0IEdvRGFkZHkuY29tLlwiLFwiYXVjdGlvblRleHRcIjpcIlxcdTA0M2NcXHUwNDNlXFx1MDQzNlxcdTA0M2RcXHUwNDMwIFxcdTA0M2ZcXHUwNDQwXFx1MDQzOFxcdTA0MzRcXHUwNDMxXFx1MDQzMFxcdTA0NDJcXHUwNDM4IFxcdTA0M2RcXHUwNDMwIFxcdTA0MTBcXHUwNDQzXFx1MDQzYVxcdTA0NDZcXHUwNDU2XFx1MDQzZVxcdTA0M2RcXHUwNDMwXFx1MDQ0NSBHb0RhZGR5LlwiLFwiYXVjdGlvbkJhbm5lclRleHRcIjpcIlxcdTA0MjZcXHUwNDM1XFx1MDQzOSBcXHUwNDM0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZCBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDNkXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0MzhcXHUwNDM0XFx1MDQzMVxcdTA0MzBcXHUwNDQyXFx1MDQzOCBcXHUwNDNkXFx1MDQzMCBcXHUwNDEwXFx1MDQ0M1xcdTA0M2FcXHUwNDQ2XFx1MDQ1NlxcdTA0M2VcXHUwNDNkXFx1MDQzMFxcdTA0NDUgR29EYWRkeS5cIixcImNhc2hwYXJraW5nVGV4dFwiOlwiXFx1MDQxMlxcdTA0MzBcXHUwNDQxIFxcdTA0NDZcXHUwNDU2XFx1MDQzYVxcdTA0MzBcXHUwNDMyXFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0NDZcXHUwNDM1XFx1MDQzOSBcXHUwNDM0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZD9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiXFx1MDQzMVxcdTA0NTZcXHUwNDNiXFx1MDQ0Y1xcdTA0NDhcXHUwNDM1IFxcdTA0M2RcXHUwNDM1IFxcdTA0MzRcXHUwNDU2XFx1MDQ1NCBcXHUwNDQyXFx1MDQzMCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDNmXFx1MDQzZVxcdTA0M2RcXHUwNDQzXFx1MDQ1NFxcdTA0NDJcXHUwNDRjXFx1MDQ0MVxcdTA0NGYgXFx1MDQzZFxcdTA0MzAgXFx1MDQxMFxcdTA0NDNcXHUwNDNhXFx1MDQ0NlxcdTA0NTZcXHUwNDNlXFx1MDQzZFxcdTA0MzBcXHUwNDQ1IEdvRGFkZHkuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJcXHUwNDFlXFx1MDQ0MlxcdTA0NDBcXHUwNDM4XFx1MDQzY1xcdTA0MzBcXHUwNDQyXFx1MDQzOCBcXHUwNDQ2XFx1MDQzNVxcdTA0MzkgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2RcIixcImJhY2tvcmRlclRleHRcIjpcIlxcdTA0MTJcXHUwNDMwXFx1MDQ0MSBcXHUwNDQ2XFx1MDQ1NlxcdTA0M2FcXHUwNDMwXFx1MDQzMlxcdTA0MzhcXHUwNDQyXFx1MDQ0YyB7ZG9tYWlufT8gXFx1MDQxNFxcdTA0NTZcXHUwNDM3XFx1MDQzZFxcdTA0MzBcXHUwNDM5XFx1MDQ0MlxcdTA0MzVcXHUwNDQxXFx1MDQ0ZiwgXFx1MDQ0ZlxcdTA0M2EgXFx1MDQzZVxcdTA0NDJcXHUwNDQwXFx1MDQzOFxcdTA0M2NcXHUwNDMwXFx1MDQ0MlxcdTA0MzggXFx1MDQ0NlxcdTA0MzVcXHUwNDM5IFxcdTA0MzRcXHUwNDNlXFx1MDQzY1xcdTA0MzVcXHUwNDNkIFxcdTA0MzdcXHUwNDMwIFxcdTA0MzRcXHUwNDNlXFx1MDQzZlxcdTA0M2VcXHUwNDNjXFx1MDQzZVxcdTA0MzNcXHUwNDNlXFx1MDQ0ZSBcXHUwNDMyXFx1MDQ1NlxcdTA0MzRcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDM0XFx1MDQzNVxcdTA0M2RcXHUwNDNlXFx1MDQzM1xcdTA0M2UgXFx1MDQzN1xcdTA0MzBcXHUwNDNjXFx1MDQzZVxcdTA0MzJcXHUwNDNiXFx1MDQzNVxcdTA0M2RcXHUwNDNkXFx1MDQ0Zi5cIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSBcXHUwNDMxXFx1MDQ1NlxcdTA0M2JcXHUwNDRjXFx1MDQ0OFxcdTA0MzUgXFx1MDQzZFxcdTA0MzUgXFx1MDQzNFxcdTA0NTZcXHUwNDU0LiBcXHUwNDE0XFx1MDQ1NlxcdTA0MzdcXHUwNDNkXFx1MDQzMFxcdTA0MzlcXHUwNDQyXFx1MDQzNVxcdTA0NDFcXHUwNDRmLCBcXHUwNDRmXFx1MDQzYSBcXHUwNDNlXFx1MDQ0MlxcdTA0NDBcXHUwNDM4XFx1MDQzY1xcdTA0MzBcXHUwNDQyXFx1MDQzOCBcXHUwNDQ2XFx1MDQzNVxcdTA0MzkgXFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2QgXFx1MDQzN1xcdTA0MzAgXFx1MDQzNFxcdTA0M2VcXHUwNDNmXFx1MDQzZVxcdTA0M2NcXHUwNDNlXFx1MDQzM1xcdTA0M2VcXHUwNDRlIFxcdTA0MzJcXHUwNDU2XFx1MDQzNFxcdTA0M2FcXHUwNDNiXFx1MDQzMFxcdTA0MzRcXHUwNDM1XFx1MDQzZFxcdTA0M2VcXHUwNDMzXFx1MDQzZSBcXHUwNDM3XFx1MDQzMFxcdTA0M2NcXHUwNDNlXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZFxcdTA0M2RcXHUwNDRmLlwiLFwiY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5ICBcXHUwNDIzXFx1MDQ0MVxcdTA0NTYgXFx1MDQzZlxcdTA0NDBcXHUwNDMwXFx1MDQzMlxcdTA0MzAgXFx1MDQzN1xcdTA0MzBcXHUwNDQ1XFx1MDQzOFxcdTA0NDlcXHUwNDM1XFx1MDQzZFxcdTA0M2UuXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiXFx1MDQxZlxcdTA0M2VcXHUwNDNiXFx1MDQ1NlxcdTA0NDJcXHUwNDM4XFx1MDQzYVxcdTA0MzAgXFx1MDQzYVxcdTA0M2VcXHUwNDNkXFx1MDQ0NFxcdTA0NTZcXHUwNDM0XFx1MDQzNVxcdTA0M2RcXHUwNDQ2XFx1MDQ1NlxcdTA0MzlcXHUwNDNkXFx1MDQzZVxcdTA0NDFcXHUwNDQyXFx1MDQ1NlwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLiBcXHUwNDIzXFx1MDQ0MVxcdTA0NTYgXFx1MDQzZlxcdTA0NDBcXHUwNDMwXFx1MDQzMlxcdTA0MzAgXFx1MDQzN1xcdTA0MzBcXHUwNDQ1XFx1MDQzOFxcdTA0NDlcXHUwNDM1XFx1MDQzZFxcdTA0M2UuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGRcIixcInBhcmt3ZWJoZWdEaXNjbGFpbWVyVGV4dFwiOlwiXFx1MDQxN1xcdTA0MzBcXHUwNDQzXFx1MDQzMlxcdTA0MzBcXHUwNDM2XFx1MDQzNVxcdTA0M2RcXHUwNDNkXFx1MDQ0ZjogXFx1MDQzN1xcdTA0MzNcXHUwNDMwXFx1MDQzNFxcdTA0M2FcXHUwNDM4IFxcdTA0M2RcXHUwNDMwIFxcdTA0NDZcXHUwNDRjXFx1MDQzZVxcdTA0M2NcXHUwNDQzIFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcXHUwNDU2IFxcdTA0MzFcXHUwNDQzXFx1MDQzNFxcdTA0NGMtXFx1MDQ0ZlxcdTA0M2FcXHUwNDM4XFx1MDQ0NSBcXHUwNDNhXFx1MDQzZVxcdTA0M2RcXHUwNDNhXFx1MDQ0MFxcdTA0MzVcXHUwNDQyXFx1MDQzZFxcdTA0MzhcXHUwNDQ1IFxcdTA0M2FcXHUwNDNlXFx1MDQzY1xcdTA0M2ZcXHUwNDMwXFx1MDQzZFxcdTA0NTZcXHUwNDM5LCBcXHUwNDNmXFx1MDQ0MFxcdTA0M2VcXHUwNDM0XFx1MDQ0M1xcdTA0M2FcXHUwNDQyXFx1MDQ1NlxcdTA0MzIgXFx1MDQzMFxcdTA0MzFcXHUwNDNlIFxcdTA0M2ZcXHUwNDNlXFx1MDQ0MVxcdTA0M2JcXHUwNDQzXFx1MDQzMyBcXHUwNDNkXFx1MDQzNSBcXHUwNDNhXFx1MDQzZVxcdTA0M2RcXHUwNDQyXFx1MDQ0MFxcdTA0M2VcXHUwNDNiXFx1MDQ0ZVxcdTA0NGVcXHUwNDQyXFx1MDQ0Y1xcdTA0NDFcXHUwNDRmIFxcdTA0M2FcXHUwNDNlXFx1MDQzY1xcdTA0M2ZcXHUwNDMwXFx1MDQzZFxcdTA0NTZcXHUwNDU0XFx1MDQ0ZSAxMjMgUmVnIEx0ZCBcXHUwNDU2IFxcdTA0M2RcXHUwNDM1IFxcdTA0NDFcXHUwNDQyXFx1MDQzMFxcdTA0M2RcXHUwNDNlXFx1MDQzMlxcdTA0M2JcXHUwNDRmXFx1MDQ0MlxcdTA0NGMgXFx1MDQ0MlxcdTA0MzAgXFx1MDQzZFxcdTA0MzUgXFx1MDQzZVxcdTA0MzdcXHUwNDNkXFx1MDQzMFxcdTA0NDdcXHUwNDMwXFx1MDQ0ZVxcdTA0NDJcXHUwNDRjIFxcdTA0MzFcXHUwNDQzXFx1MDQzNFxcdTA0NGMtXFx1MDQ0ZlxcdTA0M2FcXHUwNDM4XFx1MDQzOSBcXHUwNDM3XFx1MDQzMlxcdTIwMTlcXHUwNDRmXFx1MDQzN1xcdTA0M2VcXHUwNDNhIFxcdTA0MzdcXHUwNDU2IFxcdTA0NDFcXHUwNDQyXFx1MDQzZVxcdTA0NDBcXHUwNDNlXFx1MDQzZFxcdTA0M2RcXHUwNDU2XFx1MDQzY1xcdTA0MzggXFx1MDQ0MFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQzZVxcdTA0MzRcXHUwNDMwXFx1MDQzMlxcdTA0NDZcXHUwNDRmXFx1MDQzY1xcdTA0MzggXFx1MDQzMFxcdTA0MzFcXHUwNDNlIFxcdTA0NTdcXHUwNDQ1IFxcdTA0NDFcXHUwNDQ1XFx1MDQzMlxcdTA0MzBcXHUwNDNiXFx1MDQzNVxcdTA0M2RcXHUwNDNkXFx1MDQ0Zi5cIixcIm93c0hlYWRpbmdcIjpcIlxcdTA0MWNcXHUwNDM4IFxcdTA0M2ZcXHUwNDU2XFx1MDQzNFxcdTA0NDJcXHUwNDQwXFx1MDQzOFxcdTA0M2NcXHUwNDQzXFx1MDQ1NFxcdTA0M2NcXHUwNDNlIFxcdTA0M2NcXHUwNDMwXFx1MDQzYlxcdTA0MzhcXHUwNDM5IFxcdTA0MzFcXHUwNDU2XFx1MDQzN1xcdTA0M2RcXHUwNDM1XFx1MDQ0MS4gI09wZW5XZVN0YW5kXCIsXCJvd3NEZXNjcmlwdGlvblwiOlwiXFx1MDQyMyBcXHUwNDQ2XFx1MDQ1NiBcXHUwNDQxXFx1MDQzYVxcdTA0NDBcXHUwNDQzXFx1MDQ0MlxcdTA0M2RcXHUwNDU2IFxcdTA0NDdcXHUwNDMwXFx1MDQ0MVxcdTA0MzggXFx1MDQzY1xcdTA0MzggXFx1MDQ0MFxcdTA0M2VcXHUwNDMxXFx1MDQzOFxcdTA0M2NcXHUwNDNlIFxcdTA0MzJcXHUwNDQxXFx1MDQzNSBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDNiXFx1MDQzOFxcdTA0MzJcXHUwNDM1LCBcXHUwNDQ5XFx1MDQzZVxcdTA0MzEgXFx1MDQzNFxcdTA0M2VcXHUwNDNmXFx1MDQzZVxcdTA0M2NcXHUwNDNlXFx1MDQzM1xcdTA0NDJcXHUwNDM4IFxcdTA0MzJcXHUwNDMwXFx1MDQzYyBcXHUwNDU2IFxcdTA0MzJcXHUwNDMwXFx1MDQ0OFxcdTA0M2VcXHUwNDNjXFx1MDQ0MyBcXHUwNDMxXFx1MDQ1NlxcdTA0MzdcXHUwNDNkXFx1MDQzNVxcdTA0NDFcXHUwNDQzIFxcdTA0M2ZcXHUwNDQwXFx1MDQzOFxcdTA0NDFcXHUwNDQyXFx1MDQzZVxcdTA0NDFcXHUwNDQzXFx1MDQzMlxcdTA0MzBcXHUwNDQyXFx1MDQzOFxcdTA0NDFcXHUwNDRmLlwiLFwib3dzQ1RBXCI6XCJcXHUwNDE0XFx1MDQzZVxcdTA0M2FcXHUwNDNiXFx1MDQzMFxcdTA0MzRcXHUwNDNkXFx1MDQ1NlxcdTA0NDhcXHUwNDM1XCIsXCJhZHNCbG9ja2VkVGV4dFwiOlwiXFx1MDQyMFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQ0MyBcXHUwNDM3XFx1MDQzMFxcdTA0MzFcXHUwNDNiXFx1MDQzZVxcdTA0M2FcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzZVwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gXFx1MDQzY1xcdTA0M2VcXHUwNDM2XFx1MDQzNSBcXHUwNDMxXFx1MDQ0M1xcdTA0NDJcXHUwNDM4IFxcdTA0MzJcXHUwNDM4XFx1MDQ0MVxcdTA0NDJcXHUwNDMwXFx1MDQzMlxcdTA0M2JcXHUwNDM1XFx1MDQzZFxcdTA0M2UgXFx1MDQzZFxcdTA0MzAgXFx1MDQzZlxcdTA0NDBcXHUwNDNlXFx1MDQzNFxcdTA0MzBcXHUwNDM2XCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiXFx1MDQxN1xcdTA0MzJcXHUwNDM1XFx1MDQ0MFxcdTA0M2RcXHUwNDU2XFx1MDQ0MlxcdTA0NGNcXHUwNDQxXFx1MDQ0ZiBcXHUwNDM0XFx1MDQzZSBcXHUwNDMyXFx1MDQzYlxcdTA0MzBcXHUwNDQxXFx1MDQzZFxcdTA0MzhcXHUwNDNhXFx1MDQzMCBcXHUwNDM0XFx1MDQzZVxcdTA0M2NcXHUwNDM1XFx1MDQzZFxcdTA0NDNcIixcImNvbnRhY3RPd25lck5hbWVcIjpcIlxcdTA0MDZcXHUwNDNjXFwnXFx1MDQ0ZlwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIlxcdTA0MTVcXHUwNDNiXFx1MDQzNVxcdTA0M2FcXHUwNDQyXFx1MDQ0MFxcdTA0M2VcXHUwNDNkXFx1MDQzZFxcdTA0MzAgXFx1MDQzZlxcdTA0M2VcXHUwNDQ4XFx1MDQ0MlxcdTA0MzBcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJcXHUwNDIyXFx1MDQzNVxcdTA0M2JcXHUwNDM1XFx1MDQ0NFxcdTA0M2VcXHUwNDNkXCIsXCJjb250YWN0T3duZXJDb21tZW50c1wiOlwiXFx1MDQxYVxcdTA0M2VcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDQyXFx1MDQzMFxcdTA0NDBcXHUwNDU2XCIsXCJjb250YWN0T3duZXJDVEFcIjpcIlxcdTA0MWRcXHUwNDMwXFx1MDQzNFxcdTA0NTZcXHUwNDQxXFx1MDQzYlxcdTA0MzBcXHUwNDQyXFx1MDQzOCBcXHUwNDNmXFx1MDQzZVxcdTA0MzJcXHUwNDU2XFx1MDQzNFxcdTA0M2VcXHUwNDNjXFx1MDQzYlxcdTA0MzVcXHUwNDNkXFx1MDQzZFxcdTA0NGZcIixcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wiOlwiXFx1MDQyOFxcdTA0NDNcXHUwNDNhXFx1MDQzMFxcdTA0NTRcXHUwNDQyXFx1MDQzNSBcXHUwNDNmXFx1MDQzZVxcdTA0MzRcXHUwNDU2XFx1MDQzMVxcdTA0M2RcXHUwNDU2IFxcdTA0MzRcXHUwNDNlXFx1MDQzY1xcdTA0MzVcXHUwNDNkXFx1MDQzOD9cIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiXFx1MDQxZVxcdTA0MzNcXHUwNDNiXFx1MDQ0ZlxcdTA0M2RcXHUwNDRjXFx1MDQ0MlxcdTA0MzUgXFx1MDQ0NlxcdTA0NTYgXFx1MDQzZFxcdTA0MzBcXHUwNDM5XFx1MDQzYVxcdTA0NDBcXHUwNDMwXFx1MDQ0OVxcdTA0NTYgXFx1MDQzN1xcdTA0MzFcXHUwNDU2XFx1MDQ0MFxcdTA0M2FcXHUwNDM4XCIsXCJBVC1CdXlcIjpcIlxcdTA0MWFcXHUwNDQzXFx1MDQzZlxcdTA0MzhcXHUwNDQyXFx1MDQzOFwiLFwiQVQtUHJvbW90ZWRcIjpcIlxcdTA0MjBcXHUwNDM1XFx1MDQzYVxcdTA0M2JcXHUwNDMwXFx1MDQzY1xcdTA0NDNcXHUwNDU0XFx1MDQ0MlxcdTA0NGNcXHUwNDQxXFx1MDQ0ZlwifScpfSw0NDA2OmU9PntcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgne1wiY29udGFjdE1lVGV4dFwiOlwiQlxcdTFlYTFuIGNcXHhmMyB0aFxcdTFlYzMga2luaCBkb2FuaCB7ZG9tYWlufSFcIixcImRic1RleHRIZWdcIjpcIlxcdTAxMTFcXHUwMWIwXFx1MWVlM2MgY2hvIHRodVxceGVhIG1pXFx1MWVjNW4gcGhcXHhlZCwgbmhcXHUwMWIwIG1cXHUxZWQ5dCBcXHUwMWIwdSBcXHUwMTExXFx4ZTNpIGNcXHUxZWU3YSAxMjMgUmVnLlwiLFwiZXhwaXJlZERic1RleHRIZWdcIjpcIlxcdTAxMTFcXHhlMyBoXFx1MWViZnQgaFxcdTFlYTFuIHZcXHhlMCBcXHUwMTExXFx1MDFiMFxcdTFlZTNjIGNobyB0aHVcXHhlYSBtaVxcdTFlYzVuIHBoXFx4ZWQsIG5oXFx1MDFiMCBtXFx1MWVkOXQgXFx1MDFiMHUgXFx1MDExMVxceGUzaSBjXFx1MWVlN2EgMTIzIFJlZy5cIixcImF1Y3Rpb25IZWdUZXh0XCI6XCJraFxcdTFlYTMgZFxcdTFlZTVuZyB0clxceGVhbiBHb0RhZGR5IFxcdTAxMTBcXHUxZWE1dSBnaVxceGUxLlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIk1pXFx1MWVjMW4gblxceGUweSBraFxcdTFlYTMgZFxcdTFlZTVuZyB0clxceGVhbiBHb0RhZGR5IFxcdTAxMTBcXHUxZWE1dSBnaVxceGUxXCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcIlxcdTAxMTFcXHhlMyBoXFx1MWViZnQgaFxcdTFlYTFuIHZcXHhlMCBraFxcdTFlYTMgZFxcdTFlZTVuZyB0clxceGVhbiBHb0RhZGR5IFxcdTAxMTBcXHUxZWE1dSBnaVxceGUxLlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiTlxcdTFlYmZ1IGJcXHUxZWExbiBzXFx1MWVkZiBoXFx1MWVlZnUgdFxceGVhbiBtaVxcdTFlYzFuIG5cXHhlMHkgdlxceGUwIG11XFx1MWVkMW4gd2Vic2l0ZSBjXFx1MWVlN2EgcmlcXHhlYW5nIGJcXHUxZWExbiBiXFx1MWVhZnQgXFx1MDExMVxcdTFlYTd1IGhvXFx1MWVhMXQgXFx1MDExMVxcdTFlZDluZywgdGhcXHhlYyB0XFx1MWVhMWkgc2FvIGtoXFx4ZjRuZyB7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSB2XFx4ZTAgaFxceGUzeSB4ZW0gbG9cXHUxZWExdCBzXFx1MWVhM24gcGhcXHUxZWE5bSBnaVxceGUxIGNcXHUxZWEzIHBoXFx1MWVhM2kgY2hcXHUwMTAzbmcgY1xcdTFlZTdhIGNoXFx4ZmFuZyB0XFx4ZjRpLCBiYW8gZ1xcdTFlZDNtIFRyXFx4ZWNuaCBkXFx1MWVmMW5nIHdlYnNpdGUsIExcXHUwMWIwdSB0clxcdTFlZWYgd2ViIHZcXHhlMCBuaGlcXHUxZWMxdSBzXFx1MWVhM24gcGhcXHUxZWE5bSBraFxceGUxYyFcIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwidHJ1eSBjXFx1MWVhZHAgMTIzIFJlZ1wiLFwidGRmc1RleHRcIjpcIk1pXFx1MWVjMW4ge2RvbWFpbn0gbFxceGUwIFxcdTAxMTFcXHUxZWMzIGJcXHhlMW4uIFxcdTAxMTBcXHUxZWMzIG11YSBtaVxcdTFlYzFuLCBiXFx1MWVhMW4gdnVpIGxcXHhmMm5nIGdcXHUxZWNkaSB7YWZ0ZXJuaWNTaXRlTmFtZX0gdGhlbyBzXFx1MWVkMSB7YWZ0ZXJuaWNQaG9uZTF9IGhheSB7YWZ0ZXJuaWNQaG9uZTJ9LiBCXFx1MWVhMW4gdnVpIGxcXHhmMm5nIG5oXFx1MWVhNXAgdlxceGUwbyBcXHUwMTExXFx4ZTJ5IFxcdTAxMTFcXHUxZWMzIGJpXFx1MWViZnQgdGhcXHhlYW0gdGhcXHhmNG5nIHRpbi5cIixcImRic1RleHRcIjpcIlxcdTAxMTFcXHUwMWIwXFx1MWVlM2MgY2hvIHRodVxceGVhIG1pXFx1MWVjNW4gcGhcXHhlZCwgbmhcXHUwMWIwIG1cXHUxZWQ5dCBcXHUwMWIwdSBcXHUwMTExXFx4ZTNpIGNcXHUxZWU3YSBHb0RhZGR5LmNvbS5cIixcImV4cGlyZWREYnNUZXh0XCI6XCJcXHUwMTExXFx4ZTMgaFxcdTFlYmZ0IGhcXHUxZWExbiB2XFx4ZTAgXFx1MDExMVxcdTAxYjBcXHUxZWUzYyBjaG8gdGh1XFx4ZWEgbWlcXHUxZWM1biBwaFxceGVkLCBuaFxcdTAxYjAgbVxcdTFlZDl0IFxcdTAxYjB1IFxcdTAxMTFcXHhlM2kgY1xcdTFlZTdhIEdvRGFkZHkuY29tLlwiLFwiYXVjdGlvblRleHRcIjpcImtoXFx1MWVhMyBkXFx1MWVlNW5nIHRyXFx4ZWFuIEdvRGFkZHkgXFx1MDExMFxcdTFlYTV1IGdpXFx4ZTEuXCIsXCJhdWN0aW9uQmFubmVyVGV4dFwiOlwiTWlcXHUxZWMxbiBuXFx4ZTB5IGtoXFx1MWVhMyBkXFx1MWVlNW5nIHRyXFx4ZWFuIEdvRGFkZHkgXFx1MDExMFxcdTFlYTV1IGdpXFx4ZTFcIixcImNhc2hwYXJraW5nVGV4dFwiOlwiQlxcdTFlYTFuIGNcXHhmMyBoXFx1MWVlOW5nIHRoXFx4ZmEgdlxcdTFlZGJpIG1pXFx1MWVjMW4gblxceGUweT9cIixcImV4cGlyZWRBdWN0aW9uVGV4dFwiOlwiXFx1MDExMVxceGUzIGhcXHUxZWJmdCBoXFx1MWVhMW4gdlxceGUwIGtoXFx1MWVhMyBkXFx1MWVlNW5nIHRyXFx4ZWFuIEdvRGFkZHkgXFx1MDExMFxcdTFlYTV1IGdpXFx4ZTEuXCIsXCJHZXRUaGlzRG9tYWluQ1RBXCI6XCJTXFx1MWVkZiBoXFx1MWVlZnUgbWlcXHUxZWMxbiBuXFx4ZTB5XCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJCXFx1MWVhMW4gY1xceGYzIGhcXHUxZWU5bmcgdGhcXHhmYSB2XFx1MWVkYmkge2RvbWFpbn0/IFRcXHhlY20gaGlcXHUxZWMzdSBjXFx4ZTFjaCBtdWEgbWlcXHUxZWMxbiB0aFxceGY0bmcgcXVhIFxcdTAxMTFcXHUwMWExbiBoXFx4ZTBuZyBcXHUwMTExXFx1MWViN3Qgc1xcdTFlYjVuIG1pXFx1MWVjMW4uXCIsXCJleHBpcmVkQmFja29yZGVyVGV4dFwiOlwie2RvbWFpbn0gXFx1MDExMVxceGUzIGhcXHUxZWJmdCBoXFx1MWVhMW4uIFRcXHhlY20gaGlcXHUxZWMzdSBjXFx4ZTFjaCBtdWEgXFx1MDExMVxcdTAxYjBcXHUxZWUzYyBtaVxcdTFlYzFuIHRoXFx4ZjRuZyBxdWEgXFx1MDExMVxcdTAxYTFuIGhcXHhlMG5nIFxcdTAxMTFcXHUxZWI3dCBzXFx1MWViNW4gbWlcXHUxZWMxbi5cIixcImNvcHlyaWdodFRleHRcIjpcIkJcXHUxZWEzbiBxdXlcXHUxZWMxbiBcXHhhOSAgTVxcdTFlY2RpIHF1eVxcdTFlYzFuIFxcdTAxMTFcXHUwMWIwXFx1MWVlM2MgYlxcdTFlYTNvIGxcXHUwMWIwdS5cIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJDaFxceGVkbmggc1xceGUxY2ggdlxcdTFlYzEgcXV5XFx1MWVjMW4gcmlcXHhlYW5nIHRcXHUwMWIwXCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQlxcdTFlYTNuIHF1eVxcdTFlYzFuIFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuIE1cXHUxZWNkaSBxdXlcXHUxZWMxbiBcXHUwMTExXFx1MDFiMFxcdTFlZTNjIGJcXHUxZWEzbyBsXFx1MDFiMHUuXCIsXCJwYXJrd2ViaGVnY29weXJpZ2h0VGV4dFwiOlwiQlxcdTFlYTNuIHF1eVxcdTFlYzFuIFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGQgfFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJUdXlcXHhlYW4gYlxcdTFlZDEgbWlcXHUxZWM1biB0clxcdTFlZWIgdHJcXHhlMWNoIG5oaVxcdTFlYzdtOiBSZWcgTHRkIGtoXFx4ZjRuZyBraVxcdTFlYzNtIHNvXFx4ZTF0IGNcXHhlMWMgdGhhbSBjaGlcXHUxZWJmdSB2XFx1MWVkYmkgYlxcdTFlYTV0IGtcXHUxZWYzIGNcXHhmNG5nIHR5LCBzXFx1MWVhM24gcGhcXHUxZWE5bSBoYXkgZFxcdTFlY2JjaCB2XFx1MWVlNSBuXFx4ZTBvIHRyXFx4ZWFuIFRyYW5nIG5cXHhlMHkgdlxceGUwIGtoXFx4ZjRuZyBjXFx1MWVhNXUgdGhcXHhlMG5oIGhheSBuZ1xcdTFlZTUgXFx4ZmQgbVxcdTFlZDFpIGxpXFx4ZWFuIHF1YW4gaGF5IGNoXFx1MWVlOW5nIHRoXFx1MWVmMWMgY2hvIGNcXHhlMWMgbmhcXHhlMCBxdVxcdTFlYTNuZyBjXFx4ZTFvIGJcXHhlYW4gdGhcXHUxZWU5IGJhLlwiLFwib3dzSGVhZGluZ1wiOlwiI09wZW5XZVN0YW5kIHNcXHhlMXQgY1xceGUxbmggY1xceGY5bmcgZG9hbmggbmdoaVxcdTFlYzdwIG5oXFx1MWVjZi5cIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJUcm9uZyB0aFxcdTFlZGRpIGtoXFx1MWVhZmMga2hcXHhmMyBraFxcdTAxMDNuIG5cXHhlMHksIGNoXFx4ZmFuZyB0XFx4ZjRpIGxcXHhlMG0gdFxcdTFlYTV0IGNcXHUxZWEzIGNcXHhmMyB0aFxcdTFlYzMgXFx1MDExMVxcdTFlYzMgZ2lcXHhmYXAgYlxcdTFlYTFuIHZcXHhlMCBkb2FuaCBuZ2hpXFx1MWVjN3AgY1xcdTFlZTdhIG1cXHhlY25oIHRoXFx4ZWRjaCBuZ2hpLlwiLFwib3dzQ1RBXCI6XCJUXFx4ZWNtIGhpXFx1MWVjM3UgdGhcXHhlYW1cIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJRdVxcdTFlYTNuZyBjXFx4ZTFvIFxcdTAxMTFcXHhlMyBiXFx1MWVjYiBjaFxcdTFlYjduLlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gY1xceGYzIHRoXFx1MWVjMyBcXHUwMTExXFx1MWVjMyBiXFx4ZTFuXCIsXCJjb250YWN0T3duZXJEZXNjcmlwdGlvblwiOlwiVnVpIGxcXHhmMm5nIGxpXFx4ZWFuIGhcXHUxZWM3IGNoXFx1MWVlNyBzXFx1MWVkZiBoXFx1MWVlZnUgbWlcXHUxZWMxblwiLFwiY29udGFjdE93bmVyTmFtZVwiOlwiVFxceGVhblwiLFwiY29udGFjdE93bmVyRW1haWxcIjpcIkVtYWlsXCIsXCJjb250YWN0T3duZXJQaG9uZVwiOlwiXFx1MDExMGlcXHUxZWM3biB0aG9cXHUxZWExaVwiLFwiY29udGFjdE93bmVyQ29tbWVudHNcIjpcIkJcXHhlY25oIGx1XFx1MWVhZG5cIixcImNvbnRhY3RPd25lckNUQVwiOlwiR1xcdTFlZWRpIHRpbiBuaFxcdTFlYWZuXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIkJcXHUxZWExbiBcXHUwMTExYW5nIHRcXHhlY20ga2lcXHUxZWJmbSBjXFx4ZTFjIG1pXFx1MWVjMW4gdFxcdTAxYjBcXHUwMWExbmcgdFxcdTFlZjE/XCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlZ1aSBsXFx4ZjJuZyB4ZW0gcXVhIGNcXHhlMWMgbFxcdTFlZjFhIGNoXFx1MWVjZG4gaFxceGUwbmcgXFx1MDExMVxcdTFlYTd1IG5cXHhlMHlcIixcIkFULUJ1eVwiOlwiTXVhXCIsXCJBVC1Qcm9tb3RlZFwiOlwiQ1xceGYzIGtodXlcXHUxZWJmbiBtXFx1MWVhMWlcIn0nKX0sNzI1ODplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIntkb21haW59IFxcdTUzZWZcXHU0ZjliXFx1NTFmYVxcdTU1MmVcXHVmZjAxXCIsXCJkYnNUZXh0SGVnXCI6XCJcXHU1MTRkXFx1OGQzOVxcdTUwNWNcXHU2NTNlXFx1ZmYwY1xcdTc1MzEgMTIzIFJlZyBcXHU2M2QwXFx1NGY5YlxcdTMwMDJcIixcImV4cGlyZWREYnNUZXh0SGVnXCI6XCJcXHU1ZGYyXFx1OGZjN1xcdTY3MWZcXHU0ZTE0XFx1NTE0ZFxcdThkMzlcXHU1MDVjXFx1NjUzZVxcdWZmMGNcXHU3NTMxIDEyMyBSZWcgXFx1NjNkMFxcdTRmOWJcXHUzMDAyXCIsXCJhdWN0aW9uSGVnVGV4dFwiOlwiXFx1NWRmMlxcdTRlMGFcXHU2N2I2IEdvRGFkZHkgXFx1NTdkZlxcdTU0MGRcXHU0ZWE0XFx1NjYxM1xcdTMwMDJcIixcImF1Y3Rpb25IZWdCYW5uZXJUZXh0XCI6XCJcXHU2YjY0XFx1NTdkZlxcdTU0MGRcXHU1ZGYyXFx1NGUwYVxcdTY3YjYgR29EYWRkeSBcXHU1N2RmXFx1NTQwZFxcdTRlYTRcXHU2NjEzXFx1MzAwMlwiLFwiZXhwaXJlZEF1Y3Rpb25IZWdUZXh0XCI6XCJcXHU1ZGYyXFx1OGZjN1xcdTY3MWZcXHU1ZTc2XFx1NWRmMlxcdTRlMGFcXHU2N2I2IEdvRGFkZHkgXFx1NTdkZlxcdTU0MGRcXHU0ZWE0XFx1NjYxM1xcdTMwMDJcIixcImhlZ0Zvb3RlclRleHRcIjpcIlxcdTU5ODJcXHU2NzljXFx1NjBhOFxcdTYyZTVcXHU2NzA5XFx1NmI2NFxcdTU3ZGZcXHU1NDBkXFx1NWU3NlxcdTVlMGNcXHU2NzFiXFx1NWVmYVxcdTdhY2JcXHU1NDhjXFx1OGZkMFxcdTg4NGNcXHU2MGE4XFx1ODFlYVxcdTVkZjFcXHU3Njg0XFx1N2Y1MVxcdTdhZDlcXHVmZjBjXFx1OTBhM1xcdTRlNDhcXHU0ZTNhXFx1NGY1NVxcdTRlMGR7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfVxcdTVlNzZcXHU2N2U1XFx1NzcwYlxcdTYyMTFcXHU0ZWVjXFx1NTQwNFxcdTdjN2JcXHU3ZWNmXFx1NmQ0ZVxcdTViOWVcXHU2MGUwXFx1NzY4NFxcdTRlYTdcXHU1NGMxXFx1ZmYwY1xcdTUxNzZcXHU0ZTJkXFx1NTMwNVxcdTYyZWNcXHU1ZWZhXFx1N2FkOVxcdTc5NWVcXHU1NjY4XFx1MzAwMVxcdTg2NWFcXHU2MmRmXFx1NGUzYlxcdTY3M2FcXHU3YjQ5XFx1N2I0OVxcdWZmMDFcIixcImhlZ0Zvb3RlclRleHRIZWdTaXRlTGlua1wiOlwiXFx1OGJiZlxcdTk1ZWUgMTIzIFJlZ1xcdWZmMGNcIixcInRkZnNUZXh0XCI6XCJcXHU1N2RmXFx1NTQwZCB7ZG9tYWlufSBcXHU1M2VmXFx1NGY5YlxcdTUxZmFcXHU1NTJlXFx1MzAwMlxcdTgyZTVcXHU4OTgxXFx1OGQyZFxcdTRlNzBcXHVmZjBjXFx1OGJmN1xcdTYyZThcXHU2MjUzIHthZnRlcm5pY1Bob25lMX0gXFx1NjIxNiB7YWZ0ZXJuaWNQaG9uZTJ9IFxcdTgwNTRcXHU3Y2ZiIHthZnRlcm5pY1NpdGVOYW1lfVxcdTMwMDJcXHU3MGI5XFx1NTFmYlxcdTZiNjRcXHU1OTA0XFx1ZmYwY1xcdTRlODZcXHU4OWUzXFx1NjZmNFxcdTU5MWFcXHU4YmU2XFx1N2VjNlxcdTRmZTFcXHU2MDZmXFx1MzAwMlwiLFwiZGJzVGV4dFwiOlwiXFx1NTE0ZFxcdThkMzlcXHU1MDVjXFx1NjUzZVxcdWZmMGNcXHU3NTMxIEdvRGFkZHkuY29tIFxcdTYzZDBcXHU0ZjliXFx1MzAwMlwiLFwiZXhwaXJlZERic1RleHRcIjpcIlxcdTVkZjJcXHU4ZmM3XFx1NjcxZlxcdTRlMTRcXHU1MTRkXFx1OGQzOVxcdTUwNWNcXHU2NTNlXFx1ZmYwY1xcdTc1MzEgR29EYWRkeS5jb20gXFx1NjNkMFxcdTRmOWJcXHUzMDAyXCIsXCJhdWN0aW9uVGV4dFwiOlwiXFx1NWRmMlxcdTRlMGFcXHU2N2I2IEdvRGFkZHkgXFx1NTdkZlxcdTU0MGRcXHU0ZWE0XFx1NjYxM1xcdTMwMDJcIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJcXHU2YjY0XFx1NTdkZlxcdTU0MGRcXHU1ZGYyXFx1NGUwYVxcdTY3YjYgR29EYWRkeSBcXHU1N2RmXFx1NTQwZFxcdTRlYTRcXHU2NjEzXFx1MzAwMlwiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHU1YmY5XFx1NmI2NFxcdTU3ZGZcXHU1NDBkXFx1NjExZlxcdTUxNzRcXHU4ZGEzXFx1ZmYxZlwiLFwiZXhwaXJlZEF1Y3Rpb25UZXh0XCI6XCJcXHU1ZGYyXFx1OGZjN1xcdTY3MWZcXHU1ZTc2XFx1NWRmMlxcdTRlMGFcXHU2N2I2IEdvRGFkZHkgXFx1NTdkZlxcdTU0MGRcXHU0ZWE0XFx1NjYxM1xcdTMwMDJcIixcIkdldFRoaXNEb21haW5DVEFcIjpcIlxcdTgzYjdcXHU1Zjk3XFx1NmI2NFxcdTU3ZGZcXHU1NDBkXCIsXCJiYWNrb3JkZXJUZXh0XCI6XCJcXHU1YmY5IHtkb21haW59IFxcdTYxMWZcXHU1MTc0XFx1OGRhM1xcdWZmMWZcXHU0ZTg2XFx1ODllM1xcdTU5ODJcXHU0ZjU1XFx1OTAxYVxcdThmYzdcXHU1N2RmXFx1NTQwZFxcdTYyYTJcXHU2Y2U4XFx1NjcwZFxcdTUyYTFcXHU1Zjk3XFx1NTIzMFxcdThiZTVcXHU1N2RmXFx1NTQwZFxcdTMwMDJcIixcImV4cGlyZWRCYWNrb3JkZXJUZXh0XCI6XCJ7ZG9tYWlufSBcXHU1ZGYyXFx1OGZjN1xcdTY3MWZcXHUzMDAyXFx1NGU4NlxcdTg5ZTNcXHU1OTgyXFx1NGY1NVxcdTkwMWFcXHU4ZmM3XFx1NTdkZlxcdTU0MGRcXHU2MmEyXFx1NmNlOFxcdTY3MGRcXHU1MmExXFx1NWY5N1xcdTUyMzBcXHU4YmU1XFx1NTdkZlxcdTU0MGRcXHUzMDAyXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJcXHU3MjQ4XFx1Njc0M1xceGE5ICBcXHU0ZmRkXFx1NzU1OVxcdTYyNDBcXHU2NzA5XFx1Njc0M1xcdTUyMjlcXHUzMDAyXCIsXCJwcml2YWN5UG9saWN5VGV4dFwiOlwiXFx1OTY5MFxcdTc5YzFcXHU2NTNmXFx1N2I1NlwiLFwicGFya3dlYmNvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSAxOTk5LXtjdXJyZW50WWVhcn0gR29EYWRkeSwgTExDLlxcdTRmZGRcXHU3NTU5XFx1NjI0MFxcdTY3MDlcXHU2NzQzXFx1NTIyOVxcdTMwMDJcIixcInBhcmt3ZWJoZWdjb3B5cmlnaHRUZXh0XCI6XCJcXHU3MjQ4XFx1Njc0M1xcdTYyNDBcXHU2NzA5IFxceGE5IHtjdXJyZW50WWVhcn0gMTIzIFJlZyBMdGQgfFwiLFwicGFya3dlYmhlZ0Rpc2NsYWltZXJUZXh0XCI6XCJcXHU1MTRkXFx1OGQyM1xcdTU4ZjBcXHU2NjBlXFx1ZmYxYVxcdTViZjlcXHU2NzJjXFx1N2Y1MVxcdTdhZDlcXHU0ZTBhXFx1NGVmYlxcdTRmNTVcXHU3Mjc5XFx1NWI5YVxcdTUxNmNcXHU1M2Y4XFx1MzAwMVxcdTRlYTdcXHU1NGMxXFx1NjIxNlxcdTY3MGRcXHU1MmExXFx1NzY4NFxcdTVmMTVcXHU3NTI4XFx1NGUwZFxcdTUzZDcgMTIzIFJlZyBMdGQgXFx1NzY4NFxcdTYzYTdcXHU1MjM2XFx1ZmYwY1xcdTVlNzZcXHU0ZTBkXFx1ODljNlxcdTRlM2FcXHU2MjE2XFx1NjY5N1xcdTc5M2FcXHU0ZTBlXFx1N2IyY1xcdTRlMDlcXHU2NWI5XFx1NWU3ZlxcdTU0NGFcXHU1NTQ2XFx1NjcwOVxcdTUxNzNcXHU4MDU0XFx1NjIxNlxcdTRlM2FcXHU1MTc2XFx1ODBjY1xcdTRlNjZcXHUzMDAyXCIsXCJvd3NIZWFkaW5nXCI6XCJcXHU5MDA5XFx1OGQyZCAjT3BlbldlU3RhbmRcXHVmZjBjXFx1NTJhOVxcdTUyOWJcXHU1YzBmXFx1NTc4YlxcdTRmMDFcXHU0ZTFhXFx1NTNkMVxcdTVjNTVcXHU0ZTFhXFx1NTJhMVxcdTMwMDJcIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJcXHU1NzI4XFx1OGZkOVxcdTZiYjVcXHU4MjcwXFx1OTZiZVxcdTY1ZjZcXHU2NzFmXFx1ZmYwY1xcdTYyMTFcXHU0ZWVjXFx1NWMwNlxcdTVjM2RcXHU0ZTAwXFx1NTIwN1xcdTUyYWFcXHU1MjliXFx1NWUyZVxcdTUyYTlcXHU2MGE4XFx1NTQ4Y1xcdTYwYThcXHU3Njg0XFx1NGYwMVxcdTRlMWFcXHU5MDAyXFx1NWU5NFxcdTY1YjBcXHU3Njg0XFx1NWM0MFxcdTUyYmZcXHUzMDAyXCIsXCJvd3NDVEFcIjpcIlxcdTRlODZcXHU4OWUzXFx1NjZmNFxcdTU5MWFcIixcImFkc0Jsb2NrZWRUZXh0XCI6XCJcXHU1ZTdmXFx1NTQ0YVxcdTg4YWJcXHU1YzRmXFx1ODUzZFwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gXFx1NTNlZlxcdTRmOWJcXHU1MWZhXFx1NTUyZVwiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIlxcdTgwNTRcXHU3Y2ZiXFx1NTdkZlxcdTU0MGRcXHU2MjQwXFx1NjcwOVxcdTgwMDVcIixcImNvbnRhY3RPd25lck5hbWVcIjpcIlxcdTU5ZDNcXHU1NDBkXCIsXCJjb250YWN0T3duZXJFbWFpbFwiOlwiXFx1NGYwMVxcdTRlMWFcXHU5MGFlXFx1N2JiMVwiLFwiY29udGFjdE93bmVyUGhvbmVcIjpcIlxcdTYyNGJcXHU2NzNhXFx1NTNmN1xcdTc4MDFcIixcImNvbnRhY3RPd25lckNvbW1lbnRzXCI6XCJcXHU4YmM0XFx1OGJiYVwiLFwiY29udGFjdE93bmVyQ1RBXCI6XCJcXHU1M2QxXFx1OTAwMVxcdTZkODhcXHU2MDZmXCIsXCJBVC1Mb29raW5nRm9yU2ltaWxhckRvbWFpbnNcIjpcIlxcdTViZmJcXHU2MjdlXFx1N2M3YlxcdTRmM2NcXHU1N2RmXFx1NTQwZFxcdWZmMWZcIixcIkFULUNoZWNrT3V0VGhlc2VUb3BQaWNrc1wiOlwiXFx1NjdlNVxcdTc3MGJcXHU4ZmQ5XFx1NGU5YlxcdTcwZWRcXHU5NWU4XFx1NGU0YlxcdTkwMDlcIixcIkFULUJ1eVwiOlwiXFx1OGQyZFxcdTRlNzBcIixcIkFULVByb21vdGVkXCI6XCJcXHU0ZmMzXFx1OTUwMFxcdTU0YzFcIn0nKX0sNzk3NDplPT57XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcImNvbnRhY3RNZVRleHRcIjpcIntkb21haW59IFxcdTUzZWZcXHU4MGZkXFx1NTNlZlxcdTRmOWJcXHU2MGE4XFx1OTA3OFxcdThjZmNcXHVmZjAxXCIsXCJkYnNUZXh0SGVnXCI6XCJcXHU1MTRkXFx1OGNiYlxcdTViYzRcXHU2NTNlXFx1NGUyZFxcdWZmMGNcXHU2NzJjXFx1NjcwZFxcdTUyZDlcXHU3NTMxIDEyMyBSZWcgXFx1NjNkMFxcdTRmOWJcXHUzMDAyXCIsXCJleHBpcmVkRGJzVGV4dEhlZ1wiOlwiXFx1NWRmMlxcdTdkOTNcXHU5MDRlXFx1NjcxZlxcdTRlMjZcXHU1NzI4XFx1NTE0ZFxcdThjYmJcXHU1YmM0XFx1NjUzZVxcdTRlMmRcXHVmZjBjXFx1NjcyY1xcdTY3MGRcXHU1MmQ5XFx1NzUzMSAxMjMgUmVnIFxcdTYzZDBcXHU0ZjliXFx1MzAwMlwiLFwiYXVjdGlvbkhlZ1RleHRcIjpcIlxcdTUzZWZcXHU4MWYzIEdvRGFkZHkgXFx1N2RiMlxcdTU3ZGZcXHU0ZWE0XFx1NjYxM1xcdTkwNzhcXHU4Y2ZjXFx1MzAwMlwiLFwiYXVjdGlvbkhlZ0Jhbm5lclRleHRcIjpcIlxcdTZiNjRcXHU3ZGIyXFx1NTdkZlxcdTUzZWZcXHU4MWYzIEdvRGFkZHkgXFx1N2RiMlxcdTU3ZGZcXHU0ZWE0XFx1NjYxM1xcdTkwNzhcXHU4Y2ZjXCIsXCJleHBpcmVkQXVjdGlvbkhlZ1RleHRcIjpcIlxcdTVkZjJcXHU3ZDkzXFx1OTA0ZVxcdTY3MWZcXHVmZjBjXFx1NjBhOFxcdTUzZWZcXHU4MWYzIEdvRGFkZHkgXFx1N2RiMlxcdTU3ZGZcXHU0ZWE0XFx1NjYxM1xcdTkwNzhcXHU4Y2ZjXFx1MzAwMlwiLFwiaGVnRm9vdGVyVGV4dFwiOlwiXFx1NTk4MlxcdTY3OWNcXHU2MGE4XFx1NjRjMVxcdTY3MDlcXHU5MDE5XFx1NTAwYlxcdTdkYjJcXHU1N2RmXFx1NTQwZFxcdTdhMzFcXHVmZjBjXFx1NGU1ZlxcdTYwZjNcXHU5NThiXFx1NTljYlxcdTdkOTNcXHU3MWRmXFx1ODFlYVxcdTVkZjFcXHU3Njg0XFx1N2RiMlxcdTdhZDlcXHVmZjBjXFx1NGUwZFxcdTU5YTh7aGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rfSBcXHU0ZTI2XFx1NzcwYlxcdTc3MGJcXHU2MjExXFx1NTAxMVxcdTYzZDBcXHU0ZjliXFx1NzY4NFxcdTU5MWFcXHU3YTJlXFx1NWJlNlxcdTYwZTBcXHU3NTIyXFx1NTRjMVxcdWZmMGNcXHU1MzA1XFx1NjJlY1xcdTVlZmFcXHU3YWQ5XFx1Nzk1ZVxcdTU2NjhcXHUzMDAxXFx1ODY1YlxcdTY0ZWNcXHU0ZTNiXFx1NmE1ZlxcdTdiNDlcXHU1OTFhXFx1N2EyZVxcdTkwNzhcXHU2NGM3XFx1ZmYwMVwiLFwiaGVnRm9vdGVyVGV4dEhlZ1NpdGVMaW5rXCI6XCJcXHU1MjRkXFx1NWY4MCAxMjMgUmVnXCIsXCJ0ZGZzVGV4dFwiOlwiXFx1N2RiMlxcdTU3ZGYge2RvbWFpbn0gXFx1NmI2M1xcdTU3MjhcXHU4Y2E5XFx1NTUyZVxcdTRlMmRcXHUzMDAyXFx1NTk4MlxcdTk3MDBcXHU5MDc4XFx1OGNmY1xcdWZmMGNcXHU4YWNiXFx1NjRhNSB7YWZ0ZXJuaWNQaG9uZTF9IFxcdTYyMTYge2FmdGVybmljUGhvbmUyfSBcXHU2ZDNkIHthZnRlcm5pY1NpdGVOYW1lfVxcdTMwMDJcXHU4MmU1XFx1NjBmM1xcdTc3YWRcXHU4OWUzXFx1OGE3M1xcdTYwYzVcXHVmZjBjXFx1OGFjYlxcdTYzMDlcXHU2YjY0XFx1ODY1NVxcdTMwMDJcIixcImRic1RleHRcIjpcIlxcdTUxNGRcXHU4Y2JiXFx1NWJjNFxcdTY1M2VcXHU0ZTJkXFx1ZmYwY1xcdTY3MmNcXHU2NzBkXFx1NTJkOVxcdTc1MzEgR29EYWRkeS5jb20gXFx1NjNkMFxcdTRmOWJcXHUzMDAyXCIsXCJleHBpcmVkRGJzVGV4dFwiOlwiXFx1NWRmMlxcdTdkOTNcXHU5MDRlXFx1NjcxZlxcdTRlMjZcXHU1NzI4XFx1NTE0ZFxcdThjYmJcXHU1YmM0XFx1NjUzZVxcdTRlMmRcXHVmZjBjXFx1NjcyY1xcdTY3MGRcXHU1MmQ5XFx1NzUzMSBHb0RhZGR5LmNvbSBcXHU2M2QwXFx1NGY5YlxcdTMwMDJcIixcImF1Y3Rpb25UZXh0XCI6XCJcXHU1M2VmXFx1ODFmMyBHb0RhZGR5IFxcdTdkYjJcXHU1N2RmXFx1NGVhNFxcdTY2MTNcXHU5MDc4XFx1OGNmY1xcdTMwMDJcIixcImF1Y3Rpb25CYW5uZXJUZXh0XCI6XCJcXHU2YjY0XFx1N2RiMlxcdTU3ZGZcXHU1M2VmXFx1ODFmMyBHb0RhZGR5IFxcdTdkYjJcXHU1N2RmXFx1NGVhNFxcdTY2MTNcXHU5MDc4XFx1OGNmY1wiLFwiY2FzaHBhcmtpbmdUZXh0XCI6XCJcXHU2MGE4XFx1NWMwZFxcdTZiNjRcXHU3ZGIyXFx1NTdkZlxcdTYxMWZcXHU4MjA4XFx1OGRhM1xcdTU1Y2VcXHVmZjFmXCIsXCJleHBpcmVkQXVjdGlvblRleHRcIjpcIlxcdTVkZjJcXHU3ZDkzXFx1OTA0ZVxcdTY3MWZcXHVmZjBjXFx1NjBhOFxcdTUzZWZcXHU4MWYzIEdvRGFkZHkgXFx1N2RiMlxcdTU3ZGZcXHU0ZWE0XFx1NjYxM1xcdTkwNzhcXHU4Y2ZjXFx1MzAwMlwiLFwiR2V0VGhpc0RvbWFpbkNUQVwiOlwiXFx1NTNkNlxcdTVmOTdcXHU2YjY0XFx1N2RiMlxcdTU3ZGZcIixcImJhY2tvcmRlclRleHRcIjpcIlxcdTYwYThcXHU1YzBkIHtkb21haW59IFxcdTYxMWZcXHU4MjA4XFx1OGRhM1xcdTU1Y2VcXHVmZjFmXFx1NzcwYlxcdTc3MGJcXHU1OTgyXFx1NGY1NVxcdTkwNGJcXHU3NTI4XFx1N2RiMlxcdTU3ZGZcXHU5ODEwXFx1OGEwMlxcdTUzZDZcXHU1Zjk3XFx1NmI2NFxcdTdkYjJcXHU1N2RmXFx1MzAwMlwiLFwiZXhwaXJlZEJhY2tvcmRlclRleHRcIjpcIntkb21haW59IFxcdTVkZjJcXHU5MDRlXFx1NjcxZlxcdTMwMDJcXHU3NzBiXFx1NzcwYlxcdTU5ODJcXHU0ZjU1XFx1OTA0YlxcdTc1MjhcXHU3ZGIyXFx1NTdkZlxcdTk4MTBcXHU4YTAyXFx1NTNkNlxcdTVmOTdcXHU2YjY0XFx1N2RiMlxcdTU3ZGZcXHUzMDAyXCIsXCJjb3B5cmlnaHRUZXh0XCI6XCJDb3B5cmlnaHQgXFx4YTkgIFxcdTRmZGRcXHU3NTU5XFx1NjI0MFxcdTY3MDlcXHU2YjBhXFx1NTIyOVxcdTMwMDJcIixcInByaXZhY3lQb2xpY3lUZXh0XCI6XCJcXHU5NmIxXFx1NzljMVxcdTY1M2ZcXHU3YjU2XCIsXCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiOlwiQ29weXJpZ2h0IFxceGE5IDE5OTkte2N1cnJlbnRZZWFyfSBHb0RhZGR5LCBMTEMuXFx1NGZkZFxcdTc1NTlcXHU2MjQwXFx1NjcwOVxcdTZiMGFcXHU1MjI5XFx1MzAwMlwiLFwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIjpcIkNvcHlyaWdodCBcXHhhOSB7Y3VycmVudFllYXJ9IDEyMyBSZWcgTHRkXCIsXCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIjpcIlxcdTgwNzJcXHU2NjBlXFx1ZmYxYVxcdTY3MmNcXHU3ZGIyXFx1N2FkOVxcdTYzZDBcXHU1M2NhXFx1NzY4NFxcdTRlZmJcXHU0ZjU1XFx1NzI3OVxcdTViOWFcXHU1MTZjXFx1NTNmOFxcdTMwMDFcXHU3NTIyXFx1NTRjMVxcdTYyMTZcXHU2NzBkXFx1NTJkOVxcdTc2ODZcXHU2NzJhXFx1NTNkN1xcdTUyMzAgMTIzIFJlZyBMdGQgXFx1NjNhN1xcdTdiYTFcXHVmZjBjXFx1NGUyNlxcdTRlMGRcXHU2OWNiXFx1NjIxMFxcdTYyMTZcXHU2Njk3XFx1NzkzYVxcdThhNzJcXHU1MTZjXFx1NTNmOFxcdTU0OGNcXHU3YjJjXFx1NGUwOVxcdTY1YjlcXHU1ZWUzXFx1NTQ0YVxcdTU1NDZcXHU2NzA5XFx1OTVkY1xcdTgwNmZcXHU2MjE2XFx1NzBiYVxcdTUxNzZcXHU4MGNjXFx1NjZmOFxcdTMwMDJcIixcIm93c0hlYWRpbmdcIjpcIiNPcGVuV2VTdGFuZCBcXHU1NDhjXFx1NWMwZlxcdTU3OGJcXHU0ZjAxXFx1Njk2ZFxcdTRlMDBcXHU4ZDc3XFx1OTc2MlxcdTVjMGRcXHU5NmUzXFx1OTVkY1xcdTMwMDJcIixcIm93c0Rlc2NyaXB0aW9uXCI6XCJcXHU1NzI4XFx1NTk4MlxcdTRlY2FcXHU5MDE5XFx1ODIyY1xcdTU2YjRcXHU1Y2ZiXFx1NzY4NFxcdTY2NDJcXHU1YzQwXFx1NGUwYlxcdWZmMGNcXHU2MjExXFx1NTAxMVxcdTk4NThcXHU2MTBmXFx1NzZlMVxcdTYyNDBcXHU2NzA5XFx1NTJhYVxcdTUyOWJcXHU1ZTZiXFx1NTJhOVxcdTYwYThcXHU1M2NhXFx1NjBhOFxcdTc2ODRcXHU0ZjAxXFx1Njk2ZFxcdTZlMjFcXHU5MDRlXFx1OTZlM1xcdTk1ZGNcXHUzMDAyXCIsXCJvd3NDVEFcIjpcIlxcdTc3YWRcXHU4OWUzXFx1NjZmNFxcdTU5MWFcXHU4Y2M3XFx1OGEwYVwiLFwiYWRzQmxvY2tlZFRleHRcIjpcIlxcdTVkZjJcXHU1YzAxXFx1OTM5NlxcdTVlZTNcXHU1NDRhXFx1MzAwMlwiLFwiY29udGFjdE93bmVyVGV4dFwiOlwie2RvbWFpbn0gXFx1NTNlZlxcdTgwZmRcXHU1M2VmXFx1NGY5YlxcdTYwYThcXHU5MDc4XFx1OGNmY1wiLFwiY29udGFjdE93bmVyRGVzY3JpcHRpb25cIjpcIlxcdTZkM2RcXHU4YTYyXFx1N2RiMlxcdTU3ZGZcXHU2NGMxXFx1NjcwOVxcdTgwMDVcIixcImNvbnRhY3RPd25lck5hbWVcIjpcIlxcdTU5ZDNcXHU1NDBkXCIsXCJjb250YWN0T3duZXJFbWFpbFwiOlwiZW1haWxcIixcImNvbnRhY3RPd25lclBob25lXCI6XCJcXHU5NmZiXFx1OGE3MVwiLFwiY29udGFjdE93bmVyQ29tbWVudHNcIjpcIlxcdTc1NTlcXHU4YTAwXCIsXCJjb250YWN0T3duZXJDVEFcIjpcIlxcdTUwYjNcXHU5MDAxXFx1OGEwYVxcdTYwNmZcIixcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wiOlwiXFx1NjBmM1xcdTYyN2VcXHU5ODVlXFx1NGYzY1xcdTc2ODRcXHU3ZGIyXFx1NTdkZlxcdTU1Y2VcXHVmZjFmXCIsXCJBVC1DaGVja091dFRoZXNlVG9wUGlja3NcIjpcIlxcdThhY2JcXHU1M2MzXFx1ODAwM1xcdTRlZTVcXHU0ZTBiXFx1NjcwMFxcdTU0MDhcXHU5MDY5XFx1NzY4NFxcdTkwNzhcXHU2NGM3XCIsXCJBVC1CdXlcIjpcIlxcdThjZmNcXHU4Y2I3XCIsXCJBVC1Qcm9tb3RlZFwiOlwiXFx1NWJhM1xcdTUwYjNcXHU1NTQ2XFx1NTRjMVwifScpfX0sdD17fTtmdW5jdGlvbiBuKHIpe3ZhciBvPXRbcl07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBpPXRbcl09e2V4cG9ydHM6e319O3JldHVybiBlW3JdLmNhbGwoaS5leHBvcnRzLGksaS5leHBvcnRzLG4pLGkuZXhwb3J0c31uLm49ZT0+e3ZhciB0PWUmJmUuX19lc01vZHVsZT8oKT0+ZS5kZWZhdWx0OigpPT5lO3JldHVybiBuLmQodCx7YTp0fSksdH0sbi5kPShlLHQpPT57Zm9yKHZhciByIGluIHQpbi5vKHQscikmJiFuLm8oZSxyKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMCxnZXQ6dFtyXX0pfSxuLmc9ZnVuY3Rpb24oKXtpZihcIm9iamVjdFwiPT09dHlwZW9mIGdsb2JhbFRoaXMpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxuZXcgRnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpfWNhdGNoKGUpe2lmKFwib2JqZWN0XCI9PT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLG4ubz0oZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCksbi5yPWU9PntcInVuZGVmaW5lZFwiIT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sbi5wPVwiaHR0cHM6Ly9pbWcxLndzaW1nLmNvbS9wYXJraW5nLWxhbmRlci9cIiwoKCk9PntcInVzZSBzdHJpY3RcIjtuKDIzMzgpLG4oNDE3OSk7dmFyIGU9bigyNzkxKSx0PW4oNDE2NCkscj1uKDk0Nyksbz1uKDc3KTtjb25zdCBpPTEsYT0yLHM9MyxsPVwiQUNUSVZFXCIsYz17QURfQ0xJQ0s6XCJBRF9DTElDS1wiLEJBTk5FUl9DTElDSzpcIkJBTk5FUl9DTElDS1wiLEVSUk9SOlwiRVJST1JcIixLRVlXT1JEX0NMSUNLOlwiS0VZV09SRF9DTElDS1wiLEtFWVdPUkRfU0VBUkNIOlwiS0VZV09SRF9TRUFSQ0hcIixSRURJUkVDVF9GT1M6XCJSRURJUkVDVF9GT1NcIixWSVNJVDpcIlZJU0lUXCIsVkVSSVpPTl9WSVNJVDpcIlZFUklaT05fVklTSVRcIixWRVJJWk9OX0FEX0NMSUNLRUQ6XCJWRVJJWk9OX0FEX0NMSUNLRURcIixTRVJQX1JFRElSRUNUOlwiU0VSUF9SRURJUkVDVFwiLFNFUlBfUkVESVJFQ1RfQ09OU0VOVDpcIlNFUlBfUkVESVJFQ1RfQ09OU0VOVFwifSx1PXtHT09HTEVfQURfU0VOU0U6XCJHT09HTEVfQURfU0VOU0VcIixWRVJJWk9OOlwiVkVSSVpPTlwifSxkPXtET01BSU46XCJkb21haW5cIixTX1RPS0VOOlwic190b2tlblwiLFVVSUQ6XCJ1dWlkXCIsVEVNUExBVEU6XCJ0ZW1wbGF0ZVwiLFNFQVJDSF9CT1g6XCJzZWFyY2hib3hcIixTRUFSQ0hfQlVUVE9OOlwic2VhcmNoYnV0dG9uXCIsU0hPV19ET01BSU46XCJzaG93ZG9tYWluXCIsVERGUzpcInRkZnNcIixCQUNLX0ZJTEw6XCJiYWNrZmlsbFwiLFRFUk06XCJ0ZXJtXCIsREVCVUdfTU9ERTpcImRlYnVnbW9kZVwiLFZFUklaT05fRkVFRDpcInZlcml6b25cIixESVNBQkxFX0FEVElMRTpcImRpc2FibGVfYWR0aWxlXCJ9LHA9e0VSUk9SX0ZFVENISU5HX0RPTUFJTl9DT05GSUc6XCJFUlJPUl9GRVRDSElOR19ET01BSU5fQ09ORklHXCIsRVJST1JfRE9NQUlOX1NUQVRVU19JTlZBTElEOlwiRVJST1JfRE9NQUlOX1NUQVRVU19JTlZBTElEXCIsRVJST1JfQURTRU5TRV9OT19DQUY6XCJFUlJPUl9BRFNFTlNFX05PX0NBRlwiLEVSUk9SX0FEU0VOU0VfQ0FGOlwiRVJST1JfQURTRU5TRV9DQUZcIixFUlJPUl9BRFNFTlNFX05PX0FEUzpcIkVSUk9SX0FEU0VOU0VfTk9fQURTXCIsRVJST1JfQURTRU5TRV9OT19SUzpcIkVSUk9SX0FEU0VOU0VfTk9fUlNcIixFUlJPUl9VTktOT1dOX0RPTUFJTl9UWVBFOlwiRVJST1JfVU5LTk9XTl9ET01BSU5fVFlQRVwiLEVSUk9SX05PX0RSSUQ6XCJFUlJPUl9OT19EUklEXCIsRVJST1JfTk9fUFVCSUQ6XCJFUlJPUl9OT19QVUJJRFwiLEVSUk9SX1ZFUklaT05fTk9fQURTOlwiRVJST1JfVkVSSVpPTl9OT19BRFNcIixFUlJPUl9WRVJJWk9OX05PX1JTOlwiRVJST1JfVkVSSVpPTl9OT19SU1wifSxmPXtDSVRZOlwiY2l0eVwiLENMSUVOVF9JUDpcImNhZl9pcGFkZHJcIixDT1VOVFJZOlwiY291bnRyeVwiLEVYUElSWV9QQVJUTkVSOlwiZXhwaXJ5X3BhcnRuZXJcIixTWVNURU06XCJzeXN0ZW1cIixUUkFGRklDX1RBUkdFVDpcInRyYWZmaWNfdGFyZ2V0XCIsVklTSVRPUl9JRDpcInB2aXNpdG9yXCIsR0NQX0xCX0lQOlwiZ2NwX2xiX2lwXCJ9LGg9e1NNQVJUTkFNRTpcIlNOXCIsQ0FTSFBBUktJTkc6XCJDUFwiLFBBUktXRUI6XCJQV1wifSxtPXtFTl9VUzpcImVuXCJ9LGc9XCJ0ZGZzX2V4cFwiO2Z1bmN0aW9uIHkoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGQuRE9NQUlOKT9lW2QuRE9NQUlOXTp3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9ZnVuY3Rpb24gdihlKXtyZXR1cm4gZT0oZStcIlwiKS50b1N0cmluZygpLGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKFwiIVwiLFwiJTIxXCIpLnJlcGxhY2UoXCInXCIsXCIlMjdcIikucmVwbGFjZShcIihcIixcIiUyOFwiKS5yZXBsYWNlKFwiKVwiLFwiJTI5XCIpLnJlcGxhY2UoXCIqXCIsXCIlMkFcIil9ZnVuY3Rpb24gYihlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJihcIm9iamVjdFwiPT09dHlwZW9mIGVbbl0/dC5wdXNoKG4rXCI9XCIrdihiKGVbbl0pKSk6bnVsbCE9PWVbbl0mJnQucHVzaChuK1wiPVwiK3YoZVtuXSkpKTtyZXR1cm4gdC5sZW5ndGg+MD90LmpvaW4oXCImXCIpOlwiXCJ9ZnVuY3Rpb24gVChlKXtsZXQgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06XCIsXCI7aWYobnVsbCE9PWUmJlwidW5kZWZpbmVkXCIhPT10eXBlb2YgZSlyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLmpvaW4odCk6ZX1mdW5jdGlvbiB4KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UubGVuZ3RoOjF9ZnVuY3Rpb24gdygpe3JldHVybiEhL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfWZ1bmN0aW9uIGsoZSx0KXtmb3IoY29uc3QgbiBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pKXtjb25zdCByPW5ldyBSZWdFeHAoUyhcIiR7XCIrbitcIn1cIiksXCJnXCIpO1widW5kZWZpbmVkXCIhPT10eXBlb2YgZSYmKGU9ZS5yZXBsYWNlKHIsdFtuXSkpfXJldHVybiBlfWZ1bmN0aW9uIEUoZSx0KXtmb3IoY29uc3QgbiBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pKXtjb25zdCByPW5ldyBSZWdFeHAoUyhcIntcIituK1wifVwiKSxcImdcIik7XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBlJiYoZT1lLnJlcGxhY2Uocix0W25dKSl9cmV0dXJuIGV9ZnVuY3Rpb24gUyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZyxcIlxcXFwkJlwiKX1mdW5jdGlvbiBBKGUpe2NvbnN0IHQ9ZStcIj1cIixuPWRvY3VtZW50LmNvb2tpZS5zcGxpdChcIjtcIik7Zm9yKGxldCByPTA7cjxuLmxlbmd0aDtyKyspe2xldCBlPW5bcl07Zm9yKDtcIiBcIj09PWUuY2hhckF0KDApOyllPWUuc3Vic3RyaW5nKDEpO2lmKDA9PT1lLmluZGV4T2YodCkpcmV0dXJuIGUuc3Vic3RyaW5nKHQubGVuZ3RoLGUubGVuZ3RoKX1yZXR1cm5cIlwifWZ1bmN0aW9uIEMoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLnByb3RvY29sLnJlcGxhY2UoLzokLyxcIlwiKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIF8oKXtsZXQgZT0obmV3IERhdGUpLmdldFRpbWUoKTtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIHBlcmZvcm1hbmNlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgcGVyZm9ybWFuY2Uubm93JiYoZSs9cGVyZm9ybWFuY2Uubm93KCkpLFwieHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4XCIucmVwbGFjZSgvW3h5XS9nLChmdW5jdGlvbih0KXt2YXIgbj0oZSsxNipNYXRoLnJhbmRvbSgpKSUxNnwwO3JldHVybiBlPU1hdGguZmxvb3IoZS8xNiksKFwieFwiPT09dD9uOjMmbnw4KS50b1N0cmluZygxNil9KSl9ZnVuY3Rpb24gRCgpe2xldCBlPUEoZi5WSVNJVE9SX0lEKTtlfHwoZT1fKCkpO3JldHVybiBmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1uZXcgRGF0ZTtyLnNldFRpbWUoci5nZXRUaW1lKCkrbik7Y29uc3Qgbz1cImV4cGlyZXM9XCIrci50b1VUQ1N0cmluZygpO2RvY3VtZW50LmNvb2tpZT1lK1wiPVwiK3QrXCI7XCIrbytcIjtwYXRoPS9cIn0oZi5WSVNJVE9SX0lELGUsMzE1MzZlNiksZX1mdW5jdGlvbiBSKGUpe3JldHVybiBlLnJlcGxhY2UoL1xcd1xcUyovZywoZT0+ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpKX1mdW5jdGlvbiBPKGUpe3RoaXMucGVyZkVudHJ5PWUsdGhpcy5kb21Db21wbGV0ZT0oKT0+dGhpcy5wZXJmRW50cnk/dGhpcy5wZXJmRW50cnkuZG9tQ29udGVudExvYWRlZEV2ZW50RW5kLWUuZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQ6bnVsbCx0aGlzLmxvYWRFdmVudEVuZD0oKT0+dGhpcy5wZXJmRW50cnk/dGhpcy5wZXJmRW50cnkubG9hZEV2ZW50RW5kLXRoaXMucGVyZkVudHJ5LmxvYWRFdmVudFN0YXJ0Om51bGx9dmFyIFA9bigyODA4KSxMPW4ubihQKSxOPW4oOTA0MCksST1uKDcxNDIpO2NvbnN0IGo9W2QuU0hPV19ET01BSU4sZC5UREZTLGQuQkFDS19GSUxMLGQuU0VBUkNIX0JPWCxkLlNFQVJDSF9CVVRUT04sZC5ERUJVR19NT0RFLGQuVkVSSVpPTl9GRUVELGQuRElTQUJMRV9BRFRJTEVdO2Z1bmN0aW9uIEIoZSl7Y29uc3QgdD1MKCkucGFyc2UoZSx7aWdub3JlUXVlcnlQcmVmaXg6ITAsZGVjb2RlcjpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm5cImtleVwiPT09cj9lLnRvTG93ZXJDYXNlKCk6XCJ2YWx1ZVwiPT09cj90KGUsbnVsbCxuKTp2b2lkIDB9fSk7cmV0dXJuIG51bGw9PT0obj10KXx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBufHwwPT09T2JqZWN0LmtleXMobikubGVuZ3RoP3t9OihqLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UgaW4gdCYmKHRbZV09KDAsTi5nKSh0W2VdKSl9KSksdCk7dmFyIG59ZnVuY3Rpb24gSCgpe2NvbnN0IGU9QShmLkVYUElSWV9QQVJUTkVSKSxbdCxuLHJdPWUuc3BsaXQoXCIuXCIpO3JldHVybntleHBpcnlQYXJ0bmVyOnQscG9ydGZvbGlvVHlwZTpuLHBvcnRmb2xpb0lkOnJ9fXZhciBGPW4oOTYzMSk7bGV0IE09XCJub3Rfc2V0XCI7dmFyIEc9big4NjY1KTtjb25zdCBVPSgpPT5uZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwiZm9yY2VDTUNvdW50cnlcIiksej1bXCJCRVwiLFwiRUxcIixcIkxUXCIsXCJQVFwiLFwiQkdcIixcIkVTXCIsXCJMVVwiLFwiUk9cIixcIkNaXCIsXCJGUlwiLFwiSFVcIixcIlNJXCIsXCJES1wiLFwiSFJcIixcIk1UXCIsXCJTS1wiLFwiREVcIixcIklUXCIsXCJOTFwiLFwiRklcIixcIkVFXCIsXCJDWVwiLFwiQVRcIixcIlNFXCIsXCJJRVwiLFwiTFZcIixcIlBMXCIsXCJJU1wiLFwiTk9cIixcIkxJXCIsXCJDSFwiLFwiR0JcIl0sVj0oKT0+e2lmKFUoKSlyZXR1cm4hMDtjb25zdCBlPUEoXCJjb3VudHJ5XCIpO3JldHVybiB6LmluY2x1ZGVzKGUpfTtmdW5jdGlvbiBXKGUsdCl7dmFyIG47Y29uc3Qgbz1mdW5jdGlvbigpe2xldCBlLHQ7dHJ5e2U9cGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcIm5hdmlnYXRpb25cIik7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdD1lW25dfWNhdGNoKG4pe3IuWi53YXJuKG4pfXJldHVybiBuZXcgTyh0KX0oKSxpPXQuZG9tYWlufHx7fSxhPXQuYWRTZW5zZXx8e30scz10LmxhbmRlcnx8e30sbD10LmV4cGVyaW1lbnR8fHt9LGM9SCgpLGQ9cy5iYW5uZXJ8fHt9LHA9ZC5zaG93P2QudHlwZTpudWxsLGg9byYmby5kb21Db21wbGV0ZT9vLmRvbUNvbXBsZXRlKCk6MCxtPW8mJm8ubG9hZEV2ZW50RW5kP28ubG9hZEV2ZW50RW5kKCk6MDtyZXR1cm57ZXZlbnRUeXBlOmUsZXJyb3JDb2RlOm51bGwsbGFuZGVyUGFyYW1BcGlTdGF0dXM6bnVsbCx4UmVxdWVzdElkOm51bGwsY3JlYXRlZEF0OihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSxkb21haW46aS5yb290RG9tYWluLGRvbWFpblN0YXR1czooaS5zdGF0dXN8fHt9KS5pbnRlcm5hbCxzeXN0ZW06dC5zeXN0ZW0sZGF0YVNvdXJjZTp0LmRhdGFTb3VyY2UsaXNUdXJuS2V5UmVzZWxsZXI6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB0LnR1cm5LZXlSZXNlbGxlcixyZXNlbGxlclBsaWQ6KHQudHVybktleVJlc2VsbGVyfHx7fSkucHJpdmF0ZUxhYmVsSWQsaXNDbmFtZTpcIkNOQU1FXCI9PT10LmRhdGFTb3VyY2Uscm90YXRvcklkOnQucm90YXRvcklkLGFjY291bnQ6dC5hY2NvdW50LGN1c3RvbWVySWQ6bnVsbCE9PShuPXQuY3VzdG9tZXJJZCkmJnZvaWQgMCE9PW4/bjpcIlwiLGV4cGlyeVBhcnRuZXI6Yy5leHBpcnlQYXJ0bmVyLHBvcnRmb2xpb1R5cGU6Yy5wb3J0Zm9saW9UeXBlLHBvcnRmb2xpb0lkOnQucG9ydGZvbGlvSWQsZHJpZDphLmRyaWQscHViSWQ6YS5wdWJJZCxjaGFubmVsOmEuY2hhbm5lbCxmZWVkUHJvdmlkZXI6dC5hZFNlbnNlP3UuR09PR0xFX0FEX1NFTlNFOm51bGwsdGVtcGxhdGU6cy50ZW1wbGF0ZSx0cmFmZmljVGFyZ2V0OkEoZi5UUkFGRklDX1RBUkdFVCksc1Rva2VuOm51bGwsa2V5d29yZDpudWxsLGtleXdvcmRPcmlnaW46bnVsbCxmZWVkU3RhdHVzRXJyb3JDb2RlOm51bGwsdmVyaXpvbkFwaU1lc3NhZ2U6bnVsbCxpc0FkdWx0Om51bGwsYmFubmVyVHlwZTpwLGV4cGVyaW1lbnRJZDpsLmtleSxleHBlcmltZW50QnVja2V0OmwuYnVja2V0LHRkZnNFeHA6bC50ZGZzRXhwLGdjcElwOkEoZi5HQ1BfTEJfSVApLGlwOkEoZi5DTElFTlRfSVApLGNvdW50cnk6QShmLkNPVU5UUlkpLGNpdHk6QShmLkNJVFkpLnJlcGxhY2UoL1tcIl0rL2csXCJcIiksdmlzaXRvcklkOkQoKSxwcm90b2NvbDpDKCksdXNlckFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsaHR0cFJlZmVyZXI6ZG9jdW1lbnQucmVmZXJyZXI/ZG9jdW1lbnQucmVmZXJyZXI6bnVsbCxkb21Mb2FkVGltZTpoLHBhZ2VMb2FkVGltZTptLGlzTW9iaWxlOncoKSxhZGJsb2NrZXI6TSxpc0NvbnNlbnRSZXF1aXJlZDpWKCl9fWFzeW5jIGZ1bmN0aW9uIHEoZSx0KXthd2FpdCgwLEYuVSkoZSx0KX1mdW5jdGlvbiBLKGUsdCl7dmFyIG4scixpO2NvbnN0IGE9Vyh0LGUpO2EuYmFubmVyTGluaz1udWxsIT09KG49bnVsbD09PShyPWUubGFuZGVyKXx8dm9pZCAwPT09cnx8bnVsbD09PShpPXIuYmFubmVyKXx8dm9pZCAwPT09aT92b2lkIDA6aS5saW5rKSYmdm9pZCAwIT09bj9uOlwibm8tbGlua1wiLHEoby5TZXR0aW5ncy5FVkVOVF9QVUJMSVNIX0FQSSxhKX1mdW5jdGlvbiBaKGUsdCl7cmV0dXJue2RvbWFpbjplLmRvbWFpbix0aW1lOmUuY3JlYXRlZEF0LHR5cGU6ZS5ldmVudFR5cGUsa2V5d29yZDplLmtleXdvcmR8fG51bGwsdXVpZDp0W2QuVVVJRF18fG51bGwsc190b2tlbjp0W2QuU19UT0tFTl18fG51bGx9fWZ1bmN0aW9uIFkoZSx0LG4pe2xldCByPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3I9cnx8ZnVuY3Rpb24oZSl7bGV0IHQ9Yy5WSVNJVDtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUpcmV0dXJuIHQ7ITA9PT1lLnVzZXJfc2VhcmNoP3Q9Yy5LRVlXT1JEX1NFQVJDSDpcInVuZGVmaW5lZFwiIT09dHlwZW9mIGUucXVlcnkmJih0PWMuS0VZV09SRF9DTElDSyk7cmV0dXJuIHR9KG4pO2NvbnN0IG89VyhyLGUpO3JldHVybiBBcnJheS5pc0FycmF5KHRbZC5TX1RPS0VOXSk/by5zVG9rZW49dFtkLlNfVE9LRU5dWzBdOm8uc1Rva2VuPXRbZC5TX1RPS0VOXSxvLmlzQWR1bHQ9bj9uLmFkdWx0Om51bGwsby5rZXl3b3JkPWZ1bmN0aW9uKGUsdCl7aWYoZSYmXCJ1bmRlZmluZWRcIiE9PWUucXVlcnkpcmV0dXJuIGUucXVlcnk7Y29uc3Qgbj10W25lLnF1ZXJ5UGFyYW0uUVVFUlldO2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIG4uc2xpY2UoLTEpWzBdO3JldHVybiBufShuLHQpLG8ua2V5d29yZE9yaWdpbj1mdW5jdGlvbihlLHQpe2lmKHRbZC5URVJNXSlyZXR1cm4gdGUuUVVFUllfUEFSQU1TO2lmKGUuYWRTZW5zZS5rZXl3b3JkcylyZXR1cm4gdGUuRE9NQUlOX0NPTkZJRztyZXR1cm4gdGUuRkVFRF9QUk9WSURFUn0oZSx0KSxvLmZlZWRTdGF0dXNFcnJvckNvZGU9bj9uLmVycm9yX2NvZGU6bnVsbCxvfWZ1bmN0aW9uICQoZSx0KXtjb25zdCBuPVtdLHI9WShlLHQsWC5jYWZTdGF0dXM/WC5jYWZTdGF0dXM6bnVsbCxjLkFEX0NMSUNLKSxpPSgwLEYuQSkociksYT1vLlNldHRpbmdzLkVWRU5UX1BVQkxJU0hfQVBJK1wiP2pzb249XCIrZW5jb2RlVVJJQ29tcG9uZW50KGkpO3JldHVybiBuLnB1c2goYSksZS5sYW5kZXIuZXZlbnRDYWxsYmFja1VybCYmbi5wdXNoKGZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPVoobix0KTtyZXR1cm4gZS5sYW5kZXIuZXZlbnRDYWxsYmFja1VybCtcIj9cIitiKHIpfShlLHQscikpLG59Y29uc3QgWD17fTtmdW5jdGlvbiBRKGUpe3JldHVybiBmdW5jdGlvbih0LG4pe3IuWi5pbmZvKFwiY2FmIHJldHVybmVkOiByZXF1ZXN0QWNjZXB0ZWQ9XCIrdCtcIiwgc3RhdHVzPVwiKygwLHIuQikobikpLFguY2FmU3RhdHVzPW4sZSh0KTt0cnl7IWZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IGk9WShlLHQsbik7aWYocnx8KGkuZXZlbnRUeXBlPWMuRVJST1IsaS5lcnJvckNvZGU9cC5FUlJPUl9BRFNFTlNFX0NBRikscShvLlNldHRpbmdzLkVWRU5UX1BVQkxJU0hfQVBJLGkpLGUubGFuZGVyLmV2ZW50Q2FsbGJhY2tVcmwpe2NvbnN0IG49WihpLHQpO3EoZS5sYW5kZXIuZXZlbnRDYWxsYmFja1VybCxuKX19KFgubGFuZGVyQ29uZmlnLFgucXVlcnlDb25maWcsbix0KX1jYXRjaChpKXtyLlouZXJyb3IoXCJ1bmV4cGVjdGVkIGVycm9yIGluIGdvb2dsZSBhZHMgcmVxdWVzdD1cIiwraSl9fX1mdW5jdGlvbiBKKGUsdCl7aWYodClyLlouZGVidWcoXCJcIi5jb25jYXQoZSxcIiBhcmUgbG9hZGVkXCIpKTtlbHNle3IuWi5lcnJvcihcIk5vIFwiLmNvbmNhdChlLFwiIGNvdmVyYWdlIGZyb20gR29vZ2xlXCIpKTtjb25zdCB0PVcoYy5FUlJPUixYLmxhbmRlckNvbmZpZyk7dC5lcnJvckNvZGU9XCJhZHNcIj09PWU/cC5FUlJPUl9BRFNFTlNFX05PX0FEUzpwLkVSUk9SX0FEU0VOU0VfTk9fUlMscShvLlNldHRpbmdzLkVWRU5UX1BVQkxJU0hfQVBJLHQpfX1jb25zdCBlZT17ZGVmYXVsdE9wdGlvbjp7TlVNX1JFTEFURURfTElOS1M6MyxOVU1fU1BPTlNPUkVEX0xJU1RJTkdTOjMsU0VBUkNIQk9YX0RJVl9JRDpcInNlYXJjaGJveFwiLFJFTEFURURfTElOS1NfRElWX0lEOlwicmVsYXRlZExpbmtzXCIsU1BPTlNPUkVEX0xJU1RJTkdTX0RJVl9JRDpcImFkc1wifSxyZXN0cmljdGlvbjp7TUlOX1JFTEFURURfTElOS1M6MyxNQVhfUkVMQVRFRF9MSU5LUzoxMH0sbGF5b3V0OntTSU1QTEU6XCJTSU1QTEVcIn0sdGVtcGxhdGU6e1NJTVBMRV8yQzpcIlNJTVBMRV8yQ1wiLFNJTVBMRV8yQ19MSUdIVDpcIlNJTVBMRV8yQ19MSUdIVFwiLFNJTVBMRV8yQ19FWFBFUklNRU5UOlwiU0lNUExFXzJDX0VYUEVSSU1FTlRcIixMSUdIVF9CTFVFOlwiTElHSFRfQkxVRVwiLFZFUlRJQ0FMX0xJTkVTOlwiVkVSVElDQUxfTElORVNcIixBUlJPV18xOlwiQVJST1dfMVwiLEFSUk9XXzI6XCJBUlJPV18yXCIsQVJST1dfMzpcIkFSUk9XXzNcIixBUlJPV19MSVNUOltcIkFSUk9XXzFcIixcIkFSUk9XXzNcIixcIkFSUk9XXzJcIl0sUEFSS19XRUI6XCJQQVJLX1dFQlwiLERFRkFVTFQ6XCJTSU1QTEVfMkNcIixQQVJLX1dFQl9IRUc6XCJQQVJLX1dFQl9IRUdcIn0scGFnZTp7UkVMQVRFRF9MSU5LUzpcIlJFTEFURURfTElOS1NcIixTUE9OU09SRURfTElTVElOR1M6XCJTUE9OU09SRURfTElTVElOR1NcIn0sZHJpZFN0YXR1czp7QVBQUk9WRUQ6XCJBUFBST1ZFRFwiLE5PVF9BVkFJTEFCTEU6XCJOT1RfQVZBSUxBQkxFXCIsUEVORElOR19SRVZJRVdfUFJPVklERVI6XCJQRU5ESU5HX1JFVklFV19QUk9WSURFUlwiLEFXQUlUSU5HX1VTRVJfVkVSSUZJQ0FUSU9OOlwiQVdBSVRJTkdfVVNFUl9WRVJJRklDQVRJT05cIixBV0FJVElOR19JTlRFUk5BTF9SRVZJRVc6XCJBV0FJVElOR19JTlRFUk5BTF9SRVZJRVdcIixERU5JRURfUFJPVklERVI6XCJERU5JRURfUFJPVklERVJcIixERU5JRURfSU5URVJOQUw6XCJERU5JRURfSU5URVJOQUxcIn0sYWRzZW5zZVN0YXR1czp7QVBQUk9WRUQ6XCJBUFBST1ZFRFwiLEZBSUxMSVNURUQ6XCJGQUlMTElTVEVEXCIsQURVTFQ6XCJBRFVMVFwiLE5FRURTX1JFVklFVzpcIk5FRURTX1JFVklFV1wifX0sdGU9e1FVRVJZX1BBUkFNUzpcIlFVRVJZX1BBUkFNU1wiLERPTUFJTl9DT05GSUc6XCJET01BSU5fQ09ORklHXCIsRkVFRF9QUk9WSURFUjpcIkZFRURfUFJPVklERVJcIn0sbmU9e3F1ZXJ5UGFyYW06e0FGRF9UT0tFTjpcImFmZHRva2VuXCIsUENTQTpcInBjc2FcIixRVUVSWTpcInF1ZXJ5XCIsU0VBUkNIOlwic2VhcmNoXCJ9LGJsb2NrVHlwZTp7U0VBUkNIX0JPWDpcInNlYXJjaGJveFwiLEFEUzpcImFkc1wiLFRFWFRfQURTOlwidGV4dGFkc1wiLFJFTEFURURfU0VBUkNIOlwicmVsYXRlZHNlYXJjaFwifSxhZHNhZmU6e0FEVUxUX09OTFk6XCJhZHVsdG9ubHlcIixNRURJVU06XCJtZWRpdW1cIixISUdIOlwiaGlnaFwiLExPVzpcImxvd1wifSxzdHlsZUlkOntERUZBVUxUOlwiNzYyMTE3NTQzMFwiLExJR0hUX0JMVUU6XCIxMjkzNTQ0OTI0XCIsU0lNUExFXzJDX0xJR0hUOlwiMTI5MzU0NDkyNFwiLFZFUlRJQ0FMX0xJTkVTOlwiMTI5MzU0NDkyNFwiLFBBUktfV0VCOlwiNzk0OTE4MzY1MFwiLFBBUktfV0VCX0hFRzpcIjc5NDkxODM2NTBcIixBUlJPVzpcIjc2MjExNzU0MzBcIn19O2Z1bmN0aW9uIHJlKGUsdCl7bGV0IG49bmUuYWRzYWZlLkxPVztlLmRvbWFpbi5pc0FkdWx0JiYobj1uZS5hZHNhZmUuQURVTFRfT05MWSk7bGV0IGk9ZS5hZFNlbnNlLnB1YklkO3JldHVybiBlLnN5c3RlbT09PWguQ0FTSFBBUktJTkcmJihyLlouZGVidWcoXCJVcGRhdGluZyBwdWJJZCBmb3IgQ2FzaFBhcmtpbmcgc3lzdGVtXCIpLGk9aS5yZXBsYWNlKFwiY2EtXCIsXCJcIikucmVwbGFjZShcImFkdWx0X1wiLFwiXCIpKSx7YWR0ZXN0Om8uU2V0dGluZ3MuR09PR0xFX0FEU0VOU0VfQURURVNULGFkc2FmZTpuLHBlcnNvbmFsaXplZEFkczohMSxwdWJJZDppLGRvbWFpblJlZ2lzdHJhbnQ6ZS5hZFNlbnNlLmRyaWQsY2hhbm5lbDplLmFkU2Vuc2UuY2hhbm5lbCxkb21haW5OYW1lOmUuZG9tYWluLnJvb3REb21haW4scmVzdWx0c1BhZ2VCYXNlVXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLHBhZ2VMb2FkZWRDYWxsYmFjazpRKHQpLHN0eWxlSWQ6bmUuc3R5bGVJZC5ERUZBVUxUfX1mdW5jdGlvbiBvZShlLHQpe2xldCBuLG8saT0wLGE9ITE7Y29uc3Qgcz1lLmxhbmRlci5zZWFyY2hDb3VudD9lLmxhbmRlci5zZWFyY2hDb3VudDplZS5kZWZhdWx0T3B0aW9uLk5VTV9SRUxBVEVEX0xJTktTO3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgdFtkLlRFUk1dPyhvPVQodFtkLlRFUk1dLFwiLFwiKSxpPXgodFtkLlRFUk1dKSk6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBlLmFkU2Vuc2Uua2V5d29yZHM/KG89VChlLmFkU2Vuc2Uua2V5d29yZHMsXCIsXCIpLGk9eChlLmFkU2Vuc2Uua2V5d29yZHMpKTphPSEwLGk+ZWUucmVzdHJpY3Rpb24uTUFYX1JFTEFURURfTElOS1M/KHIuWi53YXJuKFwibnVtIG9mIHRlcm1zIHdhcyA+IFwiK2VlLnJlc3RyaWN0aW9uLk1BWF9SRUxBVEVEX0xJTktTKSxpPWVlLnJlc3RyaWN0aW9uLk1BWF9SRUxBVEVEX0xJTktTKTppPGVlLnJlc3RyaWN0aW9uLk1JTl9SRUxBVEVEX0xJTktTJiYoci5aLndhcm4oXCJudW0gb2YgdGVybXMgd2FzIDwgXCIrZWUucmVzdHJpY3Rpb24uTUlOX1JFTEFURURfTElOS1MpLGk9ZWUucmVzdHJpY3Rpb24uTUlOX1JFTEFURURfTElOS1MpLG49ITE9PT10W2QuQkFDS19GSUxMXT9pOk1hdGgubWF4KGkscyksci5aLnRyYWNlKFwicmVsYXRlZCBsaW5rOiBudW1iZXI9XCIrbitcIiBvcHRpbWl6ZVRlcm1zPVwiK2EpLHt0eXBlOm5lLmJsb2NrVHlwZS5SRUxBVEVEX1NFQVJDSCxsaW5rVGFyZ2V0OlwiX3RvcFwiLGNvbHVtbnM6MSxudW1iZXI6bix0ZXJtczpvLG9wdGltaXplVGVybXM6YSxjb250YWluZXI6ZWUuZGVmYXVsdE9wdGlvbi5SRUxBVEVEX0xJTktTX0RJVl9JRCxhZExvYWRlZENhbGxiYWNrOkp9fWZ1bmN0aW9uIGllKGUsdCl7cmV0dXJue3R5cGU6bmUuYmxvY2tUeXBlLkFEUyxjb250YWluZXI6ZWUuZGVmYXVsdE9wdGlvbi5TUE9OU09SRURfTElTVElOR1NfRElWX0lELG51bWJlcjplZS5kZWZhdWx0T3B0aW9uLk5VTV9TUE9OU09SRURfTElTVElOR1MsbGluZXM6MixhZExvYWRlZENhbGxiYWNrOkosY2xpY2t0cmFja1VybDokKGUsdCl9fWZ1bmN0aW9uIGFlKGUsdCl7bGV0IG49e307cmV0dXJuITE9PT10W2QuU0VBUkNIX0JVVFRPTl0mJihyLlouZGVidWcoXCJBZGRpbmcgJ25vIGJ1dHRvbicgc2V0dGluZ3NcIiksbj17Y29sb3JTZWFyY2hCdXR0b246XCJ0cmFuc3BhcmVudFwiLGNvbG9yU2VhcmNoQnV0dG9uQm9yZGVyOlwidHJhbnNwYXJlbnRcIixjb2xvclNlYXJjaEJ1dHRvblRleHQ6XCJ0cmFuc3BhcmVudFwifSkse3R5cGU6bmUuYmxvY2tUeXBlLlNFQVJDSF9CT1gsY29udGFpbmVyOmVlLmRlZmF1bHRPcHRpb24uU0VBUkNIQk9YX0RJVl9JRCxjb2xvckJhY2tncm91bmQ6XCJ0cmFuc3BhcmVudFwiLGhpZGVTZWFyY2hJbnB1dEJvcmRlcjohMCxoaWRlU2VhcmNoQnV0dG9uQm9yZGVyOiExLC4uLm59fWZ1bmN0aW9uIHNlKGUsdCl7Y29uc3Qgbj10W2QuVEVNUExBVEVdfHxlLmxhbmRlci50ZW1wbGF0ZTtyZXR1cm4gZWUudGVtcGxhdGVbbl0/ZWUudGVtcGxhdGVbbl06KHIuWi5lcnJvcihcInRlbXBsYXRlIFwiK24rXCIgbm90IGZvdW5kLCB1c2luZyBkZWZhdWx0IFwiK2VlLnRlbXBsYXRlLkRFRkFVTFQpLGVlLnRlbXBsYXRlLkRFRkFVTFQpfWNvbnN0IGxlPVtlZS50ZW1wbGF0ZS5TSU1QTEVfMkMsZWUudGVtcGxhdGUuU0lNUExFXzJDX0xJR0hULGVlLnRlbXBsYXRlLlNJTVBMRV8yQ19FWFBFUklNRU5ULGVlLnRlbXBsYXRlLkxJR0hUX0JMVUUsZWUudGVtcGxhdGUuVkVSVElDQUxfTElORVMsZWUudGVtcGxhdGUuQVJST1dfMSxlZS50ZW1wbGF0ZS5BUlJPV18yLGVlLnRlbXBsYXRlLkFSUk9XXzMsZWUudGVtcGxhdGUuUEFSS19XRUIsZWUudGVtcGxhdGUuUEFSS19XRUJfSEVHXTt2YXIgY2U9big2ODU0KSx1ZT1uLm4oY2UpLGRlPW4oNDM0OSk7Y29uc3QgcGU9e2RhOlwiZGEtREtcIixcImRhLURLXCI6XCJkYS1ES1wiLGRlOlwiZGUtREVcIixcImRlLURFXCI6XCJkZS1ERVwiLGVsOlwiZWwtR1JcIixcImVsLUdSXCI6XCJlbC1HUlwiLFwiZXMtRVNcIjpcImVzLUVTXCIsXCJlcy1NWFwiOlwiZXMtTVhcIixlbjpcImVuLVVTXCIsXCJlbi1VU1wiOlwiZW4tVVNcIixmaTpcImZpLUZJXCIsXCJmaS1GSVwiOlwiZmktRklcIixmcjpcImZyLUZSXCIsXCJmci1DQVwiOlwiZnItQ0FcIixcImZyLUZSXCI6XCJmci1GUlwiLGhpOlwiaGktSU5cIixcImhpLUlOXCI6XCJoaS1JTlwiLGlkOlwiaWQtSURcIixcImlkLUlEXCI6XCJpZC1JRFwiLGl0OlwiaXQtSVRcIixcIml0LUlUXCI6XCJpdC1JVFwiLGphOlwiamEtSlBcIixcImphLUpQXCI6XCJqYS1KUFwiLGtvOlwia28tS1JcIixcImtvLUtSXCI6XCJrby1LUlwiLG5iOlwibmItTk9cIixcIm5iLU5PXCI6XCJuYi1OT1wiLG5sOlwibmwtTkxcIixcIm5sLU5MXCI6XCJubC1OTFwiLHBsOlwicGwtUExcIixcInBsLVBMXCI6XCJwbC1QTFwiLFwicHQtQlJcIjpcInB0LUJSXCIsXCJwdC1QVFwiOlwicHQtUFRcIixcInFhLVBTXCI6XCJxYS1QU1wiLHJ1OlwicnUtUlVcIixcInJ1LVJVXCI6XCJydS1SVVwiLHN2Olwic3YtU0VcIixcInN2LVNFXCI6XCJzdi1TRVwiLHRoOlwidGgtVEhcIix0cjpcInRyLVRSXCIsXCJ0aC1USFwiOlwidGgtVEhcIixcInRyLVRSXCI6XCJ0ci1UUlwiLHVrOlwidWstVUFcIixcInVrLVVBXCI6XCJ1ay1VQVwiLHZpOlwidmktVk5cIixcInZpLVZOXCI6XCJ2aS1WTlwiLFwiemgtQ05cIjpcInpoLUNOXCIsXCJ6aC1UV1wiOlwiemgtVFdcIn07ZnVuY3Rpb24gZmUoKXtyZXR1cm4obmF2aWdhdG9yLmxhbmd1YWdlcz9uYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdOm5hdmlnYXRvci5sYW5ndWFnZXx8bmF2aWdhdG9yLnVzZXJMYW5ndWFnZSl8fFwiZW4tVVNcIn1mdW5jdGlvbiBoZShlKXtsZXQgdDtyZXR1cm4gdD1wZVtlXT9uKDUxODkpKFwiLi9cIi5jb25jYXQocGVbZV0sXCIuanNvblwiKSk6big1NDU4KSx0fXZhciBtZT1uKDQyMTQpO2NvbnN0IGdlPXtQQVJLX1dFQl9BVUNUSU9OU19URVhUOntlbl9VUzpcImlzIGF2YWlsYWJsZSBvbiBHb0RhZGR5IEF1Y3Rpb25zLlwifSxQQVJLX1dFQl9FWFBJUkVEX0FVQ1RJT05TX1RFWFQ6e2VuX1VTOlwiaGFzIGV4cGlyZWQgYW5kIGlzIGF2YWlsYWJsZSBvbiBHb0RhZGR5IEF1Y3Rpb25zLlwifSxQQVJLX1dFQl9EQlNfVEVYVDp7ZW5fVVM6XCJpcyBwYXJrZWQgZnJlZSwgY291cnRlc3kgb2YgR29EYWRkeS5cIn0sUEFSS19XRUJfRVhQSVJFRF9EQlNfVEVYVDp7ZW5fVVM6XCJoYXMgZXhwaXJlZCBhbmQgaXMgcGFya2VkIGZyZWUsIGNvdXJ0ZXN5IG9mIEdvRGFkZHkuXCJ9LFNJTVBMRV9MQVlPVVRfQVVDVElPTlNfVEVYVDp7ZW5fVVM6XCIke2RvbWFpbn0gaXMgZm9yIHNhbGUgb24gR29EYWRkeSBBdWN0aW9ucy4gQ2xpY2sgaGVyZSBmb3IgbW9yZSBkZXRhaWxzLlwifSxTSU1QTEVfTEFZT1VUX0VYUElSRURfQVVDVElPTlNfVEVYVDp7ZW5fVVM6XCIke2RvbWFpbn0gaGFzIGV4cGlyZWQgYW5kIGlzIGZvciBzYWxlIG9uIEdvRGFkZHkgQXVjdGlvbnMuIENsaWNrIGhlcmUgZm9yIG1vcmUgZGV0YWlscy5cIn0sU0lNUExFX0xBWU9VVF9EQlNfVEVYVDp7ZW5fVVM6XCJJbnRlcmVzdGVkIGluICR7ZG9tYWlufT8gT3VyIERvbWFpbiBCcm9rZXIgU2VydmljZSBtYXkgYmUgYWJsZSB0byBnZXQgaXQgZm9yIHlvdS4gRmluZCBvdXQgaG93LlwifSxTSU1QTEVfTEFZT1VUX0VYUElSRURfREJTX1RFWFQ6e2VuX1VTOlwiJHtkb21haW59IGhhcyBleHBpcmVkLiBPdXIgRG9tYWluIEJyb2tlciBTZXJ2aWNlIG1heSBiZSBhYmxlIHRvIGdldCBpdCBmb3IgeW91LiBGaW5kIG91dCBob3cuXCJ9LFNJTVBMRV9MQVlPVVRfQkFDS09SREVSX1RFWFQ6e2VuX1VTOlwiSW50ZXJlc3RlZCBpbiAke2RvbWFpbn0/IEZpbmQgb3V0IGhvdyB0byBnZXQgaXQgdGhyb3VnaCBEb21haW4gQmFja29yZGVyLlwifSxTSU1QTEVfTEFZT1VUX0VYUElSRURfQkFDS09SREVSX1RFWFQ6e2VuX1VTOlwiJHtkb21haW59IGhhcyBleHBpcmVkLiBGaW5kIG91dCBob3cgdG8gZ2V0IGl0IHRocm91Z2ggRG9tYWluIEJhY2tvcmRlci5cIn19O2Z1bmN0aW9uIHllKGUsdCxuKXtjb25zdCByPWZlKCksbz1oZShufHxyKSxpPSgwLG1lLmQpKHtsb2NhbGU6cixtZXNzYWdlczpvfSk7dmFyIGE9e307aWYoZT09PWVlLnRlbXBsYXRlLlBBUktfV0VCX0hFR3x8ZT09PWVlLnRlbXBsYXRlLlBBUktfV0VCfHx0PT09aC5DQVNIUEFSS0lOR3x8dD09PWguU01BUlROQU1FKXtmb3IodmFyIHMgb2YgT2JqZWN0LmtleXMobykpYVtzXT1pLmZvcm1hdE1lc3NhZ2Uoe2lkOlwiXCIuY29uY2F0KHMpLGRlZmF1bHRNZXNzYWdlOm9bc119KTtyZXR1cm4gYX1yZXR1cm57YXVjdGlvblRleHQ6Z2UuU0lNUExFX0xBWU9VVF9BVUNUSU9OU19URVhULmVuX1VTLGV4cGlyZWRBdWN0aW9uVGV4dDpnZS5TSU1QTEVfTEFZT1VUX0VYUElSRURfQVVDVElPTlNfVEVYVC5lbl9VUyxkYnNUZXh0OmdlLlNJTVBMRV9MQVlPVVRfREJTX1RFWFQuZW5fVVMsZXhwaXJlZERic1RleHQ6Z2UuU0lNUExFX0xBWU9VVF9FWFBJUkVEX0RCU19URVhULmVuX1VTLGJhY2tvcmRlclRleHQ6Z2UuU0lNUExFX0xBWU9VVF9CQUNLT1JERVJfVEVYVC5lbl9VUyxleHBpcmVkQmFja29yZGVyVGV4dDpnZS5TSU1QTEVfTEFZT1VUX0VYUElSRURfQkFDS09SREVSX1RFWFQuZW5fVVN9fWNvbnN0IHZlPXtiYW5uZXI6XCJCYW5uZXJfYmFubmVyX19HMWNhM1wifTt2YXIgYmU9bigxODQpO2NvbnN0IFRlPXtBVUNUSU9OOlwiQVVDVElPTlwiLEJBQ0tPUkRFUjpcIkJBQ0tPUkRFUlwiLERCUzpcIkRCU1wiLEZPUl9TQUxFOlwiRk9SX1NBTEVcIixVU0VSX0RFRklORUQ6XCJVU0VSX0RFRklORURcIn0seGU9e1NOOntsaW5rOm8uU2V0dGluZ3MuR09EQUREWV9IT1NUK1wiL2RvbWFpbi1wYXJraW5nL2ZvcnNhbGUvJHtkb21haW59XCIsdGV4dDpcIiR7ZG9tYWlufSBtYXkgYmUgZm9yIHNhbGUhXCJ9LENQOntsaW5rOlwiaHR0cHM6Ly9tY2MuZ29kYWRkeS5jb20vRG9tYWluSW50ZXJlc3QvRG9tYWluSW50ZXJlc3QuYXNweD9kb21haW49JHtlbmNyeXB0ZWREb21haW59XCIsdGV4dDpcIkludGVyZXN0ZWQgaW4gdGhpcyBkb21haW4/XCIsQVVDVElPTjp7bGluazpcImh0dHBzOi8vYXVjdGlvbnMuZ29kYWRkeS5jb20vdHJwSXRlbUxpc3RpbmcuYXNweD9jaT02NzExJmRvbWFpbj0ke2RvbWFpbn1cIix0ZXh0OlwiVGhpcyBkb21haW4gaXMgYXZhaWxhYmxlIG9uIEdvRGFkZHkgQXVjdGlvbnNcIn19fTtmdW5jdGlvbiB3ZShlKXtyZXR1cm4hISgoZS5sYW5kZXJ8fHt9KS5iYW5uZXJ8fHt9KS5zaG93fWZ1bmN0aW9uIGtlKGUpe3JldHVybiEhZS5kb21haW4uaGFzQXVjdGlvbn1mdW5jdGlvbiBFZShlLHQpe2NvbnN0IG49KChlLmxhbmRlcnx8e30pLmJhbm5lcnx8e30pLnR5cGUscj0oZS5kb21haW58fHt9KS5leHBpcmVkO3N3aXRjaChuKXtjYXNlIFRlLkRCUzpyZXR1cm4gcj90LmV4cGlyZWREYnNUZXh0OnQuZGJzVGV4dDtjYXNlIFRlLkFVQ1RJT046cmV0dXJuIHI/dC5leHBpcmVkQXVjdGlvblRleHQ6dC5hdWN0aW9uVGV4dDtjYXNlIFRlLkJBQ0tPUkRFUjpyZXR1cm4gcj90LmV4cGlyZWRCYWNrb3JkZXJUZXh0OnQuYmFja29yZGVyVGV4dDtkZWZhdWx0OnJldHVyblwiXCJ9fWZ1bmN0aW9uIFNlKGUpe2lmKHQ9ZS5sYW5kZXJDb25maWcsIShcImJvb2xlYW5cIj09PXR5cGVvZihuPWUucXVlcnlDb25maWcpW2QuVERGU10/bltkLlRERlNdOndlKHQpfHxrZSh0KSkpcmV0dXJuIHIuWi5kZWJ1ZyhcInRkZnMgYmFubmVyIGlzIGRpc2FibGVkXCIpLCgwLGJlLmpzeCkoXCJkaXZcIix7fSk7dmFyIHQsbjtjb25zdCBvPWZ1bmN0aW9uKGUsdCl7dmFyIG49eWUoZS5sYW5kZXIudGVtcGxhdGUsZS5zeXN0ZW0sbS5FTl9VUyk7Y29uc3Qgbz17bGluazpudWxsLHRleHQ6bnVsbCx0eXBlOm51bGx9O2lmKGZ1bmN0aW9uKGUpe2NvbnN0e2xpbms6dCx0ZXh0Om4sdHlwZTpyfT17Li4uKGUubGFuZGVyfHx7fSkuYmFubmVyfTtyZXR1cm4gdCYmbiYmcn0oZSkmJmUuc3lzdGVtIT09aC5QQVJLV0VCKXt2YXIgaT1lLmxhbmRlci5iYW5uZXI7aWYoby5saW5rPWkubGluayxvLnR5cGU9aS50eXBlLGUuc3lzdGVtPT09aC5DQVNIUEFSS0lORyYmIWkudGV4dC5sb2NhbGVDb21wYXJlKG4uY2FzaHBhcmtpbmdUZXh0LHZvaWQgMCx7c2Vuc2l0aXZpdHk6XCJhY2NlbnRcIn0pKXJldHVybiBvLnRleHQ9KDAsYmUuanN4KShkZS5aLHtpZDpcImNhc2hwYXJraW5nVGV4dFwifSksbztpZihlLnN5c3RlbT09PWguU01BUlROQU1FKXtjb25zdCB0PS8oXFwrXFxkezEsMn1cXHMpP1xcZHszfVstXVxcZHszfVstXVxcZHs0fS9nLHI9LyhBZnRlcm5pYykoLmNvbSk/L2c7dmFyIGE9aS50ZXh0Lm1hdGNoKHQpLHM9aS50ZXh0Lm1hdGNoKHIpLGw9XCJcIixjPVwiXCIsdT1cIlwiO251bGwhPWEmJihsPWFbMF0sYz1hWzFdKSxudWxsIT1zJiYodT1zWzBdKTt2YXIgZD1FKG4udGRmc1RleHQse2RvbWFpbjplLmRvbWFpbi5yb290RG9tYWluLGFmdGVybmljU2l0ZU5hbWU6dSxhZnRlcm5pY1Bob25lMTpsLGFmdGVybmljUGhvbmUyOmN9KSxwPUUobi5jb250YWN0TWVUZXh0LHtkb21haW46ZS5kb21haW4ucm9vdERvbWFpbn0pO2lmKCFpLnRleHQubG9jYWxlQ29tcGFyZShkLHZvaWQgMCx7c2Vuc2l0aXZpdHk6XCJhY2NlbnRcIn0pKXJldHVybiBvLnRleHQ9KDAsYmUuanN4KShkZS5aLHtpZDpcInRkZnNUZXh0XCIsdmFsdWVzOntkb21haW46ZS5kb21haW4ucm9vdERvbWFpbixhZnRlcm5pY1NpdGVOYW1lOnUsYWZ0ZXJuaWNQaG9uZTE6bCxhZnRlcm5pY1Bob25lMjpjfX0pLG87aWYoIWkudGV4dC5sb2NhbGVDb21wYXJlKHAsdm9pZCAwLHtzZW5zaXRpdml0eTpcImFjY2VudFwifSkpcmV0dXJuIG8udGV4dD0oMCxiZS5qc3gpKGRlLlose2lkOlwiY29udGFjdE1lVGV4dFwiLHZhbHVlczp7ZG9tYWluOmUuZG9tYWluLnJvb3REb21haW59fSksb31yZXR1cm4gby50ZXh0PWkudGV4dCxvfWlmKGUuc3lzdGVtPT09aC5DQVNIUEFSS0lORyYma2UoZSkpcmV0dXJuIG8udHlwZT1UZS5BVUNUSU9OLG8udGV4dD1uLmF1Y3Rpb25CYW5uZXJUZXh0LG8ubGluaz1rKHhlLkNQLkFVQ1RJT04ubGluayx7ZG9tYWluOmUuZG9tYWluLnJvb3REb21haW59KSxvO3N3aXRjaChyLlouZGVidWcoXCJDcmVhdGluZyBkZWZhdWx0IGJhbm5lciBmb3IgXCIrZS5zeXN0ZW0pLG8udHlwZT1lLmxhbmRlci5iYW5uZXIudHlwZXx8VGUuRk9SX1NBTEUsZS5zeXN0ZW0pe2Nhc2UgaC5DQVNIUEFSS0lORzpuPXllKGUubGFuZGVyLnRlbXBsYXRlLFwiQ1BcIiksby50ZXh0PW4uY2FzaHBhcmtpbmdUZXh0LG8ubGluaz1rKHhlLkNQLmxpbmsse2VuY3J5cHRlZERvbWFpbjplLmRvbWFpbi5lbmNyeXB0ZWREb21haW59KTticmVhaztjYXNlIGguU01BUlROQU1FOm49eWUoZS5sYW5kZXIudGVtcGxhdGUsZS5zeXN0ZW0pLG8udGV4dD1FKG4uY29udGFjdE1lVGV4dCx7ZG9tYWluOmUuZG9tYWluLnJvb3REb21haW59KSxvLmxpbms9ayh4ZS5TTi5saW5rLHtkb21haW46ZS5kb21haW4ucm9vdERvbWFpbn0pO2JyZWFrO2Nhc2UgaC5QQVJLV0VCOm49RWUoZSx0KSxvLnRleHQ9ayhuLHtkb21haW46ZS5kb21haW4ucm9vdERvbWFpbkRpc3BsYXlUZXh0fSksby5saW5rPShlLmxhbmRlci5iYW5uZXJ8fHt9KS5saW5rfXJldHVybiBvfShlLmxhbmRlckNvbmZpZyxlLmNvbnRlbnQpO3JldHVybigwLGJlLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTp2ZS5iYW5uZXIsY2hpbGRyZW46WygwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJ0ZGZzQm9yZGVyXCJ9KSwoMCxiZS5qc3gpKFwiZGl2XCIse2lkOlwidGRmc0Jhbm5lclwiLGNoaWxkcmVuOigwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJ0ZGZzTGlua1wiLGNoaWxkcmVuOigwLGJlLmpzeCkoXCJhXCIse2hyZWY6by5saW5rLG9uQ2xpY2s6KCk9PntBZShvLnR5cGUsZS5sYW5kZXJDb25maWcpfSxjaGlsZHJlbjpvLnRleHR9KX0pfSldfSl9YXN5bmMgZnVuY3Rpb24gQWUoZSx0KXtjb25zdCBuPVcoYy5CQU5ORVJfQ0xJQ0ssdCk7bi5iYW5uZXJUeXBlPWUscShvLlNldHRpbmdzLkVWRU5UX1BVQkxJU0hfQVBJLG4pfWNvbnN0IENlPVwidHJ1c3RBcmNfcGFya2luZ1RydXN0QXJjQmFubmVyX19JandvMFwiLF9lPVwidGVjb25zZW50XCIsRGU9KCk9PigwLGJlLmpzeCkoXCJzcGFuXCIse2lkOl9lfSksUmU9KCk9PigwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJjb25zZW50X2JsYWNrYmFyXCIsY2xhc3NOYW1lOkNlfSk7ZnVuY3Rpb24gT2UoKXtjb25zdCB0PVYoKSxbbixyXT0oMCxlLnVzZVN0YXRlKSh0KTtyZXR1cm4oMCxlLnVzZUVmZmVjdCkoKCgpPT57aWYoIXQpcmV0dXJuO2NvbnN0IGU9c2V0SW50ZXJ2YWwoKCgpPT57dm9pZCAwIT09d2luZG93Ll9fdGNmYXBpJiZ3aW5kb3cuX190Y2ZhcGkoXCJnZXRJbkFwcFRDRGF0YVwiLDIsKCh0LG4pPT57biYmXCJcIiE9PXQudGNTdHJpbmcmJihyKCExKSxjbGVhckludGVydmFsKGUpKX0pKX0pLDFlMyk7cmV0dXJuKCk9PmNsZWFySW50ZXJ2YWwoZSl9KSxbdF0pLHtzaG93Q29uc2VudERpYWxvZzp0JiZufX1jb25zdCBQZT0oZSx0KT0+XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB0W2QuVEVSTV0/QXJyYXkuaXNBcnJheSh0W2QuVEVSTV0pP3RbZC5URVJNXTpbdFtkLlRFUk1dXTpcInVuZGVmaW5lZFwiIT09dHlwZW9mIGUuYWRTZW5zZS5rZXl3b3Jkcz9lLmFkU2Vuc2Uua2V5d29yZHM6W10sTGU9KDAsZS5jcmVhdGVDb250ZXh0KSh7bGFuZGVyQ29uZmlnOnt9LHF1ZXJ5Q29uZmlnOnt9LG1lcmdlZENvbmZpZzp7fSxpc0Fkc2Vuc2VTdWNjZXNzOm51bGwsc2V0SXNBZHNlbnNlU3VjY2VzczooKT0+e319KSxOZT0oKT0+KDAsZS51c2VDb250ZXh0KShMZSksSWU9KGUsdCk9Pnt2YXIgbixyLG8saSxhLHM7Y29uc3QgbD1udWxsIT09KG49bnVsbD09PXR8fHZvaWQgMD09PXR8fG51bGw9PT0ocj10LmxhbmRlcil8fHZvaWQgMD09PXJ8fG51bGw9PT0obz1yLmJhbm5lcil8fHZvaWQgMD09PW8/dm9pZCAwOm8udHlwZSkmJnZvaWQgMCE9PW4/bjpcIlwiLGM9bmV3IFVSTChudWxsIT09KGk9bnVsbD09PXR8fHZvaWQgMD09PXR8fG51bGw9PT0oYT10LmxhbmRlcil8fHZvaWQgMD09PWF8fG51bGw9PT0ocz1hLmJhbm5lcil8fHZvaWQgMD09PXM/dm9pZCAwOnMubGluaykmJnZvaWQgMCE9PWk/aTpcIlwiKSx1PWU/XCJiXCI6XCJhXCIsZD1cInhfZG9tLVwiLmNvbmNhdCgoZT0+ZT09PVRlLkFVQ1RJT04/XCJhdWN0aW9uc1wiOmU9PT1UZS5EQlM/XCJicm9rZXJcIjpcIm90aGVyXCIpKGwpLFwiX3BhcmtlZHBhZ2VzX3hfeF9pbnZlc3RfXCIpLmNvbmNhdCh1LFwiXzAwMVwiKTtyZXR1cm4gYy5zZWFyY2hQYXJhbXMuc2V0KFwidXRtX2NhbXBhaWduXCIsZCksZGVjb2RlVVJJQ29tcG9uZW50KGMuaHJlZil9LGplPXQ9Pnt2YXIgbjtsZXR7bGFuZGVyQ29uZmlnOnIscXVlcnlDb25maWc6byxjaGlsZHJlbjppfT10O2NvbnN0W2Esc109KDAsZS51c2VTdGF0ZSkoITApO2lmKFwicGFya2luZ19wYXJrd2ViX2FiXzAzXCI9PT0obnVsbD09PXJ8fHZvaWQgMD09PXJ8fG51bGw9PT0obj1yLmV4cGVyaW1lbnQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmtleSkmJlYoKSl7dmFyIGw7Y29uc3QgZT1cInB3X3RyZWF0bWVudFwiPT09KG51bGw9PT1yfHx2b2lkIDA9PT1yfHxudWxsPT09KGw9ci5leHBlcmltZW50KXx8dm9pZCAwPT09bD92b2lkIDA6bC5idWNrZXQpO3IubGFuZGVyLmJhbm5lci5saW5rPUllKGUsciksci5hZFNlbnNlLmNoYW5uZWw9KChlLHQpPT5lP3QuYWRTZW5zZS5jaGFubmVsK1wiK3RyZWF0bWVudFwiOnQuYWRTZW5zZS5jaGFubmVsK1wiK2NvbnRyb2xcIikoZSxyKX1jb25zdCBjPXtsYW5kZXJDb25maWc6cixxdWVyeUNvbmZpZzpvLG1lcmdlZENvbmZpZzp7a2V5d29yZHM6UGUocixvKX0saXNBZHNlbnNlU3VjY2VzczphLHNldElzQWRzZW5zZVN1Y2Nlc3M6c307cmV0dXJuKDAsYmUuanN4KShMZS5Qcm92aWRlcix7dmFsdWU6YyxjaGlsZHJlbjppfSl9LEJlPVwic3VjY2Vzc1wiO2Z1bmN0aW9uIEhlKGUsdCxuKXtsZXQgcj1cIlwiO249PT1oLkNBU0hQQVJLSU5HP3I9by5TZXR0aW5ncy5WRVJJWk9OX0ZFRURfUEFSVE5FUi5DUDpuPT09aC5QQVJLV0VCP3I9by5TZXR0aW5ncy5WRVJJWk9OX0ZFRURfUEFSVE5FUi5QVzpuPT09aC5TTUFSVE5BTUUmJihyPW8uU2V0dGluZ3MuVkVSSVpPTl9GRUVEX1BBUlRORVIuU04pLG8uU2V0dGluZ3MuVkVSSVpPTl9GRUVEX1BBUlRORVIuVEVTVCYmKHI9by5TZXR0aW5ncy5WRVJJWk9OX0ZFRURfUEFSVE5FUi5URVNUKTtjb25zdCBpPXt1cmw6ZSxQYXJ0bmVyOnIsbWF4TGlzdGluZ3M6MyxtYXhXZWI6MCxtYXhSVDo2LG1heFJUTDo2LG1heFBDOjYsdXJsTGFuZzpcImVuXCIsYWZmaWxEYXRhOntpcDpBKGYuQ0xJRU5UX0lQKSx4ZmlwOkEoZi5DTElFTlRfSVApLHVhOm5hdmlnYXRvci51c2VyQWdlbnQsdXI6d2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSh3aW5kb3cubG9jYXRpb24uc2VhcmNoLFwiXCIpfSxzZXJ2ZVVybDpcIlwiLmNvbmNhdCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wsXCIvL1wiKS5jb25jYXQoZSl9O3JldHVybiB0JiYoaS5zZWVkVGVybT10LmpvaW4oXCIgXCIpKSxcIj9cIi5jb25jYXQoYihpKSl9ZnVuY3Rpb24gRmUoZSx0LG4pe2NvbnN0IHI9e3Zlcml6b246MSxzZXJ2ZVVybDpcIlwiLmNvbmNhdCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wsXCIvL1wiKS5jb25jYXQodCl9O24mJihyLnE9bik7Y29uc3Qgbz1iKHIpLGk9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gaS5kZWxldGUoXCJxc1wiKSxpLmRlbGV0ZShcInFcIiksaS5kZWxldGUoXCJzZXJ2ZVVSTFwiKSxpLmRlbGV0ZShcInZlcml6b25cIiksd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSh3aW5kb3cubG9jYXRpb24uc2VhcmNoLFwiXCIpK1wiP1wiLmNvbmNhdChpLnRvU3RyaW5nKCksXCImXCIpLmNvbmNhdChvLFwiJlwiKS5jb25jYXQoZSl9YXN5bmMgZnVuY3Rpb24gTWUoZSl7dHJ5e2NvbnN0IHQ9YXdhaXQgZmV0Y2goXCJcIi5jb25jYXQoby5TZXR0aW5ncy5WRVJJWk9OX0ZFRURfUEFUSCkuY29uY2F0KGUpLHttZXRob2Q6XCJHRVRcIixjcmVkZW50aWFsczpcIm9taXRcIn0pO2lmKDIwMCE9PXQuc3RhdHVzKXRocm93IG5ldyBFcnJvcihcImdvdCBcIi5jb25jYXQodC5zdGF0dXMsXCIgZnJvbSB2ZXJpem9uXCIpKTtjb25zdCBuPWF3YWl0IHQudGV4dCgpLHI9KG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhuLFwidGV4dC94bWxcIik7aWYoci5xdWVyeVNlbGVjdG9yKFwicGFyc2VyZXJyb3JcIikpdGhyb3cgbmV3IEVycm9yKFwieG1sIGZhaWxlZCB0byBwYXJzZVwiKTtyZXR1cm4gQXJyYXkuZnJvbShyLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiU3RhdHVzSXRlbVwiKSkuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9cGFyc2VJbnQoZS5nZXRBdHRyaWJ1dGUoXCJjb2RlXCIpLDEwKTtpZih0Pj00MDApdGhyb3cgbmV3IEVycm9yKFwiXCIuY29uY2F0KHQsXCIgcmVzcG9uc2UgZnJvbSB2ZXJpem9uIGZlZWQ6IFwiKS5jb25jYXQoZS50ZXh0Q29udGVudCkpfSkpLHtmZXRjaFN0YXR1czphLHhtbFJlc3VsdDpyLG1lc3NhZ2U6QmV9fWNhdGNoKHQpe3JldHVybiByLlouZXJyb3IodCkse2ZldGNoU3RhdHVzOnMsbWVzc2FnZTp0Lm1lc3NhZ2V9fX1mdW5jdGlvbiBHZShlLHQsbil7Y29uc3Qgcj1XKG51bGwsbik7ci5mZWVkUHJvdmlkZXI9dS5WRVJJWk9OLHIudmVyaXpvbkFwaU1lc3NhZ2U9ZSxlIT09QmU/KHIuZXZlbnRUeXBlPWMuRVJST1Isci5lcnJvckNvZGU9dD9wLkVSUk9SX1ZFUklaT05fTk9fQURTOnAuRVJST1JfVkVSSVpPTl9OT19SUyk6ci5ldmVudFR5cGU9dD9jLlZFUklaT05fQURfQ0xJQ0tFRDpjLlZFUklaT05fVklTSVQscShvLlNldHRpbmdzLkVWRU5UX1BVQkxJU0hfQVBJLHIpfXZhciBVZT1uKDg3MDMpLHplPW4ubihVZSk7Y29uc3QgVmU9ZT0+e3ZhciB0LG4scixvO2xldHt4bWxSZXN1bHQ6aX09ZTtjb25zdCBhPW51bGwhPT0odD1udWxsPT09aXx8dm9pZCAwPT09aXx8bnVsbD09PShuPWkuZ2V0RWxlbWVudEJ5SWQoXCJhZExpc3RpbmdzXCIpKXx8dm9pZCAwPT09bj92b2lkIDA6bi5nZXRFbGVtZW50c0J5VGFnTmFtZShcIkxpc3RpbmdcIikpJiZ2b2lkIDAhPT10P3Q6W10scz1BcnJheS5mcm9tKGEpLGw9bnVsbCE9PShyPW51bGw9PT1pfHx2b2lkIDA9PT1pfHxudWxsPT09KG89aS5nZXRFbGVtZW50c0J5VGFnTmFtZShcIk1ldGFEYXRhXCIpWzBdKXx8dm9pZCAwPT09bz92b2lkIDA6by5nZXRBdHRyaWJ1dGUoXCJrZXl3b3Jkc1wiKSkmJnZvaWQgMCE9PXI/cjpcIlwiO3JldHVybigwLGJlLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInZlcml6b24tYWRzXCIsY2hpbGRyZW46WygwLGJlLmpzeHMpKFwic3BhblwiLHtzdHlsZTp7Zm9udFNpemU6XCJzbWFsbFwifSxjaGlsZHJlbjpbKDAsYmUuanN4KShcInNwYW5cIix7c3R5bGU6e3RleHREZWNvcmF0aW9uOlwidW5kZXJsaW5lXCJ9LGNoaWxkcmVuOlwiU3BvbnNvcmVkXCJ9KSxcIiBSZXN1bHRzIGZvciBcIixSKGwpXX0pLCgwLGJlLmpzeCkoXCJ1bFwiLHtzdHlsZTp7bGlzdFN0eWxlOlwibm9uZVwiLHBhZGRpbmc6MCxtYXJnaW46MH0sY2hpbGRyZW46cyYmcy5tYXAoKChlLHQpPT57dmFyIG4scixvO3JldHVybigwLGJlLmpzeHMpKFwibGlcIix7c3R5bGU6e3BhZGRpbmc6XCIyNHB4IDBweFwifSxjaGlsZHJlbjpbKDAsYmUuanN4KShcImFcIix7c3R5bGU6e2ZvbnRTaXplOlwieC1sYXJnZVwiLHRleHREZWNvcmF0aW9uOlwidW5kZXJsaW5lXCIsZGlzcGxheTpcImJsb2NrXCIscGFkZGluZzpcIjhweCAwcHhcIn0sdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9vcGVuZXIgbm9yZWZlcnJlclwiLGhyZWY6bnVsbCE9PShuPW51bGw9PT0ocj1lLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiQ2xpY2tVcmxcIilbMF0pfHx2b2lkIDA9PT1yfHxudWxsPT09KG89ci5jaGlsZE5vZGVzWzBdKXx8dm9pZCAwPT09bz92b2lkIDA6by50ZXh0Q29udGVudCkmJnZvaWQgMCE9PW4/bjpcIiNcIixjbGFzc05hbWU6XCJhZExpbmtcIixkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnplKCkuc2FuaXRpemUoZS5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKSl9fSksKDAsYmUuanN4KShcInBcIix7c3R5bGU6e21hcmdpbjowfSxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnplKCkuc2FuaXRpemUoZS5nZXRBdHRyaWJ1dGUoXCJkZXNjcmlwdGlvblwiKSl9fSksKDAsYmUuanN4KShcImFcIix7dGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9vcGVuZXIgbm9yZWZlcnJlclwiLGhyZWY6XCJodHRwOi8vXCIuY29uY2F0KGUuZ2V0QXR0cmlidXRlKFwic2l0ZUhvc3RcIikpLGNoaWxkcmVuOmUuZ2V0QXR0cmlidXRlKFwic2l0ZUhvc3RcIil9KV19LFwidmVyaXpvbi1mZWVkLWFkLWl0ZW0tXCIuY29uY2F0KHQpKX0pKX0pXX0pfSxXZT1lPT57dmFyIHQsbjtsZXR7eG1sUmVzdWx0OnJ9PWU7Y29uc3Qgbz1OZSgpLmxhbmRlckNvbmZpZy5kb21haW4ucm9vdERvbWFpbixpPW51bGwhPT0odD1udWxsPT09cnx8dm9pZCAwPT09cnx8bnVsbD09PShuPXIuZ2V0RWxlbWVudEJ5SWQoXCJyZWxhdGVkVGVybXNcIikpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiU2VhcmNoXCIpKSYmdm9pZCAwIT09dD90OltdLGE9QXJyYXkuZnJvbShpKTtyZXR1cm4oMCxiZS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJ2ZXJpem9uLXJzXCIsY2hpbGRyZW46WygwLGJlLmpzeHMpKFwiZGl2XCIse3N0eWxlOntmb250U2l6ZTpcInNtYWxsXCIsZGlzcGxheTpcImZsZXhcIixmbGV4RGlyZWN0aW9uOlwicm93XCIsanVzdGlmeUNvbnRlbnQ6XCJzcGFjZS1iZXR3ZWVuXCJ9LGNoaWxkcmVuOlsoMCxiZS5qc3gpKFwic3BhblwiLHtjaGlsZHJlbjpcIlJlbGF0ZWQgU2VhcmNoIFRvcGljc1wifSksKDAsYmUuanN4KShcInNwYW5cIix7Y2hpbGRyZW46XCJBZHNcIn0pXX0pLCgwLGJlLmpzeCkoXCJ1bFwiLHtzdHlsZTp7bGlzdFN0eWxlOlwibm9uZVwiLHRleHRBbGlnbjpcImNlbnRlclwiLHBhZGRpbmc6XCIxMnB4XCIsbWFyZ2luOjB9LGNoaWxkcmVuOmEmJmEubWFwKCgoZSx0KT0+KDAsYmUuanN4KShcImxpXCIse3N0eWxlOntwYWRkaW5nOlwiMWVtXCJ9LGNoaWxkcmVuOigwLGJlLmpzeCkoXCJhXCIse2hyZWY6RmUoZS5nZXRBdHRyaWJ1dGUoXCJxdWVyeVBhcmFtc1wiKSxvKSxzdHlsZTp7Zm9udFNpemU6XCIyOHB4XCJ9LGNoaWxkcmVuOlIoZS5pbm5lckhUTUwpfSl9LFwidmVyaXpvbi1mZWVkLWl0ZW0tXCIuY29uY2F0KHQpKSkpfSldfSl9LHFlPXQ9Pnt2YXIgbixyO2xldHt4bWxSZXN1bHQ6b309dDtjb25zdCBpPU5lKCksYT1pLmxhbmRlckNvbmZpZy5kb21haW4ucm9vdERvbWFpbixbcyxsXT0oMCxlLnVzZVN0YXRlKShcIlwiKSxjPW51bGwhPT0obj1udWxsPT09b3x8dm9pZCAwPT09b3x8bnVsbD09PShyPW8uZ2V0RWxlbWVudEJ5SWQoXCJzZWFyY2hCb3hcIikpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLmdldEF0dHJpYnV0ZShcInF1ZXJ5UGFyYW1zXCIpKSYmdm9pZCAwIT09bj9uOlwiXCI7cmV0dXJuIWkubGFuZGVyQ29uZmlnLmxhbmRlci50ZW1wbGF0ZS5pbmNsdWRlcyhcIlBBUktfV0VCXCIpJiZpLnF1ZXJ5Q29uZmlnW2QuU0VBUkNIX0JPWF0mJmM/KDAsYmUuanN4cykoXCJkaXZcIix7aWQ6XCJzZWFyY2hib3hcIixjaGlsZHJlbjpbKDAsYmUuanN4KShcImlucHV0XCIse3R5cGU6XCJ0ZXh0XCIsdmFsdWU6cyxvbkNoYW5nZTplPT5sKGUudGFyZ2V0LnZhbHVlKX0pLCgwLGJlLmpzeCkoXCJhXCIse2hyZWY6RmUoYyxhLHMpLGNoaWxkcmVuOigwLGJlLmpzeCkoXCJidXR0b25cIix7Y2hpbGRyZW46XCJTZWFyY2ggQWRzXCJ9KX0pXX0pOm51bGx9LEtlPSgpPT57Y29uc3QgdD1OZSgpLFtuLHJdPSgwLGUudXNlU3RhdGUpKGkpLFtvLHNdPSgwLGUudXNlU3RhdGUpKG51bGwpLGw9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5oYXMoXCJxc1wiKTtsZXQgYztyZXR1cm4oMCxlLnVzZUVmZmVjdCkoKCgpPT57bGV0IGU7ZT1sP3dpbmRvdy5sb2NhdGlvbi5zZWFyY2g6SGUodC5sYW5kZXJDb25maWcuZG9tYWluLnJvb3REb21haW4sdC5tZXJnZWRDb25maWcua2V5d29yZHMsdC5sYW5kZXJDb25maWcuc3lzdGVtKSxNZShlKS50aGVuKChlPT57cihlLmZldGNoU3RhdHVzKSxzKGUueG1sUmVzdWx0KSxHZShlLm1lc3NhZ2UsbCx0LmxhbmRlckNvbmZpZyl9KSl9KSxbdC5sYW5kZXJDb25maWcsdC5sYW5kZXJDb25maWcuZG9tYWluLnJvb3REb21haW4sdC5tZXJnZWRDb25maWcua2V5d29yZHMsbF0pLGM9bj09PWk/bnVsbDpuPT09YT8oMCxiZS5qc3hzKShiZS5GcmFnbWVudCx7Y2hpbGRyZW46W2w/KDAsYmUuanN4KShWZSx7eG1sUmVzdWx0Om99KTooMCxiZS5qc3gpKFdlLHt4bWxSZXN1bHQ6b30pLCgwLGJlLmpzeCkocWUse3htbFJlc3VsdDpvfSldfSk6KDAsYmUuanN4KShkZS5aLHtpZDpcImNvbnRlbnRCbG9ja2VkVGV4dFwifSksKDAsYmUuanN4KShcImRpdlwiLHtpZDpcInZlcml6b24tZmVlZFwiLGNoaWxkcmVuOmN9KX07Y2xhc3MgWmV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLm5hbWU9ZSx0aGlzLmxpbmVzPXR9fWZ1bmN0aW9uIFllKGUsdCl7cmV0dXJuXCJcIi5jb25jYXQoZSxcIiB7IFwiKS5jb25jYXQodC5tYXAoWGUpLmpvaW4oXCJcXG5cXHRcIiksXCIgfVwiKX1mdW5jdGlvbiAkZShlKXtyZXR1cm4gZS5tYXAoKGU9PlwiXCIuY29uY2F0KGUubmFtZSxcIiB7IFwiKS5jb25jYXQoZS5saW5lcy5tYXAoWGUpLmpvaW4oXCJcXG5cXHRcIiksXCIgfVxcblwiKSkpfWZ1bmN0aW9uIFhlKGUpe3JldHVyblwiO1wiIT09ZVtlLmxlbmd0aC0xXT9lK1wiO1wiOmV9ZnVuY3Rpb24gUWUoKXtyZXR1cm57dWlPcHRpbWl6ZTohMCxzdHlsZUlkOm5lLnN0eWxlSWQuQVJST1d9fWNvbnN0IEplPVtuZXcgWmUoXCIjc2ltcGxlTGF5b3V0XCIsW1wibWluLWhlaWdodDogMTAwdmhcIixcIm92ZXJmbG93OiBoaWRkZW5cIl0pLG5ldyBaZShcIiNjb250ZW50TGF5b3V0XCIsW1wicGFkZGluZzogMHB4XCIsXCJtYXgtd2lkdGg6IDEwMCVcIixcIndpZHRoOiAxMDAlXCIsXCJtaW4taGVpZ2h0OiAxMDAlXCIsXCJkaXNwbGF5OiBncmlkO1wiLFwiZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1wiXSksbmV3IFplKFwiI2NvbnRlbnRNYWluXCIsW1wiaGVpZ2h0OjEwMHZoO1wiXSksbmV3IFplKFwiYm9keVwiLFtcImJhY2tncm91bmQtY29sb3I6ICMxRDJBMzNcIl0pLG5ldyBaZShcIiNzcG9uc29yZWRfbGlzdGluZ3MsICNyZWxhdGVkX2xpbmtzXCIsW1wicGFkZGluZzogMHB4XCIsXCJtYXJnaW46IDBcIixcImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50XCJdKV0sZXQ9JGUoWy4uLkplLG5ldyBaZShcIiNzcG9uc29yZWRfbGlzdGluZ3MsICNyZWxhdGVkX2xpbmtzXCIsW1wid2lkdGg6IGF1dG9cIl0pXSksdHQ9JGUoWy4uLkplLG5ldyBaZShcIiNzcG9uc29yZWRfbGlzdGluZ3MsICNyZWxhdGVkX2xpbmtzXCIsW1wid2lkdGg6IDMwcmVtXCJdKV0pLG50PVtuZXcgWmUoXCIjdmVyaXpvbi1mZWVkXCIsW1wicGFkZGluZzogOHB4XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkICpcIixbXCJjb2xvcjogI2ZmZjtcIl0pLG5ldyBaZShcIiN2ZXJpem9uLWZlZWQgYVwiLFtcImZvbnQtd2VpZ2h0OiBib2xkO1wiXSksbmV3IFplKFwiI3Zlcml6b24tZmVlZCAudmVyaXpvbi1ycyB1bFwiLFtcImJhY2tncm91bmQtY29sb3I6ICM1ZjVmNWY7XCIsXCJib3JkZXItcmFkaXVzOiA1cHg7XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkIC52ZXJpem9uLWFkcyAuYWRMaW5rLCAjdmVyaXpvbi1mZWVkIC52ZXJpem9uLWFkcyAuYWRMaW5rICpcIixbXCJjb2xvcjogIzAwZmYwMDtcIl0pLG5ldyBaZShcIiN2ZXJpem9uLWZlZWQgLnZlcml6b24tYWRzIGFcIixbXCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcIl0pLG5ldyBaZShcIiN2ZXJpem9uLWZlZWQgI3NlYXJjaGJveCAqXCIsW1wiY29sb3I6IGluaXRpYWw7XCJdKV0scnQ9W25ldyBaZShcIiNwcml2YWN5XCIsW1wiZm9udC1zaXplOiBzbWFsbDtcIixcInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1wiXSksbmV3IFplKFwiI2NvcHlyaWdodFwiLFtcImp1c3RpZnktY29udGVudDogY2VudGVyO1wiLFwidGV4dC1hbGlnbjogY2VudGVyO1wiLFwibGluZS1oZWlnaHQ6IDEuNXJlbTtcIixcImZvbnQtc2l6ZTogc21hbGw7XCIsXCJjb2xvcjogI2I0YjRiNDtcIl0pXSxvdD1bLi4ucnRdLGl0PVsuLi5ydCxuZXcgWmUoXCIjY29weXJpZ2h0XCIsW1wiZGlzcGxheTogYmxvY2s7XCIsXCJtYXJnaW46IDBweDtcIl0pXTtmdW5jdGlvbiBhdCgpe3JldHVybiB3KCk/ZXQ6dHR9ZnVuY3Rpb24gc3QoKXtyZXR1cm4gJGUoW25ldyBaZShcImJvZHlcIixbXCJtYXJnaW46IDA7XCIsXCJwYWRkaW5nOiAwO1wiLFwiYmFja2dyb3VuZC1jb2xvcjogIzMzMztcIixcImZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzZXJpZjtcIl0pLG5ldyBaZShcIiN0ZGZzQmFubmVyXCIsW1wiYmFja2dyb3VuZDojMDBmZjAwO1wiLFwiZm9udC1zaXplOiAxNXB4O1wiLFwicGFkZGluZzogLjVlbTtcIixcIi13ZWJraXQtdHJhbnNpdGlvbjogcGFkZGluZyA0MDBtcztcIixcInRyYW5zaXRpb246IHBhZGRpbmcgNDAwbXM7XCJdKSxuZXcgWmUoXCIjdGRmc0Jhbm5lcjpob3ZlclwiLFtcInBhZGRpbmc6IC43ZW0gLjVlbTtcIl0pLG5ldyBaZShcIiN0ZGZzTGluaywgI3RkZnNBdWN0aW9uc0xpbmssICN0ZGZzQ29udGFjdExpbmssICN0ZGZzQ3VzdG9tRm9yU2FsZUxpbmtcIixbXCJtYXJnaW46MCBhdXRvO1wiLFwibWF4LXdpZHRoOiA5NjBweDtcIixcIndpZHRoOiA5NSU7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCJdKSxuZXcgWmUoXCIjdGRmc0xpbmsgYSwgI3RkZnNBdWN0aW9uc0xpbmsgYSwgI3RkZnNDb250YWN0TGluayBhLCAjdGRmc0N1c3RvbUZvclNhbGVMaW5rIGFcIixbXCJjb2xvcjogIzAwMDtcIixcImRpc3BsYXk6IGJsb2NrO1wiLFwiZm9udC1zaXplOiAxZW07XCIsXCJmb250LXdlaWdodDogMzAwO1wiLFwidGV4dC1kZWNvcmF0aW9uOiBub25lO1wiLFwidGV4dC1zaGFkb3c6MCAxcHggcmdiYSgwLDAsMCwuNSk7XCJdKSxuZXcgWmUoXCJhXCIsW1widGV4dC1kZWNvcmF0aW9uOiBub25lO1wiXSksbmV3IFplKFwiI3NlYXJjaGJveFwiLFtcIm1hcmdpbjowIGF1dG87XCIsXCJtYXJnaW4tdG9wOiAxMHB4O1wiLFwibWFyZ2luLWJvdHRvbTogMTBweDtcIixcIndpZHRoOiA1MCU7XCIsXCJmb250LXdlaWdodDogbm9ybWFsO1wiLFwidGV4dC1hbGlnbjogY2VudGVyO1wiLFwiaGVpZ2h0OiAyNHB4O1wiXSksbmV3IFplKFwiI2hlYWRlckVsZW1lbnRcIixbXCJwYWRkaW5nOiAxMHB4O1wiLFwiY29sb3I6ICNiNGI0YjQ7XCIsXCJmb250LXNpemU6IDExcHg7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCJdKSxuZXcgWmUoXCIjZm9vdGVyXCIsW1wid2lkdGg6IGF1dG87XCIsXCJwYWRkaW5nLXRvcDogNzBweDtcIl0pLG5ldyBaZShcIiNwcml2YWN5IGFcIixbXCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7XCIsXCJjb2xvcjojYjRiNGI0O1wiXSksbmV3IFplKFwiLmZvb3RlckxpbmVcIixbXCJsaW5lLWhlaWdodDogMjVweDtcIixcImZvbnQtc2l6ZTogMTFweDtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIl0pLG5ldyBaZShcIi5mb290ZXJDb2xvclwiLFtcImNvbG9yOiNiNGI0YjQ7XCJdKSxuZXcgWmUoXCIjbG9hZGluZ1wiLFtcImNvbG9yOiB3aGl0ZTtcIl0pLG5ldyBaZShcIiNjb250ZW50TGF5b3V0XCIsW1wibWFyZ2luOiBhdXRvO1wiXSksbmV3IFplKFwiI3Nwb25zb3JlZF9saXN0aW5ncywgI3JlbGF0ZWRfbGlua3NcIixbXCJib3JkZXItcmFkaXVzOiA1cHg7XCIsXCJiYWNrZ3JvdW5kLWNvbG9yOiAjNDg0ODQ4O1wiLFwicGFkZGluZy10b3A6IDEwcHg7XCJdKSxuZXcgWmUoXCIuaGlnaGxpZ2h0XCIsW1wiY29sb3I6ICNGRDc0MDA7XCJdKSwuLi53KCk/aXQ6b3QsLi4ubnRdKX1mdW5jdGlvbiBsdCgpe3JldHVybiAkZShbbmV3IFplKFwiYm9keVwiLFtcIm1hcmdpbjogMDtcIixcInBhZGRpbmc6IDA7XCIsXCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1wiLFwiZm9udC1mYW1pbHk6ICdBcmlhbCcsIHNlcmlmO1wiXSksbmV3IFplKFwiI3RkZnNCYW5uZXJcIixbXCJiYWNrZ3JvdW5kOiMwMGZmMDA7XCIsXCJmb250LXNpemU6IDE1cHg7XCIsXCJwYWRkaW5nOiAuNWVtO1wiLFwiLXdlYmtpdC10cmFuc2l0aW9uOiBwYWRkaW5nIDQwMG1zO1wiLFwidHJhbnNpdGlvbjogcGFkZGluZyA0MDBtcztcIl0pLG5ldyBaZShcIiN0ZGZzQmFubmVyOmhvdmVyXCIsW1wicGFkZGluZzogLjdlbSAuNWVtO1wiXSksbmV3IFplKFwiI3RkZnNMaW5rLCAjdGRmc0F1Y3Rpb25zTGluaywgI3RkZnNDb250YWN0TGluaywgI3RkZnNDdXN0b21Gb3JTYWxlTGlua1wiLFtcIm1hcmdpbjowIGF1dG87XCIsXCJtYXgtd2lkdGg6IDk2MHB4O1wiLFwid2lkdGg6IDk1JTtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIl0pLG5ldyBaZShcIiN0ZGZzTGluayBhLCAjdGRmc0F1Y3Rpb25zTGluayBhLCAjdGRmc0NvbnRhY3RMaW5rIGEsICN0ZGZzQ3VzdG9tRm9yU2FsZUxpbmsgYVwiLFtcImNvbG9yOiAjMDAwO1wiLFwiZGlzcGxheTogYmxvY2s7XCIsXCJmb250LXNpemU6IDFlbTtcIixcImZvbnQtd2VpZ2h0OiAzMDA7XCIsXCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7XCIsXCJ0ZXh0LXNoYWRvdzowIDFweCByZ2JhKDAsMCwwLC41KTtcIl0pLG5ldyBaZShcImFcIixbXCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7XCJdKSxuZXcgWmUoXCIjc2VhcmNoYm94XCIsW1wibWFyZ2luOjAgYXV0bztcIixcIm1hcmdpbi10b3A6IDEwcHg7XCIsXCJtYXJnaW4tYm90dG9tOiAxMHB4O1wiLFwid2lkdGg6IDUwJTtcIixcImZvbnQtd2VpZ2h0OiBub3JtYWw7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIsXCJoZWlnaHQ6IDI0cHg7XCJdKSxuZXcgWmUoXCIjaGVhZGVyRWxlbWVudFwiLFtcInBhZGRpbmc6IDEwcHg7XCIsXCJjb2xvcjogI2I0YjRiNDtcIixcImZvbnQtc2l6ZTogMTFweDtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIl0pLG5ldyBaZShcIiNmb290ZXJcIixbXCJ3aWR0aDogYXV0bztcIixcInBhZGRpbmctdG9wOiA3MHB4O1wiXSksbmV3IFplKFwiI3ByaXZhY3kgYVwiLFtcInRleHQtZGVjb3JhdGlvbjogbm9uZTtcIixcImNvbG9yOiNiNGI0YjQ7XCJdKSxuZXcgWmUoXCIuZm9vdGVyTGluZVwiLFtcImxpbmUtaGVpZ2h0OiAyNXB4O1wiLFwiZm9udC1zaXplOiAxMXB4O1wiLFwidGV4dC1hbGlnbjogY2VudGVyO1wiXSksbmV3IFplKFwiLmZvb3RlckNvbG9yXCIsW1wiY29sb3I6I2I0YjRiNDtcIl0pLG5ldyBaZShcIiNsb2FkaW5nXCIsW1wiY29sb3I6IHdoaXRlO1wiXSksbmV3IFplKFwiI2NvbnRlbnRMYXlvdXRcIixbXCJtYXJnaW46IGF1dG87XCJdKSxuZXcgWmUoXCIjc3BvbnNvcmVkX2xpc3RpbmdzLCAjcmVsYXRlZF9saW5rc1wiLFtcImJvcmRlci1yYWRpdXM6IDVweDtcIixcImJhY2tncm91bmQtY29sb3I6ICM0ODQ4NDg7XCIsXCJwYWRkaW5nLXRvcDogMTBweDtcIl0pLG5ldyBaZShcIi5oaWdobGlnaHRcIixbXCJjb2xvcjogI0ZENzQwMDtcIl0pXSl9ZnVuY3Rpb24gY3QoKXtyZXR1cm4oMCxiZS5qc3hzKShcInN0eWxlXCIse2NoaWxkcmVuOltsdCgpLFllKFwiI2NvbnRlbnRMYXlvdXRcIixbXCJ3aWR0aDogNzUlO1wiLFwibWluLXdpZHRoOiA1MDBweDtcIixcIm1heC13aWR0aDogODAwcHg7XCIsXCJwYWRkaW5nOiAxMHB4O1wiXSksWWUoXCIjc3BvbnNvcmVkX2xpc3RpbmdzLCAjcmVsYXRlZF9saW5rc1wiLFtcInBhZGRpbmc6IDMwcHg7XCJdKV19KX1mdW5jdGlvbiB1dChlKXtsZXR7dGVtcGxhdGU6dH09ZTtyZXR1cm4oMCxiZS5qc3hzKShcInN0eWxlXCIse2NoaWxkcmVuOltzdCgpLFllKFwiI2NvbnRlbnRMYXlvdXRcIixbXCJwYWRkaW5nOiAxMHB4O1wiXSksWWUoXCIjc3BvbnNvcmVkX2xpc3RpbmdzLCAjcmVsYXRlZF9saW5rc1wiLFtcInBhZGRpbmc6IDMwcHg7XCIsXCJ3aWR0aDogNzUlO1wiLFwibWluLXdpZHRoOiA1MDBweDtcIixcIm1heC13aWR0aDogODAwcHg7XCIsXCJtYXJnaW46IGF1dG9cIl0pLGVlLnRlbXBsYXRlLkFSUk9XX0xJU1QuaW5jbHVkZXModCk/YXQoKTpudWxsXX0pfWZ1bmN0aW9uIGR0KCl7cmV0dXJuKDAsYmUuanN4cykoXCJzdHlsZVwiLHtjaGlsZHJlbjpbc3QoKSxZZShcIiNzcG9uc29yZWRfbGlzdGluZ3MsICNyZWxhdGVkX2xpbmtzXCIsW1wiYm9yZGVyLXJhZGl1czogMHB4O1wiLFwicGFkZGluZy10b3A6IDEwcHg7XCJdKSxZZShcIiNmb290ZXJcIixbXCJ3aWR0aDogYXV0bztcIixcInBhZGRpbmctdG9wOiAyMHB4O1wiXSksYXQoKV19KX1mdW5jdGlvbiBwdCgpe3JldHVybigwLGJlLmpzeHMpKFwic3R5bGVcIix7Y2hpbGRyZW46W2x0KCksWWUoXCIjc3BvbnNvcmVkX2xpc3RpbmdzLCAjcmVsYXRlZF9saW5rc1wiLFtcImJvcmRlci1yYWRpdXM6IDBweDtcIixcInBhZGRpbmctdG9wOiAxMHB4O1wiXSksWWUoXCIjZm9vdGVyXCIsW1wid2lkdGg6IGF1dG87XCIsXCJwYWRkaW5nLXRvcDogMjBweDtcIl0pLFllKFwiI2NvcHlyaWdodFwiLFtcIm1hcmdpbjogMHB4O1wiXSldfSl9ZnVuY3Rpb24gZnQoKXtyZXR1cm4oMCxiZS5qc3hzKShcInN0eWxlXCIse2NoaWxkcmVuOltzdCgpLFllKFwiYm9keVwiLFtcImJhY2tncm91bmQtY29sb3I6ICNFRUY2RkY7XCJdKSxZZShcIiNjb250ZW50TGF5b3V0XCIsW1wid2lkdGg6IDc1JTtcIixcIm1pbi13aWR0aDogNTAwcHg7XCIsXCJtYXgtd2lkdGg6IDgwMHB4O1wiLFwicGFkZGluZzogMTBweDtcIl0pLFllKFwiI3Nwb25zb3JlZF9saXN0aW5ncywgI3JlbGF0ZWRfbGlua3NcIixbXCJiYWNrZ3JvdW5kLWNvbG9yOiAjRUVGNkZGO1wiLFwicGFkZGluZy10b3A6IDMwcHg7XCJdKSxZZShcIiNjb3B5cmlnaHQsICNwcml2YWN5IGFcIixbXCJjb2xvcjogIzJiMmIyYjtcIl0pLFllKFwiLmZvb3RlckNvbG9yXCIsW1wiY29sb3I6IzJiMmIyYjtcIl0pXX0pfWZ1bmN0aW9uIGh0KCl7cmV0dXJuKDAsYmUuanN4cykoXCJzdHlsZVwiLHtjaGlsZHJlbjpbc3QoKSxZZShcImJvZHlcIixbXCJiYWNrZ3JvdW5kLWNvbG9yOiAjRUVGNkZGO1wiXSksWWUoXCIjc3BvbnNvcmVkX2xpc3RpbmdzLCAjcmVsYXRlZF9saW5rc1wiLFtcImJhY2tncm91bmQtY29sb3I6ICNFRUY2RkY7XCIsXCJib3JkZXItcmFkaXVzOiAwcHg7XCIsXCJwYWRkaW5nLXRvcDogMTBweDtcIl0pLFllKFwiI2Zvb3RlclwiLFtcIndpZHRoOiBhdXRvO1wiLFwicGFkZGluZy10b3A6IDIwcHg7XCJdKSxZZShcIiNjb3B5cmlnaHRcIixbXCJtYXJnaW46IDBweDtcIixcImNvbG9yOiAjMmIyYjJiO1wiXSksWWUoXCIjcHJpdmFjeSBhXCIsW1wiY29sb3I6ICMyYjJiMmI7XCJdKSxZZShcIi5mb290ZXJDb2xvclwiLFtcImNvbG9yOiMyYjJiMmI7XCJdKV19KX1jb25zdCBtdD1uLnArXCJzdGF0aWMvbWVkaWEvTGlnaHRCbHVlQmFja2dyb3VuZC44NDA3ODc0MGNhNjQ4YjcwYTA4Mi5wbmdcIjtmdW5jdGlvbiBndCgpe3JldHVybiAkZShbbmV3IFplKFwiYm9keVwiLFtcIm1hcmdpbjogMDtcIixcInBhZGRpbmc6IDA7XCIsXCJiYWNrZ3JvdW5kLWNvbG9yOiAjRUVGNkZGO1wiLFwiZm9udC1mYW1pbHk6ICdBcmlhbCcsIHNlcmlmO1wiXSksbmV3IFplKFwiYVwiLFtcInRleHQtZGVjb3JhdGlvbjogbm9uZTtcIl0pLG5ldyBaZShcIiNyZWxhdGVkX2xpbmtzXCIsW1wiYm9yZGVyLXJhZGl1czogNXB4O1wiLFwiYmFja2dyb3VuZC1jb2xvcjogI0VFRjZGRjtcIixcInBhZGRpbmc6IDMwcHg7XCIsXCJwYWRkaW5nLWJvdHRvbTogMTBweDtcIixcInBhZGRpbmctdG9wOiAxMHB4O1wiXSksbmV3IFplKFwiI3RkZnNCYW5uZXJcIixbXCJiYWNrZ3JvdW5kOiB3aGl0ZTtcIixcImZvbnQtc2l6ZTogMjNweDtcIixcInBhZGRpbmctdG9wOiAxNnB4O1wiLFwicGFkZGluZy1ib3R0b206IDE2cHg7XCIsXCItd2Via2l0LXRyYW5zaXRpb246IHBhZGRpbmcgNDAwbXM7XCIsXCJ0cmFuc2l0aW9uOiBwYWRkaW5nIDQwMG1zO1wiXSksbmV3IFplKFwiI3RkZnNCYW5uZXI6aG92ZXJcIixbXCJwYWRkaW5nOiAuN2VtIC41ZW07XCJdKSxuZXcgWmUoXCIjdGRmc0xpbmtcIixbXCJtYXJnaW46MCBhdXRvO1wiLFwibWF4LXdpZHRoOiA5NjBweDtcIixcIndpZHRoOiA5NSU7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIsXCJmb250LWZhbWlseTogSGVsdmV0aWNhO1wiLFwiZm9udC1zaXplOiAxNnB4O1wiXSksbmV3IFplKFwiI3RkZnNMaW5rIGFcIixbXCJjb2xvcjogIzAwMDtcIixcImRpc3BsYXk6IGJsb2NrO1wiLFwiZm9udC1zaXplOiAxZW07XCIsXCJmb250LXdlaWdodDogMzAwO1wiLFwidGV4dC1kZWNvcmF0aW9uOiBub25lO1wiLFwibGluZS1oZWlnaHQ6IDEuNWVtO1wiXSksbmV3IFplKFwiI2NvbnRlbnRMYXlvdXQgPiAjcmVsYXRlZF9saW5rc1wiLFtcIm9yZGVyOiAxO1wiXSksbmV3IFplKFwiI2NvbnRlbnRMYXlvdXQgPiAjc2VhcmNoYm94XCIsW1wib3JkZXI6IDI7XCJdKSxuZXcgWmUoXCIjY29udGVudExheW91dCA+ICNmb290ZXJcIixbXCJvcmRlcjogMztcIl0pLG5ldyBaZShcIiNkb21haW5cIixbXCJtYXJnaW4tbGVmdDowcHg7XCIsXCJtYXJnaW4tYm90dG9tOjEwcHg7XCIsXCJmb250LXNpemU6MjZweDtcIixcImNvbG9yOiMwMDA7XCJdKSxuZXcgWmUoXCIjc2VhcmNoYm94XCIsW1wibWFyZ2luOiBhdXRvO1wiLFwiZm9udC13ZWlnaHQ6IG5vcm1hbDtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIixcImhlaWdodDogMjRweDtcIl0pLG5ldyBaZShcIiNzcG9uc29yZWRfbGlzdGluZ3NcIixbXCJib3JkZXItcmFkaXVzOiA1cHg7XCIsXCJiYWNrZ3JvdW5kLWNvbG9yOiAjRUVGNkZGO1wiLFwid2lkdGg6IDEwMCU7XCIsXCJwYWRkaW5nOiAzMHB4O1wiLFwicGFkZGluZy10b3A6IDEwcHg7XCJdKSxuZXcgWmUoXCIjZm9vdGVyXCIsW1wid2lkdGg6IGF1dG87XCIsXCJwYWRkaW5nLXRvcDogNzBweDtcIl0pLG5ldyBaZShcIiNjb3B5cmlnaHRcIixbXCJwYWRkaW5nOiA1cHg7XCIsXCJmb250LXNpemU6IDExcHg7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCJdKSxuZXcgWmUoXCIjcHJpdmFjeVwiLFtcInBhZGRpbmc6IDVweDtcIixcImZvbnQtc2l6ZTogMTFweDtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIl0pLG5ldyBaZShcIiNwcml2YWN5IGFcIixbXCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7XCIsXCJjb2xvcjojMmIyYjJiO1wiXSksbmV3IFplKFwiI2Zvb3RlckVsZW1lbnQsICNIZWFkZXJFbGVtZW50XCIsW1wicGFkZGluZzogMTBweDtcIixcImNvbG9yOiAjMmIyYjJiO1wiLFwiZm9udC1zaXplOiAxMXB4O1wiLFwidGV4dC1hbGlnbjogY2VudGVyO1wiXSksbmV3IFplKFwiLmZvb3RlckxpbmVcIixbXCJsaW5lLWhlaWdodDogMjVweDtcIixcImZvbnQtc2l6ZTogMTFweDtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIl0pLG5ldyBaZShcIi5mb290ZXJDb2xvclwiLFtcImNvbG9yOiMyYjJiMmI7XCJdKSxuZXcgWmUoXCIuaGlnaGxpZ2h0XCIsW1wiY29sb3I6ICNGRDc0MDA7XCJdKV0pfWZ1bmN0aW9uIHl0KCl7cmV0dXJuKDAsYmUuanN4cykoXCJzdHlsZVwiLHtjaGlsZHJlbjpbZ3QoKSxZZShcIiNyZWxhdGVkX2xpbmtzXCIsW1wiYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiK210K1wiKTtcIixcImJhY2tncm91bmQtcG9zaXRpb246IHRvcCBsZWZ0O1wiLFwiYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcIixcImJhY2tncm91bmQtcG9zaXRpb24teDogMHB4O1wiLFwiYmFja2dyb3VuZC1wb3NpdGlvbi15OiA0MHB4O1wiLFwiYmFja2dyb3VuZC1zaXplOiBhdXRvIDc2NXB4O1wiXSksWWUoXCIjY29udGVudExheW91dFwiLFtcIm1hcmdpbjogYXV0bztcIixcIndpZHRoOiA3NSU7XCIsXCJtaW4td2lkdGg6IDYwMHB4O1wiLFwibWF4LXdpZHRoOiA3MDBweDtcIixcInBhZGRpbmc6IDEwcHg7XCIsXCJkaXNwbGF5OiBmbGV4O1wiLFwiZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIl0pLFllKFwiI3NlYXJjaGJveFwiLFtcInBhZGRpbmctdG9wOiAyMHB4O1wiXSldfSl9ZnVuY3Rpb24gdnQoKXtyZXR1cm4oMCxiZS5qc3hzKShcInN0eWxlXCIse2NoaWxkcmVuOltndCgpLFllKFwiI2NvbnRlbnRMYXlvdXRcIixbXCJtYXJnaW46IGF1dG87XCIsXCJkaXNwbGF5OiBmbGV4O1wiLFwiZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIl0pLFllKFwiI3NlYXJjaGJveFwiLFtcIndpZHRoOiA4MCU7XCJdKSxZZShcIiN0ZGZzTGlua1wiLFtcImxpbmUtaGVpZ2h0OiAzNXB4XCJdKSxZZShcIiNmb290ZXJcIixbXCJ3aWR0aDogYXV0bztcIixcInBhZGRpbmctdG9wOiAyMHB4O1wiXSldfSl9ZnVuY3Rpb24gYnQoKXtyZXR1cm4oMCxiZS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInN2Zy1jb250YWluZXJcIixjaGlsZHJlbjooMCxiZS5qc3hzKShcInN2Z1wiLHtjbGFzc05hbWU6XCJwb2x5Z29uc1wiLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZCBzbGljZVwiLGNoaWxkcmVuOlsoMCxiZS5qc3hzKShcImRlZnNcIix7Y2hpbGRyZW46WygwLGJlLmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJncmFkMVwiLHgxOlwiMCVcIix5MTpcIjAlXCIseDI6XCIwJVwiLHkyOlwiMTAwJVwiLGNoaWxkcmVuOlsoMCxiZS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCI3MCVcIixzdG9wQ29sb3I6XCJyZ2IoMiwxNjQsMTY2KVwiLHN0b3BPcGFjaXR5OlwiMVwifSksKDAsYmUuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMTAwJVwiLHN0b3BDb2xvcjpcInJnYig1LDEzOCwxNDcpXCIsc3RvcE9wYWNpdHk6XCIxXCJ9KV19KSwoMCxiZS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwiZ3JhZDJcIix4MTpcIjAlXCIseTE6XCIwJVwiLHgyOlwiMCVcIix5MjpcIjEwMCVcIixjaGlsZHJlbjpbKDAsYmUuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiNzAlXCIsc3RvcENvbG9yOlwicmdiKDE2NiwyNTUsMjQ4KVwiLHN0b3BPcGFjaXR5OlwiMVwifSksKDAsYmUuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMTAwJVwiLHN0b3BDb2xvcjpcInJnYigxNTYsMjM3LDIzMSlcIixzdG9wT3BhY2l0eTpcIjFcIn0pXX0pLCgwLGJlLmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJncmFkM1wiLHgxOlwiMCVcIix5MTpcIjAlXCIseDI6XCIwJVwiLHkyOlwiMTAwJVwiLGNoaWxkcmVuOlsoMCxiZS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCI3MCVcIixzdG9wQ29sb3I6XCJyZ2IoMjE2LDIzOCwyMzkpXCIsc3RvcE9wYWNpdHk6XCIxXCJ9KSwoMCxiZS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIxMDAlXCIsc3RvcENvbG9yOlwicmdiKDIwNCwyMjUsMjI2KVwiLHN0b3BPcGFjaXR5OlwiMVwifSldfSksKDAsYmUuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcImdyYWQ0XCIseDE6XCIwJVwiLHkxOlwiMCVcIix4MjpcIjAlXCIseTI6XCIxMDAlXCIsY2hpbGRyZW46WygwLGJlLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIjcwJVwiLHN0b3BDb2xvcjpcInJnYigyNDQsMjQ4LDI1MilcIixzdG9wT3BhY2l0eTpcIjFcIn0pLCgwLGJlLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIjEwMCVcIixzdG9wQ29sb3I6XCJyZ2IoMjI4LDIzMSwyMzMpXCIsc3RvcE9wYWNpdHk6XCIxXCJ9KV19KV19KSwoMCxiZS5qc3gpKFwicG9seWdvblwiLHtmaWxsOlwidXJsKCNncmFkMSlcIixwb2ludHM6XCIwLDAgOSwwIDksNjAgMCw2MFwifSksKDAsYmUuanN4KShcInBvbHlnb25cIix7ZmlsbDpcInVybCgjZ3JhZDIpXCIscG9pbnRzOlwiOSwwIDIwLDAgMjAsNjAgOSw2MFwifSksKDAsYmUuanN4KShcInBvbHlnb25cIix7ZmlsbDpcInVybCgjZ3JhZDMpXCIscG9pbnRzOlwiMjAsMCAzMSwwIDMxLDYwIDIwLDYwXCJ9KSwoMCxiZS5qc3gpKFwicG9seWdvblwiLHtmaWxsOlwidXJsKCNncmFkNClcIixwb2ludHM6XCIzMSwwIDY5LDAgNjksNjAgMzEsNjBcIn0pLCgwLGJlLmpzeCkoXCJwb2x5Z29uXCIse2ZpbGw6XCJ1cmwoI2dyYWQzKVwiLHBvaW50czpcIjY5LDAgODAsMCA4MCw2MCA2OSw2MFwifSksKDAsYmUuanN4KShcInBvbHlnb25cIix7ZmlsbDpcInVybCgjZ3JhZDIpXCIscG9pbnRzOlwiODAsMCA5MSwwIDkxLDYwIDgwLDYwXCJ9KSwoMCxiZS5qc3gpKFwicG9seWdvblwiLHtmaWxsOlwidXJsKCNncmFkMSlcIixwb2ludHM6XCI5MSwwIDEwMCwwIDEwMCw2MCA5MSw2MFwifSksKDAsYmUuanN4KShcInBvbHlnb25cIix7Y2xhc3NOYW1lOlwicG9seWdvbjFcIixwb2ludHM6XCIwLDYwIDksNjAgMCw2OFwifSksKDAsYmUuanN4KShcInBvbHlnb25cIix7Y2xhc3NOYW1lOlwicG9seWdvbjJcIixwb2ludHM6XCI5LDYwIDIwLDYwIDAsODYgMCw2OFwifSksKDAsYmUuanN4KShcInBvbHlnb25cIix7Y2xhc3NOYW1lOlwicG9seWdvbjNcIixwb2ludHM6XCIyMCw2MCAzMSw2MCAxOCwxMDAgMCwxMDAgMCw4NlwifSksKDAsYmUuanN4KShcInBvbHlnb25cIix7Y2xhc3NOYW1lOlwicG9seWdvbjRcIixwb2ludHM6XCIzMSw2MCA2OSw2MCA4MiwxMDAgMTgsMTAwXCJ9KSwoMCxiZS5qc3gpKFwicG9seWdvblwiLHtjbGFzc05hbWU6XCJwb2x5Z29uM1wiLHBvaW50czpcIjY5LDYwIDgwLDYwIDEwMCw4NiAxMDAsMTAwIDgyLDEwMFwifSksKDAsYmUuanN4KShcInBvbHlnb25cIix7Y2xhc3NOYW1lOlwicG9seWdvbjJcIixwb2ludHM6XCI4MCw2MCA5MSw2MCAxMDAsNjggMTAwLDg2XCJ9KSwoMCxiZS5qc3gpKFwicG9seWdvblwiLHtjbGFzc05hbWU6XCJwb2x5Z29uMVwiLHBvaW50czpcIjkxLDYwIDEwMCw2MCAxMDAsNjhcIn0pXX0pfSl9ZnVuY3Rpb24gVHQoKXtyZXR1cm4oMCxiZS5qc3hzKShcInN0eWxlXCIse2NoaWxkcmVuOltrdCgpLFllKFwiYm9keVwiLFtcImJhY2tncm91bmQtY29sb3I6ICNFRUY2RkY7XCJdKSxZZShcIiNjb250ZW50TGF5b3V0XCIsW1wid2lkdGg6IDc1JTtcIixcIm1pbi13aWR0aDogNDAwcHg7XCIsXCJtYXgtd2lkdGg6IDYwMHB4O1wiLFwicGFkZGluZzogMTBweDtcIl0pLFllKFwiI2RvbWFpblwiLFtcImNvbG9yOiM5OTk7XCJdKSxZZShcIiNzcG9uc29yZWRfbGlzdGluZ3NcIixbXSksWWUoXCIjcmVsYXRlZF9saW5rc1wiLFtcIm1pbi13aWR0aDogNDAwcHg7XCIsXCJtYXgtd2lkdGg6IDYwMHB4O1wiXSksWWUoXCIjY29weXJpZ2h0LCAjcHJpdmFjeSBhXCIsW1wiY29sb3I6ICMyYjJiMmI7XCJdKV19KX1mdW5jdGlvbiB4dCgpe3JldHVybigwLGJlLmpzeHMpKFwic3R5bGVcIix7Y2hpbGRyZW46W2t0KCksWWUoXCJib2R5XCIsW1wiYmFja2dyb3VuZC1jb2xvcjogI0Y0RjhGQztcIl0pLFllKFwiI2NvbnRlbnRMYXlvdXRcIixbXCJ3aWR0aDogMTAwJTtcIl0pLFllKFwiI3Nwb25zb3JlZF9saXN0aW5ncywgI3JlbGF0ZWRfbGlua3NcIixbXCJiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGOEZDO1wiLFwiYm9yZGVyLXJhZGl1czogMHB4O1wiLFwicGFkZGluZy10b3A6IDEwcHg7XCJdKSxZZShcIiNmb290ZXJcIixbXCJwYWRkaW5nLXRvcDogMjBweDtcIixcIndpZHRoOiBhdXRvO1wiXSksWWUoXCIjY29weXJpZ2h0XCIsW1wibWFyZ2luOiAwcHg7XCIsXCJjb2xvcjogIzJiMmIyYjtcIl0pLFllKFwiI3ByaXZhY3kgYVwiLFtcImNvbG9yOiAjMmIyYjJiO1wiXSksWWUoXCIjc2VhcmNoYm94XCIsW1wibWFyZ2luLWJvdHRvbTogMTBweDtcIixcIndpZHRoOiA5OCU7XCIsXCJmb250LXdlaWdodDogbm9ybWFsO1wiLFwidGV4dC1hbGlnbjogY2VudGVyO1wiLFwiaGVpZ2h0OiAyNHB4O1wiXSldfSl9Y29uc3Qgd3Q9W25ldyBaZShcIiN2ZXJpem9uLWZlZWRcIixbXCJtYXgtd2lkdGg6IDgwMHB4O1wiXSksbmV3IFplKFwiI3Zlcml6b24tZmVlZCBzcGFuXCIsW1wiY29sb3I6ICM5MjkyOTI7XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkIGFcIixbXCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7XCIsXCJjb2xvcjogICMxMTExMTE7XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkIC52ZXJpem9uLXJzIHVsXCIsW1wiYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCIsXCJib3JkZXItcmFkaXVzOiA1cHg7XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkIC52ZXJpem9uLWFkc1wiLFtcImJhY2tncm91bmQtY29sb3I6IHdoaXRlO1wiLFwiYm9yZGVyLXJhZGl1czogNXB4O1wiLFwicGFkZGluZzogOHB4O1wiXSksbmV3IFplKFwiI3Zlcml6b24tZmVlZCAudmVyaXpvbi1hZHMgLmFkTGlua1wiLFtcInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1wiLFwiY29sb3I6ICMwMDAwRUU7XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkICNzZWFyY2hib3ggKlwiLFtcImNvbG9yOiBpbml0aWFsO1wiXSldO2Z1bmN0aW9uIGt0KCl7cmV0dXJuICRlKFtuZXcgWmUoXCJib2R5XCIsW1wibWFyZ2luOiAwO1wiLFwicGFkZGluZzogMDtcIixcImZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzZXJpZjtcIixcImFsaWduLWl0ZW1zOiBjZW50ZXI7XCIsXCJqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcIixcImRpc3BsYXk6IGZsZXg7XCJdKSxuZXcgWmUoXCIjdGRmc0Jhbm5lclwiLFtcImJhY2tncm91bmQ6IzAwZmYwMDtcIixcImZvbnQtc2l6ZTogMTVweDtcIixcInBhZGRpbmc6IC41ZW07XCIsXCItd2Via2l0LXRyYW5zaXRpb246IHBhZGRpbmcgNDAwbXM7XCIsXCJ0cmFuc2l0aW9uOiBwYWRkaW5nIDQwMG1zO1wiXSksbmV3IFplKFwiLnN2Zy1jb250YWluZXJcIixbXCJ3aWR0aDoxMDAlO1wiLFwiaGVpZ2h0OjEwMCU7XCIsXCJwb3NpdGlvbjogYWJzb2x1dGU7XCIsXCJ6LWluZGV4OiAtMTtcIl0pLG5ldyBaZShcIiNjb250ZW50TWFpblwiLFtcIndpZHRoOjEwMCU7XCIsXCJoZWlnaHQ6MTAwJTtcIl0pLG5ldyBaZShcIi5wb2x5Z29uc1wiLFtcInZpZXdCb3g6MCAwIDEwMCAxMDA7XCIsXCJwcmVzZXJ2ZUFzcGVjdFJhdGlvOm5vbmU7XCIsXCJoZWlnaHQ6IDEwMCU7XCIsXCJ3aWR0aDogMTAwJTtcIl0pLG5ldyBaZShcIi5wb2x5Z29uMVwiLFtcImZpbGw6IzAyQTRBNlwiXSksbmV3IFplKFwiLnBvbHlnb24yXCIsW1wiZmlsbDojQTZGRkY4XCJdKSxuZXcgWmUoXCIucG9seWdvbjNcIixbXCJmaWxsOiNEOEVFRUY7XCJdKSxuZXcgWmUoXCIucG9seWdvbjRcIixbXCJmaWxsOiNGNEY4RkM7XCJdKSxuZXcgWmUoXCIjdGRmc0Jhbm5lcjpob3ZlclwiLFtcInBhZGRpbmc6IC43ZW0gLjVlbTtcIl0pLG5ldyBaZShcIiN0ZGZzTGluaywgI3RkZnNBdWN0aW9uc0xpbmssICN0ZGZzQ29udGFjdExpbmssICN0ZGZzQ3VzdG9tRm9yU2FsZUxpbmtcIixbXCJtYXJnaW46MCBhdXRvO1wiLFwibWF4LXdpZHRoOiA5NjBweDtcIixcIndpZHRoOiA5NSU7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCJdKSxuZXcgWmUoXCIjdGRmc0xpbmsgYSwgI3RkZnNBdWN0aW9uc0xpbmsgYSwgI3RkZnNDb250YWN0TGluayBhLCAjdGRmc0N1c3RvbUZvclNhbGVMaW5rIGFcIixbXCJjb2xvcjogIzAwMDtcIixcImRpc3BsYXk6IGJsb2NrO1wiLFwiZm9udC1zaXplOiAxZW07XCIsXCJmb250LXdlaWdodDogMzAwO1wiLFwidGV4dC1kZWNvcmF0aW9uOiBub25lO1wiLFwidGV4dC1zaGFkb3c6MCAxcHggcmdiYSgwLDAsMCwuNSk7XCJdKSxuZXcgWmUoXCJhXCIsW1widGV4dC1kZWNvcmF0aW9uOiBub25lO1wiXSksbmV3IFplKFwiI2RvbWFpblwiLFtcIm1hcmdpbi1sZWZ0OjBweDtcIixcIm1hcmdpbi10b3A6MzBweDtcIixcIm1hcmdpbi1ib3R0b206MzBweDtcIixcImZvbnQtc2l6ZTozNnB4O1wiLFwidGV4dC1hbGlnbjogY2VudGVyO1wiLFwiY29sb3I6I2NjYztcIl0pLG5ldyBaZShcIiNzZWFyY2hib3hcIixbXCJtYXJnaW46MCBhdXRvO1wiLFwibWFyZ2luLXRvcDogMTBweDtcIixcIm1hcmdpbi1ib3R0b206IDEwcHg7XCIsXCJ3aWR0aDogNTAlO1wiLFwiZm9udC13ZWlnaHQ6IG5vcm1hbDtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIixcImhlaWdodDogMjRweDtcIl0pLG5ldyBaZShcIiNmb290ZXJcIixbXCJ3aWR0aDogYXV0bztcIixcInBhZGRpbmctdG9wOiA3MHB4O1wiXSksbmV3IFplKFwiI2hlYWRlckVsZW1lbnRcIixbXCJwYWRkaW5nOiAxMHB4O1wiLFwiY29sb3I6ICMyYjJiMmI7XCIsXCJmb250LXNpemU6IDExcHg7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCJdKSxuZXcgWmUoXCIuZm9vdGVyTGluZVwiLFtcImxpbmUtaGVpZ2h0OiAyNXB4O1wiLFwiZm9udC1zaXplOiAxMXB4O1wiLFwidGV4dC1hbGlnbjogY2VudGVyO1wiXSksbmV3IFplKFwiLmZvb3RlckNvbG9yXCIsW1wiY29sb3I6IzJiMmIyYjtcIl0pLG5ldyBaZShcIiNwcml2YWN5IGFcIixbXCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7XCIsXCJjb2xvcjojMmIyYjJiO1wiXSksbmV3IFplKFwiI2xvYWRpbmdcIixbXCJjb2xvcjogd2hpdGU7XCJdKSxuZXcgWmUoXCIjY29udGVudExheW91dFwiLFtcIm1hcmdpbjogYXV0bztcIl0pLG5ldyBaZShcIiNzcG9uc29yZWRfbGlzdGluZ3MsICNyZWxhdGVkX2xpbmtzXCIsW1wiYm9yZGVyLXJhZGl1czogNXB4O1wiLFwicGFkZGluZy10b3A6IDFweDtcIl0pLG5ldyBaZShcIi5oaWdobGlnaHRcIixbXCJjb2xvcjogI0ZENzQwMDtcIl0pLC4uLnd0XSl9ZnVuY3Rpb24gRXQoZSl7Y29uc3QgdD17YXR0cmlidXRpb25VcHBlcmNhc2U6ITAsYXR0cmlidXRpb25TcGFjaW5nQmVsb3c6XCI2XCIsYXR0cmlidXRpb25Cb2xkOiEwLHdlYkZvbnRGYW1pbHlBdHRyaWJ1dGlvbjpcIkdEIFNoZXJwYVwiLGZvbnRGYW1pbHlBdHRyaWJ1dGlvbjpcIkdEIFNoZXJwYSxhcmlhbFwiLGZvbnRTaXplQXR0cmlidXRpb246XCIxM1wiLGNvbG9yQXR0cmlidXRpb246XCIjMTExMTExXCIsd2ViRm9udEZhbWlseTpcIkdEIFNoZXJwYVwiLGZvbnRGYW1pbHk6XCJHRCBTaGVycGEsYXJpYWxcIix0aXRsZUJvbGQ6ITEsZm9udFNpemVUaXRsZTpcIjE4XCIsbGluZUhlaWdodFRpdGxlOlwiNTBcIixub1RpdGxlVW5kZXJsaW5lOiEwLGFkSWNvblVybDpcImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2RvbWFpbmFkcy9pbWFnZXMvY2hldnJvbi13aGl0ZS5wbmdcIixhZEljb25IZWlnaHQ6XCIxOFwiLGFkSWNvbldpZHRoOlwiMThcIixhZEljb25TcGFjaW5nQWJvdmU6XCIxMFwiLGFkSWNvblNwYWNpbmdBZnRlcjpcIjEwXCJ9O3JldHVybiBlJiYodC5saW5lSGVpZ2h0VGl0bGU9XCIzMFwiKSx0fWNvbnN0IFN0PVtuZXcgWmUoXCIjdmVyaXpvbi1mZWVkXCIsW1wid2lkdGg6IDEwMCU7XCIsXCJtYXgtd2lkdGg6IDgwMHB4O1wiLFwicGFkZGluZzogMXB4LFwiXSksbmV3IFplKFwiI3Zlcml6b24tZmVlZCBzcGFuXCIsW1wiY29sb3I6ICM5MjkyOTI7XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkIGFcIixbXCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7XCIsXCJjb2xvcjogICMxMTExMTE7XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkIC52ZXJpem9uLXJzIHVsXCIsW1wiYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XCJdKSxuZXcgWmUoXCIjdmVyaXpvbi1mZWVkIC52ZXJpem9uLWFkc1wiLFtcImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1wiLFwicGFkZGluZzogOHB4O1wiXSksbmV3IFplKFwiI3Zlcml6b24tZmVlZCAudmVyaXpvbi1hZHMgLmFkTGlua1wiLFtcInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1wiLFwiY29sb3I6ICMwMDAwRUU7XCJdKV0sQXQ9W25ldyBaZShcImJvZHlcIixbXCJtYXJnaW46IDA7XCIsXCJwYWRkaW5nOiAwO1wiXSksbmV3IFplKFwiI2NvbnRlbnRNYWluXCIsW1wiaGVpZ2h0OjEwMHZoO1wiXSksbmV3IFplKFwiI2NvbnRlbnRMYXlvdXRcIixbXCJjb2xvcjogIzExMTExMTtcIixcImZvbnQtZmFtaWx5OiBHRCBTaGVycGEsYXJpYWw7XCIsXCJtaW4taGVpZ2h0OiAxMDAlXCIsXCJkaXNwbGF5OiBncmlkO1wiLFwiZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1wiXSksbmV3IFplKFwiI2RvbWFpbkJhbm5lclwiLFtcImJhY2tncm91bmQtY29sb3I6ICNEOEVFRUY7XCJdKSxuZXcgWmUoXCIjZ2RMb2dvXCIsW1wicGFkZGluZy1sZWZ0OiAxMCU7XCIsXCJwYWRkaW5nLXRvcDogMjBweDtcIl0pLG5ldyBaZShcIiNkb21haW5cIixbXCJmb250LXNpemU6IDQ4cHg7XCIsXCJmb250LXdlaWdodDogNjAwO1wiLFwibGluZS1oZWlnaHQ6IDYwcHg7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIsXCJwYWRkaW5nLWJvdHRvbTogNXB4O1wiXSksbmV3IFplKFwiI2RvbWFpbkluZm9cIixbXCJmb250LXNpemU6IDIwcHg7XCIsXCJmb250LXdlaWdodDogNjAwO1wiLFwibGluZS1oZWlnaHQ6IDI4cHg7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIsXCJwYWRkaW5nLWJvdHRvbTogNXB4O1wiXSksbmV3IFplKFwiI2dldEJ1dHRvblwiLFtcInBhZGRpbmctdG9wOiAxMHB4O1wiLFwicGFkZGluZy1ib3R0b206IDIwcHg7XCJdKSxuZXcgWmUoXCIjZ2V0QnV0dG9uQm94XCIsW1wiYmFja2dyb3VuZC1jb2xvcjogIzExMTExMTtcIixcImNvbG9yOiB3aGl0ZTtcIixcImZvbnQtc2l6ZTogMTZweDtcIixcIndpZHRoOiAyNDhweDtcIixcIm1hcmdpbjogYXV0bztcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIl0pLG5ldyBaZShcIiNnZXRCdXR0b25Cb3hMaW5rXCIsW1wiZGlzcGxheTogYmxvY2s7XCIsXCJsaW5lLWhlaWdodDogNTBweDtcIixcInRleHQtZGVjb3JhdGlvbjogbm9uZTtcIixcImZvbnQtd2VpZ2h0OiBib2xkO1wiLFwiY29sb3I6IHdoaXRlXCJdKSxuZXcgWmUoXCIjcmVsYXRlZExpbmtzLCAjYWRzXCIsW1wiYm9yZGVyOiBzb2xpZCAjRDZENkQ2IDFweDtcIixcImJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XCJdKSxuZXcgWmUoXCIjcHJpdmFjeSBhXCIsW1wiY29sb3I6ICMxMTE7XCIsXCJ0ZXh0LWRlY29yYXRpb246IG5vbmU7XCJdKSxuZXcgWmUoXCIjcHJpdmFjeSBhOmhvdmVyXCIsW1wiY29sb3I6ICMxMTE7XCIsXCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcIl0pLG5ldyBaZShcIi5jZW50ZXJcIixbXCJ3aWR0aDogMTAwJTtcIixcImRpc3BsYXk6IGZsZXg7XCIsXCJqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcIixcImFsaWduLWl0ZW1zOiBjZW50ZXI7XCJdKSwuLi5TdF0sQ3Q9W25ldyBaZShcIiNhZFRpbGVcIixbXCJib3JkZXI6IDFweCBzb2xpZCAjRDZENkQ2O1wiLFwicGFkZGluZzogMTZweCAxNHB4O1wiLFwibWF4LXdpZHRoOiA1MTJweDtcIl0pLG5ldyBaZShcIiNhZFRpbGUgaDFcIixbXCJmb250LXNpemU6IDM2cHg7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIsXCJmb250LXdlaWdodDogNjAwO1wiXSksbmV3IFplKFwiI2FkVGlsZSBwXCIsW1wiZm9udC1zaXplOiAyMHB4O1wiLFwidGV4dC1hbGlnbjogY2VudGVyO1wiLFwiY29sb3I6ICM3Njc2NzY7XCJdKSxuZXcgWmUoXCIudmVydGljYWxUYWJsZVwiLFtcImRpc3BsYXk6IGZsZXg7XCIsXCJmbGV4LWRpcmVjdGlvbjogY29sdW1uO1wiXSksbmV3IFplKFwiLmFkVGlsZVJvd1wiLFtcImRpc3BsYXk6IGZsZXg7XCIsXCJmbGV4LWRpcmVjdGlvbjogcm93O1wiLFwiYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRDZENkQ2O1wiLFwiYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0Q2RDZENjtcIixcImJvcmRlci10b3A6IDFweCBzb2xpZCAjRDZENkQ2O1wiLFwicGFkZGluZzogMTJweDtcIixcImp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcIixcImFsaWduLWl0ZW1zOiBjZW50ZXI7XCIsXCJmb250LXNpemU6IDE4cHg7XCIsXCJjb2xvcjogIzc2NzY3NjtcIl0pLG5ldyBaZShcIi5hZFRpbGVSb3c6bGFzdC1vZi10eXBlXCIsW1wiYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNENkQ2RDY7XCJdKSxuZXcgWmUoXCIuYWRUaWxlRG9tYWluTGFiZWxcIixbXCJmbGV4LXNocmluazogMjtcIixcImRpc3BsYXk6IGZsZXg7XCIsXCJmbGV4LWRpcmVjdGlvbjogY29sdW1uO1wiLFwianVzdGlmeS1jb250ZW50OiBjZW50ZXI7XCIsXCJtYXJnaW4tcmlnaHQ6IDRweDtcIixcIm1pbi13aWR0aDogMHB4O1wiLFwibWF4LXdpZHRoOiA1MCU7XCIsXCJoZWlnaHQ6IDQwcHg7XCJdKSxuZXcgWmUoXCIuYWRUaWxlRG9tYWluXCIsW1wibWF4LXdpZHRoOiAxMDAlO1wiLFwib3ZlcmZsb3cteDogaGlkZGVuO1wiLFwidGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XCIsXCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiXSksbmV3IFplKFwiLmFkVGlsZVByb21vdGVkXCIsW1wiZm9udC1zaXplOiAxMnB4O1wiXSksbmV3IFplKFwiLmFkVGlsZVByaWNlc1wiLFtcImRpc3BsYXk6IGZsZXg7XCIsXCJmbGV4LWRpcmVjdGlvbjogcm93O1wiLFwiYWxpZ24taXRlbXM6IGJhc2VsaW5lO1wiXSksbmV3IFplKFwiLmNyb3NzZWRQcmljZVwiLFtcInRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1wiLFwiZm9udC1zaXplOiAxNHB4O1wiLFwibWFyZ2luLXJpZ2h0OiA4cHg7XCJdKSxuZXcgWmUoXCIuc2FsZVByaWNlXCIsW1wiY29sb3I6ICMwMEE0QTY7XCIsXCJmb250LXdlaWdodDogYm9sZDtcIixcImZvbnQtc2l6ZTogMTZweDtcIixcIm1hcmdpbi1yaWdodDogMTJweDtcIl0pXTtmdW5jdGlvbiBfdCgpe3JldHVybiAkZShBdC5jb25jYXQoQ3QpKX1mdW5jdGlvbiBEdCgpe3JldHVybigwLGJlLmpzeHMpKFwic3R5bGVcIix7Y2hpbGRyZW46W190KCksWWUoXCIjcmVsYXRlZExpbmtzLCAjYWRzXCIsW1wibWFyZ2luOiAwcHg7XCIsXCJ3aWR0aDogNzg4cHg7XCIsXCJtaW4td2lkdGg6IDBweDtcIixcIm1heC13aWR0aDogNzg4cHg7XCIsXCJib3JkZXI6IHNvbGlkICNENkQ2RDYgMXB4O1wiLFwicGFkZGluZzogMTZweCAzMnB4IDMycHg7XCJdKSxZZShcIi5hZFJvdyA+ICpcIixbXCJtYXJnaW46IDBweCAyMHB4IDBweCAyMHB4O1wiXSksWWUoXCIuYWRSb3dcIixbXCJ3aWR0aDogMTAwJTtcIixcImRpc3BsYXk6IGZsZXg7XCIsXCJmbGV4LWRpcmVjdGlvbjogcm93O1wiLFwianVzdGlmeS1jb250ZW50OiBjZW50ZXI7XCIsXCJhbGlnbi1pdGVtczogc3RhcnQ7XCJdKV19KX1mdW5jdGlvbiBSdCgpe3JldHVybigwLGJlLmpzeHMpKFwic3R5bGVcIix7Y2hpbGRyZW46W190KCksWWUoXCIjZ2RMb2dvXCIsW1wicGFkZGluZy1sZWZ0OiAwO1wiLFwicGFkZGluZy10b3A6IDE3cHg7XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCJdKSxZZShcIiNkb21haW5CYW5uZXJcIixbXCJwYWRkaW5nLWJvdHRvbTogMTBweDtcIl0pLFllKFwiI2RvbWFpblwiLFtcImZvbnQtc2l6ZTogMjRweDtcIixcImZvbnQtd2VpZ2h0OiA1MDA7XCIsXCJsaW5lLWhlaWdodDogMjhweDtcIixcIm1hcmdpbi10b3A6IDEycHg7XCJdKSxZZShcIiNkb21haW5JbmZvXCIsW1wicGFkZGluZy1sZWZ0OiA1cHg7XCIsXCJwYWRkaW5nLXJpZ2h0OiA1cHg7XCIsXCJtYXJnaW4tdG9wOiA3cHg7XCJdKSxZZShcIiNnZXRCdXR0b25cIixbXCJwYWRkaW5nLWJvdHRvbTogMTBweDtcIl0pLFllKFwiI2dldEJ1dHRvbkJveFwiLFtcIndpZHRoOiAzNDBweDtcIl0pLFllKFwiI2dldEJ1dHRvbkJveExpbmtcIixbXCJmb250LXdlaWdodDogbm9ybWFsO1wiXSksWWUoXCIjcmVsYXRlZExpbmtzLCAjYWRzXCIsW1wid2lkdGg6IDM2MHB4O1wiLFwiYm9yZGVyOiBzb2xpZCAjRDZENkQ2IDFweDtcIixcInBhZGRpbmc6IDA7XCJdKSxZZShcIi5hZFJvd1wiLFtcIndpZHRoOiAxMDAlO1wiLFwiZGlzcGxheTogZmxleDtcIixcImZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XCIsXCJqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1wiLFwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIl0pLFllKFwiI2FkVGlsZVwiLFtcIm1heC13aWR0aDogMTAwJVwiXSldfSl9ZnVuY3Rpb24gT3QoKXtyZXR1cm4gJGUoWy4uLkF0LG5ldyBaZShcIiNkb21haW5CYW5uZXJcIixbXCJiYWNrZ3JvdW5kLWNvbG9yOiAjMDI2OWEwO1wiXSksbmV3IFplKFwiI2NvbnRlbnRNYWluXCIsW1wiaGVpZ2h0OjEwMHZoO1wiXSksbmV3IFplKFwiI2NvbnRlbnRMYXlvdXRcIixbXCJjb2xvcjogIzExMTExMTtcIixcImZvbnQtZmFtaWx5OiBHRCBTaGVycGEsYXJpYWw7XCIsXCJtaW4taGVpZ2h0OiAxMDAlXCIsXCJkaXNwbGF5OiBncmlkO1wiLFwiZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1wiXSksbmV3IFplKFwiI2dldEJ1dHRvbkJveFwiLFtcImJhY2tncm91bmQtY29sb3I6ICM4ZGM2M2Y7XCIsXCJjb2xvcjogd2hpdGU7XCIsXCJmb250LXNpemU6IDE2cHg7XCIsXCJ3aWR0aDogMjQ4cHg7XCIsXCJtYXJnaW46IGF1dG87XCIsXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIsXCJib3JkZXItcmFkaXVzOiA0cHg7XCJdKSxuZXcgWmUoXCIjaGVhZGVyTG9nb1dyYXBwZXJcIixbXCJkaXNwbGF5OiBmbGV4O1wiLFwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIixcImNvbG9yOiAjZmZmZmZmO1wiLFwicGFkZGluZzogMzZweCAwcHggMHB4IDExOHB4O1wiLFwid2lkdGg6IDE2dnc7XCIsXCJoZWlnaHQ6IDEycHg7XCJdKSxuZXcgWmUoXCIjaGVhZGVyTG9nb051bWVyaWNTZWN0aW9uXCIsW1wiZGlzcGxheTogZmxleDtcIl0pLG5ldyBaZShcIiNoZWFkZXJMb2dvU2VjdGlvbk9uZVwiLFtcImJhY2tncm91bmQtY29sb3I6ICNlMTE0NGQ7XCIsXCJib3JkZXItcmFkaXVzOiA0cHg7XCIsXCJkaXNwbGF5OiBmbGV4O1wiLFwid2lkdGg6IDM1cHg7XCIsXCJoZWlnaHQ6IDM1cHg7XCIsXCJhbGlnbi1pdGVtczogY2VudGVyO1wiLFwianVzdGlmeS1jb250ZW50OiBjZW50ZXI7XCIsXCJtYXJnaW46IDAgMnB4IDAgMDtcIixcImZvbnQtd2VpZ2h0OiBib2xkO1wiLFwiZm9udC1zaXplOiAyNHB4O1wiXSksbmV3IFplKFwiI2hlYWRlckxvZ29TZWN0aW9uVHdvXCIsW1wiYmFja2dyb3VuZC1jb2xvcjogIzAwOTNkMTtcIixcImJvcmRlci1yYWRpdXM6IDRweDtcIixcImRpc3BsYXk6IGZsZXg7XCIsXCJ3aWR0aDogMzVweDtcIixcImhlaWdodDogMzVweDtcIixcImFsaWduLWl0ZW1zOiBjZW50ZXI7XCIsXCJqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcIixcIm1hcmdpbjogMCAycHggMCAwO1wiLFwiZm9udC13ZWlnaHQ6IGJvbGQ7XCIsXCJmb250LXNpemU6IDI0cHg7XCJdKSxuZXcgWmUoXCIjaGVhZGVyTG9nb1NlY3Rpb25UaHJlZVwiLFtcImJhY2tncm91bmQtY29sb3I6ICM3ZWI4Mjg7XCIsXCJib3JkZXItcmFkaXVzOiA0cHg7XCIsXCJkaXNwbGF5OiBmbGV4O1wiLFwid2lkdGg6IDM1cHg7XCIsXCJoZWlnaHQ6IDM1cHg7XCIsXCJhbGlnbi1pdGVtczogY2VudGVyO1wiLFwianVzdGlmeS1jb250ZW50OiBjZW50ZXI7XCIsXCJmb250LXdlaWdodDogYm9sZDtcIixcImZvbnQtc2l6ZTogMjRweDtcIl0pLG5ldyBaZShcIiNoZWFkZXJMb2dvU2VjdGlvbkxhYmVsXCIsW1wiZGlzcGxheTogZmxleDtcIixcInBhZGRpbmc6IDdweCAxNHB4O1wiLFwiZm9udC13ZWlnaHQ6IGJvbGQ7XCIsXCJmb250LXNpemU6IDMycHg7XCJdKSxuZXcgWmUoXCIjaGVhZGVyVGV4dFwiLFtcImRpc3BsYXk6IGZsZXg7XCIsXCJmbGV4LWRpcmVjdGlvbjogY29sdW1uO1wiLFwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIixcImNvbG9yOiAjZmZmZmZmO1wiXSksbmV3IFplKFwiI2hlYWRlclRleHRUaXRsZVwiLFtcImZvbnQtc2l6ZTogMzZweDtcIl0pLG5ldyBaZShcIiNoZWFkZXJUZXh0Q29udGVudFwiLFtcImZvbnQtc2l6ZTogMjBweDtcIixcImZvbnQtd2VpZ2g6IDMwMFwiXSksbmV3IFplKFwiI2Rpc2NsYWltZXJcIixbXCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIsXCJtYXJnaW4tYm90dG9tOiA1MHB4O1wiXSksbmV3IFplKFwiI2hlYWRlckZvb3RlclwiLFtcImNvbG9yOiAjZmZmZmZmO1wiLFwicGFkZGluZzogMzZweCAxMzZweDtcIixcInRleHQtYWxpZ246IGNlbnRlclwiXSldKX1mdW5jdGlvbiBQdCgpe3JldHVybigwLGJlLmpzeHMpKFwic3R5bGVcIix7Y2hpbGRyZW46W090KCksWWUoXCIjcmVsYXRlZExpbmtzLCAjYWRzXCIsW1wid2lkdGg6IDc4OHB4O1wiLFwibWluLXdpZHRoOiAwcHg7XCIsXCJtYXgtd2lkdGg6IDEyMzBweDtcIixcImJvcmRlcjogc29saWQgI0Q2RDZENiAxcHg7XCIsXCJwYWRkaW5nOiAxNnB4IDMycHggMzJweDtcIl0pXX0pfWZ1bmN0aW9uIEx0KCl7cmV0dXJuKDAsYmUuanN4cykoXCJzdHlsZVwiLHtjaGlsZHJlbjpbT3QoKSxZZShcIiNnZExvZ29cIixbXCJwYWRkaW5nLWxlZnQ6IDA7XCIsXCJwYWRkaW5nLXRvcDogMTdweDtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIl0pLFllKFwiI2RvbWFpbkJhbm5lclwiLFtcInBhZGRpbmctYm90dG9tOiAxMHB4O1wiXSksWWUoXCIjaGVhZGVyTG9nb1dyYXBwZXJcIixbXCJwYWRkaW5nOiAwIDAgMCA4cHg7XCIsXCJ3aWR0aDogMzJ2dztcIixcImhlaWdodDogNDhweDtcIl0pLFllKFwiI2hlYWRlclRleHRDb250ZW50XCIsW1wiZm9udC1zaXplOiAxNnB4O1wiLFwicGFkZGluZzogNHB4IDhweDtcIl0pLFllKFwiI2hlYWRlckZvb3RlclwiLFtcInBhZGRpbmc6IDhweCAyNHB4O1wiXSksWWUoXCIjZG9tYWluXCIsW1wiZm9udC1zaXplOiAyNHB4O1wiLFwiZm9udC13ZWlnaHQ6IDUwMDtcIixcImxpbmUtaGVpZ2h0OiAyOHB4O1wiLFwibWFyZ2luLXRvcDogMTJweDtcIl0pLFllKFwiI2RvbWFpbkluZm9cIixbXCJwYWRkaW5nLWxlZnQ6IDVweDtcIixcInBhZGRpbmctcmlnaHQ6IDVweDtcIixcIm1hcmdpbi10b3A6IDdweDtcIl0pLFllKFwiI2dldEJ1dHRvblwiLFtcInBhZGRpbmctYm90dG9tOiAxMHB4O1wiXSksWWUoXCIjZ2V0QnV0dG9uQm94TGlua1wiLFtcImZvbnQtd2VpZ2h0OiBub3JtYWw7XCJdKSxZZShcIiNyZWxhdGVkTGlua3MsICNhZHNcIixbXCJ3aWR0aDogMzYwcHg7XCIsXCJib3JkZXI6IHNvbGlkICNENkQ2RDYgMXB4O1wiLFwicGFkZGluZzogMDtcIl0pXX0pfWZ1bmN0aW9uIE50KGUpe2NvbnN0IHQ9ZS50ZW1wbGF0ZTtyZXR1cm4gdD09PWVlLnRlbXBsYXRlLlNJTVBMRV8yQ3x8ZWUudGVtcGxhdGUuQVJST1dfTElTVC5pbmNsdWRlcyh0KT93KCk/KDAsYmUuanN4KShkdCx7fSk6KDAsYmUuanN4KSh1dCx7dGVtcGxhdGU6dH0pOnQ9PT1lZS50ZW1wbGF0ZS5TSU1QTEVfMkNfRVhQRVJJTUVOVD93KCk/KDAsYmUuanN4KShwdCx7fSk6KDAsYmUuanN4KShjdCx7fSk6dD09PWVlLnRlbXBsYXRlLlNJTVBMRV8yQ19MSUdIVD93KCk/KDAsYmUuanN4KShodCx7fSk6KDAsYmUuanN4KShmdCx7fSk6dD09PWVlLnRlbXBsYXRlLkxJR0hUX0JMVUU/dygpPygwLGJlLmpzeCkodnQse30pOigwLGJlLmpzeCkoeXQse30pOnQ9PT1lZS50ZW1wbGF0ZS5WRVJUSUNBTF9MSU5FUz93KCk/KDAsYmUuanN4KSh4dCx7fSk6KDAsYmUuanN4KShUdCx7fSk6dD09PWVlLnRlbXBsYXRlLlBBUktfV0VCP3coKT8oMCxiZS5qc3gpKFJ0LHt9KTooMCxiZS5qc3gpKER0LHt9KTp0PT09ZWUudGVtcGxhdGUuUEFSS19XRUJfSEVHP3coKT8oMCxiZS5qc3gpKEx0LHt9KTooMCxiZS5qc3gpKFB0LHt9KTp2b2lkIDB9ZnVuY3Rpb24gSXQoZSl7Y29uc3QgdD1lLnRlbXBsYXRlLG49ZS50ZXN0TW9iaWxlO3JldHVybiB3KCl8fG4/bnVsbDp0PT09ZWUudGVtcGxhdGUuVkVSVElDQUxfTElORVM/KDAsYmUuanN4KShidCx7fSk6bnVsbH1mdW5jdGlvbiBqdChlKXtyZXR1cm4gTXQoZSxuZS5ibG9ja1R5cGUuU0VBUkNIX0JPWCl9ZnVuY3Rpb24gQnQoZSl7cmV0dXJuIE10KGUsbmUuYmxvY2tUeXBlLlJFTEFURURfU0VBUkNIKX1mdW5jdGlvbiBIdChlKXtyZXR1cm4gTXQoZSxuZS5ibG9ja1R5cGUuQURTKX1jb25zdCBGdD17c2VhcmNoYm94OntTSU1QTEVfMkM6e3JhZGl1c1NlYXJjaElucHV0Qm9yZGVyOlwiNXB4XCIsaGVpZ2h0U2VhcmNoSW5wdXQ6XCIyMnB4XCIsaGVpZ2h0U2VhcmNoQnV0dG9uOlwiMjJweFwiLGZvbnRTaXplU2VhcmNoSW5wdXQ6XCIxMnB4XCIsZm9udFNpemVTZWFyY2hCdXR0b246XCIxMnB4XCJ9LFNJTVBMRV8yQ19MSUdIVDp7cmFkaXVzU2VhcmNoSW5wdXRCb3JkZXI6XCI1cHhcIixoZWlnaHRTZWFyY2hJbnB1dDpcIjIycHhcIixoZWlnaHRTZWFyY2hCdXR0b246XCIyMnB4XCIsZm9udFNpemVTZWFyY2hJbnB1dDpcIjEycHhcIixmb250U2l6ZVNlYXJjaEJ1dHRvbjpcIjEycHhcIn0sTElHSFRfQkxVRTpmdW5jdGlvbihlKXtjb25zdCB0PXtyYWRpdXNTZWFyY2hJbnB1dEJvcmRlcjpcIjNcIixoZWlnaHRTZWFyY2hJbnB1dDpcIjMwXCIsaGVpZ2h0U2VhcmNoQnV0dG9uOlwiMzJcIixmb250U2l6ZVNlYXJjaElucHV0OlwiMTRcIixmb250U2l6ZVNlYXJjaEJ1dHRvbjpcIjE0XCIsaGlkZVNlYXJjaEJ1dHRvbkJvcmRlcjohMSxoaWRlU2VhcmNoSW5wdXRCb3JkZXI6ITAsY29sb3JTZWFyY2hCdXR0b246XCIjRThFQUVCXCIsY29sb3JTZWFyY2hCdXR0b25Cb3JkZXI6XCIjQUFCN0MyXCIsY29sb3JTZWFyY2hCdXR0b25UZXh0OlwiIzJiMmIyYlwiLHdpZHRoU2VhcmNoSW5wdXQ6XCIxODBcIix3aWR0aFNlYXJjaEJ1dHRvbjpcIjEwMFwiLHdpZHRoU2VhcmNoQnV0dG9uQm9yZGVyOlwiMVwifTtyZXR1cm4gZSYmKHQud2lkdGhTZWFyY2hJbnB1dD1cIjE4MFwiKSx0fSh3KCkpLFZFUlRJQ0FMX0xJTkVTOntyYWRpdXNTZWFyY2hJbnB1dEJvcmRlcjpcIjVweFwiLGhlaWdodFNlYXJjaElucHV0OlwiMjJweFwiLGhlaWdodFNlYXJjaEJ1dHRvbjpcIjIycHhcIixmb250U2l6ZVNlYXJjaElucHV0OlwiMTJweFwiLGZvbnRTaXplU2VhcmNoQnV0dG9uOlwiMTJweFwifSxQQVJLX1dFQjpudWxsLFBBUktfV0VCX0hFRzpudWxsfSxyZWxhdGVkc2VhcmNoOntTSU1QTEVfMkM6e3JvbGxvdmVyTGlua0NvbG9yOlwiIzU1OTVFOVwiLGNvbG9yQXR0cmlidXRpb246XCIjYjRiNGI0XCIsY29sb3JCYWNrZ3JvdW5kOlwidHJhbnNwYXJlbnRcIixhdHRyaWJ1dGlvblNwYWNpbmdCZWxvdzpcIjJcIixhdHRyaWJ1dGlvblVwcGVyY2FzZTohMSxhdHRyaWJ1dGlvbkJvbGQ6ITEsZm9udFNpemVBdHRyaWJ1dGlvbjpcIjExcHhcIixjb2xvclRpdGxlTGluazpcIiNlMDhkMjBcIix0aXRsZUJvbGQ6ITEsZm9udFNpemVUaXRsZTpcIjI0XCIsbGluZUhlaWdodFRpdGxlOlwiNDBcIixub1RpdGxlVW5kZXJsaW5lOiEwLGFkSWNvblVybDpcImh0dHBzOi8vYWZzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9kcC1uYW1lbWVkaWEvYnVsbGV0LWFycm93cy1vcmFuZ2UucG5nXCIsYWRJY29uSGVpZ2h0OlwiMThcIixhZEljb25XaWR0aDpcIjE4XCIsYWRJY29uU3BhY2luZ0Fib3ZlOlwiMTBcIixhZEljb25TcGFjaW5nQWZ0ZXI6XCIxMFwiLHZlcnRpY2FsU3BhY2luZzpcIjJcIixhZEJvcmRlclNlbGVjdGlvbnM6XCJib3R0b21cIixjb2xvckFkQm9yZGVyOlwiIzUyNTI1MlwifSxTSU1QTEVfMkNfTElHSFQ6e3JvbGxvdmVyTGlua0NvbG9yOlwiIzU1OTVFOVwiLGNvbG9yQXR0cmlidXRpb246XCIjYjRiNGI0XCIsY29sb3JCYWNrZ3JvdW5kOlwidHJhbnNwYXJlbnRcIixhdHRyaWJ1dGlvblNwYWNpbmdCZWxvdzpcIjJcIixhdHRyaWJ1dGlvblVwcGVyY2FzZTohMSxhdHRyaWJ1dGlvbkJvbGQ6ITEsZm9udFNpemVBdHRyaWJ1dGlvbjpcIjExcHhcIixjb2xvclRpdGxlTGluazpcIiNlMDhkMjBcIix0aXRsZUJvbGQ6ITEsZm9udFNpemVUaXRsZTpcIjI0XCIsbGluZUhlaWdodFRpdGxlOlwiNDBcIixub1RpdGxlVW5kZXJsaW5lOiEwLGFkSWNvblVybDpcImh0dHBzOi8vYWZzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9kcC1uYW1lbWVkaWEvYnVsbGV0LWFycm93cy1vcmFuZ2UucG5nXCIsYWRJY29uSGVpZ2h0OlwiMThcIixhZEljb25XaWR0aDpcIjE4XCIsYWRJY29uU3BhY2luZ0Fib3ZlOlwiMTBcIixhZEljb25TcGFjaW5nQWZ0ZXI6XCIxMFwiLHZlcnRpY2FsU3BhY2luZzpcIjJcIixhZEJvcmRlclNlbGVjdGlvbnM6XCJib3R0b21cIixjb2xvckFkQm9yZGVyOlwiIzUyNTI1MlwiLHJvbGxvdmVyTGlua0NvbG9yOlwiIzU1OTVFOVwiLGNvbG9yQXR0cmlidXRpb246XCIjMmIyYjJiXCIsY29sb3JUaXRsZUxpbms6XCIjZTA4ZDIwXCIsY29sb3JBZEJvcmRlcjpcIiM1MjUyNTJcIixjb2xvclRleHQ6XCIjNjY2NjY2XCJ9LExJR0hUX0JMVUU6ZnVuY3Rpb24oZSl7Y29uc3QgdD17d2ViRm9udEZhbWlseUF0dHJpYnV0aW9uOlwiSGVsdmV0aWNhXCIsZm9udEZhbWlseUF0dHJpYnV0aW9uOlwidmVyZGFuYVwiLGNvbG9yQXR0cmlidXRpb246XCIjMmIyYjJiXCIsZm9udFNpemVBdHRyaWJ1dGlvbjpcIjE3cHhcIixhdHRyaWJ1dGlvblNwYWNpbmdCZWxvdzoyMCxhdHRyaWJ1dGlvblVwcGVyY2FzZTohMSxhdHRyaWJ1dGlvbkJvbGQ6ITEsY29sb3JCYWNrZ3JvdW5kOlwidHJhbnNwYXJlbnRcIix3aWR0aDpcIjcwMHB4XCIsdGl0bGVCb2xkOiEwLHdlYkZvbnRGYW1pbHk6XCJIZWx2ZXRpY2FcIixmb250RmFtaWx5OlwidmVyZGFuYVwiLGZvbnRTaXplVGl0bGU6MjIsdmVydGljYWxTcGFjaW5nOjIzLGxpbmVIZWlnaHRUaXRsZTo1MCxub1RpdGxlVW5kZXJsaW5lOiEwLGNvbG9yVGl0bGVMaW5rOlwiIzJiMmIyYlwiLHJvbGxvdmVyTGlua1VuZGVybGluZTohMCxjb2x1bW5zOjF9O3JldHVybiBlJiYodC53aWR0aD1udWxsKSx0fSh3KCkpLFZFUlRJQ0FMX0xJTkVTOntjb2xvckJhY2tncm91bmQ6XCJ0cmFuc3BhcmVudFwiLGF0dHJpYnV0aW9uU3BhY2luZ0JlbG93OlwiMlwiLGF0dHJpYnV0aW9uVXBwZXJjYXNlOiExLGF0dHJpYnV0aW9uQm9sZDohMSxmb250U2l6ZUF0dHJpYnV0aW9uOlwiMTFweFwiLHRpdGxlQm9sZDohMSxmb250U2l6ZVRpdGxlOlwiMjRcIixsaW5lSGVpZ2h0VGl0bGU6XCI0MFwiLG5vVGl0bGVVbmRlcmxpbmU6ITAsYWRJY29uVXJsOlwiaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vZG9tYWluYWRzL2ltYWdlcy9jaGV2cm9uLXdoaXRlLnBuZ1wiLGFkSWNvbkhlaWdodDpcIjE4XCIsYWRJY29uV2lkdGg6XCIxOFwiLGFkSWNvblNwYWNpbmdBYm92ZTpcIjEwXCIsYWRJY29uU3BhY2luZ0FmdGVyOlwiMTBcIix2ZXJ0aWNhbFNwYWNpbmc6XCIyXCIsYWRCb3JkZXJTZWxlY3Rpb25zOlwiYm90dG9tXCIscm9sbG92ZXJMaW5rQ29sb3I6XCIjNTU5NUU5XCIsY29sb3JBdHRyaWJ1dGlvbjpcIiMyYjJiMmJcIixjb2xvclRpdGxlTGluazpcIiNlMDhkMjBcIixjb2xvckFkQm9yZGVyOlwiIzUyNTI1MlwiLGNvbG9yVGV4dDpcIiM2NjY2NjZcIn0sUEFSS19XRUI6RXQodygpKSxQQVJLX1dFQl9IRUc6KHcoKSxFdCgpKX0sYWRzOntTSU1QTEVfMkM6e2NvbG9yQmFja2dyb3VuZDpcInRyYW5zcGFyZW50XCIsY29sb3JUZXh0OlwiI2Y4ZjhmOFwiLHJvbGxvdmVyTGlua0NvbG9yOlwiIzU1OTVFOVwiLHJvbGxvdmVyTGlua1VuZGVybGluZTohMSxhZEljb25Vcmw6XCJodHRwczovL2Fmcy5nb29nbGV1c2VyY29udGVudC5jb20vZHAtbmFtZW1lZGlhL2J1bGxldC1hcnJvd3Mtb3JhbmdlLnBuZ1wiLGFkSWNvbkhlaWdodDpcIjIyXCIsYWRJY29uV2lkdGg6XCIyMlwiLGFkSWNvblNwYWNpbmdBYm92ZTpcIjEwXCIsYWRJY29uU3BhY2luZ0FmdGVyOlwiMTBcIix2ZXJ0aWNhbFNwYWNpbmc6XCIyNFwiLGNvbG9yQWRTZXBhcmF0b3I6XCIjNTI1MjUyXCIsbGlua1RhcmdldDpcIl9ibGFua1wiLGF0dHJpYnV0aW9uU3BhY2luZ0JlbG93OlwiMTBcIixhdHRyaWJ1dGlvblVwcGVyY2FzZTohMSxjb2xvckF0dHJpYnV0aW9uOlwiI2I0YjRiNFwiLGZvbnRTaXplQXR0cmlidXRpb246XCIxMFwiLGF0dHJpYnV0aW9uQm9sZDohMSxjb2xvclRpdGxlTGluazpcIiNlMDhkMjBcIixmb250U2l6ZVRpdGxlOlwiMjBcIixub1RpdGxlVW5kZXJsaW5lOiEwLGxpbmVIZWlnaHRUaXRsZTpcIjM1XCIsdGl0bGVCb2xkOiExLGZvbnRTaXplRGVzY3JpcHRpb246XCIxNlwiLGxpbmVIZWlnaHREZXNjcmlwdGlvbjpcIjI4XCIsY29sb3JEb21haW5MaW5rOlwiIzU1OTVFOVwiLGZvbnRTaXplRG9tYWluTGluazpcIjE2XCIsbGluZUhlaWdodERvbWFpbkxpbms6XCIyOFwifSxTSU1QTEVfMkNfTElHSFQ6e2NvbG9yQmFja2dyb3VuZDpcInRyYW5zcGFyZW50XCIsY29sb3JUZXh0OlwiI2Y4ZjhmOFwiLHJvbGxvdmVyTGlua0NvbG9yOlwiIzU1OTVFOVwiLHJvbGxvdmVyTGlua1VuZGVybGluZTohMSxhZEljb25Vcmw6XCJodHRwczovL2Fmcy5nb29nbGV1c2VyY29udGVudC5jb20vZHAtbmFtZW1lZGlhL2J1bGxldC1hcnJvd3Mtb3JhbmdlLnBuZ1wiLGFkSWNvbkhlaWdodDpcIjIyXCIsYWRJY29uV2lkdGg6XCIyMlwiLGFkSWNvblNwYWNpbmdBYm92ZTpcIjEwXCIsYWRJY29uU3BhY2luZ0FmdGVyOlwiMTBcIix2ZXJ0aWNhbFNwYWNpbmc6XCIyNFwiLGNvbG9yQWRTZXBhcmF0b3I6XCIjNTI1MjUyXCIsbGlua1RhcmdldDpcIl9ibGFua1wiLGF0dHJpYnV0aW9uU3BhY2luZ0JlbG93OlwiMTBcIixhdHRyaWJ1dGlvblVwcGVyY2FzZTohMSxjb2xvckF0dHJpYnV0aW9uOlwiI2I0YjRiNFwiLGZvbnRTaXplQXR0cmlidXRpb246XCIxMFwiLGF0dHJpYnV0aW9uQm9sZDohMSxjb2xvclRpdGxlTGluazpcIiNlMDhkMjBcIixmb250U2l6ZVRpdGxlOlwiMjBcIixub1RpdGxlVW5kZXJsaW5lOiEwLGxpbmVIZWlnaHRUaXRsZTpcIjM1XCIsdGl0bGVCb2xkOiExLGZvbnRTaXplRGVzY3JpcHRpb246XCIxNlwiLGxpbmVIZWlnaHREZXNjcmlwdGlvbjpcIjI4XCIsY29sb3JEb21haW5MaW5rOlwiIzU1OTVFOVwiLGZvbnRTaXplRG9tYWluTGluazpcIjE2XCIsbGluZUhlaWdodERvbWFpbkxpbms6XCIyOFwiLGNvbG9yVGV4dDpcIiNmOGY4ZjhcIixyb2xsb3ZlckxpbmtDb2xvcjpcIiM1NTk1RTlcIixjb2xvckFkU2VwYXJhdG9yOlwiIzUyNTI1MlwiLGNvbG9yQXR0cmlidXRpb246XCIjYjRiNGI0XCIsY29sb3JUaXRsZUxpbms6XCIjZTA4ZDIwXCIsY29sb3JEb21haW5MaW5rOlwiIzU1OTVFOVwifSxMSUdIVF9CTFVFOntsaW5rVGFyZ2V0OlwiX2JsYW5rXCJ9LFZFUlRJQ0FMX0xJTkVTOm51bGwsUEFSS19XRUI6bnVsbCxQQVJLX1dFQl9IRUc6bnVsbH0scGFnZWxldmVsOntTSU1QTEVfMkM6bnVsbCxTSU1QTEVfMkNfTElHSFQ6e3VpT3B0aW1pemU6ITAsc3R5bGVJZDpuZS5zdHlsZUlkLlNJTVBMRV8yQ19MSUdIVH0sTElHSFRfQkxVRTp7dWlPcHRpbWl6ZTohMSxzdHlsZUlkOm5lLnN0eWxlSWQuTElHSFRfQkxVRX0sVkVSVElDQUxfTElORVM6e3N0eWxlSWQ6bmUuc3R5bGVJZC5WRVJUSUNBTF9MSU5FU30sUEFSS19XRUI6e3VpT3B0aW1pemU6ITAsc3R5bGVJZDpuZS5zdHlsZUlkLlBBUktfV0VCfSxQQVJLX1dFQl9IRUc6e3VpT3B0aW1pemU6ITAsc3R5bGVJZDpuZS5zdHlsZUlkLlBBUktfV0VCX0hFR30sQVJST1dfMTpRZSgpLEFSUk9XXzI6UWUoKSxBUlJPV18zOlFlKCl9fTtmdW5jdGlvbiBNdChlLHQpe3RyeXtyZXR1cm4gRnRbdF1bZV19Y2F0Y2gobil7ci5aLmVycm9yKFwiTm8gY2FzZSBkZWZpbml0aW9uIGZvciBibG9jayB0eXBlIFwiK3QrXCIsIHRlbXBsYXRlIFwiK2UpfXJldHVybiBudWxsfWZ1bmN0aW9uIEd0KGUpe3JldHVybiBGdC5wYWdlbGV2ZWxbZS5sYW5kZXIudGVtcGxhdGVdfWZ1bmN0aW9uIFV0KGUsdCxuLGkpe2NvbnN0IGE9ZSxzPXQsbD1hLmxhbmRlci50ZW1wbGF0ZTtpfHwoaT0oKT0+e30pLGZ1bmN0aW9uKGUsdCl7WC5sYW5kZXJDb25maWc9ZSxYLnF1ZXJ5Q29uZmlnPXR9KGEscyk7Y29uc3QgdT17Li4ucmUoYSxpKSwuLi5HdChhKX07bGV0IGY7aWYoZj1uPT09ZWUucGFnZS5SRUxBVEVEX0xJTktTP3suLi5vZShhLHMpLC4uLkJ0KGwpfTp7Li4uaWUoYSxzKSwuLi5IdChsKX0sXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3cuZ29vZ2xlKWlmKHNbZC5TRUFSQ0hfQk9YXSl7ci5aLmRlYnVnKFwiR29vZ2xlIENBRiByZXF1ZXN0IHdpdGggc2VhcmNoYm94IG9uXCIpO2NvbnN0IGU9ey4uLmFlKDAscyksLi4uanQobCl9O3dpbmRvdy5nb29nbGUuYWRzLmRvbWFpbnMuQ2FmKHUsZixlKX1lbHNlIHIuWi5kZWJ1ZyhcIkdvb2dsZSBDQUYgcmVxdWVzdCB3aXRoIHNlYXJjaGJveCBvZmZcIiksd2luZG93Lmdvb2dsZS5hZHMuZG9tYWlucy5DYWYodSxmKTtlbHNle3IuWi5pbmZvKFwid2luZG93Lmdvb2dsZSBub3QgZm91bmRcIik7Y29uc3QgdD1XKGMuRVJST1IsZSk7dC5lcnJvckNvZGU9cC5FUlJPUl9BRFNFTlNFX05PX0NBRixxKG8uU2V0dGluZ3MuRVZFTlRfUFVCTElTSF9BUEksdCksaSghMSl9fWZ1bmN0aW9uIHp0KGUpe2xldCB0LHtsYW5kZXJDb25maWc6bixwYWdlOnIscXVlcnlDb25maWc6b309ZSxpPVwiYWRzXCI7cmV0dXJuIHI9PT1lZS5wYWdlLlJFTEFURURfTElOS1MmJihpPVwicmVsYXRlZExpbmtzXCIpLCFuLmxhbmRlci50ZW1wbGF0ZS5pbmNsdWRlcyhcIlBBUktfV0VCXCIpJiZvW2QuU0VBUkNIX0JPWF0mJih0PSgwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJzZWFyY2hib3hcIixjaGlsZHJlbjooMCxiZS5qc3gpKGRlLlose2lkOlwiY29udGVudEJsb2NrZWRUZXh0XCJ9KX0pKSwoMCxiZS5qc3hzKShiZS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGJlLmpzeCkoXCJkaXZcIix7aWQ6aSxjaGlsZHJlbjooMCxiZS5qc3gpKGRlLlose2lkOlwiY29udGVudEJsb2NrZWRUZXh0XCJ9KX0pLHRdfSl9ZnVuY3Rpb24gVnQodCl7bGV0e2xhbmRlckNvbmZpZzpuLHF1ZXJ5Q29uZmlnOm8scGFnZTppfT10O2NvbnN0e2lzQWRzZW5zZVN1Y2Nlc3M6YSxzZXRJc0Fkc2Vuc2VTdWNjZXNzOnN9PU5lKCk7KDAsZS51c2VFZmZlY3QpKCgoKT0+e1V0KG4sbyxpLHMpfSksW24saSxvLHNdKTtjb25zdCBsPW4uaXNGb3JjZWRWZXJpem9ufHwhYTtpZihsKXtpZihuLnN5c3RlbSE9PWguUEFSS1dFQilyZXR1cm4oMCxiZS5qc3gpKEtlLHt9KTt0cnl7dmFyIHUsZDtLKG4sYy5TRVJQX1JFRElSRUNUKSx3aW5kb3cubG9jYXRpb24uYXNzaWduKG51bGw9PT0odT1uLmxhbmRlcil8fHZvaWQgMD09PXV8fG51bGw9PT0oZD11LmJhbm5lcil8fHZvaWQgMD09PWQ/dm9pZCAwOmQubGluayl9Y2F0Y2gocCl7ci5aLmVycm9yKFwiTWlzc2luZyB2YWxpZCByZWRpcmVjdCB0byBTRVJQIGZyb21cIituLmRvbWFpbi5yb290RG9tYWluK3RvU3RyaW5nKHApKX19ZWxzZSBpZighbClyZXR1cm4oMCxiZS5qc3gpKHp0LHtsYW5kZXJDb25maWc6bixxdWVyeUNvbmZpZzpvLHBhZ2U6aX0pO3JldHVybigwLGJlLmpzeCkoZGUuWix7aWQ6XCJjb250ZW50QmxvY2tlZFRleHRcIn0pfXZhciBXdD1uKDYyOTMpO2NvbnN0IHF0PXtmb250U2l6ZTpcIjM2cHhcIn07dmFyIEt0PW4oMzUzOSk7Y29uc3QgWnQ9XCJEb21haW5EaXNwbGF5X2RvbWFpbkRpc3BsYXlMYXlvdXRfXytHcGtIXCIsWXQ9XCJEb21haW5EaXNwbGF5X2ludGxNZXNzYWdlX19MUEZacVwiLCR0PVwiRG9tYWluRGlzcGxheV9pbnRlcm5hdGlvbmFsaXplZExpbmtfX1VBbGtuXCI7dmFyIFh0PW4oMTQxOCksUXQ9bi5uKFh0KTtjb25zdCBKdD10PT57bGV0e2RvbWFpbk5hbWU6bixjbGFzc05hbWU6cn09dDtjb25zdCBpPSgwLEt0LlopKCksYT0oMCxlLnVzZVJlZikobnVsbCkscz1mdW5jdGlvbih0LG4scil7Y29uc3RbbyxpXT0oMCxlLnVzZVN0YXRlKSgwKTtyZXR1cm4oMCxlLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT0oKT0+e2kobi5jdXJyZW50Lm9mZnNldFdpZHRoL3QubGVuZ3RoKjkpfTtyZXR1cm4gbnVsbCE9PW4mJnZvaWQgMCE9PW4mJm4uY3VycmVudCYmZSgpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZSksKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZSl9KSxbbix0Lmxlbmd0aF0pLHQubGVuZ3RoPnImJm8+MD97Zm9udFNpemU6XCJtaW4oXCIuY29uY2F0KG8sXCIlLCAzNnB4KVwiKX06cXR9KG4sYSxvLlNldHRpbmdzLk5PUk1BTF9ET01BSU5fTEVOR1RIX0xJTUlUKTtyZXR1cm4oMCxiZS5qc3hzKShcImRpdlwiLHtyZWY6YSxjbGFzc05hbWU6UXQoKShadCxyKSxjaGlsZHJlbjpbKDAsYmUuanN4KShcImRpdlwiLHtzdHlsZTpzLGNoaWxkcmVuOld0LlpQLnRvVW5pY29kZShuKX0pLChsPW4sL154bi0tLy50ZXN0KGwpJiYoMCxiZS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6WXQsY2hpbGRyZW46aS5mb3JtYXRNZXNzYWdlKHtpZDpcInRoaXNEb21haW5Jc1B1bnlDb2RlXCJ9LHtkb21haW46bixsaW5rOmU9PigwLGJlLmpzeCkoXCJhXCIse2hyZWY6XCJodHRwczovL3d3dy5pY2Fubi5vcmcvcmVzb3VyY2VzL3BhZ2VzL2lkbi0yMDEyLTAyLTI1LWVuXCIsdGFyZ2V0OlwiX2JsYW5rXCIsY2xhc3NOYW1lOiR0LHJlbDpcIm5vcmVmZXJyZXJcIixjaGlsZHJlbjplfSl9KX0pKV19KTt2YXIgbH0sZW49ZT0+e2xldHtsYW5kZXJDb25maWc6dCxxdWVyeUNvbmZpZzpufT1lO2lmKG5bZC5TSE9XX0RPTUFJTl18fHQuc3lzdGVtIT09aC5QQVJLV0VCKXtjb25zdCBlPXQubGFuZGVyLmRvbWFpbkRpc3BsYXlOYW1lfHx0LmRvbWFpbi5yb290RG9tYWluO3JldHVybigwLGJlLmpzeHMpKFwic3BhblwiLHtpZDpcImNvcHlyaWdodFwiLGNoaWxkcmVuOltcIkNvcHlyaWdodCBcXHhhOSBcIixlLFwiLiBcXHhhMEFsbCByaWdodHMgcmVzZXJ2ZWQuXCJdfSl9cmV0dXJuKDAsYmUuanN4KShcInNwYW5cIix7aWQ6XCJjb3B5cmlnaHRcIixjaGlsZHJlbjpcIkNvcHlyaWdodCBcXHhhOSBcXHhhMEFsbCByaWdodHMgcmVzZXJ2ZWQuXCJ9KX0sdG49ZT0+e2xldHtsYW5kZXJDb25maWc6dH09ZTtjb25zdCBuPSh0LnR1cm5LZXlSZXNlbGxlcnx8e30pLnByaXZhY3lVcmx8fG8uU2V0dGluZ3MuUFJJVkFDWV9QT0xJQ1lfVVJMO3JldHVybigwLGJlLmpzeCkoXCJzcGFuXCIse2lkOlwicHJpdmFjeVwiLGNoaWxkcmVuOigwLGJlLmpzeCkoXCJhXCIse2hyZWY6XCIjIVwiLHJlbDpcIm5vZm9sbG93XCIsb25DbGljazpmdW5jdGlvbigpe3dpbmRvdy5vcGVuKG4sXCJwcml2YWN5XCIsXCJ3aWR0aD01MjAsaGVpZ2h0PTQwMCxsZWZ0PTI1MCx0b3A9MjUwLG1lbnViYXI9bm8sc3RhdHVzPXllcyx0b29sYmFyPW5vLHNjcm9sbGJhcnM9eWVzLHJlc2l6YWJsZT15ZXNcIil9LGNoaWxkcmVuOigwLGJlLmpzeCkoZGUuWix7aWQ6XCJwcml2YWN5UG9saWN5VGV4dFwifSl9KX0pfSxubj1cImZvb3Rlcl9zcGFjZUJldHdlZW5fXzF5dGdjXCIscm49XCJmb290ZXJfY2VudGVyVGV4dF9fYkdldDFcIixvbj1cImZvb3Rlcl9wYXJrd2ViRm9vdGVyX19GRW4zOVwiLGFuPVwiZm9vdGVyX3Bhcmt3ZWJEaXNjbGFpbWVyVGV4dF9fUEVXaW1cIixzbj1lPT57bGV0IHQse2xhbmRlckNvbmZpZzpuLHF1ZXJ5Q29uZmlnOm99PWU7aWYobi5sYW5kZXIuZm9vdGVySHRtbCl7bGV0IGU9XCJcIjt0cnl7ZT13aW5kb3cuYXRvYihuLmxhbmRlci5mb290ZXJIdG1sKX1jYXRjaChpKXtyLlouZXJyb3IoXCJmb290ZXJIdG1sIHZhbHVlIGlzIG5vdCBwcm9wZXJseSBlbmNvZGVkXCIraSl9dD0oMCxiZS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImZvb3RlckxpbmUgZm9vdGVyQ29sb3JcIixjaGlsZHJlbjooMCxiZS5qc3gpKFwiZGl2XCIse2lkOlwiZm9vdGVyRWxlbWVudFwiLGNoaWxkcmVuOnVlKCkoZSl9KX0pfWVsc2Ugbi5sYW5kZXIuZm9vdGVyVGV4dCYmKHQ9KDAsYmUuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJmb290ZXJMaW5lIGZvb3RlckNvbG9yXCIsY2hpbGRyZW46KDAsYmUuanN4KShcImRpdlwiLHtpZDpcImZvb3RlckVsZW1lbnRcIixjaGlsZHJlbjpuLmxhbmRlci5mb290ZXJUZXh0fSl9KSk7cmV0dXJuKDAsYmUuanN4cykoXCJkaXZcIix7aWQ6XCJmb290ZXJcIixjaGlsZHJlbjpbdCwoMCxiZS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJmb290ZXJMaW5lIGZvb3RlckNvbG9yIFwiLmNvbmNhdChubiksY2hpbGRyZW46WygwLGJlLmpzeCkoZW4se2xhbmRlckNvbmZpZzpuLHF1ZXJ5Q29uZmlnOm99KSwoMCxiZS5qc3gpKHRuLHtsYW5kZXJDb25maWc6bn0pLCgwLGJlLmpzeCkoRGUse30pXX0pXX0pfSxsbj1cIjAuNzVcIixjbj1cIiM4MkI5QURcIix1bj1cIiM0Mzg3QTBcIixkbj1cIiM0RjcxNzBcIixwbj1cIiMyNzQ1NTRcIixmbj0oKT0+KDAsYmUuanN4cykoXCJnXCIse29wYWNpdHk6bG4sY2hpbGRyZW46WygwLGJlLmpzeCkoXCJwYXRoXCIse2Q6XCJNMC45NjMzNzkgNzhMMTM0Ljk2MyAxMjhWNTBMMC45NjMzNzkgMFY3OFpcIixmaWxsOmNufSksKDAsYmUuanN4KShcInBhdGhcIix7ZDpcIk0wLjk2MzM3OSAxNzhMMTM0Ljk2MyAyMjhWMTUwTDAuOTYzMzc5IDEwMFYxNzhaXCIsZmlsbDp1bn0pLCgwLGJlLmpzeCkoXCJwYXRoXCIse2Q6XCJNMC45NjM4NjcgMjc2TDEzNC45NjQgMzI2VjI0OEwwLjk2Mzg2NyAxOThWMjc2WlwiLGZpbGw6ZG59KSwoMCxiZS5qc3gpKFwicGF0aFwiLHtkOlwiTTAuOTYzMzc5IDM3NUwxMzQuOTYzIDQyNVYzNDdMMC45NjMzNzkgMjk3VjM3NVpcIixmaWxsOnBufSldfSksaG49KCk9PigwLGJlLmpzeHMpKFwiZ1wiLHtvcGFjaXR5OmxuLGNoaWxkcmVuOlsoMCxiZS5qc3gpKFwicGF0aFwiLHtkOlwiTTAuOTYzMzc5IDEwMEwxMzQuOTYzIDUwVjEyOEwwLjk2MzM3OSAxNzhWMTAwWlwiLGZpbGw6Y259KSwoMCxiZS5qc3gpKFwicGF0aFwiLHtkOlwiTTAuOTYzMzc5IDIwMEwxMzQuOTYzIDE1MFYyMjhMMC45NjMzNzkgMjc4VjIwMFpcIixmaWxsOnVufSksKDAsYmUuanN4KShcInBhdGhcIix7ZDpcIk0wLjk2Mzg2NyAyOThMMTM0Ljk2NCAyNDhWMzI2TDAuOTYzODY3IDM3NlYyOThaXCIsZmlsbDpkbn0pLCgwLGJlLmpzeCkoXCJwYXRoXCIse2Q6XCJNMC45NjM4NjcgMzk3TDEzNC45NjQgMzQ3VjQyNUwwLjk2Mzg2NyA0NzVWMzk3WlwiLGZpbGw6cG59KV19KSxtbj1lPT57bGV0e3BvaW50TGVmdDp0LHRlbXBsYXRlOm59PWU7Y29uc3R7c2hvd1VwcGVyQW5nbGVkUmVjdDpyLHNob3dMb3dlckFuZ2xlZFJlY3Q6b309KGU9Pih7c2hvd1VwcGVyQW5nbGVkUmVjdDplIT09ZWUudGVtcGxhdGUuQVJST1dfMixzaG93TG93ZXJBbmdsZWRSZWN0OmUhPT1lZS50ZW1wbGF0ZS5BUlJPV18zfSkpKG4pLGk9XCI1NTBweFwiO3JldHVybigwLGJlLmpzeCkoXCJkaXZcIix7c3R5bGU6e3Bvc2l0aW9uOlwicmVsYXRpdmVcIn0sY2hpbGRyZW46KDAsYmUuanN4KShcImRpdlwiLHtzdHlsZTp7ekluZGV4Oi0xLGRpc3BsYXk6XCJmbGV4XCIsanVzdGlmeUNvbnRlbnQ6dD9cImZsZXgtc3RhcnRcIjpcImZsZXgtZW5kXCIscG9zaXRpb246XCJhYnNvbHV0ZVwiLHRvcDpcIi0xLjVyZW1cIixsZWZ0OnQ/XCJjYWxjKDEwMCUgKiAtMSlcIjpcIlwiLHJpZ2h0OnQ/XCJcIjpcImNhbGMoMTAwJSAqIC0xKVwifSxjaGlsZHJlbjooMCxiZS5qc3gpKFwic3ZnXCIse3ZpZXdCb3g6XCIwIDAgNDMxIDQ3NVwiLGZpbGw6XCJub25lXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsc3R5bGU6e3RyYW5zZm9ybTp0P1wic2NhbGVYKC0xKVwiOlwiXCIsbWF4SGVpZ2h0OlwiNjAwcHhcIixtaW5IZWlnaHQ6XCI2MDBweFwiLG1heFdpZHRoOmksbWluV2lkdGg6aX0sY2hpbGRyZW46KDAsYmUuanN4cykoXCJnXCIse29wYWNpdHk6XCIwLjI5XCIsY2hpbGRyZW46W3ImJigwLGJlLmpzeCkoZm4se30pLG8mJigwLGJlLmpzeCkoaG4se30pLCgwLGJlLmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiMjU4XCIsaGVpZ2h0OlwiNzhcIix0cmFuc2Zvcm06XCJtYXRyaXgoLTEgMCAwIDEgMzkyLjMgNTApXCIsZmlsbDpjbn0pLCgwLGJlLmpzeCkoXCJwYXRoXCIse2Q6XCJNNDMwLjk1NSA4OS4wMDgyTDM5MS45NjMgNTBMMzkxLjk2MyAxMjhMNDMwLjk1NSA4OS4wMDgyWlwiLGZpbGw6Y259KSwoMCxiZS5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjIzMy4xOTVcIixoZWlnaHQ6XCI3OFwiLHRyYW5zZm9ybTpcIm1hdHJpeCgtMSAwIDAgMSAzNjguMTk1IDE1MClcIixmaWxsOnVufSksKDAsYmUuanN4KShcInBhdGhcIix7ZDpcIk00MDcuMDAxIDE4OUwzNjguMDMyIDE1MEwzNjguMDMxIDIyOEw0MDcuMDAxIDE4OVpcIixmaWxsOnVufSksKDAsYmUuanN4KShcInJlY3RcIix7d2lkdGg6XCIyMDNcIixoZWlnaHQ6XCI3OFwiLHRyYW5zZm9ybTpcIm1hdHJpeCgtMSAwIDAgMSAzMzcuOSAyNDgpXCIsZmlsbDpkbn0pLCgwLGJlLmpzeCkoXCJwYXRoXCIse2Q6XCJNMzc2LjAzOCAyODUuMDIxTDMzNi45NjMgMjQ4TDMzNi45NjMgMzI2TDM3Ni4wMzggMjg1LjAyMVpcIixmaWxsOmRufSksKDAsYmUuanN4KShcInJlY3RcIix7d2lkdGg6XCIxNzZcIixoZWlnaHQ6XCI3OFwiLHRyYW5zZm9ybTpcIm1hdHJpeCgtMSAwIDAgMSAzMTAuMSAzNDcpXCIsZmlsbDpwbn0pLCgwLGJlLmpzeCkoXCJwYXRoXCIse2Q6XCJNMzQ5IDM4NkwzMDkuOTYzIDM0N0wzMDkuOTYzIDQyNUwzNDkgMzg2WlwiLGZpbGw6cG59KV19KX0pfSl9KX0sZ249ZT0+e2xldHtjaGlsZHJlbjp0LHRlbXBsYXRlOm59PWU7cmV0dXJuIGVlLnRlbXBsYXRlLkFSUk9XX0xJU1QuaW5jbHVkZXMobik/KDAsYmUuanN4cykoXCJkaXZcIix7c3R5bGU6e2Rpc3BsYXk6XCJmbGV4XCIsZmxleERpcmVjdGlvbjpcInJvd1wiLGFsaWduSXRlbXM6XCJzdHJldGNoXCIsanVzdGlmeUNvbnRlbnQ6XCJjZW50ZXJcIixtYXhXaWR0aDpcIjEwMCVcIn0sY2hpbGRyZW46WygwLGJlLmpzeCkobW4se3RlbXBsYXRlOm59KSwoMCxiZS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOnR9KSwoMCxiZS5qc3gpKG1uLHtwb2ludExlZnQ6ITAsdGVtcGxhdGU6bn0pXX0pOnR9LHluPVwic2ltcGxlMkNfZG9tYWluRGlzcGxheV9fQVh6c0lcIix2bj1lPT57bGV0e2xhbmRlckNvbmZpZzp0LHF1ZXJ5Q29uZmlnOm4scGFnZTpvLGNvbnRlbnQ6aX09ZTtjb25zdCBhPU9lKCk7bGV0IHM7Y29uc3QgbD10LmxhbmRlci5kb21haW5EaXNwbGF5TmFtZXx8dC5kb21haW4ucm9vdERvbWFpbjtsZXQgYztpZigoXCJib29sZWFuXCI9PT10eXBlb2YgbltkLlNIT1dfRE9NQUlOXT9uW2QuU0hPV19ET01BSU5dOnQubGFuZGVyLnNob3dEb21haW4pJiYocz0oMCxiZS5qc3gpKEp0LHtkb21haW5OYW1lOmwsY2xhc3NOYW1lOnlufSkpLHQubGFuZGVyLmhlYWRlckh0bWwpe2xldCBlPVwiXCI7dHJ5e2U9d2luZG93LmF0b2IodC5sYW5kZXIuaGVhZGVySHRtbCl9Y2F0Y2godSl7ci5aLmVycm9yKFwiaGVhZGVySHRtbCB2YWx1ZSBpcyBub3QgcHJvcGVybHkgZW5jb2RlZFwiK3RvU3RyaW5nKHUpKX1jPSgwLGJlLmpzeCkoYm4se2hlYWRlckh0bWw6ZX0pfWVsc2UgdC5sYW5kZXIuaGVhZGVyVGV4dCYmKGM9KDAsYmUuanN4KShUbix7aGVhZGVyVGV4dDp0LmxhbmRlci5oZWFkZXJUZXh0fSkpO3JldHVybigwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJzaW1wbGVMYXlvdXRcIixjaGlsZHJlbjooMCxiZS5qc3hzKShcImRpdlwiLHtpZDpcImNvbnRlbnRMYXlvdXRcIixjaGlsZHJlbjpbKDAsYmUuanN4KShJdCx7dGVtcGxhdGU6dC5sYW5kZXIudGVtcGxhdGV9KSwoMCxiZS5qc3hzKShcImRpdlwiLHtjaGlsZHJlbjpbKDAsYmUuanN4KShTZSx7bGFuZGVyQ29uZmlnOnQscXVlcnlDb25maWc6bixjb250ZW50Oml9KSwoMCxiZS5qc3gpKE50LHt0ZW1wbGF0ZTp0LmxhbmRlci50ZW1wbGF0ZX0pLGMsc119KSwoMCxiZS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOigoKT0+e2lmKGEuc2hvd0NvbnNlbnREaWFsb2cpcmV0dXJuKDAsYmUuanN4KShSZSx7fSk7bGV0IGU9XCJyZWxhdGVkX2xpbmtzXCI7bz09PWVlLnBhZ2UuU1BPTlNPUkVEX0xJU1RJTkdTJiYoZT1cInNwb25zb3JlZF9saXN0aW5nc1wiKTtjb25zdCByPSgwLGJlLmpzeCkoXCJkaXZcIix7aWQ6ZSxjaGlsZHJlbjooMCxiZS5qc3gpKFZ0LHtsYW5kZXJDb25maWc6dCxxdWVyeUNvbmZpZzpuLHBhZ2U6b30pfSk7cmV0dXJuIHcoKT9yOigwLGJlLmpzeCkoZ24se3RlbXBsYXRlOnQubGFuZGVyLnRlbXBsYXRlLGNoaWxkcmVuOnJ9KX0pKCl9KSwoMCxiZS5qc3gpKHNuLHtsYW5kZXJDb25maWc6dCxxdWVyeUNvbmZpZzpufSldfSl9KX07ZnVuY3Rpb24gYm4oZSl7bGV0e2hlYWRlckh0bWw6dH09ZTtyZXR1cm4oMCxiZS5qc3gpKFwiZGl2XCIse2lkOlwiaGVhZGVyRWxlbWVudFwiLGNoaWxkcmVuOnVlKCkodCl9KX1mdW5jdGlvbiBUbihlKXtsZXR7aGVhZGVyVGV4dDp0fT1lO3JldHVybigwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJoZWFkZXJFbGVtZW50XCIsY2hpbGRyZW46dH0pfWZ1bmN0aW9uIHhuKGUpe2xldHtsYW5kZXJDb25maWc6dCxxdWVyeUNvbmZpZzpufT1lO2NvbnN0IHI9KDAsYmUuanN4KShTZSx7bGFuZGVyQ29uZmlnOnQscXVlcnlDb25maWc6bn0pLG89KDAsYmUuanN4cykoXCJzdHlsZVwiLHtjaGlsZHJlbjpbWWUoXCJib2R5XCIsW1wibWFyZ2luOiAwO1wiLFwicGFkZGluZzogMDtcIixcImJhY2tncm91bmQtY29sb3I6ICMzMzM7XCIsXCJmb250LWZhbWlseTogJ0FyaWFsJztcIl0pLFllKFwiI3RkZnNCYW5uZXJcIixbXCJiYWNrZ3JvdW5kOiMwMGZmMDA7XCIsXCJmb250LXNpemU6IDE1cHg7XCIsXCJwYWRkaW5nOiAuNWVtO1wiLFwiLXdlYmtpdC10cmFuc2l0aW9uOiBwYWRkaW5nIDQwMG1zO1wiLFwidHJhbnNpdGlvbjogcGFkZGluZyA0MDBtcztcIl0pLFllKFwiI3RkZnNCYW5uZXI6aG92ZXJcIixbXCJwYWRkaW5nOiAuN2VtIC41ZW07XCJdKSxZZShcIiN0ZGZzTGlua1wiLFtcIm1hcmdpbjowIGF1dG87XCIsXCJtYXgtd2lkdGg6IDk2MHB4O1wiLFwid2lkdGg6IDk1JTtcIixcInRleHQtYWxpZ246IGNlbnRlcjtcIl0pLFllKFwiI3RkZnNMaW5rIGFcIixbXCJjb2xvcjogIzAwMDtcIixcImRpc3BsYXk6IGJsb2NrO1wiLFwiZm9udC1zaXplOiAxZW07XCIsXCJmb250LXdlaWdodDogMzAwO1wiLFwidGV4dC1kZWNvcmF0aW9uOiBub25lO1wiLFwidGV4dC1zaGFkb3c6MCAxcHggcmdiYSgwLDAsMCwuNSk7XCJdKV19KTtyZXR1cm4oMCxiZS5qc3hzKShcImRpdlwiLHtpZDpcIm5vYWRzXCIsY2hpbGRyZW46W28scl19KX1mdW5jdGlvbiB3bihlKXt2YXIgdCxuLHIsbztsZXR7bGFuZGVyQ29uZmlnOml9PWU7Y29uc3QgYT1udWxsPT09KHQ9aS5sYW5kZXIpfHx2b2lkIDA9PT10fHxudWxsPT09KG49dC5iYW5uZXIpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmxpbms7aWYoIWEpcmV0dXJuIG51bGw7Y29uc3Qgcz1udWxsPT09aXx8dm9pZCAwPT09aXx8bnVsbD09PShyPWkubGFuZGVyKXx8dm9pZCAwPT09cnx8bnVsbD09PShvPXIuYmFubmVyKXx8dm9pZCAwPT09bz92b2lkIDA6by50eXBlO3JldHVybigwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJnZXRCdXR0b25cIixjaGlsZHJlbjooMCxiZS5qc3gpKFwiZGl2XCIse2lkOlwiZ2V0QnV0dG9uQm94XCIsY2hpbGRyZW46KDAsYmUuanN4KShcImFcIix7aWQ6XCJnZXRCdXR0b25Cb3hMaW5rXCIsaHJlZjphLG9uQ2xpY2s6KCk9PkFlKHMsaSksY2hpbGRyZW46KDAsYmUuanN4KShkZS5aLHtpZDpcIkdldFRoaXNEb21haW5DVEFcIn0pfSl9KX0pfWZ1bmN0aW9uIGtuKCl7cmV0dXJuIGtuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sa24uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEVuKHQsbil7bGV0e3RpdGxlOnIsdGl0bGVJZDpvLC4uLml9PXQ7cmV0dXJuIGUuY3JlYXRlRWxlbWVudChcInN2Z1wiLGtuKHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6MTYyLGhlaWdodDozNCx2aWV3Qm94OlwiMCAwIDE2MiAzNFwiLHJlZjpuLFwiYXJpYS1sYWJlbGxlZGJ5XCI6b30saSksdm9pZCAwPT09cj9lLmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLHtpZDpvfSxcIkxvZ28tMTIzUmVnLUNvbnRyYXN0XCIpOnI/ZS5jcmVhdGVFbGVtZW50KFwidGl0bGVcIix7aWQ6b30scik6bnVsbCxlLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMzcuNjUsMzRoMzAuMWExLjkxLDEuOTEsMCwwLDAsMi0xLjg2VjEuODZhMS45MSwxLjkxLDAsMCwwLTItMS44NkgzNy42NUExLjkxLDEuOTEsMCwwLDAsMzUuNywxLjg2VjMyLjE0QTEuOTEsMS45MSwwLDAsMCwzNy42NSwzNFwiLHN0eWxlOntmaWxsOlwiIzE5OTBkMFwiLGZpbGxSdWxlOlwiZXZlbm9kZFwifX0pLGUuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk03My4zNSwzNGgzMC4xYTEuOTEsMS45MSwwLDAsMCwyLTEuODZWMS44NmExLjkxLDEuOTEsMCwwLDAtMi0xLjg2SDczLjM1QTEuOTEsMS45MSwwLDAsMCw3MS40LDEuODZWMzIuMTRBMS45MSwxLjkxLDAsMCwwLDczLjM1LDM0XCIsc3R5bGU6e2ZpbGw6XCIjN2ViODI4XCIsZmlsbFJ1bGU6XCJldmVub2RkXCJ9fSksZS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTIsMzRoMzAuMWExLjkxLDEuOTEsMCwwLDAsMi0xLjg2VjEuODZhMS45MSwxLjkxLDAsMCwwLTItMS44NkgyQTEuOTEsMS45MSwwLDAsMCwwLDEuODZWMzIuMTRBMS45MSwxLjkxLDAsMCwwLDIsMzRcIixzdHlsZTp7ZmlsbDpcIiNlMTE0NGRcIixmaWxsUnVsZTpcImV2ZW5vZGRcIn19KSxlLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTYuODYsMjcuMmgyLjg4YS40OS40OSwwLDAsMCwuNDgtLjVWNy4zYS40OS40OSwwLDAsMC0uNDgtLjVIMTQuMjZhLjQ5LjQ5LDAsMCwwLS40OC41VjkuODVhLjQ5LjQ5LDAsMCwwLC40OC41MWgxLjYzYS40OS40OSwwLDAsMSwuNDguNVYyNi43YS41LjUsMCwwLDAsLjQ5LjVcIixzdHlsZTp7ZmlsbDpcIiNmZWZlZmVcIixmaWxsUnVsZTpcImV2ZW5vZGRcIn19KSxlLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNNDUuOTMsMjcuMkg1OS40N2EuNDguNDgsMCwwLDAsLjQ5LS40OVYyNC4xM2EuNDguNDgsMCwwLDAtLjQ5LS40OUg1MmEuNDkuNDksMCwwLDEtLjMzLS44NWwzLjY3LTMuMjdjMi40NC0yLjE3LDQuMTYtMy45LDQuMTYtNi4zMywwLTMuNzYtMi44OC02LjM5LTctNi4zOS0zLjksMC02LjY5LDIuNDEtNyw2YS40OS40OSwwLDAsMCwuNDkuNTRoM2EuNS41LDAsMCwwLC40OS0uNDMsMi44NiwyLjg2LDAsMCwxLDMtMi41LDIuODMsMi44MywwLDAsMSwzLDIuOWMwLDEuMzUtMSwyLjQ2LTIuNDEsMy43MmwtNy41Miw2LjQzYS40Ny40NywwLDAsMC0uMTcuMzd2Mi45M2EuNDguNDgsMCwwLDAsLjQ5LjQ5XCIsc3R5bGU6e2ZpbGw6XCIjZmVmZWZlXCIsZmlsbFJ1bGU6XCJldmVub2RkXCJ9fSksZS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTg4LjQsMjcuMmMtMy4xNywwLTYuMTYtMS41Ny02LjQ2LTUuMzlhLjQ5LjQ5LDAsMCwxLC40OS0uNTJoMi43NmEuNDkuNDksMCwwLDEsLjQ4LjQyLDIuNTMsMi41MywwLDAsMCwyLjczLDIuMiwyLjU4LDIuNTgsMCwwLDAsMi43NS0yLjc5LDIuNiwyLjYsMCwwLDAtMi44Ni0yLjc2aC0uMDZhLjQ3LjQ3LDAsMCwxLS40OC0uNDdWMTUuNjZhLjQ3LjQ3LDAsMCwxLC40OC0uNDdoLjA2YTIuMzQsMi4zNCwwLDAsMCwyLjU3LTIuNTQsMi41LDIuNSwwLDAsMC01LS4xNHYuMTNhLjQ5LjQ5LDAsMCwxLS40OS40OEg4Mi42M2EuNDcuNDcsMCwwLDEtLjQ4LS40OHYtLjEzQzgyLjIzLDguOTQsODUsNi44LDg4LjM3LDYuOGMzLjYsMCw2LjIsMi4zNiw2LjIsNS43NGE0LjMxLDQuMzEsMCwwLDEtMS43MSwzLjcyLjQ3LjQ3LDAsMCwwLDAsLjc3LDQuNzksNC43OSwwLDAsMSwyLDQuMThjMCw0LTMsNi02LjQ2LDZcIixzdHlsZTp7ZmlsbDpcIiNmZmZcIixmaWxsUnVsZTpcImV2ZW5vZGRcIn19KSxlLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTIzLjI1LDE4Ljc0YS40OC40OCwwLDAsMSwuMjMtLjY2QTUuNDEsNS40MSwwLDAsMCwxMjYuNjksMTNjMC0uMDYsMC0uMTIsMC0uMThoMEE1LjgzLDUuODMsMCwwLDAsMTI1LDguNTJhNi4yNyw2LjI3LDAsMCwwLTQuNjQtMS43MmgtNy42MWEuNDguNDgsMCwwLDAtLjQ4LjQ4djE5LjJhLjQ4LjQ4LDAsMCwwLC40OC40OWgzYS40OC40OCwwLDAsMCwuNDgtLjQ5VjE5LjRhLjQ5LjQ5LDAsMCwxLC40OC0uNDhoMmEuNDkuNDksMCwwLDEsLjQzLjI3bDMuNjcsNy41YS40OC40OCwwLDAsMCwuNDMuMjhoMy40N2EuNDguNDgsMCwwLDAsLjQyLS43MVptLTMuMzUtMy4xaC0zLjcxVjEwLjc5YS40OC40OCwwLDAsMSwuNDctLjQ4aDMuMTVhMi44OCwyLjg4LDAsMCwxLDIsLjcsMi43OCwyLjc4LDAsMCwxLC44OSwxLjQ5LDMuNTksMy41OSwwLDAsMSwwLC40N0EyLjYzLDIuNjMsMCwwLDEsMTE5LjksMTUuNjRaXCIsc3R5bGU6e2ZpbGw6XCIjZmZmXCIsZmlsbFJ1bGU6XCJldmVub2RkXCJ9fSksZS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTEzNS4wNiwxMmMtMy43OSwwLTYuMzcsMi43LTYuMzcsNy40NywwLDUuOTIsMy4zMSw3LjUsNi43Niw3LjVBNi44Nyw2Ljg3LDAsMCwwLDE0MC42NCwyNWEuNS41LDAsMCwwLDAtLjcxbC0xLjUzLTEuNDlhLjQ5LjQ5LDAsMCwwLS42NiwwLDMuOTMsMy45MywwLDAsMS0zLDEuMDcsMywzLDAsMCwxLTMuMTctMi43My40OS40OSwwLDAsMSwuNDgtLjUzaDguMTVhLjQ5LjQ5LDAsMCwwLC40OS0uNDhWMTljMC00LTIuMy03LTYuMzctN20yLjI1LDYuMTJoLTQuNWEuNDguNDgsMCwwLDEtLjQ4LS41NSwzLjU2LDMuNTYsMCwwLDEsLjI5LTEsMi43MiwyLjcyLDAsMCwxLDQuODgsMCwzLjkxLDMuOTEsMCwwLDEsLjI5LDEsLjQ5LjQ5LDAsMCwxLS40OC41NVwiLHN0eWxlOntmaWxsOlwiI2ZmZlwiLGZpbGxSdWxlOlwiZXZlbm9kZFwifX0pLGUuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0xNTUuNjgsMTIuNDhIMTUyLjhhLjMzLjMzLDAsMCwwLS4zMy4zM3YwYS4zMy4zMywwLDAsMS0uNTQuMjVBNC40Miw0LjQyLDAsMCwwLDE0OC43NSwxMmE1LjE2LDUuMTYsMCwwLDAtMy42NywxLjM1Yy0xLjQ0LDEuNDQtMS41NSwzLTEuNTUsNS43MnMuMTEsNC4zOSwxLjU1LDUuODNhNS4wOSw1LjA5LDAsMCwwLDMuNjQsMS4zNSw0LjQ4LDQuNDgsMCwwLDAsMy42My0xLjUzdi44MmEyLjksMi45LDAsMCwxLTMuMDcsMy4xOGgtMy4xNGEuNDguNDgsMCwwLDAtLjQ4LjQ5djIuMjVhLjQ3LjQ3LDAsMCwwLC40OC40OGgzLjE0YzQuNjMsMCw2Ljg5LTIuNjcsNi44OS02LjM0VjEzYS40OS40OSwwLDAsMC0uNDktLjQ5bS01Ljg1LDEwLjMzYy0yLjI2LDAtMi40OS0xLjcxLTIuNDktMy43NHMuMjMtMy42NCwyLjQ5LTMuNjQsMi41MiwxLjYyLDIuNTIsMy42NC0uMjYsMy43NC0yLjUyLDMuNzRcIixzdHlsZTp7ZmlsbDpcIiNmZmZcIixmaWxsUnVsZTpcImV2ZW5vZGRcIn19KSl9Y29uc3QgU249ZS5mb3J3YXJkUmVmKEVuKSxBbj0obi5wLGU9PntsZXR7Y29weXJpZ2h0VGV4dElkOnQsbGFuZGVyQ29uZmlnOm4scGFya3dlYkRpc2NsYWltZXJUZXh0OnI9bnVsbH09ZTtyZXR1cm4oMCxiZS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6b24sY2hpbGRyZW46WygwLGJlLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpubixjaGlsZHJlbjpbKDAsYmUuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOnJuLGNoaWxkcmVuOigwLGJlLmpzeCkoZGUuWix7aWQ6dCx2YWx1ZXM6e2N1cnJlbnRZZWFyOihuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKX19KX0pLCgwLGJlLmpzeCkodG4se2xhbmRlckNvbmZpZzpufSksKDAsYmUuanN4KShEZSx7fSldfSksciYmKDAsYmUuanN4KShcInBcIix7Y2xhc3NOYW1lOmFuLGNoaWxkcmVuOigwLGJlLmpzeCkoZGUuWix7aWQ6cn0pfSldfSl9KSxDbj17cGFkZGluZ1RvcDpcImxhbmRlcnNfcGFkZGluZ1RvcF9fUThFbVlcIn0sX249ZT0+e3ZhciB0O2xldHtsYW5kZXJDb25maWc6bixxdWVyeUNvbmZpZzpyLHBhZ2U6byxjb250ZW50Oml9PWU7Y29uc3QgYT1PZSgpLHM9d2Uobik/KDAsYmUuanN4cykoXCJkaXZcIix7Y2hpbGRyZW46WygwLGJlLmpzeCkoUm4se2xhbmRlckNvbmZpZzpufSksKDAsYmUuanN4KShEbix7bGFuZGVyQ29uZmlnOm4sY29udGVudDppfSksKDAsYmUuanN4KSh3bix7bGFuZGVyQ29uZmlnOm59KV19KTpudWxsO3JldHVybigwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJjb250ZW50TWFpblwiLGNoaWxkcmVuOigwLGJlLmpzeHMpKFwiZGl2XCIse2lkOlwiY29udGVudExheW91dFwiLGNoaWxkcmVuOlsoMCxiZS5qc3gpKE50LHt0ZW1wbGF0ZTpuLmxhbmRlci50ZW1wbGF0ZX0pLCgwLGJlLmpzeHMpKFwiZGl2XCIse2lkOlwiZG9tYWluQmFubmVyXCIsY2hpbGRyZW46WygwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJoZWFkZXJMb2dvV3JhcHBlclwiLGNoaWxkcmVuOigwLGJlLmpzeCkoU24se30pfSksKDAsYmUuanN4cykoXCJkaXZcIix7aWQ6XCJoZWFkZXJUZXh0XCIsY2hpbGRyZW46WygwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJoZWFkZXJUZXh0VGl0bGVcIixjaGlsZHJlbjpudWxsPT09bnx8dm9pZCAwPT09bnx8bnVsbD09PSh0PW4ubGFuZGVyKXx8dm9pZCAwPT09dD92b2lkIDA6dC5kb21haW5EaXNwbGF5TmFtZX0pLHNdfSksKDAsYmUuanN4KShcImRpdlwiLHtpZDpcImhlYWRlckZvb3RlclwiLGNoaWxkcmVuOigwLGJlLmpzeCkoZGUuWix7aWQ6XCJoZWdGb290ZXJUZXh0XCIsdmFsdWVzOntoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbms6KDAsYmUuanN4KShcImFcIix7aHJlZjpcImh0dHBzOi8vd3d3LjEyMy1yZWcuY28udWsvXCIscmVsOlwibm9mb2xsb3dcIixzdHlsZTp7Y29sb3I6XCJpbmhlcml0XCJ9LGNoaWxkcmVuOigwLGJlLmpzeCkoZGUuWix7aWQ6XCJoZWdGb290ZXJUZXh0SGVnU2l0ZUxpbmtcIn0pfSl9fSl9KV19KSwoMCxiZS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOmEuc2hvd0NvbnNlbnREaWFsb2c/KDAsYmUuanN4KShSZSx7fSk6KDAsYmUuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJcIi5jb25jYXQoQ24ucGFkZGluZ1RvcCxcIiBjZW50ZXJcIiksY2hpbGRyZW46KDAsYmUuanN4KShWdCx7bGFuZGVyQ29uZmlnOm4scXVlcnlDb25maWc6cixwYWdlOm99KX0pfSksKDAsYmUuanN4KShBbix7Y29weXJpZ2h0VGV4dElkOlwicGFya3dlYmhlZ2NvcHlyaWdodFRleHRcIixsYW5kZXJDb25maWc6bixwYXJrd2ViRGlzY2xhaW1lclRleHQ6XCJwYXJrd2ViaGVnRGlzY2xhaW1lclRleHRcIn0pXX0pfSl9O2Z1bmN0aW9uIERuKGUpe2xldHtsYW5kZXJDb25maWc6dCxjb250ZW50Om59PWU7Y29uc3Qgcj1mdW5jdGlvbihlLHQpe2NvbnN0IG49KChlLmxhbmRlcnx8e30pLmJhbm5lcnx8e30pLnR5cGUscj0oZS5kb21haW58fHt9KS5leHBpcmVkO3N3aXRjaChuKXtjYXNlIFRlLkRCUzpyZXR1cm4gcj90LmV4cGlyZWREYnNUZXh0SGVnOnQuZGJzVGV4dEhlZztjYXNlIFRlLkFVQ1RJT046cmV0dXJuIHI/dC5leHBpcmVkQXVjdGlvbkhlZ1RleHQ6dC5hdWN0aW9uSGVnVGV4dDtkZWZhdWx0OnJldHVyblwiXCJ9fSh0LG4pO3JldHVyblwidW5kZWZpbmVkXCI9PT10eXBlb2Ygcnx8XCJcIj09PXI/bnVsbDooMCxiZS5qc3gpKFwiZGl2XCIse2lkOlwiZG9tYWluSW5mb1wiLGNoaWxkcmVuOnJ9KX1mdW5jdGlvbiBSbihlKXt2YXIgdDtsZXR7bGFuZGVyQ29uZmlnOm59PWU7Y29uc3Qgcj1udWxsPT09bnx8dm9pZCAwPT09bnx8bnVsbD09PSh0PW4uZG9tYWluKXx8dm9pZCAwPT09dD92b2lkIDA6dC5yb290RG9tYWluRGlzcGxheVRleHQ7cmV0dXJuIHI/KDAsYmUuanN4KShcImRpdlwiLHtpZDpcImRvbWFpblwiLGNoaWxkcmVuOnJ9KTpudWxsfXZhciBPbj1uKDYyMjEpO2NvbnN0IFBuPXthbGlnblNlbGY6XCJjZW50ZXJcIixtYXJnaW5MZWZ0OlwiMC41cmVtXCJ9O2NvbnN0IExuPWZ1bmN0aW9uKGUpe3JldHVybiB3KCk/KDAsYmUuanN4KShcImRpdlwiLHtpZDpcImdkTG9nb1wiLHN0eWxlOnsuLi5Qbn0sY2hpbGRyZW46KDAsYmUuanN4KShcInN2Z1wiLHt3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodCx2aWV3Qm94OlwiMCAwIDEyNiAyN1wiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLGJlLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMjQuOTU2OCAxLjQ1MDgyQzIxLjk1MzcgLTAuNDI1NDc4IDE4LjAwMDMgMC4wMjE1NTE2IDE0LjQ3NDMgMi4yMzcxQzEwLjk1OTMgMC4wMjE1NTE2IDcuMDAzMzcgLTAuNDI1NDc4IDQuMDAzOTkgMS40NTA4MkMtMC43NDA2NDkgNC40MTU5MSAtMS4zMTc1IDEyLjA1MjIgMi43MTY3OSAxOC41MDc3QzUuNjkwNDUgMjMuMjY3MSAxMC4zNDA4IDI2LjA1NTggMTQuNDgwNCAyNi4wMDQ0QzE4LjYyIDI2LjA1NTggMjMuMjcwMyAyMy4yNjcxIDI2LjI0NCAxOC41MDc3QzMwLjI3MzQgMTIuMDUyMiAyOS43MDE0IDQuNDE1OTEgMjQuOTU2OCAxLjQ1MDgyWk00Ljg5ODAxIDE3LjE0NDZDNC4wNjYxNSAxNS44MjU5IDMuNDM4NTIgMTQuMzg5IDMuMDM2NCAxMi44ODI2QzIuNjc5MTQgMTEuNTc0OSAyLjU0MjU1IDEwLjIxNjggMi42MzIyNCA4Ljg2NDE5QzIuODEyMjggNi40Nzg0IDMuNzgzNDkgNC42MjA0OCA1LjM2NTg2IDMuNjMyMTFDNi45NDgyMiAyLjY0Mzc1IDkuMDQwMDcgMi41ODM3NCAxMS4yNjc5IDMuNDY4QzExLjYwMjIgMy42MDE0OSAxMS45MzI5IDMuNzU1ODEgMTIuMjYxMSAzLjkyNjA1QzExLjAyMzEgNS4wNTQ4NiA5Ljk0NjY4IDYuMzQ4OTMgOS4wNjIxMSA3Ljc3MTczQzYuNjEyNjQgMTEuNjkwOSA1Ljg2NTU1IDE2LjA1MjIgNi43MjA0MiAxOS41MjkyQzYuMDM4NzcgMTguNzkzOSA1LjQyODU2IDE3Ljk5NTQgNC44OTgwMSAxNy4xNDQ2Wk0yNC4wNjM5IDE3LjE0MzVDMjQuODk1MyAxNS44MjQ1IDI1LjUyMjkgMTQuMzg3NiAyNS45MjU1IDEyLjg4MTRDMjYuMjgwNyAxMS41NzMgMjYuNDE1NiAxMC4yMTQ1IDI2LjMyNDggOC44NjE4QzI2LjE0NDcgNi40NzYwMSAyNS4xNzQ3IDQuNjE5MzEgMjMuNTkxMiAzLjYyOTcyQzIyLjAwNzYgMi42NDAxMyAxOS45MTIgMi41ODEzNSAxNy42OTA0IDMuNDY1NjFDMTYuNDM3NSAzLjk3ODUyIDE1LjI3ODYgNC42OTYyMSAxNC4yNjExIDUuNTg5M0MxMS45MDE3IDcuNjUzNTEgMTAuMjA1IDEwLjM2OSA5LjM4NDIgMTMuMzk0NkM5LjAyNzQ4IDE0LjcwMjMgOC44OTA4OSAxNi4wNjAzIDguOTgwMDMgMTcuNDEyOUM5LjE2MDA3IDE5Ljc5NzUgMTAuMTMxMyAyMS42NTU0IDExLjcxNDkgMjIuNjQ1QzEyLjUzMDkgMjMuMTQ0MyAxMy40NjYyIDIzLjQxNSAxNC40MjI4IDIzLjQyODhIMTQuNDgwM0gxNC41NDRDMTUuNTAwNSAyMy40MTQ3IDE2LjQzNTcgMjMuMTQ0IDE3LjI1MTkgMjIuNjQ1QzE4LjgzNDMgMjEuNjU1NCAxOS44MDU1IDE5Ljc5NzUgMTkuOTg1NSAxNy40MTI5QzIwLjA3NDMgMTYuMDYxOSAxOS45MzczIDE0LjcwNTUgMTkuNTgwMSAxMy4zOTk1QzE5LjQ4ODMgMTMuMDMyMSAxOS4zNjU4IDEyLjY2NDcgMTkuMjQzNCAxMi4yOTczTDE5LjI0MzMgMTIuMjk3MkwxNS40NTY0IDE0LjY2MzRDMTUuMzQ5MiAxNC43MzA3IDE1LjIxOTUgMTQuNzUyNSAxNS4wOTYxIDE0LjcyNEMxNC45NzI3IDE0LjY5NTUgMTQuODY1NyAxNC42MTkxIDE0Ljc5ODggMTQuNTExNUwxMy45NDE0IDEzLjE0MUMxMy44NzQxIDEzLjAzMzYgMTMuODUyMiAxMi45MDM3IDEzLjg4MDcgMTIuNzgwMUMxMy45MDkyIDEyLjY1NjUgMTMuOTg1NyAxMi41NDkzIDE0LjA5MzMgMTIuNDgyMUwxOS45MzUzIDguODMyNDFDMjAuMDQ3OCA4Ljc2MDA3IDIwLjE4NTcgOC43Mzg3NiAyMC4zMTQ4IDguNzczNzhDMjAuNDQzOSA4LjgwODc5IDIwLjU1MjEgOC44OTY4NSAyMC42MTI2IDkuMDE2MTJDMjIuNDg2NCAxMi41OTczIDIzLjAwNTcgMTYuNDE2IDIyLjI0MTUgMTkuNTMyOUMyMi45MjI3IDE4Ljc5NTUgMjMuNTMyOSAxNy45OTU1IDI0LjA2MzkgMTcuMTQzNVpNNTYuMDgxIDEwLjAzMTRDNTMuMDA5NCAxMC4wMzE0IDUwLjUyNjggMTIuNDI5NCA1MC41MjY4IDE1LjQ4MDNDNTAuNTI2OCAxOC41MTAzIDUzLjAwOTQgMjAuODY5MSA1Ni4wODEgMjAuODY5MUM1OS4xNzM1IDIwLjg2OTEgNjEuNjU2IDE4LjUxMzkgNjEuNjU2IDE1LjQ4MDNDNjEuNjU2IDEyLjQzMDcgNTkuMTc3MSAxMC4wMzI2IDU2LjA4MSAxMC4wMzI2VjEwLjAzMTRaTTUzLjU4NzUgMTUuNDU5NEM1My41ODc1IDE2Ljg3NTIgNTQuNjY1MyAxOC4wMjAzIDU2LjA4MTEgMTguMDIwM1YxOC4wMjUyQzU3LjUxNzcgMTguMDI1MiA1OC41OTU0IDE2Ljg3ODkgNTguNTk1NCAxNS40NjMxQzU4LjU5NTQgMTQuMDQ3MyA1Ny41MTc3IDEyLjg4MTMgNTYuMDgxMSAxMi44ODEzQzU0LjY2NTMgMTIuODgxMyA1My41ODc1IDE0LjA0MzYgNTMuNTg3NSAxNS40NTk0Wk02OC41ODE5IDUuODQ2NEg2Mi45Mjk4QzYyLjgwNjQgNS44NDQwMyA2Mi42ODc0IDUuODkyMDkgNjIuNjAwMiA1Ljk3OTQ2QzYyLjUxMzEgNi4wNjY4NCA2Mi40NjU0IDYuMTg1OTcgNjIuNDY4MSA2LjMwOTM1VjIwLjA4ODlDNjIuNDU5MiAyMC4yMTY0IDYyLjUwNCAyMC4zNDE5IDYyLjU5MTcgMjAuNDM0OUM2Mi42Nzk0IDIwLjUyNzkgNjIuODAxOSAyMC41ODAxIDYyLjkyOTggMjAuNTc4OEg2OC41ODE5QzczLjEwNDkgMjAuNTc4OCA3Ni4yNDc2IDE3LjU3MDggNzYuMjQ3NiAxMy4xOTQ4Qzc2LjI0NzYgOC43OTE4OSA3My4xMDQ5IDUuODQ2NCA2OC41ODE5IDUuODQ2NFpNNjUuNjIzIDE3LjY2ODlINjguNzE1NUM3MS4yMTg4IDE3LjY2ODkgNzIuOTQ0NSAxNS43MTMgNzIuOTQ0NSAxMy4xODg4QzcyLjk0NDUgMTAuNjIxOCA3MS4yMTg4IDguNzQ5MTMgNjguNzE1NSA4Ljc0OTEzSDY1LjYyM1YxNy42Njg5Wk04Ny40OTggMTAuMzI3OEg4NS4zNzMxQzg1LjEyOTUgMTAuMzQ3MSA4NC45Mzk1IDEwLjU0NjYgODQuOTMyMiAxMC43OTA3VjExLjQyMTVDODQuNDQ4NCAxMC42MjE3IDgzLjM1NDcgMTAuMDMyNiA4MS45OTI4IDEwLjAzMjZDNzkuMzQyNSAxMC4wMzI2IDc2Ljg1OTkgMTIuMTE0NyA3Ni44NTk5IDE1LjQzOTlDNzYuODU5OSAxOC43NDY2IDc5LjMyMDQgMjAuODY2NyA4MS45NzIgMjAuODY2N0M4My4zMzg4IDIwLjg2NjcgODQuNDU0NSAyMC4yNzg4IDg0LjkzODMgMTkuNDc5VjIwLjEzMDZDODQuOTM5NiAyMC4zNzM4IDg1LjEzNjEgMjAuNTcwNyA4NS4zNzkyIDIwLjU3MjdIODcuNTA0MUM4Ny42MjIyIDIwLjU3NTQgODcuNzM2MiAyMC41Mjk3IDg3LjgxOTcgMjAuNDQ2MkM4Ny45MDMzIDIwLjM2MjcgODcuOTQ5IDIwLjI0ODcgODcuOTQ2MyAyMC4xMzA2VjEwLjc5MDdDODcuOTQ5OSAxMC42Njk0IDg3LjkwNDMgMTAuNTUxOCA4Ny44MTk5IDEwLjQ2NDZDODcuNzM1NSAxMC4zNzc0IDg3LjYxOTQgMTAuMzI4MSA4Ny40OTggMTAuMzI3OFpNODAuMDkwOCAxNS40NjE5QzgwLjA5MDggMTYuOTYyMiA4MS4xNDc4IDE4LjA0MzYgODIuNTU1IDE4LjA0MzZWMTguMDQyNEM4My45NjM0IDE4LjA0MjQgODUuMDE5MiAxNi45NjA5IDg1LjAxOTIgMTUuNDYwNkM4NS4wMTkyIDEzLjk2MDMgODMuOTYyMiAxMi44ODEzIDgyLjU1NSAxMi44ODEzQzgxLjE0NzggMTIuODgxMyA4MC4wOTA4IDEzLjk2MTYgODAuMDkwOCAxNS40NjE5Wk05OS40MjU4IDUuODQ2NTJIOTcuMzAwOEM5Ny4xODA3IDUuODQyOSA5Ny4wNjQxIDUuODg3NjggOTYuOTc3MyA1Ljk3MDgxQzk2Ljg5MDUgNi4wNTM5NCA5Ni44NDA3IDYuMTY4NDYgOTYuODM5MSA2LjI4ODY1VjExLjM3OTlDOTYuMzQ5MiAxMC42MjE4IDk1LjIzOTYgMTAuMDMyNyA5My44NTIgMTAuMDMyN0M5MS4yMjEyIDEwLjAzMjcgODguNzgxNiAxMi4xMTQ3IDg4Ljc4MTYgMTUuNDM5OUM4OC43ODE2IDE4Ljc0NjcgOTEuMjQyMSAyMC44NjY3IDkzLjg5MzYgMjAuODY2N0M5NS4yNjA0IDIwLjg2NjcgOTYuMjkxNiAyMC4yNzg4IDk2Ljg1OTkgMTkuNDc5MVYyMC4xMzA2Qzk2Ljg2MDYgMjAuMzc0MSA5Ny4wNTc0IDIwLjU3MTQgOTcuMzAwOCAyMC41NzI4SDk5LjQyNThDOTkuNTQzOSAyMC41NzU4IDk5LjY1ODIgMjAuNTMwMiA5OS43NDE4IDIwLjQ0NjZDOTkuODI1MyAyMC4zNjMxIDk5Ljg3MDkgMjAuMjQ4OCA5OS44Njc5IDIwLjEzMDZWNi4yOTExQzk5Ljg3MTYgNi4xNzI1MSA5OS44MjYzIDYuMDU3NjEgOTkuNzQyNyA1Ljk3MzQ4Qzk5LjY1OSA1Ljg4OTM1IDk5LjU0NDQgNS44NDM0MyA5OS40MjU4IDUuODQ2NTJaTTkyLjAzMzIgMTUuNDYwNkM5Mi4wMzMyIDE2Ljk3NjggOTMuMDgxNiAxOC4wNjkzIDk0LjQ4MjcgMTguMDY5M0M5NS44ODUgMTguMDY5MyA5Ni45MzIyIDE2Ljk3NjggOTYuOTMyMiAxNS40NjA2Qzk2LjkzMjIgMTMuOTQ0NCA5NS44ODAxIDEyLjg1MTkgOTQuNDgyNyAxMi44NTE5QzkzLjA4NTMgMTIuODUxOSA5Mi4wMzMyIDEzLjk0NDQgOTIuMDMzMiAxNS40NjA2Wk0xMTEuMzUxIDUuODQ2NTJIMTA5LjIzQzEwOS4xMDkgNS44NDI5IDEwOC45OTMgNS44ODc2NCAxMDguOTA2IDUuOTcwNzRDMTA4LjgxOSA2LjA1Mzg0IDEwOC43NjkgNi4xNjgzNSAxMDguNzY3IDYuMjg4NjVWMTEuMzc5OUMxMDguMjgzIDEwLjYyMTggMTA3LjE2NyAxMC4wMzI3IDEwNS43OCAxMC4wMzI3QzEwMy4xNDkgMTAuMDMyNyAxMDAuNzA5IDEyLjExNDcgMTAwLjcwOSAxNS40Mzk5QzEwMC43MDkgMTguNzQ2NyAxMDMuMTcxIDIwLjg2NjcgMTA1LjgyMSAyMC44NjY3QzEwNy4xODkgMjAuODY2NyAxMDguMjE5IDIwLjI3ODggMTA4Ljc4OCAxOS40NzkxVjIwLjEzMDZDMTA4Ljc4OSAyMC4zNzQzIDEwOC45ODYgMjAuNTcxNCAxMDkuMjMgMjAuNTcyOEgxMTEuMzUxQzExMS40NjkgMjAuNTc1OCAxMTEuNTgzIDIwLjUzMDIgMTExLjY2NyAyMC40NDY2QzExMS43NSAyMC4zNjMgMTExLjc5NSAyMC4yNDg3IDExMS43OTIgMjAuMTMwNlY2LjI5MTFDMTExLjc5NiA2LjE3MjYyIDExMS43NTEgNi4wNTc3MiAxMTEuNjY4IDUuOTczNTRDMTExLjU4NCA1Ljg4OTM3IDExMS40NyA1Ljg0MzQxIDExMS4zNTEgNS44NDY1MlpNMTAzLjk1OCAxNS40NjA2QzEwMy45NTggMTYuOTc2OCAxMDUuMDA2IDE4LjA2OTMgMTA2LjQwOCAxOC4wNjkzSDEwNi40MTJDMTA3LjgxMyAxOC4wNjkzIDEwOC44NTcgMTYuOTc2OCAxMDguODU3IDE1LjQ2MDZDMTA4Ljg1NyAxMy45NDQ0IDEwNy44MDUgMTIuODUxOSAxMDYuNDA4IDEyLjg1MTlDMTA1LjAxMSAxMi44NTE5IDEwMy45NTggMTMuOTQ0NCAxMDMuOTU4IDE1LjQ2MDZaTTEyMi45ODYgMTEuMDQ0MkwxMTkuODE1IDIxLjkxODdDMTE5LjIwMyAyMy44NTM3IDExNy44MzcgMjUuMDExMSAxMTUuNzEyIDI1LjAxMTFDMTE0Ljc0NiAyNS4wMTExIDExMy44NjcgMjQuODEzOSAxMTMuMTc3IDI0LjQxOTZDMTEyLjc3NSAyNC4xOTA2IDExMi40NDIgMjMuOTgxMSAxMTIuNDQyIDIzLjY0NTVDMTEyLjQ0MiAyMy40MzczIDExMi41MSAyMy4zMjk2IDExMi42MzIgMjMuMTM0OEwxMTMuMjYyIDIyLjE5MThDMTEzLjQzOSAyMS45Mjg1IDExMy41NyAyMS44NDI3IDExMy43NjEgMjEuODQyN0MxMTMuOTEzIDIxLjg0NjQgMTE0LjA1OSAyMS44OTc0IDExNC4xOCAyMS45ODg1QzExNC41NzYgMjIuMjQ0NCAxMTQuOTQzIDIyLjQ2NDkgMTE1LjUwMyAyMi40NjQ5QzExNi4xNTcgMjIuNDY0OSAxMTYuNjU3IDIyLjI1NTUgMTE2LjkyNiAyMS40NzY1TDExNy4xOTggMjAuNTczOUgxMTUuOTE0QzExNS41OTggMjAuNTczOSAxMTUuNDI0IDIwLjM4NTMgMTE1LjM0NiAyMC4xMzE4TDExMi41MDggMTEuMDQ0MkMxMTIuNDAzIDEwLjY4NjYgMTEyLjUgMTAuMzI5IDExMy4wMjUgMTAuMzI5SDExNS4yNkMxMTUuNTMzIDEwLjMyOSAxMTUuNzI1IDEwLjQyMiAxMTUuODQ1IDEwLjgxMjdMMTE3Ljk0IDE4LjEzMDVMMTE5LjkgMTAuODEyN0MxMTkuOTYyIDEwLjU2MDQgMTIwLjEzMSAxMC4zMjkgMTIwLjQ2OCAxMC4zMjlIMTIyLjU4OEMxMjMuMDA2IDEwLjMyNzcgMTIzLjEzMiAxMC42MjE3IDEyMi45ODYgMTEuMDQ0MlpNNDkuNzI1OSAyMC4wODc3VjE0LjI3ODdDNDkuNzI2NyAxNC4xNTMgNDkuNjc1NyAxNC4wMzI1IDQ5LjU4NDggMTMuOTQ1NkM0OS40OTQgMTMuODU4NyA0OS4zNzEzIDEzLjgxMyA0OS4yNDU4IDEzLjgxOTVINDMuODI2M0M0My42OTg0IDEzLjgxNzQgNDMuNTc1MSAxMy44Njc0IDQzLjQ4NDYgMTMuOTU3OUM0My4zOTQxIDE0LjA0ODMgNDMuMzQ0MiAxNC4xNzE2IDQzLjM0NjIgMTQuMjk5NVYxNS44NzgyQzQzLjM0NDIgMTYuMDA2MiA0My4zOTQxIDE2LjEyOTUgNDMuNDg0NiAxNi4yMTk5QzQzLjU3NTEgMTYuMzEwNCA0My42OTg0IDE2LjM2MDMgNDMuODI2MyAxNi4zNTgzSDQ1LjY3NTZDNDUuMDk2MyAxNy4xNjU0IDQzLjg1MzIgMTcuOTAwMyA0Mi4yOTQxIDE3LjkwMDNDMzkuMzMwMyAxNy45MDAzIDM3LjczODEgMTUuNzkyNSAzNy43MzgxIDEzLjIyOTFDMzcuNzM4MSAxMC41ODQ5IDM5LjYwODMgOC41NDU3MyA0Mi4yMTk0IDguNTQ1NzNDNDQuMjMyOSA4LjU0NTczIDQ1LjU0MDkgOS40OTQ5IDQ2LjI3NTggMTAuODkyM0M0Ni4zMjUyIDExLjAwOTcgNDYuNDExMSAxMS4xMDggNDYuNTIwNyAxMS4xNzI4QzQ2LjY0NTggMTEuMjIwMSA0Ni43ODQyIDExLjIxNzkgNDYuOTA3NyAxMS4xNjY3TDQ4Ljk1NTUgMTAuMzc3OUM0OS4yMzYgMTAuMjgxMiA0OS4zMjI5IDEwLjE4MDggNDkuMzIyOSAxMC4wNDg1QzQ5LjMyMDMgOS45Njc4OCA0OS4zMDI0IDkuODg4NSA0OS4yNzAyIDkuODE0NTZDNDguMTIxNCA3LjAxNjAzIDQ1LjUzNDggNS42MjQ3MyA0Mi4yOTkgNS42MjQ3M0MzNy45MTU3IDUuNjI0NzMgMzQuNDQ2IDguNzc5NjUgMzQuNDQ2IDEzLjM1NjVDMzQuNDQ2IDE3Ljc2MDcgMzcuNjU5NyAyMC44NTQzIDQxLjc3MjQgMjAuODU0M0M0My45NjIyIDIwLjg1NDMgNDUuODk4NSAxOS45Njg5IDQ3LjAxMTggMTguNTYyOVYyMC4wODc3QzQ3LjAwOTUgMjAuMjE1NyA0Ny4wNTkzIDIwLjMzOTIgNDcuMTQ5OSAyMC40Mjk3QzQ3LjI0MDQgMjAuNTIwMyA0Ny4zNjM5IDIwLjU3MDEgNDcuNDkxOSAyMC41Njc4SDQ5LjI0NThDNDkuMzczNyAyMC41Njk4IDQ5LjQ5NyAyMC41MTk4IDQ5LjU4NzQgMjAuNDI5M0M0OS42Nzc5IDIwLjMzODkgNDkuNzI3OSAyMC4yMTU2IDQ5LjcyNTkgMjAuMDg3N1pNMTIzLjA0NCA4LjE3NzE5VjguMDM2MzVDMTIzLjA0MyA4LjAyNjQ3IDEyMy4wNDcgOC4wMTY4OSAxMjMuMDUzIDguMDA5NDFDMTIzLjA2IDguMDAzMTQgMTIzLjA3IDcuOTk5NjYgMTIzLjA3OSA3Ljk5OTYxSDEyMy45NzRDMTIzLjk4NCA3Ljk5OTI4IDEyMy45OTMgOC4wMDI4MSAxMjQgOC4wMDk0MUMxMjQuMDA3IDguMDE2ODkgMTI0LjAxIDguMDI2NDcgMTI0LjAxIDguMDM2MzVWOC4xNzcxOUMxMjQuMDEgOC4xODY2NyAxMjQuMDA2IDguMTk1ODEgMTI0IDguMjAyOTFDMTIzLjk5MyA4LjIwOTUgMTIzLjk4NCA4LjIxMzAzIDEyMy45NzQgOC4yMTI3MUgxMjMuNjQ3VjkuMDk1NzVDMTIzLjY0NyA5LjExNTc3IDEyMy42MzEgOS4xMzE4NSAxMjMuNjExIDkuMTMyNDlIMTIzLjQ0MkMxMjMuNDMyIDkuMTMyNDUgMTIzLjQyMyA5LjEyODQ0IDEyMy40MTcgOS4xMjE0N0MxMjMuNDEgOS4xMTQ3NiAxMjMuNDA2IDkuMTA1NDcgMTIzLjQwNiA5LjA5NTc1VjguMjEyNzFIMTIzLjA3OUMxMjMuMDY5IDguMjEzNDYgMTIzLjA2IDguMjA5OTUgMTIzLjA1MyA4LjIwMzEyQzEyMy4wNDYgOC4xOTYzIDEyMy4wNDMgOC4xODY4MiAxMjMuMDQ0IDguMTc3MTlaTTEyNC44NTQgOC41OTg0TDEyNC42MDkgOC4wMzEzNUMxMjQuNjA3IDguMDIyMDcgMTI0LjYwMiA4LjAxMzU4IDEyNC41OTUgOC4wMDY4NUMxMjQuNTg2IDguMDAxNzMgMTI0LjU3NSA3Ljk5OTIgMTI0LjU2MyA3Ljk5OTVIMTI0LjI4OEMxMjQuMjc5IDcuOTk4OCAxMjQuMjY5IDguMDAyMTQgMTI0LjI2MiA4LjAwODY5QzEyNC4yNTYgOC4wMTUyNCAxMjQuMjUyIDguMDI0MzcgMTI0LjI1MiA4LjAzMzhWOS4wOTY4N0MxMjQuMjUyIDkuMTA2NDggMTI0LjI1NSA5LjExNTk0IDEyNC4yNjIgOS4xMjI1OUMxMjQuMjY4IDkuMTI4OTIgMTI0LjI3NyA5LjEzMjQ3IDEyNC4yODUgOS4xMzIzOUgxMjQuNDQ4QzEyNC40NTcgOS4xMzIwNSAxMjQuNDY2IDkuMTI4NTkgMTI0LjQ3MyA5LjEyMjU5QzEyNC40NzkgOS4xMTU0OCAxMjQuNDgzIDkuMTA2MzQgMTI0LjQ4MyA5LjA5Njg3VjguMjk0NjdMMTI0Ljc0NSA4Ljg3NzY0QzEyNC43NDggOC44ODg4OCAxMjQuNzU1IDguODk4NzQgMTI0Ljc2NCA4LjkwNTgxQzEyNC43NzQgOC45MTEyMiAxMjQuNzg1IDguOTEzNzcgMTI0Ljc5NiA4LjkxMzE2SDEyNC45MjZDMTI0LjkzNyA4LjkxMzkzIDEyNC45NDkgOC45MTEzOCAxMjQuOTU5IDguOTA1ODFDMTI0Ljk2OCA4Ljg5ODM5IDEyNC45NzUgOC44ODg2NSAxMjQuOTc5IDguODc3NjRMMTI1LjI0MiA4LjI5NDY3VjkuMDk2ODdDMTI1LjI0MSA5LjEwNjQ4IDEyNS4yNDUgOS4xMTU5NCAxMjUuMjUyIDkuMTIyNTlDMTI1LjI1OSA5LjEyOTE4IDEyNS4yNjggOS4xMzI3MSAxMjUuMjc3IDkuMTMyMzlIMTI1LjQzN0MxMjUuNDQ2IDkuMTMyNzYgMTI1LjQ1NSA5LjEyOTEgMTI1LjQ2MiA5LjEyMjMxQzEyNS40NjggOS4xMTU1MyAxMjUuNDcyIDkuMTA2MjcgMTI1LjQ3MSA5LjA5Njg3VjguMDMzOEMxMjUuNDcxIDguMDI0MzcgMTI1LjQ2OCA4LjAxNTI0IDEyNS40NjEgOC4wMDg2OUMxMjUuNDU0IDguMDAyMTQgMTI1LjQ0NSA3Ljk5ODggMTI1LjQzNSA3Ljk5OTVIMTI1LjE1MUMxMjUuMTQgNy45OTkwNCAxMjUuMTI4IDguMDAxNTcgMTI1LjExOCA4LjAwNjg1QzEyNS4xMDkgOC4wMTI3MSAxMjUuMTAyIDguMDIxMyAxMjUuMDk5IDguMDMxMzVMMTI0Ljg1NCA4LjU5ODRaXCIsZmlsbDplLmNvbG9yfHxcIiMxMTExMTFcIn0pfSl9KTooMCxiZS5qc3gpKFwiZGl2XCIse2lkOlwiZ2RMb2dvXCIsc3R5bGU6ey4uLlBufSxjaGlsZHJlbjooMCxiZS5qc3gpKFwic3ZnXCIse3dpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0LHZpZXdCb3g6XCIwIDAgMTkyIDQwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46KDAsYmUuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zOC4xNTE0IDEuNzk5ODhDMzMuNTU0OSAtMS4wNzIwMSAyNy41MDM3IC0wLjM4Nzc4MiAyMi4xMDY3IDMuMDAzMzdDMTYuNzI2NiAtMC4zODc3ODIgMTAuNjcxNiAtMS4wNzIwMSA2LjA4MDcyIDEuNzk5ODhDLTEuMTgxNDggNi4zMzgyOCAtMi4wNjQ0MiAxOC4wMjY0IDQuMTEwNTIgMjcuOTA3NEM4LjY2MjA1IDM1LjE5MjEgMTUuNzc5OSAzOS40NjA2IDIyLjExNjEgMzkuMzgxOUMyOC40NTIyIDM5LjQ2MDYgMzUuNTcwMSAzNS4xOTIxIDQwLjEyMTYgMjcuOTA3NEM0Ni4yODkgMTguMDI2NCA0NS40MTM2IDYuMzM4MjggMzguMTUxNCAxLjc5OTg4Wk03LjQ0OTMxIDI1LjgyMUM2LjE3NjA2IDIzLjgwMjYgNS4yMTU0IDIxLjYwMzIgNC41OTk5MiAxOS4yOTc0QzQuMDUzMDkgMTcuMjk1OSAzLjg0NDAyIDE1LjIxNzIgMy45ODEzIDEzLjE0NjlDNC4yNTY4NyA5LjQ5NTE1IDUuNzQzNDMgNi42NTEzOCA4LjE2NTQxIDUuMTM4NThDMTAuNTg3NCAzLjYyNTc4IDEzLjc4OTIgMy41MzM5MiAxNy4xOTkxIDQuODg3MzhDMTcuNzEwOSA1LjA5MTcyIDE4LjIxNyA1LjMyNzkyIDE4LjcxOTQgNS41ODg0OUMxNi44MjQ1IDcuMzE2MjUgMTUuMTc2OSA5LjI5Njk4IDEzLjgyMyAxMS40NzQ3QzEwLjA3MzggMTcuNDczNSA4LjkzMDI1IDI0LjE0ODkgMTAuMjM4NyAyOS40NzA5QzkuMTk1MzkgMjguMzQ1NCA4LjI2MTM5IDI3LjEyMzMgNy40NDkzMSAyNS44MjFaTTM2Ljc4NDkgMjUuODE5M0MzOC4wNTc0IDIzLjgwMDQgMzkuMDE4IDIxLjYwMTEgMzkuNjM0MyAxOS4yOTU3QzQwLjE3NzkgMTcuMjkzIDQwLjM4NDUgMTUuMjEzNyA0MC4yNDU0IDEzLjE0MzJDMzkuOTY5OCA5LjQ5MTQ5IDM4LjQ4NTIgNi42NDk2IDM2LjA2MTMgNS4xMzQ5MkMzMy42Mzc0IDMuNjIwMjUgMzAuNDMgMy41MzAyNiAyNy4wMjk1IDQuODgzNzNDMjUuMTExOCA1LjY2ODggMjMuMzM3OSA2Ljc2NzMgMjEuNzgwNiA4LjEzNDI4QzE4LjE2OTMgMTEuMjkzOCAxNS41NzIzIDE1LjQ1MDEgMTQuMzE1OSAyMC4wODExQzEzLjc2OTkgMjIuMDgyOCAxMy41NjA5IDI0LjE2MTQgMTMuNjk3MyAyNi4yMzE3QzEzLjk3MjkgMjkuODgxNSAxNS40NTk0IDMyLjcyNTMgMTcuODgzMyAzNC4yNEMxOS4xMzI0IDM1LjAwNDIgMjAuNTYzOSAzNS40MTg2IDIyLjAyOCAzNS40Mzk3SDIyLjExNjJIMjIuMjEzNkMyMy42Nzc3IDM1LjQxODEgMjUuMTA5MSAzNS4wMDM4IDI2LjM1ODQgMzQuMjRDMjguNzgwNCAzMi43MjUzIDMwLjI2NjkgMjkuODgxNSAzMC41NDI1IDI2LjIzMTdDMzAuNjc4NCAyNC4xNjM3IDMwLjQ2ODcgMjIuMDg3NiAyOS45MjIgMjAuMDg4NkMyOS43ODE0IDE5LjUyNjIgMjkuNTkzOSAxOC45NjM5IDI5LjQwNjUgMTguNDAxNUwyMy42MTAyIDIyLjAyMzJDMjMuNDQ2IDIyLjEyNjIgMjMuMjQ3NSAyMi4xNTk2IDIzLjA1ODYgMjIuMTE2QzIyLjg2OTcgMjIuMDcyNCAyMi43MDYgMjEuOTU1MyAyMi42MDM1IDIxLjc5MDdMMjEuMjkxMyAxOS42OTMxQzIxLjE4ODIgMTkuNTI4NiAyMS4xNTQ4IDE5LjMyOTggMjEuMTk4NCAxOS4xNDA2QzIxLjI0MiAxOC45NTE0IDIxLjM1OTEgMTguNzg3MyAyMS41MjM4IDE4LjY4NDVMMzAuNDY1NiAxMy4wOTgyQzMwLjYzNzggMTIuOTg3NSAzMC44NDg4IDEyLjk1NDkgMzEuMDQ2NCAxMy4wMDg1QzMxLjI0NCAxMy4wNjIxIDMxLjQwOTYgMTMuMTk2OSAzMS41MDIzIDEzLjM3OTRDMzQuMzcwNCAxOC44NjA3IDM1LjE2NTIgMjQuNzA1OCAzMy45OTU1IDI5LjQ3NjZDMzUuMDM4MiAyOC4zNDc5IDM1Ljk3MjEgMjcuMTIzNCAzNi43ODQ5IDI1LjgxOTNaTTg1Ljc5MDcgMTQuOTMzNEM4MS4wODkyIDE0LjkzMzQgNzcuMjg5NCAxOC42MDM5IDc3LjI4OTQgMjMuMjczNUM3Ny4yODk0IDI3LjkxMTMgODEuMDg5MiAzMS41MjE4IDg1Ljc5MDcgMzEuNTIxOEM5MC41MjQxIDMxLjUyMTggOTQuMzIzOSAyNy45MTY5IDk0LjMyMzkgMjMuMjczNUM5NC4zMjM5IDE4LjYwNTggOTAuNTI5NyAxNC45MzUzIDg1Ljc5MDcgMTQuOTM1M1YxNC45MzM0Wk04MS45NzQgMjMuMjQxNkM4MS45NzQgMjUuNDA4NiA4My42MjM2IDI3LjE2MTQgODUuNzkwNyAyNy4xNjE0VjI3LjE2ODlDODcuOTg5NiAyNy4xNjg5IDg5LjYzOTIgMjUuNDE0MyA4OS42MzkyIDIzLjI0NzJDODkuNjM5MiAyMS4wODAyIDg3Ljk4OTYgMTkuMjk1NiA4NS43OTA3IDE5LjI5NTZDODMuNjIzNiAxOS4yOTU2IDgxLjk3NCAyMS4wNzQ2IDgxLjk3NCAyMy4yNDE2Wk0xMDQuOTI1IDguNTI3OEg5Ni4yNzM0Qzk2LjA4NDYgOC41MjQxOCA5NS45MDI0IDguNTk3NzMgOTUuNzY5IDguNzMxNDdDOTUuNjM1NiA4Ljg2NTIxIDk1LjU2MjYgOS4wNDc1NiA5NS41NjY3IDkuMjM2NFYzMC4zMjc1Qzk1LjU1MzEgMzAuNTIyNyA5NS42MjE3IDMwLjcxNDggOTUuNzU1OSAzMC44NTcyQzk1Ljg5MDEgMzAuOTk5NiA5Ni4wNzc3IDMxLjA3OTQgOTYuMjczNCAzMS4wNzc0SDEwNC45MjVDMTExLjg0OCAzMS4wNzc0IDExNi42NTggMjYuNDczMyAxMTYuNjU4IDE5Ljc3NTRDMTE2LjY1OCAxMy4wMzYyIDExMS44NDggOC41Mjc4IDEwNC45MjUgOC41Mjc4Wk0xMDAuMzk2IDI2LjYyMzVIMTA1LjEyOUMxMDguOTYxIDI2LjYyMzUgMTExLjYwMiAyMy42Mjk3IDExMS42MDIgMTkuNzY2MkMxMTEuNjAyIDE1LjgzNyAxMDguOTYxIDEyLjk3MDggMTA1LjEyOSAxMi45NzA4SDEwMC4zOTZWMjYuNjIzNVpNMTMzLjg3OCAxNS4zODcxSDEzMC42MjVDMTMwLjI1MyAxNS40MTY2IDEyOS45NjIgMTUuNzIxOSAxMjkuOTUxIDE2LjA5NTdWMTcuMDYxMUMxMjkuMjEgMTUuODM3IDEyNy41MzYgMTQuOTM1MyAxMjUuNDUyIDE0LjkzNTNDMTIxLjM5NSAxNC45MzUzIDExNy41OTUgMTguMTIyMSAxMTcuNTk1IDIzLjIxMTdDMTE3LjU5NSAyOC4yNzMxIDEyMS4zNjEgMzEuNTE4IDEyNS40MiAzMS41MThDMTI3LjUxMiAzMS41MTggMTI5LjIxOSAzMC42MTgyIDEyOS45NiAyOS4zOTQxVjMwLjM5MTRDMTI5Ljk2MiAzMC43NjM2IDEzMC4yNjMgMzEuMDY1MSAxMzAuNjM1IDMxLjA2ODFIMTMzLjg4N0MxMzQuMDY4IDMxLjA3MjMgMTM0LjI0MyAzMS4wMDIzIDEzNC4zNyAzMC44NzQ1QzEzNC40OTggMzAuNzQ2NyAxMzQuNTY4IDMwLjU3MjEgMTM0LjU2NCAzMC4zOTE0VjE2LjA5NTdDMTM0LjU3IDE1LjkxIDEzNC41IDE1LjczIDEzNC4zNzEgMTUuNTk2NUMxMzQuMjQxIDE1LjQ2MyAxMzQuMDY0IDE1LjM4NzUgMTMzLjg3OCAxNS4zODcxWk0xMjIuNTQgMjMuMjQ1NEMxMjIuNTQgMjUuNTQxNyAxMjQuMTU4IDI3LjE5NyAxMjYuMzEyIDI3LjE5N1YyNy4xOTUxQzEyOC40NjggMjcuMTk1MSAxMzAuMDg0IDI1LjUzOTkgMTMwLjA4NCAyMy4yNDM1QzEzMC4wODQgMjAuOTQ3MSAxMjguNDY2IDE5LjI5NTYgMTI2LjMxMiAxOS4yOTU2QzEyNC4xNTggMTkuMjk1NiAxMjIuNTQgMjAuOTQ5IDEyMi41NCAyMy4yNDU0Wk0xNTIuMTM1IDguNTI3OThIMTQ4Ljg4MkMxNDguNjk4IDguNTIyNDQgMTQ4LjUyIDguNTkwOTggMTQ4LjM4NyA4LjcxODIyQzE0OC4yNTQgOC44NDU0NyAxNDguMTc4IDkuMDIwNzUgMTQ4LjE3NSA5LjIwNDcxVjE2Ljk5NzRDMTQ3LjQyNiAxNS44MzcgMTQ1LjcyNyAxNC45MzU0IDE0My42MDMgMTQuOTM1NEMxMzkuNTc3IDE0LjkzNTQgMTM1Ljg0MiAxOC4xMjIyIDEzNS44NDIgMjMuMjExN0MxMzUuODQyIDI4LjI3MzEgMTM5LjYwOCAzMS41MTgxIDE0My42NjcgMzEuNTE4MUMxNDUuNzU5IDMxLjUxODEgMTQ3LjMzNyAzMC42MTgzIDE0OC4yMDcgMjkuMzk0MlYzMC4zOTE0QzE0OC4yMDggMzAuNzY0IDE0OC41MDkgMzEuMDY2MSAxNDguODgyIDMxLjA2ODJIMTUyLjEzNUMxNTIuMzE1IDMxLjA3MjkgMTUyLjQ5IDMxLjAwMzEgMTUyLjYxOCAzMC44NzUxQzE1Mi43NDYgMzAuNzQ3MiAxNTIuODE2IDMwLjU3MjMgMTUyLjgxMSAzMC4zOTE0VjkuMjA4NDZDMTUyLjgxNyA5LjAyNjk0IDE1Mi43NDggOC44NTEwOSAxNTIuNjIgOC43MjIzMkMxNTIuNDkyIDguNTkzNTUgMTUyLjMxNiA4LjUyMzI1IDE1Mi4xMzUgOC41Mjc5OFpNMTQwLjgxOSAyMy4yNDM0QzE0MC44MTkgMjUuNTY0MiAxNDIuNDI0IDI3LjIzNjMgMTQ0LjU2OSAyNy4yMzYzQzE0Ni43MTUgMjcuMjM2MyAxNDguMzE4IDI1LjU2NDIgMTQ4LjMxOCAyMy4yNDM0QzE0OC4zMTggMjAuOTIyNyAxNDYuNzA4IDE5LjI1MDUgMTQ0LjU2OSAxOS4yNTA1QzE0Mi40MyAxOS4yNTA1IDE0MC44MTkgMjAuOTIyNyAxNDAuODE5IDIzLjI0MzRaTTE3MC4zODcgOC41Mjc5OEgxNjcuMTQxQzE2Ni45NTcgOC41MjI0NCAxNjYuNzc4IDguNTkwOTIgMTY2LjY0NSA4LjcxODExQzE2Ni41MTIgOC44NDUzIDE2Ni40MzUgOS4wMjA1OCAxNjYuNDMyIDkuMjA0NzFWMTYuOTk3NEMxNjUuNjkyIDE1LjgzNyAxNjMuOTg0IDE0LjkzNTQgMTYxLjg2IDE0LjkzNTRDMTU3LjgzMyAxNC45MzU0IDE1NC4wOTkgMTguMTIyMiAxNTQuMDk5IDIzLjIxMTdDMTU0LjA5OSAyOC4yNzMxIDE1Ny44NjcgMzEuNTE4MSAxNjEuOTI0IDMxLjUxODFDMTY0LjAxOCAzMS41MTgxIDE2NS41OTQgMzAuNjE4MyAxNjYuNDY0IDI5LjM5NDJWMzAuMzkxNEMxNjYuNDY2IDMwLjc2NDMgMTY2Ljc2OCAzMS4wNjYxIDE2Ny4xNDEgMzEuMDY4MkgxNzAuMzg3QzE3MC41NjggMzEuMDcyOSAxNzAuNzQzIDMxLjAwMyAxNzAuODcxIDMwLjg3NUMxNzAuOTk4IDMwLjc0NyAxNzEuMDY4IDMwLjU3MjEgMTcxLjA2MiAzMC4zOTE0VjkuMjA4NDZDMTcxLjA2OSA5LjAyNzEyIDE3MSA4Ljg1MTI0IDE3MC44NzIgOC43MjI0MUMxNzAuNzQ0IDguNTkzNTcgMTcwLjU2OSA4LjUyMzIyIDE3MC4zODcgOC41Mjc5OFpNMTU5LjA3MyAyMy4yNDM0QzE1OS4wNzMgMjUuNTY0MiAxNjAuNjc1IDI3LjIzNjMgMTYyLjgyMiAyNy4yMzYzSDE2Mi44MjdDMTY0Ljk3MiAyNy4yMzYzIDE2Ni41NzEgMjUuNTY0MiAxNjYuNTcxIDIzLjI0MzRDMTY2LjU3MSAyMC45MjI3IDE2NC45NjEgMTkuMjUwNSAxNjIuODIyIDE5LjI1MDVDMTYwLjY4MyAxOS4yNTA1IDE1OS4wNzMgMjAuOTIyNyAxNTkuMDczIDIzLjI0MzRaTTE4OC4xOTYgMTYuNDgzNkwxODMuMzQzIDMzLjEyODJDMTgyLjQwNiAzNi4wOTAxIDE4MC4zMTUgMzcuODYxNiAxNzcuMDYzIDM3Ljg2MTZDMTc1LjU4NCAzNy44NjE2IDE3NC4yMzggMzcuNTU5OCAxNzMuMTgzIDM2Ljk1NjJDMTcyLjU2OCAzNi42MDU2IDE3Mi4wNTggMzYuMjg1IDE3Mi4wNTggMzUuNzcxNEMxNzIuMDU4IDM1LjQ1MjcgMTcyLjE2MSAzNS4yODc4IDE3Mi4zNDggMzQuOTg5N0wxNzMuMzEyIDMzLjU0NjNDMTczLjU4NCAzMy4xNDMyIDE3My43ODQgMzMuMDEyIDE3NC4wNzcgMzMuMDEyQzE3NC4zMDkgMzMuMDE3NyAxNzQuNTMzIDMzLjA5NTcgMTc0LjcxOCAzMy4yMzUxQzE3NS4zMjMgMzMuNjI2OSAxNzUuODg2IDMzLjk2NDMgMTc2Ljc0MyAzMy45NjQzQzE3Ny43NDQgMzMuOTY0MyAxNzguNTA4IDMzLjY0MzcgMTc4LjkyMSAzMi40NTE1TDE3OS4zMzcgMzEuMDY5OUgxNzcuMzcyQzE3Ni44ODkgMzEuMDY5OSAxNzYuNjIzIDMwLjc4MTIgMTc2LjUwMyAzMC4zOTMyTDE3Mi4xNTkgMTYuNDgzNkMxNzEuOTk4IDE1LjkzNjMgMTcyLjE0NiAxNS4zODg5IDE3Mi45NSAxNS4zODg5SDE3Ni4zNzFDMTc2Ljc4OSAxNS4zODg5IDE3Ny4wODIgMTUuNTMxMyAxNzcuMjY2IDE2LjEyOTNMMTgwLjQ3MyAyNy4zMzAxTDE4My40NzIgMTYuMTI5M0MxODMuNTY4IDE1Ljc0MzIgMTgzLjgyNyAxNS4zODg5IDE4NC4zNDIgMTUuMzg4OUgxODcuNTg3QzE4OC4yMjYgMTUuMzg3IDE4OC40MTkgMTUuODM2OSAxODguMTk2IDE2LjQ4MzZaTTc2LjA2MzMgMzAuMzI1N1YyMS40MzQ0Qzc2LjA2NDYgMjEuMjQyIDc1Ljk4NjUgMjEuMDU3NSA3NS44NDc0IDIwLjkyNDVDNzUuNzA4NCAyMC43OTE1IDc1LjUyMDYgMjAuNzIxNyA3NS4zMjg1IDIwLjczMTVINjcuMDMzM0M2Ni44Mzc1IDIwLjcyODQgNjYuNjQ4OCAyMC44MDQ4IDY2LjUxMDMgMjAuOTQzM0M2Ni4zNzE5IDIxLjA4MTggNjYuMjk1NCAyMS4yNzA1IDY2LjI5ODUgMjEuNDY2M1YyMy44ODI3QzY2LjI5NTQgMjQuMDc4NSA2Ni4zNzE5IDI0LjI2NzIgNjYuNTEwMyAyNC40MDU3QzY2LjY0ODggMjQuNTQ0MSA2Ni44Mzc1IDI0LjYyMDYgNjcuMDMzMyAyNC42MTc1SDY5Ljg2NEM2OC45NzczIDI1Ljg1MjkgNjcuMDc0NiAyNi45Nzc2IDY0LjY4ODIgMjYuOTc3NkM2MC4xNTE3IDI2Ljk3NzYgNTcuNzE0NyAyMy43NTE0IDU3LjcxNDcgMTkuODI3OUM1Ny43MTQ3IDE1Ljc4MDYgNjAuNTc3MiAxMi42NTk0IDY0LjU3MzkgMTIuNjU5NEM2Ny42NTU3IDEyLjY1OTQgNjkuNjU3OCAxNC4xMTIyIDcwLjc4MjUgMTYuMjUxMkM3MC44NTgyIDE2LjQzMDggNzAuOTg5NiAxNi41ODEzIDcxLjE1NzUgMTYuNjgwNEM3MS4zNDg5IDE2Ljc1MjggNzEuNTYwOCAxNi43NDk1IDcxLjc0OTggMTYuNjcxMUw3NC44ODQyIDE1LjQ2MzhDNzUuMzEzNSAxNS4zMTU3IDc1LjQ0NjUgMTUuMTYyIDc1LjQ0NjUgMTQuOTU5NkM3NS40NDI1IDE0LjgzNjIgNzUuNDE1MiAxNC43MTQ3IDc1LjM2NTkgMTQuNjAxNUM3My42MDc2IDEwLjMxODEgNjkuNjQ4NCA4LjE4ODUxIDY0LjY5NTcgOC4xODg1MUM1Ny45ODY1IDguMTg4NTEgNTIuNjc1OCAxMy4wMTc1IDUyLjY3NTggMjAuMDIyOUM1Mi42NzU4IDI2Ljc2MzkgNTcuNTk0NyAzMS40OTkyIDYzLjg4OTYgMzEuNDk5MkM2Ny4yNDE0IDMxLjQ5OTIgNzAuMjA1MiAzMC4xNDM4IDcxLjkwOTIgMjcuOTkxOFYzMC4zMjU3QzcxLjkwNTYgMzAuNTIxNiA3MS45ODE4IDMwLjcxMDYgNzIuMTIwNCAzMC44NDkyQzcyLjI1OSAzMC45ODc4IDcyLjQ0ODEgMzEuMDY0MSA3Mi42NDQgMzEuMDYwNUg3NS4zMjg1Qzc1LjUyNDMgMzEuMDYzNiA3NS43MTMgMzAuOTg3MSA3NS44NTE0IDMwLjg0ODdDNzUuOTg5OSAzMC43MTAyIDc2LjA2NjQgMzAuNTIxNSA3Ni4wNjMzIDMwLjMyNTdaTTE4OC4yODQgMTIuMDk1M1YxMS44Nzk4QzE4OC4yODQgMTEuODY0NiAxODguMjg5IDExLjg1IDE4OC4yOTkgMTEuODM4NUMxODguMzEgMTEuODI4OSAxODguMzI0IDExLjgyMzYgMTg4LjMzOSAxMS44MjM1SDE4OS43MDlDMTg5LjcyNCAxMS44MjMgMTg5LjczOCAxMS44Mjg0IDE4OS43NDggMTEuODM4NUMxODkuNzU4IDExLjg1IDE4OS43NjQgMTEuODY0NiAxODkuNzYzIDExLjg3OThWMTIuMDk1M0MxODkuNzYzIDEyLjEwOTggMTg5Ljc1OCAxMi4xMjM4IDE4OS43NDggMTIuMTM0N0MxODkuNzM4IDEyLjE0NDggMTg5LjcyNCAxMi4xNTAyIDE4OS43MDkgMTIuMTQ5N0gxODkuMjA5VjEzLjUwMTNDMTg5LjIwOCAxMy41MzE5IDE4OS4xODMgMTMuNTU2NiAxODkuMTUyIDEzLjU1NzVIMTg4Ljg5NEMxODguODc5IDEzLjU1NzUgMTg4Ljg2NiAxMy41NTEzIDE4OC44NTYgMTMuNTQwN0MxODguODQ1IDEzLjUzMDQgMTg4LjgzOSAxMy41MTYyIDE4OC44MzkgMTMuNTAxM1YxMi4xNDk3SDE4OC4zMzlDMTg4LjMyNCAxMi4xNTA4IDE4OC4zMDkgMTIuMTQ1NSAxODguMjk5IDEyLjEzNUMxODguMjg5IDEyLjEyNDYgMTg4LjI4MyAxMi4xMTAxIDE4OC4yODQgMTIuMDk1M1pNMTkxLjA1NSAxMi43NEwxOTAuNjggMTEuODcyMUMxOTAuNjc3IDExLjg1NzkgMTkwLjY3IDExLjg0NDkgMTkwLjY1OSAxMS44MzQ2QzE5MC42NDQgMTEuODI2OCAxOTAuNjI4IDExLjgyMjkgMTkwLjYxMSAxMS44MjM0SDE5MC4xODlDMTkwLjE3NCAxMS44MjIzIDE5MC4xNiAxMS44Mjc0IDE5MC4xNSAxMS44Mzc0QzE5MC4xNCAxMS44NDc1IDE5MC4xMzQgMTEuODYxNCAxOTAuMTM1IDExLjg3NTlWMTMuNTAzQzE5MC4xMzMgMTMuNTE3NyAxOTAuMTM5IDEzLjUzMjIgMTkwLjE1IDEzLjU0MjRDMTkwLjE1OSAxMy41NTIxIDE5MC4xNzIgMTMuNTU3NSAxOTAuMTg1IDEzLjU1NzRIMTkwLjQzNEMxOTAuNDQ4IDEzLjU1NjkgMTkwLjQ2MiAxMy41NTE2IDE5MC40NzIgMTMuNTQyNEMxOTAuNDgyIDEzLjUzMTUgMTkwLjQ4NyAxMy41MTc1IDE5MC40ODcgMTMuNTAzVjEyLjI3NTFMMTkwLjg4OCAxMy4xNjc1QzE5MC44OTMgMTMuMTg0NyAxOTAuOTA0IDEzLjE5OTggMTkwLjkxOCAxMy4yMTA2QzE5MC45MzMgMTMuMjE4OSAxOTAuOTUgMTMuMjIyOCAxOTAuOTY3IDEzLjIyMThIMTkxLjE2NkMxOTEuMTgzIDEzLjIyMyAxOTEuMjAxIDEzLjIxOTEgMTkxLjIxNiAxMy4yMTA2QzE5MS4yMyAxMy4xOTkyIDE5MS4yNCAxMy4xODQzIDE5MS4yNDYgMTMuMTY3NUwxOTEuNjQ5IDEyLjI3NTFWMTMuNTAzQzE5MS42NDggMTMuNTE3NyAxOTEuNjUzIDEzLjUzMjIgMTkxLjY2NCAxMy41NDI0QzE5MS42NzUgMTMuNTUyNSAxOTEuNjg5IDEzLjU1NzkgMTkxLjcwNCAxMy41NTc0SDE5MS45NDdDMTkxLjk2MiAxMy41NTggMTkxLjk3NiAxMy41NTIzIDE5MS45ODYgMTMuNTQyQzE5MS45OTYgMTMuNTMxNiAxOTIuMDAxIDEzLjUxNzQgMTkyIDEzLjUwM1YxMS44NzU5QzE5MiAxMS44NjE0IDE5MS45OTUgMTEuODQ3NSAxOTEuOTg0IDExLjgzNzRDMTkxLjk3NCAxMS44Mjc0IDE5MS45NiAxMS44MjIzIDE5MS45NDUgMTEuODIzNEgxOTEuNTFDMTkxLjQ5MyAxMS44MjI3IDE5MS40NzUgMTEuODI2NSAxOTEuNDYgMTEuODM0NkMxOTEuNDQ2IDExLjg0MzYgMTkxLjQzNiAxMS44NTY3IDE5MS40MyAxMS44NzIxTDE5MS4wNTUgMTIuNzRaXCIsZmlsbDplLmNvbG9yfHxcIiMxMTExMTFcIn0pfSl9KX0sTm49e2JhY2tncm91bmRDb2xvcjpcIiMxMTExMTFcIixjb2xvcjpcIndoaXRlXCIsZm9udFNpemU6XCIxNnB4XCIsdGV4dEFsaWduOlwiY2VudGVyXCIscGFkZGluZzpcIjhweCAxNnB4IDhweCAxNnB4XCJ9LEluPXtjb2xvcjpcIndoaXRlXCIsZm9udFdlaWdodDpcImJvbGRcIix0ZXh0RGVjb3JhdGlvbjpcIm5vbmVcIn07ZnVuY3Rpb24gam4oZSl7bGV0e2xpbms6dCxvbkNsaWNrOm4sY2hpbGRyZW46cn09ZTtyZXR1cm4oMCxiZS5qc3gpKFwiZGl2XCIse3N0eWxlOk5uLGNoaWxkcmVuOigwLGJlLmpzeCkoXCJhXCIse2hyZWY6dCxvbkNsaWNrOm4sc3R5bGU6SW4sY2hpbGRyZW46cn0pfSl9Y29uc3QgQm49MTUwO2Z1bmN0aW9uIEhuKGUpe2xldHtsYW5kZXJDb25maWc6dCxxdWVyeUNvbmZpZzpuLHBhZ2U6cixjb250ZW50Om99PWU7Y29uc3QgaT1PZSgpO2xldCBhPVwiXCI7d2UodCkmJihhPSgwLGJlLmpzeHMpKFwiZGl2XCIse2NoaWxkcmVuOlsoMCxiZS5qc3gpKFVuLHtsYW5kZXJDb25maWc6dH0pLCgwLGJlLmpzeCkoR24se2xhbmRlckNvbmZpZzp0LGNvbnRlbnQ6b30pLCgwLGJlLmpzeCkod24se2xhbmRlckNvbmZpZzp0fSldfSkpO2xldCBzPW51bGw7Y29uc3QgbD0oMCxiZS5qc3gpKFZ0LHtsYW5kZXJDb25maWc6dCxxdWVyeUNvbmZpZzpuLHBhZ2U6cn0pO3ZhciB1LHAsZjtpLnNob3dDb25zZW50RGlhbG9nP1wicHdfdHJlYXRtZW50XCI9PT0obnVsbD09PXR8fHZvaWQgMD09PXR8fG51bGw9PT0odT10LmV4cGVyaW1lbnQpfHx2b2lkIDA9PT11P3ZvaWQgMDp1LmJ1Y2tldCk/KEsodCxjLlNFUlBfUkVESVJFQ1RfQ09OU0VOVCksd2luZG93LmxvY2F0aW9uLmFzc2lnbihudWxsPT09KHA9dC5sYW5kZXIpfHx2b2lkIDA9PT1wfHxudWxsPT09KGY9cC5iYW5uZXIpfHx2b2lkIDA9PT1mP3ZvaWQgMDpmLmxpbmspKTpzPSgwLGJlLmpzeCkoUmUse30pOnM9IW5bZC5ESVNBQkxFX0FEVElMRV0mJnQuYWRUaWxlJiZcIlNVQ0NFU1NGVUxcIj09PXQuYWRUaWxlLnNlYXJjaFJlc3VsdENvZGU/KDAsYmUuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiYWRSb3dcIixjaGlsZHJlbjpbbCwoMCxiZS5qc3gpKE1uLHtsYW5kZXJDb25maWc6dH0pXX0pOigwLGJlLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlF0KCkoQ24ucGFkZGluZ1RvcCxcImNlbnRlclwiKSxjaGlsZHJlbjpsfSk7cmV0dXJuKDAsYmUuanN4KShcImRpdlwiLHtpZDpcImNvbnRlbnRNYWluXCIsY2hpbGRyZW46KDAsYmUuanN4cykoXCJkaXZcIix7XCJkYXRhLXRlc3RpZFwiOlwicGFya3dlYkxheW91dFwiLGlkOlwiY29udGVudExheW91dFwiLGNoaWxkcmVuOlsoMCxiZS5qc3gpKE50LHt0ZW1wbGF0ZTp0LmxhbmRlci50ZW1wbGF0ZX0pLCgwLGJlLmpzeHMpKFwiZGl2XCIse2lkOlwiZG9tYWluQmFubmVyXCIsY2hpbGRyZW46WygwLGJlLmpzeCkoTG4se3dpZHRoOkJufSksYV19KSwoMCxiZS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOnN9KSwoMCxiZS5qc3gpKEFuLHtjb3B5cmlnaHRUZXh0SWQ6XCJwYXJrd2ViY29weXJpZ2h0VGV4dFwiLGxhbmRlckNvbmZpZzp0LHBhcmt3ZWJEaXNjbGFpbWVyVGV4dDpcInBhcmt3ZWJEaXNjbGFpbWVyVGV4dFwifSldfSl9KX1mdW5jdGlvbiBGbih0KXtsZXQgbix7YWRUaWxlRG9tYWluOnJ9PXQsaT1yLmZ1bGxQcmljZTtyLmRpc2NvdW50UHJpY2UmJihuPXIuZnVsbFByaWNlLGk9ci5kaXNjb3VudFByaWNlKTtjb25zdCBhPSgwLGUudXNlQ2FsbGJhY2spKCgoKT0+e2ZldGNoKFwiXCIuY29uY2F0KG8uU2V0dGluZ3MuUEFSS1dFQl9MQU5ERVJfQVBJLFwiL3YxL3BhcmtpbmcvZG9tYWluc0ZpbmQvZmVlZGJhY2svXCIpLmNvbmNhdChyLmRvbWFpbkd1aWQpLHttZXRob2Q6XCJQT1NUXCJ9KX0pLFtyLmRvbWFpbkd1aWRdKTtyZXR1cm4oMCxiZS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJhZFRpbGVSb3dcIixjaGlsZHJlbjpbKDAsYmUuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiYWRUaWxlRG9tYWluTGFiZWxcIixjaGlsZHJlbjpbci5pc0FkJiYoMCxiZS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJhZFRpbGVQcm9tb3RlZFwiLGNoaWxkcmVuOigwLGJlLmpzeCkoZGUuWix7aWQ6XCJBVC1Qcm9tb3RlZFwifSl9KSwoMCxiZS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImFkVGlsZURvbWFpblwiLGNoaWxkcmVuOnIuZnFkbn0pXX0pLCgwLGJlLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImFkVGlsZVByaWNlc1wiLGNoaWxkcmVuOltuJiYoMCxiZS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjcm9zc2VkUHJpY2VcIixjaGlsZHJlbjooMCxiZS5qc3gpKE9uLkJLLHt2YWx1ZTpuLHN0eWxlOlwiY3VycmVuY3lcIixjdXJyZW5jeTpcIlVTRFwifSl9KSwoMCxiZS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJzYWxlUHJpY2VcIixjaGlsZHJlbjooMCxiZS5qc3gpKE9uLkJLLHt2YWx1ZTppLHN0eWxlOlwiY3VycmVuY3lcIixjdXJyZW5jeTpcIlVTRFwifSl9KSwoMCxiZS5qc3gpKGpuLHtsaW5rOnIubGluayxvbkNsaWNrOmEsY2hpbGRyZW46KDAsYmUuanN4KShkZS5aLHtpZDpcIkFULUJ1eVwifSl9KV19KV19KX1mdW5jdGlvbiBNbigpe2NvbnN0IGU9TmUoKTtyZXR1cm4oMCxiZS5qc3hzKShcImRpdlwiLHtpZDpcImFkVGlsZVwiLGNoaWxkcmVuOlsoMCxiZS5qc3gpKFwiaDFcIix7Y2hpbGRyZW46KDAsYmUuanN4KShkZS5aLHtpZDpcIkFULUxvb2tpbmdGb3JTaW1pbGFyRG9tYWluc1wifSl9KSwoMCxiZS5qc3gpKFwicFwiLHtjaGlsZHJlbjooMCxiZS5qc3gpKGRlLlose2lkOlwiQVQtQ2hlY2tPdXRUaGVzZVRvcFBpY2tzXCJ9KX0pLCgwLGJlLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwidmVydGljYWxUYWJsZVwiLGNoaWxkcmVuOmUubGFuZGVyQ29uZmlnLmFkVGlsZS5kb21haW5zLm1hcCgoKGUsdCk9PigwLGJlLmpzeCkoRm4se2FkVGlsZURvbWFpbjplfSx0KSkpfSldfSl9ZnVuY3Rpb24gR24oZSl7bGV0e2xhbmRlckNvbmZpZzp0LGNvbnRlbnQ6bn09ZTtjb25zdCByPUVlKHQsbik7cmV0dXJuXCJ1bmRlZmluZWRcIj09PXR5cGVvZiByfHxcIlwiPT09cj9udWxsOigwLGJlLmpzeCkoXCJkaXZcIix7aWQ6XCJkb21haW5JbmZvXCIsY2hpbGRyZW46cn0pfWZ1bmN0aW9uIFVuKGUpe2xldHtsYW5kZXJDb25maWc6dH09ZTtjb25zdCBuPSh0LmRvbWFpbnx8e30pLnJvb3REb21haW5EaXNwbGF5VGV4dDtyZXR1cm5cInVuZGVmaW5lZFwiPT09dHlwZW9mIG58fFwiXCI9PT1uP251bGw6KDAsYmUuanN4KShcImRpdlwiLHtpZDpcImRvbWFpblwiLGNoaWxkcmVuOm59KX1jb25zdCB6bj0oKT0+e2NvbnN0e2xhbmRlckNvbmZpZzp0fT1OZSgpOygwLGUudXNlRWZmZWN0KSgoKCk9Pnt2YXIgZSxuO2NvbnN0IHI9bnVsbCE9PShlPW51bGw9PT10fHx2b2lkIDA9PT10fHxudWxsPT09KG49dC50dXJuS2V5UmVzZWxsZXIpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnByaXZhY3lVcmwpJiZ2b2lkIDAhPT1lP2U6by5TZXR0aW5ncy5QUklWQUNZX1BPTElDWV9VUkw7KChlLHQpPT57aWYoIVYoKSlyZXR1cm47Y29uc3Qgbj1cInRydXN0YXJjLXNjcmlwdFwiO2lmKCEoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShuKS5sZW5ndGg+MCkpe0coKTtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7ci5zcmM9XCJcIi5jb25jYXQoby5TZXR0aW5ncy5UUlVTVEFSQ19TQ1JJUFRfVVJJLFwiP2RvbWFpbj1cIikuY29uY2F0KG8uU2V0dGluZ3MuVFJVU1RBUkNfRE9NQUlOX0lELFwiJmM9XCIpLmNvbmNhdChlKStcIiZqcz1uaiZub3RpY2VUeXBlPWJiJnRleHQ9dHJ1ZVwiK1wiJnByaXZhY3lwb2xpY3lsaW5rPVwiLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQodCkpK1wiJmd0bT0xXCI7Y29uc3QgaT1VKCk7aSYmKHIuc3JjKz1cIiZjb3VudHJ5PVwiLmNvbmNhdChpKSksci5jbGFzc05hbWU9bixyLmFzeW5jPSEwLHIuY3Jvc3NPcmlnaW49XCJcIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpfX0pKF9lLHIpfSksW3QudHVybktleVJlc2VsbGVyXSl9O2Z1bmN0aW9uIFZuKGUpe2xldHtxdWVyeUNvbmZpZzp0fT1lO3puKCk7Y29uc3R7bGFuZGVyQ29uZmlnOm59PU5lKCksaT1uLmFkU2Vuc2U7aWYoIWkuZHJpZHx8IWkucHViSWQpe3IuWi5lcnJvcihcInB1YmlkIG9yIGRyaWQgaXMgbWlzc2luZ1wiKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9VyhjLkVSUk9SLHQpO3IuZXJyb3JDb2RlPWUsci5zVG9rZW49bltkLlNfVE9LRU5dLHEoby5TZXR0aW5ncy5FVkVOVF9QVUJMSVNIX0FQSSxyKX0oaS5kcmlkP3AuRVJST1JfTk9fUFVCSUQ6cC5FUlJPUl9OT19EUklELG4sdCksKDAsYmUuanN4KSh4bix7bGFuZGVyQ29uZmlnOm4scXVlcnlDb25maWc6dH0pfWxlLmluY2x1ZGVzKG4ubGFuZGVyLnRlbXBsYXRlKXx8ci5aLndhcm4oXCJVbmtub3duIHRlbXBsYXRlIFwiK24ubGFuZGVyLnRlbXBsYXRlKTtjb25zdCBhPWZ1bmN0aW9uKGUpe3JldHVybiBlW25lLnF1ZXJ5UGFyYW0uUVVFUlldJiZlW25lLnF1ZXJ5UGFyYW0uQUZEX1RPS0VOXT8oci5aLmRlYnVnKFwiUGFnZSA9IFNQT05TT1JFRF9MSVNUSU5HUywgQ0FGIHF1ZXJ5IGFuZCBhZmRUb2tlbiBmb3VuZFwiKSxlZS5wYWdlLlNQT05TT1JFRF9MSVNUSU5HUyk6KHIuWi5kZWJ1ZyhcIlBhZ2UgPSBSRUxBVEVEX0xJTktTLCBDQUYgcXVlcnkgYW5kIGFmZFRva2VuIG5vdCBmb3VuZFwiKSxlZS5wYWdlLlJFTEFURURfTElOS1MpfSh0KSxzPXllKG4ubGFuZGVyLnRlbXBsYXRlLG4uc3lzdGVtKTtzd2l0Y2gobi5sYW5kZXIudGVtcGxhdGUpe2Nhc2UgZWUudGVtcGxhdGUuU0lNUExFXzJDOmNhc2UgZWUudGVtcGxhdGUuU0lNUExFXzJDX0xJR0hUOmNhc2UgZWUudGVtcGxhdGUuTElHSFRfQkxVRTpjYXNlIGVlLnRlbXBsYXRlLlZFUlRJQ0FMX0xJTkVTOmNhc2UgZWUudGVtcGxhdGUuU0lNUExFXzJDX0VYUEVSSU1FTlQ6Y2FzZSBlZS50ZW1wbGF0ZS5BUlJPV18xOmNhc2UgZWUudGVtcGxhdGUuQVJST1dfMjpjYXNlIGVlLnRlbXBsYXRlLkFSUk9XXzM6cmV0dXJuKDAsYmUuanN4KSh2bix7cGFnZTphLGxhbmRlckNvbmZpZzpuLHF1ZXJ5Q29uZmlnOnQsY29udGVudDpzfSk7Y2FzZSBlZS50ZW1wbGF0ZS5QQVJLX1dFQjpyZXR1cm4oMCxiZS5qc3gpKEhuLHtwYWdlOmEsbGFuZGVyQ29uZmlnOm4scXVlcnlDb25maWc6dCxjb250ZW50OnN9KTtjYXNlIGVlLnRlbXBsYXRlLlBBUktfV0VCX0hFRzpyZXR1cm4oMCxiZS5qc3gpKF9uLHtwYWdlOmEsbGFuZGVyQ29uZmlnOm4scXVlcnlDb25maWc6dCxjb250ZW50OnN9KTtkZWZhdWx0OnJldHVybiByLloud2FybihcIlVua25vd24gdGVtcGxhdGUgXCIrbi5sYW5kZXIudGVtcGxhdGUpLCgwLGJlLmpzeCkodm4se3BhZ2U6YSxsYW5kZXJDb25maWc6bixxdWVyeUNvbmZpZzp0LGNvbnRlbnQ6c30pfX1jbGFzcyBXbntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuY29kZT1lLHRoaXMubWVzc2FnZT1cInVuZGVmaW5lZFwiIT09dHlwZW9mIHQ/dDpcIlwiLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwLHRoaXMuY29kZSl8fHIuWi5lcnJvcihcIkVycm9yIGNvZGUgXCIrdGhpcy5jb2RlK1wiIGlzIHVua25vd24uXCIpfX1mdW5jdGlvbiBxbihlKXtsZXR7ZXJyb3JDb2RlOnQsbWVzc2FnZTpuLGxhbmRlckNvbmZpZzppLHF1ZXJ5Q29uZmlnOmE9e30sc2VuZEV2ZW50OnM9ITF9PWU7Y29uc3QgbD1uZXcgV24odCxuKTtyLlouZXJyb3IobC5jb2RlK1wiIFwiK2wubWVzc2FnZSksXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzJiYhMD09PXMmJmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPVcoYy5FUlJPUixlKTtyLmVycm9yQ29kZT1uLHIuc1Rva2VuPSh0fHx7fSlbZC5TX1RPS0VOXSxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHIuZG9tYWluJiYoci5kb21haW49dD95KHQpOndpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk7cShvLlNldHRpbmdzLkVWRU5UX1BVQkxJU0hfQVBJLHIpfShpLGEsdCk7Y29uc3QgdT0oMCxiZS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46WWUoXCJib2R5XCIsW1wibWFyZ2luOiBhdXRvO1wiLFwicGFkZGluZzogMTBweDtcIixcImJhY2tncm91bmQtY29sb3I6ICNGM0Y3RkM7XCIsXCJmb250LWZhbWlseTogJ0FyaWFsJztcIl0pfSk7cmV0dXJuKDAsYmUuanN4cykoXCJkaXZcIix7Y2hpbGRyZW46W3UsKDAsYmUuanN4KShcImRpdlwiLHtpZDpcImVycm9yTWVzc2FnZVwifSldfSl9cW4uZGVmYXVsdFByb3BzPXtzZW5kRXZlbnQ6ITB9O2NsYXNzIEtuIGV4dGVuZHMgZS5Db21wb25lbnR7Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdCBlPSh0PXRoaXMucHJvcHMucXVlcnlDb25maWcse2V2ZW50VHlwZTpjLlJFRElSRUNUX0ZPUyxkb21haW46eSh0KSxjcmVhdGVkQXQ6KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLHN5c3RlbTpoLlBBUktXRUIsaXA6QShmLkNMSUVOVF9JUCksY291bnRyeTpBKGYuQ09VTlRSWSksY2l0eTpBKGYuQ0lUWSksdmlzaXRvcklkOkQoKSxwcm90b2NvbDpDKCksdXNlckFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsaHR0cFJlZmVyZXI6ZG9jdW1lbnQucmVmZXJyZXI/ZG9jdW1lbnQucmVmZXJyZXI6bnVsbCxpc01vYmlsZTp3KCl9KTt2YXIgdDtxKG8uU2V0dGluZ3MuRVZFTlRfUFVCTElTSF9BUEksZSl9cmVuZGVyKCl7cmV0dXJuKDAsYmUuanN4KShcImlmcmFtZVwiLHt0aXRsZTpcInBhcmtlZC1jb250ZW50XCIsd2lkdGg6XCIxMDAlXCIsZnJhbWVCb3JkZXI6XCIwXCIsaGVpZ2h0OndpbmRvdy5pbm5lckhlaWdodCtcInB4XCIsc3JjOnRoaXMucHJvcHMudGFyZ2V0ZWQuZm9zVXJsLGNoaWxkcmVuOlwiU29ycnkgeW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgaW5saW5lIGZyYW1lcy5cIn0pfX1jb25zdCBabj1lPT57bGV0e2lzSTE4bjp0LGNoaWxkcmVuOm59PWUscj1cImVuLVVTXCI7dCYmKHI9ZmUoKSk7Y29uc3Qgbz1oZShyKTtyZXR1cm4oMCxiZS5qc3gpKG1lLlose2xvY2FsZTpyLG1lc3NhZ2VzOm8sY2hpbGRyZW46bn0pfSxZbj0oKT0+e3ZhciB0LG4scixpLGE7Y29uc3Qgcz1CKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLHtib2R5OmMsZXJyOnV9PSh0PT57Y29uc3RbbixyXT0oMCxlLnVzZVN0YXRlKShudWxsKSxbbyxpXT0oMCxlLnVzZVN0YXRlKShudWxsKTtyZXR1cm4oMCxlLnVzZUVmZmVjdCkoKCgpPT57KGFzeW5jKCk9Pnt0cnl7Y29uc3QgZT1hd2FpdCBmZXRjaCh0LHttZXRob2Q6XCJHRVRcIixoZWFkZXJzOntcIlgtUmVxdWVzdC1JZFwiOl8oKX19KTtpZigyMDAhPT1lLnN0YXR1cyl0aHJvdyBFcnJvcihcIlVuZXhwZWN0ZWQgc3RhdHVzIDpcIi5jb25jYXQoZS5zdGF0dXMpKTtyKGF3YWl0IGUuanNvbigpKX1jYXRjaChlKXtpKGUpfX0pKCl9KSxbdF0pLHtib2R5Om4sZXJyOm99fSkoKGU9Pntjb25zdCB0PXkoZSk7bGV0IG4scj1BKGYuU1lTVEVNKTtpZihcIlwiPT09ciYmKHI9d2luZG93LkxBTkRFUl9TWVNURU0pLHI9PT1oLlBBUktXRUIpe2NvbnN0IGU9QShmLlRSQUZGSUNfVEFSR0VUKTtuPVwiXCIuY29uY2F0KG8uU2V0dGluZ3MuUEFSS1dFQl9MQU5ERVJfQVBJLFwiL3YxL3BhcmtpbmcvbGFuZGVycy9cIikuY29uY2F0KHQsXCI/dHJhZmZpY1RhcmdldD1cIikuY29uY2F0KGUsXCImXCIpLmNvbmNhdChJLk4pfWVsc2V7Y29uc3QgZT1IKCkucG9ydGZvbGlvSWR8fFwiXCI7bj1cIlwiLmNvbmNhdChvLlNldHRpbmdzLkRPTUFJTl9DT05GSUdfQVBJLFwiL3YxL2RvbWFpbnMvZG9tYWluP2RvbWFpbj1cIikuY29uY2F0KHQsXCImcG9ydGZvbGlvSWQ9XCIpLmNvbmNhdChlLFwiJlwiKS5jb25jYXQoSS5OKX1yZXR1cm4gbn0pKHMpKTtpZih1KXJldHVybigwLGJlLmpzeCkocW4se2xhbmRlckNvbmZpZzp7fSxxdWVyeUNvbmZpZzpzLGVycm9yQ29kZTpwLkVSUk9SX0ZFVENISU5HX0RPTUFJTl9DT05GSUcsc2VuZEV2ZW50OiEwfSk7aWYoIWMpcmV0dXJuIG51bGw7aWYoYy50YXJnZXRlZClyZXR1cm4oMCxiZS5qc3gpKEtuLHt0YXJnZXRlZDpjLnRhcmdldGVkLHF1ZXJ5Q29uZmlnOnN9KTtjb25zdCBtPWZ1bmN0aW9uKGUsdCl7ZS51bnRhcmdldGVkJiYoZT1lLnVudGFyZ2V0ZWQpO2NvbnN0IG49e2FjY291bnQ6ZS5hY2NvdW50LGN1c3RvbWVySWQ6ZS5jdXN0b21lcklkLHBvcnRmb2xpb0lkOmUucG9ydGZvbGlvSWQsZGF0YVNvdXJjZTplLmRhdGFTb3VyY2UsZGlzcGxheVR5cGU6ZS5kaXNwbGF5VHlwZSxyb3RhdG9ySWQ6ZS5yb3RhdG9ySWQsc3lzdGVtOmUuc3lzdGVtLGV4cGVyaW1lbnQ6e319LHI9ZS5kb21haW58fHt9O3JldHVybiBuLmRvbWFpbj17cm9vdERvbWFpbjpyLnJvb3REb21haW4scm9vdERvbWFpbkRpc3BsYXlUZXh0OnIucm9vdERvbWFpbkRpc3BsYXlUZXh0LHJvb3REb21haW5Gcm9tQnJvd3NlcjpyLnJvb3REb21haW5Gcm9tQnJvd3NlcixleHBpcmVzQXQ6ci5leHBpcmVzQXQsZXhwaXJlZDpyLmV4cGlyZWQsZW5jcnlwdGVkRG9tYWluOnIuZW5jcnlwdGVkRG9tYWluLHN0YXR1czp7aW50ZXJuYWw6KHIuc3RhdHVzfHx7fSkuaW50ZXJuYWx9LGlzQWR1bHQ6ci5pc0FkdWx0LGhhc0F1Y3Rpb246ci5oYXNBdWN0aW9ufSxlLmFkU2Vuc2UmJihuLmFkU2Vuc2U9e2NoYW5uZWw6ZS5hZFNlbnNlLmNoYW5uZWwsZHJpZDplLmFkU2Vuc2UuZHJpZCxwdWJJZDplLmFkU2Vuc2UucHViSWQsa2V5d29yZHM6dFtkLlRFUk1dfHxlLmFkU2Vuc2Uua2V5d29yZHN9KSxuLmFkVGlsZT17Li4uZS5hZFRpbGV9LGUuZXhwZXJpbWVudCYmKG4uZXhwZXJpbWVudC5rZXk9ZS5leHBlcmltZW50LmV4cGVyaW1lbnQsbi5leHBlcmltZW50LmJ1Y2tldD1lLmV4cGVyaW1lbnQuY29ob3J0LG4uZXhwZXJpbWVudC5zdGFydD1lLmV4cGVyaW1lbnQuc3RhcnQsbi5leHBlcmltZW50LmVuZD1lLmV4cGVyaW1lbnQuZW5kKSxuLmV4cGVyaW1lbnQudGRmc0V4cD1BKGcpLGUubGFuZGVyJiYobi5sYW5kZXI9e3RlbXBsYXRlOnNlKGUsdCksZG9tYWluRGlzcGxheU5hbWU6ZS5sYW5kZXIuZG9tYWluRGlzcGxheU5hbWUsaGVhZGVyVGV4dDplLmxhbmRlci5oZWFkZXJUZXh0LGhlYWRlckh0bWw6ZS5sYW5kZXIuaGVhZGVySHRtbCxmb290ZXJUZXh0OmUubGFuZGVyLmZvb3RlclRleHQsZm9vdGVySHRtbDplLmxhbmRlci5mb290ZXJIdG1sLGV2ZW50Q2FsbGJhY2tVcmw6ZS5sYW5kZXIuZXZlbnRDYWxsYmFja1VybCxzaG93RG9tYWluOmUubGFuZGVyLnNob3dEb21haW4saTE4bjplLmxhbmRlci5pMThuLHNlYXJjaENvdW50OmUubGFuZGVyLnNlYXJjaENvdW50fSksKGUubGFuZGVyfHx7fSkuYmFubmVyJiYobi5sYW5kZXIuYmFubmVyPXtzaG93OlwiYm9vbGVhblwiPT09dHlwZW9mIHRbZC5UREZTXT90W2QuVERGU106ZS5sYW5kZXIuYmFubmVyLnNob3csdHlwZTplLmxhbmRlci5iYW5uZXIudHlwZSxsaW5rOmUubGFuZGVyLmJhbm5lci5saW5rLHRleHQ6ZS5sYW5kZXIuYmFubmVyLnRleHR9KSxlLnR1cm5LZXlSZXNlbGxlciYmKG4udHVybktleVJlc2VsbGVyPXtkaXNwbGF5TmFtZTplLnR1cm5LZXlSZXNlbGxlci5kaXNwbGF5TmFtZSxwcm9ncmFtSWQ6ZS50dXJuS2V5UmVzZWxsZXIucHJvZ3JhbUlkLHByaXZhdGVMYWJlbElkOmUudHVybktleVJlc2VsbGVyLnByaXZhdGVMYWJlbElkLHByaXZhY3lVcmw6ZS50dXJuS2V5UmVzZWxsZXIucHJpdmFjeVVybCxyZWRpcmVjdFVybDplLnR1cm5LZXlSZXNlbGxlci5yZWRpcmVjdFVybH0pLG4uaXNGb3JjZWRWZXJpem9uPXRbZC5WRVJJWk9OX0ZFRURdLFwiYmluXCI9PT1uLmV4cGVyaW1lbnQudGRmc0V4cCYmKG4ubGFuZGVyLmJhbm5lci5saW5rPVwiaHR0cHM6Ly9nb2RhZGR5LmNvbS9mb3JzYWxlL1wiLmNvbmNhdChuLmRvbWFpbi5yb290RG9tYWluLFwiP3RyYWZmaWNfaWQ9TmFtZWZpbmRcIikpLG59KGMscyk7cmV0dXJuKG51bGw9PT0odD1tLmRvbWFpbil8fHZvaWQgMD09PXR8fG51bGw9PT0obj10LnN0YXR1cyl8fHZvaWQgMD09PW4/dm9pZCAwOm4uaW50ZXJuYWwpIT09bD8oMCxiZS5qc3gpKHFuLHtsYW5kZXJDb25maWc6bSxlcnJvckNvZGU6cC5FUlJPUl9ET01BSU5fU1RBVFVTX0lOVkFMSUR9KToobnVsbCE9PShyPW0udHVybktleVJlc2VsbGVyKSYmdm9pZCAwIT09ciYmbnVsbCE9PShpPXIucmVkaXJlY3RVcmwpJiZ2b2lkIDAhPT1pJiZpLnRyaW0oKS5sZW5ndGgmJndpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKG0udHVybktleVJlc2VsbGVyLnJlZGlyZWN0VXJsKSwoMCxiZS5qc3gpKGplLHtsYW5kZXJDb25maWc6bSxxdWVyeUNvbmZpZzpzLGNoaWxkcmVuOigwLGJlLmpzeCkoWm4se2lzSTE4bjpudWxsPT09KGE9bS5sYW5kZXIpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmkxOG4sY2hpbGRyZW46KDAsYmUuanN4KShWbix7cXVlcnlDb25maWc6c30pfSl9KSl9O2NvbnN0ICRuPSgpPT57Y29uc3QgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInJvb3RcIik7dC5yZW5kZXIoKDAsYmUuanN4KShZbix7fSksZSl9Oyhhc3luYygpPT57aWYoXCJub3Rfc2V0XCIhPT1NKXJldHVybjtjb25zdCBlPVwiXCIuY29uY2F0KFwiaHR0cHM6Ly9pbWcxLndzaW1nLmNvbS9wYXJraW5nLWxhbmRlclwiLFwiL3B4LmpzXCIpO3RyeXtNPVwiYmxvY2tfYWxsXCIsYXdhaXQgZmV0Y2goXCJcIi5jb25jYXQoZSxcIj9jaD0xJlwiKS5jb25jYXQoSS5OKSksTT1cImFjY2VwdGFibGVcIixhd2FpdCBmZXRjaChcIlwiLmNvbmNhdChlLFwiP2NoPTImXCIpLmNvbmNhdChJLl8pKSxNPVwibm90X3ByZXNlbnRcIn1jYXRjaCh0KXt9fSkoKSwkbigpfSkoKX0pKCk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYWluLjM4YWRmY2ZhLmpzLm1hcCJ9LCAiaGVhZGVyc1NpemUiOiAzNzcsICJib2R5U2l6ZSI6IDE3NzM2NSwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogMTc3NzQyfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiA5Mi4xNTgsICJjb25uZWN0IjogODQuNTcsICJzc2wiOiA1Mi4wMywgInNlbmQiOiAwLCAid2FpdCI6IDIwLjA5NywgInJlY2VpdmUiOiA1Ni43Nzl9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5IiwgInNlcnZlcklQQWRkcmVzcyI6ICIyMy4wLjE3NC4xMzYiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIkNOPSoud3NpbWcuY29tIiwgInZhbGlkRnJvbSI6IDE2OTUxNTc1NzQsICJ2YWxpZFRvIjogMTcyOTQ1ODM3NH19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjAzLjI3NFoiLCAidGltZSI6IDc2LjA2OSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vaW1nMS53c2ltZy5jb20vcGFya2luZy1sYW5kZXIvc3RhdGljL2Nzcy9tYWluLjExY2UyZWQ5LmNzcyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAidGV4dC9jc3MsKi8qO3E9MC4xIn0sIHsibmFtZSI6ICJSZWZlcmVyIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mci8ifSwgeyJuYW1lIjogIlVzZXItQWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxN18zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNy4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xIn0sIHsibmFtZSI6ICJBY2NlcHQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogIkFjY2VwdC1MYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLURlc3QiLCAidmFsdWUiOiAic3R5bGUifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1Nb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1TaXRlIiwgInZhbHVlIjogImNyb3NzLXNpdGUifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAiaW1nMS53c2ltZy5jb20ifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA0MzMsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICJNb24ifSwgeyJuYW1lIjogIkxhc3QtTW9kaWZpZWQiLCAidmFsdWUiOiAiMjAgTWF5IDIwMjQgMjE6MTg6MTIgR01UIn0sIHsibmFtZSI6ICJFVGFnIiwgInZhbHVlIjogIlwiMDI2YzkxZmE4NjUwODMyZjM3ZWQyZGIyNzhiZGExYTlcIiJ9LCB7Im5hbWUiOiAiQWNjZXB0LVJhbmdlcyIsICJ2YWx1ZSI6ICJieXRlcyJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogInRleHQvY3NzIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIkFjY2VwdC1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiQ29udGVudC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDAifSwgeyJuYW1lIjogIkV4cGlyZXMiLCAidmFsdWUiOiAiV2VkIn0sIHsibmFtZSI6ICJFeHBpcmVzIiwgInZhbHVlIjogIjE4IEp1biAyMDI1IDA1OjU0OjAzIEdNVCJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MDMgR01UIn0sIHsibmFtZSI6ICJDb250ZW50LUxlbmd0aCIsICJ2YWx1ZSI6ICI4OTcifSwgeyJuYW1lIjogIlRpbWluZy1BbGxvdy1PcmlnaW4iLCAidmFsdWUiOiAiKiJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIngtYW16LWlkLTIiLCAidmFsdWUiOiAiK0IxR1hRbmtuQStOeFI5dGhtNDloWndFTUtBQzBEL0dGSm9JQUIyS2lGci9nYUhTdFR4RTlQU0wvU3JjcjkxUmpML2NXSXEyOXdYZm1GT3pCTTFmZ2c9PSJ9LCB7Im5hbWUiOiAieC1hbXotcmVxdWVzdC1pZCIsICJ2YWx1ZSI6ICJKVEZKRUU0QTg3UjQwS1RXIn0sIHsibmFtZSI6ICJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uIiwgInZhbHVlIjogIkFFUzI1NiJ9LCB7Im5hbWUiOiAieC1hbXotdmVyc2lvbi1pZCIsICJ2YWx1ZSI6ICJsaEp5RlVtQXJrUDlGZ3NUUDN6SFNKZzgzZHI2amQuSSJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiAzMTM4LCAibWltZVR5cGUiOiAidGV4dC9jc3MiLCAiY29tcHJlc3Npb24iOiAyMjMyLCAidGV4dCI6ICIuQmFubmVyX2Jhbm5lcl9fRzFjYTN7bWFyZ2luLWJvdHRvbTo1JX0udHJ1c3RBcmNfcGFya2luZ1RydXN0QXJjQmFubmVyX19JandvMCAudHJ1c3RhcmMtYmFubmVyLXdyYXBwZXJ7Ym94LXNoYWRvdzpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTttYXJnaW46MDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nLXRvcDoxcmVtfS50cnVzdEFyY19wYXJraW5nVHJ1c3RBcmNCYW5uZXJfX0lqd28wIC50cnVzdGFyYy1iYW5uZXItd3JhcHBlcj4qe21hcmdpbjphdXRvO21heC13aWR0aDo0MHJlbX0udHJ1c3RBcmNfcGFya2luZ1RydXN0QXJjQmFubmVyX19JandvMCAudHJ1c3RhcmMtYmFubmVyLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojMDAwMCFpbXBvcnRhbnR9LnRydXN0QXJjX3BhcmtpbmdUcnVzdEFyY0Jhbm5lcl9fSWp3bzAgLnRydXN0YXJjLWJhbm5lci1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZTBlMGUwO2JvcmRlci1yYWRpdXM6MTVweCAxNXB4IDAgMDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlMGUwZTA7Ym9yZGVyLXRvcDoxcHggc29saWQgI2UwZTBlMDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOjFyZW19LnRydXN0QXJjX3BhcmtpbmdUcnVzdEFyY0Jhbm5lcl9fSWp3bzAgLnRydXN0YXJjLWJhbm5lci1jb250YWluZXIgLmJhbm5lci1kZXRhaWxzLWNvbnRhaW5lcnttYXJnaW46MH0udHJ1c3RBcmNfcGFya2luZ1RydXN0QXJjQmFubmVyX19JandvMCAudHJ1c3RhcmMtYmFubmVyLWNvbnRhaW5lciAuYmFubmVyLWRldGFpbHMtY29udGFpbmVyIC5kZXNjcmlwdGlvbi1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2dhcDoxcmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjQwcHgpey50cnVzdEFyY19wYXJraW5nVHJ1c3RBcmNCYW5uZXJfX0lqd28wIC50cnVzdGFyYy1iYW5uZXItY29udGFpbmVyIC5iYW5uZXItZGV0YWlscy1jb250YWluZXIgLmRlc2NyaXB0aW9uLWdyb3Vwe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6LjVyZW19fS50cnVzdEFyY19wYXJraW5nVHJ1c3RBcmNCYW5uZXJfX0lqd28wIC50cnVzdGFyYy1iYW5uZXItY29udGFpbmVyIC5iYW5uZXItZGV0YWlscy1jb250YWluZXIgLmRlc2NyaXB0aW9uLWdyb3VwIC5wYXJ0bmVycy1jb250YWluZXJ7cGFkZGluZy1sZWZ0OjB9LnRydXN0QXJjX3BhcmtpbmdUcnVzdEFyY0Jhbm5lcl9fSWp3bzAgLnRydXN0YXJjLWJhbm5lci1jb250YWluZXIgLnRydXN0YXJjLWNvbnNlbnQtYnV0dG9uc3tncmlkLWdhcDouMnJlbTtkaXNwbGF5OmdyaWQ7Z2FwOi4ycmVtO21heC13aWR0aDoxMDAlO3BhZGRpbmc6LjVyZW0gMCAwfS50cnVzdEFyY19wYXJraW5nVHJ1c3RBcmNCYW5uZXJfX0lqd28wIC50cnVzdGFyYy1iYW5uZXItY29udGFpbmVyIC50cnVzdGFyYy1jb25zZW50LWJ1dHRvbnM+KnttYXJnaW46MDt3aWR0aDoxMDAlfS50cnVzdEFyY19wYXJraW5nVHJ1c3RBcmNCYW5uZXJfX0lqd28wIC50cnVzdGFyYy1iYW5uZXItY29udGFpbmVyIC50cnVzdGFyYy1jb25zZW50LWJ1dHRvbnMgLnRydXN0YXJjLWFncmVlLWJ0bntiYWNrZ3JvdW5kLWNvbG9yOiMwMjE5OGI7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo3MDA7Z3JpZC1jb2x1bW4tZW5kOnNwYW4gMjtoZWlnaHQ6M3JlbX0udHJ1c3RBcmNfcGFya2luZ1RydXN0QXJjQmFubmVyX19JandvMCAudHJ1c3RhcmMtYmFubmVyLWNvbnRhaW5lciAudHJ1c3RhcmMtY29uc2VudC1idXR0b25zIC50cnVzdGFyYy1kZWNsaW5lYWxsLWJ0biwudHJ1c3RBcmNfcGFya2luZ1RydXN0QXJjQmFubmVyX19JandvMCAudHJ1c3RhcmMtYmFubmVyLWNvbnRhaW5lciAudHJ1c3RhcmMtY29uc2VudC1idXR0b25zIC50cnVzdGFyYy1tYW5hZ2UtYnRue2JhY2tncm91bmQtY29sb3I6IzAwMDA7Ym9yZGVyOm5vbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0udHJ1c3RBcmNfcGFya2luZ1RydXN0QXJjQmFubmVyX19JandvMCAudHJ1c3RhcmMtYmFubmVyLWZvb3Rlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTBlMGUwO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZTBlMGUwO2JvcmRlci1yYWRpdXM6MCAwIDE1cHggMTVweDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlMGUwZTA7Ym94LXNpemluZzpib3JkZXItYm94fS50cnVzdEFyY19wYXJraW5nVHJ1c3RBcmNCYW5uZXJfX0lqd28wIC50cnVzdGFyYy1iYW5uZXItaGVhZGVye2ZvbnQtc2l6ZToxMXB4fS50cnVzdEFyY19wYXJraW5nVHJ1c3RBcmNCYW5uZXJfX0lqd28wIC50cnVzdGFyYy1iYW5uZXItYm9keXtmb250LXNpemU6OHB4O2xpbmUtaGVpZ2h0Om5vcm1hbDtwYWRkaW5nLXRvcDouNXJlbX0uRG9tYWluRGlzcGxheV9kb21haW5EaXNwbGF5TGF5b3V0X19cXCtHcGtIe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTAwJX0uRG9tYWluRGlzcGxheV9pbnRsTWVzc2FnZV9fTFBGWnF7Zm9udC1zaXplOjEycHg7cGFkZGluZy10b3A6OHB4fS5Eb21haW5EaXNwbGF5X2ludGVybmF0aW9uYWxpemVkTGlua19fVUFsa257Y29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5mb290ZXJfc3BhY2VCZXR3ZWVuX18xeXRnY3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOi41cmVtO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmZvb3Rlcl9jZW50ZXJUZXh0X19iR2V0MXt0ZXh0LWFsaWduOmNlbnRlcn0uZm9vdGVyX3Bhcmt3ZWJGb290ZXJfX0ZFbjM5e3BhZGRpbmctdG9wOjFyZW19LmZvb3Rlcl9wYXJrd2ViRGlzY2xhaW1lclRleHRfX1BFV2lte2ZvbnQtc2l6ZTpzbWFsbDtsaW5lLWhlaWdodDoxLjVyZW07bWFyZ2luOjFyZW0gM3JlbTt0ZXh0LWFsaWduOmNlbnRlcn0uc2ltcGxlMkNfZG9tYWluRGlzcGxheV9fQVh6c0l7Y29sb3I6I2NjYzttYXJnaW4tYm90dG9tOjNyZW07bWFyZ2luLXRvcDozcmVtfS5sYW5kZXJzX3BhZGRpbmdUb3BfX1E4RW1Ze3BhZGRpbmctdG9wOjFyZW19XG4vKiMgc291cmNlTWFwcGluZ1VSTD1tYWluLjExY2UyZWQ5LmNzcy5tYXAqLyJ9LCAiaGVhZGVyc1NpemUiOiAzNzYsICJib2R5U2l6ZSI6IDkwNiwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogMTI4Mn0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDc0LjM3MywgInJlY2VpdmUiOiAxLjY5Nn0sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIjIzLjAuMTc0LjEzNiIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiQ049Ki53c2ltZy5jb20iLCAidmFsaWRGcm9tIjogMTY5NTE1NzU3NCwgInZhbGlkVG8iOiAxNzI5NDU4Mzc0fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MDMuNjQxWiIsICJ0aW1lIjogMjAuNDUzOTk5OTk5OTk5OTk3LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9pbWcxLndzaW1nLmNvbS9wYXJraW5nLWxhbmRlci9weC5qcz9jaD0xJmFicD0xJmdkYWJwPXRydWUiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiT3JpZ2luIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mciJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImVtcHR5In0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJjb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImltZzEud3NpbWcuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImNoIiwgInZhbHVlIjogIjEifSwgeyJuYW1lIjogImFicCIsICJ2YWx1ZSI6ICIxIn0sIHsibmFtZSI6ICJnZGFicCIsICJ2YWx1ZSI6ICJ0cnVlIn1dLCAiaGVhZGVyc1NpemUiOiA0MjksICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICJNb24ifSwgeyJuYW1lIjogIkxhc3QtTW9kaWZpZWQiLCAidmFsdWUiOiAiMjAgTWF5IDIwMjQgMjE6MTg6MTMgR01UIn0sIHsibmFtZSI6ICJFVGFnIiwgInZhbHVlIjogIlwiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2VcIiJ9LCB7Im5hbWUiOiAiQWNjZXB0LVJhbmdlcyIsICJ2YWx1ZSI6ICJieXRlcyJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJDb250ZW50LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogIkNvbnRlbnQtTGVuZ3RoIiwgInZhbHVlIjogIjIwIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDAifSwgeyJuYW1lIjogIkV4cGlyZXMiLCAidmFsdWUiOiAiV2VkIn0sIHsibmFtZSI6ICJFeHBpcmVzIiwgInZhbHVlIjogIjE4IEp1biAyMDI1IDA1OjU0OjAzIEdNVCJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MDMgR01UIn0sIHsibmFtZSI6ICJUaW1pbmctQWxsb3ctT3JpZ2luIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJ4LWFtei1pZC0yIiwgInZhbHVlIjogIjYyQTJtbGp1cmhJb2NuNW9lVHFOcmZ4NnFQYVpkSWhnbU5EazJ6eWc5bllRMktkWFhTOU9ibTJnMHcrZ2dVUWcrOXFSUEZyUXhjTFl3OHVIOE5IdnBnPT0ifSwgeyJuYW1lIjogIngtYW16LXJlcXVlc3QtaWQiLCAidmFsdWUiOiAiSE01OThFNlRXNEZGV0ZHRiJ9LCB7Im5hbWUiOiAieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbiIsICJ2YWx1ZSI6ICJBRVMyNTYifSwgeyJuYW1lIjogIngtYW16LXZlcnNpb24taWQiLCAidmFsdWUiOiAiSlg2aGVaWXVkRlZkSno3OGdrMFExbWxTNk9qUTAyLk0ifV0sICJjb250ZW50IjogeyJzaXplIjogMCwgIm1pbWVUeXBlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICIifSwgImhlYWRlcnNTaXplIjogMzg0LCAiYm9keVNpemUiOiAyOSwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogNDEzfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogMTguODcxLCAicmVjZWl2ZSI6IDEuNTgzfSwgInBhZ2VyZWYiOiAicGFnZUA1YzA5MWM3ZWQxODA4OTZlYWIzYjIwZmJhOWZlOTRhOSIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiMjMuMC4xNzQuMTM2IiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICJDTj0qLndzaW1nLmNvbSIsICJ2YWxpZEZyb20iOiAxNjk1MTU3NTc0LCAidmFsaWRUbyI6IDE3Mjk0NTgzNzR9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQwNTo1NDowMy43MDJaIiwgInRpbWUiOiAxMDY3LjIyOCwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vYXBpLmF3cy5wYXJraW5nLmdvZGFkZHkuY29tL3YxL3BhcmtpbmcvbGFuZGVycy9iYXBzbWFuZGlyZGVwYXJpcy5mcj90cmFmZmljVGFyZ2V0PWdkJmFicD0xJmdkYWJwPXRydWUiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiT3JpZ2luIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mciJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImVtcHR5In0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJjb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJYLVJlcXVlc3QtSWQiLCAidmFsdWUiOiAiYzkxYjY4NmQtMDJmNS00NjNlLWI3ZWUtNjQwMDkwZDkxMTlmIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImFwaS5hd3MucGFya2luZy5nb2RhZGR5LmNvbSJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJ0cmFmZmljVGFyZ2V0IiwgInZhbHVlIjogImdkIn0sIHsibmFtZSI6ICJhYnAiLCAidmFsdWUiOiAiMSJ9LCB7Im5hbWUiOiAiZ2RhYnAiLCAidmFsdWUiOiAidHJ1ZSJ9XSwgImhlYWRlcnNTaXplIjogNTEzLCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIk9LIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbeyJuYW1lIjogIkFXU0FMQiIsICJ2YWx1ZSI6ICJsZTRlbWxJWmlGRWFvTFprUjJSQXNlbk5JNjVxbTBLcmhkaFN3MzhCZDdpZStWTlByRWQwRGVlM0hocHRsUWQ1b01vK083RHF3ZVQ5M1FITFQ4SFRtL1JnMjZpeGdSSjhodnpOSGxaWC9xRVU3WnlvM3NEZkpTRW1LR1k3IiwgImV4cGlyZXMiOiAiMjAyNC0wNi0yNVQwNTo1NDowNC4wMDBaIiwgInBhdGgiOiAiLyJ9LCB7Im5hbWUiOiAiQVdTQUxCQ09SUyIsICJ2YWx1ZSI6ICJsZTRlbWxJWmlGRWFvTFprUjJSQXNlbk5JNjVxbTBLcmhkaFN3MzhCZDdpZStWTlByRWQwRGVlM0hocHRsUWQ1b01vK083RHF3ZVQ5M1FITFQ4SFRtL1JnMjZpeGdSSjhodnpOSGxaWC9xRVU3WnlvM3NEZkpTRW1LR1k3IiwgImV4cGlyZXMiOiAiMjAyNC0wNi0yNVQwNTo1NDowNC4wMDBaIiwgInBhdGgiOiAiLyIsICJzYW1lU2l0ZSI6ICJOb25lIiwgInNlY3VyZSI6IHRydWV9XSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA1OjU0OjA0IEdNVCJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24ifSwgeyJuYW1lIjogIkNvbnRlbnQtTGVuZ3RoIiwgInZhbHVlIjogIjg4NCJ9LCB7Im5hbWUiOiAiU2V0LUNvb2tpZSIsICJ2YWx1ZSI6ICJBV1NBTEI9bGU0ZW1sSVppRkVhb0xaa1IyUkFzZW5OSTY1cW0wS3JoZGhTdzM4QmQ3aWUrVk5QckVkMERlZTNIaHB0bFFkNW9NbytPN0Rxd2VUOTNRSExUOEhUbS9SZzI2aXhnUko4aHZ6TkhsWlgvcUVVN1p5bzNzRGZKU0VtS0dZNzsgRXhwaXJlcz1UdWUsIDI1IEp1biAyMDI0IDA1OjU0OjA0IEdNVDsgUGF0aD0vIn0sIHsibmFtZSI6ICJTZXQtQ29va2llIiwgInZhbHVlIjogIkFXU0FMQkNPUlM9bGU0ZW1sSVppRkVhb0xaa1IyUkFzZW5OSTY1cW0wS3JoZGhTdzM4QmQ3aWUrVk5QckVkMERlZTNIaHB0bFFkNW9NbytPN0Rxd2VUOTNRSExUOEhUbS9SZzI2aXhnUko4aHZ6TkhsWlgvcUVVN1p5bzNzRGZKU0VtS0dZNzsgRXhwaXJlcz1UdWUsIDI1IEp1biAyMDI0IDA1OjU0OjA0IEdNVDsgUGF0aD0vOyBTYW1lU2l0ZT1Ob25lOyBTZWN1cmUifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIiwgInZhbHVlIjogInRydWUifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLU1heC1BZ2UiLCAidmFsdWUiOiAiNjAwIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIlByaXZhdGUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibWF4LWFnZT04NjQwMCJ9LCB7Im5hbWUiOiAieC1yZXF1ZXN0LWlkIiwgInZhbHVlIjogImM5MWI2ODZkLTAyZjUtNDYzZS1iN2VlLTY0MDA5MGQ5MTE5ZiJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiA4ODQsICJtaW1lVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwgImNvbXByZXNzaW9uIjogMCwgInRleHQiOiAie1widW50YXJnZXRlZFwiOntcInN5c3RlbVwiOlwiUFdcIixcImRpc3BsYXlUeXBlXCI6XCJBRFNcIixcImRhdGFTb3VyY2VcIjpcIklOVkVOVE9SWVwiLFwiYWRTZW5zZVwiOntcImRyaWRcIjpcImFzLWRyaWQtb28tMTg4NTcxNDE4NjU0MDg5NFwiLFwiY2hhbm5lbFwiOlwibm9uLWV4cGlyeVwiLFwicHViSWRcIjpcImRwLWdvZGFkZHkxX3htbFwifSxcImFkVGlsZVwiOntcInNlYXJjaFJlc3VsdENvZGVcIjpcIk5PTkVcIn0sXCJkb21haW5cIjp7XCJyb290RG9tYWluXCI6XCJiYXBzbWFuZGlyZGVwYXJpcy5mclwiLFwicm9vdERvbWFpbkZyb21Ccm93c2VyXCI6XCJiYXBzbWFuZGlyZGVwYXJpcy5mclwiLFwicm9vdERvbWFpbkRpc3BsYXlUZXh0XCI6XCJiYXBzbWFuZGlyZGVwYXJpcy5mclwiLFwiZXhwaXJlZFwiOmZhbHNlLFwiZXhwaXJlc0F0XCI6XCJcIixcInN0YXR1c1wiOntcImludGVybmFsXCI6XCJBQ1RJVkVcIn0sXCJoYXNBdWN0aW9uXCI6ZmFsc2V9LFwibGFuZGVyXCI6e1widGVtcGxhdGVcIjpcIlBBUktfV0VCXCIsXCJiYW5uZXJcIjp7XCJzaG93XCI6dHJ1ZSxcImxpbmtcIjpcImh0dHBzOi8vd3d3LmdvZGFkZHkuY29tL2RvbWFpbmZpbmQvdjEvcmVkaXJlY3Q/a2V5PXBhcmt3ZWJcXHUwMDI2dXRtX3NvdXJjZT1nb2RhZGR5XFx1MDAyNnV0bV9tZWRpdW09cGFya2VkcGFnZXNcXHUwMDI2dXRtX2NhbXBhaWduPXhfZG9tLWJyb2tlcl9wYXJrZWRwYWdlc194X3hfaW52ZXN0XzAwMVxcdTAwMjZ0bXNrZXk9ZHBwX2Ric1xcdTAwMjZkb21haW5Ub0NoZWNrPWJhcHNtYW5kaXJkZXBhcmlzLmZyXFx1MDAyNmlzYz1HUFBUQ09NXFx1MDAyNml0Yz1wYXJrZWRwYWdlX2xhbmRlcnNcIixcInR5cGVcIjpcIkRCU1wifSxcImFkc1wiOntcInNob3dcIjp0cnVlfSxcImkxOG5cIjp0cnVlfSxcImV4cGVyaW1lbnRcIjp7XCJleHBlcmltZW50XCI6XCJcIixcInN0YXJ0XCI6XCJcIixcImVuZFwiOlwiXCIsXCJlbmFibGVkXCI6ZmFsc2V9fX1cbiJ9LCAiaGVhZGVyc1NpemUiOiA1MzMsICJib2R5U2l6ZSI6IDkwMiwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogMTQzNX0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDE4OC43NDUsICJyZWNlaXZlIjogODc4LjQ4M30sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIjUyLjIwNS4yMjUuNjgiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4yIiwgInN1YmplY3ROYW1lIjogIkNOPSouYXdzLnBhcmtpbmcuZ29kYWRkeS5jb20iLCAidmFsaWRGcm9tIjogMTcxMzIwNDQ3NSwgInZhbGlkVG8iOiAxNzQ3NTA1Mjc1fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MDMuNzAyWiIsICJ0aW1lIjogMTkuNzk0OTk5OTk5OTk5OTk4LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9pbWcxLndzaW1nLmNvbS9wYXJraW5nLWxhbmRlci9weC5qcz9jaD0yJmFicD0yJmdkYWJwPXRydWUiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiT3JpZ2luIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mciJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImVtcHR5In0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJjb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImltZzEud3NpbWcuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImNoIiwgInZhbHVlIjogIjIifSwgeyJuYW1lIjogImFicCIsICJ2YWx1ZSI6ICIyIn0sIHsibmFtZSI6ICJnZGFicCIsICJ2YWx1ZSI6ICJ0cnVlIn1dLCAiaGVhZGVyc1NpemUiOiA0MjksICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICJNb24ifSwgeyJuYW1lIjogIkxhc3QtTW9kaWZpZWQiLCAidmFsdWUiOiAiMjAgTWF5IDIwMjQgMjE6MTg6MTMgR01UIn0sIHsibmFtZSI6ICJFVGFnIiwgInZhbHVlIjogIlwiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2VcIiJ9LCB7Im5hbWUiOiAiQWNjZXB0LVJhbmdlcyIsICJ2YWx1ZSI6ICJieXRlcyJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJDb250ZW50LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibWF4LWFnZT0zMTUzNjAwMCJ9LCB7Im5hbWUiOiAiRXhwaXJlcyIsICJ2YWx1ZSI6ICJXZWQifSwgeyJuYW1lIjogIkV4cGlyZXMiLCAidmFsdWUiOiAiMTggSnVuIDIwMjUgMDU6NTQ6MDMgR01UIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIlR1ZSJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICIxOCBKdW4gMjAyNCAwNTo1NDowMyBHTVQifSwgeyJuYW1lIjogIkNvbnRlbnQtTGVuZ3RoIiwgInZhbHVlIjogIjIwIn0sIHsibmFtZSI6ICJUaW1pbmctQWxsb3ctT3JpZ2luIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJ4LWFtei1pZC0yIiwgInZhbHVlIjogImhKV0pqc2wyUmg5SFhseC84Y1lHYStKTzVpc05MQ2V3OWJUVnVqUTM4RTE5OENJM0piamJzb01vUnNkYVdlQzRPbU43K3JOM0tRbGsvaVozVUxDTnBnPT0ifSwgeyJuYW1lIjogIngtYW16LXJlcXVlc3QtaWQiLCAidmFsdWUiOiAiQVQ2RlYxQU1KWUo0RUZZNSJ9LCB7Im5hbWUiOiAieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbiIsICJ2YWx1ZSI6ICJBRVMyNTYifSwgeyJuYW1lIjogIngtYW16LXZlcnNpb24taWQiLCAidmFsdWUiOiAiSlg2aGVaWXVkRlZkSno3OGdrMFExbWxTNk9qUTAyLk0ifV0sICJjb250ZW50IjogeyJzaXplIjogMCwgIm1pbWVUeXBlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICIifSwgImhlYWRlcnNTaXplIjogMzg0LCAiYm9keVNpemUiOiAyOSwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogNDEzfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogMTguNzM4LCAicmVjZWl2ZSI6IDEuMDU3fSwgInBhZ2VyZWYiOiAicGFnZUA1YzA5MWM3ZWQxODA4OTZlYWIzYjIwZmJhOWZlOTRhOSIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiMjMuMC4xNzQuMTM2IiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICJDTj0qLndzaW1nLmNvbSIsICJ2YWxpZEZyb20iOiAxNjk1MTU3NTc0LCAidmFsaWRUbyI6IDE3Mjk0NTgzNzR9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQwNTo1NDowMy43MDNaIiwgInRpbWUiOiAxNDYuMjQ0LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9hZC1kZWxpdmVyeS5uZXQvcHguZ2lmP2NoPTIiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQWNjZXB0IiwgInZhbHVlIjogImltYWdlL3dlYnAsaW1hZ2UvanhsLHZpZGVvLyo7cT0wLjgsaW1hZ2UvcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2UvKjtxPTAuOCwqLyo7cT0wLjUifSwgeyJuYW1lIjogIlJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cDovL2JhcHNtYW5kaXJkZXBhcmlzLmZyLyJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE3XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtRGVzdCIsICJ2YWx1ZSI6ICJpbWFnZSJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLU1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAiSG9zdCIsICJ2YWx1ZSI6ICJhZC1kZWxpdmVyeS5uZXQifV0sICJxdWVyeVN0cmluZyI6IFt7Im5hbWUiOiAiY2giLCAidmFsdWUiOiAiMiJ9XSwgImhlYWRlcnNTaXplIjogNDYxLCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIk9LIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA1OjU0OjAzIEdNVCJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImltYWdlL2dpZiJ9LCB7Im5hbWUiOiAiQ29udGVudC1MZW5ndGgiLCAidmFsdWUiOiAiNDMifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ2YWx1ZSI6ICJDb250ZW50LUxlbmd0aCJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAidmFsdWUiOiAiRGF0ZSJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAidmFsdWUiOiAiU2VydmVyIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ2YWx1ZSI6ICJUcmFuc2Zlci1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAidmFsdWUiOiAiWC1HVXBsb2FkZXItVXBsb2FkSUQifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgInZhbHVlIjogIlgtR29vZ2xlLVRyYWNlIn0sIHsibmFtZSI6ICJFeHBpcmVzIiwgInZhbHVlIjogIk1vbiJ9LCB7Im5hbWUiOiAiRXhwaXJlcyIsICJ2YWx1ZSI6ICIwMyBKdW4gMjAyNCAyMjozMzozMiBHTVQifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAicHVibGljIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9ODY0MDAifSwgeyJuYW1lIjogIkFnZSIsICJ2YWx1ZSI6ICIxMjM3NTQxIn0sIHsibmFtZSI6ICJMYXN0LU1vZGlmaWVkIiwgInZhbHVlIjogIldlZCJ9LCB7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICIwNSBNYXkgMjAyMSAxOToyNTozMiBHTVQifSwgeyJuYW1lIjogIkVUYWciLCAidmFsdWUiOiAiXCJhZDRiMGY2MDZlMGY4NDY1YmM0YzRjMTcwYjM3ZTFhM1wiIn0sIHsibmFtZSI6ICJBY2NlcHQtUmFuZ2VzIiwgInZhbHVlIjogImJ5dGVzIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIkFjY2VwdC1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiUmVwb3J0LVRvIiwgInZhbHVlIjogIntcImVuZHBvaW50c1wiOlt7XCJ1cmxcIjpcImh0dHBzOlxcL1xcL2EubmVsLmNsb3VkZmxhcmUuY29tXFwvcmVwb3J0XFwvdjQ/cz1nd3JVekxRZnF6YlZyYktyTnolMkJvMTIxUW9zNVRlJTJCSUt0R3dRU1A2V1V3VSUyRklZcENod1E2Z0lZMVZqd2lKVnZKMHVFaGxzR3o4R0dKb2R1eTNwMVFacWFyQWswcWsyR0JZaU1mdmUlMkJCalRDdWtjN2ljbHZBM01HczNNb2FPWmklMkI2a1pFUjlqUGVxb0k3dUVuaVElM0QlM0RcIn1dIn0sIHsibmFtZSI6ICJSZXBvcnQtVG8iLCAidmFsdWUiOiAiXCJncm91cFwiOlwiY2YtbmVsXCIifSwgeyJuYW1lIjogIlJlcG9ydC1UbyIsICJ2YWx1ZSI6ICJcIm1heF9hZ2VcIjo2MDQ4MDB9In0sIHsibmFtZSI6ICJTZXJ2ZXIiLCAidmFsdWUiOiAiY2xvdWRmbGFyZSJ9LCB7Im5hbWUiOiAieC1nb29nLWdlbmVyYXRpb24iLCAidmFsdWUiOiAiMTYyMDI0MjczMjAzNzA5MyJ9LCB7Im5hbWUiOiAieC1nb29nLW1ldGFnZW5lcmF0aW9uIiwgInZhbHVlIjogIjUifSwgeyJuYW1lIjogIngtZ29vZy1zdG9yZWQtY29udGVudC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJpZGVudGl0eSJ9LCB7Im5hbWUiOiAieC1nb29nLXN0b3JlZC1jb250ZW50LWxlbmd0aCIsICJ2YWx1ZSI6ICI0MyJ9LCB7Im5hbWUiOiAieC1nb29nLWhhc2giLCAidmFsdWUiOiAiY3JjMzJjPWNwRWZKUT09In0sIHsibmFtZSI6ICJ4LWdvb2ctaGFzaCIsICJ2YWx1ZSI6ICJtZDU9clVzUFlHNFBoR1c4VEV3WEN6Zmhvdz09In0sIHsibmFtZSI6ICJ4LWdvb2ctc3RvcmFnZS1jbGFzcyIsICJ2YWx1ZSI6ICJNVUxUSV9SRUdJT05BTCJ9LCB7Im5hbWUiOiAieC1ndXBsb2FkZXItdXBsb2FkaWQiLCAidmFsdWUiOiAiQUJQdGNQb0wwWEM4S0FyYkpLdTZRU1RPNXB1M0k3WE8xZXo4ZWF0MF8xbHp1ektQUWFWcTdibXZBYWY3ZE00SmhjQWxsRkVveGR4UEZMNy1adyJ9LCB7Im5hbWUiOiAiY2YtY2FjaGUtc3RhdHVzIiwgInZhbHVlIjogIkhJVCJ9LCB7Im5hbWUiOiAibmVsIiwgInZhbHVlIjogIntcInN1Y2Nlc3NfZnJhY3Rpb25cIjowIn0sIHsibmFtZSI6ICJuZWwiLCAidmFsdWUiOiAiXCJyZXBvcnRfdG9cIjpcImNmLW5lbFwiIn0sIHsibmFtZSI6ICJuZWwiLCAidmFsdWUiOiAiXCJtYXhfYWdlXCI6NjA0ODAwfSJ9LCB7Im5hbWUiOiAiY2YtcmF5IiwgInZhbHVlIjogIjg5NTkwNWM1OWYyOTFjM2MtRlJBIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDQzLCAibWltZVR5cGUiOiAiaW1hZ2UvZ2lmIiwgImNvbXByZXNzaW9uIjogMCwgInRleHQiOiAiUjBsR09EbGhBUUFCQUlBQkFBQUFBUC8vL3lINUJBRUFBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiwgImVuY29kaW5nIjogImJhc2U2NCJ9LCAiaGVhZGVyc1NpemUiOiAyNzksICJib2R5U2l6ZSI6IDYxLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAzNDB9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IDIuMTAxLCAiY29ubmVjdCI6IDg4LjY5MSwgInNzbCI6IDMyLjUzMywgInNlbmQiOiAwLCAid2FpdCI6IDIxLjE3MywgInJlY2VpdmUiOiAxLjc0Nn0sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIlsyNjA2OjQ3MDA6MjA6OjY4MWE6MjQ2XSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiQ049YWQtZGVsaXZlcnkubmV0IiwgInZhbGlkRnJvbSI6IDE3MTU5MzUxNDMsICJ2YWxpZFRvIjogMTcyMzcxMTE0Mn19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjAzLjcwM1oiLCAidGltZSI6IDEzMy4wODUsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2FkLmRvdWJsZWNsaWNrLm5ldC9mYXZpY29uLmljbz9hZD0zMDB4MjUwJmFkX2JveF89MSZhZG5ldD0xJnNob3dhZD0xJnNpemU9MjUweDI1MCIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiaW1hZ2Uvd2VicCxpbWFnZS9qeGwsdmlkZW8vKjtxPTAuOCxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qO3E9MC44LCovKjtxPTAuNSJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImltYWdlIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImFkLmRvdWJsZWNsaWNrLm5ldCJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJhZCIsICJ2YWx1ZSI6ICIzMDB4MjUwIn0sIHsibmFtZSI6ICJhZF9ib3hfIiwgInZhbHVlIjogIjEifSwgeyJuYW1lIjogImFkbmV0IiwgInZhbHVlIjogIjEifSwgeyJuYW1lIjogInNob3dhZCIsICJ2YWx1ZSI6ICIxIn0sIHsibmFtZSI6ICJzaXplIiwgInZhbHVlIjogIjI1MHgyNTAifV0sICJoZWFkZXJzU2l6ZSI6IDQ2OSwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQtUmFuZ2VzIiwgInZhbHVlIjogImJ5dGVzIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAidmFsdWUiOiAiKiJ9LCB7Im5hbWUiOiAiQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSIsICJ2YWx1ZSI6ICJjcm9zcy1vcmlnaW4ifSwgeyJuYW1lIjogIkNvbnRlbnQtTGVuZ3RoIiwgInZhbHVlIjogIjEwNCJ9LCB7Im5hbWUiOiAiWC1Db250ZW50LVR5cGUtT3B0aW9ucyIsICJ2YWx1ZSI6ICJub3NuaWZmIn0sIHsibmFtZSI6ICJDb250ZW50LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogIlgtWFNTLVByb3RlY3Rpb24iLCAidmFsdWUiOiAiMCJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NDg6MjggR01UIn0sIHsibmFtZSI6ICJFeHBpcmVzIiwgInZhbHVlIjogIldlZCJ9LCB7Im5hbWUiOiAiRXhwaXJlcyIsICJ2YWx1ZSI6ICIxOSBKdW4gMjAyNCAwNTo0ODoyOCBHTVQifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAicHVibGljIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9ODY0MDAifSwgeyJuYW1lIjogIkxhc3QtTW9kaWZpZWQiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJMYXN0LU1vZGlmaWVkIiwgInZhbHVlIjogIjA4IE1heSAyMDEyIDEzOjA4OjA2IEdNVCJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImltYWdlL3gtaWNvbiJ9LCB7Im5hbWUiOiAiVmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogIkFnZSIsICJ2YWx1ZSI6ICIzMzUifSwgeyJuYW1lIjogIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5LVJlcG9ydC1Pbmx5IiwgInZhbHVlIjogInNhbWUtb3JpZ2luOyByZXBvcnQtdG89XCJhZHMtZG91YmxlY2xpY2stbWVkaWFcIiJ9LCB7Im5hbWUiOiAiUmVwb3J0LVRvIiwgInZhbHVlIjogIntcImdyb3VwXCI6XCJhZHMtZG91YmxlY2xpY2stbWVkaWFcIiJ9LCB7Im5hbWUiOiAiUmVwb3J0LVRvIiwgInZhbHVlIjogIlwibWF4X2FnZVwiOjI1OTIwMDAifSwgeyJuYW1lIjogIlJlcG9ydC1UbyIsICJ2YWx1ZSI6ICJcImVuZHBvaW50c1wiOlt7XCJ1cmxcIjpcImh0dHBzOi8vY3NwLndpdGhnb29nbGUuY29tL2NzcC9yZXBvcnQtdG8vYWRzLWRvdWJsZWNsaWNrLW1lZGlhXCJ9XX0ifSwgeyJuYW1lIjogIlNlcnZlciIsICJ2YWx1ZSI6ICJzZmZlIn0sIHsibmFtZSI6ICJhbHQtc3ZjIiwgInZhbHVlIjogImgzPVwiOjQ0M1wiOyBtYT0yNTkyMDAwIn0sIHsibmFtZSI6ICJhbHQtc3ZjIiwgInZhbHVlIjogImgzLTI5PVwiOjQ0M1wiOyBtYT0yNTkyMDAwIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDEwNzgsICJtaW1lVHlwZSI6ICJpbWFnZS94LWljb24iLCAiY29tcHJlc3Npb24iOiA5NjUsICJ0ZXh0IjogIkFBQUJBQUlBRUJBUUFBQUFBQUFvQVFBQUpnQUFBQ0FnRUFBQUFBQUE2QUlBQUU0QkFBQW9BQUFBRUFBQUFDQUFBQUFCQUFRQUFBQUFBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDZ0FBQUFnQUFBQVFBQUFBQUVBQkFBQUFBQUFnQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PSIsICJlbmNvZGluZyI6ICJiYXNlNjQifSwgImhlYWRlcnNTaXplIjogNDU3LCAiYm9keVNpemUiOiAxMTMsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDU3MH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogNTguNDk4LCAiY29ubmVjdCI6IDQ2Ljg4MywgInNzbCI6IDE5LjM3MiwgInNlbmQiOiAwLCAid2FpdCI6IDYuNzk1LCAicmVjZWl2ZSI6IDEuNTM3fSwgInBhZ2VyZWYiOiAicGFnZUA1YzA5MWM3ZWQxODA4OTZlYWIzYjIwZmJhOWZlOTRhOSIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiMTQyLjI1MC4xODUuMTk4IiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICJDTj0qLmRvdWJsZWNsaWNrLm5ldCIsICJ2YWxpZEZyb20iOiAxNzE2NzkxNzMwLCAidmFsaWRUbyI6IDE3MjQwNDkzMjl9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQwNTo1NDowMy43MDRaIiwgInRpbWUiOiAyMi42MDcsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2FkLWRlbGl2ZXJ5Lm5ldC9weC5naWY/Y2g9MSZlPTAuMjU1MjE1NzEzNjI5MTM0MSIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiaW1hZ2Uvd2VicCxpbWFnZS9qeGwsdmlkZW8vKjtxPTAuOCxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qO3E9MC44LCovKjtxPTAuNSJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImltYWdlIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImFkLWRlbGl2ZXJ5Lm5ldCJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJjaCIsICJ2YWx1ZSI6ICIxIn0sIHsibmFtZSI6ICJlIiwgInZhbHVlIjogIjAuMjU1MjE1NzEzNjI5MTM0MSJ9XSwgImhlYWRlcnNTaXplIjogNDYxLCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIk9LIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA1OjU0OjAzIEdNVCJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImltYWdlL2dpZiJ9LCB7Im5hbWUiOiAiQ29udGVudC1MZW5ndGgiLCAidmFsdWUiOiAiNDMifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ2YWx1ZSI6ICJDb250ZW50LUxlbmd0aCJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAidmFsdWUiOiAiRGF0ZSJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAidmFsdWUiOiAiU2VydmVyIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ2YWx1ZSI6ICJUcmFuc2Zlci1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAidmFsdWUiOiAiWC1HVXBsb2FkZXItVXBsb2FkSUQifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgInZhbHVlIjogIlgtR29vZ2xlLVRyYWNlIn0sIHsibmFtZSI6ICJFeHBpcmVzIiwgInZhbHVlIjogIk1vbiJ9LCB7Im5hbWUiOiAiRXhwaXJlcyIsICJ2YWx1ZSI6ICIwMyBKdW4gMjAyNCAyMjozMzozMiBHTVQifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAicHVibGljIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9ODY0MDAifSwgeyJuYW1lIjogIkFnZSIsICJ2YWx1ZSI6ICIxMjM3NTQxIn0sIHsibmFtZSI6ICJMYXN0LU1vZGlmaWVkIiwgInZhbHVlIjogIldlZCJ9LCB7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICIwNSBNYXkgMjAyMSAxOToyNTozMiBHTVQifSwgeyJuYW1lIjogIkVUYWciLCAidmFsdWUiOiAiXCJhZDRiMGY2MDZlMGY4NDY1YmM0YzRjMTcwYjM3ZTFhM1wiIn0sIHsibmFtZSI6ICJBY2NlcHQtUmFuZ2VzIiwgInZhbHVlIjogImJ5dGVzIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIkFjY2VwdC1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiUmVwb3J0LVRvIiwgInZhbHVlIjogIntcImVuZHBvaW50c1wiOlt7XCJ1cmxcIjpcImh0dHBzOlxcL1xcL2EubmVsLmNsb3VkZmxhcmUuY29tXFwvcmVwb3J0XFwvdjQ/cz1WUmtzWnNXWGZRdiUyRnQwMld6WmZ6UDNhZnpnWFFBJTJGSnklMkZTZ01SWCUyRlEzV0Vzc0tyVjV3T09WN2dLJTJGJTJCJTJGVzlPQXRLQjRhdUtpNXBiblc5c0c0akhGRmVuY2pyYThUdllZNlFWUm9ramw5b1RmZGRRRWI4VFVqS3V6Qng4UGpXbzdPM05HNlREb3JJWlh1YTZwJTJGT0ElM0QlM0RcIn1dIn0sIHsibmFtZSI6ICJSZXBvcnQtVG8iLCAidmFsdWUiOiAiXCJncm91cFwiOlwiY2YtbmVsXCIifSwgeyJuYW1lIjogIlJlcG9ydC1UbyIsICJ2YWx1ZSI6ICJcIm1heF9hZ2VcIjo2MDQ4MDB9In0sIHsibmFtZSI6ICJTZXJ2ZXIiLCAidmFsdWUiOiAiY2xvdWRmbGFyZSJ9LCB7Im5hbWUiOiAieC1nb29nLWdlbmVyYXRpb24iLCAidmFsdWUiOiAiMTYyMDI0MjczMjAzNzA5MyJ9LCB7Im5hbWUiOiAieC1nb29nLW1ldGFnZW5lcmF0aW9uIiwgInZhbHVlIjogIjUifSwgeyJuYW1lIjogIngtZ29vZy1zdG9yZWQtY29udGVudC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJpZGVudGl0eSJ9LCB7Im5hbWUiOiAieC1nb29nLXN0b3JlZC1jb250ZW50LWxlbmd0aCIsICJ2YWx1ZSI6ICI0MyJ9LCB7Im5hbWUiOiAieC1nb29nLWhhc2giLCAidmFsdWUiOiAiY3JjMzJjPWNwRWZKUT09In0sIHsibmFtZSI6ICJ4LWdvb2ctaGFzaCIsICJ2YWx1ZSI6ICJtZDU9clVzUFlHNFBoR1c4VEV3WEN6Zmhvdz09In0sIHsibmFtZSI6ICJ4LWdvb2ctc3RvcmFnZS1jbGFzcyIsICJ2YWx1ZSI6ICJNVUxUSV9SRUdJT05BTCJ9LCB7Im5hbWUiOiAieC1ndXBsb2FkZXItdXBsb2FkaWQiLCAidmFsdWUiOiAiQUJQdGNQb0wwWEM4S0FyYkpLdTZRU1RPNXB1M0k3WE8xZXo4ZWF0MF8xbHp1ektQUWFWcTdibXZBYWY3ZE00SmhjQWxsRkVveGR4UEZMNy1adyJ9LCB7Im5hbWUiOiAiY2YtY2FjaGUtc3RhdHVzIiwgInZhbHVlIjogIkhJVCJ9LCB7Im5hbWUiOiAibmVsIiwgInZhbHVlIjogIntcInN1Y2Nlc3NfZnJhY3Rpb25cIjowIn0sIHsibmFtZSI6ICJuZWwiLCAidmFsdWUiOiAiXCJyZXBvcnRfdG9cIjpcImNmLW5lbFwiIn0sIHsibmFtZSI6ICJuZWwiLCAidmFsdWUiOiAiXCJtYXhfYWdlXCI6NjA0ODAwfSJ9LCB7Im5hbWUiOiAiY2YtcmF5IiwgInZhbHVlIjogIjg5NTkwNWM1OWYyYTFjM2MtRlJBIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDQzLCAibWltZVR5cGUiOiAiaW1hZ2UvZ2lmIiwgImNvbXByZXNzaW9uIjogMCwgInRleHQiOiAiUjBsR09EbGhBUUFCQUlBQkFBQUFBUC8vL3lINUJBRUFBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiwgImVuY29kaW5nIjogImJhc2U2NCJ9LCAiaGVhZGVyc1NpemUiOiA4NjUsICJib2R5U2l6ZSI6IDYxLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiA5MjZ9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiAyMC4zNTEsICJyZWNlaXZlIjogMi4yNTZ9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5IiwgInNlcnZlcklQQWRkcmVzcyI6ICJbMjYwNjo0NzAwOjIwOjo2ODFhOjI0Nl0iLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIkNOPWFkLWRlbGl2ZXJ5Lm5ldCIsICJ2YWxpZEZyb20iOiAxNzE1OTM1MTQzLCAidmFsaWRUbyI6IDE3MjM3MTExNDJ9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQwNTo1NDowMy43MDRaIiwgInRpbWUiOiAyMDguOTg3LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9hcGkuYnRsb2FkZXIuY29tL213L3N0YXRlP2J0X2Vudj1wcm9kIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMS4xIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIk9yaWdpbiIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIifSwgeyJuYW1lIjogIlJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cDovL2JhcHNtYW5kaXJkZXBhcmlzLmZyLyJ9LCB7Im5hbWUiOiAiQWNjZXB0IiwgInZhbHVlIjogIiovKiJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE3XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtRGVzdCIsICJ2YWx1ZSI6ICJlbXB0eSJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLU1vZGUiLCAidmFsdWUiOiAiY29ycyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAiSG9zdCIsICJ2YWx1ZSI6ICJhcGkuYnRsb2FkZXIuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImJ0X2VudiIsICJ2YWx1ZSI6ICJwcm9kIn1dLCAiaGVhZGVyc1NpemUiOiAtMSwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjA0LCAic3RhdHVzVGV4dCI6ICJObyBDb250ZW50IiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMS4xIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIk9yaWdpbiJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MDMgR01UIn0sIHsibmFtZSI6ICJWaWEiLCAidmFsdWUiOiAiMS4xIGdvb2dsZSJ9LCB7Im5hbWUiOiAiYWx0LXN2YyIsICJ2YWx1ZSI6ICJoMz1cIjo0NDNcIjsgbWE9MjU5MjAwMCJ9LCB7Im5hbWUiOiAiYWx0LXN2YyIsICJ2YWx1ZSI6ICJoMy0yOT1cIjo0NDNcIjsgbWE9MjU5MjAwMCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiAtMSwgIm1pbWVUeXBlIjogIngtdW5rbm93biJ9LCAiaGVhZGVyc1NpemUiOiAtMSwgImJvZHlTaXplIjogLTEsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IC0xLCAiX2ZhaWx1cmVUZXh0IjogIkFib3J0ZWQ6IDIwNCBObyBDb250ZW50In0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogMi42MDEsICJjb25uZWN0IjogNTkuMzM0LCAic3NsIjogMzAuMzMsICJzZW5kIjogMCwgIndhaXQiOiAxMTYuNzIyLCAicmVjZWl2ZSI6IC0xfSwgInBhZ2VyZWYiOiAicGFnZUA1YzA5MWM3ZWQxODA4OTZlYWIzYjIwZmJhOWZlOTRhOSJ9LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjA0Ljg0OVoiLCAidGltZSI6IDAsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwOi8vY29uc2VudC50cnVzdGUuY29tL25vdGljZT9kb21haW49Z29kYWRkeV9wYXJraW5nX2lhYi5jb20mYz10ZWNvbnNlbnQmanM9bmombm90aWNlVHlwZT1iYiZ0ZXh0PXRydWUmcHJpdmFjeXBvbGljeWxpbms9aHR0cHMlM0ElMkYlMkZ3d3cuZ29kYWRkeS5jb20lMkZhZ3JlZW1lbnRzJTJGc2hvd2RvYyUzRnBhZ2VpZCUzRFBSSVZBQ1kmZ3RtPTEiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8xLjEiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiT3JpZ2luIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mciJ9LCB7Im5hbWUiOiAiQWNjZXB0IiwgInZhbHVlIjogIiovKiJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJkb21haW4iLCAidmFsdWUiOiAiZ29kYWRkeV9wYXJraW5nX2lhYi5jb20ifSwgeyJuYW1lIjogImMiLCAidmFsdWUiOiAidGVjb25zZW50In0sIHsibmFtZSI6ICJqcyIsICJ2YWx1ZSI6ICJuaiJ9LCB7Im5hbWUiOiAibm90aWNlVHlwZSIsICJ2YWx1ZSI6ICJiYiJ9LCB7Im5hbWUiOiAidGV4dCIsICJ2YWx1ZSI6ICJ0cnVlIn0sIHsibmFtZSI6ICJwcml2YWN5cG9saWN5bGluayIsICJ2YWx1ZSI6ICJodHRwczovL3d3dy5nb2RhZGR5LmNvbS9hZ3JlZW1lbnRzL3Nob3dkb2M/cGFnZWlkPVBSSVZBQ1kifSwgeyJuYW1lIjogImd0bSIsICJ2YWx1ZSI6ICIxIn1dLCAiaGVhZGVyc1NpemUiOiAyNjAsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDMwMSwgInN0YXR1c1RleHQiOiAiTW92ZWQgUGVybWFuZW50bHkiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8xLjEiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MDUgR01UIn0sIHsibmFtZSI6ICJMb2NhdGlvbiIsICJ2YWx1ZSI6ICJodHRwczovL2NvbnNlbnQudHJ1c3RlLmNvbS9ub3RpY2U/ZG9tYWluPWdvZGFkZHlfcGFya2luZ19pYWIuY29tJmM9dGVjb25zZW50JmpzPW5qJm5vdGljZVR5cGU9YmImdGV4dD10cnVlJnByaXZhY3lwb2xpY3lsaW5rPWh0dHBzJTNBJTJGJTJGd3d3LmdvZGFkZHkuY29tJTJGYWdyZWVtZW50cyUyRnNob3dkb2MlM0ZwYWdlaWQlM0RQUklWQUNZJmd0bT0xIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzYwMCJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgInZhbHVlIjogIioifV0sICJjb250ZW50IjogeyJzaXplIjogLTEsICJtaW1lVHlwZSI6ICJ4LXVua25vd24iLCAiY29tcHJlc3Npb24iOiAwfSwgImhlYWRlcnNTaXplIjogMzg2LCAiYm9keVNpemUiOiAwLCAicmVkaXJlY3RVUkwiOiAiaHR0cHM6Ly9jb25zZW50LnRydXN0ZS5jb20vbm90aWNlP2RvbWFpbj1nb2RhZGR5X3BhcmtpbmdfaWFiLmNvbSZjPXRlY29uc2VudCZqcz1uaiZub3RpY2VUeXBlPWJiJnRleHQ9dHJ1ZSZwcml2YWN5cG9saWN5bGluaz1odHRwcyUzQSUyRiUyRnd3dy5nb2RhZGR5LmNvbSUyRmFncmVlbWVudHMlMkZzaG93ZG9jJTNGcGFnZWlkJTNEUFJJVkFDWSZndG09MSIsICJfdHJhbnNmZXJTaXplIjogMzg2fSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogLTEsICJyZWNlaXZlIjogLTF9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5In0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MDUuODA3WiIsICJ0aW1lIjogMTk4OC41MTM5OTk5OTk5OTk3LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9jb25zZW50LnRydXN0ZS5jb20vbm90aWNlP2RvbWFpbj1nb2RhZGR5X3BhcmtpbmdfaWFiLmNvbSZjPXRlY29uc2VudCZqcz1uaiZub3RpY2VUeXBlPWJiJnRleHQ9dHJ1ZSZwcml2YWN5cG9saWN5bGluaz1odHRwcyUzQSUyRiUyRnd3dy5nb2RhZGR5LmNvbSUyRmFncmVlbWVudHMlMkZzaG93ZG9jJTNGcGFnZWlkJTNEUFJJVkFDWSZndG09MSIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJPcmlnaW4iLCAidmFsdWUiOiAibnVsbCJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAiY29uc2VudC50cnVzdGUuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImRvbWFpbiIsICJ2YWx1ZSI6ICJnb2RhZGR5X3BhcmtpbmdfaWFiLmNvbSJ9LCB7Im5hbWUiOiAiYyIsICJ2YWx1ZSI6ICJ0ZWNvbnNlbnQifSwgeyJuYW1lIjogImpzIiwgInZhbHVlIjogIm5qIn0sIHsibmFtZSI6ICJub3RpY2VUeXBlIiwgInZhbHVlIjogImJiIn0sIHsibmFtZSI6ICJ0ZXh0IiwgInZhbHVlIjogInRydWUifSwgeyJuYW1lIjogInByaXZhY3lwb2xpY3lsaW5rIiwgInZhbHVlIjogImh0dHBzOi8vd3d3LmdvZGFkZHkuY29tL2FncmVlbWVudHMvc2hvd2RvYz9wYWdlaWQ9UFJJVkFDWSJ9LCB7Im5hbWUiOiAiZ3RtIiwgInZhbHVlIjogIjEifV0sICJoZWFkZXJzU2l6ZSI6IDMyMywgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJDb250ZW50LVR5cGUiLCAidmFsdWUiOiAidGV4dC9qYXZhc2NyaXB0OyBjaGFyc2V0PVVURi04In0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIlR1ZSJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICIxOCBKdW4gMjAyNCAwNTo1NDowNyBHTVQifSwgeyJuYW1lIjogIkNvbnRlbnQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCJ9LCB7Im5hbWUiOiAiVmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogIlZpYSIsICJ2YWx1ZSI6ICIxLjEgYjdhYWMyNjNjYTYzYTg2NjA3MzgyNGU2YTY3ZDRlNWEuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzYwMCJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiTWlzcyBmcm9tIGNsb3VkZnJvbnQifSwgeyJuYW1lIjogIngtYW16LWNmLXBvcCIsICJ2YWx1ZSI6ICJOUlQyMC1QMiJ9LCB7Im5hbWUiOiAieC1hbXotY2YtaWQiLCAidmFsdWUiOiAiVXlTOWV1dkNMRDZtUm5TMTV6TS02LVhtdEpxUGlDT2lzZmlwNlVoeWZ1eXhZUkZ0QjZrM1lRPT0ifSwgeyJuYW1lIjogInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCAidmFsdWUiOiAibWF4LWFnZT0zMTUzNjAwMDsgaW5jbHVkZVN1YkRvbWFpbnMifV0sICJjb250ZW50IjogeyJzaXplIjogNDU0NzgsICJtaW1lVHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQ7IGNoYXJzZXQ9VVRGLTgiLCAiY29tcHJlc3Npb24iOiAzMjQzNywgInRleHQiOiAidmFyIHRydXN0ZT13aW5kb3cudHJ1c3RlfHx7fTt0cnVzdGUuYm58fCh0cnVzdGUuYm49e30pO3RydXN0ZS5ldXx8KHRydXN0ZS5ldT17fSk7dHJ1c3RlLnV0aWx8fCh0cnVzdGUudXRpbD17fSk7XG50cnVzdGUudXRpbC5lcnJvcj1mdW5jdGlvbihoLGQsZyl7Zz1nfHx7fTt2YXIgZj1kJiZkLnRvU3RyaW5nKCl8fFwiXCIsYz1nLmNhbGxlcnx8XCJcIjtpZihkJiZkLnN0YWNrKXtmKz1cIlxcblwiK2Quc3RhY2subWF0Y2goLyhAfGF0KVteXFxuXFxyXFx0XSovKVswXStcIlxcblwiK2Quc3RhY2subWF0Y2goLyhAfGF0KVteXFxuXFxyXFx0XSokLylbMF1cbn10cnVzdGUudXRpbC50cmFjZShoLGYsZyk7aWYodHJ1c3RlLnV0aWwuZGVidWd8fCFkJiYhaCl7cmV0dXJufXZhciBhPXthcGlnd2xhbWJkYVVybDpcImh0dHBzOi8vYXBpLWpzLWxvZy50cnVzdGFyYy5jb20vZXJyb3JcIixlbmFibGVKc0xvZzpmYWxzZX07XG5pZihhLmVuYWJsZUpzTG9nKXtkZWxldGUgZy5jYWxsZXI7ZGVsZXRlIGcubW9kO2RlbGV0ZSBnLmRvbWFpbjtkZWxldGUgZy5hdXRob3JpdHk7Zy5tc2c9aDt2YXIgZT1uZXcgKHNlbGYuWE1MSHR0cFJlcXVlc3R8fHNlbGYuWERvbWFpblJlcXVlc3R8fHNlbGYuQWN0aXZlWE9iamVjdCkoXCJNU1hNTDIuWE1MSFRUUC4zLjBcIik7XG5lLm9wZW4oXCJQT1NUXCIsYS5hcGlnd2xhbWJkYVVybCx0cnVlKTtlLnNldFJlcXVlc3RIZWFkZXImJmUuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtdHlwZVwiLFwiYXBwbGljYXRpb24vanNvblwiKTtcbmUuc2VuZCh0cnVzdGUudXRpbC5nZXRKU09OKHtpbmZvOnRydXN0ZS51dGlsLmdldEpTT04oZyl8fFwiXCIsZXJyb3I6ZixjYWxsZXI6Y30pKX19O3RydXN0ZS51dGlsLnRyYWNlPWZ1bmN0aW9uKCl7aWYoc2VsZi5jb25zb2xlJiZjb25zb2xlLmxvZyYmKHRoaXMuZGVidWd8fHRoaXMuZGVidWchPT1mYWxzZSYmKHNlbGYubG9jYXRpb24uaG9zdG5hbWUuaW5kZXhPZihcIi5cIik8MHx8c2VsZi5sb2NhdGlvbi5ob3N0bmFtZS5pbmRleE9mKFwiLnRydXN0ZS1zdmMubmV0XCIpPjApKSl7aWYoY29uc29sZS5sb2cuYXBwbHkpe2NvbnNvbGUubG9nLmFwcGx5KGNvbnNvbGUsYXJndW1lbnRzKVxufWVsc2V7dmFyIGE9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbChjb25zb2xlLmxvZyxjb25zb2xlKTthLmFwcGx5KGNvbnNvbGUsYXJndW1lbnRzKX1yZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2Vcbn07dHJ1c3RlLnV0aWwuZ2V0SlNPTj1mdW5jdGlvbihiKXtpZihzZWxmLkpTT04mJiEoc2VsZi5KU09OLm9yZ3x8c2VsZi5KU09OLmxpY2Vuc2V8fHNlbGYuSlNPTi5jb3B5cmlnaHQpKXtyZXR1cm4gc2VsZi5KU09OLnN0cmluZ2lmeShiKVxufWlmKGIgaW5zdGFuY2VvZiBBcnJheSl7dmFyIGQ9XCJbXCI7aWYoYi5sZW5ndGgpe2QrPXRydXN0ZS51dGlsLmdldEpTT04oYlswXSk7Zm9yKHZhciBjPTE7YzxiLmxlbmd0aDtjKyspe2QrPVwiLFwiK3RydXN0ZS51dGlsLmdldEpTT04oYltjXSlcbn19cmV0dXJuIGQrXCJdXCJ9ZWxzZXtpZih0eXBlb2YgYj09XCJzdHJpbmdcIil7cmV0dXJuJ1wiJytiKydcIid9ZWxzZXtpZigoYikgaW5zdGFuY2VvZiBPYmplY3Qpe3ZhciBhPWZhbHNlLGQ9XCJ7XCI7XG5mb3IodmFyIGUgaW4gYil7ZCs9KGE/XCIsXCI6XCJcIikrJ1wiJytlKydcIjonK3RydXN0ZS51dGlsLmdldEpTT04oYltlXSk7YT10cnVlfXJldHVybiBkK1wifVwifWVsc2V7cmV0dXJuIGI9PT11bmRlZmluZWQ/dW5kZWZpbmVkOmIrXCJcIlxufX19fTsoZnVuY3Rpb24oKXt2YXIgYT1zZWxmLm9uZXJyb3I7c2VsZi5vbmVycm9yPWZ1bmN0aW9uIGIoaCxmLGMsZCxnKXt2YXIgZT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG52YXIgaT1oKyhmP1wiOyBcIitmOlwiXCIpKyhjP1wiIFwiK2M6XCJcIikrKGQ/XCI6XCIrZDpcIlwiKTtpZigoaStcIlwiKyhnJiZnLnN0YWNrKSkubWF0Y2goL3RydXN0ZXx0cnVzdGFyY3xub3RpY2UvKSl7dHJ1c3RlLnV0aWwuZXJyb3IoXCJHb3QgV2luZG93IEVycm9yOlwiLGcmJmcuc3RhY2s/ZzppLHtwcm9kdWN0OlwiY21cIix0YWc6Zn0pXG59YSYmYS5hcHBseShzZWxmLGUpfX0pKCk7dHJ1c3RlLmJuLmFkZFNjcmlwdEVsZW09ZnVuY3Rpb24oZSxmLGEpe2lmKCFlJiZcInN0cmluZ1wiIT10eXBlb2YgZSl7cmV0dXJuIG51bGxcbn12YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiU0NSSVBUXCIpO2Quc3JjPWU7ZC5zZXRBdHRyaWJ1dGUoXCJhc3luY1wiLFwiYXN5bmNcIik7ZC5zZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiLFwiXCIpO1xuZC5zZXRBdHRyaWJ1dGUoXCJpbXBvcnRhbmNlXCIsXCJoaWdoXCIpO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJbbm9uY2VdXCIpO2ImJmQuc2V0QXR0cmlidXRlKFwibm9uY2VcIixiLm5vbmNlfHxiLmdldEF0dHJpYnV0ZShcIm5vbmNlXCIpKTtcbnZhciBjPWZ1bmN0aW9uKGgpe3ZhciBnO2lmKGgmJmgudHlwZT09XCJlcnJvclwiKXtnPTJ9ZWxzZXtpZihoJiZoLnR5cGU9PVwibG9hZFwifHxkLnJlYWR5U3RhdGU9PVwibG9hZGVkXCIpe2c9MVxufX1pZihnKXtkLm9ubG9hZD1kLm9ucmVhZHlzdGF0ZWNoYW5nZT1kLm9uZXJyb3I9bnVsbDtmIGluc3RhbmNlb2YgRnVuY3Rpb24mJmYoZCxnKX19O2Qub25sb2FkPWQub25yZWFkeXN0YXRlY2hhbmdlPWQub25lcnJvcj1jO1xuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJvZHlcIilbMF18fGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXSkuYXBwZW5kQ2hpbGQoZCk7XG5yZXR1cm4gZH07dHJ1c3RlLmJuLm1zZ2xvZz1mdW5jdGlvbihhLGIpe3RydXN0ZS5ldSYmdHJ1c3RlLmV1Lm1zZyYmdHJ1c3RlLmV1Lm1zZy5sb2coYSx0cnVzdGUuZXUuYmluZE1hcCxiKVxufTt0cnVzdGUuYm4uY2hlY2tQcmVmZXJlbmNlPWZ1bmN0aW9uKCl7aWYodHJ1c3RlLmV1LmJpbmRNYXApe3ZhciBhPXRydXN0ZS5ldS5iaW5kTWFwO2lmKChhLmZlYXQuY3Jvc3NEb21haW4mJiFhLmZlYXQuaXNDb25zZW50UmV0cmlldmVkKXx8KHRydXN0ZS51dGlsLmlzQ29uc2VudENlbnRlcigpJiYhYS5mZWF0LmlzQ29uc2VudENlbnRlckluaXRpYWxpemVkKSl7YS5ibkZsYWdzLmNvbnNlbnRVbnJlc29sdmVkPXRydWU7XG5yZXR1cm4gZmFsc2V9dmFyIGM9c2hvdWxkUmVwb3AoKTtpZihjKXthLmZlYXQuZHJvcFBvcENvb2tpZT10cnVlfWlmKGEuZmVhdC5pc0ROVE9wdG91dEV2ZW50fHxhLmZlYXQuaXNHUENPcHRvdXRFdmVudCl7cmV0dXJuIGEuZmVhdC5kbnRTaG93VUlcbn1pZihhLnByZWZDb29raWUpe2lmKGN8fHNob3VsZFJlc29sdmVDb25zZW50KCkpe2EuZmVhdC5pc1JlcG9wRXZlbnQ9dHJ1ZTthLmZlYXQuaXNSZWNvbnNlbnRFdmVudD1jfX1yZXR1cm4gIWEucHJlZkNvb2tpZXx8YS5mZWF0LmlzUmVwb3BFdmVudFxufXJldHVybiBmYWxzZX07dHJ1c3RlLmJuLmNoZWNrQ29uc2VudFVucmVzb2x2ZWQ9ZnVuY3Rpb24oZCxhKXtpZih0cnVzdGUuZXUuYmluZE1hcCl7dmFyIGM9dHJ1c3RlLmV1LmJpbmRNYXA7XG52YXIgYj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKChiJiZjLmZlYXQuaXNDb25zZW50UmV0cmlldmVkJiYhdHJ1c3RlLnV0aWwuaXNDb25zZW50Q2VudGVyKCkpfHwoYiYmdHJ1c3RlLnV0aWwuaXNDb25zZW50Q2VudGVyKCkmJmMuZmVhdC5pc0NvbnNlbnRDZW50ZXJJbml0aWFsaXplZCE9dW5kZWZpbmVkKSl7Yy5ibkZsYWdzLmNvbnNlbnRVbnJlc29sdmVkPWZhbHNlO1xuYj1jbGVhckludGVydmFsKGIpO2lmKHRydXN0ZS5ibi5jaGVja1ByZWZlcmVuY2UoKSl7ZCgpfWVsc2V7YSgpfX19LDEwMCk7c2V0VGltZW91dChmdW5jdGlvbigpe2I9Y2xlYXJJbnRlcnZhbChiKVxufSw1NTAwKX19O2Z1bmN0aW9uIHNob3VsZFJlcG9wKCl7aWYodHJ1c3RlLmV1LmJpbmRNYXAucG9wVGltZSl7dmFyIGE9bmV3IERhdGUoKS5nZXRUaW1lKCk7dmFyIGM9dHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX1JFUE9QLCEwKTtcbnZhciBiPXRydXN0ZS5ldS5iaW5kTWFwLnBvcFRpbWU7cmV0dXJuIGImJmIhPWMmJmE+PWJ9cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIHNob3VsZFJlc29sdmVDb25zZW50KCl7dmFyIGM9dHJ1c3RlLmV1LmJpbmRNYXA7XG5pZihjLmZlYXQuY29uc2VudFJlc29sdXRpb24mJmMuYmVoYXZpb3JNYW5hZ2VyPT1cImV1XCIpe3ZhciBhPXRydXN0ZS51dGlsLnJlYWRDb29raWUodHJ1c3RlLmV1LkNPT0tJRV9HRFBSX1BSRUZfTkFNRSx0cnVlKTtcbmlmKGEpe2E9YS5zcGxpdChcIjpcIik7dmFyIGI9bmV3IFJlZ0V4cChjLmJlaGF2aW9yK1wiLlwiK2MuYmVoYXZpb3JNYW5hZ2VyKTtpZighYi50ZXN0KGFbMl0pKXtpZigvKHVzfG5vbmUpL2kudGVzdChhWzJdKSl7cmV0dXJuIHRydWVcbn19fX1yZXR1cm4gZmFsc2V9KGZ1bmN0aW9uIHRydXN0YXJjQmFubmVyKCl7dmFyIGg9dHJ1c3RlLmV1LmJpbmRNYXA9e3ZlcnNpb246XCJ2MS43LTUxOFwiLGRvbWFpbjpcImdvZGFkZHlfcGFya2luZ19pYWIuY29tXCIsd2lkdGg6cGFyc2VJbnQoXCI4NDBcIiksaGVpZ2h0OnBhcnNlSW50KFwiMjcwXCIpLGJhc2VOYW1lOlwidGUtbm90aWNlLWNscjEtZDVhNGExYTMtNWEzYy00ZDA4LWFlZWQtZDdkMjQ3ZmFmNTk5XCIsc2hvd092ZXJsYXk6XCJ7U2hvd0xpbmt9XCIsaGlkZU92ZXJsYXk6XCJ7SGlkZUxpbmt9XCIsYW5jaE5hbWU6XCJ0ZS1ub3RpY2UtY2xyMS1kNWE0YTFhMy01YTNjLTRkMDgtYWVlZC1kN2QyNDdmYWY1OTktYW5jaFwiLGludERpdk5hbWU6XCJ0ZS1ub3RpY2UtY2xyMS1kNWE0YTFhMy01YTNjLTRkMDgtYWVlZC1kN2QyNDdmYWY1OTktaXRsXCIsaWNvblNwYW5JZDpcInRlLW5vdGljZS1jbHIxLWQ1YTRhMWEzLTVhM2MtNGQwOC1hZWVkLWQ3ZDI0N2ZhZjU5OS1pY29uXCIsY29udGFpbmVySWQ6KCFcInRlY29uc2VudFwifHwvXl9MQi4qTEJfJC8udGVzdChcInRlY29uc2VudFwiKSk/XCJ0ZWNvbnNlbnRcIjpcInRlY29uc2VudFwiLG1lc3NhZ2VCYXNlVXJsOlwiaHR0cDovL2NvbnNlbnQudHJ1c3RhcmMuY29tL25vdGljZW1zZz9cIixvcmlnaW5CYXNlVXJsOlwiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9cIixkYXhTaWduYXR1cmU6XCJcIixwcml2YWN5VXJsOlwiXCIscHJlZm1nclVybDpcImh0dHBzOi8vY29uc2VudC1wcmVmLnRydXN0YXJjLmNvbT90eXBlPWdvZGFkZHlfcGFya2luZ19pYWJ2MjImbGF5b3V0PWlhYlwiLHRleHQ6XCJ0cnVlXCIsaWNvbjpcIkNvb2tpZSBQcmVmZXJlbmNlc1wiLGlmcmFtZVRpdGxlOlwiVHJ1c3RBcmMgQ29va2llIENvbnNlbnQgTWFuYWdlclwiLGNsb3NlQnRuQWx0OlwiY2xvc2UgYnV0dG9uXCIsdGVjb25zZW50Q2hpbGRBcmlhTGFiZWw6XCJDb29raWUgUHJlZmVyZW5jZXMsIG9wZW5zIGEgZGVkaWNhdGVkIHBvcHVwIG1vZGFsIHdpbmRvd1wiLGxvY2FsZTpcImVuXCIsbGFuZ3VhZ2U6XCJlblwiLGNvdW50cnk6XCJsdVwiLHN0YXRlOlwiXCIsY2F0ZWdvcnlDb3VudDpwYXJzZUludChcIjNcIiwxMCl8fDMsbm90aWNlSnNVUkw6KChwYXJzZUludChcIjBcIik/XCJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL1wiOlwiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9cIikpK1wiYXNzZXQvbm90aWNlLmpzL3YvdjEuNy01MThcIixhc3NldFNlcnZlclVSTDoocGFyc2VJbnQoXCIwXCIpP1wiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9cIjpcImh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vXCIpK1wiYXNzZXQvXCIsY29uc2Vuc3VVcmw6XCJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL1wiLGNkblVSTDpcImh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vXCIucmVwbGFjZSgvXihodHRwOik/XFwvXFwvLyxcImh0dHBzOi8vXCIpLGljb25CYXNlVXJsOlwiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9cIixiZWhhdmlvcjpcImltcGxpZWRcIixiZWhhdmlvck1hbmFnZXI6XCJldVwiLHByb3Zpc2lvbmVkRmVhdHVyZXM6XCJcIixjb29raWVQcmVmZXJlbmNlSWNvbjpcImNvb2tpZXByZWYucG5nXCIsY29va2llRXhwaXJ5OnBhcnNlSW50KFwiMTgwXCIsMTApfHwzOTUsY2xvc2VCdXR0b25Vcmw6XCIvL2NvbnNlbnQudHJ1c3RhcmMuY29tL2dldD9uYW1lPW5vdGljZWNsb3NlYnRuLnBuZ1wiLGFwaURlZmF1bHRzOid7XCJyZXBvcnRsZXZlbFwiOjE2Nzc3MjE1fScsY21UaW1lb3V0OnBhcnNlSW50KFwiNjAwMFwiLDEwKSxwb3BUaW1lOm5ldyBEYXRlKFwiXCIucmVwbGFjZShcIiArMDAwMFwiLFwiWlwiKS5yZXBsYWNlKFwiIFwiLFwiVFwiKSkuZ2V0VGltZSgpfHxudWxsLHBvcHVwTXNnOlwiXCIsYmFubmVyTXNnVVJMOlwiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9iYW5uZXJtc2c/XCIsSVJNSW50ZWdyYXRpb25VUkw6XCJcIixpcm1XaWR0aDpwYXJzZUludChcIlwiKSxpcm1IZWlnaHQ6cGFyc2VJbnQoXCJcIiksaXJtQ29udGFpbmVySWQ6KCFcIl9MQmlybWNMQl9cInx8L15fTEIuKkxCXyQvLnRlc3QoXCJfTEJpcm1jTEJfXCIpKT9cInRlY29uc2VudFwiOlwiX0xCaXJtY0xCX1wiLGlybVRleHQ6XCJcIixsc3BhOlwiXCIsY2NwYVRleHQ6XCJcIixjb250YWluZXJSb2xlOlwiXCIsaWNvblJvbGU6XCJcIixhdHBJZHM6XCJcIixkbnRPcHRlZEluOlwiXCIsZ3BjT3B0ZWRJbjpcIlwiLHNlZWRVcmw6XCJcIixhbGxPcHRlZEluOlwiXCIsY21JZDpcIlwiLGZlYXQ6e2lhYkdkcHJBcHBsaWVzOnRydWUsY29uc2VudFJlc29sdXRpb246ZmFsc2UsZHJvcEJlaGF2aW9yQ29va2llOnRydWUsY3Jvc3NEb21haW46ZmFsc2UsdWlkRW5hYmxlZDpmYWxzZSxyZXBsYWNlRGVsaW1pdGVyOmZhbHNlLG9wdG91dENsb3NlOmZhbHNlLGVuYWJsZUlSTTpmYWxzZSxlbmFibGVDTTp0cnVlLGVuYWJsZUJhbm5lcjp0cnVlLGVuYWJsZUNDUEE6ZmFsc2UsZW5hYmxlQ1BSQTpmYWxzZSxlbmFibGVJcm1BdXRvT3B0T3V0OmZhbHNlLGNjcGFBcHBsaWVzOmZhbHNlLHVucHJvdmlzaW9uZWREcm9wQmVoYXZpb3I6dHJ1ZSx1bnByb3Zpc2lvbmVkSWFiOnRydWUsdW5wcm92aXNpb25lZENDUEE6ZmFsc2UsZG50OmZhbHNlJiYobmF2aWdhdG9yLmRvTm90VHJhY2s9PVwiMVwifHx3aW5kb3cuZG9Ob3RUcmFjaz09XCIxXCIpLGRudFNob3dVSTpmYWxzZSxncGM6ZmFsc2UmJihuYXZpZ2F0b3IuZ2xvYmFsUHJpdmFjeUNvbnRyb2x8fHdpbmRvdy5nbG9iYWxQcml2YWN5Q29udHJvbCksaWFiQmFubmVyQXBwbGllczp0cnVlLGVuYWJsZVR3b1N0ZXBWZXJpZmljYXRpb246ZmFsc2UsZW5hYmxlQ29udGFpbmVyUm9sZTp0cnVlLGVuYWJsZUNvbnRhaW5lckxhYmVsOnRydWUsZW5hYmxlSWNvblJvbGU6dHJ1ZSxlbmFibGVJY29uTGFiZWw6dHJ1ZSxlbmFibGVIYXNQb3BVcDpcInRydWVcIj09XCJ0cnVlXCIsZW5hYmxlUmV0dXJuRm9jdXM6ZmFsc2UsZW5hYmxlU2hvcGlmeTowLGVuYWJsZVRjZk9wdG91dDpmYWxzZSxlbmFibGVUY2ZWZW5kb3JMZWdJbnRPcHRpbjpcImZhbHNlXCI9PVwidHJ1ZVwiLGVuYWJsZVRyYW5zcGFyZW50QWx0OnRydWUsZW5hYmxlQUNTdHJpbmc6dHJ1ZSxnY206e2Fkczp1bmRlZmluZWQsYW5hbHl0aWNzOnVuZGVmaW5lZCxhZFBlcnNvbmFsaXphdGlvbjp1bmRlZmluZWQsYWRVc2VyRGF0YTp1bmRlZmluZWQsZnVuY3Rpb25hbGl0eTp1bmRlZmluZWQscGVyc29uYWxpemF0aW9uOnVuZGVmaW5lZCxzZWN1cml0eTp1bmRlZmluZWR9LGdwcDp7ZW5hYmxlZDpcImZhbHNlXCI9PVwidHJ1ZVwiLG1zcGFFbmFibGVkOlwiZmFsc2VcIj09XCJ0cnVlXCIsbXNwYU1vZGU6cGFyc2VJbnQoXCIwXCIpfHwwLGVuYWJsZVN0YXRlU3BlY2lmaWNTdHJpbmc6XCJmYWxzZVwiPT1cInRydWVcIixncHBBcHBsaWVzOlwiZmFsc2VcIj09XCJ0cnVlXCJ9LGF1dG9ibG9jazpmYWxzZSxndG06MSxlbmFibGVTdG9yZWRDb25zZW50OmZhbHNlLGVuYWJsZUlhYjJfMjpcInRydWVcIj09XCJ0cnVlXCJ9LGF1dG9EaXNwbGF5Q2xvc2VCdXR0b246ZmFsc2UsbG9jYWxpemF0aW9uOnttb2RhbFRpdGxlOlwiWW91ciBjaG9pY2VzIHJlZ2FyZGluZyB0aGUgdXNlIG9mIGNvb2tpZXMgb24gdGhpcyBzaXRlXCJ9LGN1cnJlbnRTY3JpcHQ6c2VsZi5kb2N1bWVudC5jdXJyZW50U2NyaXB0fTtcbmlmKC9sYXlvdXQ9Z2Rwci8udGVzdChoLnByZWZtZ3JVcmwpKXtoLmlzR2RwckxheW91dD10cnVlfWlmKC9sYXlvdXQ9aWFiLy50ZXN0KGgucHJlZm1nclVybCkpe2guaXNJYWJMYXlvdXQ9dHJ1ZVxufWlmKC9sYXlvdXQ9Z3BwLy50ZXN0KGgucHJlZm1nclVybCkpe2guaXNHcHBMYXlvdXQ9dHJ1ZX1pZihzZWxmLmxvY2F0aW9uLnByb3RvY29sIT1cImh0dHA6XCIpe2Zvcih2YXIgZiBpbiBoKXtpZihoW2ZdJiZoW2ZdLnJlcGxhY2UmJnR5cGVvZiBoW2ZdPT09XCJzdHJpbmdcIil7aFtmXT1oW2ZdLnJlcGxhY2UoL14oaHR0cDopP1xcL1xcLy8sXCJodHRwczovL1wiKVxufX19KGZ1bmN0aW9uKCl7dmFyIGk9aC5zZWVkVXJsLm1hdGNoKC9eeyhTZWVkVVJMKX0kLyk7aWYoaSYmaS5sZW5ndGg+MSl7aC5zZWVkVXJsPVwiXCJ9aT1oLmFsbE9wdGVkSW4ubWF0Y2goL157KENhdGVnb3JpZXNJZHgpfSQvKTtcbmlmKGkmJmkubGVuZ3RoPjEpe2guYWxsT3B0ZWRJbj1cIlwifWk9aC5jbUlkLm1hdGNoKC9eeyhDTUlEKX0kLyk7aWYoaSYmaS5sZW5ndGg+MSl7aC5jbUlkPVwiXCJ9fSkoKTt0cnVzdGUuZXUubm90aWNlTFA9dHJ1c3RlLmV1Lm5vdGljZUxQfHx7fTtcbnRydXN0ZS5ldS5ub3RpY2VMUC5wY29va2llPXVuZGVmaW5lZDt0cnVzdGUudXRpbC5zYW1lc2l0ZT1mdW5jdGlvbihqKXtyZXR1cm4gayhqKTtmdW5jdGlvbiBrKHYpe3JldHVybiAhaSh2KVxufWZ1bmN0aW9uIGkodil7cmV0dXJuIHUodil8fHEodil9ZnVuY3Rpb24gdSh2KXtyZXR1cm4gbSgxMix2KXx8KGwoMTAsMTQsdikmJihwKHYpfHx0KHYpKSl9ZnVuY3Rpb24gcSh2KXtpZihzKHYpKXtyZXR1cm4gIW8oMTIsMTMsMix2KVxufXJldHVybiBuKHYpJiZyKDUxLHYpJiYhcig2Nyx2KX1mdW5jdGlvbiBtKHgsdyl7dmFyIHk9bmV3IFJlZ0V4cChcIlsoXWlQLis7IENQVSAuKk9TIChcXFxcZCspW19cXFxcZF0qLipbKV0gQXBwbGVXZWJLaXRbL11cIixcImlnXCIpO1xudmFyIHo9eS5leGVjKHcpO2lmKHomJnoubGVuZ3RoPT09Mil7dmFyIHY9K3pbMV07cmV0dXJuIHY9PT14fXJldHVybiBmYWxzZX1mdW5jdGlvbiBsKHksQSx3KXt2YXIgej1uZXcgUmVnRXhwKFwiWyhdTWFjaW50b3NoOy4qTWFjIE9TIFggKFxcXFxkKylfKFxcXFxkKylbX1xcXFxkXSouKlspXSBBcHBsZVdlYktpdFsvXVwiLFwiaWdcIik7XG52YXIgQj16LmV4ZWModyk7aWYoQiYmQi5sZW5ndGg9PT0zKXt2YXIgdj0rQlsxXTt2YXIgeD0rQlsyXTtyZXR1cm4odj09PXkpJiYoeD09PUEpfXJldHVybiBmYWxzZX1mdW5jdGlvbiBwKHYpe3ZhciB3PW5ldyBSZWdFeHAoXCJWZXJzaW9uWy9dLiogU2FmYXJpWy9dXCIsXCJpZ1wiKTtcbnZhciB4PXcuZXhlYyh2KTtpZih4JiZ4Lmxlbmd0aCl7cmV0dXJuICFuKHYpfXJldHVybiBmYWxzZX1mdW5jdGlvbiB0KHYpe3ZhciB3PW5ldyBSZWdFeHAoXCJeTW96aWxsYVsvXVsuXFxcXGRdKyBbKF1NYWNpbnRvc2g7LipNYWMgT1MgWCBbX1xcXFxkXStbKV0gQXBwbGVXZWJLaXRbL11bLlxcXFxkXSsgWyhdS0hUTUwsIGxpa2UgR2Vja29bKV0kXCIsXCJpZ1wiKTtcbnZhciB4PXcuZXhlYyh2KTtpZih4JiZ4Lmxlbmd0aCl7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIG4odil7dmFyIHc9bmV3IFJlZ0V4cChcIkNocm9tKGV8aXVtKVwiLFwiaWdcIik7XG52YXIgeD13LmV4ZWModik7aWYoeCYmeC5sZW5ndGgpe3JldHVybiB0cnVlfXJldHVybiBmYWxzZX1mdW5jdGlvbiByKHgsdyl7dmFyIHk9bmV3IFJlZ0V4cChcIkNocm9tW14gL10rWy9dKFxcXFxkKylbLlxcXFxkXSogXCIsXCJpZ1wiKTtcbnZhciB6PXkuZXhlYyh3KTtpZih6JiZ6Lmxlbmd0aD09PTIpe3ZhciB2PSt6WzFdO3JldHVybiB2Pj14fXJldHVybiBmYWxzZX1mdW5jdGlvbiBzKHYpe3ZhciB3PW5ldyBSZWdFeHAoXCJVQ0Jyb3dzZXJbL11cIixcImlnXCIpO1xudmFyIHg9dy5leGVjKHYpO2lmKHgmJngubGVuZ3RoKXtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9ZnVuY3Rpb24gbyhBLHosRCx3KXt2YXIgdj1uZXcgUmVnRXhwKFwiVUNCcm93c2VyWy9dKFxcXFxkKylbLl0oXFxcXGQrKVsuXShcXFxcZCspWy5cXFxcZF0qIFwiLFwiaWdcIik7XG52YXIgeT12LmV4ZWModyk7aWYoeSYmeS5sZW5ndGg9PT00KXt2YXIgQz0reVsxXTt2YXIgQj0reVsyXTt2YXIgeD0reVszXTtpZihDIT1BKXtyZXR1cm4gQz5BfWlmKEIhPXope3JldHVybiBCPnpcbn1yZXR1cm4geD49RH1yZXR1cm4gZmFsc2V9fTt0cnVzdGUudXRpbC5jcmVhdGVDb29raWU9ZnVuY3Rpb24oRix4LG0scSxrKXtpZih0cnVzdGUudXRpbC5jb29raWUmJiFrKXt4PXRydXN0ZS51dGlsLmNvb2tpZS5jb252ZXJ0KHgpXG59dmFyIGo9dHJ1c3RlLmV1LmJpbmRNYXB8fHt9LEM9XCI7IGV4cGlyZXM9XCI7dmFyIHo7aWYoIW0pe3o9bmV3IERhdGUoKTt6LnNldERhdGUoei5nZXREYXRlKCkrai5jb29raWVFeHBpcnkpO1xuQys9ei50b0dNVFN0cmluZygpfWVsc2V7aWYobT09XCIwXCIpe0M9XCJcIn1lbHNle3o9bmV3IERhdGUobSk7Qys9bX19aWYocSYmdHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llU3RvcmFnZSl7dHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llU3RvcmFnZShGLHgseilcbn12YXIgQT1qLmRvbWFpbix0PXNlbGYubG9jYXRpb24uaG9zdG5hbWU7dmFyIG49ISF0Lm1hdGNoKC9eXFxkezAsM31cXC5cXGR7MCwzfVxcLlxcZHswLDN9XFwuXFxkezAsM30kLyl8fHQ9PVwibG9jYWxob3N0XCI7XG52YXIgdT1uP3Q6dC5yZXBsYWNlKC9ed3d3XFwuLyxcIlwiKTt2YXIgbz0oKHNlbGYubG9jYXRpb24ucHJvdG9jb2w9PVwiaHR0cHM6XCIpP1wiIFNlY3VyZTtcIjpcIlwiKTt2YXIgRT1vP1wiTm9uZTtcIjpcIlN0cmljdDtcIjtcbnZhciB3PSh0cnVzdGUudXRpbC5zYW1lc2l0ZSYmIXRydXN0ZS51dGlsLnNhbWVzaXRlKG5hdmlnYXRvci51c2VyQWdlbnQpP1wiXCI6XCIgU2FtZVNpdGU9XCIrRSkrbztpZih0eXBlb2YgdHJ1c3RlLmV1Lm5vdGljZUxQLnBjb29raWUhPVwidW5kZWZpbmVkXCIpe2RvY3VtZW50LmNvb2tpZT1GK1wiPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UOyBwYXRoPS87ZG9tYWluPVwiKyhuP1wiXCI6XCIuXCIpK3UucmVwbGFjZSgvXlxcLi8sXCJcIikrXCI7XCIrdztcbmlmKCFqLnRvcExldmVsRG9tYWluKXt2YXIgeT0wLEQ9dSx2PUQuc3BsaXQoXCIuXCIpLEI9W10scj1cIl9nZFwiKyhuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7d2hpbGUoeTwodi5sZW5ndGgtMSkmJmRvY3VtZW50LmNvb2tpZS5pbmRleE9mKHIrXCI9XCIrcik9PS0xKXtEPXYuc2xpY2UoLTEtKCsreSkpLmpvaW4oXCIuXCIpO1xuZG9jdW1lbnQuY29va2llPXIrXCI9XCIrcitcIjtkb21haW49XCIrRCtcIjtcIit3O0IucHVzaChyKX1qLnRvcExldmVsRG9tYWluPUQ7Zm9yKHZhciBsPTA7bDxCLmxlbmd0aDtsKyspe2RvY3VtZW50LmNvb2tpZT1CW2xdK1wiPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj1cIitEK1wiO1wiXG59ZG9jdW1lbnQuY29va2llPXIrXCI9O2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7ZG9tYWluPVwiK0QrXCI7XCIrd311PWoudG9wTGV2ZWxEb21haW59c2VsZi5kb2N1bWVudC5jb29raWU9RitcIj1cIit4K0MrXCI7IHBhdGg9Lztkb21haW49XCIrKG4/XCJcIjpcIi5cIikrdS5yZXBsYWNlKC9eXFwuLyxcIlwiKStcIjtcIit3XG59O3RydXN0ZS51dGlsLmdldFJhbmRvbVVVSUQ9ZnVuY3Rpb24oKXt2YXIgaT13aW5kb3cuY3J5cHRvfHx3aW5kb3cubXNDcnlwdG87cmV0dXJuKFsxMDAwMDAwMF0rLTEwMDArLTQwMDArLTgwMDArLTEwMDAwMDAwMDAwMCkucmVwbGFjZSgvWzAxOF0vZyxmdW5jdGlvbihqKXtyZXR1cm4oal5pLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgxKSlbMF0mMTU+PmovNCkudG9TdHJpbmcoMTYpXG59KX07dHJ1c3RlLnV0aWwuZ2V0U2NyaXB0RWxlbWVudD1mdW5jdGlvbihtLG4sbCl7aWYodHlwZW9mIG09PVwic3RyaW5nXCIpe209bmV3IFJlZ0V4cChtKX1pZih0eXBlb2YgbD09XCJzdHJpbmdcIil7bD1uZXcgUmVnRXhwKGwpXG59aWYoIShtIGluc3RhbmNlb2YgUmVnRXhwKSl7cmV0dXJuIG51bGx9aWYodHlwZW9mIGwhPVwidW5kZWZpbmVkXCImJiEobCBpbnN0YW5jZW9mIFJlZ0V4cCkpe3JldHVybiBudWxsXG59dmFyIHA9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTt2YXIgbztmb3IodmFyIGosaz1wLmxlbmd0aDtrLS0+MCYmKGo9cFtrXSk7KXtvPShsKT9sLnRlc3Qoai5zcmMpOnRydWU7XG5pZigobnx8IWouaWQpJiZtLnRlc3Qoai5zcmMpJiZvKXtyZXR1cm4gan19cmV0dXJuIG51bGx9O3RydXN0ZS51dGlsLmdldFVuaXF1ZUlEPWZ1bmN0aW9uKCl7cmV0dXJuXCJ0cnVzdGVfXCIrTWF0aC5yYW5kb20oKVxufTt0cnVzdGUudXRpbC5pbml0UGFyYW1ldGVyTWFwPWZ1bmN0aW9uKG0sbil7aWYoIShuIGluc3RhbmNlb2YgT2JqZWN0KSl7bj17fX1pZighbXx8dHlwZW9mIG0uc3JjIT1cInN0cmluZ1wiKXtuLl9xdWVyeT1uLl91cmw9XCJcIlxufWVsc2V7dmFyIGssaj1uLl91cmw9bS5zcmM7aj0obi5fcXVlcnk9ai5yZXBsYWNlKC9eW147PyNdKls7PyNdLyxcIlwiKSkucmVwbGFjZSgvWyM7PyZdKy9nLFwiJlwiKTtpZihqKXtmb3Ioaj1qLnNwbGl0KFwiJlwiKSxrPWoubGVuZ3RoO1xuay0tPjA7KXt2YXIgbD1qW2tdLnNwbGl0KFwiPVwiKSxvPWwuc2hpZnQoKTtpZighbltvXSl7aWYobC5sZW5ndGgpe25bb109ZGVjb2RlVVJJQ29tcG9uZW50KGwuam9pbihcIj1cIikpXG59ZWxzZXtuW29dPVwiXCJ9fX19bS5pZD1uLnNpZD1uLnNpZHx8dHJ1c3RlLnV0aWwuZ2V0VW5pcXVlSUQoKX1yZXR1cm4gbn07dHJ1c3RlLmV1LkNPT0tJRV9HRFBSX1BSRUZfTkFNRT1cIm5vdGljZV9nZHByX3ByZWZzXCI7XG50cnVzdGUuZXUuQ09PS0lFX1NFU1NJT049XCJUQXNlc3Npb25JRFwiO3RydXN0ZS5ldS5TQ1JJUFRfUkVHWD10cnVzdGUuZXUuU0NSSVBUX1JFR1h8fC9cXC4odHJ1c3RlfHRydXN0YXJjKVxcYi4qXFxibm90aWNlKFxcLjApPyhcXC5leHApPyhcXC5qcyk/XFxiLipcXGJkb21haW49LztcbnRydXN0ZS5ldS5KU19SRUdYPXRydXN0ZS5ldS5KU19SRUdYfHwodHJ1c3RlLmV1LmJpbmRNYXAmJnRydXN0ZS5ldS5iaW5kTWFwLmRvbWFpbj9cImRvbWFpbj1cIit0cnVzdGUuZXUuYmluZE1hcC5kb21haW46dW5kZWZpbmVkKTtcbnRydXN0ZS5ldS5qc05vZGUxPXRydXN0ZS5ldS5iaW5kTWFwLmN1cnJlbnRTY3JpcHR8fHRydXN0ZS51dGlsLmdldFNjcmlwdEVsZW1lbnQodHJ1c3RlLmV1LlNDUklQVF9SRUdYLHRydWUsdHJ1c3RlLmV1LkpTX1JFR1gpO1xudHJ1c3RlLmV1Lm5vdGljZUxQPXRydXN0ZS51dGlsLmluaXRQYXJhbWV0ZXJNYXAodHJ1c3RlLmV1LmpzTm9kZTEsdHJ1c3RlLmV1Lm5vdGljZUxQfHx7fSk7aWYodHJ1c3RlLmV1Lm5vdGljZUxQLmNvb2tpZU5hbWUpe3RydXN0ZS5ldS5DT09LSUVfR0RQUl9QUkVGX05BTUU9dHJ1c3RlLmV1Lm5vdGljZUxQLmNvb2tpZU5hbWUrXCJfZ2RwclwiO1xudHJ1c3RlLmV1LkNPT0tJRV9TRVNTSU9OPXRydXN0ZS5ldS5ub3RpY2VMUC5jb29raWVOYW1lK1wiX3Nlc3Npb25cIn10cnVzdGUudXRpbC5yZWFkQ29va2llU2ltcGxlPWZ1bmN0aW9uKGkpe3ZhciBqPW5ldyBSZWdFeHAoXCJcXFxccypcIitpLnJlcGxhY2UoXCIuXCIsXCJcXFxcLlwiKStcIlxcXFxzKj1cXFxccyooW147XSopXCIpLmV4ZWMoc2VsZi5kb2N1bWVudC5jb29raWUpO1xuaWYoaiYmai5sZW5ndGg+MSl7cmV0dXJuIGpbMV19cmV0dXJuIG51bGx9O3ZhciBnPXRydXN0ZS51dGlsLnJlYWRDb29raWVTaW1wbGUodHJ1c3RlLmV1LkNPT0tJRV9TRVNTSU9OKTtcbmlmKGc9PW51bGwpe3VzZXJUeXBlPXRydXN0ZS51dGlsLnJlYWRDb29raWVTaW1wbGUodHJ1c3RlLmV1LkNPT0tJRV9HRFBSX1BSRUZfTkFNRSk/XCJFWElTVElOR1wiOlwiTkVXXCI7Zz10cnVzdGUudXRpbC5nZXRSYW5kb21VVUlEKCkrXCJ8XCIrdXNlclR5cGU7XG52YXIgYj1uZXcgRGF0ZSgpO2Iuc2V0VGltZShiLmdldFRpbWUoKSszMCo2MDAwMCk7dHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llKHRydXN0ZS5ldS5DT09LSUVfU0VTU0lPTixnLGIudG9HTVRTdHJpbmcoKSxmYWxzZSlcbn12YXIgYT1nLnNwbGl0KC9bfCxdLyk7dHJ1c3RlLmV1LnNlc3Npb249YVswXTt0cnVzdGUuZXUudXNlclR5cGU9YVsxXTsobmV3IEltYWdlKDEsMSkpLnNyYz0oXCJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2xvZ1wiLnJlcGxhY2UoXCJodHRwOlwiLFwiaHR0cHM6XCIpKStcIj9kb21haW49Z29kYWRkeV9wYXJraW5nX2lhYi5jb20mY291bnRyeT1sdSZzdGF0ZT0mYmVoYXZpb3I9aW1wbGllZCZzZXNzaW9uPVwiK3RydXN0ZS5ldS5zZXNzaW9uK1wiJnVzZXJUeXBlPVwiK3RydXN0ZS5ldS51c2VyVHlwZStcIiZjPVwiKygoKDErTWF0aC5yYW5kb20oKSkqNjU1MzYpfDApLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSk7XG4oZnVuY3Rpb24oaSl7dmFyIHA9ZnVuY3Rpb24ocyl7aWYoaS5mZWF0LmlhYil7cmV0dXJufXZhciB1PXNlbGYuZG9jdW1lbnQsdD11LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG50LnNldEF0dHJpYnV0ZShcImFzeW5jXCIsXCJhc3luY1wiKTt0LnNldEF0dHJpYnV0ZShcInR5cGVcIixcInRleHQvamF2YXNjcmlwdFwiKTt0LnNldEF0dHJpYnV0ZShcImNyb3Nzb3JpZ2luXCIsXCJcIik7XG50LnNldEF0dHJpYnV0ZShcImltcG9ydGFuY2VcIixcImhpZ2hcIik7dmFyIHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltub25jZV1cIik7ciYmdC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLHIubm9uY2V8fHIuZ2V0QXR0cmlidXRlKFwibm9uY2VcIikpO1xudC5zcmM9czsodS5nZXRFbGVtZW50QnlJZChpLmNvbnRhaW5lcklkKXx8dS5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJvZHlcIilbMF18fHUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdKS5hcHBlbmRDaGlsZCh0KTtcbmkuZmVhdC5pYWI9dHJ1ZX07dmFyIG89ZnVuY3Rpb24odyx2LHIsdSl7aWYodygpKXt2KCk7cmV0dXJufXZhciBzLHQ9ZnVuY3Rpb24oKXtpZih3KCkpe3M9Y2xlYXJJbnRlcnZhbChzKTtcbnYoKX19O3M9c2V0SW50ZXJ2YWwodCxyKTt0KCk7c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwocyl9LHUpfTtpZihpLmlzSWFiTGF5b3V0KXt2YXIgaz1mYWxzZTtcbnZhciBtPWRvY3VtZW50LmhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7Zm9yKHZhciBsPTA7bDxtLmxlbmd0aDtsKyspe3ZhciBuPW1bbF07aWYobi5pZD09PVwidHJ1c3RhcmMtdGNmYXBpXCIpe2s9dHJ1ZTtcbmkuZmVhdC5pYWI9dHJ1ZX19aWYoIWspe28oZnVuY3Rpb24gcSgpe3JldHVybiB0eXBlb2YgX190Y2ZhcGkhPT1cInVuZGVmaW5lZFwifSxmdW5jdGlvbiBqKCl7aWYoaS5mZWF0LmVuYWJsZUlhYjJfMil7cChpLmNvbnNlbnN1VXJsK1wiYXNzZXQvdGNmYXBpMi4yLmpzXCIpXG59ZWxzZXtwKGkuY29uc2Vuc3VVcmwrXCJhc3NldC90Y2ZhcGkuanMvdi8yLjFcIil9fSwxMCwzMDAwMCl9fX0pKHRydXN0ZS5ldS5iaW5kTWFwKTtpZihoLmZlYXQuZHJvcEJlaGF2aW9yQ29va2llKXt2YXIgYz1oLmZlYXQucmVwbGFjZURlbGltaXRlcj9cInxcIjpcIixcIjtcbnRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZShcIm5vdGljZV9iZWhhdmlvclwiLGguYmVoYXZpb3IrYytoLmJlaGF2aW9yTWFuYWdlcixcIjBcIil9KGZ1bmN0aW9uKGope2lmKGouZmVhdC5jcm9zc0RvbWFpbil7dmFyIGk9ZnVuY3Rpb24oKXtpZighd2luZG93LmZyYW1lcy50cnVzdGFyY19ub3RpY2Upe2lmKGRvY3VtZW50LmJvZHkpe3ZhciBrPWRvY3VtZW50LmJvZHksbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO1xubC5zdHlsZS5kaXNwbGF5PVwibm9uZVwiO2wubmFtZT1cInRydXN0YXJjX25vdGljZVwiO2wuaWQ9XCJ0cnVzdGFyY05vdGljZUZyYW1lXCI7bC50aXRsZT1cIlRydXN0YXJjIENyb3NzLURvbWFpbiBDb25zZW50IEZyYW1lXCI7XG5sLnNyYz1qLmNkblVSTCtcImdldD9uYW1lPWNyb3NzZG9tYWluLmh0bWwmZG9tYWluPVwiK2ouZG9tYWluO2suYXBwZW5kQ2hpbGQobCl9ZWxzZXtzZXRUaW1lb3V0KGksNSl9fX07XG5pKCl9fSkodHJ1c3RlLmV1LmJpbmRNYXApO2guc3R5bGVzPXt9O2guZXh0ZXJuYWxjc3M9dHlwZW9mICR0ZW1wX2V4dGVybmFsY3NzIT1cInVuZGVmaW5lZFwiJiYkdGVtcF9leHRlcm5hbGNzcztcbmguc3R5bGVzLmNsb3NlYnRubGluaz10eXBlb2YgJHRlbXBfY2xvc2VidG5saW5rX3N0eWxlIT1cInVuZGVmaW5lZFwiJiYkdGVtcF9jbG9zZWJ0bmxpbmtfc3R5bGU7aC5zdHlsZXMuY2xvc2VidG49dHlwZW9mICR0ZW1wX2Nsb3NlYnRuX3N0eWxlIT1cInVuZGVmaW5lZFwiJiYkdGVtcF9jbG9zZWJ0bl9zdHlsZTtcbmguc3R5bGVzLmJveF9vdmVybGF5PXR5cGVvZiAkdGVtcF9ib3hfb3ZlcmxheSE9XCJ1bmRlZmluZWRcIiYmJHRlbXBfYm94X292ZXJsYXk7aC5zdHlsZXMuYm94X292ZXJsYXlfYm9yZGVyPXR5cGVvZiAkdGVtcF9ib3hfb3ZlcmxheV9ib3JkZXIhPVwidW5kZWZpbmVkXCImJiR0ZW1wX2JveF9vdmVybGF5X2JvcmRlcjtcbmguc3R5bGVzLm92ZXJsYXk9dHlwZW9mICR0ZW1wX292ZXJsYXkhPVwidW5kZWZpbmVkXCImJiR0ZW1wX292ZXJsYXk7aC5zdHlsZXMuaW5uZXJfaWZyYW1lPXR5cGVvZiAkdGVtcF9pbm5lcl9pZnJhbWUhPVwidW5kZWZpbmVkXCImJiR0ZW1wX2lubmVyX2lmcmFtZTtcbmguc3R5bGVzLm91dGVyZGl2PXR5cGVvZiAkdGVtcF9zdHlsZV9vdXRlcmRpdiE9XCJ1bmRlZmluZWRcIiYmJHRlbXBfc3R5bGVfb3V0ZXJkaXY7aC5vdXRlcmRpdj10eXBlb2YgJHRlbXBfb3V0ZXJkaXYhPVwidW5kZWZpbmVkXCI7XG5oLmZlYXQudGFyZ2V0PXR5cGVvZiAkdGVtcF90YXJnZXQhPVwidW5kZWZpbmVkXCImJiR0ZW1wX3RhcmdldDtoLmZlYXQuY2NwYWRlZmF1bHQ9dHlwZW9mICR0ZW1wX2NjcGFkZWZhdWx0IT1cInVuZGVmaW5lZFwiJiYkdGVtcF9jY3BhZGVmYXVsdDtcbmgucGFyYW1zPXt9O2guYm5GbGFncz17fTt0cnVzdGUuYm4uYWRkU2NyaXB0RWxlbShoLm5vdGljZUpzVVJMLGZ1bmN0aW9uIGQoKXt2YXIgajt2YXIgaT1mdW5jdGlvbigpe2lmKGomJnRydXN0ZS5ldS5mbGFncyYmdHJ1c3RlLmV1LmZsYWdzLmluaXQpe2o9Y2xlYXJJbnRlcnZhbChqKTtcbnRydXN0YXJjQmFubmVyLnNjcmlwdD10cnVzdGUudXRpbC5nZXRTY3JpcHRFbGVtZW50KC9cXC9cXC9bXlxcLl0rXFwuKGludHJhbmV0XFwuKT8odHJ1c3RlfHRydXN0YXJjKSgtbGFic3wtc3ZjKT9cXC4oY29tfG5ldHxldSkoOlxcbispP1xcL1teXFw/IztdKihub3RpY2V8YmFubmVyKS4qPyhqcz1iYnxuaikvLHRydWUpO1xudHJ1c3RlLnV0aWwuaW5pdFBhcmFtZXRlck1hcCh0cnVzdGFyY0Jhbm5lci5zY3JpcHQsaC5wYXJhbXMpO3ZhciBrPWZ1bmN0aW9uKCl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaC5wYXJhbXMuY3x8XCJ0ZWNvbnNlbnRcIik7XG5pZihsJiZsLnN0eWxlLmRpc3BsYXk9PT1cIm5vbmVcIil7bC5zdHlsZS5kaXNwbGF5PVwiXCJ9dHJ1c3RlLmJuLm1zZ2xvZyhcInJldHVybnNcIixoLmJhbm5lck1zZ1VSTCl9O2lmKGguZmVhdC5jY3BhQXBwbGllc3x8ZSgpKXt0cnVzdGUuYm4uYmFubmVyTWFpbigpXG59ZWxzZXtpZihoLmJuRmxhZ3MuY29uc2VudFVucmVzb2x2ZWQpe3RydXN0ZS5ibi5jaGVja0NvbnNlbnRVbnJlc29sdmVkKHRydXN0ZS5ibi5iYW5uZXJNYWluLGspfWVsc2V7aygpXG59fX19O2o9c2V0SW50ZXJ2YWwoaSw3KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y2xlYXJJbnRlcnZhbChqKX0sMTAwMDApfSxoLmNvbnRhaW5lcklkKTtmdW5jdGlvbiBlKCl7dmFyIGk9L2lwKGhvbmV8b2R8YWQpfGlPUy9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudHx8bmF2aWdhdG9yLnZlbmRvcnx8d2luZG93Lm9wZXJhKTtcbnJldHVybih0cnVzdGUuZXUuYmluZE1hcC5pb3MhPTF8fCFpKSYmdHJ1c3RlLmJuLmNoZWNrUHJlZmVyZW5jZSgpfX0pKCk7dHJ1c3RlLmJuLmlzQ29uc2VudFRyYWNrPXRydWU7XG50cnVzdGUuYm4ucm91bmQ9ZnVuY3Rpb24oYixhKXtyZXR1cm4gTnVtYmVyKE1hdGgucm91bmQoYitcImVcIithKStcImUtXCIrYSl9O3RydXN0ZS5ibi5nZXREZWZhdWx0U3R5bGVQcm9wZXJ0eT1mdW5jdGlvbihhLGIpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYik7XG5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpO3ZhciBkPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMsbnVsbClbYV07Yy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpO3JldHVybiBkXG59O3RydXN0ZS5ibi5nZXREaXNwbGF5UHJvcGVydHk9ZnVuY3Rpb24oYil7dmFyIGE9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYixudWxsKS5kaXNwbGF5O3JldHVybihhPT1cIm5vbmVcIik/dHJ1c3RlLmJuLmdldERlZmF1bHRTdHlsZVByb3BlcnR5KFwiZGlzcGxheVwiLGIubm9kZU5hbWUpOmFcbn07dHJ1c3RlLmJuLnNob3c9ZnVuY3Rpb24oYyl7aWYoIWMpe3JldHVybn12YXIgYj10cnVzdGUuYm4uZ2V0RGlzcGxheVByb3BlcnR5KGMpO2lmKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUhPT1cInVuZGVmaW5lZFwiKXtjLnN0eWxlLm9wYWNpdHk9MDtcbmMuc3R5bGUuZGlzcGxheT1iOyhmdW5jdGlvbiBhKGQpe3ZhciBlPXRydXN0ZS5ibi5yb3VuZChwYXJzZUZsb2F0KGQuc3R5bGUub3BhY2l0eSksMik7aWYoKChlPWUrMC4xKTw9MSkmJihkLmlkIT1cInRydXN0ZS1jb25zZW50LXRyYWNrXCJ8fHRydXN0ZS5ibi5pc0NvbnNlbnRUcmFjaykpe2Quc3R5bGUub3BhY2l0eT1lO1xucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7YShkKX0pfX0pKGMpfWVsc2V7Yy5zdHlsZS5kaXNwbGF5PWJ9fTt0cnVzdGUuYm4uaGlkZT1mdW5jdGlvbihiKXtpZighYil7cmV0dXJuXG59aWYodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSE9PVwidW5kZWZpbmVkXCIpeyhmdW5jdGlvbiBhKGMpe3ZhciBkPXRydXN0ZS5ibi5yb3VuZChwYXJzZUZsb2F0KGMuc3R5bGUub3BhY2l0eXx8MSksMik7XG5kPWQtMC4xO2Muc3R5bGUub3BhY2l0eT1kO2lmKGQ8PTApe2Muc3R5bGUuZGlzcGxheT1cIm5vbmVcIn1lbHNle3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2EoYyl9KVxufX0pKGIpfWVsc2V7Yi5zdHlsZS5kaXNwbGF5PVwibm9uZVwifX07dHJ1c3RlLmJuLmlzVmlzaWJsZT1mdW5jdGlvbihiKXt2YXIgYT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShiKTtcbnJldHVybiBhLmRpc3BsYXkhPT1cIm5vbmVcIiYmYS5vcGFjaXR5PjAmJmEudmlzaWJpbGl0eSE9PVwiaGlkZGVuXCJ9O3RydXN0ZS5ibi5yZW1vdmVFdmVudD1mdW5jdGlvbihjLGIsYSl7aWYoYyYmdHlwZW9mIGI9PVwic3RyaW5nXCImJmEgaW5zdGFuY2VvZiBGdW5jdGlvbil7aWYoYy5yZW1vdmVFdmVudExpc3RlbmVyKXtjLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixhLGZhbHNlKVxufWVsc2V7aWYoYy5kZXRhY2hFdmVudCl7Yy5kZXRhY2hFdmVudChcIm9uXCIrYixhKX19fX07dHJ1c3RlLmJuLmFkZEV2ZW50PWZ1bmN0aW9uKGMsYixhKXtpZihjJiZ0eXBlb2YgYj09XCJzdHJpbmdcIiYmYSBpbnN0YW5jZW9mIEZ1bmN0aW9uKXtpZihjLmFkZEV2ZW50TGlzdGVuZXIpe2MuYWRkRXZlbnRMaXN0ZW5lcihiLGEsZmFsc2UpXG59ZWxzZXtpZihjLmF0dGFjaEV2ZW50KXtjLmF0dGFjaEV2ZW50KFwib25cIitiLGEpfX19fTt0cnVzdGUuYm4uYmFubmVyTWFpbj1mdW5jdGlvbigpe3ZhciBiPXRydXN0ZS5ldS5iaW5kTWFwO1xuYi5iYW5uZXJNc2dVUkw9Yi5pY29uQmFzZVVybCtcImJhbm5lcm1zZz9cIjt2YXIgZD1iLnBhcmFtczt2YXIgYz1kLmN8fFwidGVjb25zZW50XCI7dmFyIGU9ZC5iYnx8XCJjb25zZW50X2JsYWNrYmFyXCI7XG5pZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSkpe2lmKHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyIT09XCJ1bmRlZmluZWRcIil7dmFyIGc9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gZihqKXtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlKSl7Zy5kaXNjb25uZWN0KCk7XG5hKGQsYyxlKX19KTtnLm9ic2VydmUoZG9jdW1lbnQuYm9keXx8ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJib2R5XCIpWzBdfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQse2F0dHJpYnV0ZXM6ZmFsc2UsY2hpbGRMaXN0OnRydWUsY2hhcmFjdGVyRGF0YTpmYWxzZSxzdWJ0cmVlOnRydWV9KTtcbnNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLmRpc2Nvbm5lY3QoKX0sNjAwMDApfWVsc2V7dmFyIGk9c2V0SW50ZXJ2YWwoZnVuY3Rpb24gaCgpe2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKXtpPWNsZWFySW50ZXJ2YWwoaSk7XG5hKGQsYyxlKX19LDE1MCk7c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoaSl9LDEwMDAwKX19ZWxzZXthKGQsYyxlKX1mdW5jdGlvbiBhKE4sayxFKXt2YXIgSj0zO1xuSj0oSj4wKT9KOjM7dmFyIEY9dHJ1c3RlLmV1LmJpbmRNYXAuYWxsT3B0ZWRJbnx8KGZ1bmN0aW9uIEwoUCl7dmFyIFE9W107Zm9yKHZhciBPPTA7TzxQO08rKyl7US5wdXNoKE8pXG59cmV0dXJuIFEuam9pbihcIixcIil9KShKKTt2YXIgdT1cInRydXN0ZS1jb25zZW50LXRyYWNrXCI7dmFyIEM9L01TRUl8VHJpZGVudC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbnZhciB3PS9cXGJhbmRyb2lkIChcXGQrKD86XFwuXFxkKykrKTsvZ2kuZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KTt2YXIgSD0odyYmd1sxXTw9XCI0LjRcIik7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoayk7XG52YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChFKTt2YXIgeT17Y29uc2VudEJ1dHRvbjpcInRydXN0ZS1jb25zZW50LWJ1dHRvblwiLGZvb3RlckNhbGxiYWNrOlwidHJ1c3RlLXNob3ctY29uc2VudFwiLGNvb2tpZUJ1dHRvbjpcInRydXN0ZS1jb29raWUtYnV0dG9uXCIscHJpdmFjeUJ1dHRvbjpcInRydXN0ZS1wcml2YWN5LWJ1dHRvblwiLGJhbm5lckhvbGRlcjp1LGNsb3NlQmFubmVyOlwidHJ1c3RlLWNvbnNlbnQtY2xvc2VcIixyZXBvcERpdjpcInRydXN0ZS1yZXBvcC1tc2dcIixyZXF1aXJlZEJ1dHRvbjpcInRydXN0ZS1jb25zZW50LXJlcXVpcmVkXCIsY2NwYU9wdG91dEJ1dHRvbjpcInRydXN0ZS1jY3BhLW9wdG91dFwiLGNjcGFPcHRlZEluOlwiY2NwYS1vcHRlZC1pblwiLGNjcGFPcHRlZE91dDpcImNjcGEtb3B0ZWQtb3V0XCIsY2NwYU5vUHJlZmVyZW5jZTpcImNjcGEtbm8tcHJlZmVyZW5jZVwiLGlhYlBhcnRuZXJzTGluazpcImlhYi1wYXJ0bmVycy1saW5rXCIsc2Vjb25kSWFiUGFydG5lcnNMaW5rOlwiaWFiLXNlY29uZC1wYXJ0bmVycy1saW5rXCJ9O1xudmFyIEE9dHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC50YXJnZXR8fFwiX2JsYW5rXCI7dmFyIG09ZG9jdW1lbnQucmVhZHlTdGF0ZTtpZihtJiYobT09XCJjb21wbGV0ZVwifHxtPT1cImludGVyYWN0aXZlXCIpKXtHKFwibG9hZGVkXCIpXG59ZWxzZXt0cnVzdGUuYm4uYWRkRXZlbnQoZG9jdW1lbnQsXCJET01Db250ZW50TG9hZGVkXCIsZnVuY3Rpb24oKXtHKFwibG9hZGVkXCIpfSl9ZnVuY3Rpb24gRyhQKXtpZihHW1BdKXtyZXR1cm5cbn1HW1BdPTE7c3dpdGNoKFApe2Nhc2VcImxvYWRlZFwiOmlmKG8pe3goKTtwKCk7cygpO2lmKHRydXN0ZS5ibi5jaGVja1ByZWZlcmVuY2UoKSl7SSgpfWVsc2V7aWYoYi5ibkZsYWdzLmNvbnNlbnRVbnJlc29sdmVkKXt0cnVzdGUuYm4uY2hlY2tDb25zZW50VW5yZXNvbHZlZChJLEQpXG59ZWxzZXtEKCl9fX1icmVhaztjYXNlXCJkb25lXCI6dHJ1c3RlLmJuLmlzQ29uc2VudFRyYWNrPWZhbHNlO3RydXN0ZS5ibi5yZW1vdmVFdmVudChkb2N1bWVudCxcImNsaWNrXCIscSk7XG50cnVzdGUuYm4ucmVtb3ZlRXZlbnQoZG9jdW1lbnQsXCJzY3JvbGxcIixyKTt0cnVzdGUuYm4uc2hvdyh0KTt0cnVzdGUuYm4uaGlkZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1KSk7XG52KFwiaGlkZGVuXCIpO2JyZWFrO2Nhc2VcIm9wZW5cIjp0cnl7aWYoQ3x8SCl7dmFyIE89ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJVSUV2ZW50c1wiKTtPLmluaXRVSUV2ZW50KFwicmVzaXplXCIsdHJ1ZSxmYWxzZSx3aW5kb3csMCk7XG53aW5kb3cuZGlzcGF0Y2hFdmVudChPKX1lbHNle3dpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInJlc2l6ZVwiKSl9fWNhdGNoKFEpe2NvbnNvbGUmJmNvbnNvbGUubG9nKFwiUmVzaXplIGV2ZW50IG5vdCBzdXBwb3J0ZWQuXCIpXG59fX1mdW5jdGlvbiBwKCl7dmFyIE89JzxzdHlsZT5AZm9udC1mYWNleyAgICBmb250LWZhbWlseTpcIk11c2VvU2FuczMwMFwiOyAgICBzcmM6dXJsKGh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vZ2V0P25hbWU9TXVzZW9TYW5zLTMwMC5vdGYpIGZvcm1hdChcIm9wZW50eXBlXCIpO31AZm9udC1mYWNleyAgICBmb250LWZhbWlseTpcIk11c2VvU2FuczUwMFwiOyAgICBzcmM6dXJsKGh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vZ2V0P25hbWU9TXVzZW9TYW5zXzUwMC5vdGYpIGZvcm1hdChcIm9wZW50eXBlXCIpO31AZm9udC1mYWNleyAgICBmb250LWZhbWlseTpcIk11c2VvU2FuczcwMFwiOyAgICBzcmM6dXJsKGh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vZ2V0P25hbWU9TXVzZW9TYW5zXzcwMC5vdGYpIGZvcm1hdChcIm9wZW50eXBlXCIpO30gICAgLnRydXN0YXJjLWJhbm5lci1jb250ZW50IHsgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7ICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTsgICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7ICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47ICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7ICAgIH0gICAgLnRydXN0YXJjLWJhbm5lci13cmFwcGVyICB7ICAgICAgICBtYXgtd2lkdGg6IDEwODBweDsgICAgICAgIG1hcmdpbjogMnB4IGF1dG87ICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7ICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyAgICB9ICAgIC50cnVzdGFyYy1iYW5uZXItY29udGFpbmVyIHsgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7ICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgICAgICAgIHdpZHRoOiAxMDAlOyAgICB9ICAgIC5kZXNjcmlwdGlvbi1ncm91cCB7IC8qQWRkZWQgQ1NTKi8gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7ICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgZ2FwOiAyNHB4OyAgICAgICAgd2lkdGg6IDEwMCU7ICAgIH0gICAgLnRydXN0YXJjLWJhbm5lci13cmFwcGVyIHsgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7ICAgICAgICBmb250LXNpemU6IDEwMCU7ICAgICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7ICAgICAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgICAgICAgIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAgICAgICAgdGV4dC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4wMSkgMCAwIDFweDsgICAgICAgIGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vbmU7ICAgICAgICAtd2Via2l0LWZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vbmU7ICAgICAgICB3aWR0aDogMTAwJTsgICAgICAgIGRpc3BsYXk6IGJsb2NrOyAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7ICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7ICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAgICAgICAgZm9udC1mYW1pbHk6IFwiTXVzZW9TYW5zMzAwXCIsIHNhbnMtc2VyaWY7ICAgIH0gICAgLnRydXN0YXJjLWJhbm5lci13cmFwcGVyICogeyAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAgICB9ICAgIC50cnVzdGFyYy1jbGllbnQtbG9nbyB7ICAgICAgICBwYWRkaW5nOiAzMHB4OyAgICB9ICAgIC50cnVzdGFyYy1jbGllbnQtbG9nbyBpbWcgeyAgICAgICAgLW8tb2JqZWN0LWZpdDpjb250YWluOyAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjsgICAgfSAgICAudHJ1c3RhcmMtY29uc2VudC1idXR0b25zeyAgICAgICAgcGFkZGluZzogMTVweCAwIDMwcHg7ICAgICAgICBtYXgtd2lkdGg6IDEwMCU7ICAgICAgICBtYXJnaW46IDAgMzBweDsgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAgICB9LyogICAgLnRydXN0YXJjLWNvbnNlbnQtYnV0dG9ucyA+IGRpdiB7ICAgICAgICBtYXgtd2lkdGg6IDI2MHB4OyAgICB9Ki8gICAgLnRydXN0YXJjLWJvZHktdGV4dCwgLnRydXN0YXJjLXdhcm5pbmctdGV4dCB7ICAgICAgICBmb250LXNpemU6IDExcHg7ICAgIH0gICAgLnRydXN0YXJjLWJhbm5lci1ib2R5IHsgICAgICAgIG1heC13aWR0aDogNTAwcHg7ICAgICAgICB3aWR0aDogMTAwJTsgICAgICAgIGZvbnQtc2l6ZTogMTFweDsgICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4OyAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7ICAgIH0gICAgLnRydXN0YXJjLXNlY29uZGFyeS1idG4sIC50cnVzdGFyYy1wcmltYXJ5LWJ0biwgLnRydXN0YXJjLWFjY2VwdGFsbC1idG4sIC50cnVzdGFyYy1kZWNsaW5lYWxsLWJ0biAgICB7ICAgICAgICBwYWRkaW5nOiB1bnNldDsgICAgfSAgICAudHJ1c3RhcmMtcHJpbWFyeS1idG46aG92ZXIsICAgIC50cnVzdGFyYy1zZWNvbmRhcnktYnRuOmhvdmVyLCAgICAudHJ1c3RhcmMtYWNjZXB0YWxsLWJ0bjpob3ZlciwgICAgLnRydXN0YXJjLWRlY2xpbmVhbGwtYnRuOmhvdmVyICAgIHsgICAgICAgIG9wYWNpdHk6IDAuODsgICAgfSAgICAudHJ1c3RhcmMtYmFubmVyLWRldGFpbHMgeyAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsgICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOyAgICAgICAgZmxleC1ncm93OiAxOyAgICAgICAgd2lkdGg6IDUwJTsgICAgfSAgICAudHJ1c3RhcmMtaW5mby1zaG93IHsgICAgICAgIGNvbG9yOiAjZmZmOyAgICAgICAgZm9udC1zaXplOiAxNnB4OyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBhN2JlOTsgICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7ICAgICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5OyAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7ICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zOyAgICB9ICAgIC50cnVzdGFyYy1pbmZvLWhpZGUgeyAgICAgICAgb3BhY2l0eTogMDsgICAgICAgIGRpc3BsYXk6IG5vbmU7ICAgIH0gICAgLnRydXN0YXJjLWluZm8taW1nIHsgICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsgICAgICAgIC1tcy1ncmlkLXJvdy1hbGlnbjogY2VudGVyOyAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOyAgICB9ICAgIC50cnVzdGFyYy1iYW5uZXItZm9vdGVyIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7ICAgICAgICBoZWlnaHQ6IDQwcHg7ICAgICAgICBmb250LXNpemU6IDEwcHg7ICAgICAgICBib3JkZXI6IG5vbmU7ICAgICAgICB3aWR0aDogMTAwJTsgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7ICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTsgICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7ICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IG5vcm1hbDsgICAgICAgIGJvdHRvbTogMDsgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAgICB9ICAgIC5iYW5uZXItZGV0YWlscy1jb250YWluZXIgeyAvKkFEREVEIENTUyovICAgICAgICBtYXJnaW46IDMwcHggMzBweCAxMHB4IDMwcHg7LyogICAgICAgIHdpZHRoOiAxMDAlOyovICAgIH0gICAgLnRydXN0YXJjLWJhbm5lci1yaWdodCB7ICAgICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXI7ICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7ICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyAgICAgICAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDsgICAgICAvKiAgcG9zaXRpb246IHJlbGF0aXZlOyovICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgIC13ZWJraXQtYm94LXNpemluZzogdW5zZXQ7ICAgICAgICBib3gtc2l6aW5nOiB1bnNldDsgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7ICAgICAgcmlnaHQ6IDA7ICB9ICAgIC50cnVzdGFyYy1iYW5uZXItbGVmdCB7ICAgICAgICBjb2xvcjogIzAwNjFlNDsgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsgICAgICAgIC1tcy1ncmlkLXJvdy1hbGlnbjogY2VudGVyOyAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOyAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7ICAgIH0gICAgLnRydXN0YXJjLWJhbm5lci1sb2dvIHsgICAgICAgIGhlaWdodDogMTM2cHg7ICAgICAgICBtYXgtd2lkdGg6IDEzNnB4OyAgICB9ICAgIC50cnVzdGFyYy1idG4tZGlzYWJsZWQgeyAgICAgICAgb3BhY2l0eTowLjY7ICAgICAgICBmaWx0ZXI6YWxwaGEob3BhY2l0eT02MCk7ICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7ICAgIH0gICAgLnRydXN0YXJjLWJ0bi1kaXNhYmxlZDpob3ZlciB7ICAgICAgICBvcGFjaXR5OjAuNjsgICAgICAgIGZpbHRlcjphbHBoYShvcGFjaXR5PTYwKTsgICAgICAgIGN1cnNvcjogZGVmYXVsdDsgICAgfSAgICAudHJ1c3RhcmMtYmFubmVyLWhlYWRlciB7ICAgICAgICBmb250LXNpemU6IDE4cHg7ICAgIH0gICAgLnRydXN0YXJjLWJhbm5lci1oZWFkZXIgc3BhbiB7ICAgIGZvbnQtZmFtaWx5OiBcIk11c2VvU2FuczUwMFwiLCBzYW5zLXNlcmlmO30gICAgLnRydXN0YXJjLWRlY2xpbmVhbGwtYnRuLCAudHJ1c3RhcmMtbWFuYWdlLWJ0biB7ICAgICAgICBtYXJnaW4tdG9wOjEwcHg7ICAgICAgICBtaW4taGVpZ2h0OjMycHg7ICAgICAgICB3aWR0aDoxNTBweDsgICAgICAgIGZvbnQtc2l6ZToxMnB4OyAgICAgICAgYm9yZGVyOiBub25lOyAgICAgICAgcGFkZGluZzogMHB4OyAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7ICAgICAgICBib3JkZXItcmFkaXVzOjJweDsgICAgICAgIGN1cnNvcjpwb2ludGVyOyAgICAgICAgY29sb3I6IzAwMDsgICAgICAgIGZvbnQtZmFtaWx5OiBcIk11c2VvU2FuczMwMFwiLCBzYW5zLXNlcmlmOyAgICB9ICAgIC50cnVzdGFyYy1kZWNsaW5lYWxsLWJ0bjpob3ZlciwgLnRydXN0YXJjLW1hbmFnZS1idG46aG92ZXIgeyAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OyAgICB9ICAgIC50cnVzdGFyYy1hZ3JlZS1idG4geyAgICAgICAgbWFyZ2luLXRvcDoxMHB4OyAgICAgICAgbWluLWhlaWdodDozMnB4OyAgICAgICAgd2lkdGg6MTAwJTsgICAgICAgIGZvbnQtc2l6ZToxMnB4OyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzA4MWU3NjsgICAgICAgIHBhZGRpbmc6MHB4IDsgICAgICAgIGJhY2tncm91bmQtY29sb3I6IzA4MWU3NjsgICAgICAgIGJvcmRlci1yYWRpdXM6MnB4OyAgICAgICAgY3Vyc29yOnBvaW50ZXI7ICAgICAgICBjb2xvcjojZmZmOyAgICAgICAgZm9udC1mYW1pbHk6IFwiTXVzZW9TYW5zMzAwXCIsIHNhbnMtc2VyaWY7ICAgIH0vKiAgICAucGFydG5lcnMtY29udGFpbmVyIHsgICAgICAgIHBhZGRpbmctbGVmdDoyNHB4OyAgICB9Ki8gICAgLmlhYi1saW5rIHsgICAgICAgIGNvbG9yOiAjMDA2MWU0OyAgICBcdGN1cnNvcjpwb2ludGVyOyAgICB9YSN0cnVzdGUtcHJpdmFjeS1idXR0b24geyAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7fWEjdHJ1c3RlLWNvb2tpZS1idXR0b24geyAgICBtYXJnaW4tbGVmdDogMTBweDt9ICAgIC5idG4tY2xhc3MgeyAgICAgICAgd2lkdGg6IDEwMCU7ICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7ICAgIH0gICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHsvKiAgICAgICAgLnRydXN0YXJjLWFncmVlLWJ0biwgLnRydXN0YXJjLWRlY2xpbmVhbGwtYnRuLCAudHJ1c3RhcmMtbWFuYWdlLWJ0biB7ICAgICAgICAgICAgd2lkdGg6MTE0cHg7ICAgICAgICB9Ki8gICAgICAgIC50cnVzdGFyYy1iYW5uZXItaGVhZGVyIHsgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7ICAgICAgICB9ICAgIH0gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxcHgpIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgeyAgICAgICAgLnRydXN0YXJjLWJhbm5lci1sb2dvIHsgICAgICAgICAgICBoZWlnaHQ6IDY0cHg7ICAgICAgICAgICAgd2lkdGg6IDY0cHg7ICAgICAgICB9ICAgICAgICAudHJ1c3RhcmMtbWFuYWdlLWJ0biwgLnRydXN0YXJjLWFncmVlLWJ0biwgLnRydXN0YXJjLWRlY2xpbmVhbGwtYnRuIHsgICAgICAgICAgICBmb250LXNpemU6IDEycHg7ICAgICAgICB9ICAgICAgICAudHJ1c3RhcmMtY2xpZW50LWxvZ28geyAgICAgICAgICAgIHBhZGRpbmc6IDE2cHggMTBweDsgICAgICAgIH0gICAgfSAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDFweCkgYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7ICAgICAgICAudHJ1c3RhcmMtYmFubmVyLWNvbnRhaW5lciB7ICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsgICAgICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsgICAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICB9ICAgICAgICAudHJ1c3RhcmMtYmFubmVyLWhlYWRlciB7ICAgICAgICAgICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50OyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLWJhbm5lci1jb250ZW50IHsgICAgICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwOyAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsgICAgICAgIH0gICAgICAgIC50cnVzdGFyYy1iYW5uZXItZGV0YWlscyB7ICAgICAgICAgICAgcGFkZGluZzogNXB4OyAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOyAgICAgICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOyAgICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OyAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7ICAgICAgICB9ICAgICAgICAudHJ1c3RhcmMtY29uc2VudC1idXR0b25zIHsgLypBZGp1c3QgYnV0dG9uIHNpemUgb3IgZ2FwKi8gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7ICAgICAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7ICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM4cHg7ICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7ICAgICAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7ICAgICAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7ICAgICAgICAgICAgbWFyZ2luOiAwcHggNXB4OyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLW1hbmFnZS1idG4sIC50cnVzdGFyYy1hZ3JlZS1idG4sIC50cnVzdGFyYy1kZWNsaW5lYWxsLWJ0biB7ICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgICAgICAgICAgIG1hcmdpbjo1cHg7ICAgICAgICAgICAgd2lkdGg6IDEwMCU7ICAgICAgICB9ICAgICAgICAuYmFubmVyLWRldGFpbHMtY29udGFpbmVyIHsgLypBRERFRCBDU1MqLyAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOyAgICAgICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOyAgICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OyAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7ICAgICAgICAgICAgd2lkdGg6IGF1dG87ICAgICAgICB9ICAgICAgICAuZGVzY3JpcHRpb24tZ3JvdXAgeyAvKkFEREVEIENTUyovICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7ICAgICAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7ICAgICAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgICAgICBnYXA6IDVweDsgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOyAgICAgICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOyAgICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOyAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47ICAgICAgICB9ICAgICAgICAudHJ1c3RhcmMtYmFubmVyLWJvZHkgeyAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwcHg7ICAgICAgICB9ICAgICAgICAudHJ1c3RhcmMtYmFubmVyLWhlYWRlciB7ICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7ICAgICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7ICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDsgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7ICAgICAgICB9ICAgIH0gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxcHgpIGFuZCAobWF4LXdpZHRoOiA0MjVweCkgeyAgICAgICAgLnRydXN0YXJjLWNvbnNlbnQtYnV0dG9ucyB7IC8qQWRqdXN0IGJ1dHRvbiBzaXplIG9yIGdhcCovICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OyAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgICAgICAgICAgICBtaW4taGVpZ2h0OiAzOHB4OyAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICAgICAgbWFyZ2luOiAwcHggNXB4OyAgICAgICAgfSAgICAgICAgLmJhbm5lci1kZXRhaWxzLWNvbnRhaW5lciB7ICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDEwcHggMHB4IDEwcHg7ICAgICAgICB9ICAgIH0gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxcHgpIGFuZCAobWF4LXdpZHRoOiAzMjBweCkgeyAgICAgICAgLnRydXN0YXJjLWNvbnNlbnQtYnV0dG9ucyB7IC8qQWRqdXN0IGJ1dHRvbiBzaXplIG9yIGdhcCovICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OyAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgICAgICAgICAgICBtaW4taGVpZ2h0OiAzOHB4OyAgICAgICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAgOyAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcCA7ICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7ICAgICAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7ICAgICAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgICAgICBtYXJnaW46IDBweCA1cHg7ICAgICAgICB9ICAgICAgICAudHJ1c3RhcmMtbWFuYWdlLWJ0biwgLnRydXN0YXJjLWFncmVlLWJ0biwgLnRydXN0YXJjLWRlY2xpbmVhbGwtYnRuIHsgICAgICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAxOyAgICAgICAgICAgIC1tcy1mbGV4OiAxIDAgNDAlOyAgICAgICAgICAgIGZsZXg6IDEgMCA0MCU7ICAgICAgICB9ICAgIH0gICAge0Nzc308L3N0eWxlPjxkaXYgaWQ9XCJ0cnVzdGUtY29uc2VudC10cmFja1wiIGNsYXNzPVwidHJ1c3RhcmMtYmFubmVyLXdyYXBwZXIgdHJ1c3RhcmMtYmFubmVyLWJhY2tncm91bmQgdHJ1c3RhcmMtYmFja2dyb3VuZFwiIHN0eWxlPVwiZGlzcGxheTpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1wiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiPiAgICA8ZGl2IGlkPVwidHJ1c3RhcmMtaW5mb1wiIGNsYXNzPVwidHJ1c3RhcmMtaW5mby1oaWRlXCI+ICAgICAgICA8ZGl2IGNsYXNzPVwidHJ1c3RhcmMtaW5mby1pbWdcIiBzdHlsZT1cIm1hcmdpbjogMTRweCA2cHggMTRweCAyNnB4O1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9hc3NldC9pYy1lcnJvci5zdmdcIiBhbHQ9XCJhbGVydCBpY29uXCIvPiAgICAgICAgPC9kaXY+ICAgICAgICA8ZGl2IHRhYmluZGV4PVwiMFwiIGlkPVwidHJ1c3RlLXJlcG9wLW1zZ1wiIGNsYXNzPVwidHJ1c3RhcmMtd2FybmluZy10ZXh0XCIgc3R5bGU9XCJtYXJnaW46IDE0cHg7XCI+PC9kaXY+ICAgICAgICA8ZGl2IGNsYXNzPVwidHJ1c3RhcmMtaW5mby1pbWdcIiBzdHlsZT1cIm1hcmdpbjogMTRweCAyNnB4IDE0cHggNnB4O1wiPiAgICAgICAgICAgIDxhIGlkPVwidHJ1c3RlLXJlcG9wLW1zZy1jbG9zZVwiIHJvbGU9XCJidXR0b25cIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiB0YWJpbmRleD1cIjBcIj4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2Fzc2V0L2ljLWNsb3NlLXdoaXRlLnN2Z1wiIGFsdD1cImFsZXJ0IG1lc3NhZ2UgY2xvc2VcIiBzdHlsZT1cIndpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7XCIgLz4gICAgICAgICAgICA8L2E+ICAgICAgICA8L2Rpdj4gICAgPC9kaXY+ICAgIDxkaXYgaWQ9XCJ0cnVzdGFyYy1jbGVhci1jb29raWUtaW5mb1wiIGNsYXNzPVwidHJ1c3RhcmMtaW5mby1oaWRlXCI+ICAgICAgICA8ZGl2IGNsYXNzPVwidHJ1c3RhcmMtaW5mby1pbWdcIiBzdHlsZT1cIm1hcmdpbjogMTRweCA2cHggMTRweCAyNnB4O1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9hc3NldC9pYy1lcnJvci5zdmdcIiBhbHQ9XCJhbGVydCBpY29uXCIvPiAgICAgICAgPC9kaXY+ICAgICAgICA8ZGl2IHRhYmluZGV4PVwiMFwiIGlkPVwidHJ1c3RlLWNsZWFyLWNvb2tpZS1tc2dcIiBjbGFzcz1cInRydXN0YXJjLXdhcm5pbmctdGV4dFwiIHN0eWxlPVwibWFyZ2luOiAxNHB4O1wiPjwvZGl2PiAgICAgICAgPGRpdiBjbGFzcz1cInRydXN0YXJjLWluZm8taW1nXCIgc3R5bGU9XCJtYXJnaW46IDE0cHggMjZweCAxNHB4IDZweDtcIj4gICAgICAgICAgICA8YSBpZD1cInRydXN0ZS1jbGVhci1jb29raWUtbXNnLWNsb3NlXCIgcm9sZT1cImJ1dHRvblwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIHRhYmluZGV4PVwiMFwiPiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vYXNzZXQvaWMtY2xvc2Utd2hpdGUuc3ZnXCIgYWx0PVwiYWxlcnQgbWVzc2FnZSBjbG9zZVwiIHN0eWxlPVwid2lkdGg6IDE0cHg7IGhlaWdodDogMTRweDtcIiAvPiAgICAgICAgICAgIDwvYT4gICAgICAgIDwvZGl2PiAgICA8L2Rpdj4gICAgPGRpdiBjbGFzcz1cInRydXN0YXJjLWJhbm5lci1jb250YWluZXJcIj4gICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXItZGV0YWlscy1jb250YWluZXJcIj4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tZ3JvdXBcIj4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRydXN0YXJjLWJhbm5lci1kZXRhaWxzXCI+ICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwidHJ1c3RlLWJhbm5lci1oZWFkZXItdGV4dFwiIGNsYXNzPVwidHJ1c3RhcmMtYmFubmVyLWhlYWRlclwiIHN0eWxlPVwiZm9udC1rZXJuaW5nOm5vcm1hbDtcIiBhcmlhLXJlYWRvbmx5PVwidHJ1ZVwiPiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6Ym9sZGVyO1wiIHJvbGU9XCJoZWFkaW5nXCIgV0FJLUFSSUEgcm9sZT1cImhlYWRpbmdcIiBhcmlhLWxldmVsPVwiMVwiIHRhYmluZGV4PVwiMFwiPllPVVIgQ0hPSUNFUyBSRUdBUkRJTkcgQ09PS0lFUyBPTiBUSElTIFNJVEU8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiBpZD1cInRydXN0ZS1iYW5uZXItYm9keS10ZXh0XCIgY2xhc3M9XCJ0cnVzdGFyYy1iYW5uZXItYm9keVwiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2UgY2hvb3NlIHdoZXRoZXIgdGhpcyBzaXRlIG1heSB1c2UgY29va2llcyBvciByZWxhdGVkIHRlY2hub2xvZ2llcyBzdWNoIGFzIHdlYiBiZWFjb25zLCBwaXhlbCB0YWdzLCBhbmQgRmxhc2ggb2JqZWN0cyAoJnF1b3Q7Q29va2llcyZxdW90OykgYXMgZGVzY3JpYmVkIGJlbG93LiBZb3UgY2FuIGxlYXJuIG1vcmUgYWJvdXQgaG93IHRoaXMgc2l0ZSB1c2VzIGNvb2tpZXMgYW5kIHJlbGF0ZWQgdGVjaG5vbG9naWVzIGJ5IHJlYWRpbmcgb3VyIHByaXZhY3kgcG9saWN5IGxpbmtlZCB0byBiZWxvdy4gWW91ciBjaG9pY2VzIG9uIHRoaXMgc2l0ZSB3aWxsIGJlIGFwcGxpZWQgZ2xvYmFsbHkuIFRoaXMgbWVhbnMgdGhhdCB5b3VyIHNldHRpbmdzIHdpbGwgYmUgYXZhaWxhYmxlIG9uIG90aGVyIHNpdGVzIHRoYXQgc2V0IHlvdXIgY2hvaWNlcyBnbG9iYWxseS4gWW91IGNhbiBjaGFuZ2UgeW91ciBtaW5kIGFuZCByZXZpc2l0IHlvdXIgcHJlZmVyZW5jZXMgYXQgYW55IHRpbWUgYnkgYWNjZXNzaW5nIHRoZSAmcXVvdDtDb29raWUgUHJlZmVyZW5jZXMmcXVvdDsgbGluayBpbiB0aGUgZm9vdGVyIG9mIHRoaXMgc2l0ZS4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRydXN0YXJjLWJhbm5lci1kZXRhaWxzIHBhcnRuZXJzLWNvbnRhaW5lclwiPiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInRydXN0ZS1wYXJ0bmVyLWhlYWRlci10ZXh0XCIgY2xhc3M9XCJ0cnVzdGFyYy1iYW5uZXItaGVhZGVyXCIgc3R5bGU9XCJmb250LWtlcm5pbmc6bm9ybWFsO1wiIGFyaWEtcmVhZG9ubHk9XCJ0cnVlXCI+ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDpib2xkZXI7XCIgdGFiaW5kZXg9XCIwXCI+V0UgQU5EIE9VUiBQQVJUTkVSUyAoMSk8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiBpZD1cInRydXN0ZS1wYXJ0bmVyLWJvZHktdGV4dFwiIGNsYXNzPVwidHJ1c3RhcmMtYmFubmVyLWJvZHlcIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW46IDBweFwiPldlIGFuZCA8YSBpZD1cImlhYi1wYXJ0bmVycy1saW5rXCIgY2xhc3M9XCJpYWItbGlua1wiIHRhYmluZGV4PVwiMFwiPiBvdXIgcGFydG5lcnM6ICgxKTwvYT4gcHJvY2VzcyBwZXJzb25hbCBkYXRhIHN1Y2ggYXMgSVAgQWRkcmVzcywgVW5pcXVlIElELCBicm93c2luZyBkYXRhIGZvcjogIFN0b3JlIGFuZC9vciBhY2Nlc3MgaW5mb3JtYXRpb24gb24gYSBkZXZpY2UgfCBQZXJzb25hbGlzZWQgYWR2ZXJ0aXNpbmcuPC9wPiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT1cIm1hcmdpbjogMHB4OyBwYWRkaW5nLXRvcDo4cHg7XCI+U29tZSBwYXJ0bmVycyBkbyBub3QgYXNrIGZvciB5b3VyIGNvbnNlbnQgdG8gcHJvY2VzcyB5b3VyIGRhdGEsIGluc3RlYWQsIHRoZXkgcmVseSBvbiB0aGVpciBsZWdpdGltYXRlIGJ1c2luZXNzIGludGVyZXN0LiBWaWV3IG91ciA8YSBpZD1cImlhYi1zZWNvbmQtcGFydG5lcnMtbGlua1wiIGNsYXNzPVwiaWFiLWxpbmtcIiB0YWJpbmRleD1cIjBcIj5saXN0IG9mIHBhcnRuZXJzPC9hPiB0byBzZWUgdGhlIHB1cnBvc2VzIHRoZXkgYmVsaWV2ZSB0aGV5IGhhdmUgYSBsZWdpdGltYXRlIGludGVyZXN0IGZvciBhbmQgaG93IHlvdSBjYW4gb2JqZWN0IHRvIGl0LjwvcD4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICA8L2Rpdj4gICAgICAgIDwvZGl2PiAgICAgICAgPGRpdiBpZD1cInRydXN0ZS1jb25zZW50LWJ1dHRvbnNcIiBjbGFzcz1cInRydXN0YXJjLWNvbnNlbnQtYnV0dG9uc1wiPiAgICAgICAgICAgIDxkaXYgaWQ9XCJidG4tZzFcIiBjbGFzcz1cImJ0bi1jbGFzc1wiPjxidXR0b24gdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJ0cnVzdGFyYy1hZ3JlZS1idG5cIiBpZD1cInRydXN0ZS1jb25zZW50LWJ1dHRvblwiPkFjY2VwdCBBbGw8L2J1dHRvbj48L2Rpdj4gICAgICAgICAgPGRpdiBpZD1cImJ0bi1nMlwiIGNsYXNzPVwiYnRuLWNsYXNzXCI+ICAgICAgICAgICAgPGJ1dHRvbiB0YWJpbmRleD1cIjBcIiBjbGFzcz1cInRydXN0YXJjLWRlY2xpbmVhbGwtYnRuXCIgaWQ9XCJ0cnVzdGUtY29uc2VudC1yZXF1aXJlZFwiPkRlY2xpbmUgQWxsPC9idXR0b24+ICAgICAgICAgICAgPGJ1dHRvbiB0YWJpbmRleD1cIjBcIiBjbGFzcz1cInRydXN0YXJjLW1hbmFnZS1idG5cIiBpZD1cInRydXN0ZS1zaG93LWNvbnNlbnRcIj5NYW5hZ2UgU2V0dGluZ3M8L2J1dHRvbj4gICAgICAgICAgPC9kaXY+ICAgICAgICA8L2Rpdj4gICAgPC9kaXY+ICAgIDxkaXYgY2xhc3M9XCJ0cnVzdGFyYy1iYW5uZXItZm9vdGVyXCI+ICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3LmdvZGFkZHkuY29tL2FncmVlbWVudHMvc2hvd2RvYz9wYWdlaWQ9UFJJVkFDWVwiIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwidHJ1c3RhcmMtYmFubmVyLWxlZnRcIiBpZD1cInRydXN0ZS1wcml2YWN5LWJ1dHRvblwiIHRhcmdldD1cIl9ibGFua1wiPlByaXZhY3kgUG9saWN5PC9hPiAgICAgICAgPGRpdiBjbGFzcz1cInRydXN0YXJjLWJhbm5lci1yaWdodFwiPiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiYWxpZ24tc2VsZjogY2VudGVyO1wiPlBvd2VyZWQgYnk6PC9zcGFuPiAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3RydXN0YXJjLmNvbVwiIHRhcmdldD1cIl9ibGFua1wiICBpZD1cInRydXN0ZS1wb3dlcmVkLWJ5XCIgdGFiaW5kZXg9IFwiMFwiID4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2dldD9uYW1lPVBvd2VyZWQtQnktVHJ1c3RBcmMucG5nXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOjdweDtwYWRkaW5nLWxlZnQ6NXB4O3BhZGRpbmctdG9wOjEwcHg7aW1hZ2UtcmVuZGVyaW5nOmF1dG87aW1hZ2UtcmVuZGVyaW5nOmNyaXNwLWVkZ2VzO2ltYWdlLXJlbmRlcmluZzppbmhlcml0O2hlaWdodDoxNnB4O1wiIGFsdD1cImNvb2tpZSBub3RpY2UgcHJvdmlkZXIgbG9nb1wiLz4gICAgICAgICAgICA8L2E+ICAgICAgICA8L2Rpdj4gICAgPC9kaXY+PC9kaXY+Jztcbk89Ty5yZXBsYWNlKFwiJmx0O2kmZ3Q7XCIsXCI8aT5cIikucmVwbGFjZShcIiZsdDsvaSZndDtcIixcIjwvaT5cIikucmVwbGFjZShcIiZsdDtiJmd0O1wiLFwiPGI+XCIpLnJlcGxhY2UoXCImbHQ7L2ImZ3Q7XCIsXCI8L2I+XCIpO1xuaWYoIU98fE8ubGVuZ3RoPDE1KXtPPSc8ZGl2IGlkPVwidHJ1c3RlLWNvbnNlbnQtdHJhY2tcIiBzdHlsZT1cImRpc3BsYXk6bm9uZTsgYmFja2dyb3VuZC1jb2xvcjojMDAwO1wiPjxkaXYgaWQ9XCJ0cnVzdGUtY29uc2VudC1jb250ZW50XCIgc3R5bGU9XCJvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW46IDAgYXV0bzsgbWF4LXdpZHRoOiAxMDAwcHhcIj48ZGl2IGlkPVwidHJ1c3RlLWNvbnNlbnQtdGV4dFwiIHN0eWxlPVwiZmxvYXQ6bGVmdDsgbWFyZ2luOjE1cHggMCAxMHB4IDEwcHg7IHdpZHRoOjUwMHB4O1wiPjxoMiBzdHlsZT1cImNvbG9yOiAjZmZmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtZmFtaWx5OmFyaWFsO1wiPlNvbWUgZnVuY3Rpb25hbGl0eSBvbiB0aGlzIHNpdGUgcmVxdWlyZXMgeW91ciBjb25zZW50IGZvciBjb29raWVzIHRvIHdvcmsgcHJvcGVybHkuPC9oMj48ZGl2IGlkPVwidHJ1c3RlLXJlcG9wLW1zZ1wiIHN0eWxlPVwicGFkZGluZzogMHB4IDBweCA1cHggMHB4O2ZvbnQtc2l6ZTogMTJweDtjb2xvcjogI0YwQzM2RDsgZGlzcGxheTpub25lOyBmb250LWZhbWlseTogYXJpYWwsc2Fucy1zZXJpZjtcIj48L2Rpdj48L2Rpdj48ZGl2IGlkPVwidHJ1c3RlLWNvbnNlbnQtYnV0dG9uc1wiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7IG1hcmdpbjoyMHB4IDEwcHggMjBweCAwO1wiPjxidXR0b24gaWQ9XCJ0cnVzdGUtY29uc2VudC1idXR0b25cIiB0eXBlPWJ1dHRvbiBzdHlsZT1cInBhZGRpbmc6NXB4OyBtYXJnaW4tcmlnaHQ6NXB4OyBmb250LXNpemU6MTJweDtcIj5JIGNvbnNlbnQgdG8gY29va2llczwvYnV0dG9uPjxidXR0b24gaWQ9XCJ0cnVzdGUtc2hvdy1jb25zZW50XCIgdHlwZT1idXR0b24gc3R5bGU9XCJwYWRkaW5nOjVweDsgbWFyZ2luLXJpZ2h0OjVweDsgZm9udC1zaXplOjEycHg7XCI+SSB3YW50IG1vcmUgaW5mb3JtYXRpb248L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj4nXG59aWYoTi5yZXNwb25zaXZlPT09XCJmYWxzZVwiKXtPPU8ucmVwbGFjZSgvKGNsYXNzPVtcIiddLio/KVtcXHNdP3RydXN0ZS1yZXNwb25zaXZlKC4qP1tcIiddKS9nLFwiJDEkMlwiKX1pZihvLmluc2VydEFkamFjZW50SFRNTCl7by5pbnNlcnRBZGphY2VudEhUTUwoXCJhZnRlcmJlZ2luXCIsTylcbn1lbHNle28uaW5uZXJIVE1MPU99fWZ1bmN0aW9uIHooUSl7dmFyIFA9KHRydXN0ZS51dGlsJiZ0cnVzdGUudXRpbC5nZXRKU09OKXx8KHRydXN0ZS5jbWEmJnRydXN0ZS5jbWEuY2hlYXBKU09OKXx8d2luZG93LkpTT04uc3RyaW5naWZ5LE89e3NvdXJjZTpcInByZWZlcmVuY2VfbWFuYWdlclwiLG1lc3NhZ2U6USxkYXRhOnt1c2VOb25TdGFuZGFyZFN0YWNrczpmYWxzZSxjb25zZW50U2NyZWVuOjF9fTtcbndpbmRvdy5wb3N0TWVzc2FnZSYmd2luZG93LnBvc3RNZXNzYWdlKFAoTyksXCIqXCIpfWZ1bmN0aW9uIE0oUSxSKXt2YXIgUD0odHJ1c3RlLnV0aWwmJnRydXN0ZS51dGlsLmdldEpTT04pfHwodHJ1c3RlLmNtYSYmdHJ1c3RlLmNtYS5jaGVhcEpTT04pfHx3aW5kb3cuSlNPTi5zdHJpbmdpZnksTz17c291cmNlOlwicHJlZmVyZW5jZV9tYW5hZ2VyXCIsbWVzc2FnZTpRLGRhdGE6Un07XG53aW5kb3cucG9zdE1lc3NhZ2UmJndpbmRvdy5wb3N0TWVzc2FnZShQKE8pLFwiKlwiKX1mdW5jdGlvbiB2KE8pe3RydXN0ZS5ldS5ncHAmJnRydXN0ZS5ldS5ncHAudXBkYXRlQ21wRGlzcGxheVN0YXR1cyhPKVxufWZ1bmN0aW9uIEsoKXtzZWxmLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRydXN0ZS5ldS5DT09LSUVfQ0FURUdPUllfTkFNRSk7dHJ1c3RlLmV1LmNjcGEuZHJvcENjcGFDb29raWUoZmFsc2UpO1xubChGKX1mdW5jdGlvbiBCKCl7dmFyIE89dHJ1c3RlLmV1LmJpbmRNYXA7dHJ1c3RlLmV1LmNjcGEuZHJvcENjcGFDb29raWUodHJ1ZSk7aWYoTyYmTy5wcmVmbWdyVXJsJiYoTi5ndG18fHRydXN0ZS5ldS5ub3RpY2VMUC5ndG09PTEpKXt0cnVzdGUuYm4uaGlkZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1KSk7XG52KFwiaGlkZGVuXCIpO2woXCIwXCIpO3RydXN0ZS51dGlsLmNhbGxDTUVuZHBvaW50KFwiL2RlZmF1bHRjb25zZW50bWFuYWdlci9nZXRPcHRPdXREb21haW5zP1wiLG51bGwsZnVuY3Rpb24oUSl7dmFyIFA9US5yZXNwb25zZVRleHQ7XG5pZihQJiZ0cnVzdGUudXRpbC5wYXJzZUpTT04oUCkpe3RydXN0ZS51dGlsLnNldFN0b3JhZ2UodHJ1c3RlLmV1LkNPT0tJRV9DQVRFR09SWV9OQU1FLFAsZmFsc2UpfX0pfWVsc2V7aWYodHJ1c3RlLmV1JiZ0cnVzdGUuZXUuY2xpY2tMaXN0ZW5lcil7dHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIoMylcbn19fWZ1bmN0aW9uIGwoTyl7dmFyIFM9dHJ1c3RlLnV0aWwuZ2V0TG93ZXN0Q29uc2VudChPKTtpZighaXNOYU4oUz1wYXJzZUludChTKSkmJnRydXN0ZS5ldSYmdHJ1c3RlLmV1LmFjdG1lc3NhZ2Upe3ZhciBRPSh0cnVzdGUudXRpbCYmdHJ1c3RlLnV0aWwuZ2V0SlNPTil8fCh0cnVzdGUuY21hJiZ0cnVzdGUuY21hLmNoZWFwSlNPTil8fHdpbmRvdy5KU09OLnN0cmluZ2lmeSxQPXtzb3VyY2U6XCJwcmVmZXJlbmNlX21hbmFnZXJcIixtZXNzYWdlOlwic3VibWl0X3ByZWZlcmVuY2VzXCIsZGF0YTp7dmFsdWU6T319O1xudHJ1c3RlLmV1LmFjdG1lc3NhZ2UoUCk7aWYod2luZG93LlBSRUZfTUdSX0FQSV9ERUJVRyl7UFJFRl9NR1JfQVBJX0RFQlVHLmF1dGhvcml0aWVzLnB1c2god2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKVxufXdpbmRvdy5wb3N0TWVzc2FnZSYmd2luZG93LnBvc3RNZXNzYWdlKFEoUCksXCIqXCIpO3ZhciBSPXRydXN0ZS5ldS5iaW5kTWFwO2lmKFImJlIucHJlZm1nclVybCYmIVIuZmVhdC5jY3BhQXBwbGllcyl7dHJ1c3RlLnV0aWwuY2FsbENNRW5kcG9pbnQoXCIvZGVmYXVsdGNvbnNlbnRtYW5hZ2VyL29wdGluP1wiLFMsZnVuY3Rpb24oKXt9LHRydWUpXG59RyhcInNlbGVjdGlvblwiKX1lbHNle0coXCJkb25lXCIpfX1mdW5jdGlvbiBzKCl7dmFyIE89dHJ1c3RlLmV1LmJpbmRNYXA7aWYoTy5mZWF0LmlzUmVjb25zZW50RXZlbnQmJk8ucG9wdXBNc2cubGVuZ3RoPjApe3ZhciBRPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHkucmVwb3BEaXYpO1xuaWYoUSl7US5pbm5lckhUTUw9Ty5wb3B1cE1zZzt0cnVzdGUuYm4uc2hvdyhRKX19dmFyIFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeS5jb25zZW50QnV0dG9uKTtpZihTKXt2YXIgUj1uZXcgUmVnRXhwKChcIl5cIitGK1wiJFwiKS5yZXBsYWNlKC8sL2csXCIuXCIpKTtcbmlmKCFOLmd0bSYmIU8uZmVhdC5lbmFibGVDQ1BBJiZPLmZlYXQuaXNSZXBvcEV2ZW50JiYhUi50ZXN0KE8ucHJlZkNvb2tpZSkpe1Muc3R5bGUuZGlzcGxheT1cIm5vbmVcIn1lbHNle1Mub25jbGljaz1mdW5jdGlvbigpe3RydXN0ZS5ibi5tc2dsb2coXCJhY2NlcHRzXCIsYi5iYW5uZXJNc2dVUkwpO1xuaWYoYi5mZWF0LmlhYkJhbm5lckFwcGxpZXMpe3ooXCJwcm9jZXNzX2lhYl9hY2NlcHRfYWxsXCIpfWVsc2V7aWYoYi5mZWF0LmdwcC5ncHBBcHBsaWVzKXtNKFwicHJvY2Vzc19ncHBfYWNjZXB0X2FsbFwiKVxufX1pZigoTy5mZWF0LmVuYWJsZUNDUEF8fE8uZmVhdC5pc1JlY29uc2VudEV2ZW50KSYmTy5mZWF0LmVuYWJsZVR3b1N0ZXBWZXJpZmljYXRpb24mJnRydXN0ZS51dGlsLnZhbGlkQ29uc2VudChPLnByZWZDb29raWUpJiYhUi50ZXN0KE8ucHJlZkNvb2tpZSkpe2lmKHRydXN0ZS5ldSYmdHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIpe3RydXN0ZS5ldS5jbGlja0xpc3RlbmVyKDYpXG59fWVsc2V7SygpfX19fVM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeS5mb290ZXJDYWxsYmFjayk7aWYoUyl7Uy5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhhc3BvcHVwXCIsXCJ0cnVlXCIpO1xuUy5vbmNsaWNrPWZ1bmN0aW9uKCl7dHJ1c3RlLmJuLm1zZ2xvZyhcIm1vcmVpbmZvXCIsYi5iYW5uZXJNc2dVUkwpO2lmKHRydXN0ZS5ldSYmdHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIpe2lmKGIuZmVhdC5pYWJCYW5uZXJBcHBsaWVzKXt0cnVzdGUuZXUuY2xpY2tMaXN0ZW5lcig0KVxufWVsc2V7dHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIocGFyc2VJbnQoTi5wbil8fDApfU8ucmV0dXJuRm9jdXNUbz15LmZvb3RlckNhbGxiYWNrLnJlcGxhY2UoXCIjXCIsXCJcIil9fX1TPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHkucmVxdWlyZWRCdXR0b24pO1xuaWYoUyl7Uy5vbmNsaWNrPWZ1bmN0aW9uKCl7dHJ1c3RlLmJuLm1zZ2xvZyhcInJlcXVpcmVkb25seVwiLGIuYmFubmVyTXNnVVJMKTtpZih0cnVzdGUuZXUuY3ByYSYmdHJ1c3RlLmV1LmNwcmEuc2hvdWxkU2hvd0ZpblByb2coKSl7dHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIoNyx0cnVlLHtjcHJhQ29uc2VudDpcIjBcIixjcHJhU291cmNlOlwiYmFubmVyLWRlY2xpbmVcIn0pO1xucmV0dXJufWVsc2V7aWYoYi5mZWF0LmlhYkJhbm5lckFwcGxpZXMpe3ooXCJwcm9jZXNzX2lhYl9yZWplY3RfYWxsXCIpfWVsc2V7aWYoYi5mZWF0LmdwcC5ncHBBcHBsaWVzKXtNKFwicHJvY2Vzc19ncHBfcmVqZWN0X2FsbFwiKVxufX1CKCl9fX1TPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHkuY2NwYU9wdG91dEJ1dHRvbik7aWYoUyl7Uy5vbmNsaWNrPWZ1bmN0aW9uKCl7dHJ1c3RlLmJuLm1zZ2xvZyhcInJlcXVpcmVkb25seVwiLGIuYmFubmVyTXNnVVJMKTtcbmlmKHRydXN0ZS5ldS5jcHJhJiZ0cnVzdGUuZXUuY3ByYS5zaG91bGRTaG93RmluUHJvZygpKXt0cnVzdGUuZXUuY2xpY2tMaXN0ZW5lcig3LHRydWUse2NwcmFDb25zZW50OlwiMFwiLGNwcmFTb3VyY2U6XCJiYW5uZXItZGVjbGluZS1jY3BhXCJ9KTtcbnJldHVybn1lbHNle3RydXN0ZS5ibi5kZWNsaW5lQ1BSQSgpfX19Uz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh5LmNvb2tpZUJ1dHRvbik7aWYoUyl7aWYoTi5jb29raWVMaW5rKXtTLmhyZWY9Ti5jb29raWVMaW5rXG59Uy5vbmNsaWNrPWZ1bmN0aW9uKFUpe3RydXN0ZS5ibi5tc2dsb2coXCJjb29raWVwb2xpY3lcIixiLmJhbm5lck1zZ1VSTCk7aWYoTi5jb29raWVMaW5rKXtVLnByZXZlbnREZWZhdWx0KCk7XG53aW5kb3cub3BlbihOLmNvb2tpZUxpbmssQSl9fX1TPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHkucHJpdmFjeUJ1dHRvbik7aWYoUyl7aWYoTi5wcml2YWN5cG9saWN5bGluayl7Uy5ocmVmPU4ucHJpdmFjeXBvbGljeWxpbmtcbn1TLm9uY2xpY2s9ZnVuY3Rpb24oVSl7aWYoTi5wcml2YWN5cG9saWN5bGluayl7VS5wcmV2ZW50RGVmYXVsdCgpO3dpbmRvdy5vcGVuKE4ucHJpdmFjeXBvbGljeWxpbmssQSl9fVxufVM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeS5jbG9zZUJhbm5lcik7aWYoUyl7Uy5vbmNsaWNrPWZ1bmN0aW9uKCl7dmFyIFU9dHJ1c3RlLmV1LmJpbmRNYXA7dmFyIFY9dHJ1c3RlLnV0aWwudmFsaWRDb25zZW50KFUucHJlZkNvb2tpZSk7XG52YXIgVz0oVS5mZWF0Lm9wdG91dENsb3NlJiYhVik7aWYoVyl7aWYodHJ1c3RlLmV1LmNwcmEmJnRydXN0ZS5ldS5jcHJhLnNob3VsZFNob3dGaW5Qcm9nKCkpe3RydXN0ZS5ldS5jbGlja0xpc3RlbmVyKDcsdHJ1ZSx7Y3ByYUNvbnNlbnQ6XCIwXCIsY3ByYVNvdXJjZTpcImJhbm5lci1kZWNsaW5lXCJ9KTtcbnJldHVybn1lbHNle0IoKX19ZWxzZXtHKFwiZG9uZVwiKX19fVM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeS5pYWJQYXJ0bmVyc0xpbmspO2lmKFMpe1Mub25jbGljaz1mdW5jdGlvbigpe3RydXN0ZS5ldS5jbGlja0xpc3RlbmVyKDUpO1xuTy5yZXR1cm5Gb2N1c1RvPXkuaWFiUGFydG5lcnNMaW5rLnJlcGxhY2UoXCIjXCIsXCJcIil9O1Mub25rZXl1cD1mdW5jdGlvbihVKXtpZihVLmtleUNvZGU9PTEzKXt0cnVzdGUuZXUuY2xpY2tMaXN0ZW5lcig1KTtcbk8ucmV0dXJuRm9jdXNUbz15LmlhYlBhcnRuZXJzTGluay5yZXBsYWNlKFwiI1wiLFwiXCIpfX19Uz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh5LnNlY29uZElhYlBhcnRuZXJzTGluayk7XG5pZihTKXtTLm9uY2xpY2s9ZnVuY3Rpb24oKXt0cnVzdGUuZXUuY2xpY2tMaXN0ZW5lcig1KTtPLnJldHVybkZvY3VzVG89eS5zZWNvbmRJYWJQYXJ0bmVyc0xpbmsucmVwbGFjZShcIiNcIixcIlwiKVxufTtTLm9ua2V5dXA9ZnVuY3Rpb24oVSl7aWYoVS5rZXlDb2RlPT0xMyl7dHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIoNSk7Ty5yZXR1cm5Gb2N1c1RvPXkuc2Vjb25kSWFiUGFydG5lcnNMaW5rLnJlcGxhY2UoXCIjXCIsXCJcIilcbn19fWooKTt2YXIgUD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWYqPVwiaHR0cHM6Ly90cmFja2VyLWRldGFpbC1wYWdlXCJdJyk7UC5mb3JFYWNoKGZ1bmN0aW9uIFQoVSl7aWYoIVUuaHJlZi5pbmNsdWRlcyhcImxvY2FsZT1cIikpe1UuaHJlZj1VLmhyZWYrXCImbG9jYWxlPVwiK2IubG9jYWxlXG59fSk7cGFyc2VJbnQoTi5mYWRlKSYmc2V0VGltZW91dChmdW5jdGlvbigpe2woTi5zbCl9LHBhcnNlSW50KE4uZmFkZSkpO0coXCJvcGVuXCIpfWZ1bmN0aW9uIGooKXt2YXIgTz10cnVzdGUuZXUuYmluZE1hcDtcbmlmKE8uZmVhdC5jY3BhQXBwbGllcyl7dmFyIFI9dHJ1c3RlLmV1LmNjcGEuZ2V0T3B0b3V0KCk7dmFyIFE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeS5jY3BhT3B0ZWRPdXQpO1xudmFyIFQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeS5jY3BhT3B0ZWRJbik7dmFyIFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeS5jY3BhTm9QcmVmZXJlbmNlKTtpZihSJiZPLnByZWZDb29raWUpe3ZhciBQPS9eW3lZXSQvO1xuaWYoUC50ZXN0KFIpKXtRJiZ0cnVzdGUuYm4uc2hvdyhRKTtUJiZ0cnVzdGUuYm4uaGlkZShUKTtTJiZ0cnVzdGUuYm4uaGlkZShTKX1lbHNle1EmJnRydXN0ZS5ibi5oaWRlKFEpO1xuVCYmdHJ1c3RlLmJuLnNob3coVCk7UyYmdHJ1c3RlLmJuLmhpZGUoUyl9fWVsc2V7USYmdHJ1c3RlLmJuLmhpZGUoUSk7VCYmdHJ1c3RlLmJuLmhpZGUoVCk7UyYmdHJ1c3RlLmJuLnNob3coUylcbn19fWZ1bmN0aW9uIHgoKXtpZihOLm9jKXt0cnVzdGUuYm4uYWRkRXZlbnQoZG9jdW1lbnQsXCJjbGlja1wiLHEpfWlmKE4ucHgpe3RydXN0ZS5ibi5hZGRFdmVudChkb2N1bWVudCxcInNjcm9sbFwiLHIpXG59fWZ1bmN0aW9uIEkoKXt0cnVzdGUuYm4uaXNDb25zZW50VHJhY2s9dHJ1ZTt0cnVzdGUuYm4uc2hvdyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1KSk7dihcInZpc2libGVcIik7XG50cnVzdGUuYm4ubXNnbG9nKFwidmlld3NcIixiLmJhbm5lck1zZ1VSTCl9ZnVuY3Rpb24gRCgpe0coXCJkb25lXCIpO3RydXN0ZS5ibi5tc2dsb2coXCJyZXR1cm5zXCIsYi5iYW5uZXJNc2dVUkwpXG59ZnVuY3Rpb24gbihPKXtyZXR1cm4gTyYmdHJ1c3RlLmJuLmlzVmlzaWJsZShPKSYmIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRydXN0ZS5ldS5wb3BkaXYyKX1mdW5jdGlvbiBxKFApe3ZhciBPPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHUpO1xuaWYobihPKSYmIU8uY29udGFpbnMoUC50YXJnZXQpJiZQLnRhcmdldC5pZCE9PXRydXN0ZS5ldS5wb3BjbG9zZSl7bChGKX19ZnVuY3Rpb24gcihQKXt2YXIgTz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1KTtcbmlmKG4oTykmJihkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCk+PU4ucHgpe2woRil9fXRydXN0ZS5ibi5yZW9wZW5CYW5uZXI9ZnVuY3Rpb24oKXtpZihvKXt0cnVzdGUuYm4uaXNDb25zZW50VHJhY2s9dHJ1ZTtcbkcuZG9uZT0wO3goKTtzKCk7dHJ1c3RlLmJuLnNob3coZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodSkpO3YoXCJ2aXNpYmxlXCIpfX07dHJ1c3RlLmJuLnR3b1N0ZXBDb25maXJtZWQ9ZnVuY3Rpb24oKXt0cnVzdGUuZXUuY2NwYS5kcm9wQ2NwYUNvb2tpZShmYWxzZSk7XG5sKEYpO3RydXN0ZS5ibi5tc2dsb2coXCJ0d29zdGVwb3B0aW5cIixiLmJhbm5lck1zZ1VSTCl9O3RydXN0ZS5ibi50d29TdGVwRGVjbGluZWQ9ZnVuY3Rpb24oKXtHKFwiZG9uZVwiKX07XG50cnVzdGUuYm4uYWNjZXB0QWxsPWZ1bmN0aW9uKCl7SygpfTt0cnVzdGUuYm4uZGVjbGluZUFsbD1mdW5jdGlvbigpe0IoKX07dHJ1c3RlLmJuLmRlY2xpbmVDUFJBPWZ1bmN0aW9uKCl7dHJ1c3RlLmV1LmNjcGEuZHJvcENjcGFDb29raWUodHJ1ZSk7XG5sKFwiMFwiKX07dHJ1c3RlLmJuLmhhbmRsZUJhbm5lckRvbmU9ZnVuY3Rpb24oKXt2YXIgTz10cnVzdGUuZXUuYmluZE1hcDtpZighdHJ1c3RlLmV1LmlzR1BDRE5URXZlbnQoKXx8IU8uZmVhdC5kbnRTaG93VUkpe0coXCJkb25lXCIpXG59ZWxzZXtqKCl9fX19OyJ9LCAiaGVhZGVyc1NpemUiOiAzNjQsICJib2R5U2l6ZSI6IDEzMDQxLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAxMzQwNX0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogMy44NjUsICJjb25uZWN0IjogNzMzLjI0MiwgInNzbCI6IDQ4NS4yMzMsICJzZW5kIjogMCwgIndhaXQiOiA3MzcuOTIsICJyZWNlaXZlIjogMjguMjU0fSwgInBhZ2VyZWYiOiAicGFnZUA1YzA5MWM3ZWQxODA4OTZlYWIzYjIwZmJhOWZlOTRhOSIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiMTguMTcyLjUyLjYiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIkNOPSoudHJ1c3RlLmNvbSIsICJ2YWxpZEZyb20iOiAxNzAwMjY1NjAwLCAidmFsaWRUbyI6IDE3MzQzMDcxOTl9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQwNTo1NDowNy44MjZaIiwgInRpbWUiOiAyNTY0LjgzLCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9sb2c/ZG9tYWluPWdvZGFkZHlfcGFya2luZ19pYWIuY29tJmNvdW50cnk9bHUmc3RhdGU9JmJlaGF2aW9yPWltcGxpZWQmc2Vzc2lvbj0zZDg2OWMxOS05NDIzLTQ3ODMtOGY5Zi04YzYzNTFkODc1ODEmdXNlclR5cGU9TkVXJmM9NDY1OCIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiaW1hZ2Uvd2VicCxpbWFnZS9qeGwsdmlkZW8vKjtxPTAuOCxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qO3E9MC44LCovKjtxPTAuNSJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImltYWdlIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImNvbnNlbnQudHJ1c3RhcmMuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImRvbWFpbiIsICJ2YWx1ZSI6ICJnb2RhZGR5X3BhcmtpbmdfaWFiLmNvbSJ9LCB7Im5hbWUiOiAiY291bnRyeSIsICJ2YWx1ZSI6ICJsdSJ9LCB7Im5hbWUiOiAic3RhdGUiLCAidmFsdWUiOiAiIn0sIHsibmFtZSI6ICJiZWhhdmlvciIsICJ2YWx1ZSI6ICJpbXBsaWVkIn0sIHsibmFtZSI6ICJzZXNzaW9uIiwgInZhbHVlIjogIjNkODY5YzE5LTk0MjMtNDc4My04ZjlmLThjNjM1MWQ4NzU4MSJ9LCB7Im5hbWUiOiAidXNlclR5cGUiLCAidmFsdWUiOiAiTkVXIn0sIHsibmFtZSI6ICJjIiwgInZhbHVlIjogIjQ2NTgifV0sICJoZWFkZXJzU2l6ZSI6IDQ2MywgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJDb250ZW50LVR5cGUiLCAidmFsdWUiOiAiaW1hZ2UvZ2lmIn0sIHsibmFtZSI6ICJDb250ZW50LUxlbmd0aCIsICJ2YWx1ZSI6ICI0MyJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MDkgR01UIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogInByaXZhdGUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibm8tc3RvcmUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibm8tY2FjaGUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibXVzdC1yZXZhbGlkYXRlIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogInBvc3QtY2hlY2s9MCJ9LCB7Im5hbWUiOiAiQ2FjaGUtQ29udHJvbCIsICJ2YWx1ZSI6ICJwcmUtY2hlY2s9MCJ9LCB7Im5hbWUiOiAiUHJhZ21hIiwgInZhbHVlIjogIm5vLWNhY2hlIn0sIHsibmFtZSI6ICJFeHBpcmVzIiwgInZhbHVlIjogIk1vbiJ9LCB7Im5hbWUiOiAiRXhwaXJlcyIsICJ2YWx1ZSI6ICIyNiBKdWwgMTk5NyAwNTowMDowMCBHTVQifSwgeyJuYW1lIjogIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiwgInZhbHVlIjogIm9iamVjdC1zcmMgJ25vbmUnOyBmcmFtZS1hbmNlc3RvcnMgaHR0cHM6Ly8qLnRydXN0YXJjLmNvbSBodHRwczovLyoucHJvZC5pbnRlcm5hbC50cnVzdGFyYy5jb20gaHR0cHM6Ly8qLnRydXN0YXJjLmV1IGh0dHBzOi8vKi5wcm9kLmludGVybmFsLnRydXN0YXJjLmV1IGh0dHBzOi8vKi5zdGFnaW5nLmludGVybmFsLnRydXN0YXJjLmNvbSBodHRwczovLyoudHJ1c3RhcmMtc3ZjLm5ldCBodHRwczovLyoudHJ1c3RlLXN2Yy5uZXQgaHR0cHM6Ly8qLnFhLnRydXN0ZS1zdmMubmV0IGh0dHBzOi8vKi5kZXYudHJ1c3RlLXN2Yy5uZXQgIGh0dHA6Ly9sb2NhbGhvc3Q6KiBodHRwczovLyoubnltaXR5LmNvbSBodHRwczovLyoucWFueW07OyB1cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzOyBibG9jay1hbGwtbWl4ZWQtY29udGVudDsgcmVwb3J0LXVyaSBodHRwczovL2NzcC1yZXBvcnRlci50b29scy50cnVzdGFyYy1zdmMubmV0L3JlcG9ydCJ9LCB7Im5hbWUiOiAiQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSIsICJ2YWx1ZSI6ICJjcm9zcy1vcmlnaW4ifSwgeyJuYW1lIjogIlJlZmVycmVyLVBvbGljeSIsICJ2YWx1ZSI6ICJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIn0sIHsibmFtZSI6ICJYLUZyYW1lLU9wdGlvbnMiLCAidmFsdWUiOiAiU0FNRU9SSUdJTiJ9LCB7Im5hbWUiOiAiWC1YU1MtUHJvdGVjdGlvbiIsICJ2YWx1ZSI6ICIxOyBtb2RlPWJsb2NrIn0sIHsibmFtZSI6ICJYLUNvbnRlbnQtVHlwZS1PcHRpb25zIiwgInZhbHVlIjogIm5vc25pZmYifSwgeyJuYW1lIjogIlZpYSIsICJ2YWx1ZSI6ICIxLjEgNTE5ZTJiZmVmNGM2NjViY2YyZDZiYzNhMzc0YzVmODIuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIk9yaWdpbiJ9LCB7Im5hbWUiOiAiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSIsICJ2YWx1ZSI6ICJ1bnNhZmUtbm9uZSJ9LCB7Im5hbWUiOiAiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiLCAidmFsdWUiOiAiY3Jvc3Mtb3JpZ2luIn0sIHsibmFtZSI6ICJleHBlY3QtY3QiLCAidmFsdWUiOiAiZW5mb3JjZSJ9LCB7Im5hbWUiOiAiZXhwZWN0LWN0IiwgInZhbHVlIjogIm1heC1hZ2U9NjAifSwgeyJuYW1lIjogInBlcm1pc3Npb25zLXBvbGljeSIsICJ2YWx1ZSI6ICJnZW9sb2NhdGlvbj0oKSJ9LCB7Im5hbWUiOiAicGVybWlzc2lvbnMtcG9saWN5IiwgInZhbHVlIjogImNhbWVyYT0oKSJ9LCB7Im5hbWUiOiAicGVybWlzc2lvbnMtcG9saWN5IiwgInZhbHVlIjogInNwZWFrZXI9KCkifSwgeyJuYW1lIjogInBlcm1pc3Npb25zLXBvbGljeSIsICJ2YWx1ZSI6ICJtaWNyb3Bob25lPSgpIn0sIHsibmFtZSI6ICJwZXJtaXNzaW9ucy1wb2xpY3kiLCAidmFsdWUiOiAidmlicmF0ZT0oKSJ9LCB7Im5hbWUiOiAic3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwOyBpbmNsdWRlU3ViRG9tYWlucyJ9LCB7Im5hbWUiOiAieC1wZXJtaXR0ZWQtY3Jvc3MtZG9tYWluLXBvbGljaWVzIiwgInZhbHVlIjogIm5vbmUifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiTWlzcyBmcm9tIGNsb3VkZnJvbnQifSwgeyJuYW1lIjogIngtYW16LWNmLXBvcCIsICJ2YWx1ZSI6ICJOUlQyMC1QMiJ9LCB7Im5hbWUiOiAieC1hbXotY2YtaWQiLCAidmFsdWUiOiAiYXpPbWIyVVFLMDFJN3huY0c0Z3hiUUllN0pCVXBhMlNPRzJ4NlJBbEhuMEU4N2p4YTZ2YVp3PT0ifV0sICJjb250ZW50IjogeyJzaXplIjogNDMsICJtaW1lVHlwZSI6ICJpbWFnZS9naWYiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICJSMGxHT0RsaEFRQUJBSUFBQU52Zjd3QUFBQ0g1QkFFQUFBQUFMQUFBQUFBQkFBRUFBQUlDUkFFQU93PT0iLCAiZW5jb2RpbmciOiAiYmFzZTY0In0sICJoZWFkZXJzU2l6ZSI6IDEwNTAsICJib2R5U2l6ZSI6IDYxLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAxMTExfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAzNi42MDQsICJjb25uZWN0IjogNjYxLjY2NSwgInNzbCI6IDQ2NC43OTYsICJzZW5kIjogMCwgIndhaXQiOiAxMzk5LjM0MiwgInJlY2VpdmUiOiAyLjQyM30sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIjE4LjE3Mi41Mi40OSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiQ049Ki50cnVzdGFyYy5jb20iLCAidmFsaWRGcm9tIjogMTcxMDU0NzIwMCwgInZhbGlkVG8iOiAxNzQ0Njc1MTk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MDcuODI3WiIsICJ0aW1lIjogMTM5Mi4wNjksICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2Fzc2V0L3RjZmFwaTIuMi5qcyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJPcmlnaW4iLCAidmFsdWUiOiAiaHR0cDovL2JhcHNtYW5kaXJkZXBhcmlzLmZyIn0sIHsibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJSZWZlcmVyIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mci8ifSwgeyJuYW1lIjogIlVzZXItQWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxN18zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNy4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xIn0sIHsibmFtZSI6ICJBY2NlcHQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogIkFjY2VwdC1MYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLURlc3QiLCAidmFsdWUiOiAic2NyaXB0In0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJjb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImNvbnNlbnQudHJ1c3RhcmMuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbXSwgImhlYWRlcnNTaXplIjogNDM0LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIk9LIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkNvbnRlbnQtVHlwZSIsICJ2YWx1ZSI6ICJ0ZXh0L2phdmFzY3JpcHQifSwgeyJuYW1lIjogIkxhc3QtTW9kaWZpZWQiLCAidmFsdWUiOiAiVGh1In0sIHsibmFtZSI6ICJMYXN0LU1vZGlmaWVkIiwgInZhbHVlIjogIjE2IE1heSAyMDI0IDAyOjU0OjIyIEdNVCJ9LCB7Im5hbWUiOiAiUHJhZ21hIiwgInZhbHVlIjogInB1YmxpYyJ9LCB7Im5hbWUiOiAiQ29udGVudC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIlR1ZSJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICIxOCBKdW4gMjAyNCAwNTo0NjoyMSBHTVQifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJWaWEiLCAidmFsdWUiOiAiMS4xIDUxOWUyYmZlZjRjNjY1YmNmMmQ2YmMzYTM3NGM1ZjgyLmNsb3VkZnJvbnQubmV0IChDbG91ZEZyb250KSJ9LCB7Im5hbWUiOiAiQWdlIiwgInZhbHVlIjogIjQ2OCJ9LCB7Im5hbWUiOiAiQ2FjaGUtQ29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTI1OTIwMDAifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJ4LWNhY2hlIiwgInZhbHVlIjogIkhpdCBmcm9tIGNsb3VkZnJvbnQifSwgeyJuYW1lIjogIngtYW16LWNmLXBvcCIsICJ2YWx1ZSI6ICJOUlQyMC1QMiJ9LCB7Im5hbWUiOiAieC1hbXotY2YtaWQiLCAidmFsdWUiOiAiTU83LWQxMjhBdVlZNlZiYkVIRGt3cnktVTU5eUxSYklxOERfcmZKUFhJVHRNbDNRTzc4RjNRPT0ifSwgeyJuYW1lIjogInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCAidmFsdWUiOiAibWF4LWFnZT0zMTUzNjAwMDsgaW5jbHVkZVN1YkRvbWFpbnMifV0sICJjb250ZW50IjogeyJzaXplIjogMzExNzAzLCAibWltZVR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwgImNvbXByZXNzaW9uIjogMjI5NDk5LCAidGV4dCI6ICIvKiEgRm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSB0Y2ZhcGkyLjIuanMuTElDRU5TRS50eHQgKi9cbigoKT0+e1widXNlIHN0cmljdFwiO3ZhciB0PXs4NjE1MToodCxlLHIpPT57dmFyIG49cig2NjY5MCksbz1yKDQyMjQ4KSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYobih0KSlyZXR1cm4gdDt0aHJvdyBpKG8odCkrXCIgaXMgbm90IGEgZnVuY3Rpb25cIil9fSw1MTU6KHQsZSxyKT0+e3ZhciBuPXIoMjg0MjApLG89cig0MjI0OCksaT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG4odCkpcmV0dXJuIHQ7dGhyb3cgaShvKHQpK1wiIGlzIG5vdCBhIGNvbnN0cnVjdG9yXCIpfX0sMjAxNjE6KHQsZSxyKT0+e3ZhciBuPXIoMzgyMDcpLmhhczt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCksdH19LDExMzk6KHQsZSxyKT0+e2Z1bmN0aW9uIG4odCl7cmV0dXJuIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sbih0KX12YXIgbz1yKDY2NjkwKSxpPVN0cmluZyxhPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoXCJvYmplY3RcIj09bih0KXx8byh0KSlyZXR1cm4gdDt0aHJvdyBhKFwiQ2FuJ3Qgc2V0IFwiK2kodCkrXCIgYXMgYSBwcm90b3R5cGVcIil9fSwxNTU0MzoodCxlLHIpPT57dmFyIG49cigyNTI5NykuaGFzO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbih0KSx0fX0sOTU0Njg6KHQsZSxyKT0+e3ZhciBuPXIoODAzNTQpLmhhczt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCksdH19LDUyNjU0Oih0LGUscik9Pnt2YXIgbj1yKDczNzUyKS5oYXM7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQpLHR9fSwzOTY1MjoodCxlLHIpPT57dmFyIG49cig5MDU3Niksbz1yKDI4OTkpLGk9cigzMDE0OCkuZixhPW4oXCJ1bnNjb3BhYmxlc1wiKSx1PUFycmF5LnByb3RvdHlwZTt2b2lkIDA9PT11W2FdJiZpKHUsYSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOm8obnVsbCl9KSx0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dVthXVt0XT0hMH19LDUxNzkyOih0LGUscik9Pnt2YXIgbj1yKDE3MjcwKS5jaGFyQXQ7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZSsocj9uKHQsZSkubGVuZ3RoOjEpfX0sNTE3MTY6KHQsZSxyKT0+e3ZhciBuPXIoNTk3OTIpLG89VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKG4oZSx0KSlyZXR1cm4gdDt0aHJvdyBvKFwiSW5jb3JyZWN0IGludm9jYXRpb25cIil9fSw0MTQzMjoodCxlLHIpPT57dmFyIG49cig2NjQ1KSxvPVN0cmluZyxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYobih0KSlyZXR1cm4gdDt0aHJvdyBpKG8odCkrXCIgaXMgbm90IGFuIG9iamVjdFwiKX19LDQ0MDI2OnQ9Pnt0LmV4cG9ydHM9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgRGF0YVZpZXd9LDQwMDk1Oih0LGUscik9Pnt2YXIgbj1yKDM1NzY0KTt0LmV4cG9ydHM9bigoZnVuY3Rpb24oKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBBcnJheUJ1ZmZlcil7dmFyIHQ9bmV3IEFycmF5QnVmZmVyKDgpO09iamVjdC5pc0V4dGVuc2libGUodCkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiYVwiLHt2YWx1ZTo4fSl9fSkpfSw3NTg0MToodCxlLHIpPT57dmFyIG4sbyxpLGE9cig0NDAyNiksdT1yKDE1MDMpLGM9cigxNzY5MCkscz1yKDY2NjkwKSxmPXIoNjY0NSksbD1yKDM2MDM2KSxwPXIoNjA3NzIpLHY9cig0MjI0OCkseT1yKDUxNzQ2KSxoPXIoMjk1NjcpLGQ9cigzNDMzMSksYj1yKDU5NzkyKSxnPXIoOTY3OTYpLG09cig5NDI4OCksdz1yKDkwNTc2KSxTPXIoMjc3MzkpLE89cig5ODM2KSxFPU8uZW5mb3JjZSx4PU8uZ2V0LGo9Yy5JbnQ4QXJyYXksUD1qJiZqLnByb3RvdHlwZSxUPWMuVWludDhDbGFtcGVkQXJyYXksQT1UJiZULnByb3RvdHlwZSxJPWomJmcoaiksXz1QJiZnKFApLEM9T2JqZWN0LnByb3RvdHlwZSxrPWMuVHlwZUVycm9yLFI9dyhcInRvU3RyaW5nVGFnXCIpLEw9UyhcIlRZUEVEX0FSUkFZX1RBR1wiKSxNPVwiVHlwZWRBcnJheUNvbnN0cnVjdG9yXCIsTj1hJiYhIW0mJlwiT3BlcmFcIiE9PXAoYy5vcGVyYSksVj0hMSxVPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sRD17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LEY9ZnVuY3Rpb24odCl7aWYoIWYodCkpcmV0dXJuITE7dmFyIGU9cCh0KTtyZXR1cm4gbChVLGUpfHxsKEQsZSl9O2ZvcihuIGluIFUpKGk9KG89Y1tuXSkmJm8ucHJvdG90eXBlKT9FKGkpW01dPW86Tj0hMTtmb3IobiBpbiBEKShpPShvPWNbbl0pJiZvLnByb3RvdHlwZSkmJihFKGkpW01dPW8pO2lmKCghTnx8IXMoSSl8fEk9PT1GdW5jdGlvbi5wcm90b3R5cGUpJiYoST1mdW5jdGlvbigpe3Rocm93IGsoXCJJbmNvcnJlY3QgaW52b2NhdGlvblwiKX0sTikpZm9yKG4gaW4gVSljW25dJiZtKGNbbl0sSSk7aWYoKCFOfHwhX3x8Xz09PUMpJiYoXz1JLnByb3RvdHlwZSxOKSlmb3IobiBpbiBVKWNbbl0mJm0oY1tuXS5wcm90b3R5cGUsXyk7aWYoTiYmZyhBKSE9PV8mJm0oQSxfKSx1JiYhbChfLFIpKWZvcihuIGluIFY9ITAsZChfLFIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZih0aGlzKT90aGlzW0xdOnZvaWQgMH19KSxVKWNbbl0mJnkoY1tuXSxMLG4pO3QuZXhwb3J0cz17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpOLFRZUEVEX0FSUkFZX1RBRzpWJiZMLGFUeXBlZEFycmF5OmZ1bmN0aW9uKHQpe2lmKEYodCkpcmV0dXJuIHQ7dGhyb3cgayhcIlRhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheVwiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbih0KXtpZihzKHQpJiYoIW18fGIoSSx0KSkpcmV0dXJuIHQ7dGhyb3cgayh2KHQpK1wiIGlzIG5vdCBhIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yXCIpfSxleHBvcnRUeXBlZEFycmF5TWV0aG9kOmZ1bmN0aW9uKHQsZSxyLG4pe2lmKHUpe2lmKHIpZm9yKHZhciBvIGluIFUpe3ZhciBpPWNbb107aWYoaSYmbChpLnByb3RvdHlwZSx0KSl0cnl7ZGVsZXRlIGkucHJvdG90eXBlW3RdfWNhdGNoKHIpe3RyeXtpLnByb3RvdHlwZVt0XT1lfWNhdGNoKHQpe319fV9bdF0mJiFyfHxoKF8sdCxyP2U6TiYmUFt0XXx8ZSxuKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24odCxlLHIpe3ZhciBuLG87aWYodSl7aWYobSl7aWYocilmb3IobiBpbiBVKWlmKChvPWNbbl0pJiZsKG8sdCkpdHJ5e2RlbGV0ZSBvW3RdfWNhdGNoKHQpe31pZihJW3RdJiYhcilyZXR1cm47dHJ5e3JldHVybiBoKEksdCxyP2U6TiYmSVt0XXx8ZSl9Y2F0Y2godCl7fX1mb3IobiBpbiBVKSEobz1jW25dKXx8b1t0XSYmIXJ8fGgobyx0LGUpfX0sZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yOmZ1bmN0aW9uIHQoZSl7dmFyIHI9ZyhlKTtpZihmKHIpKXt2YXIgbj14KHIpO3JldHVybiBuJiZsKG4sTSk/bltNXTp0KHIpfX0saXNWaWV3OmZ1bmN0aW9uKHQpe2lmKCFmKHQpKXJldHVybiExO3ZhciBlPXAodCk7cmV0dXJuXCJEYXRhVmlld1wiPT09ZXx8bChVLGUpfHxsKEQsZSl9LGlzVHlwZWRBcnJheTpGLFR5cGVkQXJyYXk6SSxUeXBlZEFycmF5UHJvdG90eXBlOl99fSw2MDI0NzoodCxlLHIpPT57dmFyIG49cigxNzY5MCksbz1yKDQ0NzYzKSxpPXIoMTUwMyksYT1yKDQ0MDI2KSx1PXIoOTkxMjkpLGM9cig1MTc0Nikscz1yKDM0MzMxKSxmPXIoMTYxNTQpLGw9cigzNTc2NCkscD1yKDUxNzE2KSx2PXIoOTcwNDIpLHk9cig0ODA3MyksaD1yKDE4NDgxKSxkPXIoMzkzODkpLGI9cig5Njc5NiksZz1yKDk0Mjg4KSxtPXIoNzA0MykuZix3PXIoNDY0ODApLFM9cig1MTgwMiksTz1yKDM0NzUyKSxFPXIoOTgzNikseD11LlBST1BFUixqPXUuQ09ORklHVVJBQkxFLFA9XCJBcnJheUJ1ZmZlclwiLFQ9XCJEYXRhVmlld1wiLEE9XCJwcm90b3R5cGVcIixJPVwiV3JvbmcgaW5kZXhcIixfPUUuZ2V0dGVyRm9yKFApLEM9RS5nZXR0ZXJGb3IoVCksaz1FLnNldCxSPW5bUF0sTD1SLE09TCYmTFtBXSxOPW5bVF0sVj1OJiZOW0FdLFU9T2JqZWN0LnByb3RvdHlwZSxEPW4uQXJyYXksRj1uLlJhbmdlRXJyb3IsQj1vKHcpLEc9byhbXS5yZXZlcnNlKSx6PWQucGFjayxIPWQudW5wYWNrLFc9ZnVuY3Rpb24odCl7cmV0dXJuWzI1NSZ0XX0scT1mdW5jdGlvbih0KXtyZXR1cm5bMjU1JnQsdD4+OCYyNTVdfSxLPWZ1bmN0aW9uKHQpe3JldHVyblsyNTUmdCx0Pj44JjI1NSx0Pj4xNiYyNTUsdD4+MjQmMjU1XX0sJD1mdW5jdGlvbih0KXtyZXR1cm4gdFszXTw8MjR8dFsyXTw8MTZ8dFsxXTw8OHx0WzBdfSxZPWZ1bmN0aW9uKHQpe3JldHVybiB6KHQsMjMsNCl9LFE9ZnVuY3Rpb24odCl7cmV0dXJuIHoodCw1Miw4KX0sSj1mdW5jdGlvbih0LGUscil7cyh0W0FdLGUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzKVtlXX19KX0sWD1mdW5jdGlvbih0LGUscixuKXt2YXIgbz1DKHQpLGk9aChyKSxhPSEhbjtpZihpK2U+by5ieXRlTGVuZ3RoKXRocm93IEYoSSk7dmFyIHU9by5ieXRlcyxjPWkrby5ieXRlT2Zmc2V0LHM9Uyh1LGMsYytlKTtyZXR1cm4gYT9zOkcocyl9LFo9ZnVuY3Rpb24odCxlLHIsbixvLGkpe3ZhciBhPUModCksdT1oKHIpLGM9bigrbykscz0hIWk7aWYodStlPmEuYnl0ZUxlbmd0aCl0aHJvdyBGKEkpO2Zvcih2YXIgZj1hLmJ5dGVzLGw9dSthLmJ5dGVPZmZzZXQscD0wO3A8ZTtwKyspZltsK3BdPWNbcz9wOmUtcC0xXX07aWYoYSl7dmFyIHR0PXgmJlIubmFtZSE9PVA7aWYobCgoZnVuY3Rpb24oKXtSKDEpfSkpJiZsKChmdW5jdGlvbigpe25ldyBSKC0xKX0pKSYmIWwoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBSLG5ldyBSKDEuNSksbmV3IFIoTmFOKSwxIT09Ui5sZW5ndGh8fHR0JiYhan0pKSl0dCYmaiYmYyhSLFwibmFtZVwiLFApO2Vsc2V7KEw9ZnVuY3Rpb24odCl7cmV0dXJuIHAodGhpcyxNKSxuZXcgUihoKHQpKX0pW0FdPU07Zm9yKHZhciBldCxydD1tKFIpLG50PTA7cnQubGVuZ3RoPm50OykoZXQ9cnRbbnQrK10paW4gTHx8YyhMLGV0LFJbZXRdKTtNLmNvbnN0cnVjdG9yPUx9ZyYmYihWKSE9PVUmJmcoVixVKTt2YXIgb3Q9bmV3IE4obmV3IEwoMikpLGl0PW8oVi5zZXRJbnQ4KTtvdC5zZXRJbnQ4KDAsMjE0NzQ4MzY0OCksb3Quc2V0SW50OCgxLDIxNDc0ODM2NDkpLCFvdC5nZXRJbnQ4KDApJiZvdC5nZXRJbnQ4KDEpfHxmKFYse3NldEludDg6ZnVuY3Rpb24odCxlKXtpdCh0aGlzLHQsZTw8MjQ+PjI0KX0sc2V0VWludDg6ZnVuY3Rpb24odCxlKXtpdCh0aGlzLHQsZTw8MjQ+PjI0KX19LHt1bnNhZmU6ITB9KX1lbHNlIE09KEw9ZnVuY3Rpb24odCl7cCh0aGlzLE0pO3ZhciBlPWgodCk7ayh0aGlzLHt0eXBlOlAsYnl0ZXM6QihEKGUpLDApLGJ5dGVMZW5ndGg6ZX0pLGl8fCh0aGlzLmJ5dGVMZW5ndGg9ZSx0aGlzLmRldGFjaGVkPSExKX0pW0FdLFY9KE49ZnVuY3Rpb24odCxlLHIpe3AodGhpcyxWKSxwKHQsTSk7dmFyIG49Xyh0KSxvPW4uYnl0ZUxlbmd0aCxhPXYoZSk7aWYoYTwwfHxhPm8pdGhyb3cgRihcIldyb25nIG9mZnNldFwiKTtpZihhKyhyPXZvaWQgMD09PXI/by1hOnkocikpPm8pdGhyb3cgRihcIldyb25nIGxlbmd0aFwiKTtrKHRoaXMse3R5cGU6VCxidWZmZXI6dCxieXRlTGVuZ3RoOnIsYnl0ZU9mZnNldDphLGJ5dGVzOm4uYnl0ZXN9KSxpfHwodGhpcy5idWZmZXI9dCx0aGlzLmJ5dGVMZW5ndGg9cix0aGlzLmJ5dGVPZmZzZXQ9YSl9KVtBXSxpJiYoSihMLFwiYnl0ZUxlbmd0aFwiLF8pLEooTixcImJ1ZmZlclwiLEMpLEooTixcImJ5dGVMZW5ndGhcIixDKSxKKE4sXCJieXRlT2Zmc2V0XCIsQykpLGYoVix7Z2V0SW50ODpmdW5jdGlvbih0KXtyZXR1cm4gWCh0aGlzLDEsdClbMF08PDI0Pj4yNH0sZ2V0VWludDg6ZnVuY3Rpb24odCl7cmV0dXJuIFgodGhpcywxLHQpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbih0KXt2YXIgZT1YKHRoaXMsMix0LGFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdKTtyZXR1cm4oZVsxXTw8OHxlWzBdKTw8MTY+PjE2fSxnZXRVaW50MTY6ZnVuY3Rpb24odCl7dmFyIGU9WCh0aGlzLDIsdCxhcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSk7cmV0dXJuIGVbMV08PDh8ZVswXX0sZ2V0SW50MzI6ZnVuY3Rpb24odCl7cmV0dXJuICQoWCh0aGlzLDQsdCxhcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSkpfSxnZXRVaW50MzI6ZnVuY3Rpb24odCl7cmV0dXJuICQoWCh0aGlzLDQsdCxhcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbih0KXtyZXR1cm4gSChYKHRoaXMsNCx0LGFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdKSwyMyl9LGdldEZsb2F0NjQ6ZnVuY3Rpb24odCl7cmV0dXJuIEgoWCh0aGlzLDgsdCxhcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSksNTIpfSxzZXRJbnQ4OmZ1bmN0aW9uKHQsZSl7Wih0aGlzLDEsdCxXLGUpfSxzZXRVaW50ODpmdW5jdGlvbih0LGUpe1oodGhpcywxLHQsVyxlKX0sc2V0SW50MTY6ZnVuY3Rpb24odCxlKXtaKHRoaXMsMix0LHEsZSxhcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSl9LHNldFVpbnQxNjpmdW5jdGlvbih0LGUpe1oodGhpcywyLHQscSxlLGFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdKX0sc2V0SW50MzI6ZnVuY3Rpb24odCxlKXtaKHRoaXMsNCx0LEssZSxhcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSl9LHNldFVpbnQzMjpmdW5jdGlvbih0LGUpe1oodGhpcyw0LHQsSyxlLGFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdKX0sc2V0RmxvYXQzMjpmdW5jdGlvbih0LGUpe1oodGhpcyw0LHQsWSxlLGFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbih0LGUpe1oodGhpcyw4LHQsUSxlLGFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdKX19KTtPKEwsUCksTyhOLFQpLHQuZXhwb3J0cz17QXJyYXlCdWZmZXI6TCxEYXRhVmlldzpOfX0sOTU0MTA6KHQsZSxyKT0+e3ZhciBuPXIoMjM0Niksbz1yKDg4NDI1KSxpPXIoNjI1MDMpLGE9cig2Mzg4NyksdT1NYXRoLm1pbjt0LmV4cG9ydHM9W10uY29weVdpdGhpbnx8ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHRoaXMpLGM9aShyKSxzPW8odCxjKSxmPW8oZSxjKSxsPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHA9dSgodm9pZCAwPT09bD9jOm8obCxjKSktZixjLXMpLHY9MTtmb3IoZjxzJiZzPGYrcCYmKHY9LTEsZis9cC0xLHMrPXAtMSk7cC0tID4wOylmIGluIHI/cltzXT1yW2ZdOmEocixzKSxzKz12LGYrPXY7cmV0dXJuIHJ9fSw0NjQ4MDoodCxlLHIpPT57dmFyIG49cigyMzQ2KSxvPXIoODg0MjUpLGk9cig2MjUwMyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uKHRoaXMpLHI9aShlKSxhPWFyZ3VtZW50cy5sZW5ndGgsdT1vKGE+MT9hcmd1bWVudHNbMV06dm9pZCAwLHIpLGM9YT4yP2FyZ3VtZW50c1syXTp2b2lkIDAscz12b2lkIDA9PT1jP3I6byhjLHIpO3M+dTspZVt1KytdPXQ7cmV0dXJuIGV9fSw3NTE0NjoodCxlLHIpPT57dmFyIG49cig1MTYzMCkuZm9yRWFjaCxvPXIoNDkyNykoXCJmb3JFYWNoXCIpO3QuZXhwb3J0cz1vP1tdLmZvckVhY2g6ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19LDY0NzgxOih0LGUscik9Pnt2YXIgbj1yKDYyNTAzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxvPW4oZSksaT1uZXcgdChvKTtvPnI7KWlbcl09ZVtyKytdO3JldHVybiBpfX0sOTA1ODE6KHQsZSxyKT0+e3ZhciBuPXIoNTYxMTEpLG89cigyMTYzNCksaT1yKDIzNDYpLGE9cig5NzM3MCksdT1yKDQ0NTU2KSxjPXIoMjg0MjApLHM9cig2MjUwMyksZj1yKDU4NjU1KSxsPXIoNDk4MjgpLHA9cig0MzQyNCksdj1BcnJheTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9aSh0KSxyPWModGhpcykseT1hcmd1bWVudHMubGVuZ3RoLGg9eT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsZD12b2lkIDAhPT1oO2QmJihoPW4oaCx5PjI/YXJndW1lbnRzWzJdOnZvaWQgMCkpO3ZhciBiLGcsbSx3LFMsTyxFPXAoZSkseD0wO2lmKCFFfHx0aGlzPT09diYmdShFKSlmb3IoYj1zKGUpLGc9cj9uZXcgdGhpcyhiKTp2KGIpO2I+eDt4KyspTz1kP2goZVt4XSx4KTplW3hdLGYoZyx4LE8pO2Vsc2UgZm9yKFM9KHc9bChlLEUpKS5uZXh0LGc9cj9uZXcgdGhpczpbXTshKG09byhTLHcpKS5kb25lO3grKylPPWQ/YSh3LGgsW20udmFsdWUseF0sITApOm0udmFsdWUsZihnLHgsTyk7cmV0dXJuIGcubGVuZ3RoPXgsZ319LDk4MzgwOih0LGUscik9Pnt2YXIgbj1yKDYyOTk4KSxvPXIoODg0MjUpLGk9cig2MjUwMyksYT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLGEpe3ZhciB1LGM9bihlKSxzPWkoYyksZj1vKGEscyk7aWYodCYmciE9cil7Zm9yKDtzPmY7KWlmKCh1PWNbZisrXSkhPXUpcmV0dXJuITB9ZWxzZSBmb3IoO3M+ZjtmKyspaWYoKHR8fGYgaW4gYykmJmNbZl09PT1yKXJldHVybiB0fHxmfHwwO3JldHVybiF0JiYtMX19O3QuZXhwb3J0cz17aW5jbHVkZXM6YSghMCksaW5kZXhPZjphKCExKX19LDUxNjMwOih0LGUscik9Pnt2YXIgbj1yKDU2MTExKSxvPXIoNDQ3NjMpLGk9cigyODU4NiksYT1yKDIzNDYpLHU9cig2MjUwMyksYz1yKDE5NzQ0KSxzPW8oW10ucHVzaCksZj1mdW5jdGlvbih0KXt2YXIgZT0xPT09dCxyPTI9PT10LG89Mz09PXQsZj00PT09dCxsPTY9PT10LHA9Nz09PXQsdj01PT09dHx8bDtyZXR1cm4gZnVuY3Rpb24oeSxoLGQsYil7Zm9yKHZhciBnLG0sdz1hKHkpLFM9aSh3KSxPPW4oaCxkKSxFPXUoUykseD0wLGo9Ynx8YyxQPWU/aih5LEUpOnJ8fHA/aih5LDApOnZvaWQgMDtFPng7eCsrKWlmKCh2fHx4IGluIFMpJiYobT1PKGc9U1t4XSx4LHcpLHQpKWlmKGUpUFt4XT1tO2Vsc2UgaWYobSlzd2l0Y2godCl7Y2FzZSAzOnJldHVybiEwO2Nhc2UgNTpyZXR1cm4gZztjYXNlIDY6cmV0dXJuIHg7Y2FzZSAyOnMoUCxnKX1lbHNlIHN3aXRjaCh0KXtjYXNlIDQ6cmV0dXJuITE7Y2FzZSA3OnMoUCxnKX1yZXR1cm4gbD8tMTpvfHxmP2Y6UH19O3QuZXhwb3J0cz17Zm9yRWFjaDpmKDApLG1hcDpmKDEpLGZpbHRlcjpmKDIpLHNvbWU6ZigzKSxldmVyeTpmKDQpLGZpbmQ6Zig1KSxmaW5kSW5kZXg6Zig2KSxmaWx0ZXJSZWplY3Q6Zig3KX19LDI4OTY6KHQsZSxyKT0+e3ZhciBuPXIoNDM4NzIpLG89cig2Mjk5OCksaT1yKDk3MDQyKSxhPXIoNjI1MDMpLHU9cig0OTI3KSxjPU1hdGgubWluLHM9W10ubGFzdEluZGV4T2YsZj0hIXMmJjEvWzFdLmxhc3RJbmRleE9mKDEsLTApPDAsbD11KFwibGFzdEluZGV4T2ZcIikscD1mfHwhbDt0LmV4cG9ydHM9cD9mdW5jdGlvbih0KXtpZihmKXJldHVybiBuKHMsdGhpcyxhcmd1bWVudHMpfHwwO3ZhciBlPW8odGhpcykscj1hKGUpLHU9ci0xO2Zvcihhcmd1bWVudHMubGVuZ3RoPjEmJih1PWModSxpKGFyZ3VtZW50c1sxXSkpKSx1PDAmJih1PXIrdSk7dT49MDt1LS0paWYodSBpbiBlJiZlW3VdPT09dClyZXR1cm4gdXx8MDtyZXR1cm4tMX06c30sMzI5MDQ6KHQsZSxyKT0+e3ZhciBuPXIoMzU3NjQpLG89cig5MDU3NiksaT1yKDc3NjU5KSxhPW8oXCJzcGVjaWVzXCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaT49NTF8fCFuKChmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybihlLmNvbnN0cnVjdG9yPXt9KVthXT1mdW5jdGlvbigpe3JldHVybntmb286MX19LDEhPT1lW3RdKEJvb2xlYW4pLmZvb30pKX19LDQ5Mjc6KHQsZSxyKT0+e3ZhciBuPXIoMzU3NjQpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPVtdW3RdO3JldHVybiEhciYmbigoZnVuY3Rpb24oKXtyLmNhbGwobnVsbCxlfHxmdW5jdGlvbigpe3JldHVybiAxfSwxKX0pKX19LDQ4NzYzOih0LGUscik9Pnt2YXIgbj1yKDg2MTUxKSxvPXIoMjM0NiksaT1yKDI4NTg2KSxhPXIoNjI1MDMpLHU9VHlwZUVycm9yLGM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscixjLHMpe24ocik7dmFyIGY9byhlKSxsPWkoZikscD1hKGYpLHY9dD9wLTE6MCx5PXQ/LTE6MTtpZihjPDIpZm9yKDs7KXtpZih2IGluIGwpe3M9bFt2XSx2Kz15O2JyZWFrfWlmKHYrPXksdD92PDA6cDw9dil0aHJvdyB1KFwiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZVwiKX1mb3IoO3Q/dj49MDpwPnY7dis9eSl2IGluIGwmJihzPXIocyxsW3ZdLHYsZikpO3JldHVybiBzfX07dC5leHBvcnRzPXtsZWZ0OmMoITEpLHJpZ2h0OmMoITApfX0sMzY0OTg6KHQsZSxyKT0+e3ZhciBuPXIoMTUwMyksbz1yKDk5OTI5KSxpPVR5cGVFcnJvcixhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsdT1uJiYhZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sXCJsZW5ndGhcIix7d3JpdGFibGU6ITF9KS5sZW5ndGg9MX1jYXRjaCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFR5cGVFcnJvcn19KCk7dC5leHBvcnRzPXU/ZnVuY3Rpb24odCxlKXtpZihvKHQpJiYhYSh0LFwibGVuZ3RoXCIpLndyaXRhYmxlKXRocm93IGkoXCJDYW5ub3Qgc2V0IHJlYWQgb25seSAubGVuZ3RoXCIpO3JldHVybiB0Lmxlbmd0aD1lfTpmdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aD1lfX0sNTE4MDI6KHQsZSxyKT0+e3ZhciBuPXIoODg0MjUpLG89cig2MjUwMyksaT1yKDU4NjU1KSxhPUFycmF5LHU9TWF0aC5tYXg7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGM9byh0KSxzPW4oZSxjKSxmPW4odm9pZCAwPT09cj9jOnIsYyksbD1hKHUoZi1zLDApKSxwPTA7czxmO3MrKyxwKyspaShsLHAsdFtzXSk7cmV0dXJuIGwubGVuZ3RoPXAsbH19LDgzNjQzOih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKTt0LmV4cG9ydHM9bihbXS5zbGljZSl9LDMzOTc3Oih0LGUscik9Pnt2YXIgbj1yKDUxODAyKSxvPU1hdGguZmxvb3I7dC5leHBvcnRzPWZ1bmN0aW9uIHQoZSxyKXt2YXIgaT1lLmxlbmd0aCxhPW8oaS8yKTtyZXR1cm4gaTw4P2Z1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG4sbz10Lmxlbmd0aCxpPTE7aTxvOyl7Zm9yKG49aSxyPXRbaV07biYmZSh0W24tMV0scik+MDspdFtuXT10Wy0tbl07biE9PWkrKyYmKHRbbl09cil9cmV0dXJuIHR9KGUscik6ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBvPWUubGVuZ3RoLGk9ci5sZW5ndGgsYT0wLHU9MDthPG98fHU8aTspdFthK3VdPWE8byYmdTxpP24oZVthXSxyW3VdKTw9MD9lW2ErK106clt1KytdOmE8bz9lW2ErK106clt1KytdO3JldHVybiB0fShlLHQobihlLDAsYSksciksdChuKGUsYSkscikscil9fSwzNjYxMDoodCxlLHIpPT57dmFyIG49cig5OTkyOSksbz1yKDI4NDIwKSxpPXIoNjY0NSksYT1yKDkwNTc2KShcInNwZWNpZXNcIiksdT1BcnJheTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG4odCkmJihlPXQuY29uc3RydWN0b3IsKG8oZSkmJihlPT09dXx8bihlLnByb3RvdHlwZSkpfHxpKGUpJiZudWxsPT09KGU9ZVthXSkpJiYoZT12b2lkIDApKSx2b2lkIDA9PT1lP3U6ZX19LDE5NzQ0Oih0LGUscik9Pnt2YXIgbj1yKDM2NjEwKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3KG4odCkpKDA9PT1lPzA6ZSl9fSwyMTY5ODoodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz1yKDg2MTUxKSxpPXIoMjQxMDQpLGE9cig2MjUwMyksdT1yKDIzNDYpLGM9cigzODIwNykscz1yKDI0NTIpLGY9Yy5NYXAsbD1jLmhhcyxwPWMuc2V0LHY9bihbXS5wdXNoKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixuLGM9dSh0aGlzKSx5PWEoYyksaD1bXSxkPW5ldyBmLGI9aSh0KT9mdW5jdGlvbih0KXtyZXR1cm4gdH06byh0KTtmb3IoZT0wO2U8eTtlKyspbj1iKHI9Y1tlXSksbChkLG4pfHxwKGQsbixyKTtyZXR1cm4gcyhkLChmdW5jdGlvbih0KXt2KGgsdCl9KSksaH19LDk3MzcwOih0LGUscik9Pnt2YXIgbj1yKDQxNDMyKSxvPXIoNTEyNjYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt0cnl7cmV0dXJuIGk/ZShuKHIpWzBdLHJbMV0pOmUocil9Y2F0Y2goZSl7byh0LFwidGhyb3dcIixlKX19fSwxODc1MzoodCxlLHIpPT57dmFyIG49cig5MDU3NikoXCJpdGVyYXRvclwiKSxvPSExO3RyeXt2YXIgaT0wLGE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWkrK319LHJldHVybjpmdW5jdGlvbigpe289ITB9fTthW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oYSwoZnVuY3Rpb24oKXt0aHJvdyAyfSkpfWNhdGNoKHQpe310LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighZSYmIW8pcmV0dXJuITE7dmFyIHI9ITE7dHJ5e3ZhciBpPXt9O2lbbl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOnI9ITB9fX19LHQoaSl9Y2F0Y2godCl7fXJldHVybiByfX0sNTc2NzE6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpLG89bih7fS50b1N0cmluZyksaT1uKFwiXCIuc2xpY2UpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaShvKHQpLDgsLTEpfX0sNjA3NzI6KHQsZSxyKT0+e3ZhciBuPXIoMzQ4MjMpLG89cig2NjY5MCksaT1yKDU3NjcxKSxhPXIoOTA1NzYpKFwidG9TdHJpbmdUYWdcIiksdT1PYmplY3QsYz1cIkFyZ3VtZW50c1wiPT09aShmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO3QuZXhwb3J0cz1uP2k6ZnVuY3Rpb24odCl7dmFyIGUscixuO3JldHVybiB2b2lkIDA9PT10P1wiVW5kZWZpbmVkXCI6bnVsbD09PXQ/XCJOdWxsXCI6XCJzdHJpbmdcIj09dHlwZW9mKHI9ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbZV19Y2F0Y2godCl7fX0oZT11KHQpLGEpKT9yOmM/aShlKTpcIk9iamVjdFwiPT09KG49aShlKSkmJm8oZS5jYWxsZWUpP1wiQXJndW1lbnRzXCI6bn19LDcxMjkwOih0LGUscik9Pnt2YXIgbj1yKDU2MTExKSxvPXIoMjE2MzQpLGk9cig4NjE1MSksYT1yKDUxNSksdT1yKDI0MTA0KSxjPXIoODc2MzEpLHM9W10ucHVzaDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixmLGwscD1hcmd1bWVudHMubGVuZ3RoLHY9cD4xP2FyZ3VtZW50c1sxXTp2b2lkIDA7cmV0dXJuIGEodGhpcyksKGU9dm9pZCAwIT09dikmJmkodiksdSh0KT9uZXcgdGhpczoocj1bXSxlPyhmPTAsbD1uKHYscD4yP2FyZ3VtZW50c1syXTp2b2lkIDApLGModCwoZnVuY3Rpb24odCl7byhzLHIsbCh0LGYrKykpfSkpKTpjKHQscyx7dGhhdDpyfSksbmV3IHRoaXMocikpfX0sMjY4OTE6KHQsZSxyKT0+e3ZhciBuPXIoODM2NDMpO3QuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBuZXcgdGhpcyhuKGFyZ3VtZW50cykpfX0sNTM5ODU6KHQsZSxyKT0+e3ZhciBuPXIoMjg5OSksbz1yKDM0MzMxKSxpPXIoMTYxNTQpLGE9cig1NjExMSksdT1yKDUxNzE2KSxjPXIoMjQxMDQpLHM9cig4NzYzMSksZj1yKDI4NDMxKSxsPXIoNDk1NTgpLHA9cig0NjY3OCksdj1yKDE1MDMpLHk9cig2NDcyNCkuZmFzdEtleSxoPXIoOTgzNiksZD1oLnNldCxiPWguZ2V0dGVyRm9yO3QuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24odCxlLHIsZil7dmFyIGw9dCgoZnVuY3Rpb24odCxvKXt1KHQscCksZCh0LHt0eXBlOmUsaW5kZXg6bihudWxsKSxmaXJzdDp2b2lkIDAsbGFzdDp2b2lkIDAsc2l6ZTowfSksdnx8KHQuc2l6ZT0wKSxjKG8pfHxzKG8sdFtmXSx7dGhhdDp0LEFTX0VOVFJJRVM6cn0pfSkpLHA9bC5wcm90b3R5cGUsaD1iKGUpLGc9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saT1oKHQpLGE9bSh0LGUpO3JldHVybiBhP2EudmFsdWU9cjooaS5sYXN0PWE9e2luZGV4Om89eShlLCEwKSxrZXk6ZSx2YWx1ZTpyLHByZXZpb3VzOm49aS5sYXN0LG5leHQ6dm9pZCAwLHJlbW92ZWQ6ITF9LGkuZmlyc3R8fChpLmZpcnN0PWEpLG4mJihuLm5leHQ9YSksdj9pLnNpemUrKzp0LnNpemUrKyxcIkZcIiE9PW8mJihpLmluZGV4W29dPWEpKSx0fSxtPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1oKHQpLG89eShlKTtpZihcIkZcIiE9PW8pcmV0dXJuIG4uaW5kZXhbb107Zm9yKHI9bi5maXJzdDtyO3I9ci5uZXh0KWlmKHIua2V5PT09ZSlyZXR1cm4gcn07cmV0dXJuIGkocCx7Y2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9aCh0aGlzKSxlPXQuaW5kZXgscj10LmZpcnN0O3I7KXIucmVtb3ZlZD0hMCxyLnByZXZpb3VzJiYoci5wcmV2aW91cz1yLnByZXZpb3VzLm5leHQ9dm9pZCAwKSxkZWxldGUgZVtyLmluZGV4XSxyPXIubmV4dDt0LmZpcnN0PXQubGFzdD12b2lkIDAsdj90LnNpemU9MDp0aGlzLnNpemU9MH0sZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1oKGUpLG49bShlLHQpO2lmKG4pe3ZhciBvPW4ubmV4dCxpPW4ucHJldmlvdXM7ZGVsZXRlIHIuaW5kZXhbbi5pbmRleF0sbi5yZW1vdmVkPSEwLGkmJihpLm5leHQ9byksbyYmKG8ucHJldmlvdXM9aSksci5maXJzdD09PW4mJihyLmZpcnN0PW8pLHIubGFzdD09PW4mJihyLmxhc3Q9aSksdj9yLnNpemUtLTplLnNpemUtLX1yZXR1cm4hIW59LGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9aCh0aGlzKSxuPWEodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7ZT1lP2UubmV4dDpyLmZpcnN0Oylmb3IobihlLnZhbHVlLGUua2V5LHRoaXMpO2UmJmUucmVtb3ZlZDspZT1lLnByZXZpb3VzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISFtKHRoaXMsdCl9fSksaShwLHI/e2dldDpmdW5jdGlvbih0KXt2YXIgZT1tKHRoaXMsdCk7cmV0dXJuIGUmJmUudmFsdWV9LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiBnKHRoaXMsMD09PXQ/MDp0LGUpfX06e2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gZyh0aGlzLHQ9MD09PXQ/MDp0LHQpfX0pLHYmJm8ocCxcInNpemVcIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBoKHRoaXMpLnNpemV9fSksbH0sc2V0U3Ryb25nOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lK1wiIEl0ZXJhdG9yXCIsbz1iKGUpLGk9YihuKTtmKHQsZSwoZnVuY3Rpb24odCxlKXtkKHRoaXMse3R5cGU6bix0YXJnZXQ6dCxzdGF0ZTpvKHQpLGtpbmQ6ZSxsYXN0OnZvaWQgMH0pfSksKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWkodGhpcyksZT10LmtpbmQscj10Lmxhc3Q7ciYmci5yZW1vdmVkOylyPXIucHJldmlvdXM7cmV0dXJuIHQudGFyZ2V0JiYodC5sYXN0PXI9cj9yLm5leHQ6dC5zdGF0ZS5maXJzdCk/bChcImtleXNcIj09PWU/ci5rZXk6XCJ2YWx1ZXNcIj09PWU/ci52YWx1ZTpbci5rZXksci52YWx1ZV0sITEpOih0LnRhcmdldD12b2lkIDAsbCh2b2lkIDAsITApKX0pLHI/XCJlbnRyaWVzXCI6XCJ2YWx1ZXNcIiwhciwhMCkscChlKX19fSwyOTY2Oih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPXIoMTYxNTQpLGk9cig2NDcyNCkuZ2V0V2Vha0RhdGEsYT1yKDUxNzE2KSx1PXIoNDE0MzIpLGM9cigyNDEwNCkscz1yKDY2NDUpLGY9cig4NzYzMSksbD1yKDUxNjMwKSxwPXIoMzYwMzYpLHY9cig5ODM2KSx5PXYuc2V0LGg9di5nZXR0ZXJGb3IsZD1sLmZpbmQsYj1sLmZpbmRJbmRleCxnPW4oW10uc3BsaWNlKSxtPTAsdz1mdW5jdGlvbih0KXtyZXR1cm4gdC5mcm96ZW58fCh0LmZyb3plbj1uZXcgUyl9LFM9ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXM9W119LE89ZnVuY3Rpb24odCxlKXtyZXR1cm4gZCh0LmVudHJpZXMsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPT09ZX0pKX07Uy5wcm90b3R5cGU9e2dldDpmdW5jdGlvbih0KXt2YXIgZT1PKHRoaXMsdCk7aWYoZSlyZXR1cm4gZVsxXX0saGFzOmZ1bmN0aW9uKHQpe3JldHVybiEhTyh0aGlzLHQpfSxzZXQ6ZnVuY3Rpb24odCxlKXt2YXIgcj1PKHRoaXMsdCk7cj9yWzFdPWU6dGhpcy5lbnRyaWVzLnB1c2goW3QsZV0pfSxkZWxldGU6ZnVuY3Rpb24odCl7dmFyIGU9Yih0aGlzLmVudHJpZXMsKGZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPT09dH0pKTtyZXR1cm5+ZSYmZyh0aGlzLmVudHJpZXMsZSwxKSwhIX5lfX0sdC5leHBvcnRzPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbih0LGUscixuKXt2YXIgbD10KChmdW5jdGlvbih0LG8pe2EodCx2KSx5KHQse3R5cGU6ZSxpZDptKyssZnJvemVuOnZvaWQgMH0pLGMobyl8fGYobyx0W25dLHt0aGF0OnQsQVNfRU5UUklFUzpyfSl9KSksdj1sLnByb3RvdHlwZSxkPWgoZSksYj1mdW5jdGlvbih0LGUscil7dmFyIG49ZCh0KSxvPWkodShlKSwhMCk7cmV0dXJuITA9PT1vP3cobikuc2V0KGUscik6b1tuLmlkXT1yLHR9O3JldHVybiBvKHYse2RlbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT1kKHRoaXMpO2lmKCFzKHQpKXJldHVybiExO3ZhciByPWkodCk7cmV0dXJuITA9PT1yP3coZSkuZGVsZXRlKHQpOnImJnAocixlLmlkKSYmZGVsZXRlIHJbZS5pZF19LGhhczpmdW5jdGlvbih0KXt2YXIgZT1kKHRoaXMpO2lmKCFzKHQpKXJldHVybiExO3ZhciByPWkodCk7cmV0dXJuITA9PT1yP3coZSkuaGFzKHQpOnImJnAocixlLmlkKX19KSxvKHYscj97Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlPWQodGhpcyk7aWYocyh0KSl7dmFyIHI9aSh0KTtyZXR1cm4hMD09PXI/dyhlKS5nZXQodCk6cj9yW2UuaWRdOnZvaWQgMH19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiBiKHRoaXMsdCxlKX19OnthZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIGIodGhpcyx0LCEwKX19KSxsfX19LDM4ODMzOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxNzY5MCksaT1yKDQ0NzYzKSxhPXIoNzU5MDMpLHU9cigyOTU2NyksYz1yKDY0NzI0KSxzPXIoODc2MzEpLGY9cig1MTcxNiksbD1yKDY2NjkwKSxwPXIoMjQxMDQpLHY9cig2NjQ1KSx5PXIoMzU3NjQpLGg9cigxODc1MyksZD1yKDM0NzUyKSxiPXIoMzU5NDgpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGc9LTEhPT10LmluZGV4T2YoXCJNYXBcIiksbT0tMSE9PXQuaW5kZXhPZihcIldlYWtcIiksdz1nP1wic2V0XCI6XCJhZGRcIixTPW9bdF0sTz1TJiZTLnByb3RvdHlwZSxFPVMseD17fSxqPWZ1bmN0aW9uKHQpe3ZhciBlPWkoT1t0XSk7dShPLHQsXCJhZGRcIj09PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIGUodGhpcywwPT09dD8wOnQpLHRoaXN9OlwiZGVsZXRlXCI9PT10P2Z1bmN0aW9uKHQpe3JldHVybiEobSYmIXYodCkpJiZlKHRoaXMsMD09PXQ/MDp0KX06XCJnZXRcIj09PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIG0mJiF2KHQpP3ZvaWQgMDplKHRoaXMsMD09PXQ/MDp0KX06XCJoYXNcIj09PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIShtJiYhdih0KSkmJmUodGhpcywwPT09dD8wOnQpfTpmdW5jdGlvbih0LHIpe3JldHVybiBlKHRoaXMsMD09PXQ/MDp0LHIpLHRoaXN9KX07aWYoYSh0LCFsKFMpfHwhKG18fE8uZm9yRWFjaCYmIXkoKGZ1bmN0aW9uKCl7KG5ldyBTKS5lbnRyaWVzKCkubmV4dCgpfSkpKSkpRT1yLmdldENvbnN0cnVjdG9yKGUsdCxnLHcpLGMuZW5hYmxlKCk7ZWxzZSBpZihhKHQsITApKXt2YXIgUD1uZXcgRSxUPVBbd10obT97fTotMCwxKSE9PVAsQT15KChmdW5jdGlvbigpe1AuaGFzKDEpfSkpLEk9aCgoZnVuY3Rpb24odCl7bmV3IFModCl9KSksXz0hbSYmeSgoZnVuY3Rpb24oKXtmb3IodmFyIHQ9bmV3IFMsZT01O2UtLTspdFt3XShlLGUpO3JldHVybiF0LmhhcygtMCl9KSk7SXx8KChFPWUoKGZ1bmN0aW9uKHQsZSl7Zih0LE8pO3ZhciByPWIobmV3IFMsdCxFKTtyZXR1cm4gcChlKXx8cyhlLHJbd10se3RoYXQ6cixBU19FTlRSSUVTOmd9KSxyfSkpKS5wcm90b3R5cGU9TyxPLmNvbnN0cnVjdG9yPUUpLChBfHxfKSYmKGooXCJkZWxldGVcIiksaihcImhhc1wiKSxnJiZqKFwiZ2V0XCIpKSwoX3x8VCkmJmoodyksbSYmTy5jbGVhciYmZGVsZXRlIE8uY2xlYXJ9cmV0dXJuIHhbdF09RSxuKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOkUhPT1TfSx4KSxkKEUsdCksbXx8ci5zZXRTdHJvbmcoRSx0LGcpLEV9fSwyNTk2NDoodCxlLHIpPT57cig5NTUxNikscig2NjYyNyk7dmFyIG49cigyNTM0KSxvPXIoMjg5OSksaT1yKDY2NDUpLGE9T2JqZWN0LHU9VHlwZUVycm9yLGM9bihcIk1hcFwiKSxzPW4oXCJXZWFrTWFwXCIpLGY9ZnVuY3Rpb24oKXt0aGlzLm9iamVjdD1udWxsLHRoaXMuc3ltYm9sPW51bGwsdGhpcy5wcmltaXRpdmVzPW51bGwsdGhpcy5vYmplY3RzQnlJbmRleD1vKG51bGwpfTtmLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc1t0XXx8KHRoaXNbdF09ZSgpKX0sZi5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0LGUscil7dmFyIG49cj90aGlzLm9iamVjdHNCeUluZGV4W3RdfHwodGhpcy5vYmplY3RzQnlJbmRleFt0XT1uZXcgcyk6dGhpcy5wcmltaXRpdmVzfHwodGhpcy5wcmltaXRpdmVzPW5ldyBjKSxvPW4uZ2V0KGUpO3JldHVybiBvfHxuLnNldChlLG89bmV3IGYpLG99O3ZhciBsPW5ldyBmO3QuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0LGUscj1sLG49YXJndW1lbnRzLmxlbmd0aDtmb3IodD0wO3Q8bjt0KyspaShlPWFyZ3VtZW50c1t0XSkmJihyPXIubmV4dCh0LGUsITApKTtpZih0aGlzPT09YSYmcj09PWwpdGhyb3cgdShcIkNvbXBvc2l0ZSBrZXlzIG11c3QgY29udGFpbiBhIG5vbi1wcmltaXRpdmUgY29tcG9uZW50XCIpO2Zvcih0PTA7dDxuO3QrKylpKGU9YXJndW1lbnRzW3RdKXx8KHI9ci5uZXh0KHQsZSwhMSkpO3JldHVybiByfX0sODY1MzE6KHQsZSxyKT0+e3ZhciBuPXIoMzYwMzYpLG89cigzODA1OCksaT1yKDcxOTUwKSxhPXIoMzAxNDgpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciB1PW8oZSksYz1hLmYscz1pLmYsZj0wO2Y8dS5sZW5ndGg7ZisrKXt2YXIgbD11W2ZdO24odCxsKXx8ciYmbihyLGwpfHxjKHQsbCxzKGUsbCkpfX19LDgzMDcxOih0LGUscik9Pnt2YXIgbj1yKDkwNTc2KShcIm1hdGNoXCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0vLi87dHJ5e1wiLy4vXCJbdF0oZSl9Y2F0Y2gocil7dHJ5e3JldHVybiBlW25dPSExLFwiLy4vXCJbdF0oZSl9Y2F0Y2godCl7fX1yZXR1cm4hMX19LDYyMDE0Oih0LGUscik9Pnt2YXIgbj1yKDM1NzY0KTt0LmV4cG9ydHM9IW4oKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IHQpIT09dC5wcm90b3R5cGV9KSl9LDk0NjYzOih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPXIoMTUyNyksaT1yKDg0NjAwKSxhPS9cIi9nLHU9bihcIlwiLnJlcGxhY2UpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgYz1pKG8odCkpLHM9XCI8XCIrZTtyZXR1cm5cIlwiIT09ciYmKHMrPVwiIFwiK3IrJz1cIicrdShpKG4pLGEsXCImcXVvdDtcIikrJ1wiJykscytcIj5cIitjK1wiPC9cIitlK1wiPlwifX0sNDk1NTg6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybnt2YWx1ZTp0LGRvbmU6ZX19fSw1MTc0NjoodCxlLHIpPT57dmFyIG49cigxNTAzKSxvPXIoMzAxNDgpLGk9cig5ODkxMyk7dC5leHBvcnRzPW4/ZnVuY3Rpb24odCxlLHIpe3JldHVybiBvLmYodCxlLGkoMSxyKSl9OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFtlXT1yLHR9fSw5ODkxMzp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fX0sNTg2NTU6KHQsZSxyKT0+e3ZhciBuPXIoMzczNDIpLG89cigzMDE0OCksaT1yKDk4OTEzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPW4oZSk7YSBpbiB0P28uZih0LGEsaSgwLHIpKTp0W2FdPXJ9fSwyODY4NzoodCxlLHIpPT57dmFyIG49cig0MTQzMiksbz1yKDQ5NTY1KSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYobih0aGlzKSxcInN0cmluZ1wiPT09dHx8XCJkZWZhdWx0XCI9PT10KXQ9XCJzdHJpbmdcIjtlbHNlIGlmKFwibnVtYmVyXCIhPT10KXRocm93IGkoXCJJbmNvcnJlY3QgaGludFwiKTtyZXR1cm4gbyh0aGlzLHQpfX0sMzQzMzE6KHQsZSxyKT0+e3ZhciBuPXIoNTEyMDApLG89cigzMDE0OCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gci5nZXQmJm4oci5nZXQsZSx7Z2V0dGVyOiEwfSksci5zZXQmJm4oci5zZXQsZSx7c2V0dGVyOiEwfSksby5mKHQsZSxyKX19LDI5NTY3Oih0LGUscik9Pnt2YXIgbj1yKDY2NjkwKSxvPXIoMzAxNDgpLGk9cig1MTIwMCksYT1yKDY1OTY0KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7dXx8KHU9e30pO3ZhciBjPXUuZW51bWVyYWJsZSxzPXZvaWQgMCE9PXUubmFtZT91Lm5hbWU6ZTtpZihuKHIpJiZpKHIscyx1KSx1Lmdsb2JhbCljP3RbZV09cjphKGUscik7ZWxzZXt0cnl7dS51bnNhZmU/dFtlXSYmKGM9ITApOmRlbGV0ZSB0W2VdfWNhdGNoKHQpe31jP3RbZV09cjpvLmYodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiF1Lm5vbkNvbmZpZ3VyYWJsZSx3cml0YWJsZTohdS5ub25Xcml0YWJsZX0pfXJldHVybiB0fX0sMTYxNTQ6KHQsZSxyKT0+e3ZhciBuPXIoMjk1NjcpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBvIGluIGUpbih0LG8sZVtvXSxyKTtyZXR1cm4gdH19LDY1OTY0Oih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0cnl7byhuLHQse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9Y2F0Y2gocil7blt0XT1lfXJldHVybiBlfX0sNjM4ODc6KHQsZSxyKT0+e3ZhciBuPXIoNDIyNDgpLG89VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCFkZWxldGUgdFtlXSl0aHJvdyBvKFwiQ2Fubm90IGRlbGV0ZSBwcm9wZXJ0eSBcIituKGUpK1wiIG9mIFwiK24odCkpfX0sMTUwMzoodCxlLHIpPT57dmFyIG49cigzNTc2NCk7dC5leHBvcnRzPSFuKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw5MjA1MDp0PT57ZnVuY3Rpb24gZSh0KXtyZXR1cm4gZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxlKHQpfXZhciByPVwib2JqZWN0XCI9PShcInVuZGVmaW5lZFwiPT10eXBlb2YgZG9jdW1lbnQ/XCJ1bmRlZmluZWRcIjplKGRvY3VtZW50KSkmJmRvY3VtZW50LmFsbCxuPXZvaWQgMD09PXImJnZvaWQgMCE9PXI7dC5leHBvcnRzPXthbGw6cixJU19IVE1MRERBOm59fSwyNjU4NDoodCxlLHIpPT57dmFyIG49cigxNzY5MCksbz1yKDY2NDUpLGk9bi5kb2N1bWVudCxhPW8oaSkmJm8oaS5jcmVhdGVFbGVtZW50KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGE/aS5jcmVhdGVFbGVtZW50KHQpOnt9fX0sMjI5NjA6dD0+e3ZhciBlPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodD45MDA3MTk5MjU0NzQwOTkxKXRocm93IGUoXCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWRcIik7cmV0dXJuIHR9fSw2MjY3MTp0PT57dC5leHBvcnRzPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfX0sODk5NTc6KHQsZSxyKT0+e3ZhciBuPXIoMjY1ODQpKFwic3BhblwiKS5jbGFzc0xpc3Qsbz1uJiZuLmNvbnN0cnVjdG9yJiZuLmNvbnN0cnVjdG9yLnByb3RvdHlwZTt0LmV4cG9ydHM9bz09PU9iamVjdC5wcm90b3R5cGU/dm9pZCAwOm99LDE4ODMzOih0LGUscik9Pnt2YXIgbj1yKDM1MTk1KS5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS9pKTt0LmV4cG9ydHM9ISFuJiYrblsxXX0sNTAzMDk6KHQsZSxyKT0+e2Z1bmN0aW9uIG4odCl7cmV0dXJuIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sbih0KX12YXIgbz1yKDczNyksaT1yKDg1MTQ5KTt0LmV4cG9ydHM9IW8mJiFpJiZcIm9iamVjdFwiPT0oXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdz9cInVuZGVmaW5lZFwiOm4od2luZG93KSkmJlwib2JqZWN0XCI9PShcInVuZGVmaW5lZFwiPT10eXBlb2YgZG9jdW1lbnQ/XCJ1bmRlZmluZWRcIjpuKGRvY3VtZW50KSl9LDYzMzU2OnQ9Pnt0LmV4cG9ydHM9XCJmdW5jdGlvblwiPT10eXBlb2YgQnVuJiZCdW4mJlwic3RyaW5nXCI9PXR5cGVvZiBCdW4udmVyc2lvbn0sNzM3OnQ9PntmdW5jdGlvbiBlKHQpe3JldHVybiBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LGUodCl9dC5leHBvcnRzPVwib2JqZWN0XCI9PShcInVuZGVmaW5lZFwiPT10eXBlb2YgRGVubz9cInVuZGVmaW5lZFwiOmUoRGVubykpJiZEZW5vJiZcIm9iamVjdFwiPT1lKERlbm8udmVyc2lvbil9LDQ0MDc5Oih0LGUscik9Pnt2YXIgbj1yKDM1MTk1KTt0LmV4cG9ydHM9L01TSUV8VHJpZGVudC8udGVzdChuKX0sODg2Mzc6KHQsZSxyKT0+e3ZhciBuPXIoMzUxOTUpO3QuZXhwb3J0cz0vaXBhZHxpcGhvbmV8aXBvZC9pLnRlc3QobikmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBQZWJibGV9LDkzMDkyOih0LGUscik9Pnt2YXIgbj1yKDM1MTk1KTt0LmV4cG9ydHM9Lyg/OmlwYWR8aXBob25lfGlwb2QpLiphcHBsZXdlYmtpdC9pLnRlc3Qobil9LDg1MTQ5Oih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKSxvPXIoNTc2NzEpO3QuZXhwb3J0cz1cInByb2Nlc3NcIj09PW8obi5wcm9jZXNzKX0sNjA4NDA6KHQsZSxyKT0+e3ZhciBuPXIoMzUxOTUpO3QuZXhwb3J0cz0vd2ViMHMoPyEuKmNocm9tZSkvaS50ZXN0KG4pfSwzNTE5NTp0PT57dC5leHBvcnRzPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBuYXZpZ2F0b3ImJlN0cmluZyhuYXZpZ2F0b3IudXNlckFnZW50KXx8XCJcIn0sNzc2NTk6KHQsZSxyKT0+e3ZhciBuLG8saT1yKDE3NjkwKSxhPXIoMzUxOTUpLHU9aS5wcm9jZXNzLGM9aS5EZW5vLHM9dSYmdS52ZXJzaW9uc3x8YyYmYy52ZXJzaW9uLGY9cyYmcy52ODtmJiYobz0obj1mLnNwbGl0KFwiLlwiKSlbMF0+MCYmblswXTw0PzE6KyhuWzBdK25bMV0pKSwhbyYmYSYmKCEobj1hLm1hdGNoKC9FZGdlXFwvKFxcZCspLykpfHxuWzFdPj03NCkmJihuPWEubWF0Y2goL0Nocm9tZVxcLyhcXGQrKS8pKSYmKG89K25bMV0pLHQuZXhwb3J0cz1vfSw4OTE3MToodCxlLHIpPT57dmFyIG49cigzNTE5NSkubWF0Y2goL0FwcGxlV2ViS2l0XFwvKFxcZCspXFwuLyk7dC5leHBvcnRzPSEhbiYmK25bMV19LDY3MTA0OnQ9Pnt0LmV4cG9ydHM9W1wiY29uc3RydWN0b3JcIixcImhhc093blByb3BlcnR5XCIsXCJpc1Byb3RvdHlwZU9mXCIsXCJwcm9wZXJ0eUlzRW51bWVyYWJsZVwiLFwidG9Mb2NhbGVTdHJpbmdcIixcInRvU3RyaW5nXCIsXCJ2YWx1ZU9mXCJdfSw3NTE2MjoodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz1FcnJvcixpPW4oXCJcIi5yZXBsYWNlKSxhPVN0cmluZyhvKFwienhjYXNkXCIpLnN0YWNrKSx1PS9cXG5cXHMqYXQgW146XSo6W15cXG5dKi8sYz11LnRlc3QoYSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoYyYmXCJzdHJpbmdcIj09dHlwZW9mIHQmJiFvLnByZXBhcmVTdGFja1RyYWNlKWZvcig7ZS0tOyl0PWkodCx1LFwiXCIpO3JldHVybiB0fX0sODAxNjQ6KHQsZSxyKT0+e3ZhciBuPXIoNTE3NDYpLG89cig3NTE2MiksaT1yKDkyMzYwKSxhPUVycm9yLmNhcHR1cmVTdGFja1RyYWNlO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscix1KXtpJiYoYT9hKHQsZSk6bih0LFwic3RhY2tcIixvKHIsdSkpKX19LDkyMzYwOih0LGUscik9Pnt2YXIgbj1yKDM1NzY0KSxvPXIoOTg5MTMpO3QuZXhwb3J0cz0hbigoZnVuY3Rpb24oKXt2YXIgdD1FcnJvcihcImFcIik7cmV0dXJuIShcInN0YWNrXCJpbiB0KXx8KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwic3RhY2tcIixvKDEsNykpLDchPT10LnN0YWNrKX0pKX0sMTc3MToodCxlLHIpPT57ZnVuY3Rpb24gbih0KXtyZXR1cm4gbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxuKHQpfXZhciBvPXIoMTc2OTApLGk9cig3MTk1MCkuZixhPXIoNTE3NDYpLHU9cigyOTU2NyksYz1yKDY1OTY0KSxzPXIoODY1MzEpLGY9cig3NTkwMyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbCxwLHYseSxoPXQudGFyZ2V0LGQ9dC5nbG9iYWwsYj10LnN0YXQ7aWYocj1kP286Yj9vW2hdfHxjKGgse30pOihvW2hdfHx7fSkucHJvdG90eXBlKWZvcihsIGluIGUpe2lmKHY9ZVtsXSxwPXQuZG9udENhbGxHZXRTZXQ/KHk9aShyLGwpKSYmeS52YWx1ZTpyW2xdLCFmKGQ/bDpoKyhiP1wiLlwiOlwiI1wiKStsLHQuZm9yY2VkKSYmdm9pZCAwIT09cCl7aWYobih2KT09bihwKSljb250aW51ZTtzKHYscCl9KHQuc2hhbXx8cCYmcC5zaGFtKSYmYSh2LFwic2hhbVwiLCEwKSx1KHIsbCx2LHQpfX19LDM1NzY0OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX19LDEwMzI1Oih0LGUscik9PntyKDIwMDQ2KTt2YXIgbj1yKDUzMTg1KSxvPXIoMjk1NjcpLGk9cigxMzE2NCksYT1yKDM1NzY0KSx1PXIoOTA1NzYpLGM9cig1MTc0Nikscz11KFwic3BlY2llc1wiKSxmPVJlZ0V4cC5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe3ZhciBwPXUodCksdj0hYSgoZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZVtwXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT09XCJcIlt0XShlKX0pKSx5PXYmJiFhKChmdW5jdGlvbigpe3ZhciBlPSExLHI9L2EvO3JldHVyblwic3BsaXRcIj09PXQmJigocj17fSkuY29uc3RydWN0b3I9e30sci5jb25zdHJ1Y3RvcltzXT1mdW5jdGlvbigpe3JldHVybiByfSxyLmZsYWdzPVwiXCIscltwXT0vLi9bcF0pLHIuZXhlYz1mdW5jdGlvbigpe3JldHVybiBlPSEwLG51bGx9LHJbcF0oXCJcIiksIWV9KSk7aWYoIXZ8fCF5fHxyKXt2YXIgaD1uKC8uL1twXSksZD1lKHAsXCJcIlt0XSwoZnVuY3Rpb24odCxlLHIsbyxhKXt2YXIgdT1uKHQpLGM9ZS5leGVjO3JldHVybiBjPT09aXx8Yz09PWYuZXhlYz92JiYhYT97ZG9uZTohMCx2YWx1ZTpoKGUscixvKX06e2RvbmU6ITAsdmFsdWU6dShyLGUsbyl9Ontkb25lOiExfX0pKTtvKFN0cmluZy5wcm90b3R5cGUsdCxkWzBdKSxvKGYscCxkWzFdKX1sJiZjKGZbcF0sXCJzaGFtXCIsITApfX0sNDkzNTg6KHQsZSxyKT0+e3ZhciBuPXIoOTk5MjkpLG89cig2MjUwMyksaT1yKDIyOTYwKSxhPXIoNTYxMTEpO3QuZXhwb3J0cz1mdW5jdGlvbiB0KGUscix1LGMscyxmLGwscCl7Zm9yKHZhciB2LHk9cyxoPTAsZD0hIWwmJmEobCxwKTtoPGM7KWggaW4gdSYmKHY9ZD9kKHVbaF0saCxyKTp1W2hdLGY+MCYmbih2KT95PXQoZSxyLHYsbyh2KSx5LGYtMSktMTooaSh5KzEpLGVbeV09dikseSsrKSxoKys7cmV0dXJuIHl9fSwyNjQ0MToodCxlLHIpPT57dmFyIG49cigzNTc2NCk7dC5leHBvcnRzPSFuKChmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSkpfSw0Mzg3MjoodCxlLHIpPT57ZnVuY3Rpb24gbih0KXtyZXR1cm4gbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxuKHQpfXZhciBvPXIoODY4MDkpLGk9RnVuY3Rpb24ucHJvdG90eXBlLGE9aS5hcHBseSx1PWkuY2FsbDt0LmV4cG9ydHM9XCJvYmplY3RcIj09KFwidW5kZWZpbmVkXCI9PXR5cGVvZiBSZWZsZWN0P1widW5kZWZpbmVkXCI6bihSZWZsZWN0KSkmJlJlZmxlY3QuYXBwbHl8fChvP3UuYmluZChhKTpmdW5jdGlvbigpe3JldHVybiB1LmFwcGx5KGEsYXJndW1lbnRzKX0pfSw1NjExMToodCxlLHIpPT57dmFyIG49cig1MzE4NSksbz1yKDg2MTUxKSxpPXIoODY4MDkpLGE9bihuLmJpbmQpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBvKHQpLHZvaWQgMD09PWU/dDppP2EodCxlKTpmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsYXJndW1lbnRzKX19fSw4NjgwOToodCxlLHIpPT57dmFyIG49cigzNTc2NCk7dC5leHBvcnRzPSFuKChmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdHx8dC5oYXNPd25Qcm9wZXJ0eShcInByb3RvdHlwZVwiKX0pKX0sOTM2ODk6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpLG89cig4NjE1MSksaT1yKDY2NDUpLGE9cigzNjAzNiksdT1yKDgzNjQzKSxjPXIoODY4MDkpLHM9RnVuY3Rpb24sZj1uKFtdLmNvbmNhdCksbD1uKFtdLmpvaW4pLHA9e307dC5leHBvcnRzPWM/cy5iaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPW8odGhpcykscj1lLnByb3RvdHlwZSxuPXUoYXJndW1lbnRzLDEpLGM9ZnVuY3Rpb24oKXt2YXIgcj1mKG4sdShhcmd1bWVudHMpKTtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGM/ZnVuY3Rpb24odCxlLHIpe2lmKCFhKHAsZSkpe2Zvcih2YXIgbj1bXSxvPTA7bzxlO28rKyluW29dPVwiYVtcIitvK1wiXVwiO3BbZV09cyhcIkMsYVwiLFwicmV0dXJuIG5ldyBDKFwiK2wobixcIixcIikrXCIpXCIpfXJldHVybiBwW2VdKHQscil9KGUsci5sZW5ndGgscik6ZS5hcHBseSh0LHIpfTtyZXR1cm4gaShyKSYmKGMucHJvdG90eXBlPXIpLGN9fSwyMTYzNDoodCxlLHIpPT57dmFyIG49cig4NjgwOSksbz1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbDt0LmV4cG9ydHM9bj9vLmJpbmQobyk6ZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseShvLGFyZ3VtZW50cyl9fSw5OTEyOToodCxlLHIpPT57dmFyIG49cigxNTAzKSxvPXIoMzYwMzYpLGk9RnVuY3Rpb24ucHJvdG90eXBlLGE9biYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix1PW8oaSxcIm5hbWVcIiksYz11JiZcInNvbWV0aGluZ1wiPT09ZnVuY3Rpb24oKXt9Lm5hbWUscz11JiYoIW58fG4mJmEoaSxcIm5hbWVcIikuY29uZmlndXJhYmxlKTt0LmV4cG9ydHM9e0VYSVNUUzp1LFBST1BFUjpjLENPTkZJR1VSQUJMRTpzfX0sNTI1OTk6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpLG89cig4NjE1MSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt0cnl7cmV0dXJuIG4obyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSlbcl0pKX1jYXRjaCh0KXt9fX0sNTMxODU6KHQsZSxyKT0+e3ZhciBuPXIoNTc2NzEpLG89cig0NDc2Myk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKFwiRnVuY3Rpb25cIj09PW4odCkpcmV0dXJuIG8odCl9fSw0NDc2MzoodCxlLHIpPT57dmFyIG49cig4NjgwOSksbz1GdW5jdGlvbi5wcm90b3R5cGUsaT1vLmNhbGwsYT1uJiZvLmJpbmQuYmluZChpLGkpO3QuZXhwb3J0cz1uP2E6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkodCxhcmd1bWVudHMpfX19LDI1MzQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApLG89cig2NjY5MCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj8ocj1uW3RdLG8ocik/cjp2b2lkIDApOm5bdF0mJm5bdF1bZV07dmFyIHJ9fSw3NDg3Njp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybntpdGVyYXRvcjp0LG5leHQ6dC5uZXh0LGRvbmU6ITF9fX0sNDM0MjQ6KHQsZSxyKT0+e3ZhciBuPXIoNjA3NzIpLG89cig4MjA2MyksaT1yKDI0MTA0KSxhPXIoMjQ0MzgpLHU9cig5MDU3NikoXCJpdGVyYXRvclwiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIWkodCkpcmV0dXJuIG8odCx1KXx8byh0LFwiQEBpdGVyYXRvclwiKXx8YVtuKHQpXX19LDQ5ODI4Oih0LGUscik9Pnt2YXIgbj1yKDIxNjM0KSxvPXIoODYxNTEpLGk9cig0MTQzMiksYT1yKDQyMjQ4KSx1PXIoNDM0MjQpLGM9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mj91KHQpOmU7aWYobyhyKSlyZXR1cm4gaShuKHIsdCkpO3Rocm93IGMoYSh0KStcIiBpcyBub3QgaXRlcmFibGVcIil9fSwzMjM0NDoodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz1yKDk5OTI5KSxpPXIoNjY2OTApLGE9cig1NzY3MSksdT1yKDg0NjAwKSxjPW4oW10ucHVzaCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKGkodCkpcmV0dXJuIHQ7aWYobyh0KSl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj0wO248ZTtuKyspe3ZhciBzPXRbbl07XCJzdHJpbmdcIj09dHlwZW9mIHM/YyhyLHMpOlwibnVtYmVyXCIhPXR5cGVvZiBzJiZcIk51bWJlclwiIT09YShzKSYmXCJTdHJpbmdcIiE9PWEocyl8fGMocix1KHMpKX12YXIgZj1yLmxlbmd0aCxsPSEwO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGwpcmV0dXJuIGw9ITEsZTtpZihvKHRoaXMpKXJldHVybiBlO2Zvcih2YXIgbj0wO248ZjtuKyspaWYocltuXT09PXQpcmV0dXJuIGV9fX19LDgyMDYzOih0LGUscik9Pnt2YXIgbj1yKDg2MTUxKSxvPXIoMjQxMDQpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXRbZV07cmV0dXJuIG8ocik/dm9pZCAwOm4ocil9fSw2OTQyODoodCxlLHIpPT57dmFyIG49cig4NjE1MSksbz1yKDQxNDMyKSxpPXIoMjE2MzQpLGE9cig5NzA0MiksdT1yKDc0ODc2KSxjPVwiSW52YWxpZCBzaXplXCIscz1SYW5nZUVycm9yLGY9VHlwZUVycm9yLGw9TWF0aC5tYXgscD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnNldD10LHRoaXMuc2l6ZT1lLHRoaXMuaGFzPXIsdGhpcy5rZXlzPW59O3AucHJvdG90eXBlPXtnZXRJdGVyYXRvcjpmdW5jdGlvbigpe3JldHVybiB1KG8oaSh0aGlzLmtleXMsdGhpcy5zZXQpKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMuaGFzLHRoaXMuc2V0LHQpfX0sdC5leHBvcnRzPWZ1bmN0aW9uKHQpe28odCk7dmFyIGU9K3Quc2l6ZTtpZihlIT1lKXRocm93IGYoYyk7dmFyIHI9YShlKTtpZihyPDApdGhyb3cgcyhjKTtyZXR1cm4gbmV3IHAodCxsKHIsMCksbih0Lmhhcyksbih0LmtleXMpKX19LDQ2MDc5Oih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPXIoMjM0NiksaT1NYXRoLmZsb29yLGE9bihcIlwiLmNoYXJBdCksdT1uKFwiXCIucmVwbGFjZSksYz1uKFwiXCIuc2xpY2UpLHM9L1xcJChbJCYnYF18XFxkezEsMn18PFtePl0qPikvZyxmPS9cXCQoWyQmJ2BdfFxcZHsxLDJ9KS9nO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGwscCl7dmFyIHY9cit0Lmxlbmd0aCx5PW4ubGVuZ3RoLGg9ZjtyZXR1cm4gdm9pZCAwIT09bCYmKGw9byhsKSxoPXMpLHUocCxoLChmdW5jdGlvbihvLHUpe3ZhciBzO3N3aXRjaChhKHUsMCkpe2Nhc2VcIiRcIjpyZXR1cm5cIiRcIjtjYXNlXCImXCI6cmV0dXJuIHQ7Y2FzZVwiYFwiOnJldHVybiBjKGUsMCxyKTtjYXNlXCInXCI6cmV0dXJuIGMoZSx2KTtjYXNlXCI8XCI6cz1sW2ModSwxLC0xKV07YnJlYWs7ZGVmYXVsdDp2YXIgZj0rdTtpZigwPT09ZilyZXR1cm4gbztpZihmPnkpe3ZhciBwPWkoZi8xMCk7cmV0dXJuIDA9PT1wP286cDw9eT92b2lkIDA9PT1uW3AtMV0/YSh1LDEpOm5bcC0xXSthKHUsMSk6b31zPW5bZi0xXX1yZXR1cm4gdm9pZCAwPT09cz9cIlwiOnN9KSl9fSwxNzY5MDpmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxuKHQpfXZhciBvPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PT1NYXRoJiZ0fTt0LmV4cG9ydHM9byhcIm9iamVjdFwiPT0oXCJ1bmRlZmluZWRcIj09dHlwZW9mIGdsb2JhbFRoaXM/XCJ1bmRlZmluZWRcIjpuKGdsb2JhbFRoaXMpKSYmZ2xvYmFsVGhpcyl8fG8oXCJvYmplY3RcIj09KFwidW5kZWZpbmVkXCI9PXR5cGVvZiB3aW5kb3c/XCJ1bmRlZmluZWRcIjpuKHdpbmRvdykpJiZ3aW5kb3cpfHxvKFwib2JqZWN0XCI9PShcInVuZGVmaW5lZFwiPT10eXBlb2Ygc2VsZj9cInVuZGVmaW5lZFwiOm4oc2VsZikpJiZzZWxmKXx8byhcIm9iamVjdFwiPT0odm9pZCAwPT09ci5nP1widW5kZWZpbmVkXCI6bihyLmcpKSYmci5nKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8dGhpc3x8RnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpfSwzNjAzNjoodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz1yKDIzNDYpLGk9bih7fS5oYXNPd25Qcm9wZXJ0eSk7dC5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkobyh0KSxlKX19LDg1MDk4OnQ9Pnt0LmV4cG9ydHM9e319LDkzMTYwOnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0cnl7MT09PWFyZ3VtZW50cy5sZW5ndGg/Y29uc29sZS5lcnJvcih0KTpjb25zb2xlLmVycm9yKHQsZSl9Y2F0Y2godCl7fX19LDQxNTI6KHQsZSxyKT0+e3ZhciBuPXIoMjUzNCk7dC5leHBvcnRzPW4oXCJkb2N1bWVudFwiLFwiZG9jdW1lbnRFbGVtZW50XCIpfSwzNDY0Oih0LGUscik9Pnt2YXIgbj1yKDE1MDMpLG89cigzNTc2NCksaT1yKDI2NTg0KTt0LmV4cG9ydHM9IW4mJiFvKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KGkoXCJkaXZcIiksXCJhXCIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSl9LDM5Mzg5Oih0LGUscik9Pnt2YXIgbj1yKDQ0MDczKSxvPXIoNzQyNTYpLGk9QXJyYXksYT1NYXRoLmFicyx1PU1hdGgucG93LGM9TWF0aC5mbG9vcixzPU1hdGgubG9nLGY9TWF0aC5MTjIsbD1mdW5jdGlvbih0KXt2YXIgZT1vKHQpLHI9YSh0LWUpO3JldHVybiByPi41fHwuNT09PXImJmUlMiE9MD9lK24odCk6ZX07dC5leHBvcnRzPXtwYWNrOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLHAsdj1pKHIpLHk9OCpyLWUtMSxoPSgxPDx5KS0xLGQ9aD4+MSxiPTIzPT09ZT91KDIsLTI0KS11KDIsLTc3KTowLGc9dDwwfHwwPT09dCYmMS90PDA/MTowLG09MDtmb3IoKHQ9YSh0KSkhPXR8fHQ9PT0xLzA/KG89dCE9dD8xOjAsbj1oKToobj1jKHModCkvZiksdCoocD11KDIsLW4pKTwxJiYobi0tLHAqPTIpLCh0Kz1uK2Q+PTE/Yi9wOmIqdSgyLDEtZCkpKnA+PTImJihuKysscC89MiksbitkPj1oPyhvPTAsbj1oKTpuK2Q+PTE/KG89bCgodCpwLTEpKnUoMixlKSksbis9ZCk6KG89bCh0KnUoMixkLTEpKnUoMixlKSksbj0wKSk7ZT49ODspdlttKytdPTI1NSZvLG8vPTI1NixlLT04O2ZvcihuPW48PGV8byx5Kz1lO3k+MDspdlttKytdPTI1NSZuLG4vPTI1Nix5LT04O3JldHVybiB2Wy0tbV18PTEyOCpnLHZ9LHVucGFjazpmdW5jdGlvbih0LGUpe3ZhciByLG49dC5sZW5ndGgsbz04Km4tZS0xLGk9KDE8PG8pLTEsYT1pPj4xLGM9by03LHM9bi0xLGY9dFtzLS1dLGw9MTI3JmY7Zm9yKGY+Pj03O2M+MDspbD0yNTYqbCt0W3MtLV0sYy09ODtmb3Iocj1sJigxPDwtYyktMSxsPj49LWMsYys9ZTtjPjA7KXI9MjU2KnIrdFtzLS1dLGMtPTg7aWYoMD09PWwpbD0xLWE7ZWxzZXtpZihsPT09aSlyZXR1cm4gcj9OYU46Zj8tMS8wOjEvMDtyKz11KDIsZSksbC09YX1yZXR1cm4oZj8tMToxKSpyKnUoMixsLWUpfX19LDI4NTg2Oih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPXIoMzU3NjQpLGk9cig1NzY3MSksYT1PYmplY3QsdT1uKFwiXCIuc3BsaXQpO3QuZXhwb3J0cz1vKChmdW5jdGlvbigpe3JldHVybiFhKFwielwiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm5cIlN0cmluZ1wiPT09aSh0KT91KHQsXCJcIik6YSh0KX06YX0sMzU5NDg6KHQsZSxyKT0+e3ZhciBuPXIoNjY2OTApLG89cig2NjQ1KSxpPXIoOTQyODgpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGEsdTtyZXR1cm4gaSYmbihhPWUuY29uc3RydWN0b3IpJiZhIT09ciYmbyh1PWEucHJvdG90eXBlKSYmdSE9PXIucHJvdG90eXBlJiZpKHQsdSksdH19LDg4OTI3Oih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPXIoNjY2OTApLGk9cig5NDY5NiksYT1uKEZ1bmN0aW9uLnRvU3RyaW5nKTtvKGkuaW5zcGVjdFNvdXJjZSl8fChpLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KSx0LmV4cG9ydHM9aS5pbnNwZWN0U291cmNlfSw4NjE2MzoodCxlLHIpPT57dmFyIG49cig2NjQ1KSxvPXIoNTE3NDYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe24oZSkmJlwiY2F1c2VcImluIGUmJm8odCxcImNhdXNlXCIsZS5jYXVzZSl9fSw2NDcyNDoodCxlLHIpPT57ZnVuY3Rpb24gbih0KXtyZXR1cm4gbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxuKHQpfXZhciBvPXIoMTc3MSksaT1yKDQ0NzYzKSxhPXIoODUwOTgpLHU9cig2NjQ1KSxjPXIoMzYwMzYpLHM9cigzMDE0OCkuZixmPXIoNzA0MyksbD1yKDU3NzE5KSxwPXIoOTgxMDEpLHY9cigyNzczOSkseT1yKDI2NDQxKSxoPSExLGQ9dihcIm1ldGFcIiksYj0wLGc9ZnVuY3Rpb24odCl7cyh0LGQse3ZhbHVlOntvYmplY3RJRDpcIk9cIitiKyssd2Vha0RhdGE6e319fSl9LG09dC5leHBvcnRzPXtlbmFibGU6ZnVuY3Rpb24oKXttLmVuYWJsZT1mdW5jdGlvbigpe30saD0hMDt2YXIgdD1mLmYsZT1pKFtdLnNwbGljZSkscj17fTtyW2RdPTEsdChyKS5sZW5ndGgmJihmLmY9ZnVuY3Rpb24ocil7Zm9yKHZhciBuPXQociksbz0wLGk9bi5sZW5ndGg7bzxpO28rKylpZihuW29dPT09ZCl7ZShuLG8sMSk7YnJlYWt9cmV0dXJuIG59LG8oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7Z2V0T3duUHJvcGVydHlOYW1lczpsLmZ9KSl9LGZhc3RLZXk6ZnVuY3Rpb24odCxlKXtpZighdSh0KSlyZXR1cm5cInN5bWJvbFwiPT1uKHQpP3Q6KFwic3RyaW5nXCI9PXR5cGVvZiB0P1wiU1wiOlwiUFwiKSt0O2lmKCFjKHQsZCkpe2lmKCFwKHQpKXJldHVyblwiRlwiO2lmKCFlKXJldHVyblwiRVwiO2codCl9cmV0dXJuIHRbZF0ub2JqZWN0SUR9LGdldFdlYWtEYXRhOmZ1bmN0aW9uKHQsZSl7aWYoIWModCxkKSl7aWYoIXAodCkpcmV0dXJuITA7aWYoIWUpcmV0dXJuITE7Zyh0KX1yZXR1cm4gdFtkXS53ZWFrRGF0YX0sb25GcmVlemU6ZnVuY3Rpb24odCl7cmV0dXJuIHkmJmgmJnAodCkmJiFjKHQsZCkmJmcodCksdH19O2FbZF09ITB9LDk4MzY6KHQsZSxyKT0+e3ZhciBuLG8saSxhPXIoNTA0NzkpLHU9cigxNzY5MCksYz1yKDY2NDUpLHM9cig1MTc0NiksZj1yKDM2MDM2KSxsPXIoOTQ2OTYpLHA9cig5NTcwKSx2PXIoODUwOTgpLHk9XCJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZFwiLGg9dS5UeXBlRXJyb3IsZD11LldlYWtNYXA7aWYoYXx8bC5zdGF0ZSl7dmFyIGI9bC5zdGF0ZXx8KGwuc3RhdGU9bmV3IGQpO2IuZ2V0PWIuZ2V0LGIuaGFzPWIuaGFzLGIuc2V0PWIuc2V0LG49ZnVuY3Rpb24odCxlKXtpZihiLmhhcyh0KSl0aHJvdyBoKHkpO3JldHVybiBlLmZhY2FkZT10LGIuc2V0KHQsZSksZX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gYi5nZXQodCl8fHt9fSxpPWZ1bmN0aW9uKHQpe3JldHVybiBiLmhhcyh0KX19ZWxzZXt2YXIgZz1wKFwic3RhdGVcIik7dltnXT0hMCxuPWZ1bmN0aW9uKHQsZSl7aWYoZih0LGcpKXRocm93IGgoeSk7cmV0dXJuIGUuZmFjYWRlPXQscyh0LGcsZSksZX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gZih0LGcpP3RbZ106e319LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGYodCxnKX19dC5leHBvcnRzPXtzZXQ6bixnZXQ6byxoYXM6aSxlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBpKHQpP28odCk6bih0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcjtpZighYyhlKXx8KHI9byhlKSkudHlwZSE9PXQpdGhyb3cgaChcIkluY29tcGF0aWJsZSByZWNlaXZlciwgXCIrdCtcIiByZXF1aXJlZFwiKTtyZXR1cm4gcn19fX0sNDQ1NTY6KHQsZSxyKT0+e3ZhciBuPXIoOTA1NzYpLG89cigyNDQzOCksaT1uKFwiaXRlcmF0b3JcIiksYT1BcnJheS5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiYoby5BcnJheT09PXR8fGFbaV09PT10KX19LDk5OTI5Oih0LGUscik9Pnt2YXIgbj1yKDU3NjcxKTt0LmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuXCJBcnJheVwiPT09bih0KX19LDE0NDcwOih0LGUscik9Pnt2YXIgbj1yKDYwNzcyKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0KTtyZXR1cm5cIkJpZ0ludDY0QXJyYXlcIj09PWV8fFwiQmlnVWludDY0QXJyYXlcIj09PWV9fSw2NjY5MDoodCxlLHIpPT57dmFyIG49cig5MjA1MCksbz1uLmFsbDt0LmV4cG9ydHM9bi5JU19IVE1MRERBP2Z1bmN0aW9uKHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHR8fHQ9PT1vfTpmdW5jdGlvbih0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0fX0sMjg0MjA6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpLG89cigzNTc2NCksaT1yKDY2NjkwKSxhPXIoNjA3NzIpLHU9cigyNTM0KSxjPXIoODg5MjcpLHM9ZnVuY3Rpb24oKXt9LGY9W10sbD11KFwiUmVmbGVjdFwiLFwiY29uc3RydWN0XCIpLHA9L15cXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXFxiLyx2PW4ocC5leGVjKSx5PSFwLmV4ZWMocyksaD1mdW5jdGlvbih0KXtpZighaSh0KSlyZXR1cm4hMTt0cnl7cmV0dXJuIGwocyxmLHQpLCEwfWNhdGNoKHQpe3JldHVybiExfX0sZD1mdW5jdGlvbih0KXtpZighaSh0KSlyZXR1cm4hMTtzd2l0Y2goYSh0KSl7Y2FzZVwiQXN5bmNGdW5jdGlvblwiOmNhc2VcIkdlbmVyYXRvckZ1bmN0aW9uXCI6Y2FzZVwiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblwiOnJldHVybiExfXRyeXtyZXR1cm4geXx8ISF2KHAsYyh0KSl9Y2F0Y2godCl7cmV0dXJuITB9fTtkLnNoYW09ITAsdC5leHBvcnRzPSFsfHxvKChmdW5jdGlvbigpe3ZhciB0O3JldHVybiBoKGguY2FsbCl8fCFoKE9iamVjdCl8fCFoKChmdW5jdGlvbigpe3Q9ITB9KSl8fHR9KSk/ZDpofSwxNTM3ODoodCxlLHIpPT57dmFyIG49cigzNjAzNik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiYobih0LFwidmFsdWVcIil8fG4odCxcIndyaXRhYmxlXCIpKX19LDc1OTAzOih0LGUscik9Pnt2YXIgbj1yKDM1NzY0KSxvPXIoNjY2OTApLGk9LyN8XFwucHJvdG90eXBlXFwuLyxhPWZ1bmN0aW9uKHQsZSl7dmFyIHI9Y1t1KHQpXTtyZXR1cm4gcj09PWZ8fHIhPT1zJiYobyhlKT9uKGUpOiEhZSl9LHU9YS5ub3JtYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKGksXCIuXCIpLnRvTG93ZXJDYXNlKCl9LGM9YS5kYXRhPXt9LHM9YS5OQVRJVkU9XCJOXCIsZj1hLlBPTFlGSUxMPVwiUFwiO3QuZXhwb3J0cz1hfSwzOTUzODoodCxlLHIpPT57dmFyIG49cig2NjQ1KSxvPU1hdGguZmxvb3I7dC5leHBvcnRzPU51bWJlci5pc0ludGVnZXJ8fGZ1bmN0aW9uKHQpe3JldHVybiFuKHQpJiZpc0Zpbml0ZSh0KSYmbyh0KT09PXR9fSwyMDQwOih0LGUscik9Pnt2YXIgbj1yKDYwNzcyKSxvPXIoMzYwMzYpLGk9cigyNDEwNCksYT1yKDkwNTc2KSx1PXIoMjQ0MzgpLGM9YShcIml0ZXJhdG9yXCIpLHM9T2JqZWN0O3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihpKHQpKXJldHVybiExO3ZhciBlPXModCk7cmV0dXJuIHZvaWQgMCE9PWVbY118fFwiQEBpdGVyYXRvclwiaW4gZXx8byh1LG4oZSkpfX0sMjQxMDQ6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dH19LDY2NDU6KHQsZSxyKT0+e2Z1bmN0aW9uIG4odCl7cmV0dXJuIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sbih0KX12YXIgbz1yKDY2NjkwKSxpPXIoOTIwNTApLGE9aS5hbGw7dC5leHBvcnRzPWkuSVNfSFRNTEREQT9mdW5jdGlvbih0KXtyZXR1cm5cIm9iamVjdFwiPT1uKHQpP251bGwhPT10Om8odCl8fHQ9PT1hfTpmdW5jdGlvbih0KXtyZXR1cm5cIm9iamVjdFwiPT1uKHQpP251bGwhPT10Om8odCl9fSw3NDA0MDp0PT57dC5leHBvcnRzPSExfSw4Mzc1OToodCxlLHIpPT57dmFyIG49cig2NjQ1KSxvPXIoNTc2NzEpLGk9cig5MDU3NikoXCJtYXRjaFwiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG4odCkmJih2b2lkIDAhPT0oZT10W2ldKT8hIWU6XCJSZWdFeHBcIj09PW8odCkpfX0sMTc3OTQ6KHQsZSxyKT0+e2Z1bmN0aW9uIG4odCl7cmV0dXJuIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sbih0KX12YXIgbz1yKDI1MzQpLGk9cig2NjY5MCksYT1yKDU5NzkyKSx1PXIoNjAzMzUpLGM9T2JqZWN0O3QuZXhwb3J0cz11P2Z1bmN0aW9uKHQpe3JldHVyblwic3ltYm9sXCI9PW4odCl9OmZ1bmN0aW9uKHQpe3ZhciBlPW8oXCJTeW1ib2xcIik7cmV0dXJuIGkoZSkmJmEoZS5wcm90b3R5cGUsYyh0KSl9fSw0NjUxODoodCxlLHIpPT57dmFyIG49cigyMTYzNCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG8saSxhPXI/dDp0Lml0ZXJhdG9yLHU9dC5uZXh0OyEobz1uKHUsYSkpLmRvbmU7KWlmKHZvaWQgMCE9PShpPWUoby52YWx1ZSkpKXJldHVybiBpfX0sODc2MzE6KHQsZSxyKT0+e2Z1bmN0aW9uIG4odCl7cmV0dXJuIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sbih0KX12YXIgbz1yKDU2MTExKSxpPXIoMjE2MzQpLGE9cig0MTQzMiksdT1yKDQyMjQ4KSxjPXIoNDQ1NTYpLHM9cig2MjUwMyksZj1yKDU5NzkyKSxsPXIoNDk4MjgpLHA9cig0MzQyNCksdj1yKDUxMjY2KSx5PVR5cGVFcnJvcixoPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdG9wcGVkPXQsdGhpcy5yZXN1bHQ9ZX0sZD1oLnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBiLGcsbSx3LFMsTyxFLHg9ciYmci50aGF0LGo9ISghcnx8IXIuQVNfRU5UUklFUyksUD0hKCFyfHwhci5JU19SRUNPUkQpLFQ9ISghcnx8IXIuSVNfSVRFUkFUT1IpLEE9ISghcnx8IXIuSU5URVJSVVBURUQpLEk9byhlLHgpLF89ZnVuY3Rpb24odCl7cmV0dXJuIGImJnYoYixcIm5vcm1hbFwiLHQpLG5ldyBoKCEwLHQpfSxDPWZ1bmN0aW9uKHQpe3JldHVybiBqPyhhKHQpLEE/SSh0WzBdLHRbMV0sXyk6SSh0WzBdLHRbMV0pKTpBP0kodCxfKTpJKHQpfTtpZihQKWI9dC5pdGVyYXRvcjtlbHNlIGlmKFQpYj10O2Vsc2V7aWYoIShnPXAodCkpKXRocm93IHkodSh0KStcIiBpcyBub3QgaXRlcmFibGVcIik7aWYoYyhnKSl7Zm9yKG09MCx3PXModCk7dz5tO20rKylpZigoUz1DKHRbbV0pKSYmZihkLFMpKXJldHVybiBTO3JldHVybiBuZXcgaCghMSl9Yj1sKHQsZyl9Zm9yKE89UD90Lm5leHQ6Yi5uZXh0OyEoRT1pKE8sYikpLmRvbmU7KXt0cnl7Uz1DKEUudmFsdWUpfWNhdGNoKHQpe3YoYixcInRocm93XCIsdCl9aWYoXCJvYmplY3RcIj09bihTKSYmUyYmZihkLFMpKXJldHVybiBTfXJldHVybiBuZXcgaCghMSl9fSw1MTI2NjoodCxlLHIpPT57dmFyIG49cigyMTYzNCksbz1yKDQxNDMyKSxpPXIoODIwNjMpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGEsdTtvKHQpO3RyeXtpZighKGE9aSh0LFwicmV0dXJuXCIpKSl7aWYoXCJ0aHJvd1wiPT09ZSl0aHJvdyByO3JldHVybiByfWE9bihhLHQpfWNhdGNoKHQpe3U9ITAsYT10fWlmKFwidGhyb3dcIj09PWUpdGhyb3cgcjtpZih1KXRocm93IGE7cmV0dXJuIG8oYSkscn19LDQ5NDc3Oih0LGUscik9Pnt2YXIgbj1yKDM3MzQ4KS5JdGVyYXRvclByb3RvdHlwZSxvPXIoMjg5OSksaT1yKDk4OTEzKSxhPXIoMzQ3NTIpLHU9cigyNDQzOCksYz1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7dmFyIGY9ZStcIiBJdGVyYXRvclwiO3JldHVybiB0LnByb3RvdHlwZT1vKG4se25leHQ6aSgrIXMscil9KSxhKHQsZiwhMSwhMCksdVtmXT1jLHR9fSwyODQzMToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjE2MzQpLGk9cig3NDA0MCksYT1yKDk5MTI5KSx1PXIoNjY2OTApLGM9cig0OTQ3Nykscz1yKDk2Nzk2KSxmPXIoOTQyODgpLGw9cigzNDc1MikscD1yKDUxNzQ2KSx2PXIoMjk1NjcpLHk9cig5MDU3NiksaD1yKDI0NDM4KSxkPXIoMzczNDgpLGI9YS5QUk9QRVIsZz1hLkNPTkZJR1VSQUJMRSxtPWQuSXRlcmF0b3JQcm90b3R5cGUsdz1kLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsUz15KFwiaXRlcmF0b3JcIiksTz1cImtleXNcIixFPVwidmFsdWVzXCIseD1cImVudHJpZXNcIixqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLHksZCxQKXtjKHIsZSxhKTt2YXIgVCxBLEksXz1mdW5jdGlvbih0KXtpZih0PT09eSYmTSlyZXR1cm4gTTtpZighdyYmdCBpbiBSKXJldHVybiBSW3RdO3N3aXRjaCh0KXtjYXNlIE86Y2FzZSBFOmNhc2UgeDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIodGhpcyx0KX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyByKHRoaXMpfX0sQz1lK1wiIEl0ZXJhdG9yXCIsaz0hMSxSPXQucHJvdG90eXBlLEw9UltTXXx8UltcIkBAaXRlcmF0b3JcIl18fHkmJlJbeV0sTT0hdyYmTHx8Xyh5KSxOPVwiQXJyYXlcIj09PWUmJlIuZW50cmllc3x8TDtpZihOJiYoVD1zKE4uY2FsbChuZXcgdCkpKSE9PU9iamVjdC5wcm90b3R5cGUmJlQubmV4dCYmKGl8fHMoVCk9PT1tfHwoZj9mKFQsbSk6dShUW1NdKXx8dihULFMsaikpLGwoVCxDLCEwLCEwKSxpJiYoaFtDXT1qKSksYiYmeT09PUUmJkwmJkwubmFtZSE9PUUmJighaSYmZz9wKFIsXCJuYW1lXCIsRSk6KGs9ITAsTT1mdW5jdGlvbigpe3JldHVybiBvKEwsdGhpcyl9KSkseSlpZihBPXt2YWx1ZXM6XyhFKSxrZXlzOmQ/TTpfKE8pLGVudHJpZXM6Xyh4KX0sUClmb3IoSSBpbiBBKSh3fHxrfHwhKEkgaW4gUikpJiZ2KFIsSSxBW0ldKTtlbHNlIG4oe3RhcmdldDplLHByb3RvOiEwLGZvcmNlZDp3fHxrfSxBKTtyZXR1cm4gaSYmIVB8fFJbU109PT1NfHx2KFIsUyxNLHtuYW1lOnl9KSxoW2VdPU0sQX19LDM3MzQ4Oih0LGUscik9Pnt2YXIgbixvLGksYT1yKDM1NzY0KSx1PXIoNjY2OTApLGM9cig2NjQ1KSxzPXIoMjg5OSksZj1yKDk2Nzk2KSxsPXIoMjk1NjcpLHA9cig5MDU3Niksdj1yKDc0MDQwKSx5PXAoXCJpdGVyYXRvclwiKSxoPSExO1tdLmtleXMmJihcIm5leHRcImluKGk9W10ua2V5cygpKT8obz1mKGYoaSkpKSE9PU9iamVjdC5wcm90b3R5cGUmJihuPW8pOmg9ITApLCFjKG4pfHxhKChmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiBuW3ldLmNhbGwodCkhPT10fSkpP249e306diYmKG49cyhuKSksdShuW3ldKXx8bChuLHksKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTpuLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6aH19LDI0NDM4OnQ9Pnt0LmV4cG9ydHM9e319LDYyNTAzOih0LGUscik9Pnt2YXIgbj1yKDQ4MDczKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4odC5sZW5ndGgpfX0sNTEyMDA6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpLG89cigzNTc2NCksaT1yKDY2NjkwKSxhPXIoMzYwMzYpLHU9cigxNTAzKSxjPXIoOTkxMjkpLkNPTkZJR1VSQUJMRSxzPXIoODg5MjcpLGY9cig5ODM2KSxsPWYuZW5mb3JjZSxwPWYuZ2V0LHY9U3RyaW5nLHk9T2JqZWN0LmRlZmluZVByb3BlcnR5LGg9bihcIlwiLnNsaWNlKSxkPW4oXCJcIi5yZXBsYWNlKSxiPW4oW10uam9pbiksZz11JiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gOCE9PXkoKGZ1bmN0aW9uKCl7fSksXCJsZW5ndGhcIix7dmFsdWU6OH0pLmxlbmd0aH0pKSxtPVN0cmluZyhTdHJpbmcpLnNwbGl0KFwiU3RyaW5nXCIpLHc9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtcIlN5bWJvbChcIj09PWgodihlKSwwLDcpJiYoZT1cIltcIitkKHYoZSksL15TeW1ib2xcXCgoW14pXSopXFwpLyxcIiQxXCIpK1wiXVwiKSxyJiZyLmdldHRlciYmKGU9XCJnZXQgXCIrZSksciYmci5zZXR0ZXImJihlPVwic2V0IFwiK2UpLCghYSh0LFwibmFtZVwiKXx8YyYmdC5uYW1lIT09ZSkmJih1P3kodCxcIm5hbWVcIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KTp0Lm5hbWU9ZSksZyYmciYmYShyLFwiYXJpdHlcIikmJnQubGVuZ3RoIT09ci5hcml0eSYmeSh0LFwibGVuZ3RoXCIse3ZhbHVlOnIuYXJpdHl9KTt0cnl7ciYmYShyLFwiY29uc3RydWN0b3JcIikmJnIuY29uc3RydWN0b3I/dSYmeSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSk6dC5wcm90b3R5cGUmJih0LnByb3RvdHlwZT12b2lkIDApfWNhdGNoKHQpe312YXIgbj1sKHQpO3JldHVybiBhKG4sXCJzb3VyY2VcIil8fChuLnNvdXJjZT1iKG0sXCJzdHJpbmdcIj09dHlwZW9mIGU/ZTpcIlwiKSksdH07RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPXcoKGZ1bmN0aW9uKCl7cmV0dXJuIGkodGhpcykmJnAodGhpcykuc291cmNlfHxzKHRoaXMpfSksXCJ0b1N0cmluZ1wiKX0sMzgyMDc6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpLG89TWFwLnByb3RvdHlwZTt0LmV4cG9ydHM9e01hcCxzZXQ6bihvLnNldCksZ2V0Om4oby5nZXQpLGhhczpuKG8uaGFzKSxyZW1vdmU6bihvLmRlbGV0ZSkscHJvdG86b319LDI0NTI6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpLG89cig0NjUxOCksaT1yKDM4MjA3KSxhPWkuTWFwLHU9aS5wcm90byxjPW4odS5mb3JFYWNoKSxzPW4odS5lbnRyaWVzKSxmPXMobmV3IGEpLm5leHQ7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gcj9vKHtpdGVyYXRvcjpzKHQpLG5leHQ6Zn0sKGZ1bmN0aW9uKHQpe3JldHVybiBlKHRbMV0sdFswXSl9KSk6Yyh0LGUpfX0sOTM2NDM6dD0+e3ZhciBlPU1hdGguZXhwbTEscj1NYXRoLmV4cDt0LmV4cG9ydHM9IWV8fGUoMTApPjIyMDI1LjQ2NTc5NDgwNjcxOHx8ZSgxMCk8MjIwMjUuNDY1Nzk0ODA2NzE4fHwtMmUtMTchPT1lKC0yZS0xNyk/ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIDA9PT1lP2U6ZT4tMWUtNiYmZTwxZS02P2UrZSplLzI6cihlKS0xfTplfSwzNzQ2MjoodCxlLHIpPT57dmFyIG49cig0NDA3Myksbz1NYXRoLmFicyxpPU1hdGgucG93LGE9aSgyLC01MiksdT1pKDIsLTIzKSxjPWkoMiwxMjcpKigyLXUpLHM9aSgyLC0xMjYpO3QuZXhwb3J0cz1NYXRoLmZyb3VuZHx8ZnVuY3Rpb24odCl7dmFyIGUscixpPSt0LGY9byhpKSxsPW4oaSk7cmV0dXJuIGY8cz9sKmZ1bmN0aW9uKHQpe3JldHVybiB0KzEvYS0xL2F9KGYvcy91KSpzKnU6KHI9KGU9KDErdS9hKSpmKS0oZS1mKSk+Y3x8ciE9cj9sKigxLzApOmwqcn19LDUxODYxOnQ9Pnt2YXIgZT1NYXRoLmxvZyxyPU1hdGguTE9HMTBFO3QuZXhwb3J0cz1NYXRoLmxvZzEwfHxmdW5jdGlvbih0KXtyZXR1cm4gZSh0KSpyfX0sODY5NjU6dD0+e3ZhciBlPU1hdGgubG9nO3QuZXhwb3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbih0KXt2YXIgcj0rdDtyZXR1cm4gcj4tMWUtOCYmcjwxZS04P3ItcipyLzI6ZSgxK3IpfX0sNDE4OTY6dD0+e3QuZXhwb3J0cz1NYXRoLnNjYWxlfHxmdW5jdGlvbih0LGUscixuLG8pe3ZhciBpPSt0LGE9K2UsdT0rcixjPStuLHM9K287cmV0dXJuIGkhPWl8fGEhPWF8fHUhPXV8fGMhPWN8fHMhPXM/TmFOOmk9PT0xLzB8fGk9PT0tMS8wP2k6KGktYSkqKHMtYykvKHUtYSkrY319LDQ0MDczOnQ9Pnt0LmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbih0KXt2YXIgZT0rdDtyZXR1cm4gMD09PWV8fGUhPWU/ZTplPDA/LTE6MX19LDc0MjU2OnQ9Pnt2YXIgZT1NYXRoLmNlaWwscj1NYXRoLmZsb29yO3QuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbih0KXt2YXIgbj0rdDtyZXR1cm4obj4wP3I6ZSkobil9fSwxMDAyODoodCxlLHIpPT57dmFyIG4sbyxpLGEsdSxjPXIoMTc2OTApLHM9cig1NjExMSksZj1yKDcxOTUwKS5mLGw9cigzNjM2MCkuc2V0LHA9cig5MDUzMCksdj1yKDkzMDkyKSx5PXIoODg2MzcpLGg9cig2MDg0MCksZD1yKDg1MTQ5KSxiPWMuTXV0YXRpb25PYnNlcnZlcnx8Yy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLGc9Yy5kb2N1bWVudCxtPWMucHJvY2Vzcyx3PWMuUHJvbWlzZSxTPWYoYyxcInF1ZXVlTWljcm90YXNrXCIpLE89UyYmUy52YWx1ZTtpZighTyl7dmFyIEU9bmV3IHAseD1mdW5jdGlvbigpe3ZhciB0LGU7Zm9yKGQmJih0PW0uZG9tYWluKSYmdC5leGl0KCk7ZT1FLmdldCgpOyl0cnl7ZSgpfWNhdGNoKHQpe3Rocm93IEUuaGVhZCYmbigpLHR9dCYmdC5lbnRlcigpfTt2fHxkfHxofHwhYnx8IWc/IXkmJncmJncucmVzb2x2ZT8oKGE9dy5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPXcsdT1zKGEudGhlbixhKSxuPWZ1bmN0aW9uKCl7dSh4KX0pOmQ/bj1mdW5jdGlvbigpe20ubmV4dFRpY2soeCl9OihsPXMobCxjKSxuPWZ1bmN0aW9uKCl7bCh4KX0pOihvPSEwLGk9Zy5jcmVhdGVUZXh0Tm9kZShcIlwiKSxuZXcgYih4KS5vYnNlcnZlKGkse2NoYXJhY3RlckRhdGE6ITB9KSxuPWZ1bmN0aW9uKCl7aS5kYXRhPW89IW99KSxPPWZ1bmN0aW9uKHQpe0UuaGVhZHx8bigpLEUuYWRkKHQpfX10LmV4cG9ydHM9T30sMTU5NTg6KHQsZSxyKT0+e3ZhciBuPXIoODYxNTEpLG89VHlwZUVycm9yLGk9ZnVuY3Rpb24odCl7dmFyIGUscjt0aGlzLnByb21pc2U9bmV3IHQoKGZ1bmN0aW9uKHQsbil7aWYodm9pZCAwIT09ZXx8dm9pZCAwIT09cil0aHJvdyBvKFwiQmFkIFByb21pc2UgY29uc3RydWN0b3JcIik7ZT10LHI9bn0pKSx0aGlzLnJlc29sdmU9bihlKSx0aGlzLnJlamVjdD1uKHIpfTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGkodCl9fSw1MjkwNDoodCxlLHIpPT57dmFyIG49cig4NDYwMCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXQ/YXJndW1lbnRzLmxlbmd0aDwyP1wiXCI6ZTpuKHQpfX0sNjQ5NDY6KHQsZSxyKT0+e3ZhciBuPXIoODM3NTkpLG89VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihuKHQpKXRocm93IG8oXCJUaGUgbWV0aG9kIGRvZXNuJ3QgYWNjZXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnNcIik7cmV0dXJuIHR9fSwyNTAzNzoodCxlLHIpPT57dmFyIG49cigxNzY5MCkuaXNGaW5pdGU7dC5leHBvcnRzPU51bWJlci5pc0Zpbml0ZXx8ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHQmJm4odCl9fSw2MjUzMzoodCxlLHIpPT57dmFyIG49cigxNzY5MCksbz1yKDM1NzY0KSxpPXIoNDQ3NjMpLGE9cig4NDYwMCksdT1yKDY3NjE3KS50cmltLGM9cig1MDAxOSkscz1pKFwiXCIuY2hhckF0KSxmPW4ucGFyc2VGbG9hdCxsPW4uU3ltYm9sLHA9bCYmbC5pdGVyYXRvcix2PTEvZihjK1wiLTBcIikhPS0xLzB8fHAmJiFvKChmdW5jdGlvbigpe2YoT2JqZWN0KHApKX0pKTt0LmV4cG9ydHM9dj9mdW5jdGlvbih0KXt2YXIgZT11KGEodCkpLHI9ZihlKTtyZXR1cm4gMD09PXImJlwiLVwiPT09cyhlLDApPy0wOnJ9OmZ9LDM2MDY2Oih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKSxvPXIoMzU3NjQpLGk9cig0NDc2MyksYT1yKDg0NjAwKSx1PXIoNjc2MTcpLnRyaW0sYz1yKDUwMDE5KSxzPW4ucGFyc2VJbnQsZj1uLlN5bWJvbCxsPWYmJmYuaXRlcmF0b3IscD0vXlsrLV0/MHgvaSx2PWkocC5leGVjKSx5PTghPT1zKGMrXCIwOFwiKXx8MjIhPT1zKGMrXCIweDE2XCIpfHxsJiYhbygoZnVuY3Rpb24oKXtzKE9iamVjdChsKSl9KSk7dC5leHBvcnRzPXk/ZnVuY3Rpb24odCxlKXt2YXIgcj11KGEodCkpO3JldHVybiBzKHIsZT4+PjB8fCh2KHAscik/MTY6MTApKX06c30sNzQ4MjoodCxlLHIpPT57dmFyIG49cigxNTAzKSxvPXIoNDQ3NjMpLGk9cigyMTYzNCksYT1yKDM1NzY0KSx1PXIoNDM1MDcpLGM9cig3MzgzNCkscz1yKDI3NDYyKSxmPXIoMjM0NiksbD1yKDI4NTg2KSxwPU9iamVjdC5hc3NpZ24sdj1PYmplY3QuZGVmaW5lUHJvcGVydHkseT1vKFtdLmNvbmNhdCk7dC5leHBvcnRzPSFwfHxhKChmdW5jdGlvbigpe2lmKG4mJjEhPT1wKHtiOjF9LHAodih7fSxcImFcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2KHRoaXMsXCJiXCIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgdD17fSxlPXt9LHI9U3ltYm9sKFwiYXNzaWduIGRldGVjdGlvblwiKSxvPVwiYWJjZGVmZ2hpamtsbW5vcHFyc3RcIjtyZXR1cm4gdFtyXT03LG8uc3BsaXQoXCJcIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT10fSkpLDchPT1wKHt9LHQpW3JdfHx1KHAoe30sZSkpLmpvaW4oXCJcIikhPT1vfSkpP2Z1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWYodCksbz1hcmd1bWVudHMubGVuZ3RoLGE9MSxwPWMuZix2PXMuZjtvPmE7KWZvcih2YXIgaCxkPWwoYXJndW1lbnRzW2ErK10pLGI9cD95KHUoZCkscChkKSk6dShkKSxnPWIubGVuZ3RoLG09MDtnPm07KWg9YlttKytdLG4mJiFpKHYsZCxoKXx8KHJbaF09ZFtoXSk7cmV0dXJuIHJ9OnB9LDI4OTk6KHQsZSxyKT0+e3ZhciBuLG89cig0MTQzMiksaT1yKDk5ODEyKSxhPXIoNjcxMDQpLHU9cig4NTA5OCksYz1yKDQxNTIpLHM9cigyNjU4NCksZj1yKDk1NzApLGw9XCJwcm90b3R5cGVcIixwPVwic2NyaXB0XCIsdj1mKFwiSUVfUFJPVE9cIikseT1mdW5jdGlvbigpe30saD1mdW5jdGlvbih0KXtyZXR1cm5cIjxcIitwK1wiPlwiK3QrXCI8L1wiK3ArXCI+XCJ9LGQ9ZnVuY3Rpb24odCl7dC53cml0ZShoKFwiXCIpKSx0LmNsb3NlKCk7dmFyIGU9dC5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiB0PW51bGwsZX0sYj1mdW5jdGlvbigpe3RyeXtuPW5ldyBBY3RpdmVYT2JqZWN0KFwiaHRtbGZpbGVcIil9Y2F0Y2godCl7fXZhciB0LGUscjtiPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5kb21haW4mJm4/ZChuKTooZT1zKFwiaWZyYW1lXCIpLHI9XCJqYXZhXCIrcCtcIjpcIixlLnN0eWxlLmRpc3BsYXk9XCJub25lXCIsYy5hcHBlbmRDaGlsZChlKSxlLnNyYz1TdHJpbmcociksKHQ9ZS5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksdC53cml0ZShoKFwiZG9jdW1lbnQuRj1PYmplY3RcIikpLHQuY2xvc2UoKSx0LkYpOmQobik7Zm9yKHZhciBvPWEubGVuZ3RoO28tLTspZGVsZXRlIGJbbF1bYVtvXV07cmV0dXJuIGIoKX07dVt2XT0hMCx0LmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gbnVsbCE9PXQ/KHlbbF09byh0KSxyPW5ldyB5LHlbbF09bnVsbCxyW3ZdPXQpOnI9YigpLHZvaWQgMD09PWU/cjppLmYocixlKX19LDk5ODEyOih0LGUscik9Pnt2YXIgbj1yKDE1MDMpLG89cig5NDA3NyksaT1yKDMwMTQ4KSxhPXIoNDE0MzIpLHU9cig2Mjk5OCksYz1yKDQzNTA3KTtlLmY9biYmIW8/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24odCxlKXthKHQpO2Zvcih2YXIgcixuPXUoZSksbz1jKGUpLHM9by5sZW5ndGgsZj0wO3M+ZjspaS5mKHQscj1vW2YrK10sbltyXSk7cmV0dXJuIHR9fSwzMDE0ODoodCxlLHIpPT57dmFyIG49cigxNTAzKSxvPXIoMzQ2NCksaT1yKDk0MDc3KSxhPXIoNDE0MzIpLHU9cigzNzM0MiksYz1UeXBlRXJyb3Iscz1PYmplY3QuZGVmaW5lUHJvcGVydHksZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGw9XCJlbnVtZXJhYmxlXCIscD1cImNvbmZpZ3VyYWJsZVwiLHY9XCJ3cml0YWJsZVwiO2UuZj1uP2k/ZnVuY3Rpb24odCxlLHIpe2lmKGEodCksZT11KGUpLGEociksXCJmdW5jdGlvblwiPT10eXBlb2YgdCYmXCJwcm90b3R5cGVcIj09PWUmJlwidmFsdWVcImluIHImJnYgaW4gciYmIXJbdl0pe3ZhciBuPWYodCxlKTtuJiZuW3ZdJiYodFtlXT1yLnZhbHVlLHI9e2NvbmZpZ3VyYWJsZTpwIGluIHI/cltwXTpuW3BdLGVudW1lcmFibGU6bCBpbiByP3JbbF06bltsXSx3cml0YWJsZTohMX0pfXJldHVybiBzKHQsZSxyKX06czpmdW5jdGlvbih0LGUscil7aWYoYSh0KSxlPXUoZSksYShyKSxvKXRyeXtyZXR1cm4gcyh0LGUscil9Y2F0Y2godCl7fWlmKFwiZ2V0XCJpbiByfHxcInNldFwiaW4gcil0aHJvdyBjKFwiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWRcIik7cmV0dXJuXCJ2YWx1ZVwiaW4gciYmKHRbZV09ci52YWx1ZSksdH19LDcxOTUwOih0LGUscik9Pnt2YXIgbj1yKDE1MDMpLG89cigyMTYzNCksaT1yKDI3NDYyKSxhPXIoOTg5MTMpLHU9cig2Mjk5OCksYz1yKDM3MzQyKSxzPXIoMzYwMzYpLGY9cigzNDY0KSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ZS5mPW4/bDpmdW5jdGlvbih0LGUpe2lmKHQ9dSh0KSxlPWMoZSksZil0cnl7cmV0dXJuIGwodCxlKX1jYXRjaCh0KXt9aWYocyh0LGUpKXJldHVybiBhKCFvKGkuZix0LGUpLHRbZV0pfX0sNTc3MTk6KHQsZSxyKT0+e2Z1bmN0aW9uIG4odCl7cmV0dXJuIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sbih0KX12YXIgbz1yKDU3NjcxKSxpPXIoNjI5OTgpLGE9cig3MDQzKS5mLHU9cig1MTgwMiksYz1cIm9iamVjdFwiPT0oXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdz9cInVuZGVmaW5lZFwiOm4od2luZG93KSkmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gYyYmXCJXaW5kb3dcIj09PW8odCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBhKHQpfWNhdGNoKHQpe3JldHVybiB1KGMpfX0odCk6YShpKHQpKX19LDcwNDM6KHQsZSxyKT0+e3ZhciBuPXIoMTQ5NzMpLG89cig2NzEwNCkuY29uY2F0KFwibGVuZ3RoXCIsXCJwcm90b3R5cGVcIik7ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbih0KXtyZXR1cm4gbih0LG8pfX0sNzM4MzQ6KHQsZSk9PntlLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc30sOTY3OTY6KHQsZSxyKT0+e3ZhciBuPXIoMzYwMzYpLG89cig2NjY5MCksaT1yKDIzNDYpLGE9cig5NTcwKSx1PXIoNjIwMTQpLGM9YShcIklFX1BST1RPXCIpLHM9T2JqZWN0LGY9cy5wcm90b3R5cGU7dC5leHBvcnRzPXU/cy5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXt2YXIgZT1pKHQpO2lmKG4oZSxjKSlyZXR1cm4gZVtjXTt2YXIgcj1lLmNvbnN0cnVjdG9yO3JldHVybiBvKHIpJiZlIGluc3RhbmNlb2Ygcj9yLnByb3RvdHlwZTplIGluc3RhbmNlb2Ygcz9mOm51bGx9fSw5ODEwMToodCxlLHIpPT57dmFyIG49cigzNTc2NCksbz1yKDY2NDUpLGk9cig1NzY3MSksYT1yKDQwMDk1KSx1PU9iamVjdC5pc0V4dGVuc2libGUsYz1uKChmdW5jdGlvbigpe3UoMSl9KSk7dC5leHBvcnRzPWN8fGE/ZnVuY3Rpb24odCl7cmV0dXJuISFvKHQpJiYoIWF8fFwiQXJyYXlCdWZmZXJcIiE9PWkodCkpJiYoIXV8fHUodCkpfTp1fSw1OTc5MjoodCxlLHIpPT57dmFyIG49cig0NDc2Myk7dC5leHBvcnRzPW4oe30uaXNQcm90b3R5cGVPZil9LDE0OTczOih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPXIoMzYwMzYpLGk9cig2Mjk5OCksYT1yKDk4MzgwKS5pbmRleE9mLHU9cig4NTA5OCksYz1uKFtdLnB1c2gpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49aSh0KSxzPTAsZj1bXTtmb3IociBpbiBuKSFvKHUscikmJm8obixyKSYmYyhmLHIpO2Zvcig7ZS5sZW5ndGg+czspbyhuLHI9ZVtzKytdKSYmKH5hKGYscil8fGMoZixyKSk7cmV0dXJuIGZ9fSw0MzUwNzoodCxlLHIpPT57dmFyIG49cigxNDk3Myksbz1yKDY3MTA0KTt0LmV4cG9ydHM9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3JldHVybiBuKHQsbyl9fSwyNzQ2MjoodCxlKT0+e3ZhciByPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixvPW4mJiFyLmNhbGwoezE6Mn0sMSk7ZS5mPW8/ZnVuY3Rpb24odCl7dmFyIGU9bih0aGlzLHQpO3JldHVybiEhZSYmZS5lbnVtZXJhYmxlfTpyfSw1NDA0MDoodCxlLHIpPT57dmFyIG49cig3NDA0MCksbz1yKDE3NjkwKSxpPXIoMzU3NjQpLGE9cig4OTE3MSk7dC5leHBvcnRzPW58fCFpKChmdW5jdGlvbigpe2lmKCEoYSYmYTw1MzUpKXt2YXIgdD1NYXRoLnJhbmRvbSgpO19fZGVmaW5lU2V0dGVyX18uY2FsbChudWxsLHQsKGZ1bmN0aW9uKCl7fSkpLGRlbGV0ZSBvW3RdfX0pKX0sOTQyODg6KHQsZSxyKT0+e3ZhciBuPXIoNTI1OTkpLG89cig0MTQzMiksaT1yKDExMzkpO3QuZXhwb3J0cz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fChcIl9fcHJvdG9fX1wiaW57fT9mdW5jdGlvbigpe3ZhciB0LGU9ITEscj17fTt0cnl7KHQ9bihPYmplY3QucHJvdG90eXBlLFwiX19wcm90b19fXCIsXCJzZXRcIikpKHIsW10pLGU9ciBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKHQpe31yZXR1cm4gZnVuY3Rpb24ocixuKXtyZXR1cm4gbyhyKSxpKG4pLGU/dChyLG4pOnIuX19wcm90b19fPW4scn19KCk6dm9pZCAwKX0sNDgxMzA6KHQsZSxyKT0+e3ZhciBuPXIoMTUwMyksbz1yKDM1NzY0KSxpPXIoNDQ3NjMpLGE9cig5Njc5NiksdT1yKDQzNTA3KSxjPXIoNjI5OTgpLHM9aShyKDI3NDYyKS5mKSxmPWkoW10ucHVzaCksbD1uJiZvKChmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHRbMl09Miwhcyh0LDIpfSkpLHA9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgcixvPWMoZSksaT11KG8pLHA9bCYmbnVsbD09PWEobyksdj1pLmxlbmd0aCx5PTAsaD1bXTt2Pnk7KXI9aVt5KytdLG4mJiEocD9yIGluIG86cyhvLHIpKXx8ZihoLHQ/W3Isb1tyXV06b1tyXSk7cmV0dXJuIGh9fTt0LmV4cG9ydHM9e2VudHJpZXM6cCghMCksdmFsdWVzOnAoITEpfX0sNzMxOTA6KHQsZSxyKT0+e3ZhciBuPXIoMzQ4MjMpLG89cig2MDc3Mik7dC5leHBvcnRzPW4/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm5cIltvYmplY3QgXCIrbyh0aGlzKStcIl1cIn19LDM5NTY4Oih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKSxvPXIoNjY2OTApLGk9cig5MDU3NikoXCJvYnNlcnZhYmxlXCIpLGE9bi5PYnNlcnZhYmxlLHU9YSYmYS5wcm90b3R5cGU7dC5leHBvcnRzPSEobyhhKSYmbyhhLmZyb20pJiZvKGEub2YpJiZvKHUuc3Vic2NyaWJlKSYmbyh1W2ldKSl9LDQ5NTY1Oih0LGUscik9Pnt2YXIgbj1yKDIxNjM0KSxvPXIoNjY2OTApLGk9cig2NjQ1KSxhPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcix1O2lmKFwic3RyaW5nXCI9PT1lJiZvKHI9dC50b1N0cmluZykmJiFpKHU9bihyLHQpKSlyZXR1cm4gdTtpZihvKHI9dC52YWx1ZU9mKSYmIWkodT1uKHIsdCkpKXJldHVybiB1O2lmKFwic3RyaW5nXCIhPT1lJiZvKHI9dC50b1N0cmluZykmJiFpKHU9bihyLHQpKSlyZXR1cm4gdTt0aHJvdyBhKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpfX0sMzgwNTg6KHQsZSxyKT0+e3ZhciBuPXIoMjUzNCksbz1yKDQ0NzYzKSxpPXIoNzA0MyksYT1yKDczODM0KSx1PXIoNDE0MzIpLGM9byhbXS5jb25jYXQpO3QuZXhwb3J0cz1uKFwiUmVmbGVjdFwiLFwib3duS2V5c1wiKXx8ZnVuY3Rpb24odCl7dmFyIGU9aS5mKHUodCkpLHI9YS5mO3JldHVybiByP2MoZSxyKHQpKTplfX0sNDYxOTg6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApO3QuZXhwb3J0cz1ufSw5MTkzMjp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm57ZXJyb3I6ITEsdmFsdWU6dCgpfX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6ITAsdmFsdWU6dH19fX0sMzEyODc6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApLG89cigxMTU1MSksaT1yKDY2NjkwKSxhPXIoNzU5MDMpLHU9cig4ODkyNyksYz1yKDkwNTc2KSxzPXIoNTAzMDkpLGY9cig3MzcpLGw9cig3NDA0MCkscD1yKDc3NjU5KSx2PW8mJm8ucHJvdG90eXBlLHk9YyhcInNwZWNpZXNcIiksaD0hMSxkPWkobi5Qcm9taXNlUmVqZWN0aW9uRXZlbnQpLGI9YShcIlByb21pc2VcIiwoZnVuY3Rpb24oKXt2YXIgdD11KG8pLGU9dCE9PVN0cmluZyhvKTtpZighZSYmNjY9PT1wKXJldHVybiEwO2lmKGwmJighdi5jYXRjaHx8IXYuZmluYWxseSkpcmV0dXJuITA7aWYoIXB8fHA8NTF8fCEvbmF0aXZlIGNvZGUvLnRlc3QodCkpe3ZhciByPW5ldyBvKChmdW5jdGlvbih0KXt0KDEpfSkpLG49ZnVuY3Rpb24odCl7dCgoZnVuY3Rpb24oKXt9KSwoZnVuY3Rpb24oKXt9KSl9O2lmKChyLmNvbnN0cnVjdG9yPXt9KVt5XT1uLCEoaD1yLnRoZW4oKGZ1bmN0aW9uKCl7fSkpaW5zdGFuY2VvZiBuKSlyZXR1cm4hMH1yZXR1cm4hZSYmKHN8fGYpJiYhZH0pKTt0LmV4cG9ydHM9e0NPTlNUUlVDVE9SOmIsUkVKRUNUSU9OX0VWRU5UOmQsU1VCQ0xBU1NJTkc6aH19LDExNTUxOih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKTt0LmV4cG9ydHM9bi5Qcm9taXNlfSw2MzM1MzoodCxlLHIpPT57dmFyIG49cig0MTQzMiksbz1yKDY2NDUpLGk9cigxNTk1OCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYobih0KSxvKGUpJiZlLmNvbnN0cnVjdG9yPT09dClyZXR1cm4gZTt2YXIgcj1pLmYodCk7cmV0dXJuKDAsci5yZXNvbHZlKShlKSxyLnByb21pc2V9fSwyMzk0Oih0LGUscik9Pnt2YXIgbj1yKDExNTUxKSxvPXIoMTg3NTMpLGk9cigzMTI4NykuQ09OU1RSVUNUT1I7dC5leHBvcnRzPWl8fCFvKChmdW5jdGlvbih0KXtuLmFsbCh0KS50aGVuKHZvaWQgMCwoZnVuY3Rpb24oKXt9KSl9KSl9LDg1ODc3Oih0LGUscik9Pnt2YXIgbj1yKDMwMTQ4KS5mO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ciBpbiB0fHxuKHQscix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlW3JdfSxzZXQ6ZnVuY3Rpb24odCl7ZVtyXT10fX0pfX0sOTA1MzA6dD0+e3ZhciBlPWZ1bmN0aW9uKCl7dGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGx9O2UucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dmFyIGU9e2l0ZW06dCxuZXh0Om51bGx9LHI9dGhpcy50YWlsO3I/ci5uZXh0PWU6dGhpcy5oZWFkPWUsdGhpcy50YWlsPWV9LGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaGVhZDtpZih0KXJldHVybiBudWxsPT09KHRoaXMuaGVhZD10Lm5leHQpJiYodGhpcy50YWlsPW51bGwpLHQuaXRlbX19LHQuZXhwb3J0cz1lfSwzMjE0MDoodCxlLHIpPT57ZnVuY3Rpb24gbih0KXtyZXR1cm4gbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxuKHQpfXIoOTU1MTYpLHIoNjY2MjcpO3ZhciBvPXIoMjUzNCksaT1yKDQ0NzYzKSxhPXIoMTU4NzIpLHU9byhcIk1hcFwiKSxjPW8oXCJXZWFrTWFwXCIpLHM9aShbXS5wdXNoKSxmPWEoXCJtZXRhZGF0YVwiKSxsPWYuc3RvcmV8fChmLnN0b3JlPW5ldyBjKSxwPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1sLmdldCh0KTtpZighbil7aWYoIXIpcmV0dXJuO2wuc2V0KHQsbj1uZXcgdSl9dmFyIG89bi5nZXQoZSk7aWYoIW8pe2lmKCFyKXJldHVybjtuLnNldChlLG89bmV3IHUpfXJldHVybiBvfTt0LmV4cG9ydHM9e3N0b3JlOmwsZ2V0TWFwOnAsaGFzOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1wKGUsciwhMSk7cmV0dXJuIHZvaWQgMCE9PW4mJm4uaGFzKHQpfSxnZXQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXAoZSxyLCExKTtyZXR1cm4gdm9pZCAwPT09bj92b2lkIDA6bi5nZXQodCl9LHNldDpmdW5jdGlvbih0LGUscixuKXtwKHIsbiwhMCkuc2V0KHQsZSl9LGtleXM6ZnVuY3Rpb24odCxlKXt2YXIgcj1wKHQsZSwhMSksbj1bXTtyZXR1cm4gciYmci5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3MobixlKX0pKSxufSx0b0tleTpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dHx8XCJzeW1ib2xcIj09bih0KT90OlN0cmluZyh0KX19fSw5NTY2NzoodCxlLHIpPT57dmFyIG49cigyMTYzNCksbz1yKDQxNDMyKSxpPXIoNjY2OTApLGE9cig1NzY3MSksdT1yKDEzMTY0KSxjPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmV4ZWM7aWYoaShyKSl7dmFyIHM9bihyLHQsZSk7cmV0dXJuIG51bGwhPT1zJiZvKHMpLHN9aWYoXCJSZWdFeHBcIj09PWEodCkpcmV0dXJuIG4odSx0LGUpO3Rocm93IGMoXCJSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRpYmxlIHJlY2VpdmVyXCIpfX0sMTMxNjQ6KHQsZSxyKT0+e3ZhciBuLG8saT1yKDIxNjM0KSxhPXIoNDQ3NjMpLHU9cig4NDYwMCksYz1yKDE4NTQyKSxzPXIoNTAyNTQpLGY9cigxNTg3MiksbD1yKDI4OTkpLHA9cig5ODM2KS5nZXQsdj1yKDM5MzEwKSx5PXIoNTYxMjMpLGg9ZihcIm5hdGl2ZS1zdHJpbmctcmVwbGFjZVwiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksZD1SZWdFeHAucHJvdG90eXBlLmV4ZWMsYj1kLGc9YShcIlwiLmNoYXJBdCksbT1hKFwiXCIuaW5kZXhPZiksdz1hKFwiXCIucmVwbGFjZSksUz1hKFwiXCIuc2xpY2UpLE89KG89L2IqL2csaShkLG49L2EvLFwiYVwiKSxpKGQsbyxcImFcIiksMCE9PW4ubGFzdEluZGV4fHwwIT09by5sYXN0SW5kZXgpLEU9cy5CUk9LRU5fQ0FSRVQseD12b2lkIDAhPT0vKCk/Py8uZXhlYyhcIlwiKVsxXTsoT3x8eHx8RXx8dnx8eSkmJihiPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGEscyxmLHY9dGhpcyx5PXAodiksaj11KHQpLFA9eS5yYXc7aWYoUClyZXR1cm4gUC5sYXN0SW5kZXg9di5sYXN0SW5kZXgsZT1pKGIsUCxqKSx2Lmxhc3RJbmRleD1QLmxhc3RJbmRleCxlO3ZhciBUPXkuZ3JvdXBzLEE9RSYmdi5zdGlja3ksST1pKGMsdiksXz12LnNvdXJjZSxDPTAsaz1qO2lmKEEmJihJPXcoSSxcInlcIixcIlwiKSwtMT09PW0oSSxcImdcIikmJihJKz1cImdcIiksaz1TKGosdi5sYXN0SW5kZXgpLHYubGFzdEluZGV4PjAmJighdi5tdWx0aWxpbmV8fHYubXVsdGlsaW5lJiZcIlxcblwiIT09ZyhqLHYubGFzdEluZGV4LTEpKSYmKF89XCIoPzogXCIrXytcIilcIixrPVwiIFwiK2ssQysrKSxyPW5ldyBSZWdFeHAoXCJeKD86XCIrXytcIilcIixJKSkseCYmKHI9bmV3IFJlZ0V4cChcIl5cIitfK1wiJCg/IVxcXFxzKVwiLEkpKSxPJiYobj12Lmxhc3RJbmRleCksbz1pKGQsQT9yOnYsayksQT9vPyhvLmlucHV0PVMoby5pbnB1dCxDKSxvWzBdPVMob1swXSxDKSxvLmluZGV4PXYubGFzdEluZGV4LHYubGFzdEluZGV4Kz1vWzBdLmxlbmd0aCk6di5sYXN0SW5kZXg9MDpPJiZvJiYodi5sYXN0SW5kZXg9di5nbG9iYWw/by5pbmRleCtvWzBdLmxlbmd0aDpuKSx4JiZvJiZvLmxlbmd0aD4xJiZpKGgsb1swXSxyLChmdW5jdGlvbigpe2ZvcihhPTE7YTxhcmd1bWVudHMubGVuZ3RoLTI7YSsrKXZvaWQgMD09PWFyZ3VtZW50c1thXSYmKG9bYV09dm9pZCAwKX0pKSxvJiZUKWZvcihvLmdyb3Vwcz1zPWwobnVsbCksYT0wO2E8VC5sZW5ndGg7YSsrKXNbKGY9VFthXSlbMF1dPW9bZlsxXV07cmV0dXJuIG99KSx0LmV4cG9ydHM9Yn0sMTg1NDI6KHQsZSxyKT0+e3ZhciBuPXIoNDE0MzIpO3QuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PW4odGhpcyksZT1cIlwiO3JldHVybiB0Lmhhc0luZGljZXMmJihlKz1cImRcIiksdC5nbG9iYWwmJihlKz1cImdcIiksdC5pZ25vcmVDYXNlJiYoZSs9XCJpXCIpLHQubXVsdGlsaW5lJiYoZSs9XCJtXCIpLHQuZG90QWxsJiYoZSs9XCJzXCIpLHQudW5pY29kZSYmKGUrPVwidVwiKSx0LnVuaWNvZGVTZXRzJiYoZSs9XCJ2XCIpLHQuc3RpY2t5JiYoZSs9XCJ5XCIpLGV9fSw3Nzc3NToodCxlLHIpPT57dmFyIG49cigyMTYzNCksbz1yKDM2MDM2KSxpPXIoNTk3OTIpLGE9cigxODU0MiksdT1SZWdFeHAucHJvdG90eXBlO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmZsYWdzO3JldHVybiB2b2lkIDAhPT1lfHxcImZsYWdzXCJpbiB1fHxvKHQsXCJmbGFnc1wiKXx8IWkodSx0KT9lOm4oYSx0KX19LDUwMjU0Oih0LGUscik9Pnt2YXIgbj1yKDM1NzY0KSxvPXIoMTc2OTApLlJlZ0V4cCxpPW4oKGZ1bmN0aW9uKCl7dmFyIHQ9byhcImFcIixcInlcIik7cmV0dXJuIHQubGFzdEluZGV4PTIsbnVsbCE9PXQuZXhlYyhcImFiY2RcIil9KSksYT1pfHxuKChmdW5jdGlvbigpe3JldHVybiFvKFwiYVwiLFwieVwiKS5zdGlja3l9KSksdT1pfHxuKChmdW5jdGlvbigpe3ZhciB0PW8oXCJeclwiLFwiZ3lcIik7cmV0dXJuIHQubGFzdEluZGV4PTIsbnVsbCE9PXQuZXhlYyhcInN0clwiKX0pKTt0LmV4cG9ydHM9e0JST0tFTl9DQVJFVDp1LE1JU1NFRF9TVElDS1k6YSxVTlNVUFBPUlRFRF9ZOml9fSwzOTMxMDoodCxlLHIpPT57dmFyIG49cigzNTc2NCksbz1yKDE3NjkwKS5SZWdFeHA7dC5leHBvcnRzPW4oKGZ1bmN0aW9uKCl7dmFyIHQ9byhcIi5cIixcInNcIik7cmV0dXJuISh0LmRvdEFsbCYmdC5leGVjKFwiXFxuXCIpJiZcInNcIj09PXQuZmxhZ3MpfSkpfSw1NjEyMzoodCxlLHIpPT57dmFyIG49cigzNTc2NCksbz1yKDE3NjkwKS5SZWdFeHA7dC5leHBvcnRzPW4oKGZ1bmN0aW9uKCl7dmFyIHQ9byhcIig/PGE+YilcIixcImdcIik7cmV0dXJuXCJiXCIhPT10LmV4ZWMoXCJiXCIpLmdyb3Vwcy5hfHxcImJjXCIhPT1cImJcIi5yZXBsYWNlKHQsXCIkPGE+Y1wiKX0pKX0sMTUyNzoodCxlLHIpPT57dmFyIG49cigyNDEwNCksbz1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG4odCkpdGhyb3cgbyhcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiK3QpO3JldHVybiB0fX0sMTkxNTA6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8dCE9dCYmZSE9ZX19LDYyMzc5OnQ9Pnt0LmV4cG9ydHM9T2JqZWN0LmlzfHxmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZT8wIT09dHx8MS90PT0xL2U6dCE9dCYmZSE9ZX19LDkxMTc6KHQsZSxyKT0+e3ZhciBuLG89cigxNzY5MCksaT1yKDQzODcyKSxhPXIoNjY2OTApLHU9cig2MzM1NiksYz1yKDM1MTk1KSxzPXIoODM2NDMpLGY9cig3ODgzKSxsPW8uRnVuY3Rpb24scD0vTVNJRSAuXFwuLy50ZXN0KGMpfHx1JiYoKG49by5CdW4udmVyc2lvbi5zcGxpdChcIi5cIikpLmxlbmd0aDwzfHxcIjBcIj09PW5bMF0mJihuWzFdPDN8fFwiM1wiPT09blsxXSYmXCIwXCI9PT1uWzJdKSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZT8yOjE7cmV0dXJuIHA/ZnVuY3Rpb24obixvKXt2YXIgdT1mKGFyZ3VtZW50cy5sZW5ndGgsMSk+cixjPWEobik/bjpsKG4pLHA9dT9zKGFyZ3VtZW50cyxyKTpbXSx2PXU/ZnVuY3Rpb24oKXtpKGMsdGhpcyxwKX06YztyZXR1cm4gZT90KHYsbyk6dCh2KX06dH19LDk4Mzc3Oih0LGUscik9Pnt2YXIgbj1yKDI1Mjk3KSxvPXIoODI1MjIpLGk9bi5TZXQsYT1uLmFkZDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGk7cmV0dXJuIG8odCwoZnVuY3Rpb24odCl7YShlLHQpfSkpLGV9fSw5MDgyNToodCxlLHIpPT57dmFyIG49cigxNTU0Myksbz1yKDI1Mjk3KSxpPXIoOTgzNzcpLGE9cigyNTk1OSksdT1yKDY5NDI4KSxjPXIoODI1MjIpLHM9cig0NjUxOCksZj1vLmhhcyxsPW8ucmVtb3ZlO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uKHRoaXMpLHI9dSh0KSxvPWkoZSk7cmV0dXJuIGEoZSk8PXIuc2l6ZT9jKGUsKGZ1bmN0aW9uKHQpe3IuaW5jbHVkZXModCkmJmwobyx0KX0pKTpzKHIuZ2V0SXRlcmF0b3IoKSwoZnVuY3Rpb24odCl7ZihlLHQpJiZsKG8sdCl9KSksb319LDI1Mjk3Oih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPVNldC5wcm90b3R5cGU7dC5leHBvcnRzPXtTZXQsYWRkOm4oby5hZGQpLGhhczpuKG8uaGFzKSxyZW1vdmU6bihvLmRlbGV0ZSkscHJvdG86b319LDQ1MzIzOih0LGUscik9Pnt2YXIgbj1yKDE1NTQzKSxvPXIoMjUyOTcpLGk9cigyNTk1OSksYT1yKDY5NDI4KSx1PXIoODI1MjIpLGM9cig0NjUxOCkscz1vLlNldCxmPW8uYWRkLGw9by5oYXM7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4odGhpcykscj1hKHQpLG89bmV3IHM7cmV0dXJuIGkoZSk+ci5zaXplP2Moci5nZXRJdGVyYXRvcigpLChmdW5jdGlvbih0KXtsKGUsdCkmJmYobyx0KX0pKTp1KGUsKGZ1bmN0aW9uKHQpe3IuaW5jbHVkZXModCkmJmYobyx0KX0pKSxvfX0sNTYxNzI6KHQsZSxyKT0+e3ZhciBuPXIoMTU1NDMpLG89cigyNTI5NykuaGFzLGk9cigyNTk1OSksYT1yKDY5NDI4KSx1PXIoODI1MjIpLGM9cig0NjUxOCkscz1yKDUxMjY2KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0aGlzKSxyPWEodCk7aWYoaShlKTw9ci5zaXplKXJldHVybiExIT09dShlLChmdW5jdGlvbih0KXtpZihyLmluY2x1ZGVzKHQpKXJldHVybiExfSksITApO3ZhciBmPXIuZ2V0SXRlcmF0b3IoKTtyZXR1cm4hMSE9PWMoZiwoZnVuY3Rpb24odCl7aWYobyhlLHQpKXJldHVybiBzKGYsXCJub3JtYWxcIiwhMSl9KSl9fSw5MTE3OToodCxlLHIpPT57dmFyIG49cigxNTU0Myksbz1yKDI1OTU5KSxpPXIoODI1MjIpLGE9cig2OTQyOCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4odGhpcykscj1hKHQpO3JldHVybiEobyhlKT5yLnNpemUpJiYhMSE9PWkoZSwoZnVuY3Rpb24odCl7aWYoIXIuaW5jbHVkZXModCkpcmV0dXJuITF9KSwhMCl9fSw3NDc2MjoodCxlLHIpPT57dmFyIG49cigxNTU0Myksbz1yKDI1Mjk3KS5oYXMsaT1yKDI1OTU5KSxhPXIoNjk0MjgpLHU9cig0NjUxOCksYz1yKDUxMjY2KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0aGlzKSxyPWEodCk7aWYoaShlKTxyLnNpemUpcmV0dXJuITE7dmFyIHM9ci5nZXRJdGVyYXRvcigpO3JldHVybiExIT09dShzLChmdW5jdGlvbih0KXtpZighbyhlLHQpKXJldHVybiBjKHMsXCJub3JtYWxcIiwhMSl9KSl9fSw4MjUyMjoodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz1yKDQ2NTE4KSxpPXIoMjUyOTcpLGE9aS5TZXQsdT1pLnByb3RvLGM9bih1LmZvckVhY2gpLHM9bih1LmtleXMpLGY9cyhuZXcgYSkubmV4dDt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiByP28oe2l0ZXJhdG9yOnModCksbmV4dDpmfSxlKTpjKHQsZSl9fSwyNTk1OToodCxlLHIpPT57dmFyIG49cig1MjU5OSksbz1yKDI1Mjk3KTt0LmV4cG9ydHM9bihvLnByb3RvLFwic2l6ZVwiLFwiZ2V0XCIpfHxmdW5jdGlvbih0KXtyZXR1cm4gdC5zaXplfX0sNDY2Nzg6KHQsZSxyKT0+e3ZhciBuPXIoMjUzNCksbz1yKDM0MzMxKSxpPXIoOTA1NzYpLGE9cigxNTAzKSx1PWkoXCJzcGVjaWVzXCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uKHQpO2EmJmUmJiFlW3VdJiZvKGUsdSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfX0sMzAwOTE6KHQsZSxyKT0+e3ZhciBuPXIoMTU1NDMpLG89cigyNTI5NyksaT1yKDk4Mzc3KSxhPXIoNjk0MjgpLHU9cig0NjUxOCksYz1vLmFkZCxzPW8uaGFzLGY9by5yZW1vdmU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4odGhpcykscj1hKHQpLmdldEl0ZXJhdG9yKCksbz1pKGUpO3JldHVybiB1KHIsKGZ1bmN0aW9uKHQpe3MoZSx0KT9mKG8sdCk6YyhvLHQpfSkpLG99fSwzNDc1MjoodCxlLHIpPT57dmFyIG49cigzMDE0OCkuZixvPXIoMzYwMzYpLGk9cig5MDU3NikoXCJ0b1N0cmluZ1RhZ1wiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3QmJiFyJiYodD10LnByb3RvdHlwZSksdCYmIW8odCxpKSYmbih0LGkse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTplfSl9fSw3MzMyNzoodCxlLHIpPT57dmFyIG49cigxNTU0Myksbz1yKDI1Mjk3KS5hZGQsaT1yKDk4Mzc3KSxhPXIoNjk0MjgpLHU9cig0NjUxOCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4odGhpcykscj1hKHQpLmdldEl0ZXJhdG9yKCksYz1pKGUpO3JldHVybiB1KHIsKGZ1bmN0aW9uKHQpe28oYyx0KX0pKSxjfX0sOTU3MDoodCxlLHIpPT57dmFyIG49cigxNTg3Miksbz1yKDI3NzM5KSxpPW4oXCJrZXlzXCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaVt0XXx8KGlbdF09byh0KSl9fSw5NDY5NjoodCxlLHIpPT57dmFyIG49cigxNzY5MCksbz1yKDY1OTY0KSxpPVwiX19jb3JlLWpzX3NoYXJlZF9fXCIsYT1uW2ldfHxvKGkse30pO3QuZXhwb3J0cz1hfSwxNTg3MjoodCxlLHIpPT57dmFyIG49cig3NDA0MCksbz1yKDk0Njk2KTsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG9bdF18fChvW3RdPXZvaWQgMCE9PWU/ZTp7fSl9KShcInZlcnNpb25zXCIsW10pLnB1c2goe3ZlcnNpb246XCIzLjMyLjFcIixtb2RlOm4/XCJwdXJlXCI6XCJnbG9iYWxcIixjb3B5cmlnaHQ6XCJcdTAwYTkgMjAxNC0yMDIzIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpXCIsbGljZW5zZTpcImh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMzIuMS9MSUNFTlNFXCIsc291cmNlOlwiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanNcIn0pfSw1ODA0MjoodCxlLHIpPT57dmFyIG49cig0MTQzMiksbz1yKDUxNSksaT1yKDI0MTA0KSxhPXIoOTA1NzYpKFwic3BlY2llc1wiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcix1PW4odCkuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PXV8fGkocj1uKHUpW2FdKT9lOm8ocil9fSw0MDgxMjoodCxlLHIpPT57dmFyIG49cigzNTc2NCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKChmdW5jdGlvbigpe3ZhciBlPVwiXCJbdF0oJ1wiJyk7cmV0dXJuIGUhPT1lLnRvTG93ZXJDYXNlKCl8fGUuc3BsaXQoJ1wiJykubGVuZ3RoPjN9KSl9fSwxNzI3MDoodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz1yKDk3MDQyKSxpPXIoODQ2MDApLGE9cigxNTI3KSx1PW4oXCJcIi5jaGFyQXQpLGM9bihcIlwiLmNoYXJDb2RlQXQpLHM9bihcIlwiLnNsaWNlKSxmPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBuLGYsbD1pKGEoZSkpLHA9byhyKSx2PWwubGVuZ3RoO3JldHVybiBwPDB8fHA+PXY/dD9cIlwiOnZvaWQgMDoobj1jKGwscCkpPDU1Mjk2fHxuPjU2MzE5fHxwKzE9PT12fHwoZj1jKGwscCsxKSk8NTYzMjB8fGY+NTczNDM/dD91KGwscCk6bjp0P3MobCxwLHArMik6Zi01NjMyMCsobi01NTI5Njw8MTApKzY1NTM2fX07dC5leHBvcnRzPXtjb2RlQXQ6ZighMSksY2hhckF0OmYoITApfX0sMjIzNDg6KHQsZSxyKT0+e3ZhciBuPXIoMzUxOTUpO3QuZXhwb3J0cz0vVmVyc2lvblxcLzEwKD86XFwuXFxkKyl7MSwyfSg/OiBbXFx3Li9dKyk/KD86IE1vYmlsZVxcL1xcdyspPyBTYWZhcmlcXC8vLnRlc3Qobil9LDU2ODUyOih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPXIoNDgwNzMpLGk9cig4NDYwMCksYT1yKDM0NDU4KSx1PXIoMTUyNyksYz1uKGEpLHM9bihcIlwiLnNsaWNlKSxmPU1hdGguY2VpbCxsPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7dmFyIGEsbCxwPWkodShlKSksdj1vKHIpLHk9cC5sZW5ndGgsaD12b2lkIDA9PT1uP1wiIFwiOmkobik7cmV0dXJuIHY8PXl8fFwiXCI9PT1oP3A6KChsPWMoaCxmKChhPXYteSkvaC5sZW5ndGgpKSkubGVuZ3RoPmEmJihsPXMobCwwLGEpKSx0P3ArbDpsK3ApfX07dC5leHBvcnRzPXtzdGFydDpsKCExKSxlbmQ6bCghMCl9fSwyODAyODoodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz0yMTQ3NDgzNjQ3LGk9L1teXFwwLVxcdTAwN0VdLyxhPS9bLlxcdTMwMDJcXHVGRjBFXFx1RkY2MV0vZyx1PVwiT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3NcIixjPVJhbmdlRXJyb3Iscz1uKGEuZXhlYyksZj1NYXRoLmZsb29yLGw9U3RyaW5nLmZyb21DaGFyQ29kZSxwPW4oXCJcIi5jaGFyQ29kZUF0KSx2PW4oW10uam9pbikseT1uKFtdLnB1c2gpLGg9bihcIlwiLnJlcGxhY2UpLGQ9bihcIlwiLnNwbGl0KSxiPW4oXCJcIi50b0xvd2VyQ2FzZSksZz1mdW5jdGlvbih0KXtyZXR1cm4gdCsyMis3NSoodDwyNil9LG09ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTA7Zm9yKHQ9cj9mKHQvNzAwKTp0Pj4xLHQrPWYodC9lKTt0PjQ1NTspdD1mKHQvMzUpLG4rPTM2O3JldHVybiBmKG4rMzYqdC8odCszOCkpfSx3PWZ1bmN0aW9uKHQpe3ZhciBlPVtdO3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9MCxuPXQubGVuZ3RoO3I8bjspe3ZhciBvPXAodCxyKyspO2lmKG8+PTU1Mjk2JiZvPD01NjMxOSYmcjxuKXt2YXIgaT1wKHQscisrKTs1NjMyMD09KDY0NTEyJmkpP3koZSwoKDEwMjMmbyk8PDEwKSsoMTAyMyZpKSs2NTUzNik6KHkoZSxvKSxyLS0pfWVsc2UgeShlLG8pfXJldHVybiBlfSh0KTt2YXIgcixuLGk9dC5sZW5ndGgsYT0xMjgscz0wLGg9NzI7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKykobj10W3JdKTwxMjgmJnkoZSxsKG4pKTt2YXIgZD1lLmxlbmd0aCxiPWQ7Zm9yKGQmJnkoZSxcIi1cIik7YjxpOyl7dmFyIHc9bztmb3Iocj0wO3I8dC5sZW5ndGg7cisrKShuPXRbcl0pPj1hJiZuPHcmJih3PW4pO3ZhciBTPWIrMTtpZih3LWE+Zigoby1zKS9TKSl0aHJvdyBjKHUpO2ZvcihzKz0ody1hKSpTLGE9dyxyPTA7cjx0Lmxlbmd0aDtyKyspe2lmKChuPXRbcl0pPGEmJisrcz5vKXRocm93IGModSk7aWYobj09PWEpe2Zvcih2YXIgTz1zLEU9MzY7Oyl7dmFyIHg9RTw9aD8xOkU+PWgrMjY/MjY6RS1oO2lmKE88eClicmVhazt2YXIgaj1PLXgsUD0zNi14O3koZSxsKGcoeCtqJVApKSksTz1mKGovUCksRSs9MzZ9eShlLGwoZyhPKSkpLGg9bShzLFMsYj09PWQpLHM9MCxiKyt9fXMrKyxhKyt9cmV0dXJuIHYoZSxcIlwiKX07dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj1bXSxvPWQoaChiKHQpLGEsXCIuXCIpLFwiLlwiKTtmb3IoZT0wO2U8by5sZW5ndGg7ZSsrKXI9b1tlXSx5KG4scyhpLHIpP1wieG4tLVwiK3cocik6cik7cmV0dXJuIHYobixcIi5cIil9fSwzNDQ1ODoodCxlLHIpPT57dmFyIG49cig5NzA0Miksbz1yKDg0NjAwKSxpPXIoMTUyNyksYT1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1vKGkodGhpcykpLHI9XCJcIix1PW4odCk7aWYodTwwfHx1PT09MS8wKXRocm93IGEoXCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnNcIik7Zm9yKDt1PjA7KHU+Pj49MSkmJihlKz1lKSkxJnUmJihyKz1lKTtyZXR1cm4gcn19LDM3MTUzOih0LGUscik9Pnt2YXIgbj1yKDY3NjE3KS5lbmQsbz1yKDQwNTMxKTt0LmV4cG9ydHM9byhcInRyaW1FbmRcIik/ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzKX06XCJcIi50cmltRW5kfSw0MDUzMToodCxlLHIpPT57dmFyIG49cig5OTEyOSkuUFJPUEVSLG89cigzNTc2NCksaT1yKDUwMDE5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG8oKGZ1bmN0aW9uKCl7cmV0dXJuISFpW3RdKCl8fFwiXHUyMDBiXHUwMDg1XHUxODBlXCIhPT1cIlx1MjAwYlx1MDA4NVx1MTgwZVwiW3RdKCl8fG4mJmlbdF0ubmFtZSE9PXR9KSl9fSw1NDk3NjoodCxlLHIpPT57dmFyIG49cig2NzYxNykuc3RhcnQsbz1yKDQwNTMxKTt0LmV4cG9ydHM9byhcInRyaW1TdGFydFwiKT9mdW5jdGlvbigpe3JldHVybiBuKHRoaXMpfTpcIlwiLnRyaW1TdGFydH0sNjc2MTc6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpLG89cigxNTI3KSxpPXIoODQ2MDApLGE9cig1MDAxOSksdT1uKFwiXCIucmVwbGFjZSksYz1SZWdFeHAoXCJeW1wiK2ErXCJdK1wiKSxzPVJlZ0V4cChcIihefFteXCIrYStcIl0pW1wiK2ErXCJdKyRcIiksZj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9aShvKGUpKTtyZXR1cm4gMSZ0JiYocj11KHIsYyxcIlwiKSksMiZ0JiYocj11KHIscyxcIiQxXCIpKSxyfX07dC5leHBvcnRzPXtzdGFydDpmKDEpLGVuZDpmKDIpLHRyaW06ZigzKX19LDg1NDcwOih0LGUscik9Pnt2YXIgbj1yKDc3NjU5KSxvPXIoMzU3NjQpLGk9cigxNzY5MCkuU3RyaW5nO3QuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFvKChmdW5jdGlvbigpe3ZhciB0PVN5bWJvbChcInN5bWJvbCBkZXRlY3Rpb25cIik7cmV0dXJuIWkodCl8fCEoT2JqZWN0KHQpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJm4mJm48NDF9KSl9LDIwMTk6KHQsZSxyKT0+e3ZhciBuPXIoMjE2MzQpLG89cigyNTM0KSxpPXIoOTA1NzYpLGE9cigyOTU2Nyk7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9byhcIlN5bWJvbFwiKSxlPXQmJnQucHJvdG90eXBlLHI9ZSYmZS52YWx1ZU9mLHU9aShcInRvUHJpbWl0aXZlXCIpO2UmJiFlW3VdJiZhKGUsdSwoZnVuY3Rpb24odCl7cmV0dXJuIG4ocix0aGlzKX0pLHthcml0eToxfSl9fSw3MjMzOToodCxlLHIpPT57dmFyIG49cig4NTQ3MCk7dC5leHBvcnRzPW4mJiEhU3ltYm9sLmZvciYmISFTeW1ib2wua2V5Rm9yfSwzNjM2MDoodCxlLHIpPT57dmFyIG4sbyxpLGEsdT1yKDE3NjkwKSxjPXIoNDM4NzIpLHM9cig1NjExMSksZj1yKDY2NjkwKSxsPXIoMzYwMzYpLHA9cigzNTc2NCksdj1yKDQxNTIpLHk9cig4MzY0MyksaD1yKDI2NTg0KSxkPXIoNzg4MyksYj1yKDkzMDkyKSxnPXIoODUxNDkpLG09dS5zZXRJbW1lZGlhdGUsdz11LmNsZWFySW1tZWRpYXRlLFM9dS5wcm9jZXNzLE89dS5EaXNwYXRjaCxFPXUuRnVuY3Rpb24seD11Lk1lc3NhZ2VDaGFubmVsLGo9dS5TdHJpbmcsUD0wLFQ9e30sQT1cIm9ucmVhZHlzdGF0ZWNoYW5nZVwiO3AoKGZ1bmN0aW9uKCl7bj11LmxvY2F0aW9ufSkpO3ZhciBJPWZ1bmN0aW9uKHQpe2lmKGwoVCx0KSl7dmFyIGU9VFt0XTtkZWxldGUgVFt0XSxlKCl9fSxfPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe0kodCl9fSxDPWZ1bmN0aW9uKHQpe0kodC5kYXRhKX0saz1mdW5jdGlvbih0KXt1LnBvc3RNZXNzYWdlKGoodCksbi5wcm90b2NvbCtcIi8vXCIrbi5ob3N0KX07bSYmd3x8KG09ZnVuY3Rpb24odCl7ZChhcmd1bWVudHMubGVuZ3RoLDEpO3ZhciBlPWYodCk/dDpFKHQpLHI9eShhcmd1bWVudHMsMSk7cmV0dXJuIFRbKytQXT1mdW5jdGlvbigpe2MoZSx2b2lkIDAscil9LG8oUCksUH0sdz1mdW5jdGlvbih0KXtkZWxldGUgVFt0XX0sZz9vPWZ1bmN0aW9uKHQpe1MubmV4dFRpY2soXyh0KSl9Ok8mJk8ubm93P289ZnVuY3Rpb24odCl7Ty5ub3coXyh0KSl9OngmJiFiPyhhPShpPW5ldyB4KS5wb3J0MixpLnBvcnQxLm9ubWVzc2FnZT1DLG89cyhhLnBvc3RNZXNzYWdlLGEpKTp1LmFkZEV2ZW50TGlzdGVuZXImJmYodS5wb3N0TWVzc2FnZSkmJiF1LmltcG9ydFNjcmlwdHMmJm4mJlwiZmlsZTpcIiE9PW4ucHJvdG9jb2wmJiFwKGspPyhvPWssdS5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLEMsITEpKTpvPUEgaW4gaChcInNjcmlwdFwiKT9mdW5jdGlvbih0KXt2LmFwcGVuZENoaWxkKGgoXCJzY3JpcHRcIikpW0FdPWZ1bmN0aW9uKCl7di5yZW1vdmVDaGlsZCh0aGlzKSxJKHQpfX06ZnVuY3Rpb24odCl7c2V0VGltZW91dChfKHQpLDApfSksdC5leHBvcnRzPXtzZXQ6bSxjbGVhcjp3fX0sOTU2Mzk6KHQsZSxyKT0+e3ZhciBuPXIoNDQ3NjMpO3QuZXhwb3J0cz1uKDEuLnZhbHVlT2YpfSw4ODQyNToodCxlLHIpPT57dmFyIG49cig5NzA0Miksbz1NYXRoLm1heCxpPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW4odCk7cmV0dXJuIHI8MD9vKHIrZSwwKTppKHIsZSl9fSw3Mzg3NToodCxlLHIpPT57dmFyIG49cigyODEzMiksbz1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4odCxcIm51bWJlclwiKTtpZihcIm51bWJlclwiPT10eXBlb2YgZSl0aHJvdyBvKFwiQ2FuJ3QgY29udmVydCBudW1iZXIgdG8gYmlnaW50XCIpO3JldHVybiBCaWdJbnQoZSl9fSwxODQ4MToodCxlLHIpPT57dmFyIG49cig5NzA0Miksbz1yKDQ4MDczKSxpPVJhbmdlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpcmV0dXJuIDA7dmFyIGU9bih0KSxyPW8oZSk7aWYoZSE9PXIpdGhyb3cgaShcIldyb25nIGxlbmd0aCBvciBpbmRleFwiKTtyZXR1cm4gcn19LDYyOTk4Oih0LGUscik9Pnt2YXIgbj1yKDI4NTg2KSxvPXIoMTUyNyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKG8odCkpfX0sOTcwNDI6KHQsZSxyKT0+e3ZhciBuPXIoNzQyNTYpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0rdDtyZXR1cm4gZSE9ZXx8MD09PWU/MDpuKGUpfX0sNDgwNzM6KHQsZSxyKT0+e3ZhciBuPXIoOTcwNDIpLG89TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0PjA/byhuKHQpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSwyMzQ2Oih0LGUscik9Pnt2YXIgbj1yKDE1MjcpLG89T2JqZWN0O3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbyhuKHQpKX19LDQ1OTA6KHQsZSxyKT0+e3ZhciBuPXIoMjUxMjEpLG89UmFuZ2VFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHQpO2lmKHIlZSl0aHJvdyBvKFwiV3Jvbmcgb2Zmc2V0XCIpO3JldHVybiByfX0sMjUxMjE6KHQsZSxyKT0+e3ZhciBuPXIoOTcwNDIpLG89UmFuZ2VFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0KTtpZihlPDApdGhyb3cgbyhcIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMFwiKTtyZXR1cm4gZX19LDI4MTMyOih0LGUscik9Pnt2YXIgbj1yKDIxNjM0KSxvPXIoNjY0NSksaT1yKDE3Nzk0KSxhPXIoODIwNjMpLHU9cig0OTU2NSksYz1yKDkwNTc2KSxzPVR5cGVFcnJvcixmPWMoXCJ0b1ByaW1pdGl2ZVwiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighbyh0KXx8aSh0KSlyZXR1cm4gdDt2YXIgcixjPWEodCxmKTtpZihjKXtpZih2b2lkIDA9PT1lJiYoZT1cImRlZmF1bHRcIikscj1uKGMsdCxlKSwhbyhyKXx8aShyKSlyZXR1cm4gcjt0aHJvdyBzKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpfXJldHVybiB2b2lkIDA9PT1lJiYoZT1cIm51bWJlclwiKSx1KHQsZSl9fSwzNzM0MjoodCxlLHIpPT57dmFyIG49cigyODEzMiksbz1yKDE3Nzk0KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0LFwic3RyaW5nXCIpO3JldHVybiBvKGUpP2U6ZStcIlwifX0sNDQ5MTM6KHQsZSxyKT0+e3ZhciBuPXIoMjUzNCksbz1yKDY2NjkwKSxpPXIoMjA0MCksYT1yKDY2NDUpLHU9bihcIlNldFwiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBhKHQpJiZcIm51bWJlclwiPT10eXBlb2YgdC5zaXplJiZvKHQuaGFzKSYmbyh0LmtleXMpfSh0KT90OmkodCk/bmV3IHUodCk6dH19LDM0ODIzOih0LGUscik9Pnt2YXIgbj17fTtuW3IoOTA1NzYpKFwidG9TdHJpbmdUYWdcIildPVwielwiLHQuZXhwb3J0cz1cIltvYmplY3Qgel1cIj09PVN0cmluZyhuKX0sODQ2MDA6KHQsZSxyKT0+e3ZhciBuPXIoNjA3NzIpLG89U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihcIlN5bWJvbFwiPT09bih0KSl0aHJvdyBUeXBlRXJyb3IoXCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZ1wiKTtyZXR1cm4gbyh0KX19LDQ0ODc4OnQ9Pnt2YXIgZT1NYXRoLnJvdW5kO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgcj1lKHQpO3JldHVybiByPDA/MDpyPjI1NT8yNTU6MjU1JnJ9fSw0MjI0ODp0PT57dmFyIGU9U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGUodCl9Y2F0Y2godCl7cmV0dXJuXCJPYmplY3RcIn19fSw5MTU0ODoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMTc2OTApLGk9cigyMTYzNCksYT1yKDE1MDMpLHU9cig5NjI0MiksYz1yKDc1ODQxKSxzPXIoNjAyNDcpLGY9cig1MTcxNiksbD1yKDk4OTEzKSxwPXIoNTE3NDYpLHY9cigzOTUzOCkseT1yKDQ4MDczKSxoPXIoMTg0ODEpLGQ9cig0NTkwKSxiPXIoNDQ4NzgpLGc9cigzNzM0MiksbT1yKDM2MDM2KSx3PXIoNjA3NzIpLFM9cig2NjQ1KSxPPXIoMTc3OTQpLEU9cigyODk5KSx4PXIoNTk3OTIpLGo9cig5NDI4OCksUD1yKDcwNDMpLmYsVD1yKDI1ODE0KSxBPXIoNTE2MzApLmZvckVhY2gsST1yKDQ2Njc4KSxfPXIoMzQzMzEpLEM9cigzMDE0OCksaz1yKDcxOTUwKSxSPXIoOTgzNiksTD1yKDM1OTQ4KSxNPVIuZ2V0LE49Ui5zZXQsVj1SLmVuZm9yY2UsVT1DLmYsRD1rLmYsRj1vLlJhbmdlRXJyb3IsQj1zLkFycmF5QnVmZmVyLEc9Qi5wcm90b3R5cGUsej1zLkRhdGFWaWV3LEg9Yy5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTLFc9Yy5UWVBFRF9BUlJBWV9UQUcscT1jLlR5cGVkQXJyYXksSz1jLlR5cGVkQXJyYXlQcm90b3R5cGUsJD1jLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsWT1jLmlzVHlwZWRBcnJheSxRPVwiQllURVNfUEVSX0VMRU1FTlRcIixKPVwiV3JvbmcgbGVuZ3RoXCIsWD1mdW5jdGlvbih0LGUpeyQodCk7Zm9yKHZhciByPTAsbj1lLmxlbmd0aCxvPW5ldyB0KG4pO24+cjspb1tyXT1lW3IrK107cmV0dXJuIG99LFo9ZnVuY3Rpb24odCxlKXtfKHQsZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBNKHRoaXMpW2VdfX0pfSx0dD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4geChHLHQpfHxcIkFycmF5QnVmZmVyXCI9PT0oZT13KHQpKXx8XCJTaGFyZWRBcnJheUJ1ZmZlclwiPT09ZX0sZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gWSh0KSYmIU8oZSkmJmUgaW4gdCYmdigrZSkmJmU+PTB9LHJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9ZyhlKSxldCh0LGUpP2woMix0W2VdKTpEKHQsZSl9LG50PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT1nKGUpLCEoZXQodCxlKSYmUyhyKSYmbShyLFwidmFsdWVcIikpfHxtKHIsXCJnZXRcIil8fG0ocixcInNldFwiKXx8ci5jb25maWd1cmFibGV8fG0ocixcIndyaXRhYmxlXCIpJiYhci53cml0YWJsZXx8bShyLFwiZW51bWVyYWJsZVwiKSYmIXIuZW51bWVyYWJsZT9VKHQsZSxyKToodFtlXT1yLnZhbHVlLHQpfTthPyhIfHwoay5mPXJ0LEMuZj1udCxaKEssXCJidWZmZXJcIiksWihLLFwiYnl0ZU9mZnNldFwiKSxaKEssXCJieXRlTGVuZ3RoXCIpLFooSyxcImxlbmd0aFwiKSksbih7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMCxmb3JjZWQ6IUh9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6cnQsZGVmaW5lUHJvcGVydHk6bnR9KSx0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXQubWF0Y2goL1xcZCsvKVswXS84LGM9dCsocj9cIkNsYW1wZWRcIjpcIlwiKStcIkFycmF5XCIscz1cImdldFwiK3QsbD1cInNldFwiK3Qsdj1vW2NdLGc9dixtPWcmJmcucHJvdG90eXBlLHc9e30sTz1mdW5jdGlvbih0LGUpe1UodCxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1NKHQpO3JldHVybiByLnZpZXdbc10oZSphK3IuYnl0ZU9mZnNldCwhMCl9KHRoaXMsZSl9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3ZhciBvPU0odCk7by52aWV3W2xdKGUqYStvLmJ5dGVPZmZzZXQscj9iKG4pOm4sITApfSh0aGlzLGUsdCl9LGVudW1lcmFibGU6ITB9KX07SD91JiYoZz1lKChmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gZih0LG0pLEwoUyhlKT90dChlKT92b2lkIDAhPT1uP25ldyB2KGUsZChyLGEpLG4pOnZvaWQgMCE9PXI/bmV3IHYoZSxkKHIsYSkpOm5ldyB2KGUpOlkoZSk/WChnLGUpOmkoVCxnLGUpOm5ldyB2KGgoZSkpLHQsZyl9KSksaiYmaihnLHEpLEEoUCh2KSwoZnVuY3Rpb24odCl7dCBpbiBnfHxwKGcsdCx2W3RdKX0pKSxnLnByb3RvdHlwZT1tKTooZz1lKChmdW5jdGlvbih0LGUscixuKXtmKHQsbSk7dmFyIG8sdSxjLHM9MCxsPTA7aWYoUyhlKSl7aWYoIXR0KGUpKXJldHVybiBZKGUpP1goZyxlKTppKFQsZyxlKTtvPWUsbD1kKHIsYSk7dmFyIHA9ZS5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PW4pe2lmKHAlYSl0aHJvdyBGKEopO2lmKCh1PXAtbCk8MCl0aHJvdyBGKEopfWVsc2UgaWYoKHU9eShuKSphKStsPnApdGhyb3cgRihKKTtjPXUvYX1lbHNlIGM9aChlKSxvPW5ldyBCKHU9YyphKTtmb3IoTih0LHtidWZmZXI6byxieXRlT2Zmc2V0OmwsYnl0ZUxlbmd0aDp1LGxlbmd0aDpjLHZpZXc6bmV3IHoobyl9KTtzPGM7KU8odCxzKyspfSkpLGomJmooZyxxKSxtPWcucHJvdG90eXBlPUUoSykpLG0uY29uc3RydWN0b3IhPT1nJiZwKG0sXCJjb25zdHJ1Y3RvclwiLGcpLFYobSkuVHlwZWRBcnJheUNvbnN0cnVjdG9yPWcsVyYmcChtLFcsYyk7dmFyIHg9ZyE9PXY7d1tjXT1nLG4oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6eCxzaGFtOiFIfSx3KSxRIGluIGd8fHAoZyxRLGEpLFEgaW4gbXx8cChtLFEsYSksSShjKX0pOnQuZXhwb3J0cz1mdW5jdGlvbigpe319LDk2MjQyOih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKSxvPXIoMzU3NjQpLGk9cigxODc1MyksYT1yKDc1ODQxKS5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTLHU9bi5BcnJheUJ1ZmZlcixjPW4uSW50OEFycmF5O3QuZXhwb3J0cz0hYXx8IW8oKGZ1bmN0aW9uKCl7YygxKX0pKXx8IW8oKGZ1bmN0aW9uKCl7bmV3IGMoLTEpfSkpfHwhaSgoZnVuY3Rpb24odCl7bmV3IGMsbmV3IGMobnVsbCksbmV3IGMoMS41KSxuZXcgYyh0KX0pLCEwKXx8bygoZnVuY3Rpb24oKXtyZXR1cm4gMSE9PW5ldyBjKG5ldyB1KDIpLDEsdm9pZCAwKS5sZW5ndGh9KSl9LDE2NTg2Oih0LGUscik9Pnt2YXIgbj1yKDY0NzgxKSxvPXIoNjU3NSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4obyh0KSxlKX19LDI1ODE0Oih0LGUscik9Pnt2YXIgbj1yKDU2MTExKSxvPXIoMjE2MzQpLGk9cig1MTUpLGE9cigyMzQ2KSx1PXIoNjI1MDMpLGM9cig0OTgyOCkscz1yKDQzNDI0KSxmPXIoNDQ1NTYpLGw9cigxNDQ3MCkscD1yKDc1ODQxKS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLHY9cig3Mzg3NSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIseSxoLGQsYixnLG0sdz1pKHRoaXMpLFM9YSh0KSxPPWFyZ3VtZW50cy5sZW5ndGgsRT1PPjE/YXJndW1lbnRzWzFdOnZvaWQgMCx4PXZvaWQgMCE9PUUsaj1zKFMpO2lmKGomJiFmKGopKWZvcihtPShnPWMoUyxqKSkubmV4dCxTPVtdOyEoYj1vKG0sZykpLmRvbmU7KVMucHVzaChiLnZhbHVlKTtmb3IoeCYmTz4yJiYoRT1uKEUsYXJndW1lbnRzWzJdKSkscj11KFMpLHk9bmV3KHAodykpKHIpLGg9bCh5KSxlPTA7cj5lO2UrKylkPXg/RShTW2VdLGUpOlNbZV0seVtlXT1oP3YoZCk6K2Q7cmV0dXJuIHl9fSw2NTc1Oih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKSxvPXIoNTgwNDIpLGk9bi5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLGE9bi5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKG8odCxhKHQpKSl9fSwyNzczOToodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz0wLGk9TWF0aC5yYW5kb20oKSxhPW4oMS4udG9TdHJpbmcpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm5cIlN5bWJvbChcIisodm9pZCAwPT09dD9cIlwiOnQpK1wiKV9cIithKCsrbytpLDM2KX19LDk3NTAzOih0LGUscik9Pnt2YXIgbj1yKDM1NzY0KSxvPXIoOTA1NzYpLGk9cigxNTAzKSxhPXIoNzQwNDApLHU9byhcIml0ZXJhdG9yXCIpO3QuZXhwb3J0cz0hbigoZnVuY3Rpb24oKXt2YXIgdD1uZXcgVVJMKFwiYj9hPTEmYj0yJmM9M1wiLFwiaHR0cDovL2FcIiksZT10LnNlYXJjaFBhcmFtcyxyPW5ldyBVUkxTZWFyY2hQYXJhbXMoXCJhPTEmYT0yJmI9M1wiKSxuPVwiXCI7cmV0dXJuIHQucGF0aG5hbWU9XCJjJTIwZFwiLGUuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtlLmRlbGV0ZShcImJcIiksbis9cit0fSkpLHIuZGVsZXRlKFwiYVwiLDIpLHIuZGVsZXRlKFwiYlwiLHZvaWQgMCksYSYmKCF0LnRvSlNPTnx8IXIuaGFzKFwiYVwiLDEpfHxyLmhhcyhcImFcIiwyKXx8IXIuaGFzKFwiYVwiLHZvaWQgMCl8fHIuaGFzKFwiYlwiKSl8fCFlLnNpemUmJihhfHwhaSl8fCFlLnNvcnR8fFwiaHR0cDovL2EvYyUyMGQ/YT0xJmM9M1wiIT09dC5ocmVmfHxcIjNcIiE9PWUuZ2V0KFwiY1wiKXx8XCJhPTFcIiE9PVN0cmluZyhuZXcgVVJMU2VhcmNoUGFyYW1zKFwiP2E9MVwiKSl8fCFlW3VdfHxcImFcIiE9PW5ldyBVUkwoXCJodHRwczovL2FAYlwiKS51c2VybmFtZXx8XCJiXCIhPT1uZXcgVVJMU2VhcmNoUGFyYW1zKG5ldyBVUkxTZWFyY2hQYXJhbXMoXCJhPWJcIikpLmdldChcImFcIil8fFwieG4tLWUxYXliY1wiIT09bmV3IFVSTChcImh0dHA6Ly9cdTA0NDJcdTA0MzVcdTA0NDFcdTA0NDJcIikuaG9zdHx8XCIjJUQwJUIxXCIhPT1uZXcgVVJMKFwiaHR0cDovL2EjXHUwNDMxXCIpLmhhc2h8fFwiYTFjM1wiIT09bnx8XCJ4XCIhPT1uZXcgVVJMKFwiaHR0cDovL3hcIix2b2lkIDApLmhvc3R9KSl9LDYwMzM1Oih0LGUscik9PntmdW5jdGlvbiBuKHQpe3JldHVybiBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LG4odCl9dmFyIG89cig4NTQ3MCk7dC5leHBvcnRzPW8mJiFTeW1ib2wuc2hhbSYmXCJzeW1ib2xcIj09bihTeW1ib2wuaXRlcmF0b3IpfSw5NDA3NzoodCxlLHIpPT57dmFyIG49cigxNTAzKSxvPXIoMzU3NjQpO3QuZXhwb3J0cz1uJiZvKChmdW5jdGlvbigpe3JldHVybiA0MiE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSgoZnVuY3Rpb24oKXt9KSxcInByb3RvdHlwZVwiLHt2YWx1ZTo0Mix3cml0YWJsZTohMX0pLnByb3RvdHlwZX0pKX0sNzg4Mzp0PT57dmFyIGU9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe2lmKHQ8cil0aHJvdyBlKFwiTm90IGVub3VnaCBhcmd1bWVudHNcIik7cmV0dXJuIHR9fSw1MDQ3OToodCxlLHIpPT57dmFyIG49cigxNzY5MCksbz1yKDY2NjkwKSxpPW4uV2Vha01hcDt0LmV4cG9ydHM9byhpKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFN0cmluZyhpKSl9LDgwMzU0Oih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPVdlYWtNYXAucHJvdG90eXBlO3QuZXhwb3J0cz17V2Vha01hcCxzZXQ6bihvLnNldCksZ2V0Om4oby5nZXQpLGhhczpuKG8uaGFzKSxyZW1vdmU6bihvLmRlbGV0ZSl9fSw3Mzc1MjoodCxlLHIpPT57dmFyIG49cig0NDc2Myksbz1XZWFrU2V0LnByb3RvdHlwZTt0LmV4cG9ydHM9e1dlYWtTZXQsYWRkOm4oby5hZGQpLGhhczpuKG8uaGFzKSxyZW1vdmU6bihvLmRlbGV0ZSl9fSwzOTgzMDoodCxlLHIpPT57dmFyIG49cig0NjE5OCksbz1yKDM2MDM2KSxpPXIoNzUyNDApLGE9cigzMDE0OCkuZjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bi5TeW1ib2x8fChuLlN5bWJvbD17fSk7byhlLHQpfHxhKGUsdCx7dmFsdWU6aS5mKHQpfSl9fSw3NTI0MDoodCxlLHIpPT57dmFyIG49cig5MDU3Nik7ZS5mPW59LDkwNTc2Oih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKSxvPXIoMTU4NzIpLGk9cigzNjAzNiksYT1yKDI3NzM5KSx1PXIoODU0NzApLGM9cig2MDMzNSkscz1uLlN5bWJvbCxmPW8oXCJ3a3NcIiksbD1jP3MuZm9yfHxzOnMmJnMud2l0aG91dFNldHRlcnx8YTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkoZix0KXx8KGZbdF09dSYmaShzLHQpP3NbdF06bChcIlN5bWJvbC5cIit0KSksZlt0XX19LDUwMDE5OnQ9Pnt0LmV4cG9ydHM9XCJcXHRcXG5cXHZcXGZcXHIgXHUwMGEwXHUxNjgwXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXFx1MjAyOFxcdTIwMjlcXHVmZWZmXCJ9LDk1ODMyOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig1OTc5MiksaT1yKDk2Nzk2KSxhPXIoOTQyODgpLHU9cig4NjUzMSksYz1yKDI4OTkpLHM9cig1MTc0NiksZj1yKDk4OTEzKSxsPXIoODYxNjMpLHA9cig4MDE2NCksdj1yKDg3NjMxKSx5PXIoNTI5MDQpLGg9cig5MDU3NikoXCJ0b1N0cmluZ1RhZ1wiKSxkPUVycm9yLGI9W10ucHVzaCxnPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1vKG0sdGhpcyk7YT9yPWEoZCgpLG4/aSh0aGlzKTptKToocj1uP3RoaXM6YyhtKSxzKHIsaCxcIkVycm9yXCIpKSx2b2lkIDAhPT1lJiZzKHIsXCJtZXNzYWdlXCIseShlKSkscChyLGcsci5zdGFjaywxKSxhcmd1bWVudHMubGVuZ3RoPjImJmwocixhcmd1bWVudHNbMl0pO3ZhciB1PVtdO3JldHVybiB2KHQsYix7dGhhdDp1fSkscyhyLFwiZXJyb3JzXCIsdSkscn07YT9hKGcsZCk6dShnLGQse25hbWU6ITB9KTt2YXIgbT1nLnByb3RvdHlwZT1jKGQucHJvdG90eXBlLHtjb25zdHJ1Y3RvcjpmKDEsZyksbWVzc2FnZTpmKDEsXCJcIiksbmFtZTpmKDEsXCJBZ2dyZWdhdGVFcnJvclwiKX0pO24oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToyfSx7QWdncmVnYXRlRXJyb3I6Z30pfSwyMjk5MDoodCxlLHIpPT57cig5NTgzMil9LDUwNjg0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxNzY5MCksaT1yKDYwMjQ3KSxhPXIoNDY2NzgpLHU9XCJBcnJheUJ1ZmZlclwiLGM9aVt1XTtuKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOm9bdV0hPT1jfSx7QXJyYXlCdWZmZXI6Y30pLGEodSl9LDg0NzI5Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzNTc2NCksaT1yKDk5OTI5KSxhPXIoNjY0NSksdT1yKDIzNDYpLGM9cig2MjUwMykscz1yKDIyOTYwKSxmPXIoNTg2NTUpLGw9cigxOTc0NCkscD1yKDMyOTA0KSx2PXIoOTA1NzYpLHk9cig3NzY1OSksaD12KFwiaXNDb25jYXRTcHJlYWRhYmxlXCIpLGQ9eT49NTF8fCFvKChmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0W2hdPSExLHQuY29uY2F0KClbMF0hPT10fSkpLGI9ZnVuY3Rpb24odCl7aWYoIWEodCkpcmV0dXJuITE7dmFyIGU9dFtoXTtyZXR1cm4gdm9pZCAwIT09ZT8hIWU6aSh0KX07bih7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxhcml0eToxLGZvcmNlZDohZHx8IXAoXCJjb25jYXRcIil9LHtjb25jYXQ6ZnVuY3Rpb24odCl7dmFyIGUscixuLG8saSxhPXUodGhpcykscD1sKGEsMCksdj0wO2ZvcihlPS0xLG49YXJndW1lbnRzLmxlbmd0aDtlPG47ZSsrKWlmKGIoaT0tMT09PWU/YTphcmd1bWVudHNbZV0pKWZvcihvPWMoaSkscyh2K28pLHI9MDtyPG87cisrLHYrKylyIGluIGkmJmYocCx2LGlbcl0pO2Vsc2Ugcyh2KzEpLGYocCx2KyssaSk7cmV0dXJuIHAubGVuZ3RoPXYscH19KX0sMjE1MDY6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDk1NDEwKSxpPXIoMzk2NTIpO24oe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITB9LHtjb3B5V2l0aGluOm99KSxpKFwiY29weVdpdGhpblwiKX0sNjA2NzI6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ2NDgwKSxpPXIoMzk2NTIpO24oe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITB9LHtmaWxsOm99KSxpKFwiZmlsbFwiKX0sMjg2NjM6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDUxNjMwKS5maWx0ZXI7bih7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6IXIoMzI5MDQpKFwiZmlsdGVyXCIpfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LDgxNzU6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDUxNjMwKS5maW5kSW5kZXgsaT1yKDM5NjUyKSxhPVwiZmluZEluZGV4XCIsdT0hMDthIGluW10mJkFycmF5KDEpW2FdKChmdW5jdGlvbigpe3U9ITF9KSksbih7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6dX0se2ZpbmRJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGkoYSl9LDE1MDAyOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig1MTYzMCkuZmluZCxpPXIoMzk2NTIpLGE9XCJmaW5kXCIsdT0hMDthIGluW10mJkFycmF5KDEpW2FdKChmdW5jdGlvbigpe3U9ITF9KSksbih7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6dX0se2ZpbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxpKGEpfSw1ODUzOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0OTM1OCksaT1yKDg2MTUxKSxhPXIoMjM0NiksdT1yKDYyNTAzKSxjPXIoMTk3NDQpO24oe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITB9LHtmbGF0TWFwOmZ1bmN0aW9uKHQpe3ZhciBlLHI9YSh0aGlzKSxuPXUocik7cmV0dXJuIGkodCksKGU9YyhyLDApKS5sZW5ndGg9byhlLHIscixuLDAsMSx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSxlfX0pfSw0NjIxODoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNDkzNTgpLGk9cigyMzQ2KSxhPXIoNjI1MDMpLHU9cig5NzA0MiksYz1yKDE5NzQ0KTtuKHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwfSx7ZmxhdDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCxlPWkodGhpcykscj1hKGUpLG49YyhlLDApO3JldHVybiBuLmxlbmd0aD1vKG4sZSxlLHIsMCx2b2lkIDA9PT10PzE6dSh0KSksbn19KX0sODg0ODU6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDkwNTgxKTtuKHt0YXJnZXQ6XCJBcnJheVwiLHN0YXQ6ITAsZm9yY2VkOiFyKDE4NzUzKSgoZnVuY3Rpb24odCl7QXJyYXkuZnJvbSh0KX0pKX0se2Zyb206b30pfSw1MDA0NDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTgzODApLmluY2x1ZGVzLGk9cigzNTc2NCksYT1yKDM5NjUyKTtuKHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDppKChmdW5jdGlvbigpe3JldHVybiFBcnJheSgxKS5pbmNsdWRlcygpfSkpfSx7aW5jbHVkZXM6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxhKFwiaW5jbHVkZXNcIil9LDk2MTA3Oih0LGUscik9Pnt2YXIgbj1yKDYyOTk4KSxvPXIoMzk2NTIpLGk9cigyNDQzOCksYT1yKDk4MzYpLHU9cigzMDE0OCkuZixjPXIoMjg0MzEpLHM9cig0OTU1OCksZj1yKDc0MDQwKSxsPXIoMTUwMykscD1cIkFycmF5IEl0ZXJhdG9yXCIsdj1hLnNldCx5PWEuZ2V0dGVyRm9yKHApO3QuZXhwb3J0cz1jKEFycmF5LFwiQXJyYXlcIiwoZnVuY3Rpb24odCxlKXt2KHRoaXMse3R5cGU6cCx0YXJnZXQ6bih0KSxpbmRleDowLGtpbmQ6ZX0pfSksKGZ1bmN0aW9uKCl7dmFyIHQ9eSh0aGlzKSxlPXQudGFyZ2V0LHI9dC5raW5kLG49dC5pbmRleCsrO2lmKCFlfHxuPj1lLmxlbmd0aClyZXR1cm4gdC50YXJnZXQ9dm9pZCAwLHModm9pZCAwLCEwKTtzd2l0Y2gocil7Y2FzZVwia2V5c1wiOnJldHVybiBzKG4sITEpO2Nhc2VcInZhbHVlc1wiOnJldHVybiBzKGVbbl0sITEpfXJldHVybiBzKFtuLGVbbl1dLCExKX0pLFwidmFsdWVzXCIpO3ZhciBoPWkuQXJndW1lbnRzPWkuQXJyYXk7aWYobyhcImtleXNcIiksbyhcInZhbHVlc1wiKSxvKFwiZW50cmllc1wiKSwhZiYmbCYmXCJ2YWx1ZXNcIiE9PWgubmFtZSl0cnl7dShoLFwibmFtZVwiLHt2YWx1ZTpcInZhbHVlc1wifSl9Y2F0Y2godCl7fX0sNjA1NTc6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ0NzYzKSxpPXIoMjg1ODYpLGE9cig2Mjk5OCksdT1yKDQ5MjcpLGM9byhbXS5qb2luKTtuKHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDppIT09T2JqZWN0fHwhdShcImpvaW5cIixcIixcIil9LHtqb2luOmZ1bmN0aW9uKHQpe3JldHVybiBjKGEodGhpcyksdm9pZCAwPT09dD9cIixcIjp0KX19KX0sMzA3OToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNTE2MzApLm1hcDtuKHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDohcigzMjkwNCkoXCJtYXBcIil9LHttYXA6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sOTQyNjg6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDM1NzY0KSxpPXIoMjg0MjApLGE9cig1ODY1NSksdT1BcnJheTtuKHt0YXJnZXQ6XCJBcnJheVwiLHN0YXQ6ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4hKHUub2YuY2FsbCh0KWluc3RhbmNlb2YgdCl9KSl9LHtvZjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyhpKHRoaXMpP3RoaXM6dSkoZSk7ZT50OylhKHIsdCxhcmd1bWVudHNbdCsrXSk7cmV0dXJuIHIubGVuZ3RoPWUscn19KX0sMjcwNDQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ4NzYzKS5yaWdodCxpPXIoNDkyNyksYT1yKDc3NjU5KTtuKHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDohcig4NTE0OSkmJmE+NzkmJmE8ODN8fCFpKFwicmVkdWNlUmlnaHRcIil9LHtyZWR1Y2VSaWdodDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LDY3NTYzOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0ODc2MykubGVmdCxpPXIoNDkyNyksYT1yKDc3NjU5KTtuKHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDohcig4NTE0OSkmJmE+NzkmJmE8ODN8fCFpKFwicmVkdWNlXCIpfSx7cmVkdWNlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIG8odGhpcyx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwyNTUxNToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTk5MjkpLGk9cigyODQyMCksYT1yKDY2NDUpLHU9cig4ODQyNSksYz1yKDYyNTAzKSxzPXIoNjI5OTgpLGY9cig1ODY1NSksbD1yKDkwNTc2KSxwPXIoMzI5MDQpLHY9cig4MzY0MykseT1wKFwic2xpY2VcIiksaD1sKFwic3BlY2llc1wiKSxkPUFycmF5LGI9TWF0aC5tYXg7bih7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6IXl9LHtzbGljZTpmdW5jdGlvbih0LGUpe3ZhciByLG4sbCxwPXModGhpcykseT1jKHApLGc9dSh0LHkpLG09dSh2b2lkIDA9PT1lP3k6ZSx5KTtpZihvKHApJiYocj1wLmNvbnN0cnVjdG9yLChpKHIpJiYocj09PWR8fG8oci5wcm90b3R5cGUpKXx8YShyKSYmbnVsbD09PShyPXJbaF0pKSYmKHI9dm9pZCAwKSxyPT09ZHx8dm9pZCAwPT09cikpcmV0dXJuIHYocCxnLG0pO2ZvcihuPW5ldyh2b2lkIDA9PT1yP2Q6cikoYihtLWcsMCkpLGw9MDtnPG07ZysrLGwrKylnIGluIHAmJmYobixsLHBbZ10pO3JldHVybiBuLmxlbmd0aD1sLG59fSl9LDkzMjE6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ0NzYzKSxpPXIoODYxNTEpLGE9cigyMzQ2KSx1PXIoNjI1MDMpLGM9cig2Mzg4Nykscz1yKDg0NjAwKSxmPXIoMzU3NjQpLGw9cigzMzk3NykscD1yKDQ5MjcpLHY9cigxODgzMykseT1yKDQ0MDc5KSxoPXIoNzc2NTkpLGQ9cig4OTE3MSksYj1bXSxnPW8oYi5zb3J0KSxtPW8oYi5wdXNoKSx3PWYoKGZ1bmN0aW9uKCl7Yi5zb3J0KHZvaWQgMCl9KSksUz1mKChmdW5jdGlvbigpe2Iuc29ydChudWxsKX0pKSxPPXAoXCJzb3J0XCIpLEU9IWYoKGZ1bmN0aW9uKCl7aWYoaClyZXR1cm4gaDw3MDtpZighKHYmJnY+Mykpe2lmKHkpcmV0dXJuITA7aWYoZClyZXR1cm4gZDw2MDM7dmFyIHQsZSxyLG4sbz1cIlwiO2Zvcih0PTY1O3Q8NzY7dCsrKXtzd2l0Y2goZT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLHQpe2Nhc2UgNjY6Y2FzZSA2OTpjYXNlIDcwOmNhc2UgNzI6cj0zO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3MTpyPTQ7YnJlYWs7ZGVmYXVsdDpyPTJ9Zm9yKG49MDtuPDQ3O24rKyliLnB1c2goe2s6ZStuLHY6cn0pfWZvcihiLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudi10LnZ9KSksbj0wO248Yi5sZW5ndGg7bisrKWU9YltuXS5rLmNoYXJBdCgwKSxvLmNoYXJBdChvLmxlbmd0aC0xKSE9PWUmJihvKz1lKTtyZXR1cm5cIkRHQkVGSEFDSUpLXCIhPT1vfX0pKTtuKHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDp3fHwhU3x8IU98fCFFfSx7c29ydDpmdW5jdGlvbih0KXt2b2lkIDAhPT10JiZpKHQpO3ZhciBlPWEodGhpcyk7aWYoRSlyZXR1cm4gdm9pZCAwPT09dD9nKGUpOmcoZSx0KTt2YXIgcixuLG89W10sZj11KGUpO2ZvcihuPTA7bjxmO24rKyluIGluIGUmJm0obyxlW25dKTtmb3IobChvLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVybiB2b2lkIDA9PT1yPy0xOnZvaWQgMD09PWU/MTp2b2lkIDAhPT10Pyt0KGUscil8fDA6cyhlKT5zKHIpPzE6LTF9fSh0KSkscj11KG8pLG49MDtuPHI7KWVbbl09b1tuKytdO2Zvcig7bjxmOyljKGUsbisrKTtyZXR1cm4gZX19KX0sNzI4MzU6KHQsZSxyKT0+e3IoNDY2NzgpKFwiQXJyYXlcIil9LDk0NDU3Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMzQ2KSxpPXIoODg0MjUpLGE9cig5NzA0MiksdT1yKDYyNTAzKSxjPXIoMzY0OTgpLHM9cigyMjk2MCksZj1yKDE5NzQ0KSxsPXIoNTg2NTUpLHA9cig2Mzg4Nyksdj1yKDMyOTA0KShcInNwbGljZVwiKSx5PU1hdGgubWF4LGg9TWF0aC5taW47bih7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6IXZ9LHtzcGxpY2U6ZnVuY3Rpb24odCxlKXt2YXIgcixuLHYsZCxiLGcsbT1vKHRoaXMpLHc9dShtKSxTPWkodCx3KSxPPWFyZ3VtZW50cy5sZW5ndGg7Zm9yKDA9PT1PP3I9bj0wOjE9PT1PPyhyPTAsbj13LVMpOihyPU8tMixuPWgoeShhKGUpLDApLHctUykpLHModytyLW4pLHY9ZihtLG4pLGQ9MDtkPG47ZCsrKShiPVMrZClpbiBtJiZsKHYsZCxtW2JdKTtpZih2Lmxlbmd0aD1uLHI8bil7Zm9yKGQ9UztkPHctbjtkKyspZz1kK3IsKGI9ZCtuKWluIG0/bVtnXT1tW2JdOnAobSxnKTtmb3IoZD13O2Q+dy1uK3I7ZC0tKXAobSxkLTEpfWVsc2UgaWYocj5uKWZvcihkPXctbjtkPlM7ZC0tKWc9ZCtyLTEsKGI9ZCtuLTEpaW4gbT9tW2ddPW1bYl06cChtLGcpO2ZvcihkPTA7ZDxyO2QrKyltW2QrU109YXJndW1lbnRzW2QrMl07cmV0dXJuIGMobSx3LW4rciksdn19KX0sMjA0NzA6KHQsZSxyKT0+e3IoMzk2NTIpKFwiZmxhdE1hcFwiKX0sODQ4MjU6KHQsZSxyKT0+e3IoMzk2NTIpKFwiZmxhdFwiKX0sNTcyNjU6KHQsZSxyKT0+e3ZhciBuPXIoMzYwMzYpLG89cigyOTU2NyksaT1yKDI4Njg3KSxhPXIoOTA1NzYpKFwidG9QcmltaXRpdmVcIiksdT1EYXRlLnByb3RvdHlwZTtuKHUsYSl8fG8odSxhLGkpfSw4Njc2NDoodCxlLHIpPT57dmFyIG49cig2NjY5MCksbz1yKDY2NDUpLGk9cigzMDE0OCksYT1yKDk2Nzk2KSx1PXIoOTA1NzYpLGM9cig1MTIwMCkscz11KFwiaGFzSW5zdGFuY2VcIiksZj1GdW5jdGlvbi5wcm90b3R5cGU7cyBpbiBmfHxpLmYoZixzLHt2YWx1ZTpjKChmdW5jdGlvbih0KXtpZighbih0aGlzKXx8IW8odCkpcmV0dXJuITE7dmFyIGU9dGhpcy5wcm90b3R5cGU7aWYoIW8oZSkpcmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzO2Zvcig7dD1hKHQpOylpZihlPT09dClyZXR1cm4hMDtyZXR1cm4hMX0pLHMpfSl9LDM2ODc5Oih0LGUscik9Pnt2YXIgbj1yKDE1MDMpLG89cig5OTEyOSkuRVhJU1RTLGk9cig0NDc2MyksYT1yKDM0MzMxKSx1PUZ1bmN0aW9uLnByb3RvdHlwZSxjPWkodS50b1N0cmluZykscz0vZnVuY3Rpb25cXGIoPzpcXHN8XFwvXFwqW1xcU1xcc10qP1xcKlxcL3xcXC9cXC9bXlxcblxccl0qW1xcblxccl0rKSooW15cXHMoL10qKS8sZj1pKHMuZXhlYyk7biYmIW8mJmEodSxcIm5hbWVcIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3RyeXtyZXR1cm4gZihzLGModGhpcykpWzFdfWNhdGNoKHQpe3JldHVyblwiXCJ9fX0pfSw1NDY0MDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMTc2OTApO24oe2dsb2JhbDohMCxmb3JjZWQ6by5nbG9iYWxUaGlzIT09b30se2dsb2JhbFRoaXM6b30pfSw4NTQ3MzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjUzNCksaT1yKDQzODcyKSxhPXIoMjE2MzQpLHU9cig0NDc2MyksYz1yKDM1NzY0KSxzPXIoNjY2OTApLGY9cigxNzc5NCksbD1yKDgzNjQzKSxwPXIoMzIzNDQpLHY9cig4NTQ3MCkseT1TdHJpbmcsaD1vKFwiSlNPTlwiLFwic3RyaW5naWZ5XCIpLGQ9dSgvLi8uZXhlYyksYj11KFwiXCIuY2hhckF0KSxnPXUoXCJcIi5jaGFyQ29kZUF0KSxtPXUoXCJcIi5yZXBsYWNlKSx3PXUoMS4udG9TdHJpbmcpLFM9L1tcXHVEODAwLVxcdURGRkZdL2csTz0vXltcXHVEODAwLVxcdURCRkZdJC8sRT0vXltcXHVEQzAwLVxcdURGRkZdJC8seD0hdnx8YygoZnVuY3Rpb24oKXt2YXIgdD1vKFwiU3ltYm9sXCIpKFwic3RyaW5naWZ5IGRldGVjdGlvblwiKTtyZXR1cm5cIltudWxsXVwiIT09aChbdF0pfHxcInt9XCIhPT1oKHthOnR9KXx8XCJ7fVwiIT09aChPYmplY3QodCkpfSkpLGo9YygoZnVuY3Rpb24oKXtyZXR1cm4nXCJcXFxcdWRmMDZcXFxcdWQ4MzRcIichPT1oKFwiXFx1ZGYwNlxcdWQ4MzRcIil8fCdcIlxcXFx1ZGVhZFwiJyE9PWgoXCJcXHVkZWFkXCIpfSkpLFA9ZnVuY3Rpb24odCxlKXt2YXIgcj1sKGFyZ3VtZW50cyksbj1wKGUpO2lmKHMobil8fHZvaWQgMCE9PXQmJiFmKHQpKXJldHVybiByWzFdPWZ1bmN0aW9uKHQsZSl7aWYocyhuKSYmKGU9YShuLHRoaXMseSh0KSxlKSksIWYoZSkpcmV0dXJuIGV9LGkoaCxudWxsLHIpfSxUPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1iKHIsZS0xKSxvPWIocixlKzEpO3JldHVybiBkKE8sdCkmJiFkKEUsbyl8fGQoRSx0KSYmIWQoTyxuKT9cIlxcXFx1XCIrdyhnKHQsMCksMTYpOnR9O2gmJm4oe3RhcmdldDpcIkpTT05cIixzdGF0OiEwLGFyaXR5OjMsZm9yY2VkOnh8fGp9LHtzdHJpbmdpZnk6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWwoYXJndW1lbnRzKSxvPWkoeD9QOmgsbnVsbCxuKTtyZXR1cm4gaiYmXCJzdHJpbmdcIj09dHlwZW9mIG8/bShvLFMsVCk6b319KX0sMzQ2MDA6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApO3IoMzQ3NTIpKG4uSlNPTixcIkpTT05cIiwhMCl9LDUwMDE4Oih0LGUscik9PntyKDM4ODMzKShcIk1hcFwiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSkscig1Mzk4NSkpfSw5NTUxNjoodCxlLHIpPT57cig1MDAxOCl9LDU4NTc0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig4Njk2NSksaT1NYXRoLmFjb3NoLGE9TWF0aC5sb2csdT1NYXRoLnNxcnQsYz1NYXRoLkxOMjtuKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMCxmb3JjZWQ6IWl8fDcxMCE9PU1hdGguZmxvb3IoaShOdW1iZXIuTUFYX1ZBTFVFKSl8fGkoMS8wKSE9PTEvMH0se2Fjb3NoOmZ1bmN0aW9uKHQpe3ZhciBlPSt0O3JldHVybiBlPDE/TmFOOmU+OTQ5MDYyNjUuNjI0MjUxNTY/YShlKStjOm8oZS0xK3UoZS0xKSp1KGUrMSkpfX0pfSwxMTk0MToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPU1hdGguYXNpbmgsaT1NYXRoLmxvZyxhPU1hdGguc3FydDtuKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMCxmb3JjZWQ6IShvJiYxL28oMCk+MCl9LHthc2luaDpmdW5jdGlvbiB0KGUpe3ZhciByPStlO3JldHVybiBpc0Zpbml0ZShyKSYmMCE9PXI/cjwwPy10KC1yKTppKHIrYShyKnIrMSkpOnJ9fSl9LDc0MjMwOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89TWF0aC5hdGFuaCxpPU1hdGgubG9nO24oe3RhcmdldDpcIk1hdGhcIixzdGF0OiEwLGZvcmNlZDohKG8mJjEvbygtMCk8MCl9LHthdGFuaDpmdW5jdGlvbih0KXt2YXIgZT0rdDtyZXR1cm4gMD09PWU/ZTppKCgxK2UpLygxLWUpKS8yfX0pfSw3NTkwNToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNDQwNzMpLGk9TWF0aC5hYnMsYT1NYXRoLnBvdztuKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMH0se2NicnQ6ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIG8oZSkqYShpKGUpLDEvMyl9fSl9LDczMTA2Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89TWF0aC5mbG9vcixpPU1hdGgubG9nLGE9TWF0aC5MT0cyRTtuKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMH0se2NsejMyOmZ1bmN0aW9uKHQpe3ZhciBlPXQ+Pj4wO3JldHVybiBlPzMxLW8oaShlKy41KSphKTozMn19KX0sNjYzMzk6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDkzNjQzKSxpPU1hdGguY29zaCxhPU1hdGguYWJzLHU9TWF0aC5FO24oe3RhcmdldDpcIk1hdGhcIixzdGF0OiEwLGZvcmNlZDohaXx8aSg3MTApPT09MS8wfSx7Y29zaDpmdW5jdGlvbih0KXt2YXIgZT1vKGEodCktMSkrMTtyZXR1cm4oZSsxLyhlKnUqdSkpKih1LzIpfX0pfSw2OTczOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig5MzY0Myk7bih7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITAsZm9yY2VkOm8hPT1NYXRoLmV4cG0xfSx7ZXhwbTE6b30pfSwzMDExNjoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITB9LHtmcm91bmQ6cigzNzQ2Mil9KX0sNTM1NTg6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1NYXRoLmh5cG90LGk9TWF0aC5hYnMsYT1NYXRoLnNxcnQ7bih7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITAsYXJpdHk6Mixmb3JjZWQ6ISFvJiZvKDEvMCxOYU4pIT09MS8wfSx7aHlwb3Q6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixvPTAsdT0wLGM9YXJndW1lbnRzLmxlbmd0aCxzPTA7dTxjOylzPChyPWkoYXJndW1lbnRzW3UrK10pKT8obz1vKihuPXMvcikqbisxLHM9cik6bys9cj4wPyhuPXIvcykqbjpyO3JldHVybiBzPT09MS8wPzEvMDpzKmEobyl9fSl9LDkwMzI1Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzNTc2NCksaT1NYXRoLmltdWw7bih7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7cmV0dXJuLTUhPT1pKDQyOTQ5NjcyOTUsNSl8fDIhPT1pLmxlbmd0aH0pKX0se2ltdWw6ZnVuY3Rpb24odCxlKXt2YXIgcj02NTUzNSxuPSt0LG89K2UsaT1yJm4sYT1yJm87cmV0dXJuIDB8aSphKygociZuPj4+MTYpKmEraSoociZvPj4+MTYpPDwxNj4+PjApfX0pfSw0OTQ0NzoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITB9LHtsb2cxMDpyKDUxODYxKX0pfSw0MjAyMzoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITB9LHtsb2cxcDpyKDg2OTY1KX0pfSw5MjE3ODoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPU1hdGgubG9nLGk9TWF0aC5MTjI7bih7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITB9LHtsb2cyOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQpL2l9fSl9LDYyNjc1Oih0LGUscik9PntyKDE3NzEpKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMH0se3NpZ246cig0NDA3Myl9KX0sMzgwNzY6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDM1NzY0KSxpPXIoOTM2NDMpLGE9TWF0aC5hYnMsdT1NYXRoLmV4cCxjPU1hdGguRTtuKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtyZXR1cm4tMmUtMTchPT1NYXRoLnNpbmgoLTJlLTE3KX0pKX0se3Npbmg6ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGEoZSk8MT8oaShlKS1pKC1lKSkvMjoodShlLTEpLXUoLWUtMSkpKihjLzIpfX0pfSw0NTczNToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTM2NDMpLGk9TWF0aC5leHA7bih7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITB9LHt0YW5oOmZ1bmN0aW9uKHQpe3ZhciBlPSt0LHI9byhlKSxuPW8oLWUpO3JldHVybiByPT09MS8wPzE6bj09PTEvMD8tMTooci1uKS8oaShlKStpKC1lKSl9fSl9LDc1ODEyOih0LGUscik9PntyKDM0NzUyKShNYXRoLFwiTWF0aFwiLCEwKX0sNjI0NjI6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIk1hdGhcIixzdGF0OiEwfSx7dHJ1bmM6cig3NDI1Nil9KX0sOTY4MDM6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDc0MDQwKSxpPXIoMTUwMyksYT1yKDE3NjkwKSx1PXIoNDYxOTgpLGM9cig0NDc2Mykscz1yKDc1OTAzKSxmPXIoMzYwMzYpLGw9cigzNTk0OCkscD1yKDU5NzkyKSx2PXIoMTc3OTQpLHk9cigyODEzMiksaD1yKDM1NzY0KSxkPXIoNzA0MykuZixiPXIoNzE5NTApLmYsZz1yKDMwMTQ4KS5mLG09cig5NTYzOSksdz1yKDY3NjE3KS50cmltLFM9XCJOdW1iZXJcIixPPWFbU10sRT11W1NdLHg9Ty5wcm90b3R5cGUsaj1hLlR5cGVFcnJvcixQPWMoXCJcIi5zbGljZSksVD1jKFwiXCIuY2hhckNvZGVBdCksQT1zKFMsIU8oXCIgMG8xXCIpfHwhTyhcIjBiMVwiKXx8TyhcIisweDFcIikpLEk9ZnVuY3Rpb24odCl7dmFyIGUscj1hcmd1bWVudHMubGVuZ3RoPDE/MDpPKGZ1bmN0aW9uKHQpe3ZhciBlPXkodCxcIm51bWJlclwiKTtyZXR1cm5cImJpZ2ludFwiPT10eXBlb2YgZT9lOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGksYSx1LGMscz15KHQsXCJudW1iZXJcIik7aWYodihzKSl0aHJvdyBqKFwiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBudW1iZXJcIik7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHMmJnMubGVuZ3RoPjIpaWYocz13KHMpLDQzPT09KGU9VChzLDApKXx8NDU9PT1lKXtpZig4OD09PShyPVQocywyKSl8fDEyMD09PXIpcmV0dXJuIE5hTn1lbHNlIGlmKDQ4PT09ZSl7c3dpdGNoKFQocywxKSl7Y2FzZSA2NjpjYXNlIDk4Om49MixvPTQ5O2JyZWFrO2Nhc2UgNzk6Y2FzZSAxMTE6bj04LG89NTU7YnJlYWs7ZGVmYXVsdDpyZXR1cm4rc31mb3IoYT0oaT1QKHMsMikpLmxlbmd0aCx1PTA7dTxhO3UrKylpZigoYz1UKGksdSkpPDQ4fHxjPm8pcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoaSxuKX1yZXR1cm4rc30oZSl9KHQpKTtyZXR1cm4gcCh4LGU9dGhpcykmJmgoKGZ1bmN0aW9uKCl7bShlKX0pKT9sKE9iamVjdChyKSx0aGlzLEkpOnJ9O0kucHJvdG90eXBlPXgsQSYmIW8mJih4LmNvbnN0cnVjdG9yPUkpLG4oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCx3cmFwOiEwLGZvcmNlZDpBfSx7TnVtYmVyOkl9KTt2YXIgXz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPWk/ZChlKTpcIk1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04sTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLHBhcnNlRmxvYXQscGFyc2VJbnQsZnJvbVN0cmluZyxyYW5nZVwiLnNwbGl0KFwiLFwiKSxvPTA7bi5sZW5ndGg+bztvKyspZihlLHI9bltvXSkmJiFmKHQscikmJmcodCxyLGIoZSxyKSl9O28mJkUmJl8odVtTXSxFKSwoQXx8bykmJl8odVtTXSxPKX0sNzk2NTM6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITAsbm9uQ29uZmlndXJhYmxlOiEwLG5vbldyaXRhYmxlOiEwfSx7RVBTSUxPTjpNYXRoLnBvdygyLC01Mil9KX0sMTY4MzE6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITB9LHtpc0Zpbml0ZTpyKDI1MDM3KX0pfSw0OTMyNDoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se2lzSW50ZWdlcjpyKDM5NTM4KX0pfSw1MTY5NToodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se2lzTmFOOmZ1bmN0aW9uKHQpe3JldHVybiB0IT10fX0pfSw1OTYwNjoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMzk1MzgpLGk9TWF0aC5hYnM7bih7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se2lzU2FmZUludGVnZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG8odCkmJmkodCk8PTkwMDcxOTkyNTQ3NDA5OTF9fSl9LDcyMzYwOih0LGUscik9PntyKDE3NzEpKHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwLG5vbkNvbmZpZ3VyYWJsZTohMCxub25Xcml0YWJsZTohMH0se01BWF9TQUZFX0lOVEVHRVI6OTAwNzE5OTI1NDc0MDk5MX0pfSw3Nzk5NDoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMCxub25Db25maWd1cmFibGU6ITAsbm9uV3JpdGFibGU6ITB9LHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LDI5MDE5Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig2MjUzMyk7bih7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMCxmb3JjZWQ6TnVtYmVyLnBhcnNlRmxvYXQhPT1vfSx7cGFyc2VGbG9hdDpvfSl9LDU5MjkyOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzNjA2Nik7bih7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMCxmb3JjZWQ6TnVtYmVyLnBhcnNlSW50IT09b30se3BhcnNlSW50Om99KX0sMzY0NjU6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ0NzYzKSxpPXIoOTcwNDIpLGE9cig5NTYzOSksdT1yKDM0NDU4KSxjPXIoMzU3NjQpLHM9UmFuZ2VFcnJvcixmPVN0cmluZyxsPU1hdGguZmxvb3IscD1vKHUpLHY9byhcIlwiLnNsaWNlKSx5PW8oMS4udG9GaXhlZCksaD1mdW5jdGlvbiB0KGUscixuKXtyZXR1cm4gMD09PXI/bjpyJTI9PTE/dChlLHItMSxuKmUpOnQoZSplLHIvMixuKX0sZD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPS0xLG89cjsrK248Njspbys9ZSp0W25dLHRbbl09byUxZTcsbz1sKG8vMWU3KX0sYj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj02LG49MDstLXI+PTA7KW4rPXRbcl0sdFtyXT1sKG4vZSksbj1uJWUqMWU3fSxnPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT02LHI9XCJcIjstLWU+PTA7KWlmKFwiXCIhPT1yfHwwPT09ZXx8MCE9PXRbZV0pe3ZhciBuPWYodFtlXSk7cj1cIlwiPT09cj9uOnIrcChcIjBcIiw3LW4ubGVuZ3RoKStufXJldHVybiByfTtuKHt0YXJnZXQ6XCJOdW1iZXJcIixwcm90bzohMCxmb3JjZWQ6YygoZnVuY3Rpb24oKXtyZXR1cm5cIjAuMDAwXCIhPT15KDhlLTUsMyl8fFwiMVwiIT09eSguOSwwKXx8XCIxLjI1XCIhPT15KDEuMjU1LDIpfHxcIjEwMDAwMDAwMDAwMDAwMDAxMjhcIiE9PXkoMHhkZTBiNmIzYTc2NDAwODAsMCl9KSl8fCFjKChmdW5jdGlvbigpe3koe30pfSkpfSx7dG9GaXhlZDpmdW5jdGlvbih0KXt2YXIgZSxyLG4sbyx1PWEodGhpcyksYz1pKHQpLGw9WzAsMCwwLDAsMCwwXSx5PVwiXCIsbT1cIjBcIjtpZihjPDB8fGM+MjApdGhyb3cgcyhcIkluY29ycmVjdCBmcmFjdGlvbiBkaWdpdHNcIik7aWYodSE9dSlyZXR1cm5cIk5hTlwiO2lmKHU8PS0xZTIxfHx1Pj0xZTIxKXJldHVybiBmKHUpO2lmKHU8MCYmKHk9XCItXCIsdT0tdSksdT4xZS0yMSlpZihyPShlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dDtyPj00MDk2OyllKz0xMixyLz00MDk2O2Zvcig7cj49MjspZSs9MSxyLz0yO3JldHVybiBlfSh1KmgoMiw2OSwxKSktNjkpPDA/dSpoKDIsLWUsMSk6dS9oKDIsZSwxKSxyKj00NTAzNTk5NjI3MzcwNDk2LChlPTUyLWUpPjApe2ZvcihkKGwsMCxyKSxuPWM7bj49NzspZChsLDFlNywwKSxuLT03O2ZvcihkKGwsaCgxMCxuLDEpLDApLG49ZS0xO24+PTIzOyliKGwsMTw8MjMpLG4tPTIzO2IobCwxPDxuKSxkKGwsMSwxKSxiKGwsMiksbT1nKGwpfWVsc2UgZChsLDAsciksZChsLDE8PC1lLDApLG09ZyhsKStwKFwiMFwiLGMpO3JldHVybiBjPjA/eSsoKG89bS5sZW5ndGgpPD1jP1wiMC5cIitwKFwiMFwiLGMtbykrbTp2KG0sMCxvLWMpK1wiLlwiK3YobSxvLWMpKTp5K219fSl9LDUzOTY6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDc0ODIpO24oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsYXJpdHk6Mixmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PW99LHthc3NpZ246b30pfSw4OTQyNDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMTUwMyksaT1yKDU0MDQwKSxhPXIoODYxNTEpLHU9cigyMzQ2KSxjPXIoMzAxNDgpO28mJm4oe3RhcmdldDpcIk9iamVjdFwiLHByb3RvOiEwLGZvcmNlZDppfSx7X19kZWZpbmVHZXR0ZXJfXzpmdW5jdGlvbih0LGUpe2MuZih1KHRoaXMpLHQse2dldDphKGUpLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9fSl9LDMyMTQ4Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxNTAzKSxpPXIoNTQwNDApLGE9cig4NjE1MSksdT1yKDIzNDYpLGM9cigzMDE0OCk7byYmbih7dGFyZ2V0OlwiT2JqZWN0XCIscHJvdG86ITAsZm9yY2VkOml9LHtfX2RlZmluZVNldHRlcl9fOmZ1bmN0aW9uKHQsZSl7Yy5mKHUodGhpcyksdCx7c2V0OmEoZSksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KX19KX0sMTA3ODU6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ4MTMwKS5lbnRyaWVzO24oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITB9LHtlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQpfX0pfSw5MTEwOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyNjQ0MSksaT1yKDM1NzY0KSxhPXIoNjY0NSksdT1yKDY0NzI0KS5vbkZyZWV6ZSxjPU9iamVjdC5mcmVlemU7bih7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMCxmb3JjZWQ6aSgoZnVuY3Rpb24oKXtjKDEpfSkpLHNoYW06IW99LHtmcmVlemU6ZnVuY3Rpb24odCl7cmV0dXJuIGMmJmEodCk/Yyh1KHQpKTp0fX0pfSwyOTY4ODoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoODc2MzEpLGk9cig1ODY1NSk7bih7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMH0se2Zyb21FbnRyaWVzOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBvKHQsKGZ1bmN0aW9uKHQscil7aShlLHQscil9KSx7QVNfRU5UUklFUzohMH0pLGV9fSl9LDM3NTU2Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzNTc2NCksaT1yKDYyOTk4KSxhPXIoNzE5NTApLmYsdT1yKDE1MDMpO24oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOiF1fHxvKChmdW5jdGlvbigpe2EoMSl9KSksc2hhbTohdX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbih0LGUpe3JldHVybiBhKGkodCksZSl9fSl9LDE2NTM5Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxNTAzKSxpPXIoMzgwNTgpLGE9cig2Mjk5OCksdT1yKDcxOTUwKSxjPXIoNTg2NTUpO24oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsc2hhbTohb30se2dldE93blByb3BlcnR5RGVzY3JpcHRvcnM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbj1hKHQpLG89dS5mLHM9aShuKSxmPXt9LGw9MDtzLmxlbmd0aD5sOyl2b2lkIDAhPT0ocj1vKG4sZT1zW2wrK10pKSYmYyhmLGUscik7cmV0dXJuIGZ9fSl9LDQ5MTYxOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzNTc2NCksaT1yKDU3NzE5KS5mO24oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7cmV0dXJuIU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKDEpfSkpfSx7Z2V0T3duUHJvcGVydHlOYW1lczppfSl9LDkzNjI0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig4NTQ3MCksaT1yKDM1NzY0KSxhPXIoNzM4MzQpLHU9cigyMzQ2KTtuKHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDohb3x8aSgoZnVuY3Rpb24oKXthLmYoMSl9KSl9LHtnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZnVuY3Rpb24odCl7dmFyIGU9YS5mO3JldHVybiBlP2UodSh0KSk6W119fSl9LDMyMzE4Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzNTc2NCksaT1yKDIzNDYpLGE9cig5Njc5NiksdT1yKDYyMDE0KTtuKHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2EoMSl9KSksc2hhbTohdX0se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX0pfSw2NzMwNzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTgxMDEpO24oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOk9iamVjdC5pc0V4dGVuc2libGUhPT1vfSx7aXNFeHRlbnNpYmxlOm99KX0sNzM5MDQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDM1NzY0KSxpPXIoNjY0NSksYT1yKDU3NjcxKSx1PXIoNDAwOTUpLGM9T2JqZWN0LmlzRnJvemVuO24oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOnV8fG8oKGZ1bmN0aW9uKCl7YygxKX0pKX0se2lzRnJvemVuOmZ1bmN0aW9uKHQpe3JldHVybiFpKHQpfHwhKCF1fHxcIkFycmF5QnVmZmVyXCIhPT1hKHQpKXx8ISFjJiZjKHQpfX0pfSw0NDY2Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzNTc2NCksaT1yKDY2NDUpLGE9cig1NzY3MSksdT1yKDQwMDk1KSxjPU9iamVjdC5pc1NlYWxlZDtuKHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDp1fHxvKChmdW5jdGlvbigpe2MoMSl9KSl9LHtpc1NlYWxlZDpmdW5jdGlvbih0KXtyZXR1cm4haSh0KXx8ISghdXx8XCJBcnJheUJ1ZmZlclwiIT09YSh0KSl8fCEhYyYmYyh0KX19KX0sODU1NTc6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITB9LHtpczpyKDYyMzc5KX0pfSw2NDYyMToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjM0NiksaT1yKDQzNTA3KTtuKHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDpyKDM1NzY0KSgoZnVuY3Rpb24oKXtpKDEpfSkpfSx7a2V5czpmdW5jdGlvbih0KXtyZXR1cm4gaShvKHQpKX19KX0sMzE5MDc6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDE1MDMpLGk9cig1NDA0MCksYT1yKDIzNDYpLHU9cigzNzM0MiksYz1yKDk2Nzk2KSxzPXIoNzE5NTApLmY7byYmbih7dGFyZ2V0OlwiT2JqZWN0XCIscHJvdG86ITAsZm9yY2VkOml9LHtfX2xvb2t1cEdldHRlcl9fOmZ1bmN0aW9uKHQpe3ZhciBlLHI9YSh0aGlzKSxuPXUodCk7ZG97aWYoZT1zKHIsbikpcmV0dXJuIGUuZ2V0fXdoaWxlKHI9YyhyKSl9fSl9LDY3NDk1Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxNTAzKSxpPXIoNTQwNDApLGE9cigyMzQ2KSx1PXIoMzczNDIpLGM9cig5Njc5Nikscz1yKDcxOTUwKS5mO28mJm4oe3RhcmdldDpcIk9iamVjdFwiLHByb3RvOiEwLGZvcmNlZDppfSx7X19sb29rdXBTZXR0ZXJfXzpmdW5jdGlvbih0KXt2YXIgZSxyPWEodGhpcyksbj11KHQpO2Rve2lmKGU9cyhyLG4pKXJldHVybiBlLnNldH13aGlsZShyPWMocikpfX0pfSw5NzE0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig2NjQ1KSxpPXIoNjQ3MjQpLm9uRnJlZXplLGE9cigyNjQ0MSksdT1yKDM1NzY0KSxjPU9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucztuKHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDp1KChmdW5jdGlvbigpe2MoMSl9KSksc2hhbTohYX0se3ByZXZlbnRFeHRlbnNpb25zOmZ1bmN0aW9uKHQpe3JldHVybiBjJiZvKHQpP2MoaSh0KSk6dH19KX0sMzI5OTI6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDY2NDUpLGk9cig2NDcyNCkub25GcmVlemUsYT1yKDI2NDQxKSx1PXIoMzU3NjQpLGM9T2JqZWN0LnNlYWw7bih7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMCxmb3JjZWQ6dSgoZnVuY3Rpb24oKXtjKDEpfSkpLHNoYW06IWF9LHtzZWFsOmZ1bmN0aW9uKHQpe3JldHVybiBjJiZvKHQpP2MoaSh0KSk6dH19KX0sOTczNDQ6KHQsZSxyKT0+e3ZhciBuPXIoMzQ4MjMpLG89cigyOTU2NyksaT1yKDczMTkwKTtufHxvKE9iamVjdC5wcm90b3R5cGUsXCJ0b1N0cmluZ1wiLGkse3Vuc2FmZTohMH0pfSwxMDA0MzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNDgxMzApLnZhbHVlcztuKHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwfSx7dmFsdWVzOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQpfX0pfSw0Mzg2Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMTYzNCksaT1yKDg2MTUxKSxhPXIoMTU5NTgpLHU9cig5MTkzMiksYz1yKDg3NjMxKTtuKHt0YXJnZXQ6XCJQcm9taXNlXCIsc3RhdDohMCxmb3JjZWQ6cigyMzk0KX0se2FsbFNldHRsZWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWEuZihlKSxuPXIucmVzb2x2ZSxzPXIucmVqZWN0LGY9dSgoZnVuY3Rpb24oKXt2YXIgcj1pKGUucmVzb2x2ZSksYT1bXSx1PTAscz0xO2ModCwoZnVuY3Rpb24odCl7dmFyIGk9dSsrLGM9ITE7cysrLG8ocixlLHQpLnRoZW4oKGZ1bmN0aW9uKHQpe2N8fChjPSEwLGFbaV09e3N0YXR1czpcImZ1bGZpbGxlZFwiLHZhbHVlOnR9LC0tc3x8bihhKSl9KSwoZnVuY3Rpb24odCl7Y3x8KGM9ITAsYVtpXT17c3RhdHVzOlwicmVqZWN0ZWRcIixyZWFzb246dH0sLS1zfHxuKGEpKX0pKX0pKSwtLXN8fG4oYSl9KSk7cmV0dXJuIGYuZXJyb3ImJnMoZi52YWx1ZSksci5wcm9taXNlfX0pfSw0NzUxODoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjE2MzQpLGk9cig4NjE1MSksYT1yKDE1OTU4KSx1PXIoOTE5MzIpLGM9cig4NzYzMSk7bih7dGFyZ2V0OlwiUHJvbWlzZVwiLHN0YXQ6ITAsZm9yY2VkOnIoMjM5NCl9LHthbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWEuZihlKSxuPXIucmVzb2x2ZSxzPXIucmVqZWN0LGY9dSgoZnVuY3Rpb24oKXt2YXIgcj1pKGUucmVzb2x2ZSksYT1bXSx1PTAsZj0xO2ModCwoZnVuY3Rpb24odCl7dmFyIGk9dSsrLGM9ITE7ZisrLG8ocixlLHQpLnRoZW4oKGZ1bmN0aW9uKHQpe2N8fChjPSEwLGFbaV09dCwtLWZ8fG4oYSkpfSkscyl9KSksLS1mfHxuKGEpfSkpO3JldHVybiBmLmVycm9yJiZzKGYudmFsdWUpLHIucHJvbWlzZX19KX0sNzk3MDM6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDIxNjM0KSxpPXIoODYxNTEpLGE9cigyNTM0KSx1PXIoMTU5NTgpLGM9cig5MTkzMikscz1yKDg3NjMxKSxmPXIoMjM5NCksbD1cIk5vIG9uZSBwcm9taXNlIHJlc29sdmVkXCI7bih7dGFyZ2V0OlwiUHJvbWlzZVwiLHN0YXQ6ITAsZm9yY2VkOmZ9LHthbnk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWEoXCJBZ2dyZWdhdGVFcnJvclwiKSxuPXUuZihlKSxmPW4ucmVzb2x2ZSxwPW4ucmVqZWN0LHY9YygoZnVuY3Rpb24oKXt2YXIgbj1pKGUucmVzb2x2ZSksYT1bXSx1PTAsYz0xLHY9ITE7cyh0LChmdW5jdGlvbih0KXt2YXIgaT11Kysscz0hMTtjKyssbyhuLGUsdCkudGhlbigoZnVuY3Rpb24odCl7c3x8dnx8KHY9ITAsZih0KSl9KSwoZnVuY3Rpb24odCl7c3x8dnx8KHM9ITAsYVtpXT10LC0tY3x8cChuZXcgcihhLGwpKSl9KSl9KSksLS1jfHxwKG5ldyByKGEsbCkpfSkpO3JldHVybiB2LmVycm9yJiZwKHYudmFsdWUpLG4ucHJvbWlzZX19KX0sNzMzMTQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDc0MDQwKSxpPXIoMzEyODcpLkNPTlNUUlVDVE9SLGE9cigxMTU1MSksdT1yKDI1MzQpLGM9cig2NjY5MCkscz1yKDI5NTY3KSxmPWEmJmEucHJvdG90eXBlO2lmKG4oe3RhcmdldDpcIlByb21pc2VcIixwcm90bzohMCxmb3JjZWQ6aSxyZWFsOiEwfSx7Y2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9fSksIW8mJmMoYSkpe3ZhciBsPXUoXCJQcm9taXNlXCIpLnByb3RvdHlwZS5jYXRjaDtmLmNhdGNoIT09bCYmcyhmLFwiY2F0Y2hcIixsLHt1bnNhZmU6ITB9KX19LDI0NzYxOih0LGUscik9Pnt2YXIgbixvLGksYT1yKDE3NzEpLHU9cig3NDA0MCksYz1yKDg1MTQ5KSxzPXIoMTc2OTApLGY9cigyMTYzNCksbD1yKDI5NTY3KSxwPXIoOTQyODgpLHY9cigzNDc1MikseT1yKDQ2Njc4KSxoPXIoODYxNTEpLGQ9cig2NjY5MCksYj1yKDY2NDUpLGc9cig1MTcxNiksbT1yKDU4MDQyKSx3PXIoMzYzNjApLnNldCxTPXIoMTAwMjgpLE89cig5MzE2MCksRT1yKDkxOTMyKSx4PXIoOTA1MzApLGo9cig5ODM2KSxQPXIoMTE1NTEpLFQ9cigzMTI4NyksQT1yKDE1OTU4KSxJPVwiUHJvbWlzZVwiLF89VC5DT05TVFJVQ1RPUixDPVQuUkVKRUNUSU9OX0VWRU5ULGs9VC5TVUJDTEFTU0lORyxSPWouZ2V0dGVyRm9yKEkpLEw9ai5zZXQsTT1QJiZQLnByb3RvdHlwZSxOPVAsVj1NLFU9cy5UeXBlRXJyb3IsRD1zLmRvY3VtZW50LEY9cy5wcm9jZXNzLEI9QS5mLEc9Qix6PSEhKEQmJkQuY3JlYXRlRXZlbnQmJnMuZGlzcGF0Y2hFdmVudCksSD1cInVuaGFuZGxlZHJlamVjdGlvblwiLFc9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuISghYih0KXx8IWQoZT10LnRoZW4pKSYmZX0scT1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpPWUudmFsdWUsYT0xPT09ZS5zdGF0ZSx1PWE/dC5vazp0LmZhaWwsYz10LnJlc29sdmUscz10LnJlamVjdCxsPXQuZG9tYWluO3RyeXt1PyhhfHwoMj09PWUucmVqZWN0aW9uJiZKKGUpLGUucmVqZWN0aW9uPTEpLCEwPT09dT9yPWk6KGwmJmwuZW50ZXIoKSxyPXUoaSksbCYmKGwuZXhpdCgpLG89ITApKSxyPT09dC5wcm9taXNlP3MoVShcIlByb21pc2UtY2hhaW4gY3ljbGVcIikpOihuPVcocikpP2YobixyLGMscyk6YyhyKSk6cyhpKX1jYXRjaCh0KXtsJiYhbyYmbC5leGl0KCkscyh0KX19LEs9ZnVuY3Rpb24odCxlKXt0Lm5vdGlmaWVkfHwodC5ub3RpZmllZD0hMCxTKChmdW5jdGlvbigpe2Zvcih2YXIgcixuPXQucmVhY3Rpb25zO3I9bi5nZXQoKTspcShyLHQpO3Qubm90aWZpZWQ9ITEsZSYmIXQucmVqZWN0aW9uJiZZKHQpfSkpKX0sJD1mdW5jdGlvbih0LGUscil7dmFyIG4sbzt6Pygobj1ELmNyZWF0ZUV2ZW50KFwiRXZlbnRcIikpLnByb21pc2U9ZSxuLnJlYXNvbj1yLG4uaW5pdEV2ZW50KHQsITEsITApLHMuZGlzcGF0Y2hFdmVudChuKSk6bj17cHJvbWlzZTplLHJlYXNvbjpyfSwhQyYmKG89c1tcIm9uXCIrdF0pP28obik6dD09PUgmJk8oXCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25cIixyKX0sWT1mdW5jdGlvbih0KXtmKHcscywoZnVuY3Rpb24oKXt2YXIgZSxyPXQuZmFjYWRlLG49dC52YWx1ZTtpZihRKHQpJiYoZT1FKChmdW5jdGlvbigpe2M/Ri5lbWl0KFwidW5oYW5kbGVkUmVqZWN0aW9uXCIsbixyKTokKEgscixuKX0pKSx0LnJlamVjdGlvbj1jfHxRKHQpPzI6MSxlLmVycm9yKSl0aHJvdyBlLnZhbHVlfSkpfSxRPWZ1bmN0aW9uKHQpe3JldHVybiAxIT09dC5yZWplY3Rpb24mJiF0LnBhcmVudH0sSj1mdW5jdGlvbih0KXtmKHcscywoZnVuY3Rpb24oKXt2YXIgZT10LmZhY2FkZTtjP0YuZW1pdChcInJlamVjdGlvbkhhbmRsZWRcIixlKTokKFwicmVqZWN0aW9uaGFuZGxlZFwiLGUsdC52YWx1ZSl9KSl9LFg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbihuKXt0KGUsbixyKX19LFo9ZnVuY3Rpb24odCxlLHIpe3QuZG9uZXx8KHQuZG9uZT0hMCxyJiYodD1yKSx0LnZhbHVlPWUsdC5zdGF0ZT0yLEsodCwhMCkpfSx0dD1mdW5jdGlvbiB0KGUscixuKXtpZighZS5kb25lKXtlLmRvbmU9ITAsbiYmKGU9bik7dHJ5e2lmKGUuZmFjYWRlPT09cil0aHJvdyBVKFwiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGZcIik7dmFyIG89VyhyKTtvP1MoKGZ1bmN0aW9uKCl7dmFyIG49e2RvbmU6ITF9O3RyeXtmKG8scixYKHQsbixlKSxYKFosbixlKSl9Y2F0Y2godCl7WihuLHQsZSl9fSkpOihlLnZhbHVlPXIsZS5zdGF0ZT0xLEsoZSwhMSkpfWNhdGNoKHQpe1ooe2RvbmU6ITF9LHQsZSl9fX07aWYoXyYmKFY9KE49ZnVuY3Rpb24odCl7Zyh0aGlzLFYpLGgodCksZihuLHRoaXMpO3ZhciBlPVIodGhpcyk7dHJ5e3QoWCh0dCxlKSxYKFosZSkpfWNhdGNoKHQpe1ooZSx0KX19KS5wcm90b3R5cGUsKG49ZnVuY3Rpb24odCl7TCh0aGlzLHt0eXBlOkksZG9uZTohMSxub3RpZmllZDohMSxwYXJlbnQ6ITEscmVhY3Rpb25zOm5ldyB4LHJlamVjdGlvbjohMSxzdGF0ZTowLHZhbHVlOnZvaWQgMH0pfSkucHJvdG90eXBlPWwoVixcInRoZW5cIiwoZnVuY3Rpb24odCxlKXt2YXIgcj1SKHRoaXMpLG49QihtKHRoaXMsTikpO3JldHVybiByLnBhcmVudD0hMCxuLm9rPSFkKHQpfHx0LG4uZmFpbD1kKGUpJiZlLG4uZG9tYWluPWM/Ri5kb21haW46dm9pZCAwLDA9PT1yLnN0YXRlP3IucmVhY3Rpb25zLmFkZChuKTpTKChmdW5jdGlvbigpe3EobixyKX0pKSxuLnByb21pc2V9KSksbz1mdW5jdGlvbigpe3ZhciB0PW5ldyBuLGU9Uih0KTt0aGlzLnByb21pc2U9dCx0aGlzLnJlc29sdmU9WCh0dCxlKSx0aGlzLnJlamVjdD1YKFosZSl9LEEuZj1CPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09Tnx8dm9pZCAwPT09dD9uZXcgbyh0KTpHKHQpfSwhdSYmZChQKSYmTSE9PU9iamVjdC5wcm90b3R5cGUpKXtpPU0udGhlbixrfHxsKE0sXCJ0aGVuXCIsKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcztyZXR1cm4gbmV3IE4oKGZ1bmN0aW9uKHQsZSl7ZihpLHIsdCxlKX0pKS50aGVuKHQsZSl9KSx7dW5zYWZlOiEwfSk7dHJ5e2RlbGV0ZSBNLmNvbnN0cnVjdG9yfWNhdGNoKHQpe31wJiZwKE0sVil9YSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLHdyYXA6ITAsZm9yY2VkOl99LHtQcm9taXNlOk59KSx2KE4sSSwhMSwhMCkseShJKX0sOTg2OTg6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDc0MDQwKSxpPXIoMTE1NTEpLGE9cigzNTc2NCksdT1yKDI1MzQpLGM9cig2NjY5MCkscz1yKDU4MDQyKSxmPXIoNjMzNTMpLGw9cigyOTU2NykscD1pJiZpLnByb3RvdHlwZTtpZihuKHt0YXJnZXQ6XCJQcm9taXNlXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ISFpJiZhKChmdW5jdGlvbigpe3AuZmluYWxseS5jYWxsKHt0aGVuOmZ1bmN0aW9uKCl7fX0sKGZ1bmN0aW9uKCl7fSkpfSkpfSx7ZmluYWxseTpmdW5jdGlvbih0KXt2YXIgZT1zKHRoaXMsdShcIlByb21pc2VcIikpLHI9Yyh0KTtyZXR1cm4gdGhpcy50aGVuKHI/ZnVuY3Rpb24ocil7cmV0dXJuIGYoZSx0KCkpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSl9OnQscj9mdW5jdGlvbihyKXtyZXR1cm4gZihlLHQoKSkudGhlbigoZnVuY3Rpb24oKXt0aHJvdyByfSkpfTp0KX19KSwhbyYmYyhpKSl7dmFyIHY9dShcIlByb21pc2VcIikucHJvdG90eXBlLmZpbmFsbHk7cC5maW5hbGx5IT09diYmbChwLFwiZmluYWxseVwiLHYse3Vuc2FmZTohMH0pfX0sMzE1NToodCxlLHIpPT57cigyNDc2MSkscig0NzUxOCkscig3MzMxNCkscig1MjYxNikscig1MjQxNCkscig1MTQwOSl9LDUyNjE2Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMTYzNCksaT1yKDg2MTUxKSxhPXIoMTU5NTgpLHU9cig5MTkzMiksYz1yKDg3NjMxKTtuKHt0YXJnZXQ6XCJQcm9taXNlXCIsc3RhdDohMCxmb3JjZWQ6cigyMzk0KX0se3JhY2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWEuZihlKSxuPXIucmVqZWN0LHM9dSgoZnVuY3Rpb24oKXt2YXIgYT1pKGUucmVzb2x2ZSk7Yyh0LChmdW5jdGlvbih0KXtvKGEsZSx0KS50aGVuKHIucmVzb2x2ZSxuKX0pKX0pKTtyZXR1cm4gcy5lcnJvciYmbihzLnZhbHVlKSxyLnByb21pc2V9fSl9LDUyNDE0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMTYzNCksaT1yKDE1OTU4KTtuKHt0YXJnZXQ6XCJQcm9taXNlXCIsc3RhdDohMCxmb3JjZWQ6cigzMTI4NykuQ09OU1RSVUNUT1J9LHtyZWplY3Q6ZnVuY3Rpb24odCl7dmFyIGU9aS5mKHRoaXMpO3JldHVybiBvKGUucmVqZWN0LHZvaWQgMCx0KSxlLnByb21pc2V9fSl9LDUxNDA5Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyNTM0KSxpPXIoNzQwNDApLGE9cigxMTU1MSksdT1yKDMxMjg3KS5DT05TVFJVQ1RPUixjPXIoNjMzNTMpLHM9byhcIlByb21pc2VcIiksZj1pJiYhdTtuKHt0YXJnZXQ6XCJQcm9taXNlXCIsc3RhdDohMCxmb3JjZWQ6aXx8dX0se3Jlc29sdmU6ZnVuY3Rpb24odCl7cmV0dXJuIGMoZiYmdGhpcz09PXM/YTp0aGlzLHQpfX0pfSwxMDQ1NzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNDM4NzIpLGk9cig4NjE1MSksYT1yKDQxNDMyKTtuKHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxmb3JjZWQ6IXIoMzU3NjQpKChmdW5jdGlvbigpe1JlZmxlY3QuYXBwbHkoKGZ1bmN0aW9uKCl7fSkpfSkpfSx7YXBwbHk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBvKGkodCksZSxhKHIpKX19KX0sODcyNjA6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDI1MzQpLGk9cig0Mzg3MiksYT1yKDkzNjg5KSx1PXIoNTE1KSxjPXIoNDE0MzIpLHM9cig2NjQ1KSxmPXIoMjg5OSksbD1yKDM1NzY0KSxwPW8oXCJSZWZsZWN0XCIsXCJjb25zdHJ1Y3RcIiksdj1PYmplY3QucHJvdG90eXBlLHk9W10ucHVzaCxoPWwoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4hKHAoKGZ1bmN0aW9uKCl7fSksW10sdClpbnN0YW5jZW9mIHQpfSkpLGQ9IWwoKGZ1bmN0aW9uKCl7cCgoZnVuY3Rpb24oKXt9KSl9KSksYj1ofHxkO24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwLGZvcmNlZDpiLHNoYW06Yn0se2NvbnN0cnVjdDpmdW5jdGlvbih0LGUpe3UodCksYyhlKTt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPDM/dDp1KGFyZ3VtZW50c1syXSk7aWYoZCYmIWgpcmV0dXJuIHAodCxlLHIpO2lmKHQ9PT1yKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IHQ7Y2FzZSAxOnJldHVybiBuZXcgdChlWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSk7Y2FzZSA0OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdKX12YXIgbj1bbnVsbF07cmV0dXJuIGkoeSxuLGUpLG5ldyhpKGEsdCxuKSl9dmFyIG89ci5wcm90b3R5cGUsbD1mKHMobyk/bzp2KSxiPWkodCxsLGUpO3JldHVybiBzKGIpP2I6bH19KX0sMzcwMjI6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDE1MDMpLGk9cig0MTQzMiksYT1yKDM3MzQyKSx1PXIoMzAxNDgpO24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwLGZvcmNlZDpyKDM1NzY0KSgoZnVuY3Rpb24oKXtSZWZsZWN0LmRlZmluZVByb3BlcnR5KHUuZih7fSwxLHt2YWx1ZToxfSksMSx7dmFsdWU6Mn0pfSkpLHNoYW06IW99LHtkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbih0LGUscil7aSh0KTt2YXIgbj1hKGUpO2kocik7dHJ5e3JldHVybiB1LmYodCxuLHIpLCEwfWNhdGNoKHQpe3JldHVybiExfX19KX0sMTQ4MTQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQxNDMyKSxpPXIoNzE5NTApLmY7bih7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtkZWxldGVQcm9wZXJ0eTpmdW5jdGlvbih0LGUpe3ZhciByPWkobyh0KSxlKTtyZXR1cm4hKHImJiFyLmNvbmZpZ3VyYWJsZSkmJmRlbGV0ZSB0W2VdfX0pfSw0ODkwODoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMTUwMyksaT1yKDQxNDMyKSxhPXIoNzE5NTApO24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwLHNoYW06IW99LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gYS5mKGkodCksZSl9fSl9LDEyNzkwOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0MTQzMiksaT1yKDk2Nzk2KTtuKHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxzaGFtOiFyKDYyMDE0KX0se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBpKG8odCkpfX0pfSwyMTg2MToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjE2MzQpLGk9cig2NjQ1KSxhPXIoNDE0MzIpLHU9cigxNTM3OCksYz1yKDcxOTUwKSxzPXIoOTY3OTYpO24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0OmZ1bmN0aW9uIHQoZSxyKXt2YXIgbixmLGw9YXJndW1lbnRzLmxlbmd0aDwzP2U6YXJndW1lbnRzWzJdO3JldHVybiBhKGUpPT09bD9lW3JdOihuPWMuZihlLHIpKT91KG4pP24udmFsdWU6dm9pZCAwPT09bi5nZXQ/dm9pZCAwOm8obi5nZXQsbCk6aShmPXMoZSkpP3QoZixyLGwpOnZvaWQgMH19KX0sMzI1NTM6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7aGFzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUgaW4gdH19KX0sNTU4NTk6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQxNDMyKSxpPXIoOTgxMDEpO24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7aXNFeHRlbnNpYmxlOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQpLGkodCl9fSl9LDE1NjQyOih0LGUscik9PntyKDE3NzEpKHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se293bktleXM6cigzODA1OCl9KX0sOTM0NjY6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDI1MzQpLGk9cig0MTQzMik7bih7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsc2hhbTohcigyNjQ0MSl9LHtwcmV2ZW50RXh0ZW5zaW9uczpmdW5jdGlvbih0KXtpKHQpO3RyeXt2YXIgZT1vKFwiT2JqZWN0XCIsXCJwcmV2ZW50RXh0ZW5zaW9uc1wiKTtyZXR1cm4gZSYmZSh0KSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19fSl9LDQ1NTM4Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0MTQzMiksaT1yKDExMzkpLGE9cig5NDI4OCk7YSYmbih7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtzZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0LGUpe28odCksaShlKTt0cnl7cmV0dXJuIGEodCxlKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19fSl9LDUyODMzOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMTYzNCksaT1yKDQxNDMyKSxhPXIoNjY0NSksdT1yKDE1Mzc4KSxjPXIoMzU3NjQpLHM9cigzMDE0OCksZj1yKDcxOTUwKSxsPXIoOTY3OTYpLHA9cig5ODkxMyk7bih7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsZm9yY2VkOmMoKGZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9LGU9cy5mKG5ldyB0LFwiYVwiLHtjb25maWd1cmFibGU6ITB9KTtyZXR1cm4hMSE9PVJlZmxlY3Quc2V0KHQucHJvdG90eXBlLFwiYVwiLDEsZSl9KSl9LHtzZXQ6ZnVuY3Rpb24gdChlLHIsbil7dmFyIGMsdix5LGg9YXJndW1lbnRzLmxlbmd0aDw0P2U6YXJndW1lbnRzWzNdLGQ9Zi5mKGkoZSkscik7aWYoIWQpe2lmKGEodj1sKGUpKSlyZXR1cm4gdCh2LHIsbixoKTtkPXAoMCl9aWYodShkKSl7aWYoITE9PT1kLndyaXRhYmxlfHwhYShoKSlyZXR1cm4hMTtpZihjPWYuZihoLHIpKXtpZihjLmdldHx8Yy5zZXR8fCExPT09Yy53cml0YWJsZSlyZXR1cm4hMTtjLnZhbHVlPW4scy5mKGgscixjKX1lbHNlIHMuZihoLHIscCgwLG4pKX1lbHNle2lmKHZvaWQgMD09PSh5PWQuc2V0KSlyZXR1cm4hMTtvKHksaCxuKX1yZXR1cm4hMH19KX0sODU2MjM6KHQsZSxyKT0+e3ZhciBuPXIoMTUwMyksbz1yKDE3NjkwKSxpPXIoNDQ3NjMpLGE9cig3NTkwMyksdT1yKDM1OTQ4KSxjPXIoNTE3NDYpLHM9cig3MDQzKS5mLGY9cig1OTc5MiksbD1yKDgzNzU5KSxwPXIoODQ2MDApLHY9cig3Nzc3NSkseT1yKDUwMjU0KSxoPXIoODU4NzcpLGQ9cigyOTU2NyksYj1yKDM1NzY0KSxnPXIoMzYwMzYpLG09cig5ODM2KS5lbmZvcmNlLHc9cig0NjY3OCksUz1yKDkwNTc2KSxPPXIoMzkzMTApLEU9cig1NjEyMykseD1TKFwibWF0Y2hcIiksaj1vLlJlZ0V4cCxQPWoucHJvdG90eXBlLFQ9by5TeW50YXhFcnJvcixBPWkoUC5leGVjKSxJPWkoXCJcIi5jaGFyQXQpLF89aShcIlwiLnJlcGxhY2UpLEM9aShcIlwiLmluZGV4T2YpLGs9aShcIlwiLnNsaWNlKSxSPS9eXFw/PFteXFxzXFxkISMlJiorPD0+QF5dW15cXHMhIyUmKis8PT5AXl0qPi8sTD0vYS9nLE09L2EvZyxOPW5ldyBqKEwpIT09TCxWPXkuTUlTU0VEX1NUSUNLWSxVPXkuVU5TVVBQT1JURURfWTtpZihhKFwiUmVnRXhwXCIsbiYmKCFOfHxWfHxPfHxFfHxiKChmdW5jdGlvbigpe3JldHVybiBNW3hdPSExLGooTCkhPT1MfHxqKE0pPT09TXx8XCIvYS9pXCIhPT1TdHJpbmcoaihMLFwiaVwiKSl9KSkpKSl7Zm9yKHZhciBEPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvLGksYSxzLHk9ZihQLHRoaXMpLGg9bCh0KSxkPXZvaWQgMD09PWUsYj1bXSx3PXQ7aWYoIXkmJmgmJmQmJnQuY29uc3RydWN0b3I9PT1EKXJldHVybiB0O2lmKChofHxmKFAsdCkpJiYodD10LnNvdXJjZSxkJiYoZT12KHcpKSksdD12b2lkIDA9PT10P1wiXCI6cCh0KSxlPXZvaWQgMD09PWU/XCJcIjpwKGUpLHc9dCxPJiZcImRvdEFsbFwiaW4gTCYmKG49ISFlJiZDKGUsXCJzXCIpPi0xKSYmKGU9XyhlLC9zL2csXCJcIikpLHI9ZSxWJiZcInN0aWNreVwiaW4gTCYmKG89ISFlJiZDKGUsXCJ5XCIpPi0xKSYmVSYmKGU9XyhlLC95L2csXCJcIikpLEUmJihpPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLG49MCxvPVwiXCIsaT1bXSxhPXt9LHU9ITEsYz0hMSxzPTAsZj1cIlwiO248PXI7bisrKXtpZihcIlxcXFxcIj09PShlPUkodCxuKSkpZSs9SSh0LCsrbik7ZWxzZSBpZihcIl1cIj09PWUpdT0hMTtlbHNlIGlmKCF1KXN3aXRjaCghMCl7Y2FzZVwiW1wiPT09ZTp1PSEwO2JyZWFrO2Nhc2VcIihcIj09PWU6QShSLGsodCxuKzEpKSYmKG4rPTIsYz0hMCksbys9ZSxzKys7Y29udGludWU7Y2FzZVwiPlwiPT09ZSYmYzppZihcIlwiPT09Znx8ZyhhLGYpKXRocm93IG5ldyBUKFwiSW52YWxpZCBjYXB0dXJlIGdyb3VwIG5hbWVcIik7YVtmXT0hMCxpW2kubGVuZ3RoXT1bZixzXSxjPSExLGY9XCJcIjtjb250aW51ZX1jP2YrPWU6bys9ZX1yZXR1cm5bbyxpXX0odCksdD1pWzBdLGI9aVsxXSksYT11KGoodCxlKSx5P3RoaXM6UCxEKSwobnx8b3x8Yi5sZW5ndGgpJiYocz1tKGEpLG4mJihzLmRvdEFsbD0hMCxzLnJhdz1EKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLG49MCxvPVwiXCIsaT0hMTtuPD1yO24rKylcIlxcXFxcIiE9PShlPUkodCxuKSk/aXx8XCIuXCIhPT1lPyhcIltcIj09PWU/aT0hMDpcIl1cIj09PWUmJihpPSExKSxvKz1lKTpvKz1cIltcXFxcc1xcXFxTXVwiOm8rPWUrSSh0LCsrbik7cmV0dXJuIG99KHQpLHIpKSxvJiYocy5zdGlja3k9ITApLGIubGVuZ3RoJiYocy5ncm91cHM9YikpLHQhPT13KXRyeXtjKGEsXCJzb3VyY2VcIixcIlwiPT09dz9cIig/OilcIjp3KX1jYXRjaCh0KXt9cmV0dXJuIGF9LEY9cyhqKSxCPTA7Ri5sZW5ndGg+QjspaChELGosRltCKytdKTtQLmNvbnN0cnVjdG9yPUQsRC5wcm90b3R5cGU9UCxkKG8sXCJSZWdFeHBcIixELHtjb25zdHJ1Y3RvcjohMH0pfXcoXCJSZWdFeHBcIil9LDIwMDQ2Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxMzE2NCk7bih7dGFyZ2V0OlwiUmVnRXhwXCIscHJvdG86ITAsZm9yY2VkOi8uLy5leGVjIT09b30se2V4ZWM6b30pfSwxMDA6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApLG89cigxNTAzKSxpPXIoMzQzMzEpLGE9cigxODU0MiksdT1yKDM1NzY0KSxjPW4uUmVnRXhwLHM9Yy5wcm90b3R5cGU7byYmdSgoZnVuY3Rpb24oKXt2YXIgdD0hMDt0cnl7YyhcIi5cIixcImRcIil9Y2F0Y2goZSl7dD0hMX12YXIgZT17fSxyPVwiXCIsbj10P1wiZGdpbXN5XCI6XCJnaW1zeVwiLG89ZnVuY3Rpb24odCxuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcis9biwhMH19KX0saT17ZG90QWxsOlwic1wiLGdsb2JhbDpcImdcIixpZ25vcmVDYXNlOlwiaVwiLG11bHRpbGluZTpcIm1cIixzdGlja3k6XCJ5XCJ9O2Zvcih2YXIgYSBpbiB0JiYoaS5oYXNJbmRpY2VzPVwiZFwiKSxpKW8oYSxpW2FdKTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLFwiZmxhZ3NcIikuZ2V0LmNhbGwoZSkhPT1ufHxyIT09bn0pKSYmaShzLFwiZmxhZ3NcIix7Y29uZmlndXJhYmxlOiEwLGdldDphfSl9LDYzNTMwOih0LGUscik9Pnt2YXIgbj1yKDk5MTI5KS5QUk9QRVIsbz1yKDI5NTY3KSxpPXIoNDE0MzIpLGE9cig4NDYwMCksdT1yKDM1NzY0KSxjPXIoNzc3NzUpLHM9XCJ0b1N0cmluZ1wiLGY9UmVnRXhwLnByb3RvdHlwZVtzXSxsPXUoKGZ1bmN0aW9uKCl7cmV0dXJuXCIvYS9iXCIhPT1mLmNhbGwoe3NvdXJjZTpcImFcIixmbGFnczpcImJcIn0pfSkpLHA9biYmZi5uYW1lIT09czsobHx8cCkmJm8oUmVnRXhwLnByb3RvdHlwZSxzLChmdW5jdGlvbigpe3ZhciB0PWkodGhpcyk7cmV0dXJuXCIvXCIrYSh0LnNvdXJjZSkrXCIvXCIrYShjKHQpKX0pLHt1bnNhZmU6ITB9KX0sOTAxMjA6KHQsZSxyKT0+e3IoMzg4MzMpKFwiU2V0XCIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19KSxyKDUzOTg1KSl9LDg0NDE0Oih0LGUscik9PntyKDkwMTIwKX0sMjgzNzQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDk0NjYzKTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cig0MDgxMikoXCJhbmNob3JcIil9LHthbmNob3I6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyxcImFcIixcIm5hbWVcIix0KX19KX0sNjQ2Nzc6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDk0NjYzKTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cig0MDgxMikoXCJiaWdcIil9LHtiaWc6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLFwiYmlnXCIsXCJcIixcIlwiKX19KX0sMTAwNjk6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDk0NjYzKTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cig0MDgxMikoXCJibGlua1wiKX0se2JsaW5rOmZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyxcImJsaW5rXCIsXCJcIixcIlwiKX19KX0sMjEzOTY6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDk0NjYzKTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cig0MDgxMikoXCJib2xkXCIpfSx7Ym9sZDpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsXCJiXCIsXCJcIixcIlwiKX19KX0sMzE4MzE6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDE3MjcwKS5jb2RlQXQ7bih7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITB9LHtjb2RlUG9pbnRBdDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQpfX0pfSw4MjM0MjoodCxlLHIpPT57dmFyIG4sbz1yKDE3NzEpLGk9cig1MzE4NSksYT1yKDcxOTUwKS5mLHU9cig0ODA3MyksYz1yKDg0NjAwKSxzPXIoNjQ5NDYpLGY9cigxNTI3KSxsPXIoODMwNzEpLHA9cig3NDA0MCksdj1pKFwiXCIuZW5kc1dpdGgpLHk9aShcIlwiLnNsaWNlKSxoPU1hdGgubWluLGQ9bChcImVuZHNXaXRoXCIpO28oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDohKCFwJiYhZCYmKG49YShTdHJpbmcucHJvdG90eXBlLFwiZW5kc1dpdGhcIiksbiYmIW4ud3JpdGFibGUpfHxkKX0se2VuZHNXaXRoOmZ1bmN0aW9uKHQpe3ZhciBlPWMoZih0aGlzKSk7cyh0KTt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxuPWUubGVuZ3RoLG89dm9pZCAwPT09cj9uOmgodShyKSxuKSxpPWModCk7cmV0dXJuIHY/dihlLGksbyk6eShlLG8taS5sZW5ndGgsbyk9PT1pfX0pfSw1NTkxMzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTQ2NjMpO24oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDpyKDQwODEyKShcImZpeGVkXCIpfSx7Zml4ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLFwidHRcIixcIlwiLFwiXCIpfX0pfSwzMDk5Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig5NDY2Myk7bih7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOnIoNDA4MTIpKFwiZm9udGNvbG9yXCIpfSx7Zm9udGNvbG9yOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsXCJmb250XCIsXCJjb2xvclwiLHQpfX0pfSwzMTEyNzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTQ2NjMpO24oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDpyKDQwODEyKShcImZvbnRzaXplXCIpfSx7Zm9udHNpemU6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyxcImZvbnRcIixcInNpemVcIix0KX19KX0sMTM3MDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNDQ3NjMpLGk9cig4ODQyNSksYT1SYW5nZUVycm9yLHU9U3RyaW5nLmZyb21DaGFyQ29kZSxjPVN0cmluZy5mcm9tQ29kZVBvaW50LHM9byhbXS5qb2luKTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixzdGF0OiEwLGFyaXR5OjEsZm9yY2VkOiEhYyYmMSE9PWMubGVuZ3RofSx7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbih0KXtmb3IodmFyIGUscj1bXSxuPWFyZ3VtZW50cy5sZW5ndGgsbz0wO24+bzspe2lmKGU9K2FyZ3VtZW50c1tvKytdLGkoZSwxMTE0MTExKSE9PWUpdGhyb3cgYShlK1wiIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnRcIik7cltvXT1lPDY1NTM2P3UoZSk6dSg1NTI5NisoKGUtPTY1NTM2KT4+MTApLGUlMTAyNCs1NjMyMCl9cmV0dXJuIHMocixcIlwiKX19KX0sODU5Mzg6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ0NzYzKSxpPXIoNjQ5NDYpLGE9cigxNTI3KSx1PXIoODQ2MDApLGM9cig4MzA3MSkscz1vKFwiXCIuaW5kZXhPZik7bih7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOiFjKFwiaW5jbHVkZXNcIil9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4hIX5zKHUoYSh0aGlzKSksdShpKHQpKSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LDk1Njk0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig5NDY2Myk7bih7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOnIoNDA4MTIpKFwiaXRhbGljc1wiKX0se2l0YWxpY3M6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLFwiaVwiLFwiXCIsXCJcIil9fSl9LDgxOTEzOih0LGUscik9Pnt2YXIgbj1yKDE3MjcwKS5jaGFyQXQsbz1yKDg0NjAwKSxpPXIoOTgzNiksYT1yKDI4NDMxKSx1PXIoNDk1NTgpLGM9XCJTdHJpbmcgSXRlcmF0b3JcIixzPWkuc2V0LGY9aS5nZXR0ZXJGb3IoYyk7YShTdHJpbmcsXCJTdHJpbmdcIiwoZnVuY3Rpb24odCl7cyh0aGlzLHt0eXBlOmMsc3RyaW5nOm8odCksaW5kZXg6MH0pfSksKGZ1bmN0aW9uKCl7dmFyIHQsZT1mKHRoaXMpLHI9ZS5zdHJpbmcsbz1lLmluZGV4O3JldHVybiBvPj1yLmxlbmd0aD91KHZvaWQgMCwhMCk6KHQ9bihyLG8pLGUuaW5kZXgrPXQubGVuZ3RoLHUodCwhMSkpfSkpfSw4MTkzMToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTQ2NjMpO24oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDpyKDQwODEyKShcImxpbmtcIil9LHtsaW5rOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsXCJhXCIsXCJocmVmXCIsdCl9fSl9LDQyNjY0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMTYzNCksaT1yKDUzMTg1KSxhPXIoNDk0NzcpLHU9cig0OTU1OCksYz1yKDE1MjcpLHM9cig0ODA3MyksZj1yKDg0NjAwKSxsPXIoNDE0MzIpLHA9cigyNDEwNCksdj1yKDU3NjcxKSx5PXIoODM3NTkpLGg9cig3Nzc3NSksZD1yKDgyMDYzKSxiPXIoMjk1NjcpLGc9cigzNTc2NCksbT1yKDkwNTc2KSx3PXIoNTgwNDIpLFM9cig1MTc5MiksTz1yKDk1NjY3KSxFPXIoOTgzNikseD1yKDc0MDQwKSxqPW0oXCJtYXRjaEFsbFwiKSxQPVwiUmVnRXhwIFN0cmluZ1wiLFQ9UCtcIiBJdGVyYXRvclwiLEE9RS5zZXQsST1FLmdldHRlckZvcihUKSxfPVJlZ0V4cC5wcm90b3R5cGUsQz1UeXBlRXJyb3Isaz1pKFwiXCIuaW5kZXhPZiksUj1pKFwiXCIubWF0Y2hBbGwpLEw9ISFSJiYhZygoZnVuY3Rpb24oKXtSKFwiYVwiLC8uLyl9KSksTT1hKChmdW5jdGlvbih0LGUscixuKXtBKHRoaXMse3R5cGU6VCxyZWdleHA6dCxzdHJpbmc6ZSxnbG9iYWw6cix1bmljb2RlOm4sZG9uZTohMX0pfSksUCwoZnVuY3Rpb24oKXt2YXIgdD1JKHRoaXMpO2lmKHQuZG9uZSlyZXR1cm4gdSh2b2lkIDAsITApO3ZhciBlPXQucmVnZXhwLHI9dC5zdHJpbmcsbj1PKGUscik7cmV0dXJuIG51bGw9PT1uPyh0LmRvbmU9ITAsdSh2b2lkIDAsITApKTp0Lmdsb2JhbD8oXCJcIj09PWYoblswXSkmJihlLmxhc3RJbmRleD1TKHIscyhlLmxhc3RJbmRleCksdC51bmljb2RlKSksdShuLCExKSk6KHQuZG9uZT0hMCx1KG4sITEpKX0pKSxOPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvPWwodGhpcyksaT1mKHQpLGE9dyhvLFJlZ0V4cCksdT1mKGgobykpO3JldHVybiBlPW5ldyBhKGE9PT1SZWdFeHA/by5zb3VyY2U6byx1KSxyPSEhfmsodSxcImdcIiksbj0hIX5rKHUsXCJ1XCIpLGUubGFzdEluZGV4PXMoby5sYXN0SW5kZXgpLG5ldyBNKGUsaSxyLG4pfTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6TH0se21hdGNoQWxsOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGE9Yyh0aGlzKTtpZihwKHQpKXtpZihMKXJldHVybiBSKGEsdCl9ZWxzZXtpZih5KHQpJiYoZT1mKGMoaCh0KSkpLCF+ayhlLFwiZ1wiKSkpdGhyb3cgQyhcImAubWF0Y2hBbGxgIGRvZXMgbm90IGFsbG93IG5vbi1nbG9iYWwgcmVnZXhlc1wiKTtpZihMKXJldHVybiBSKGEsdCk7aWYodm9pZCAwPT09KG49ZCh0LGopKSYmeCYmXCJSZWdFeHBcIj09PXYodCkmJihuPU4pLG4pcmV0dXJuIG8obix0LGEpfXJldHVybiByPWYoYSksaT1uZXcgUmVnRXhwKHQsXCJnXCIpLHg/byhOLGkscik6aVtqXShyKX19KSx4fHxqIGluIF98fGIoXyxqLE4pfSwyNTczNDoodCxlLHIpPT57dmFyIG49cigyMTYzNCksbz1yKDEwMzI1KSxpPXIoNDE0MzIpLGE9cigyNDEwNCksdT1yKDQ4MDczKSxjPXIoODQ2MDApLHM9cigxNTI3KSxmPXIoODIwNjMpLGw9cig1MTc5MikscD1yKDk1NjY3KTtvKFwibWF0Y2hcIiwoZnVuY3Rpb24odCxlLHIpe3JldHVybltmdW5jdGlvbihlKXt2YXIgcj1zKHRoaXMpLG89YShlKT92b2lkIDA6ZihlLHQpO3JldHVybiBvP24obyxlLHIpOm5ldyBSZWdFeHAoZSlbdF0oYyhyKSl9LGZ1bmN0aW9uKHQpe3ZhciBuPWkodGhpcyksbz1jKHQpLGE9cihlLG4sbyk7aWYoYS5kb25lKXJldHVybiBhLnZhbHVlO2lmKCFuLmdsb2JhbClyZXR1cm4gcChuLG8pO3ZhciBzPW4udW5pY29kZTtuLmxhc3RJbmRleD0wO2Zvcih2YXIgZix2PVtdLHk9MDtudWxsIT09KGY9cChuLG8pKTspe3ZhciBoPWMoZlswXSk7dlt5XT1oLFwiXCI9PT1oJiYobi5sYXN0SW5kZXg9bChvLHUobi5sYXN0SW5kZXgpLHMpKSx5Kyt9cmV0dXJuIDA9PT15P251bGw6dn1dfSkpfSwyMjg5MDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNTY4NTIpLmVuZDtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cigyMjM0OCl9LHtwYWRFbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sOTczNjc6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDU2ODUyKS5zdGFydDtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cigyMjM0OCl9LHtwYWRTdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSw4NjY5Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0NDc2MyksaT1yKDYyOTk4KSxhPXIoMjM0NiksdT1yKDg0NjAwKSxjPXIoNjI1MDMpLHM9byhbXS5wdXNoKSxmPW8oW10uam9pbik7bih7dGFyZ2V0OlwiU3RyaW5nXCIsc3RhdDohMH0se3JhdzpmdW5jdGlvbih0KXt2YXIgZT1pKGEodCkucmF3KSxyPWMoZSk7aWYoIXIpcmV0dXJuXCJcIjtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCxvPVtdLGw9MDs7KXtpZihzKG8sdShlW2wrK10pKSxsPT09cilyZXR1cm4gZihvLFwiXCIpO2w8biYmcyhvLHUoYXJndW1lbnRzW2xdKSl9fX0pfSwxMDM2MDoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITB9LHtyZXBlYXQ6cigzNDQ1OCl9KX0sMTg1Mzc6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDIxNjM0KSxpPXIoNDQ3NjMpLGE9cigxNTI3KSx1PXIoNjY2OTApLGM9cigyNDEwNCkscz1yKDgzNzU5KSxmPXIoODQ2MDApLGw9cig4MjA2MykscD1yKDc3Nzc1KSx2PXIoNDYwNzkpLHk9cig5MDU3NiksaD1yKDc0MDQwKSxkPXkoXCJyZXBsYWNlXCIpLGI9VHlwZUVycm9yLGc9aShcIlwiLmluZGV4T2YpLG09aShcIlwiLnJlcGxhY2UpLHc9aShcIlwiLnNsaWNlKSxTPU1hdGgubWF4LE89ZnVuY3Rpb24odCxlLHIpe3JldHVybiByPnQubGVuZ3RoPy0xOlwiXCI9PT1lP3I6Zyh0LGUscil9O24oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwfSx7cmVwbGFjZUFsbDpmdW5jdGlvbih0LGUpe3ZhciByLG4saSx5LEUseCxqLFAsVCxBPWEodGhpcyksST0wLF89MCxDPVwiXCI7aWYoIWModCkpe2lmKChyPXModCkpJiYobj1mKGEocCh0KSkpLCF+ZyhuLFwiZ1wiKSkpdGhyb3cgYihcImAucmVwbGFjZUFsbGAgZG9lcyBub3QgYWxsb3cgbm9uLWdsb2JhbCByZWdleGVzXCIpO2lmKGk9bCh0LGQpKXJldHVybiBvKGksdCxBLGUpO2lmKGgmJnIpcmV0dXJuIG0oZihBKSx0LGUpfWZvcih5PWYoQSksRT1mKHQpLCh4PXUoZSkpfHwoZT1mKGUpKSxqPUUubGVuZ3RoLFA9UygxLGopLEk9Tyh5LEUsMCk7LTEhPT1JOylUPXg/ZihlKEUsSSx5KSk6dihFLHksSSxbXSx2b2lkIDAsZSksQys9dyh5LF8sSSkrVCxfPUkraixJPU8oeSxFLEkrUCk7cmV0dXJuIF88eS5sZW5ndGgmJihDKz13KHksXykpLEN9fSl9LDQ0NDk5Oih0LGUscik9Pnt2YXIgbj1yKDQzODcyKSxvPXIoMjE2MzQpLGk9cig0NDc2MyksYT1yKDEwMzI1KSx1PXIoMzU3NjQpLGM9cig0MTQzMikscz1yKDY2NjkwKSxmPXIoMjQxMDQpLGw9cig5NzA0MikscD1yKDQ4MDczKSx2PXIoODQ2MDApLHk9cigxNTI3KSxoPXIoNTE3OTIpLGQ9cig4MjA2MyksYj1yKDQ2MDc5KSxnPXIoOTU2NjcpLG09cig5MDU3NikoXCJyZXBsYWNlXCIpLHc9TWF0aC5tYXgsUz1NYXRoLm1pbixPPWkoW10uY29uY2F0KSxFPWkoW10ucHVzaCkseD1pKFwiXCIuaW5kZXhPZiksaj1pKFwiXCIuc2xpY2UpLFA9XCIkMFwiPT09XCJhXCIucmVwbGFjZSgvLi8sXCIkMFwiKSxUPSEhLy4vW21dJiZcIlwiPT09Ly4vW21dKFwiYVwiLFwiJDBcIik7YShcInJlcGxhY2VcIiwoZnVuY3Rpb24odCxlLHIpe3ZhciBpPVQ/XCIkXCI6XCIkMFwiO3JldHVybltmdW5jdGlvbih0LHIpe3ZhciBuPXkodGhpcyksaT1mKHQpP3ZvaWQgMDpkKHQsbSk7cmV0dXJuIGk/byhpLHQsbixyKTpvKGUsdihuKSx0LHIpfSxmdW5jdGlvbih0LG8pe3ZhciBhPWModGhpcyksdT12KHQpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBvJiYtMT09PXgobyxpKSYmLTE9PT14KG8sXCIkPFwiKSl7dmFyIGY9cihlLGEsdSxvKTtpZihmLmRvbmUpcmV0dXJuIGYudmFsdWV9dmFyIHk9cyhvKTt5fHwobz12KG8pKTt2YXIgZCxtPWEuZ2xvYmFsO20mJihkPWEudW5pY29kZSxhLmxhc3RJbmRleD0wKTtmb3IodmFyIFAsVD1bXTtudWxsIT09KFA9ZyhhLHUpKSYmKEUoVCxQKSxtKTspXCJcIj09PXYoUFswXSkmJihhLmxhc3RJbmRleD1oKHUscChhLmxhc3RJbmRleCksZCkpO2Zvcih2YXIgQSxJPVwiXCIsXz0wLEM9MDtDPFQubGVuZ3RoO0MrKyl7Zm9yKHZhciBrLFI9digoUD1UW0NdKVswXSksTD13KFMobChQLmluZGV4KSx1Lmxlbmd0aCksMCksTT1bXSxOPTE7TjxQLmxlbmd0aDtOKyspRShNLHZvaWQgMD09PShBPVBbTl0pP0E6U3RyaW5nKEEpKTt2YXIgVj1QLmdyb3VwcztpZih5KXt2YXIgVT1PKFtSXSxNLEwsdSk7dm9pZCAwIT09ViYmRShVLFYpLGs9dihuKG8sdm9pZCAwLFUpKX1lbHNlIGs9YihSLHUsTCxNLFYsbyk7TD49XyYmKEkrPWoodSxfLEwpK2ssXz1MK1IubGVuZ3RoKX1yZXR1cm4gSStqKHUsXyl9XX0pLCEhdSgoZnVuY3Rpb24oKXt2YXIgdD0vLi87cmV0dXJuIHQuZXhlYz1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0Lmdyb3Vwcz17YTpcIjdcIn0sdH0sXCI3XCIhPT1cIlwiLnJlcGxhY2UodCxcIiQ8YT5cIil9KSl8fCFQfHxUKX0sODQ3MTk6KHQsZSxyKT0+e3ZhciBuPXIoMjE2MzQpLG89cigxMDMyNSksaT1yKDQxNDMyKSxhPXIoMjQxMDQpLHU9cigxNTI3KSxjPXIoNjIzNzkpLHM9cig4NDYwMCksZj1yKDgyMDYzKSxsPXIoOTU2NjcpO28oXCJzZWFyY2hcIiwoZnVuY3Rpb24odCxlLHIpe3JldHVybltmdW5jdGlvbihlKXt2YXIgcj11KHRoaXMpLG89YShlKT92b2lkIDA6ZihlLHQpO3JldHVybiBvP24obyxlLHIpOm5ldyBSZWdFeHAoZSlbdF0ocyhyKSl9LGZ1bmN0aW9uKHQpe3ZhciBuPWkodGhpcyksbz1zKHQpLGE9cihlLG4sbyk7aWYoYS5kb25lKXJldHVybiBhLnZhbHVlO3ZhciB1PW4ubGFzdEluZGV4O2ModSwwKXx8KG4ubGFzdEluZGV4PTApO3ZhciBmPWwobixvKTtyZXR1cm4gYyhuLmxhc3RJbmRleCx1KXx8KG4ubGFzdEluZGV4PXUpLG51bGw9PT1mPy0xOmYuaW5kZXh9XX0pKX0sODM3MTI6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDk0NjYzKTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cig0MDgxMikoXCJzbWFsbFwiKX0se3NtYWxsOmZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyxcInNtYWxsXCIsXCJcIixcIlwiKX19KX0sNTUyNTk6KHQsZSxyKT0+e3ZhciBuPXIoNDM4NzIpLG89cigyMTYzNCksaT1yKDQ0NzYzKSxhPXIoMTAzMjUpLHU9cig0MTQzMiksYz1yKDI0MTA0KSxzPXIoODM3NTkpLGY9cigxNTI3KSxsPXIoNTgwNDIpLHA9cig1MTc5Miksdj1yKDQ4MDczKSx5PXIoODQ2MDApLGg9cig4MjA2MyksZD1yKDUxODAyKSxiPXIoOTU2NjcpLGc9cigxMzE2NCksbT1yKDUwMjU0KSx3PXIoMzU3NjQpLFM9bS5VTlNVUFBPUlRFRF9ZLE89NDI5NDk2NzI5NSxFPU1hdGgubWluLHg9W10ucHVzaCxqPWkoLy4vLmV4ZWMpLFA9aSh4KSxUPWkoXCJcIi5zbGljZSk7YShcInNwbGl0XCIsKGZ1bmN0aW9uKHQsZSxyKXt2YXIgaTtyZXR1cm4gaT1cImNcIj09PVwiYWJiY1wiLnNwbGl0KC8oYikqLylbMV18fDQhPT1cInRlc3RcIi5zcGxpdCgvKD86KS8sLTEpLmxlbmd0aHx8MiE9PVwiYWJcIi5zcGxpdCgvKD86YWIpKi8pLmxlbmd0aHx8NCE9PVwiLlwiLnNwbGl0KC8oLj8pKC4/KS8pLmxlbmd0aHx8XCIuXCIuc3BsaXQoLygpKCkvKS5sZW5ndGg+MXx8XCJcIi5zcGxpdCgvLj8vKS5sZW5ndGg/ZnVuY3Rpb24odCxyKXt2YXIgaT15KGYodGhpcykpLGE9dm9pZCAwPT09cj9POnI+Pj4wO2lmKDA9PT1hKXJldHVybltdO2lmKHZvaWQgMD09PXQpcmV0dXJuW2ldO2lmKCFzKHQpKXJldHVybiBvKGUsaSx0LGEpO2Zvcih2YXIgdSxjLGwscD1bXSx2PSh0Lmlnbm9yZUNhc2U/XCJpXCI6XCJcIikrKHQubXVsdGlsaW5lP1wibVwiOlwiXCIpKyh0LnVuaWNvZGU/XCJ1XCI6XCJcIikrKHQuc3RpY2t5P1wieVwiOlwiXCIpLGg9MCxiPW5ldyBSZWdFeHAodC5zb3VyY2UsditcImdcIik7KHU9byhnLGIsaSkpJiYhKChjPWIubGFzdEluZGV4KT5oJiYoUChwLFQoaSxoLHUuaW5kZXgpKSx1Lmxlbmd0aD4xJiZ1LmluZGV4PGkubGVuZ3RoJiZuKHgscCxkKHUsMSkpLGw9dVswXS5sZW5ndGgsaD1jLHAubGVuZ3RoPj1hKSk7KWIubGFzdEluZGV4PT09dS5pbmRleCYmYi5sYXN0SW5kZXgrKztyZXR1cm4gaD09PWkubGVuZ3RoPyFsJiZqKGIsXCJcIil8fFAocCxcIlwiKTpQKHAsVChpLGgpKSxwLmxlbmd0aD5hP2QocCwwLGEpOnB9OlwiMFwiLnNwbGl0KHZvaWQgMCwwKS5sZW5ndGg/ZnVuY3Rpb24odCxyKXtyZXR1cm4gdm9pZCAwPT09dCYmMD09PXI/W106byhlLHRoaXMsdCxyKX06ZSxbZnVuY3Rpb24oZSxyKXt2YXIgbj1mKHRoaXMpLGE9YyhlKT92b2lkIDA6aChlLHQpO3JldHVybiBhP28oYSxlLG4scik6byhpLHkobiksZSxyKX0sZnVuY3Rpb24odCxuKXt2YXIgbz11KHRoaXMpLGE9eSh0KSxjPXIoaSxvLGEsbixpIT09ZSk7aWYoYy5kb25lKXJldHVybiBjLnZhbHVlO3ZhciBzPWwobyxSZWdFeHApLGY9by51bmljb2RlLGg9KG8uaWdub3JlQ2FzZT9cImlcIjpcIlwiKSsoby5tdWx0aWxpbmU/XCJtXCI6XCJcIikrKG8udW5pY29kZT9cInVcIjpcIlwiKSsoUz9cImdcIjpcInlcIiksZD1uZXcgcyhTP1wiXig/OlwiK28uc291cmNlK1wiKVwiOm8saCksZz12b2lkIDA9PT1uP086bj4+PjA7aWYoMD09PWcpcmV0dXJuW107aWYoMD09PWEubGVuZ3RoKXJldHVybiBudWxsPT09YihkLGEpP1thXTpbXTtmb3IodmFyIG09MCx3PTAseD1bXTt3PGEubGVuZ3RoOyl7ZC5sYXN0SW5kZXg9Uz8wOnc7dmFyIGosQT1iKGQsUz9UKGEsdyk6YSk7aWYobnVsbD09PUF8fChqPUUodihkLmxhc3RJbmRleCsoUz93OjApKSxhLmxlbmd0aCkpPT09bSl3PXAoYSx3LGYpO2Vsc2V7aWYoUCh4LFQoYSxtLHcpKSx4Lmxlbmd0aD09PWcpcmV0dXJuIHg7Zm9yKHZhciBJPTE7STw9QS5sZW5ndGgtMTtJKyspaWYoUCh4LEFbSV0pLHgubGVuZ3RoPT09ZylyZXR1cm4geDt3PW09an19cmV0dXJuIFAoeCxUKGEsbSkpLHh9XX0pLCEhdygoZnVuY3Rpb24oKXt2YXIgdD0vKD86KS8sZT10LmV4ZWM7dC5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgcj1cImFiXCIuc3BsaXQodCk7cmV0dXJuIDIhPT1yLmxlbmd0aHx8XCJhXCIhPT1yWzBdfHxcImJcIiE9PXJbMV19KSksUyl9LDY4NjQzOih0LGUscik9Pnt2YXIgbixvPXIoMTc3MSksaT1yKDUzMTg1KSxhPXIoNzE5NTApLmYsdT1yKDQ4MDczKSxjPXIoODQ2MDApLHM9cig2NDk0NiksZj1yKDE1MjcpLGw9cig4MzA3MSkscD1yKDc0MDQwKSx2PWkoXCJcIi5zdGFydHNXaXRoKSx5PWkoXCJcIi5zbGljZSksaD1NYXRoLm1pbixkPWwoXCJzdGFydHNXaXRoXCIpO28oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDohKCFwJiYhZCYmKG49YShTdHJpbmcucHJvdG90eXBlLFwic3RhcnRzV2l0aFwiKSxuJiYhbi53cml0YWJsZSl8fGQpfSx7c3RhcnRzV2l0aDpmdW5jdGlvbih0KXt2YXIgZT1jKGYodGhpcykpO3ModCk7dmFyIHI9dShoKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGUubGVuZ3RoKSksbj1jKHQpO3JldHVybiB2P3YoZSxuLHIpOnkoZSxyLHIrbi5sZW5ndGgpPT09bn19KX0sNzU0OTc6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDk0NjYzKTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cig0MDgxMikoXCJzdHJpa2VcIil9LHtzdHJpa2U6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLFwic3RyaWtlXCIsXCJcIixcIlwiKX19KX0sNzA1NzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTQ2NjMpO24oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDpyKDQwODEyKShcInN1YlwiKX0se3N1YjpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsXCJzdWJcIixcIlwiLFwiXCIpfX0pfSw3MzIxNToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoOTQ2NjMpO24oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDpyKDQwODEyKShcInN1cFwiKX0se3N1cDpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsXCJzdXBcIixcIlwiLFwiXCIpfX0pfSw4MjY2NzoodCxlLHIpPT57cig1MDg5Nik7dmFyIG49cigxNzcxKSxvPXIoMzcxNTMpO24oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLG5hbWU6XCJ0cmltRW5kXCIsZm9yY2VkOlwiXCIudHJpbUVuZCE9PW99LHt0cmltRW5kOm99KX0sOTIwNDE6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDU0OTc2KTtuKHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxuYW1lOlwidHJpbVN0YXJ0XCIsZm9yY2VkOlwiXCIudHJpbUxlZnQhPT1vfSx7dHJpbUxlZnQ6b30pfSw1MDg5NjoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMzcxNTMpO24oe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLG5hbWU6XCJ0cmltRW5kXCIsZm9yY2VkOlwiXCIudHJpbVJpZ2h0IT09b30se3RyaW1SaWdodDpvfSl9LDE3NzUwOih0LGUscik9PntyKDkyMDQxKTt2YXIgbj1yKDE3NzEpLG89cig1NDk3Nik7bih7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsbmFtZTpcInRyaW1TdGFydFwiLGZvcmNlZDpcIlwiLnRyaW1TdGFydCE9PW99LHt0cmltU3RhcnQ6b30pfSwyNjI4NzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNjc2MTcpLnRyaW07bih7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOnIoNDA1MzEpKFwidHJpbVwiKX0se3RyaW06ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzKX19KX0sMTM2ODU6KHQsZSxyKT0+e3IoMzk4MzApKFwiYXN5bmNJdGVyYXRvclwiKX0sMzI5MzA6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDE3NjkwKSxpPXIoMjE2MzQpLGE9cig0NDc2MyksdT1yKDc0MDQwKSxjPXIoMTUwMykscz1yKDg1NDcwKSxmPXIoMzU3NjQpLGw9cigzNjAzNikscD1yKDU5NzkyKSx2PXIoNDE0MzIpLHk9cig2Mjk5OCksaD1yKDM3MzQyKSxkPXIoODQ2MDApLGI9cig5ODkxMyksZz1yKDI4OTkpLG09cig0MzUwNyksdz1yKDcwNDMpLFM9cig1NzcxOSksTz1yKDczODM0KSxFPXIoNzE5NTApLHg9cigzMDE0OCksaj1yKDk5ODEyKSxQPXIoMjc0NjIpLFQ9cigyOTU2NyksQT1yKDM0MzMxKSxJPXIoMTU4NzIpLF89cig5NTcwKSxDPXIoODUwOTgpLGs9cigyNzczOSksUj1yKDkwNTc2KSxMPXIoNzUyNDApLE09cigzOTgzMCksTj1yKDIwMTkpLFY9cigzNDc1MiksVT1yKDk4MzYpLEQ9cig1MTYzMCkuZm9yRWFjaCxGPV8oXCJoaWRkZW5cIiksQj1cIlN5bWJvbFwiLEc9XCJwcm90b3R5cGVcIix6PVUuc2V0LEg9VS5nZXR0ZXJGb3IoQiksVz1PYmplY3RbR10scT1vLlN5bWJvbCxLPXEmJnFbR10sJD1vLlR5cGVFcnJvcixZPW8uUU9iamVjdCxRPUUuZixKPXguZixYPVMuZixaPVAuZix0dD1hKFtdLnB1c2gpLGV0PUkoXCJzeW1ib2xzXCIpLHJ0PUkoXCJvcC1zeW1ib2xzXCIpLG50PUkoXCJ3a3NcIiksb3Q9IVl8fCFZW0ddfHwhWVtHXS5maW5kQ2hpbGQsaXQ9YyYmZigoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PWcoSih7fSxcImFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEoodGhpcyxcImFcIix7dmFsdWU6N30pLmF9fSkpLmF9KSk/ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVEoVyxlKTtuJiZkZWxldGUgV1tlXSxKKHQsZSxyKSxuJiZ0IT09VyYmSihXLGUsbil9OkosYXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1ldFt0XT1nKEspO3JldHVybiB6KHIse3R5cGU6Qix0YWc6dCxkZXNjcmlwdGlvbjplfSksY3x8KHIuZGVzY3JpcHRpb249ZSkscn0sdXQ9ZnVuY3Rpb24odCxlLHIpe3Q9PT1XJiZ1dChydCxlLHIpLHYodCk7dmFyIG49aChlKTtyZXR1cm4gdihyKSxsKGV0LG4pPyhyLmVudW1lcmFibGU/KGwodCxGKSYmdFtGXVtuXSYmKHRbRl1bbl09ITEpLHI9ZyhyLHtlbnVtZXJhYmxlOmIoMCwhMSl9KSk6KGwodCxGKXx8Sih0LEYsYigxLHt9KSksdFtGXVtuXT0hMCksaXQodCxuLHIpKTpKKHQsbixyKX0sY3Q9ZnVuY3Rpb24odCxlKXt2KHQpO3ZhciByPXkoZSksbj1tKHIpLmNvbmNhdChwdChyKSk7cmV0dXJuIEQobiwoZnVuY3Rpb24oZSl7YyYmIWkoc3QscixlKXx8dXQodCxlLHJbZV0pfSkpLHR9LHN0PWZ1bmN0aW9uKHQpe3ZhciBlPWgodCkscj1pKFosdGhpcyxlKTtyZXR1cm4hKHRoaXM9PT1XJiZsKGV0LGUpJiYhbChydCxlKSkmJighKHJ8fCFsKHRoaXMsZSl8fCFsKGV0LGUpfHxsKHRoaXMsRikmJnRoaXNbRl1bZV0pfHxyKX0sZnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj15KHQpLG49aChlKTtpZihyIT09V3x8IWwoZXQsbil8fGwocnQsbikpe3ZhciBvPVEocixuKTtyZXR1cm4hb3x8IWwoZXQsbil8fGwocixGKSYmcltGXVtuXXx8KG8uZW51bWVyYWJsZT0hMCksb319LGx0PWZ1bmN0aW9uKHQpe3ZhciBlPVgoeSh0KSkscj1bXTtyZXR1cm4gRChlLChmdW5jdGlvbih0KXtsKGV0LHQpfHxsKEMsdCl8fHR0KHIsdCl9KSkscn0scHQ9ZnVuY3Rpb24odCl7dmFyIGU9dD09PVcscj1YKGU/cnQ6eSh0KSksbj1bXTtyZXR1cm4gRChyLChmdW5jdGlvbih0KXshbChldCx0KXx8ZSYmIWwoVyx0KXx8dHQobixldFt0XSl9KSksbn07c3x8KFQoSz0ocT1mdW5jdGlvbigpe2lmKHAoSyx0aGlzKSl0aHJvdyAkKFwiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yXCIpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9kKGFyZ3VtZW50c1swXSk6dm9pZCAwLGU9ayh0KTtyZXR1cm4gYyYmb3QmJml0KFcsZSx7Y29uZmlndXJhYmxlOiEwLHNldDpmdW5jdGlvbiB0KHIpe3RoaXM9PT1XJiZpKHQscnQsciksbCh0aGlzLEYpJiZsKHRoaXNbRl0sZSkmJih0aGlzW0ZdW2VdPSExKSxpdCh0aGlzLGUsYigxLHIpKX19KSxhdChlLHQpfSlbR10sXCJ0b1N0cmluZ1wiLChmdW5jdGlvbigpe3JldHVybiBIKHRoaXMpLnRhZ30pKSxUKHEsXCJ3aXRob3V0U2V0dGVyXCIsKGZ1bmN0aW9uKHQpe3JldHVybiBhdChrKHQpLHQpfSkpLFAuZj1zdCx4LmY9dXQsai5mPWN0LEUuZj1mdCx3LmY9Uy5mPWx0LE8uZj1wdCxMLmY9ZnVuY3Rpb24odCl7cmV0dXJuIGF0KFIodCksdCl9LGMmJihBKEssXCJkZXNjcmlwdGlvblwiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEgodGhpcykuZGVzY3JpcHRpb259fSksdXx8VChXLFwicHJvcGVydHlJc0VudW1lcmFibGVcIixzdCx7dW5zYWZlOiEwfSkpKSxuKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsd3JhcDohMCxmb3JjZWQ6IXMsc2hhbTohc30se1N5bWJvbDpxfSksRChtKG50KSwoZnVuY3Rpb24odCl7TSh0KX0pKSxuKHt0YXJnZXQ6QixzdGF0OiEwLGZvcmNlZDohc30se3VzZVNldHRlcjpmdW5jdGlvbigpe290PSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXtvdD0hMX19KSxuKHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDohcyxzaGFtOiFjfSx7Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/Zyh0KTpjdChnKHQpLGUpfSxkZWZpbmVQcm9wZXJ0eTp1dCxkZWZpbmVQcm9wZXJ0aWVzOmN0LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdH0pLG4oe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOiFzfSx7Z2V0T3duUHJvcGVydHlOYW1lczpsdH0pLE4oKSxWKHEsQiksQ1tGXT0hMH0sNzc4NjA6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDE1MDMpLGk9cigxNzY5MCksYT1yKDQ0NzYzKSx1PXIoMzYwMzYpLGM9cig2NjY5MCkscz1yKDU5NzkyKSxmPXIoODQ2MDApLGw9cigzNDMzMSkscD1yKDg2NTMxKSx2PWkuU3ltYm9sLHk9diYmdi5wcm90b3R5cGU7aWYobyYmYyh2KSYmKCEoXCJkZXNjcmlwdGlvblwiaW4geSl8fHZvaWQgMCE9PXYoKS5kZXNjcmlwdGlvbikpe3ZhciBoPXt9LGQ9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPDF8fHZvaWQgMD09PWFyZ3VtZW50c1swXT92b2lkIDA6Zihhcmd1bWVudHNbMF0pLGU9cyh5LHRoaXMpP25ldyB2KHQpOnZvaWQgMD09PXQ/digpOnYodCk7cmV0dXJuXCJcIj09PXQmJihoW2VdPSEwKSxlfTtwKGQsdiksZC5wcm90b3R5cGU9eSx5LmNvbnN0cnVjdG9yPWQ7dmFyIGI9XCJTeW1ib2woZGVzY3JpcHRpb24gZGV0ZWN0aW9uKVwiPT09U3RyaW5nKHYoXCJkZXNjcmlwdGlvbiBkZXRlY3Rpb25cIikpLGc9YSh5LnZhbHVlT2YpLG09YSh5LnRvU3RyaW5nKSx3PS9eU3ltYm9sXFwoKC4qKVxcKVteKV0rJC8sUz1hKFwiXCIucmVwbGFjZSksTz1hKFwiXCIuc2xpY2UpO2woeSxcImRlc2NyaXB0aW9uXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1nKHRoaXMpO2lmKHUoaCx0KSlyZXR1cm5cIlwiO3ZhciBlPW0odCkscj1iP08oZSw3LC0xKTpTKGUsdyxcIiQxXCIpO3JldHVyblwiXCI9PT1yP3ZvaWQgMDpyfX0pLG4oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6ITB9LHtTeW1ib2w6ZH0pfX0sOTE1NjE6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDI1MzQpLGk9cigzNjAzNiksYT1yKDg0NjAwKSx1PXIoMTU4NzIpLGM9cig3MjMzOSkscz11KFwic3RyaW5nLXRvLXN5bWJvbC1yZWdpc3RyeVwiKSxmPXUoXCJzeW1ib2wtdG8tc3RyaW5nLXJlZ2lzdHJ5XCIpO24oe3RhcmdldDpcIlN5bWJvbFwiLHN0YXQ6ITAsZm9yY2VkOiFjfSx7Zm9yOmZ1bmN0aW9uKHQpe3ZhciBlPWEodCk7aWYoaShzLGUpKXJldHVybiBzW2VdO3ZhciByPW8oXCJTeW1ib2xcIikoZSk7cmV0dXJuIHNbZV09cixmW3JdPWUscn19KX0sNDM3MDg6KHQsZSxyKT0+e3IoMzk4MzApKFwiaGFzSW5zdGFuY2VcIil9LDczMjQ5Oih0LGUscik9PntyKDM5ODMwKShcImlzQ29uY2F0U3ByZWFkYWJsZVwiKX0sODg4MDI6KHQsZSxyKT0+e3IoMzk4MzApKFwiaXRlcmF0b3JcIil9LDIwNDc2Oih0LGUscik9PntyKDMyOTMwKSxyKDkxNTYxKSxyKDM0MTY3KSxyKDg1NDczKSxyKDkzNjI0KX0sMzQxNjc6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDM2MDM2KSxpPXIoMTc3OTQpLGE9cig0MjI0OCksdT1yKDE1ODcyKSxjPXIoNzIzMzkpLHM9dShcInN5bWJvbC10by1zdHJpbmctcmVnaXN0cnlcIik7bih7dGFyZ2V0OlwiU3ltYm9sXCIsc3RhdDohMCxmb3JjZWQ6IWN9LHtrZXlGb3I6ZnVuY3Rpb24odCl7aWYoIWkodCkpdGhyb3cgVHlwZUVycm9yKGEodCkrXCIgaXMgbm90IGEgc3ltYm9sXCIpO2lmKG8ocyx0KSlyZXR1cm4gc1t0XX19KX0sMzk3MzE6KHQsZSxyKT0+e3IoMzk4MzApKFwibWF0Y2hcIil9LDYzMzc0Oih0LGUscik9PntyKDM5ODMwKShcInJlcGxhY2VcIil9LDgzMzM2Oih0LGUscik9PntyKDM5ODMwKShcInNlYXJjaFwiKX0sMjkwMDoodCxlLHIpPT57cigzOTgzMCkoXCJzcGVjaWVzXCIpfSw3ODY4MjoodCxlLHIpPT57cigzOTgzMCkoXCJzcGxpdFwiKX0sMTMyOTM6KHQsZSxyKT0+e3ZhciBuPXIoMzk4MzApLG89cigyMDE5KTtuKFwidG9QcmltaXRpdmVcIiksbygpfSw4ODE0NjoodCxlLHIpPT57dmFyIG49cigyNTM0KSxvPXIoMzk4MzApLGk9cigzNDc1Mik7byhcInRvU3RyaW5nVGFnXCIpLGkobihcIlN5bWJvbFwiKSxcIlN5bWJvbFwiKX0sNjgxMTc6KHQsZSxyKT0+e3IoMzk4MzApKFwidW5zY29wYWJsZXNcIil9LDY0NzUxOih0LGUscik9Pnt2YXIgbj1yKDQ0NzYzKSxvPXIoNzU4NDEpLGk9bihyKDk1NDEwKSksYT1vLmFUeXBlZEFycmF5OygwLG8uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoXCJjb3B5V2l0aGluXCIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkoYSh0aGlzKSx0LGUsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSkpfSw0NTk2MzoodCxlLHIpPT57dmFyIG49cig3NTg0MSksbz1yKDUxNjMwKS5ldmVyeSxpPW4uYVR5cGVkQXJyYXk7KDAsbi5leHBvcnRUeXBlZEFycmF5TWV0aG9kKShcImV2ZXJ5XCIsKGZ1bmN0aW9uKHQpe3JldHVybiBvKGkodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LDgwNzM1Oih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKSxvPXIoNDY0ODApLGk9cig3Mzg3NSksYT1yKDYwNzcyKSx1PXIoMjE2MzQpLGM9cig0NDc2Mykscz1yKDM1NzY0KSxmPW4uYVR5cGVkQXJyYXksbD1uLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QscD1jKFwiXCIuc2xpY2UpO2woXCJmaWxsXCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7Zih0aGlzKTt2YXIgcj1cIkJpZ1wiPT09cChhKHRoaXMpLDAsMyk/aSh0KTordDtyZXR1cm4gdShvLHRoaXMscixlPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxlPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSxzKChmdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIG5ldyBJbnQ4QXJyYXkoMikuZmlsbCh7dmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0Kyt9fSksMSE9PXR9KSkpfSw5NjY0NDoodCxlLHIpPT57dmFyIG49cig3NTg0MSksbz1yKDUxNjMwKS5maWx0ZXIsaT1yKDE2NTg2KSxhPW4uYVR5cGVkQXJyYXk7KDAsbi5leHBvcnRUeXBlZEFycmF5TWV0aG9kKShcImZpbHRlclwiLChmdW5jdGlvbih0KXt2YXIgZT1vKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIGkodGhpcyxlKX0pKX0sMTc1NDQ6KHQsZSxyKT0+e3ZhciBuPXIoNzU4NDEpLG89cig1MTYzMCkuZmluZEluZGV4LGk9bi5hVHlwZWRBcnJheTsoMCxuLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKFwiZmluZEluZGV4XCIsKGZ1bmN0aW9uKHQpe3JldHVybiBvKGkodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LDg5NDYxOih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKSxvPXIoNTE2MzApLmZpbmQsaT1uLmFUeXBlZEFycmF5OygwLG4uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoXCJmaW5kXCIsKGZ1bmN0aW9uKHQpe3JldHVybiBvKGkodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LDIzODgzOih0LGUscik9PntyKDkxNTQ4KShcIkZsb2F0MzJcIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdCh0aGlzLGUscixuKX19KSl9LDU1MjM2Oih0LGUscik9PntyKDkxNTQ4KShcIkZsb2F0NjRcIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdCh0aGlzLGUscixuKX19KSl9LDMxNDgxOih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKSxvPXIoNTE2MzApLmZvckVhY2gsaT1uLmFUeXBlZEFycmF5OygwLG4uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoXCJmb3JFYWNoXCIsKGZ1bmN0aW9uKHQpe28oaSh0aGlzKSx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKX0sNjAyMzg6KHQsZSxyKT0+e3ZhciBuPXIoOTYyNDIpOygwLHIoNzU4NDEpLmV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QpKFwiZnJvbVwiLHIoMjU4MTQpLG4pfSw5MzIzOih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKSxvPXIoOTgzODApLmluY2x1ZGVzLGk9bi5hVHlwZWRBcnJheTsoMCxuLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKFwiaW5jbHVkZXNcIiwoZnVuY3Rpb24odCl7cmV0dXJuIG8oaSh0aGlzKSx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKX0sNzMzNjoodCxlLHIpPT57dmFyIG49cig3NTg0MSksbz1yKDk4MzgwKS5pbmRleE9mLGk9bi5hVHlwZWRBcnJheTsoMCxuLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKFwiaW5kZXhPZlwiLChmdW5jdGlvbih0KXtyZXR1cm4gbyhpKHRoaXMpLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSw5NzU5NDoodCxlLHIpPT57cig5MTU0OCkoXCJJbnQxNlwiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0KHRoaXMsZSxyLG4pfX0pKX0sMjE3MjoodCxlLHIpPT57cig5MTU0OCkoXCJJbnQzMlwiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0KHRoaXMsZSxyLG4pfX0pKX0sMTEyOTc6KHQsZSxyKT0+e3IoOTE1NDgpKFwiSW50OFwiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0KHRoaXMsZSxyLG4pfX0pKX0sNjMzNDA6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApLG89cigzNTc2NCksaT1yKDQ0NzYzKSxhPXIoNzU4NDEpLHU9cig5NjEwNyksYz1yKDkwNTc2KShcIml0ZXJhdG9yXCIpLHM9bi5VaW50OEFycmF5LGY9aSh1LnZhbHVlcyksbD1pKHUua2V5cykscD1pKHUuZW50cmllcyksdj1hLmFUeXBlZEFycmF5LHk9YS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGg9cyYmcy5wcm90b3R5cGUsZD0hbygoZnVuY3Rpb24oKXtoW2NdLmNhbGwoWzFdKX0pKSxiPSEhaCYmaC52YWx1ZXMmJmhbY109PT1oLnZhbHVlcyYmXCJ2YWx1ZXNcIj09PWgudmFsdWVzLm5hbWUsZz1mdW5jdGlvbigpe3JldHVybiBmKHYodGhpcykpfTt5KFwiZW50cmllc1wiLChmdW5jdGlvbigpe3JldHVybiBwKHYodGhpcykpfSksZCkseShcImtleXNcIiwoZnVuY3Rpb24oKXtyZXR1cm4gbCh2KHRoaXMpKX0pLGQpLHkoXCJ2YWx1ZXNcIixnLGR8fCFiLHtuYW1lOlwidmFsdWVzXCJ9KSx5KGMsZyxkfHwhYix7bmFtZTpcInZhbHVlc1wifSl9LDc5MjAyOih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKSxvPXIoNDQ3NjMpLGk9bi5hVHlwZWRBcnJheSxhPW4uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCx1PW8oW10uam9pbik7YShcImpvaW5cIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUoaSh0aGlzKSx0KX0pKX0sOTcwMjk6KHQsZSxyKT0+e3ZhciBuPXIoNzU4NDEpLG89cig0Mzg3MiksaT1yKDI4OTYpLGE9bi5hVHlwZWRBcnJheTsoMCxuLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKFwibGFzdEluZGV4T2ZcIiwoZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gbyhpLGEodGhpcyksZT4xP1t0LGFyZ3VtZW50c1sxXV06W3RdKX0pKX0sNDYxMzg6KHQsZSxyKT0+e3ZhciBuPXIoNzU4NDEpLG89cig1MTYzMCkubWFwLGk9cig2NTc1KSxhPW4uYVR5cGVkQXJyYXk7KDAsbi5leHBvcnRUeXBlZEFycmF5TWV0aG9kKShcIm1hcFwiLChmdW5jdGlvbih0KXtyZXR1cm4gbyhhKHRoaXMpLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyhpKHQpKShlKX0pKX0pKX0sNjMxNzU6KHQsZSxyKT0+e3ZhciBuPXIoNzU4NDEpLG89cig5NjI0MiksaT1uLmFUeXBlZEFycmF5Q29uc3RydWN0b3I7KDAsbi5leHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kKShcIm9mXCIsKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3KGkodGhpcykpKGUpO2U+dDspclt0XT1hcmd1bWVudHNbdCsrXTtyZXR1cm4gcn0pLG8pfSwxMzkwNzoodCxlLHIpPT57dmFyIG49cig3NTg0MSksbz1yKDQ4NzYzKS5yaWdodCxpPW4uYVR5cGVkQXJyYXk7KDAsbi5leHBvcnRUeXBlZEFycmF5TWV0aG9kKShcInJlZHVjZVJpZ2h0XCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIG8oaSh0aGlzKSx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSw3Mzc2NDoodCxlLHIpPT57dmFyIG49cig3NTg0MSksbz1yKDQ4NzYzKS5sZWZ0LGk9bi5hVHlwZWRBcnJheTsoMCxuLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKFwicmVkdWNlXCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIG8oaSh0aGlzKSx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSw3MDgxNDoodCxlLHIpPT57dmFyIG49cig3NTg0MSksbz1uLmFUeXBlZEFycmF5LGk9bi5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGE9TWF0aC5mbG9vcjtpKFwicmV2ZXJzZVwiLChmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMscj1vKGUpLmxlbmd0aCxuPWEoci8yKSxpPTA7aTxuOyl0PWVbaV0sZVtpKytdPWVbLS1yXSxlW3JdPXQ7cmV0dXJuIGV9KSl9LDcyMzI6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApLG89cigyMTYzNCksaT1yKDc1ODQxKSxhPXIoNjI1MDMpLHU9cig0NTkwKSxjPXIoMjM0Nikscz1yKDM1NzY0KSxmPW4uUmFuZ2VFcnJvcixsPW4uSW50OEFycmF5LHA9bCYmbC5wcm90b3R5cGUsdj1wJiZwLnNldCx5PWkuYVR5cGVkQXJyYXksaD1pLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsZD0hcygoZnVuY3Rpb24oKXt2YXIgdD1uZXcgVWludDhDbGFtcGVkQXJyYXkoMik7cmV0dXJuIG8odix0LHtsZW5ndGg6MSwwOjN9LDEpLDMhPT10WzFdfSkpLGI9ZCYmaS5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTJiZzKChmdW5jdGlvbigpe3ZhciB0PW5ldyBsKDIpO3JldHVybiB0LnNldCgxKSx0LnNldChcIjJcIiwxKSwwIT09dFswXXx8MiE9PXRbMV19KSk7aChcInNldFwiLChmdW5jdGlvbih0KXt5KHRoaXMpO3ZhciBlPXUoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMSkscj1jKHQpO2lmKGQpcmV0dXJuIG8odix0aGlzLHIsZSk7dmFyIG49dGhpcy5sZW5ndGgsaT1hKHIpLHM9MDtpZihpK2U+bil0aHJvdyBmKFwiV3JvbmcgbGVuZ3RoXCIpO2Zvcig7czxpOyl0aGlzW2Urc109cltzKytdfSksIWR8fGIpfSw5MTk1NDoodCxlLHIpPT57dmFyIG49cig3NTg0MSksbz1yKDY1NzUpLGk9cigzNTc2NCksYT1yKDgzNjQzKSx1PW4uYVR5cGVkQXJyYXk7KDAsbi5leHBvcnRUeXBlZEFycmF5TWV0aG9kKShcInNsaWNlXCIsKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWEodSh0aGlzKSx0LGUpLG49byh0aGlzKSxpPTAsYz1yLmxlbmd0aCxzPW5ldyBuKGMpO2M+aTspc1tpXT1yW2krK107cmV0dXJuIHN9KSxpKChmdW5jdGlvbigpe25ldyBJbnQ4QXJyYXkoMSkuc2xpY2UoKX0pKSl9LDcyNDgyOih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKSxvPXIoNTE2MzApLnNvbWUsaT1uLmFUeXBlZEFycmF5OygwLG4uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoXCJzb21lXCIsKGZ1bmN0aW9uKHQpe3JldHVybiBvKGkodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LDgyMTU0Oih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKSxvPXIoNTMxODUpLGk9cigzNTc2NCksYT1yKDg2MTUxKSx1PXIoMzM5NzcpLGM9cig3NTg0MSkscz1yKDE4ODMzKSxmPXIoNDQwNzkpLGw9cig3NzY1OSkscD1yKDg5MTcxKSx2PWMuYVR5cGVkQXJyYXkseT1jLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsaD1uLlVpbnQxNkFycmF5LGQ9aCYmbyhoLnByb3RvdHlwZS5zb3J0KSxiPSEoIWR8fGkoKGZ1bmN0aW9uKCl7ZChuZXcgaCgyKSxudWxsKX0pKSYmaSgoZnVuY3Rpb24oKXtkKG5ldyBoKDIpLHt9KX0pKSksZz0hIWQmJiFpKChmdW5jdGlvbigpe2lmKGwpcmV0dXJuIGw8NzQ7aWYocylyZXR1cm4gczw2NztpZihmKXJldHVybiEwO2lmKHApcmV0dXJuIHA8NjAyO3ZhciB0LGUscj1uZXcgaCg1MTYpLG49QXJyYXkoNTE2KTtmb3IodD0wO3Q8NTE2O3QrKyllPXQlNCxyW3RdPTUxNS10LG5bdF09dC0yKmUrMztmb3IoZChyLChmdW5jdGlvbih0LGUpe3JldHVybih0LzR8MCktKGUvNHwwKX0pKSx0PTA7dDw1MTY7dCsrKWlmKHJbdF0hPT1uW3RdKXJldHVybiEwfSkpO3koXCJzb3J0XCIsKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiZhKHQpLGc/ZCh0aGlzLHQpOnUodih0aGlzKSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gdm9pZCAwIT09dD8rdChlLHIpfHwwOnIhPXI/LTE6ZSE9ZT8xOjA9PT1lJiYwPT09cj8xL2U+MCYmMS9yPDA/MTotMTplPnJ9fSh0KSl9KSwhZ3x8Yil9LDgzMDQ5Oih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKSxvPXIoNDgwNzMpLGk9cig4ODQyNSksYT1yKDY1NzUpLHU9bi5hVHlwZWRBcnJheTsoMCxuLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKFwic3ViYXJyYXlcIiwoZnVuY3Rpb24odCxlKXt2YXIgcj11KHRoaXMpLG49ci5sZW5ndGgsYz1pKHQsbik7cmV0dXJuIG5ldyhhKHIpKShyLmJ1ZmZlcixyLmJ5dGVPZmZzZXQrYypyLkJZVEVTX1BFUl9FTEVNRU5ULG8oKHZvaWQgMD09PWU/bjppKGUsbikpLWMpKX0pKX0sNDA2NTA6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApLG89cig0Mzg3MiksaT1yKDc1ODQxKSxhPXIoMzU3NjQpLHU9cig4MzY0MyksYz1uLkludDhBcnJheSxzPWkuYVR5cGVkQXJyYXksZj1pLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsbD1bXS50b0xvY2FsZVN0cmluZyxwPSEhYyYmYSgoZnVuY3Rpb24oKXtsLmNhbGwobmV3IGMoMSkpfSkpO2YoXCJ0b0xvY2FsZVN0cmluZ1wiLChmdW5jdGlvbigpe3JldHVybiBvKGwscD91KHModGhpcykpOnModGhpcyksdShhcmd1bWVudHMpKX0pLGEoKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9PW5ldyBjKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhYSgoZnVuY3Rpb24oKXtjLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5jYWxsKFsxLDJdKX0pKSl9LDY0NjA5Oih0LGUscik9Pnt2YXIgbj1yKDc1ODQxKS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLG89cigzNTc2NCksaT1yKDE3NjkwKSxhPXIoNDQ3NjMpLHU9aS5VaW50OEFycmF5LGM9dSYmdS5wcm90b3R5cGV8fHt9LHM9W10udG9TdHJpbmcsZj1hKFtdLmpvaW4pO28oKGZ1bmN0aW9uKCl7cy5jYWxsKHt9KX0pKSYmKHM9ZnVuY3Rpb24oKXtyZXR1cm4gZih0aGlzKX0pO3ZhciBsPWMudG9TdHJpbmchPT1zO24oXCJ0b1N0cmluZ1wiLHMsbCl9LDkxNjk6KHQsZSxyKT0+e3IoOTE1NDgpKFwiVWludDE2XCIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7cmV0dXJuIHQodGhpcyxlLHIsbil9fSkpfSw3NTY1NToodCxlLHIpPT57cig5MTU0OCkoXCJVaW50MzJcIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdCh0aGlzLGUscixuKX19KSl9LDI2MzA0Oih0LGUscik9PntyKDkxNTQ4KShcIlVpbnQ4XCIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7cmV0dXJuIHQodGhpcyxlLHIsbil9fSkpfSwzOTUyMzoodCxlLHIpPT57cig5MTU0OCkoXCJVaW50OFwiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0KHRoaXMsZSxyLG4pfX0pLCEwKX0sNDI3OTM6KHQsZSxyKT0+e3ZhciBuLG89cigyNjQ0MSksaT1yKDE3NjkwKSxhPXIoNDQ3NjMpLHU9cigxNjE1NCksYz1yKDY0NzI0KSxzPXIoMzg4MzMpLGY9cigyOTY2KSxsPXIoNjY0NSkscD1yKDk4MzYpLmVuZm9yY2Usdj1yKDM1NzY0KSx5PXIoNTA0NzkpLGg9T2JqZWN0LGQ9QXJyYXkuaXNBcnJheSxiPWguaXNFeHRlbnNpYmxlLGc9aC5pc0Zyb3plbixtPWguaXNTZWFsZWQsdz1oLmZyZWV6ZSxTPWguc2VhbCxPPXt9LEU9e30seD0haS5BY3RpdmVYT2JqZWN0JiZcIkFjdGl2ZVhPYmplY3RcImluIGksaj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxQPXMoXCJXZWFrTWFwXCIsaixmKSxUPVAucHJvdG90eXBlLEE9YShULnNldCk7aWYoeSlpZih4KXtuPWYuZ2V0Q29uc3RydWN0b3IoaixcIldlYWtNYXBcIiwhMCksYy5lbmFibGUoKTt2YXIgST1hKFQuZGVsZXRlKSxfPWEoVC5oYXMpLEM9YShULmdldCk7dShULHtkZWxldGU6ZnVuY3Rpb24odCl7aWYobCh0KSYmIWIodCkpe3ZhciBlPXAodGhpcyk7cmV0dXJuIGUuZnJvemVufHwoZS5mcm96ZW49bmV3IG4pLEkodGhpcyx0KXx8ZS5mcm96ZW4uZGVsZXRlKHQpfXJldHVybiBJKHRoaXMsdCl9LGhhczpmdW5jdGlvbih0KXtpZihsKHQpJiYhYih0KSl7dmFyIGU9cCh0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgbiksXyh0aGlzLHQpfHxlLmZyb3plbi5oYXModCl9cmV0dXJuIF8odGhpcyx0KX0sZ2V0OmZ1bmN0aW9uKHQpe2lmKGwodCkmJiFiKHQpKXt2YXIgZT1wKHRoaXMpO3JldHVybiBlLmZyb3plbnx8KGUuZnJvemVuPW5ldyBuKSxfKHRoaXMsdCk/Qyh0aGlzLHQpOmUuZnJvemVuLmdldCh0KX1yZXR1cm4gQyh0aGlzLHQpfSxzZXQ6ZnVuY3Rpb24odCxlKXtpZihsKHQpJiYhYih0KSl7dmFyIHI9cCh0aGlzKTtyLmZyb3plbnx8KHIuZnJvemVuPW5ldyBuKSxfKHRoaXMsdCk/QSh0aGlzLHQsZSk6ci5mcm96ZW4uc2V0KHQsZSl9ZWxzZSBBKHRoaXMsdCxlKTtyZXR1cm4gdGhpc319KX1lbHNlIG8mJnYoKGZ1bmN0aW9uKCl7dmFyIHQ9dyhbXSk7cmV0dXJuIEEobmV3IFAsdCwxKSwhZyh0KX0pKSYmdShULHtzZXQ6ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gZCh0KSYmKGcodCk/cj1POm0odCkmJihyPUUpKSxBKHRoaXMsdCxlKSxyPT09TyYmdyh0KSxyPT09RSYmUyh0KSx0aGlzfX0pfSw2NjYyNzoodCxlLHIpPT57cig0Mjc5Myl9LDk2MTU6KHQsZSxyKT0+e3IoMzg4MzMpKFwiV2Vha1NldFwiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSkscigyOTY2KSl9LDM3MDA1Oih0LGUscik9PntyKDk2MTUpfSw4NjUwMzoodCxlLHIpPT57cigyMjk5MCl9LDUwMDcxOih0LGUscik9Pnt2YXIgbj1yKDE1MDMpLG89cigzOTY1MiksaT1yKDIzNDYpLGE9cig2MjUwMyksdT1yKDM0MzMxKTtuJiYodShBcnJheS5wcm90b3R5cGUsXCJsYXN0SW5kZXhcIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PWkodGhpcyksZT1hKHQpO3JldHVybiAwPT09ZT8wOmUtMX19KSxvKFwibGFzdEluZGV4XCIpKX0sNjk4NTY6KHQsZSxyKT0+e3ZhciBuPXIoMTUwMyksbz1yKDM5NjUyKSxpPXIoMjM0NiksYT1yKDYyNTAzKSx1PXIoMzQzMzEpO24mJih1KEFycmF5LnByb3RvdHlwZSxcImxhc3RJdGVtXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1pKHRoaXMpLGU9YSh0KTtyZXR1cm4gMD09PWU/dm9pZCAwOnRbZS0xXX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcykscj1hKGUpO3JldHVybiBlWzA9PT1yPzA6ci0xXT10fX0pLG8oXCJsYXN0SXRlbVwiKSl9LDI0MDQ2Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0Mzg3MiksaT1yKDI1OTY0KSxhPXIoMjUzNCksdT1yKDI4OTkpLGM9T2JqZWN0LHM9ZnVuY3Rpb24oKXt2YXIgdD1hKFwiT2JqZWN0XCIsXCJmcmVlemVcIik7cmV0dXJuIHQ/dCh1KG51bGwpKTp1KG51bGwpfTtuKHtnbG9iYWw6ITAsZm9yY2VkOiEwfSx7Y29tcG9zaXRlS2V5OmZ1bmN0aW9uKCl7cmV0dXJuIG8oaSxjLGFyZ3VtZW50cykuZ2V0KFwib2JqZWN0XCIscyl9fSl9LDQ5OTg1Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyNTk2NCksaT1yKDI1MzQpLGE9cig0Mzg3Mik7bih7Z2xvYmFsOiEwLGZvcmNlZDohMH0se2NvbXBvc2l0ZVN5bWJvbDpmdW5jdGlvbigpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aCYmXCJzdHJpbmdcIj09dHlwZW9mIGFyZ3VtZW50c1swXT9pKFwiU3ltYm9sXCIpLmZvcihhcmd1bWVudHNbMF0pOmEobyxudWxsLGFyZ3VtZW50cykuZ2V0KFwic3ltYm9sXCIsaShcIlN5bWJvbFwiKSl9fSl9LDgwNjc3Oih0LGUscik9PntyKDU0NjQwKX0sMTY2NzA6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDIwMTYxKSxpPXIoMzgyMDcpLnJlbW92ZTtuKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2RlbGV0ZUFsbDpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPW8odGhpcykscj0hMCxuPTAsYT1hcmd1bWVudHMubGVuZ3RoO248YTtuKyspdD1pKGUsYXJndW1lbnRzW25dKSxyPXImJnQ7cmV0dXJuISFyfX0pfSw4NjQ0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig1NjExMSksaT1yKDIwMTYxKSxhPXIoMjQ1Mik7bih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtldmVyeTpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpLHI9byh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4hMSE9PWEoZSwoZnVuY3Rpb24odCxuKXtpZighcih0LG4sZSkpcmV0dXJuITF9KSwhMCl9fSl9LDc4MzM3Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig1NjExMSksaT1yKDIwMTYxKSxhPXIoMzgyMDcpLHU9cigyNDUyKSxjPWEuTWFwLHM9YS5zZXQ7bih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtmaWx0ZXI6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxyPW8odCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksbj1uZXcgYztyZXR1cm4gdShlLChmdW5jdGlvbih0LG8pe3IodCxvLGUpJiZzKG4sbyx0KX0pKSxufX0pfSw5Mzc3NDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNTYxMTEpLGk9cigyMDE2MSksYT1yKDI0NTIpO24oe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmluZEtleTpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpLHI9byh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSxuPWEoZSwoZnVuY3Rpb24odCxuKXtpZihyKHQsbixlKSlyZXR1cm57a2V5Om59fSksITApO3JldHVybiBuJiZuLmtleX19KX0sNDkxODA6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDU2MTExKSxpPXIoMjAxNjEpLGE9cigyNDUyKTtuKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ZpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxyPW8odCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksbj1hKGUsKGZ1bmN0aW9uKHQsbil7aWYocih0LG4sZSkpcmV0dXJue3ZhbHVlOnR9fSksITApO3JldHVybiBuJiZuLnZhbHVlfX0pfSw1MTA4MzoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTWFwXCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtmcm9tOnIoNzEyOTApfSl9LDg2NzA4Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0NDc2MyksaT1yKDg2MTUxKSxhPXIoMTUyNyksdT1yKDg3NjMxKSxjPXIoMzgyMDcpLHM9cig3NDA0MCksZj1jLk1hcCxsPWMuaGFzLHA9Yy5nZXQsdj1jLnNldCx5PW8oW10ucHVzaCk7bih7dGFyZ2V0OlwiTWFwXCIsc3RhdDohMCxmb3JjZWQ6c30se2dyb3VwQnk6ZnVuY3Rpb24odCxlKXthKHQpLGkoZSk7dmFyIHI9bmV3IGYsbj0wO3JldHVybiB1KHQsKGZ1bmN0aW9uKHQpe3ZhciBvPWUodCxuKyspO2wocixvKT95KHAocixvKSx0KTp2KHIsbyxbdF0pfSkpLHJ9fSl9LDI0MDE4Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxOTE1MCksaT1yKDIwMTYxKSxhPXIoMjQ1Mik7bih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4hMD09PWEoaSh0aGlzKSwoZnVuY3Rpb24oZSl7aWYobyhlLHQpKXJldHVybiEwfSksITApfX0pfSw1Nzk2MDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjE2MzQpLGk9cig4NzYzMSksYT1yKDY2NjkwKSx1PXIoODYxNTEpLGM9cigzODIwNykuTWFwO24oe3RhcmdldDpcIk1hcFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7a2V5Qnk6ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcoYSh0aGlzKT90aGlzOmMpO3UoZSk7dmFyIG49dShyLnNldCk7cmV0dXJuIGkodCwoZnVuY3Rpb24odCl7byhuLHIsZSh0KSx0KX0pKSxyfX0pfSwzMDcwNDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjAxNjEpLGk9cigyNDUyKTtuKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2tleU9mOmZ1bmN0aW9uKHQpe3ZhciBlPWkobyh0aGlzKSwoZnVuY3Rpb24oZSxyKXtpZihlPT09dClyZXR1cm57a2V5OnJ9fSksITApO3JldHVybiBlJiZlLmtleX19KX0sNzI4Mzg6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDU2MTExKSxpPXIoMjAxNjEpLGE9cigzODIwNyksdT1yKDI0NTIpLGM9YS5NYXAscz1hLnNldDtuKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se21hcEtleXM6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxyPW8odCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksbj1uZXcgYztyZXR1cm4gdShlLChmdW5jdGlvbih0LG8pe3MobixyKHQsbyxlKSx0KX0pKSxufX0pfSwyMTkyOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig1NjExMSksaT1yKDIwMTYxKSxhPXIoMzgyMDcpLHU9cigyNDUyKSxjPWEuTWFwLHM9YS5zZXQ7bih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHttYXBWYWx1ZXM6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxyPW8odCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksbj1uZXcgYztyZXR1cm4gdShlLChmdW5jdGlvbih0LG8pe3MobixvLHIodCxvLGUpKX0pKSxufX0pfSw3NDM5Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMDE2MSksaT1yKDg3NjMxKSxhPXIoMzgyMDcpLnNldDtuKHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGFyaXR5OjEsZm9yY2VkOiEwfSx7bWVyZ2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW8odGhpcykscj1hcmd1bWVudHMubGVuZ3RoLG49MDtuPHI7KWkoYXJndW1lbnRzW24rK10sKGZ1bmN0aW9uKHQscil7YShlLHQscil9KSx7QVNfRU5UUklFUzohMH0pO3JldHVybiBlfX0pfSw2NTAyOih0LGUscik9PntyKDE3NzEpKHt0YXJnZXQ6XCJNYXBcIixzdGF0OiEwLGZvcmNlZDohMH0se29mOnIoMjY4OTEpfSl9LDExNzgxOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig4NjE1MSksaT1yKDIwMTYxKSxhPXIoMjQ1MiksdT1UeXBlRXJyb3I7bih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtyZWR1Y2U6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxyPWFyZ3VtZW50cy5sZW5ndGg8MixuPXI/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihvKHQpLGEoZSwoZnVuY3Rpb24obyxpKXtyPyhyPSExLG49byk6bj10KG4sbyxpLGUpfSkpLHIpdGhyb3cgdShcIlJlZHVjZSBvZiBlbXB0eSBtYXAgd2l0aCBubyBpbml0aWFsIHZhbHVlXCIpO3JldHVybiBufX0pfSwzOTIxOToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNTYxMTEpLGk9cigyMDE2MSksYT1yKDI0NTIpO24oe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7c29tZTpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpLHI9byh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4hMD09PWEoZSwoZnVuY3Rpb24odCxuKXtpZihyKHQsbixlKSlyZXR1cm4hMH0pLCEwKX19KX0sNjg4MDY6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDg2MTUxKSxpPXIoMjAxNjEpLGE9cigzODIwNyksdT1UeXBlRXJyb3IsYz1hLmdldCxzPWEuaGFzLGY9YS5zZXQ7bih7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHt1cGRhdGU6ZnVuY3Rpb24odCxlKXt2YXIgcj1pKHRoaXMpLG49YXJndW1lbnRzLmxlbmd0aDtvKGUpO3ZhciBhPXMocix0KTtpZighYSYmbjwzKXRocm93IHUoXCJVcGRhdGluZyBhYnNlbnQgdmFsdWVcIik7dmFyIGw9YT9jKHIsdCk6byhuPjI/YXJndW1lbnRzWzJdOnZvaWQgMCkodCxyKTtyZXR1cm4gZihyLHQsZShsLHQscikpLHJ9fSl9LDQwMTQ0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89TWF0aC5taW4saT1NYXRoLm1heDtuKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtjbGFtcDpmdW5jdGlvbih0LGUscil7cmV0dXJuIG8ocixpKGUsdCkpfX0pfSw5MTA4MzoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITAsbm9uQ29uZmlndXJhYmxlOiEwLG5vbldyaXRhYmxlOiEwfSx7REVHX1BFUl9SQUQ6TWF0aC5QSS8xODB9KX0sMjIyNDY6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz0xODAvTWF0aC5QSTtuKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtkZWdyZWVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Km99fSl9LDc3NzU1Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0MTg5NiksaT1yKDM3NDYyKTtuKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtmc2NhbGU6ZnVuY3Rpb24odCxlLHIsbixhKXtyZXR1cm4gaShvKHQsZSxyLG4sYSkpfX0pfSw2OTUzOih0LGUscik9PntyKDE3NzEpKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtpYWRkaDpmdW5jdGlvbih0LGUscixuKXt2YXIgbz10Pj4+MCxpPXI+Pj4wO3JldHVybihlPj4+MCkrKG4+Pj4wKSsoKG8maXwob3xpKSZ+KG8raT4+PjApKT4+PjMxKXwwfX0pfSwxMzI3MDoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7aW11bGg6ZnVuY3Rpb24odCxlKXt2YXIgcj02NTUzNSxuPSt0LG89K2UsaT1uJnIsYT1vJnIsdT1uPj4xNixjPW8+PjE2LHM9KHUqYT4+PjApKyhpKmE+Pj4xNik7cmV0dXJuIHUqYysocz4+MTYpKygoaSpjPj4+MCkrKHMmcik+PjE2KX19KX0sMTU5MzA6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIk1hdGhcIixzdGF0OiEwLGZvcmNlZDohMH0se2lzdWJoOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvPXQ+Pj4wLGk9cj4+PjA7cmV0dXJuKGU+Pj4wKS0obj4+PjApLSgofm8maXwob15+aSkmby1pPj4+MCk+Pj4zMSl8MH19KX0sOTQ1OTU6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIk1hdGhcIixzdGF0OiEwLG5vbkNvbmZpZ3VyYWJsZTohMCxub25Xcml0YWJsZTohMH0se1JBRF9QRVJfREVHOjE4MC9NYXRoLlBJfSl9LDI4MDc3Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89TWF0aC5QSS8xODA7bih7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7cmFkaWFuczpmdW5jdGlvbih0KXtyZXR1cm4gdCpvfX0pfSw2NjQ1NzoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7c2NhbGU6cig0MTg5Nil9KX0sMjI1MjU6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQxNDMyKSxpPXIoMjUwMzcpLGE9cig0OTQ3NyksdT1yKDQ5NTU4KSxjPXIoOTgzNikscz1cIlNlZWRlZCBSYW5kb21cIixmPXMrXCIgR2VuZXJhdG9yXCIsbD1jLnNldCxwPWMuZ2V0dGVyRm9yKGYpLHY9VHlwZUVycm9yLHk9YSgoZnVuY3Rpb24odCl7bCh0aGlzLHt0eXBlOmYsc2VlZDp0JTIxNDc0ODM2NDd9KX0pLHMsKGZ1bmN0aW9uKCl7dmFyIHQ9cCh0aGlzKSxlPXQuc2VlZD0oMTEwMzUxNTI0NSp0LnNlZWQrMTIzNDUpJTIxNDc0ODM2NDc7cmV0dXJuIHUoKDEwNzM3NDE4MjMmZSkvMTA3Mzc0MTgyMywhMSl9KSk7bih7dGFyZ2V0OlwiTWF0aFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7c2VlZGVkUFJORzpmdW5jdGlvbih0KXt2YXIgZT1vKHQpLnNlZWQ7aWYoIWkoZSkpdGhyb3cgdignTWF0aC5zZWVkZWRQUk5HKCkgYXJndW1lbnQgc2hvdWxkIGhhdmUgYSBcInNlZWRcIiBmaWVsZCB3aXRoIGEgZmluaXRlIHZhbHVlLicpO3JldHVybiBuZXcgeShlKX19KX0sOTgxNjc6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIk1hdGhcIixzdGF0OiEwLGZvcmNlZDohMH0se3NpZ25iaXQ6ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGU9PWUmJjA9PT1lPzEvZT09LTEvMDplPDB9fSl9LDIxMTk0Oih0LGUscik9PntyKDE3NzEpKHt0YXJnZXQ6XCJNYXRoXCIsc3RhdDohMCxmb3JjZWQ6ITB9LHt1bXVsaDpmdW5jdGlvbih0LGUpe3ZhciByPTY1NTM1LG49K3Qsbz0rZSxpPW4mcixhPW8mcix1PW4+Pj4xNixjPW8+Pj4xNixzPSh1KmE+Pj4wKSsoaSphPj4+MTYpO3JldHVybiB1KmMrKHM+Pj4xNikrKChpKmM+Pj4wKSsocyZyKT4+PjE2KX19KX0sNjkwNDY6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ0NzYzKSxpPXIoOTcwNDIpLGE9cigzNjA2NiksdT1cIkludmFsaWQgbnVtYmVyIHJlcHJlc2VudGF0aW9uXCIsYz1SYW5nZUVycm9yLHM9U3ludGF4RXJyb3IsZj1UeXBlRXJyb3IsbD0vXltcXGRhLXpdKyQvLHA9byhcIlwiLmNoYXJBdCksdj1vKGwuZXhlYykseT1vKDEuLnRvU3RyaW5nKSxoPW8oXCJcIi5zbGljZSk7bih7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtmcm9tU3RyaW5nOmZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvPTE7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgZih1KTtpZighdC5sZW5ndGgpdGhyb3cgcyh1KTtpZihcIi1cIj09PXAodCwwKSYmKG89LTEsISh0PWgodCwxKSkubGVuZ3RoKSl0aHJvdyBzKHUpO2lmKChyPXZvaWQgMD09PWU/MTA6aShlKSk8Mnx8cj4zNil0aHJvdyBjKFwiSW52YWxpZCByYWRpeFwiKTtpZighdihsLHQpfHx5KG49YSh0LHIpLHIpIT09dCl0aHJvdyBzKHUpO3JldHVybiBvKm59fSl9LDM4NzYwOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMTYzNCksaT1yKDE1MDMpLGE9cig0NjY3OCksdT1yKDg2MTUxKSxjPXIoNDE0MzIpLHM9cig1MTcxNiksZj1yKDY2NjkwKSxsPXIoMjQxMDQpLHA9cig2NjQ1KSx2PXIoODIwNjMpLHk9cigyOTU2NyksaD1yKDE2MTU0KSxkPXIoMzQzMzEpLGI9cig5MzE2MCksZz1yKDkwNTc2KSxtPXIoOTgzNiksdz1yKDM5NTY4KSxTPWcoXCJvYnNlcnZhYmxlXCIpLE89XCJPYnNlcnZhYmxlXCIsRT1cIlN1YnNjcmlwdGlvblwiLHg9XCJTdWJzY3JpcHRpb25PYnNlcnZlclwiLGo9bS5nZXR0ZXJGb3IsUD1tLnNldCxUPWooTyksQT1qKEUpLEk9aih4KSxfPWZ1bmN0aW9uKHQpe3RoaXMub2JzZXJ2ZXI9Yyh0KSx0aGlzLmNsZWFudXA9dm9pZCAwLHRoaXMuc3Vic2NyaXB0aW9uT2JzZXJ2ZXI9dm9pZCAwfTtfLnByb3RvdHlwZT17dHlwZTpFLGNsZWFuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jbGVhbnVwO2lmKHQpe3RoaXMuY2xlYW51cD12b2lkIDA7dHJ5e3QoKX1jYXRjaCh0KXtiKHQpfX19LGNsb3NlOmZ1bmN0aW9uKCl7aWYoIWkpe3ZhciB0PXRoaXMuZmFjYWRlLGU9dGhpcy5zdWJzY3JpcHRpb25PYnNlcnZlcjt0LmNsb3NlZD0hMCxlJiYoZS5jbG9zZWQ9ITApfXRoaXMub2JzZXJ2ZXI9dm9pZCAwfSxpc0Nsb3NlZDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLm9ic2VydmVyfX07dmFyIEM9ZnVuY3Rpb24odCxlKXt2YXIgcixuPVAodGhpcyxuZXcgXyh0KSk7aXx8KHRoaXMuY2xvc2VkPSExKTt0cnl7KHI9dih0LFwic3RhcnRcIikpJiZvKHIsdCx0aGlzKX1jYXRjaCh0KXtiKHQpfWlmKCFuLmlzQ2xvc2VkKCkpe3ZhciBhPW4uc3Vic2NyaXB0aW9uT2JzZXJ2ZXI9bmV3IGsobik7dHJ5e3ZhciBjPWUoYSkscz1jO2woYyl8fChuLmNsZWFudXA9ZihjLnVuc3Vic2NyaWJlKT9mdW5jdGlvbigpe3MudW5zdWJzY3JpYmUoKX06dShjKSl9Y2F0Y2godCl7cmV0dXJuIHZvaWQgYS5lcnJvcih0KX1uLmlzQ2xvc2VkKCkmJm4uY2xlYW4oKX19O0MucHJvdG90eXBlPWgoe30se3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7dmFyIHQ9QSh0aGlzKTt0LmlzQ2xvc2VkKCl8fCh0LmNsb3NlKCksdC5jbGVhbigpKX19KSxpJiZkKEMucHJvdG90eXBlLFwiY2xvc2VkXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQSh0aGlzKS5pc0Nsb3NlZCgpfX0pO3ZhciBrPWZ1bmN0aW9uKHQpe1AodGhpcyx7dHlwZTp4LHN1YnNjcmlwdGlvblN0YXRlOnR9KSxpfHwodGhpcy5jbG9zZWQ9ITEpfTtrLnByb3RvdHlwZT1oKHt9LHtuZXh0OmZ1bmN0aW9uKHQpe3ZhciBlPUkodGhpcykuc3Vic2NyaXB0aW9uU3RhdGU7aWYoIWUuaXNDbG9zZWQoKSl7dmFyIHI9ZS5vYnNlcnZlcjt0cnl7dmFyIG49dihyLFwibmV4dFwiKTtuJiZvKG4scix0KX1jYXRjaCh0KXtiKHQpfX19LGVycm9yOmZ1bmN0aW9uKHQpe3ZhciBlPUkodGhpcykuc3Vic2NyaXB0aW9uU3RhdGU7aWYoIWUuaXNDbG9zZWQoKSl7dmFyIHI9ZS5vYnNlcnZlcjtlLmNsb3NlKCk7dHJ5e3ZhciBuPXYocixcImVycm9yXCIpO24/byhuLHIsdCk6Yih0KX1jYXRjaCh0KXtiKHQpfWUuY2xlYW4oKX19LGNvbXBsZXRlOmZ1bmN0aW9uKCl7dmFyIHQ9SSh0aGlzKS5zdWJzY3JpcHRpb25TdGF0ZTtpZighdC5pc0Nsb3NlZCgpKXt2YXIgZT10Lm9ic2VydmVyO3QuY2xvc2UoKTt0cnl7dmFyIHI9dihlLFwiY29tcGxldGVcIik7ciYmbyhyLGUpfWNhdGNoKHQpe2IodCl9dC5jbGVhbigpfX19KSxpJiZkKGsucHJvdG90eXBlLFwiY2xvc2VkXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzKS5zdWJzY3JpcHRpb25TdGF0ZS5pc0Nsb3NlZCgpfX0pO3ZhciBSPWZ1bmN0aW9uKHQpe3ModGhpcyxMKSxQKHRoaXMse3R5cGU6TyxzdWJzY3JpYmVyOnUodCl9KX0sTD1SLnByb3RvdHlwZTtoKEwse3N1YnNjcmliZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoO3JldHVybiBuZXcgQyhmKHQpP3tuZXh0OnQsZXJyb3I6ZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsY29tcGxldGU6ZT4yP2FyZ3VtZW50c1syXTp2b2lkIDB9OnAodCk/dDp7fSxUKHRoaXMpLnN1YnNjcmliZXIpfX0pLHkoTCxTLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLG4oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6d30se09ic2VydmFibGU6Un0pLGEoTyl9LDUyNTMwOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyNTM0KSxpPXIoMjE2MzQpLGE9cig0MTQzMiksdT1yKDI4NDIwKSxjPXIoNDk4MjgpLHM9cig4MjA2MyksZj1yKDg3NjMxKSxsPXIoOTA1NzYpLHA9cigzOTU2OCksdj1sKFwib2JzZXJ2YWJsZVwiKTtuKHt0YXJnZXQ6XCJPYnNlcnZhYmxlXCIsc3RhdDohMCxmb3JjZWQ6cH0se2Zyb206ZnVuY3Rpb24odCl7dmFyIGU9dSh0aGlzKT90aGlzOm8oXCJPYnNlcnZhYmxlXCIpLHI9cyhhKHQpLHYpO2lmKHIpe3ZhciBuPWEoaShyLHQpKTtyZXR1cm4gbi5jb25zdHJ1Y3Rvcj09PWU/bjpuZXcgZSgoZnVuY3Rpb24odCl7cmV0dXJuIG4uc3Vic2NyaWJlKHQpfSkpfXZhciBsPWModCk7cmV0dXJuIG5ldyBlKChmdW5jdGlvbih0KXtmKGwsKGZ1bmN0aW9uKGUscil7aWYodC5uZXh0KGUpLHQuY2xvc2VkKXJldHVybiByKCl9KSx7SVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KSx0LmNvbXBsZXRlKCl9KSl9fSl9LDUyMjU0Oih0LGUscik9PntyKDM4NzYwKSxyKDUyNTMwKSxyKDI2MTMxKX0sMjYxMzE6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDI1MzQpLGk9cigyODQyMCksYT1yKDM5NTY4KSx1PW8oXCJBcnJheVwiKTtuKHt0YXJnZXQ6XCJPYnNlcnZhYmxlXCIsc3RhdDohMCxmb3JjZWQ6YX0se29mOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWkodGhpcyk/dGhpczpvKFwiT2JzZXJ2YWJsZVwiKSxlPWFyZ3VtZW50cy5sZW5ndGgscj11KGUpLG49MDtuPGU7KXJbbl09YXJndW1lbnRzW24rK107cmV0dXJuIG5ldyB0KChmdW5jdGlvbih0KXtmb3IodmFyIG49MDtuPGU7bisrKWlmKHQubmV4dChyW25dKSx0LmNsb3NlZClyZXR1cm47dC5jb21wbGV0ZSgpfSkpfX0pfSw4NTIxMToodCxlLHIpPT57cig0Mzg2KX0sNzg5MTQ6KHQsZSxyKT0+e3IoNzk3MDMpfSw3OTY3NzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMTU5NTgpLGk9cig5MTkzMik7bih7dGFyZ2V0OlwiUHJvbWlzZVwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7dHJ5OmZ1bmN0aW9uKHQpe3ZhciBlPW8uZih0aGlzKSxyPWkodCk7cmV0dXJuKHIuZXJyb3I/ZS5yZWplY3Q6ZS5yZXNvbHZlKShyLnZhbHVlKSxlLnByb21pc2V9fSl9LDUwMTkxOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzMjE0MCksaT1yKDQxNDMyKSxhPW8udG9LZXksdT1vLnNldDtuKHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2RlZmluZU1ldGFkYXRhOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPDQ/dm9pZCAwOmEoYXJndW1lbnRzWzNdKTt1KHQsZSxpKHIpLG4pfX0pfSw5NjgzMToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMzIxNDApLGk9cig0MTQzMiksYT1vLnRvS2V5LHU9by5nZXRNYXAsYz1vLnN0b3JlO24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7ZGVsZXRlTWV0YWRhdGE6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOmEoYXJndW1lbnRzWzJdKSxuPXUoaShlKSxyLCExKTtpZih2b2lkIDA9PT1ufHwhbi5kZWxldGUodCkpcmV0dXJuITE7aWYobi5zaXplKXJldHVybiEwO3ZhciBvPWMuZ2V0KGUpO3JldHVybiBvLmRlbGV0ZShyKSwhIW8uc2l6ZXx8Yy5kZWxldGUoZSl9fSl9LDY4NDE3Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig0NDc2MyksaT1yKDMyMTQwKSxhPXIoNDE0MzIpLHU9cig5Njc5NiksYz1vKHIoMjE2OTgpKSxzPW8oW10uY29uY2F0KSxmPWkua2V5cyxsPWkudG9LZXkscD1mdW5jdGlvbiB0KGUscil7dmFyIG49ZihlLHIpLG89dShlKTtpZihudWxsPT09bylyZXR1cm4gbjt2YXIgaT10KG8scik7cmV0dXJuIGkubGVuZ3RoP24ubGVuZ3RoP2MocyhuLGkpKTppOm59O24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0TWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6bChhcmd1bWVudHNbMV0pO3JldHVybiBwKGEodCksZSl9fSl9LDgxMTUyOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzMjE0MCksaT1yKDQxNDMyKSxhPXIoOTY3OTYpLHU9by5oYXMsYz1vLmdldCxzPW8udG9LZXksZj1mdW5jdGlvbiB0KGUscixuKXtpZih1KGUscixuKSlyZXR1cm4gYyhlLHIsbik7dmFyIG89YShyKTtyZXR1cm4gbnVsbCE9PW8/dChlLG8sbik6dm9pZCAwfTtuKHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2dldE1ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpzKGFyZ3VtZW50c1syXSk7cmV0dXJuIGYodCxpKGUpLHIpfX0pfSw4NDExMjoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMzIxNDApLGk9cig0MTQzMiksYT1vLmtleXMsdT1vLnRvS2V5O24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0T3duTWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6dShhcmd1bWVudHNbMV0pO3JldHVybiBhKGkodCksZSl9fSl9LDYyNjgzOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzMjE0MCksaT1yKDQxNDMyKSxhPW8uZ2V0LHU9by50b0tleTtuKHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2dldE93bk1ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDp1KGFyZ3VtZW50c1syXSk7cmV0dXJuIGEodCxpKGUpLHIpfX0pfSwxOTE3MjoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMzIxNDApLGk9cig0MTQzMiksYT1yKDk2Nzk2KSx1PW8uaGFzLGM9by50b0tleSxzPWZ1bmN0aW9uIHQoZSxyLG4pe2lmKHUoZSxyLG4pKXJldHVybiEwO3ZhciBvPWEocik7cmV0dXJuIG51bGwhPT1vJiZ0KGUsbyxuKX07bih7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtoYXNNZXRhZGF0YTpmdW5jdGlvbih0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6Yyhhcmd1bWVudHNbMl0pO3JldHVybiBzKHQsaShlKSxyKX19KX0sNTEwNjg6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDMyMTQwKSxpPXIoNDE0MzIpLGE9by5oYXMsdT1vLnRvS2V5O24oe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7aGFzT3duTWV0YWRhdGE6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOnUoYXJndW1lbnRzWzJdKTtyZXR1cm4gYSh0LGkoZSkscil9fSl9LDgyNzE2Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigzMjE0MCksaT1yKDQxNDMyKSxhPW8udG9LZXksdT1vLnNldDtuKHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se21ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7dSh0LGUsaShyKSxhKG4pKX19fSl9LDUwMjg4Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxNTU0MyksaT1yKDI1Mjk3KS5hZGQ7bih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHthZGRBbGw6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9byh0aGlzKSxlPTAscj1hcmd1bWVudHMubGVuZ3RoO2U8cjtlKyspaSh0LGFyZ3VtZW50c1tlXSk7cmV0dXJuIHR9fSl9LDQ1ODYwOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxNTU0MyksaT1yKDI1Mjk3KS5yZW1vdmU7bih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT1vKHRoaXMpLHI9ITAsbj0wLGE9YXJndW1lbnRzLmxlbmd0aDtuPGE7bisrKXQ9aShlLGFyZ3VtZW50c1tuXSkscj1yJiZ0O3JldHVybiEhcn19KX0sMzc3NDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjE2MzQpLGk9cig0NDkxMyksYT1yKDkwODI1KTtuKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2RpZmZlcmVuY2U6ZnVuY3Rpb24odCl7cmV0dXJuIG8oYSx0aGlzLGkodCkpfX0pfSw3MDQwNjoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNTYxMTEpLGk9cigxNTU0MyksYT1yKDgyNTIyKTtuKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2V2ZXJ5OmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcykscj1vKHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiExIT09YShlLChmdW5jdGlvbih0KXtpZighcih0LHQsZSkpcmV0dXJuITF9KSwhMCl9fSl9LDY0NzE5Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig1NjExMSksaT1yKDE1NTQzKSxhPXIoMjUyOTcpLHU9cig4MjUyMiksYz1hLlNldCxzPWEuYWRkO24oe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcykscj1vKHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLG49bmV3IGM7cmV0dXJuIHUoZSwoZnVuY3Rpb24odCl7cih0LHQsZSkmJnMobix0KX0pKSxufX0pfSw5NzY1MDoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNTYxMTEpLGk9cigxNTU0MyksYT1yKDgyNTIyKTtuKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ZpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxyPW8odCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksbj1hKGUsKGZ1bmN0aW9uKHQpe2lmKHIodCx0LGUpKXJldHVybnt2YWx1ZTp0fX0pLCEwKTtyZXR1cm4gbiYmbi52YWx1ZX19KX0sNDg2Mzc6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIlNldFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbTpyKDcxMjkwKX0pfSw0MDI0ODoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMjE2MzQpLGk9cig0NDkxMyksYT1yKDQ1MzIzKTtuKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ludGVyc2VjdGlvbjpmdW5jdGlvbih0KXtyZXR1cm4gbyhhLHRoaXMsaSh0KSl9fSl9LDc5Mzk6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDIxNjM0KSxpPXIoNDQ5MTMpLGE9cig1NjE3Mik7bih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtpc0Rpc2pvaW50RnJvbTpmdW5jdGlvbih0KXtyZXR1cm4gbyhhLHRoaXMsaSh0KSl9fSl9LDI4MTg0Oih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMTYzNCksaT1yKDQ0OTEzKSxhPXIoOTExNzkpO24oe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aXNTdWJzZXRPZjpmdW5jdGlvbih0KXtyZXR1cm4gbyhhLHRoaXMsaSh0KSl9fSl9LDEwNTYxOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigyMTYzNCksaT1yKDQ0OTEzKSxhPXIoNzQ3NjIpO24oe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aXNTdXBlcnNldE9mOmZ1bmN0aW9uKHQpe3JldHVybiBvKGEsdGhpcyxpKHQpKX19KX0sNzA2Mjk6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDQ0NzYzKSxpPXIoMTU1NDMpLGE9cig4MjUyMiksdT1yKDg0NjAwKSxjPW8oW10uam9pbikscz1vKFtdLnB1c2gpO24oe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7am9pbjpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpLHI9dm9pZCAwPT09dD9cIixcIjp1KHQpLG49W107cmV0dXJuIGEoZSwoZnVuY3Rpb24odCl7cyhuLHQpfSkpLGMobixyKX19KX0sODM1MToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNTYxMTEpLGk9cigxNTU0MyksYT1yKDI1Mjk3KSx1PXIoODI1MjIpLGM9YS5TZXQscz1hLmFkZDtuKHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se21hcDpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpLHI9byh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSxuPW5ldyBjO3JldHVybiB1KGUsKGZ1bmN0aW9uKHQpe3MobixyKHQsdCxlKSl9KSksbn19KX0sODA4MDQ6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIlNldFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7b2Y6cigyNjg5MSl9KX0sNDY3MjM6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDg2MTUxKSxpPXIoMTU1NDMpLGE9cig4MjUyMiksdT1UeXBlRXJyb3I7bih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtyZWR1Y2U6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxyPWFyZ3VtZW50cy5sZW5ndGg8MixuPXI/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihvKHQpLGEoZSwoZnVuY3Rpb24obyl7cj8ocj0hMSxuPW8pOm49dChuLG8sbyxlKX0pKSxyKXRocm93IHUoXCJSZWR1Y2Ugb2YgZW1wdHkgc2V0IHdpdGggbm8gaW5pdGlhbCB2YWx1ZVwiKTtyZXR1cm4gbn19KX0sNTc4NDk6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDU2MTExKSxpPXIoMTU1NDMpLGE9cig4MjUyMik7bih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtzb21lOmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcykscj1vKHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiEwPT09YShlLChmdW5jdGlvbih0KXtpZihyKHQsdCxlKSlyZXR1cm4hMH0pLCEwKX19KX0sOTQzMjQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDIxNjM0KSxpPXIoNDQ5MTMpLGE9cigzMDA5MSk7bih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtzeW1tZXRyaWNEaWZmZXJlbmNlOmZ1bmN0aW9uKHQpe3JldHVybiBvKGEsdGhpcyxpKHQpKX19KX0sNDY2NjI6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDIxNjM0KSxpPXIoNDQ5MTMpLGE9cig3MzMyNyk7bih7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHt1bmlvbjpmdW5jdGlvbih0KXtyZXR1cm4gbyhhLHRoaXMsaSh0KSl9fSl9LDI2MzYzOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cigxNzI3MCkuY2hhckF0LGk9cigxNTI3KSxhPXIoOTcwNDIpLHU9cig4NDYwMCk7bih7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOiEwfSx7YXQ6ZnVuY3Rpb24odCl7dmFyIGU9dShpKHRoaXMpKSxyPWUubGVuZ3RoLG49YSh0KSxjPW4+PTA/bjpyK247cmV0dXJuIGM8MHx8Yz49cj92b2lkIDA6byhlLGMpfX0pfSw2NTczMToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNDk0NzcpLGk9cig0OTU1OCksYT1yKDE1MjcpLHU9cig4NDYwMCksYz1yKDk4MzYpLHM9cigxNzI3MCksZj1zLmNvZGVBdCxsPXMuY2hhckF0LHA9XCJTdHJpbmcgSXRlcmF0b3JcIix2PWMuc2V0LHk9Yy5nZXR0ZXJGb3IocCksaD1vKChmdW5jdGlvbih0KXt2KHRoaXMse3R5cGU6cCxzdHJpbmc6dCxpbmRleDowfSl9KSxcIlN0cmluZ1wiLChmdW5jdGlvbigpe3ZhciB0LGU9eSh0aGlzKSxyPWUuc3RyaW5nLG49ZS5pbmRleDtyZXR1cm4gbj49ci5sZW5ndGg/aSh2b2lkIDAsITApOih0PWwocixuKSxlLmluZGV4Kz10Lmxlbmd0aCxpKHtjb2RlUG9pbnQ6Zih0LDApLHBvc2l0aW9uOm59LCExKSl9KSk7bih7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOiEwfSx7Y29kZVBvaW50czpmdW5jdGlvbigpe3JldHVybiBuZXcgaCh1KGEodGhpcykpKX19KX0sMzUxMTU6KHQsZSxyKT0+e3IoNDI2NjQpfSwxMTE4Oih0LGUscik9PntyKDE4NTM3KX0sNTgwMjQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OTApLG89cigzOTgzMCksaT1yKDMwMTQ4KS5mLGE9cig3MTk1MCkuZix1PW4uU3ltYm9sO2lmKG8oXCJkaXNwb3NlXCIpLHUpe3ZhciBjPWEodSxcImRpc3Bvc2VcIik7Yy5lbnVtZXJhYmxlJiZjLmNvbmZpZ3VyYWJsZSYmYy53cml0YWJsZSYmaSh1LFwiZGlzcG9zZVwiLHt2YWx1ZTpjLnZhbHVlLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExfSl9fSwxNDcyOih0LGUscik9PntyKDM5ODMwKShcIm9ic2VydmFibGVcIil9LDg5NDU1Oih0LGUscik9PntyKDM5ODMwKShcInBhdHRlcm5NYXRjaFwiKX0sMTI0NzM6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDk1NDY4KSxpPXIoODAzNTQpLnJlbW92ZTtuKHt0YXJnZXQ6XCJXZWFrTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT1vKHRoaXMpLHI9ITAsbj0wLGE9YXJndW1lbnRzLmxlbmd0aDtuPGE7bisrKXQ9aShlLGFyZ3VtZW50c1tuXSkscj1yJiZ0O3JldHVybiEhcn19KX0sMzM0NDA6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIldlYWtNYXBcIixzdGF0OiEwLGZvcmNlZDohMH0se2Zyb206cig3MTI5MCl9KX0sNzQ4ODU6KHQsZSxyKT0+e3IoMTc3MSkoe3RhcmdldDpcIldlYWtNYXBcIixzdGF0OiEwLGZvcmNlZDohMH0se29mOnIoMjY4OTEpfSl9LDc3MzEzOih0LGUscik9Pnt2YXIgbj1yKDE3NzEpLG89cig1MjY1NCksaT1yKDczNzUyKS5hZGQ7bih7dGFyZ2V0OlwiV2Vha1NldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7YWRkQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PW8odGhpcyksZT0wLHI9YXJndW1lbnRzLmxlbmd0aDtlPHI7ZSsrKWkodCxhcmd1bWVudHNbZV0pO3JldHVybiB0fX0pfSw3NzM1NToodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoNTI2NTQpLGk9cig3Mzc1MikucmVtb3ZlO24oe3RhcmdldDpcIldlYWtTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2RlbGV0ZUFsbDpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPW8odGhpcykscj0hMCxuPTAsYT1hcmd1bWVudHMubGVuZ3RoO248YTtuKyspdD1pKGUsYXJndW1lbnRzW25dKSxyPXImJnQ7cmV0dXJuISFyfX0pfSw2NzU3NDoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiV2Vha1NldFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbTpyKDcxMjkwKX0pfSw4NTAyMzoodCxlLHIpPT57cigxNzcxKSh7dGFyZ2V0OlwiV2Vha1NldFwiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7b2Y6cigyNjg5MSl9KX0sODIyNDc6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDE3NjkwKSxpPXIoMzYzNjApLmNsZWFyO24oe2dsb2JhbDohMCxiaW5kOiEwLGVudW1lcmFibGU6ITAsZm9yY2VkOm8uY2xlYXJJbW1lZGlhdGUhPT1pfSx7Y2xlYXJJbW1lZGlhdGU6aX0pfSw3NDAwNToodCxlLHIpPT57dmFyIG49cigxNzY5MCksbz1yKDYyNjcxKSxpPXIoODk5NTcpLGE9cig3NTE0NiksdT1yKDUxNzQ2KSxjPWZ1bmN0aW9uKHQpe2lmKHQmJnQuZm9yRWFjaCE9PWEpdHJ5e3UodCxcImZvckVhY2hcIixhKX1jYXRjaChlKXt0LmZvckVhY2g9YX19O2Zvcih2YXIgcyBpbiBvKW9bc10mJmMobltzXSYmbltzXS5wcm90b3R5cGUpO2MoaSl9LDI0NzQ0Oih0LGUscik9Pnt2YXIgbj1yKDE3NjkwKSxvPXIoNjI2NzEpLGk9cig4OTk1NyksYT1yKDk2MTA3KSx1PXIoNTE3NDYpLGM9cig5MDU3Nikscz1jKFwiaXRlcmF0b3JcIiksZj1jKFwidG9TdHJpbmdUYWdcIiksbD1hLnZhbHVlcyxwPWZ1bmN0aW9uKHQsZSl7aWYodCl7aWYodFtzXSE9PWwpdHJ5e3UodCxzLGwpfWNhdGNoKGUpe3Rbc109bH1pZih0W2ZdfHx1KHQsZixlKSxvW2VdKWZvcih2YXIgciBpbiBhKWlmKHRbcl0hPT1hW3JdKXRyeXt1KHQscixhW3JdKX1jYXRjaChlKXt0W3JdPWFbcl19fX07Zm9yKHZhciB2IGluIG8pcChuW3ZdJiZuW3ZdLnByb3RvdHlwZSx2KTtwKGksXCJET01Ub2tlbkxpc3RcIil9LDU2NjMxOih0LGUscik9PntyKDgyMjQ3KSxyKDk2NTQpfSwyMDk5MzoodCxlLHIpPT57dmFyIG49cigxNzcxKSxvPXIoMTc2OTApLGk9cigxMDAyOCksYT1yKDg2MTUxKSx1PXIoNzg4MyksYz1yKDg1MTQ5KSxzPW8ucHJvY2VzcztuKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxkb250Q2FsbEdldFNldDohMH0se3F1ZXVlTWljcm90YXNrOmZ1bmN0aW9uKHQpe3UoYXJndW1lbnRzLmxlbmd0aCwxKSxhKHQpO3ZhciBlPWMmJnMuZG9tYWluO2koZT9lLmJpbmQodCk6dCl9fSl9LDk2NTQ6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDE3NjkwKSxpPXIoMzYzNjApLnNldCxhPXIoOTExNyksdT1vLnNldEltbWVkaWF0ZT9hKGksITEpOmk7bih7Z2xvYmFsOiEwLGJpbmQ6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6by5zZXRJbW1lZGlhdGUhPT11fSx7c2V0SW1tZWRpYXRlOnV9KX0sMTQ1NTM6KHQsZSxyKT0+e3IoOTYxMDcpO3ZhciBuPXIoMTc3MSksbz1yKDE3NjkwKSxpPXIoMjE2MzQpLGE9cig0NDc2MyksdT1yKDE1MDMpLGM9cig5NzUwMykscz1yKDI5NTY3KSxmPXIoMzQzMzEpLGw9cigxNjE1NCkscD1yKDM0NzUyKSx2PXIoNDk0NzcpLHk9cig5ODM2KSxoPXIoNTE3MTYpLGQ9cig2NjY5MCksYj1yKDM2MDM2KSxnPXIoNTYxMTEpLG09cig2MDc3Miksdz1yKDQxNDMyKSxTPXIoNjY0NSksTz1yKDg0NjAwKSxFPXIoMjg5OSkseD1yKDk4OTEzKSxqPXIoNDk4MjgpLFA9cig0MzQyNCksVD1yKDc4ODMpLEE9cig5MDU3NiksST1yKDMzOTc3KSxfPUEoXCJpdGVyYXRvclwiKSxDPVwiVVJMU2VhcmNoUGFyYW1zXCIsaz1DK1wiSXRlcmF0b3JcIixSPXkuc2V0LEw9eS5nZXR0ZXJGb3IoQyksTT15LmdldHRlckZvcihrKSxOPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsVj1mdW5jdGlvbih0KXtpZighdSlyZXR1cm4gb1t0XTt2YXIgZT1OKG8sdCk7cmV0dXJuIGUmJmUudmFsdWV9LFU9VihcImZldGNoXCIpLEQ9VihcIlJlcXVlc3RcIiksRj1WKFwiSGVhZGVyc1wiKSxCPUQmJkQucHJvdG90eXBlLEc9RiYmRi5wcm90b3R5cGUsej1vLlJlZ0V4cCxIPW8uVHlwZUVycm9yLFc9by5kZWNvZGVVUklDb21wb25lbnQscT1vLmVuY29kZVVSSUNvbXBvbmVudCxLPWEoXCJcIi5jaGFyQXQpLCQ9YShbXS5qb2luKSxZPWEoW10ucHVzaCksUT1hKFwiXCIucmVwbGFjZSksSj1hKFtdLnNoaWZ0KSxYPWEoW10uc3BsaWNlKSxaPWEoXCJcIi5zcGxpdCksdHQ9YShcIlwiLnNsaWNlKSxldD0vXFwrL2cscnQ9QXJyYXkoNCksbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHJ0W3QtMV18fChydFt0LTFdPXooXCIoKD86JVtcXFxcZGEtZl17Mn0pe1wiK3QrXCJ9KVwiLFwiZ2lcIikpfSxvdD1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIFcodCl9Y2F0Y2goZSl7cmV0dXJuIHR9fSxpdD1mdW5jdGlvbih0KXt2YXIgZT1RKHQsZXQsXCIgXCIpLHI9NDt0cnl7cmV0dXJuIFcoZSl9Y2F0Y2godCl7Zm9yKDtyOyllPVEoZSxudChyLS0pLG90KTtyZXR1cm4gZX19LGF0PS9bIScoKX5dfCUyMC9nLHV0PXtcIiFcIjpcIiUyMVwiLFwiJ1wiOlwiJTI3XCIsXCIoXCI6XCIlMjhcIixcIilcIjpcIiUyOVwiLFwiflwiOlwiJTdFXCIsXCIlMjBcIjpcIitcIn0sY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHV0W3RdfSxzdD1mdW5jdGlvbih0KXtyZXR1cm4gUShxKHQpLGF0LGN0KX0sZnQ9digoZnVuY3Rpb24odCxlKXtSKHRoaXMse3R5cGU6ayxpdGVyYXRvcjpqKEwodCkuZW50cmllcyksa2luZDplfSl9KSxcIkl0ZXJhdG9yXCIsKGZ1bmN0aW9uKCl7dmFyIHQ9TSh0aGlzKSxlPXQua2luZCxyPXQuaXRlcmF0b3IubmV4dCgpLG49ci52YWx1ZTtyZXR1cm4gci5kb25lfHwoci52YWx1ZT1cImtleXNcIj09PWU/bi5rZXk6XCJ2YWx1ZXNcIj09PWU/bi52YWx1ZTpbbi5rZXksbi52YWx1ZV0pLHJ9KSwhMCksbHQ9ZnVuY3Rpb24odCl7dGhpcy5lbnRyaWVzPVtdLHRoaXMudXJsPW51bGwsdm9pZCAwIT09dCYmKFModCk/dGhpcy5wYXJzZU9iamVjdCh0KTp0aGlzLnBhcnNlUXVlcnkoXCJzdHJpbmdcIj09dHlwZW9mIHQ/XCI/XCI9PT1LKHQsMCk/dHQodCwxKTp0Ok8odCkpKX07bHQucHJvdG90eXBlPXt0eXBlOkMsYmluZFVSTDpmdW5jdGlvbih0KXt0aGlzLnVybD10LHRoaXMudXBkYXRlKCl9LHBhcnNlT2JqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGEsdSxjLHM9UCh0KTtpZihzKWZvcihyPShlPWoodCxzKSkubmV4dDshKG49aShyLGUpKS5kb25lOyl7aWYoYT0obz1qKHcobi52YWx1ZSkpKS5uZXh0LCh1PWkoYSxvKSkuZG9uZXx8KGM9aShhLG8pKS5kb25lfHwhaShhLG8pLmRvbmUpdGhyb3cgSChcIkV4cGVjdGVkIHNlcXVlbmNlIHdpdGggbGVuZ3RoIDJcIik7WSh0aGlzLmVudHJpZXMse2tleTpPKHUudmFsdWUpLHZhbHVlOk8oYy52YWx1ZSl9KX1lbHNlIGZvcih2YXIgZiBpbiB0KWIodCxmKSYmWSh0aGlzLmVudHJpZXMse2tleTpmLHZhbHVlOk8odFtmXSl9KX0scGFyc2VRdWVyeTpmdW5jdGlvbih0KXtpZih0KWZvcih2YXIgZSxyLG49Wih0LFwiJlwiKSxvPTA7bzxuLmxlbmd0aDspKGU9bltvKytdKS5sZW5ndGgmJihyPVooZSxcIj1cIiksWSh0aGlzLmVudHJpZXMse2tleTppdChKKHIpKSx2YWx1ZTppdCgkKHIsXCI9XCIpKX0pKX0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5lbnRyaWVzLHI9W10sbj0wO248ZS5sZW5ndGg7KXQ9ZVtuKytdLFkocixzdCh0LmtleSkrXCI9XCIrc3QodC52YWx1ZSkpO3JldHVybiAkKHIsXCImXCIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXMubGVuZ3RoPTAsdGhpcy5wYXJzZVF1ZXJ5KHRoaXMudXJsLnF1ZXJ5KX0sdXBkYXRlVVJMOmZ1bmN0aW9uKCl7dGhpcy51cmwmJnRoaXMudXJsLnVwZGF0ZSgpfX07dmFyIHB0PWZ1bmN0aW9uKCl7aCh0aGlzLHZ0KTt2YXIgdD1SKHRoaXMsbmV3IGx0KGFyZ3VtZW50cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06dm9pZCAwKSk7dXx8KHRoaXMuc2l6ZT10LmVudHJpZXMubGVuZ3RoKX0sdnQ9cHQucHJvdG90eXBlO2lmKGwodnQse2FwcGVuZDpmdW5jdGlvbih0LGUpe3ZhciByPUwodGhpcyk7VChhcmd1bWVudHMubGVuZ3RoLDIpLFkoci5lbnRyaWVzLHtrZXk6Tyh0KSx2YWx1ZTpPKGUpfSksdXx8dGhpcy5sZW5ndGgrKyxyLnVwZGF0ZVVSTCgpfSxkZWxldGU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPUwodGhpcykscj1UKGFyZ3VtZW50cy5sZW5ndGgsMSksbj1lLmVudHJpZXMsbz1PKHQpLGk9cjwyP3ZvaWQgMDphcmd1bWVudHNbMV0sYT12b2lkIDA9PT1pP2k6TyhpKSxjPTA7YzxuLmxlbmd0aDspe3ZhciBzPW5bY107aWYocy5rZXkhPT1vfHx2b2lkIDAhPT1hJiZzLnZhbHVlIT09YSljKys7ZWxzZSBpZihYKG4sYywxKSx2b2lkIDAhPT1hKWJyZWFrfXV8fCh0aGlzLnNpemU9bi5sZW5ndGgpLGUudXBkYXRlVVJMKCl9LGdldDpmdW5jdGlvbih0KXt2YXIgZT1MKHRoaXMpLmVudHJpZXM7VChhcmd1bWVudHMubGVuZ3RoLDEpO2Zvcih2YXIgcj1PKHQpLG49MDtuPGUubGVuZ3RoO24rKylpZihlW25dLmtleT09PXIpcmV0dXJuIGVbbl0udmFsdWU7cmV0dXJuIG51bGx9LGdldEFsbDpmdW5jdGlvbih0KXt2YXIgZT1MKHRoaXMpLmVudHJpZXM7VChhcmd1bWVudHMubGVuZ3RoLDEpO2Zvcih2YXIgcj1PKHQpLG49W10sbz0wO288ZS5sZW5ndGg7bysrKWVbb10ua2V5PT09ciYmWShuLGVbb10udmFsdWUpO3JldHVybiBufSxoYXM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPUwodGhpcykuZW50cmllcyxyPVQoYXJndW1lbnRzLmxlbmd0aCwxKSxuPU8odCksbz1yPDI/dm9pZCAwOmFyZ3VtZW50c1sxXSxpPXZvaWQgMD09PW8/bzpPKG8pLGE9MDthPGUubGVuZ3RoOyl7dmFyIHU9ZVthKytdO2lmKHUua2V5PT09biYmKHZvaWQgMD09PWl8fHUudmFsdWU9PT1pKSlyZXR1cm4hMH1yZXR1cm4hMX0sc2V0OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TCh0aGlzKTtUKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciBuLG89ci5lbnRyaWVzLGk9ITEsYT1PKHQpLGM9TyhlKSxzPTA7czxvLmxlbmd0aDtzKyspKG49b1tzXSkua2V5PT09YSYmKGk/WChvLHMtLSwxKTooaT0hMCxuLnZhbHVlPWMpKTtpfHxZKG8se2tleTphLHZhbHVlOmN9KSx1fHwodGhpcy5zaXplPW8ubGVuZ3RoKSxyLnVwZGF0ZVVSTCgpfSxzb3J0OmZ1bmN0aW9uKCl7dmFyIHQ9TCh0aGlzKTtJKHQuZW50cmllcywoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5rZXk+ZS5rZXk/MTotMX0pKSx0LnVwZGF0ZVVSTCgpfSxmb3JFYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPUwodGhpcykuZW50cmllcyxuPWcodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksbz0wO288ci5sZW5ndGg7KW4oKGU9cltvKytdKS52YWx1ZSxlLmtleSx0aGlzKX0sa2V5czpmdW5jdGlvbigpe3JldHVybiBuZXcgZnQodGhpcyxcImtleXNcIil9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiBuZXcgZnQodGhpcyxcInZhbHVlc1wiKX0sZW50cmllczpmdW5jdGlvbigpe3JldHVybiBuZXcgZnQodGhpcyxcImVudHJpZXNcIil9fSx7ZW51bWVyYWJsZTohMH0pLHModnQsXyx2dC5lbnRyaWVzLHtuYW1lOlwiZW50cmllc1wifSkscyh2dCxcInRvU3RyaW5nXCIsKGZ1bmN0aW9uKCl7cmV0dXJuIEwodGhpcykuc2VyaWFsaXplKCl9KSx7ZW51bWVyYWJsZTohMH0pLHUmJmYodnQsXCJzaXplXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBMKHRoaXMpLmVudHJpZXMubGVuZ3RofSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pLHAocHQsQyksbih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDohY30se1VSTFNlYXJjaFBhcmFtczpwdH0pLCFjJiZkKEYpKXt2YXIgeXQ9YShHLmhhcyksaHQ9YShHLnNldCksZHQ9ZnVuY3Rpb24odCl7aWYoUyh0KSl7dmFyIGUscj10LmJvZHk7aWYobShyKT09PUMpcmV0dXJuIGU9dC5oZWFkZXJzP25ldyBGKHQuaGVhZGVycyk6bmV3IEYseXQoZSxcImNvbnRlbnQtdHlwZVwiKXx8aHQoZSxcImNvbnRlbnQtdHlwZVwiLFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLThcIiksRSh0LHtib2R5OngoMCxPKHIpKSxoZWFkZXJzOngoMCxlKX0pfXJldHVybiB0fTtpZihkKFUpJiZuKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxkb250Q2FsbEdldFNldDohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gVSh0LGFyZ3VtZW50cy5sZW5ndGg+MT9kdChhcmd1bWVudHNbMV0pOnt9KX19KSxkKEQpKXt2YXIgYnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGgodGhpcyxCKSxuZXcgRCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9kdChhcmd1bWVudHNbMV0pOnt9KX07Qi5jb25zdHJ1Y3Rvcj1idCxidC5wcm90b3R5cGU9QixuKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZG9udENhbGxHZXRTZXQ6ITAsZm9yY2VkOiEwfSx7UmVxdWVzdDpidH0pfX10LmV4cG9ydHM9e1VSTFNlYXJjaFBhcmFtczpwdCxnZXRTdGF0ZTpMfX0sNTAyOTE6KHQsZSxyKT0+e3IoMTQ1NTMpfSw3Mzg2MToodCxlLHIpPT57ZnVuY3Rpb24gbih0KXtyZXR1cm4gbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxuKHQpfXIoODE5MTMpO3ZhciBvLGk9cigxNzcxKSxhPXIoMTUwMyksdT1yKDk3NTAzKSxjPXIoMTc2OTApLHM9cig1NjExMSksZj1yKDQ0NzYzKSxsPXIoMjk1NjcpLHA9cigzNDMzMSksdj1yKDUxNzE2KSx5PXIoMzYwMzYpLGg9cig3NDgyKSxkPXIoOTA1ODEpLGI9cig1MTgwMiksZz1yKDE3MjcwKS5jb2RlQXQsbT1yKDI4MDI4KSx3PXIoODQ2MDApLFM9cigzNDc1MiksTz1yKDc4ODMpLEU9cigxNDU1MykseD1yKDk4MzYpLGo9eC5zZXQsUD14LmdldHRlckZvcihcIlVSTFwiKSxUPUUuVVJMU2VhcmNoUGFyYW1zLEE9RS5nZXRTdGF0ZSxJPWMuVVJMLF89Yy5UeXBlRXJyb3IsQz1jLnBhcnNlSW50LGs9TWF0aC5mbG9vcixSPU1hdGgucG93LEw9ZihcIlwiLmNoYXJBdCksTT1mKC8uLy5leGVjKSxOPWYoW10uam9pbiksVj1mKDEuLnRvU3RyaW5nKSxVPWYoW10ucG9wKSxEPWYoW10ucHVzaCksRj1mKFwiXCIucmVwbGFjZSksQj1mKFtdLnNoaWZ0KSxHPWYoXCJcIi5zcGxpdCksej1mKFwiXCIuc2xpY2UpLEg9ZihcIlwiLnRvTG93ZXJDYXNlKSxXPWYoW10udW5zaGlmdCkscT1cIkludmFsaWQgc2NoZW1lXCIsSz1cIkludmFsaWQgaG9zdFwiLCQ9XCJJbnZhbGlkIHBvcnRcIixZPS9bYS16XS9pLFE9L1tcXGQrLS5hLXpdL2ksSj0vXFxkLyxYPS9eMHgvaSxaPS9eWzAtN10rJC8sdHQ9L15cXGQrJC8sZXQ9L15bXFxkYS1mXSskL2kscnQ9L1tcXDBcXHRcXG5cXHIgIyUvOjw+P0BbXFxcXFxcXV58XS8sbnQ9L1tcXDBcXHRcXG5cXHIgIy86PD4/QFtcXFxcXFxdXnxdLyxvdD0vXltcXHUwMDAwLVxcdTAwMjBdKy8saXQ9LyhefFteXFx1MDAwMC1cXHUwMDIwXSlbXFx1MDAwMC1cXHUwMDIwXSskLyxhdD0vW1xcdFxcblxccl0vZyx1dD1mdW5jdGlvbih0KXt2YXIgZSxyLG8saTtpZihcIm51bWJlclwiPT10eXBlb2YgdCl7Zm9yKGU9W10scj0wO3I8NDtyKyspVyhlLHQlMjU2KSx0PWsodC8yNTYpO3JldHVybiBOKGUsXCIuXCIpfWlmKFwib2JqZWN0XCI9PW4odCkpe2ZvcihlPVwiXCIsbz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bnVsbCxyPTEsbj1udWxsLG89MCxpPTA7aTw4O2krKykwIT09dFtpXT8obz5yJiYoZT1uLHI9byksbj1udWxsLG89MCk6KG51bGw9PT1uJiYobj1pKSwrK28pO3JldHVybiBvPnImJihlPW4scj1vKSxlfSh0KSxyPTA7cjw4O3IrKylpJiYwPT09dFtyXXx8KGkmJihpPSExKSxvPT09cj8oZSs9cj9cIjpcIjpcIjo6XCIsaT0hMCk6KGUrPVYodFtyXSwxNikscjw3JiYoZSs9XCI6XCIpKSk7cmV0dXJuXCJbXCIrZStcIl1cIn1yZXR1cm4gdH0sY3Q9e30sc3Q9aCh7fSxjdCx7XCIgXCI6MSwnXCInOjEsXCI8XCI6MSxcIj5cIjoxLFwiYFwiOjF9KSxmdD1oKHt9LHN0LHtcIiNcIjoxLFwiP1wiOjEsXCJ7XCI6MSxcIn1cIjoxfSksbHQ9aCh7fSxmdCx7XCIvXCI6MSxcIjpcIjoxLFwiO1wiOjEsXCI9XCI6MSxcIkBcIjoxLFwiW1wiOjEsXCJcXFxcXCI6MSxcIl1cIjoxLFwiXlwiOjEsXCJ8XCI6MX0pLHB0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9Zyh0LDApO3JldHVybiByPjMyJiZyPDEyNyYmIXkoZSx0KT90OmVuY29kZVVSSUNvbXBvbmVudCh0KX0sdnQ9e2Z0cDoyMSxmaWxlOm51bGwsaHR0cDo4MCxodHRwczo0NDMsd3M6ODAsd3NzOjQ0M30seXQ9ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gMj09PXQubGVuZ3RoJiZNKFksTCh0LDApKSYmKFwiOlwiPT09KHI9TCh0LDEpKXx8IWUmJlwifFwiPT09cil9LGh0PWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0Lmxlbmd0aD4xJiZ5dCh6KHQsMCwyKSkmJigyPT09dC5sZW5ndGh8fFwiL1wiPT09KGU9TCh0LDIpKXx8XCJcXFxcXCI9PT1lfHxcIj9cIj09PWV8fFwiI1wiPT09ZSl9LGR0PWZ1bmN0aW9uKHQpe3JldHVyblwiLlwiPT09dHx8XCIlMmVcIj09PUgodCl9LGJ0PXt9LGd0PXt9LG10PXt9LHd0PXt9LFN0PXt9LE90PXt9LEV0PXt9LHh0PXt9LGp0PXt9LFB0PXt9LFR0PXt9LEF0PXt9LEl0PXt9LF90PXt9LEN0PXt9LGt0PXt9LFJ0PXt9LEx0PXt9LE10PXt9LE50PXt9LFZ0PXt9LFV0PWZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBvLGksYSx1PXcoZSk7aWYocil7aWYoaT10aGlzLnBhcnNlKHUpKXRocm93IF8oaSk7dGhpcy5zZWFyY2hQYXJhbXM9bnVsbH1lbHNle2lmKHZvaWQgMCE9PW4mJihvPW5ldyB0KG4sITApKSxpPXRoaXMucGFyc2UodSxudWxsLG8pKXRocm93IF8oaSk7KGE9QShuZXcgVCkpLmJpbmRVUkwodGhpcyksdGhpcy5zZWFyY2hQYXJhbXM9YX19O1V0LnByb3RvdHlwZT17dHlwZTpcIlVSTFwiLHBhcnNlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEsdSxjLHM9dGhpcyxmPWV8fGJ0LGw9MCxwPVwiXCIsdj0hMSxoPSExLGc9ITE7Zm9yKHQ9dyh0KSxlfHwocy5zY2hlbWU9XCJcIixzLnVzZXJuYW1lPVwiXCIscy5wYXNzd29yZD1cIlwiLHMuaG9zdD1udWxsLHMucG9ydD1udWxsLHMucGF0aD1bXSxzLnF1ZXJ5PW51bGwscy5mcmFnbWVudD1udWxsLHMuY2Fubm90QmVBQmFzZVVSTD0hMSx0PUYodCxvdCxcIlwiKSx0PUYodCxpdCxcIiQxXCIpKSx0PUYodCxhdCxcIlwiKSxuPWQodCk7bDw9bi5sZW5ndGg7KXtzd2l0Y2goaT1uW2xdLGYpe2Nhc2UgYnQ6aWYoIWl8fCFNKFksaSkpe2lmKGUpcmV0dXJuIHE7Zj1tdDtjb250aW51ZX1wKz1IKGkpLGY9Z3Q7YnJlYWs7Y2FzZSBndDppZihpJiYoTShRLGkpfHxcIitcIj09PWl8fFwiLVwiPT09aXx8XCIuXCI9PT1pKSlwKz1IKGkpO2Vsc2V7aWYoXCI6XCIhPT1pKXtpZihlKXJldHVybiBxO3A9XCJcIixmPW10LGw9MDtjb250aW51ZX1pZihlJiYocy5pc1NwZWNpYWwoKSE9PXkodnQscCl8fFwiZmlsZVwiPT09cCYmKHMuaW5jbHVkZXNDcmVkZW50aWFscygpfHxudWxsIT09cy5wb3J0KXx8XCJmaWxlXCI9PT1zLnNjaGVtZSYmIXMuaG9zdCkpcmV0dXJuO2lmKHMuc2NoZW1lPXAsZSlyZXR1cm4gdm9pZChzLmlzU3BlY2lhbCgpJiZ2dFtzLnNjaGVtZV09PT1zLnBvcnQmJihzLnBvcnQ9bnVsbCkpO3A9XCJcIixcImZpbGVcIj09PXMuc2NoZW1lP2Y9X3Q6cy5pc1NwZWNpYWwoKSYmciYmci5zY2hlbWU9PT1zLnNjaGVtZT9mPXd0OnMuaXNTcGVjaWFsKCk/Zj14dDpcIi9cIj09PW5bbCsxXT8oZj1TdCxsKyspOihzLmNhbm5vdEJlQUJhc2VVUkw9ITAsRChzLnBhdGgsXCJcIiksZj1NdCl9YnJlYWs7Y2FzZSBtdDppZighcnx8ci5jYW5ub3RCZUFCYXNlVVJMJiZcIiNcIiE9PWkpcmV0dXJuIHE7aWYoci5jYW5ub3RCZUFCYXNlVVJMJiZcIiNcIj09PWkpe3Muc2NoZW1lPXIuc2NoZW1lLHMucGF0aD1iKHIucGF0aCkscy5xdWVyeT1yLnF1ZXJ5LHMuZnJhZ21lbnQ9XCJcIixzLmNhbm5vdEJlQUJhc2VVUkw9ITAsZj1WdDticmVha31mPVwiZmlsZVwiPT09ci5zY2hlbWU/X3Q6T3Q7Y29udGludWU7Y2FzZSB3dDppZihcIi9cIiE9PWl8fFwiL1wiIT09bltsKzFdKXtmPU90O2NvbnRpbnVlfWY9anQsbCsrO2JyZWFrO2Nhc2UgU3Q6aWYoXCIvXCI9PT1pKXtmPVB0O2JyZWFrfWY9THQ7Y29udGludWU7Y2FzZSBPdDppZihzLnNjaGVtZT1yLnNjaGVtZSxpPT09bylzLnVzZXJuYW1lPXIudXNlcm5hbWUscy5wYXNzd29yZD1yLnBhc3N3b3JkLHMuaG9zdD1yLmhvc3Qscy5wb3J0PXIucG9ydCxzLnBhdGg9YihyLnBhdGgpLHMucXVlcnk9ci5xdWVyeTtlbHNlIGlmKFwiL1wiPT09aXx8XCJcXFxcXCI9PT1pJiZzLmlzU3BlY2lhbCgpKWY9RXQ7ZWxzZSBpZihcIj9cIj09PWkpcy51c2VybmFtZT1yLnVzZXJuYW1lLHMucGFzc3dvcmQ9ci5wYXNzd29yZCxzLmhvc3Q9ci5ob3N0LHMucG9ydD1yLnBvcnQscy5wYXRoPWIoci5wYXRoKSxzLnF1ZXJ5PVwiXCIsZj1OdDtlbHNle2lmKFwiI1wiIT09aSl7cy51c2VybmFtZT1yLnVzZXJuYW1lLHMucGFzc3dvcmQ9ci5wYXNzd29yZCxzLmhvc3Q9ci5ob3N0LHMucG9ydD1yLnBvcnQscy5wYXRoPWIoci5wYXRoKSxzLnBhdGgubGVuZ3RoLS0sZj1MdDtjb250aW51ZX1zLnVzZXJuYW1lPXIudXNlcm5hbWUscy5wYXNzd29yZD1yLnBhc3N3b3JkLHMuaG9zdD1yLmhvc3Qscy5wb3J0PXIucG9ydCxzLnBhdGg9YihyLnBhdGgpLHMucXVlcnk9ci5xdWVyeSxzLmZyYWdtZW50PVwiXCIsZj1WdH1icmVhaztjYXNlIEV0OmlmKCFzLmlzU3BlY2lhbCgpfHxcIi9cIiE9PWkmJlwiXFxcXFwiIT09aSl7aWYoXCIvXCIhPT1pKXtzLnVzZXJuYW1lPXIudXNlcm5hbWUscy5wYXNzd29yZD1yLnBhc3N3b3JkLHMuaG9zdD1yLmhvc3Qscy5wb3J0PXIucG9ydCxmPUx0O2NvbnRpbnVlfWY9UHR9ZWxzZSBmPWp0O2JyZWFrO2Nhc2UgeHQ6aWYoZj1qdCxcIi9cIiE9PWl8fFwiL1wiIT09TChwLGwrMSkpY29udGludWU7bCsrO2JyZWFrO2Nhc2UganQ6aWYoXCIvXCIhPT1pJiZcIlxcXFxcIiE9PWkpe2Y9UHQ7Y29udGludWV9YnJlYWs7Y2FzZSBQdDppZihcIkBcIj09PWkpe3YmJihwPVwiJTQwXCIrcCksdj0hMCxhPWQocCk7Zm9yKHZhciBtPTA7bTxhLmxlbmd0aDttKyspe3ZhciBTPWFbbV07aWYoXCI6XCIhPT1TfHxnKXt2YXIgTz1wdChTLGx0KTtnP3MucGFzc3dvcmQrPU86cy51c2VybmFtZSs9T31lbHNlIGc9ITB9cD1cIlwifWVsc2UgaWYoaT09PW98fFwiL1wiPT09aXx8XCI/XCI9PT1pfHxcIiNcIj09PWl8fFwiXFxcXFwiPT09aSYmcy5pc1NwZWNpYWwoKSl7aWYodiYmXCJcIj09PXApcmV0dXJuXCJJbnZhbGlkIGF1dGhvcml0eVwiO2wtPWQocCkubGVuZ3RoKzEscD1cIlwiLGY9VHR9ZWxzZSBwKz1pO2JyZWFrO2Nhc2UgVHQ6Y2FzZSBBdDppZihlJiZcImZpbGVcIj09PXMuc2NoZW1lKXtmPWt0O2NvbnRpbnVlfWlmKFwiOlwiIT09aXx8aCl7aWYoaT09PW98fFwiL1wiPT09aXx8XCI/XCI9PT1pfHxcIiNcIj09PWl8fFwiXFxcXFwiPT09aSYmcy5pc1NwZWNpYWwoKSl7aWYocy5pc1NwZWNpYWwoKSYmXCJcIj09PXApcmV0dXJuIEs7aWYoZSYmXCJcIj09PXAmJihzLmluY2x1ZGVzQ3JlZGVudGlhbHMoKXx8bnVsbCE9PXMucG9ydCkpcmV0dXJuO2lmKHU9cy5wYXJzZUhvc3QocCkpcmV0dXJuIHU7aWYocD1cIlwiLGY9UnQsZSlyZXR1cm47Y29udGludWV9XCJbXCI9PT1pP2g9ITA6XCJdXCI9PT1pJiYoaD0hMSkscCs9aX1lbHNle2lmKFwiXCI9PT1wKXJldHVybiBLO2lmKHU9cy5wYXJzZUhvc3QocCkpcmV0dXJuIHU7aWYocD1cIlwiLGY9SXQsZT09PUF0KXJldHVybn1icmVhaztjYXNlIEl0OmlmKCFNKEosaSkpe2lmKGk9PT1vfHxcIi9cIj09PWl8fFwiP1wiPT09aXx8XCIjXCI9PT1pfHxcIlxcXFxcIj09PWkmJnMuaXNTcGVjaWFsKCl8fGUpe2lmKFwiXCIhPT1wKXt2YXIgRT1DKHAsMTApO2lmKEU+NjU1MzUpcmV0dXJuICQ7cy5wb3J0PXMuaXNTcGVjaWFsKCkmJkU9PT12dFtzLnNjaGVtZV0/bnVsbDpFLHA9XCJcIn1pZihlKXJldHVybjtmPVJ0O2NvbnRpbnVlfXJldHVybiAkfXArPWk7YnJlYWs7Y2FzZSBfdDppZihzLnNjaGVtZT1cImZpbGVcIixcIi9cIj09PWl8fFwiXFxcXFwiPT09aSlmPUN0O2Vsc2V7aWYoIXJ8fFwiZmlsZVwiIT09ci5zY2hlbWUpe2Y9THQ7Y29udGludWV9c3dpdGNoKGkpe2Nhc2UgbzpzLmhvc3Q9ci5ob3N0LHMucGF0aD1iKHIucGF0aCkscy5xdWVyeT1yLnF1ZXJ5O2JyZWFrO2Nhc2VcIj9cIjpzLmhvc3Q9ci5ob3N0LHMucGF0aD1iKHIucGF0aCkscy5xdWVyeT1cIlwiLGY9TnQ7YnJlYWs7Y2FzZVwiI1wiOnMuaG9zdD1yLmhvc3Qscy5wYXRoPWIoci5wYXRoKSxzLnF1ZXJ5PXIucXVlcnkscy5mcmFnbWVudD1cIlwiLGY9VnQ7YnJlYWs7ZGVmYXVsdDpodChOKGIobixsKSxcIlwiKSl8fChzLmhvc3Q9ci5ob3N0LHMucGF0aD1iKHIucGF0aCkscy5zaG9ydGVuUGF0aCgpKSxmPUx0O2NvbnRpbnVlfX1icmVhaztjYXNlIEN0OmlmKFwiL1wiPT09aXx8XCJcXFxcXCI9PT1pKXtmPWt0O2JyZWFrfXImJlwiZmlsZVwiPT09ci5zY2hlbWUmJiFodChOKGIobixsKSxcIlwiKSkmJih5dChyLnBhdGhbMF0sITApP0Qocy5wYXRoLHIucGF0aFswXSk6cy5ob3N0PXIuaG9zdCksZj1MdDtjb250aW51ZTtjYXNlIGt0OmlmKGk9PT1vfHxcIi9cIj09PWl8fFwiXFxcXFwiPT09aXx8XCI/XCI9PT1pfHxcIiNcIj09PWkpe2lmKCFlJiZ5dChwKSlmPUx0O2Vsc2UgaWYoXCJcIj09PXApe2lmKHMuaG9zdD1cIlwiLGUpcmV0dXJuO2Y9UnR9ZWxzZXtpZih1PXMucGFyc2VIb3N0KHApKXJldHVybiB1O2lmKFwibG9jYWxob3N0XCI9PT1zLmhvc3QmJihzLmhvc3Q9XCJcIiksZSlyZXR1cm47cD1cIlwiLGY9UnR9Y29udGludWV9cCs9aTticmVhaztjYXNlIFJ0OmlmKHMuaXNTcGVjaWFsKCkpe2lmKGY9THQsXCIvXCIhPT1pJiZcIlxcXFxcIiE9PWkpY29udGludWV9ZWxzZSBpZihlfHxcIj9cIiE9PWkpaWYoZXx8XCIjXCIhPT1pKXtpZihpIT09byYmKGY9THQsXCIvXCIhPT1pKSljb250aW51ZX1lbHNlIHMuZnJhZ21lbnQ9XCJcIixmPVZ0O2Vsc2Ugcy5xdWVyeT1cIlwiLGY9TnQ7YnJlYWs7Y2FzZSBMdDppZihpPT09b3x8XCIvXCI9PT1pfHxcIlxcXFxcIj09PWkmJnMuaXNTcGVjaWFsKCl8fCFlJiYoXCI/XCI9PT1pfHxcIiNcIj09PWkpKXtpZihcIi4uXCI9PT0oYz1IKGM9cCkpfHxcIiUyZS5cIj09PWN8fFwiLiUyZVwiPT09Y3x8XCIlMmUlMmVcIj09PWM/KHMuc2hvcnRlblBhdGgoKSxcIi9cIj09PWl8fFwiXFxcXFwiPT09aSYmcy5pc1NwZWNpYWwoKXx8RChzLnBhdGgsXCJcIikpOmR0KHApP1wiL1wiPT09aXx8XCJcXFxcXCI9PT1pJiZzLmlzU3BlY2lhbCgpfHxEKHMucGF0aCxcIlwiKTooXCJmaWxlXCI9PT1zLnNjaGVtZSYmIXMucGF0aC5sZW5ndGgmJnl0KHApJiYocy5ob3N0JiYocy5ob3N0PVwiXCIpLHA9TChwLDApK1wiOlwiKSxEKHMucGF0aCxwKSkscD1cIlwiLFwiZmlsZVwiPT09cy5zY2hlbWUmJihpPT09b3x8XCI/XCI9PT1pfHxcIiNcIj09PWkpKWZvcig7cy5wYXRoLmxlbmd0aD4xJiZcIlwiPT09cy5wYXRoWzBdOylCKHMucGF0aCk7XCI/XCI9PT1pPyhzLnF1ZXJ5PVwiXCIsZj1OdCk6XCIjXCI9PT1pJiYocy5mcmFnbWVudD1cIlwiLGY9VnQpfWVsc2UgcCs9cHQoaSxmdCk7YnJlYWs7Y2FzZSBNdDpcIj9cIj09PWk/KHMucXVlcnk9XCJcIixmPU50KTpcIiNcIj09PWk/KHMuZnJhZ21lbnQ9XCJcIixmPVZ0KTppIT09byYmKHMucGF0aFswXSs9cHQoaSxjdCkpO2JyZWFrO2Nhc2UgTnQ6ZXx8XCIjXCIhPT1pP2khPT1vJiYoXCInXCI9PT1pJiZzLmlzU3BlY2lhbCgpP3MucXVlcnkrPVwiJTI3XCI6cy5xdWVyeSs9XCIjXCI9PT1pP1wiJTIzXCI6cHQoaSxjdCkpOihzLmZyYWdtZW50PVwiXCIsZj1WdCk7YnJlYWs7Y2FzZSBWdDppIT09byYmKHMuZnJhZ21lbnQrPXB0KGksc3QpKX1sKyt9fSxwYXJzZUhvc3Q6ZnVuY3Rpb24odCl7dmFyIGUscixuO2lmKFwiW1wiPT09TCh0LDApKXtpZihcIl1cIiE9PUwodCx0Lmxlbmd0aC0xKSlyZXR1cm4gSztpZihlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGksYSx1LGM9WzAsMCwwLDAsMCwwLDAsMF0scz0wLGY9bnVsbCxsPTAscD1mdW5jdGlvbigpe3JldHVybiBMKHQsbCl9O2lmKFwiOlwiPT09cCgpKXtpZihcIjpcIiE9PUwodCwxKSlyZXR1cm47bCs9MixmPSsrc31mb3IoO3AoKTspe2lmKDg9PT1zKXJldHVybjtpZihcIjpcIiE9PXAoKSl7Zm9yKGU9cj0wO3I8NCYmTShldCxwKCkpOyllPTE2KmUrQyhwKCksMTYpLGwrKyxyKys7aWYoXCIuXCI9PT1wKCkpe2lmKDA9PT1yKXJldHVybjtpZihsLT1yLHM+NilyZXR1cm47Zm9yKG49MDtwKCk7KXtpZihvPW51bGwsbj4wKXtpZighKFwiLlwiPT09cCgpJiZuPDQpKXJldHVybjtsKyt9aWYoIU0oSixwKCkpKXJldHVybjtmb3IoO00oSixwKCkpOyl7aWYoaT1DKHAoKSwxMCksbnVsbD09PW8pbz1pO2Vsc2V7aWYoMD09PW8pcmV0dXJuO289MTAqbytpfWlmKG8+MjU1KXJldHVybjtsKyt9Y1tzXT0yNTYqY1tzXStvLDIhPSsrbiYmNCE9PW58fHMrK31pZig0IT09bilyZXR1cm47YnJlYWt9aWYoXCI6XCI9PT1wKCkpe2lmKGwrKywhcCgpKXJldHVybn1lbHNlIGlmKHAoKSlyZXR1cm47Y1tzKytdPWV9ZWxzZXtpZihudWxsIT09ZilyZXR1cm47bCsrLGY9KytzfX1pZihudWxsIT09Zilmb3IoYT1zLWYscz03OzAhPT1zJiZhPjA7KXU9Y1tzXSxjW3MtLV09Y1tmK2EtMV0sY1tmKy0tYV09dTtlbHNlIGlmKDghPT1zKXJldHVybjtyZXR1cm4gY30oeih0LDEsLTEpKSwhZSlyZXR1cm4gSzt0aGlzLmhvc3Q9ZX1lbHNlIGlmKHRoaXMuaXNTcGVjaWFsKCkpe2lmKHQ9bSh0KSxNKHJ0LHQpKXJldHVybiBLO2lmKGU9ZnVuY3Rpb24odCl7dmFyIGUscixuLG8saSxhLHUsYz1HKHQsXCIuXCIpO2lmKGMubGVuZ3RoJiZcIlwiPT09Y1tjLmxlbmd0aC0xXSYmYy5sZW5ndGgtLSwoZT1jLmxlbmd0aCk+NClyZXR1cm4gdDtmb3Iocj1bXSxuPTA7bjxlO24rKyl7aWYoXCJcIj09PShvPWNbbl0pKXJldHVybiB0O2lmKGk9MTAsby5sZW5ndGg+MSYmXCIwXCI9PT1MKG8sMCkmJihpPU0oWCxvKT8xNjo4LG89eihvLDg9PT1pPzE6MikpLFwiXCI9PT1vKWE9MDtlbHNle2lmKCFNKDEwPT09aT90dDo4PT09aT9aOmV0LG8pKXJldHVybiB0O2E9QyhvLGkpfUQocixhKX1mb3Iobj0wO248ZTtuKyspaWYoYT1yW25dLG49PT1lLTEpe2lmKGE+PVIoMjU2LDUtZSkpcmV0dXJuIG51bGx9ZWxzZSBpZihhPjI1NSlyZXR1cm4gbnVsbDtmb3IodT1VKHIpLG49MDtuPHIubGVuZ3RoO24rKyl1Kz1yW25dKlIoMjU2LDMtbik7cmV0dXJuIHV9KHQpLG51bGw9PT1lKXJldHVybiBLO3RoaXMuaG9zdD1lfWVsc2V7aWYoTShudCx0KSlyZXR1cm4gSztmb3IoZT1cIlwiLHI9ZCh0KSxuPTA7bjxyLmxlbmd0aDtuKyspZSs9cHQocltuXSxjdCk7dGhpcy5ob3N0PWV9fSxjYW5ub3RIYXZlVXNlcm5hbWVQYXNzd29yZFBvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ob3N0fHx0aGlzLmNhbm5vdEJlQUJhc2VVUkx8fFwiZmlsZVwiPT09dGhpcy5zY2hlbWV9LGluY2x1ZGVzQ3JlZGVudGlhbHM6ZnVuY3Rpb24oKXtyZXR1cm5cIlwiIT09dGhpcy51c2VybmFtZXx8XCJcIiE9PXRoaXMucGFzc3dvcmR9LGlzU3BlY2lhbDpmdW5jdGlvbigpe3JldHVybiB5KHZ0LHRoaXMuc2NoZW1lKX0sc2hvcnRlblBhdGg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhdGgsZT10Lmxlbmd0aDshZXx8XCJmaWxlXCI9PT10aGlzLnNjaGVtZSYmMT09PWUmJnl0KHRbMF0sITApfHx0Lmxlbmd0aC0tfSxzZXJpYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5zY2hlbWUscj10LnVzZXJuYW1lLG49dC5wYXNzd29yZCxvPXQuaG9zdCxpPXQucG9ydCxhPXQucGF0aCx1PXQucXVlcnksYz10LmZyYWdtZW50LHM9ZStcIjpcIjtyZXR1cm4gbnVsbCE9PW8/KHMrPVwiLy9cIix0LmluY2x1ZGVzQ3JlZGVudGlhbHMoKSYmKHMrPXIrKG4/XCI6XCIrbjpcIlwiKStcIkBcIikscys9dXQobyksbnVsbCE9PWkmJihzKz1cIjpcIitpKSk6XCJmaWxlXCI9PT1lJiYocys9XCIvL1wiKSxzKz10LmNhbm5vdEJlQUJhc2VVUkw/YVswXTphLmxlbmd0aD9cIi9cIitOKGEsXCIvXCIpOlwiXCIsbnVsbCE9PXUmJihzKz1cIj9cIit1KSxudWxsIT09YyYmKHMrPVwiI1wiK2MpLHN9LHNldEhyZWY6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wYXJzZSh0KTtpZihlKXRocm93IF8oZSk7dGhpcy5zZWFyY2hQYXJhbXMudXBkYXRlKCl9LGdldE9yaWdpbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuc2NoZW1lLGU9dGhpcy5wb3J0O2lmKFwiYmxvYlwiPT09dCl0cnl7cmV0dXJuIG5ldyBEdCh0LnBhdGhbMF0pLm9yaWdpbn1jYXRjaCh0KXtyZXR1cm5cIm51bGxcIn1yZXR1cm5cImZpbGVcIiE9PXQmJnRoaXMuaXNTcGVjaWFsKCk/dCtcIjovL1wiK3V0KHRoaXMuaG9zdCkrKG51bGwhPT1lP1wiOlwiK2U6XCJcIik6XCJudWxsXCJ9LGdldFByb3RvY29sOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2NoZW1lK1wiOlwifSxzZXRQcm90b2NvbDpmdW5jdGlvbih0KXt0aGlzLnBhcnNlKHcodCkrXCI6XCIsYnQpfSxnZXRVc2VybmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVzZXJuYW1lfSxzZXRVc2VybmFtZTpmdW5jdGlvbih0KXt2YXIgZT1kKHcodCkpO2lmKCF0aGlzLmNhbm5vdEhhdmVVc2VybmFtZVBhc3N3b3JkUG9ydCgpKXt0aGlzLnVzZXJuYW1lPVwiXCI7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdGhpcy51c2VybmFtZSs9cHQoZVtyXSxsdCl9fSxnZXRQYXNzd29yZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhc3N3b3JkfSxzZXRQYXNzd29yZDpmdW5jdGlvbih0KXt2YXIgZT1kKHcodCkpO2lmKCF0aGlzLmNhbm5vdEhhdmVVc2VybmFtZVBhc3N3b3JkUG9ydCgpKXt0aGlzLnBhc3N3b3JkPVwiXCI7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdGhpcy5wYXNzd29yZCs9cHQoZVtyXSxsdCl9fSxnZXRIb3N0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ob3N0LGU9dGhpcy5wb3J0O3JldHVybiBudWxsPT09dD9cIlwiOm51bGw9PT1lP3V0KHQpOnV0KHQpK1wiOlwiK2V9LHNldEhvc3Q6ZnVuY3Rpb24odCl7dGhpcy5jYW5ub3RCZUFCYXNlVVJMfHx0aGlzLnBhcnNlKHQsVHQpfSxnZXRIb3N0bmFtZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaG9zdDtyZXR1cm4gbnVsbD09PXQ/XCJcIjp1dCh0KX0sc2V0SG9zdG5hbWU6ZnVuY3Rpb24odCl7dGhpcy5jYW5ub3RCZUFCYXNlVVJMfHx0aGlzLnBhcnNlKHQsQXQpfSxnZXRQb3J0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wb3J0O3JldHVybiBudWxsPT09dD9cIlwiOncodCl9LHNldFBvcnQ6ZnVuY3Rpb24odCl7dGhpcy5jYW5ub3RIYXZlVXNlcm5hbWVQYXNzd29yZFBvcnQoKXx8KFwiXCI9PT0odD13KHQpKT90aGlzLnBvcnQ9bnVsbDp0aGlzLnBhcnNlKHQsSXQpKX0sZ2V0UGF0aG5hbWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhdGg7cmV0dXJuIHRoaXMuY2Fubm90QmVBQmFzZVVSTD90WzBdOnQubGVuZ3RoP1wiL1wiK04odCxcIi9cIik6XCJcIn0sc2V0UGF0aG5hbWU6ZnVuY3Rpb24odCl7dGhpcy5jYW5ub3RCZUFCYXNlVVJMfHwodGhpcy5wYXRoPVtdLHRoaXMucGFyc2UodCxSdCkpfSxnZXRTZWFyY2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnF1ZXJ5O3JldHVybiB0P1wiP1wiK3Q6XCJcIn0sc2V0U2VhcmNoOmZ1bmN0aW9uKHQpe1wiXCI9PT0odD13KHQpKT90aGlzLnF1ZXJ5PW51bGw6KFwiP1wiPT09TCh0LDApJiYodD16KHQsMSkpLHRoaXMucXVlcnk9XCJcIix0aGlzLnBhcnNlKHQsTnQpKSx0aGlzLnNlYXJjaFBhcmFtcy51cGRhdGUoKX0sZ2V0U2VhcmNoUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VhcmNoUGFyYW1zLmZhY2FkZX0sZ2V0SGFzaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZnJhZ21lbnQ7cmV0dXJuIHQ/XCIjXCIrdDpcIlwifSxzZXRIYXNoOmZ1bmN0aW9uKHQpe1wiXCIhPT0odD13KHQpKT8oXCIjXCI9PT1MKHQsMCkmJih0PXoodCwxKSksdGhpcy5mcmFnbWVudD1cIlwiLHRoaXMucGFyc2UodCxWdCkpOnRoaXMuZnJhZ21lbnQ9bnVsbH0sdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5xdWVyeT10aGlzLnNlYXJjaFBhcmFtcy5zZXJpYWxpemUoKXx8bnVsbH19O3ZhciBEdD1mdW5jdGlvbih0KXt2YXIgZT12KHRoaXMsRnQpLHI9Tyhhcmd1bWVudHMubGVuZ3RoLDEpPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxuPWooZSxuZXcgVXQodCwhMSxyKSk7YXx8KGUuaHJlZj1uLnNlcmlhbGl6ZSgpLGUub3JpZ2luPW4uZ2V0T3JpZ2luKCksZS5wcm90b2NvbD1uLmdldFByb3RvY29sKCksZS51c2VybmFtZT1uLmdldFVzZXJuYW1lKCksZS5wYXNzd29yZD1uLmdldFBhc3N3b3JkKCksZS5ob3N0PW4uZ2V0SG9zdCgpLGUuaG9zdG5hbWU9bi5nZXRIb3N0bmFtZSgpLGUucG9ydD1uLmdldFBvcnQoKSxlLnBhdGhuYW1lPW4uZ2V0UGF0aG5hbWUoKSxlLnNlYXJjaD1uLmdldFNlYXJjaCgpLGUuc2VhcmNoUGFyYW1zPW4uZ2V0U2VhcmNoUGFyYW1zKCksZS5oYXNoPW4uZ2V0SGFzaCgpKX0sRnQ9RHQucHJvdG90eXBlLEJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue2dldDpmdW5jdGlvbigpe3JldHVybiBQKHRoaXMpW3RdKCl9LHNldDplJiZmdW5jdGlvbih0KXtyZXR1cm4gUCh0aGlzKVtlXSh0KX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fTtpZihhJiYocChGdCxcImhyZWZcIixCdChcInNlcmlhbGl6ZVwiLFwic2V0SHJlZlwiKSkscChGdCxcIm9yaWdpblwiLEJ0KFwiZ2V0T3JpZ2luXCIpKSxwKEZ0LFwicHJvdG9jb2xcIixCdChcImdldFByb3RvY29sXCIsXCJzZXRQcm90b2NvbFwiKSkscChGdCxcInVzZXJuYW1lXCIsQnQoXCJnZXRVc2VybmFtZVwiLFwic2V0VXNlcm5hbWVcIikpLHAoRnQsXCJwYXNzd29yZFwiLEJ0KFwiZ2V0UGFzc3dvcmRcIixcInNldFBhc3N3b3JkXCIpKSxwKEZ0LFwiaG9zdFwiLEJ0KFwiZ2V0SG9zdFwiLFwic2V0SG9zdFwiKSkscChGdCxcImhvc3RuYW1lXCIsQnQoXCJnZXRIb3N0bmFtZVwiLFwic2V0SG9zdG5hbWVcIikpLHAoRnQsXCJwb3J0XCIsQnQoXCJnZXRQb3J0XCIsXCJzZXRQb3J0XCIpKSxwKEZ0LFwicGF0aG5hbWVcIixCdChcImdldFBhdGhuYW1lXCIsXCJzZXRQYXRobmFtZVwiKSkscChGdCxcInNlYXJjaFwiLEJ0KFwiZ2V0U2VhcmNoXCIsXCJzZXRTZWFyY2hcIikpLHAoRnQsXCJzZWFyY2hQYXJhbXNcIixCdChcImdldFNlYXJjaFBhcmFtc1wiKSkscChGdCxcImhhc2hcIixCdChcImdldEhhc2hcIixcInNldEhhc2hcIikpKSxsKEZ0LFwidG9KU09OXCIsKGZ1bmN0aW9uKCl7cmV0dXJuIFAodGhpcykuc2VyaWFsaXplKCl9KSx7ZW51bWVyYWJsZTohMH0pLGwoRnQsXCJ0b1N0cmluZ1wiLChmdW5jdGlvbigpe3JldHVybiBQKHRoaXMpLnNlcmlhbGl6ZSgpfSkse2VudW1lcmFibGU6ITB9KSxJKXt2YXIgR3Q9SS5jcmVhdGVPYmplY3RVUkwsenQ9SS5yZXZva2VPYmplY3RVUkw7R3QmJmwoRHQsXCJjcmVhdGVPYmplY3RVUkxcIixzKEd0LEkpKSx6dCYmbChEdCxcInJldm9rZU9iamVjdFVSTFwiLHMoenQsSSkpfVMoRHQsXCJVUkxcIiksaSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDohdSxzaGFtOiFhfSx7VVJMOkR0fSl9LDcyNjc5Oih0LGUscik9PntyKDczODYxKX0sNTg2Nzk6KHQsZSxyKT0+e3ZhciBuPXIoMTc3MSksbz1yKDIxNjM0KTtuKHt0YXJnZXQ6XCJVUkxcIixwcm90bzohMCxlbnVtZXJhYmxlOiEwfSx7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJuIG8oVVJMLnByb3RvdHlwZS50b1N0cmluZyx0aGlzKX19KX19LGU9e307ZnVuY3Rpb24gcihuKXt2YXIgbz1lW25dO2lmKHZvaWQgMCE9PW8pcmV0dXJuIG8uZXhwb3J0czt2YXIgaT1lW25dPXtleHBvcnRzOnt9fTtyZXR1cm4gdFtuXS5jYWxsKGkuZXhwb3J0cyxpLGkuZXhwb3J0cyxyKSxpLmV4cG9ydHN9ci5nPWZ1bmN0aW9uKCl7aWYoXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxuZXcgRnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpfWNhdGNoKHQpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksKCgpPT57dmFyIHQsZSxuLG87ZnVuY3Rpb24gaSh0KXtyZXR1cm4gaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxpKHQpfWZ1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYyhuLmtleSksbil9fWZ1bmN0aW9uIHUodCxlLHIpe3JldHVybihlPWMoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gYyh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPWkodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1pKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1pKGUpP2U6ZStcIlwifXIoMjA0NzYpLHIoNzc4NjApLHIoMTM2ODUpLHIoNDM3MDgpLHIoNzMyNDkpLHIoODg4MDIpLHIoMzk3MzEpLHIoNjMzNzQpLHIoODMzMzYpLHIoMjkwMCkscig3ODY4MikscigxMzI5Mykscig4ODE0Nikscig2ODExNykscig4NDcyOSkscigyMTUwNikscig2MDY3MikscigyODY2MykscigxNTAwMikscig4MTc1KSxyKDQ2MjE4KSxyKDU4NTMpLHIoODg0ODUpLHIoNTAwNDQpLHIoOTYxMDcpLHIoNjA1NTcpLHIoMzA3OSkscig5NDI2OCkscig2NzU2MykscigyNzA0NCkscigyNTUxNSkscig5MzIxKSxyKDcyODM1KSxyKDk0NDU3KSxyKDg0ODI1KSxyKDIwNDcwKSxyKDUwNjg0KSxyKDU3MjY1KSxyKDg2NzY0KSxyKDM2ODc5KSxyKDM0NjAwKSxyKDk1NTE2KSxyKDU4NTc0KSxyKDExOTQxKSxyKDc0MjMwKSxyKDc1OTA1KSxyKDczMTA2KSxyKDY2MzM5KSxyKDY5NzMpLHIoMzAxMTYpLHIoNTM1NTgpLHIoOTAzMjUpLHIoNDk0NDcpLHIoNDIwMjMpLHIoOTIxNzgpLHIoNjI2NzUpLHIoMzgwNzYpLHIoNDU3MzUpLHIoNzU4MTIpLHIoNjI0NjIpLHIoOTY4MDMpLHIoNzk2NTMpLHIoMTY4MzEpLHIoNDkzMjQpLHIoNTE2OTUpLHIoNTk2MDYpLHIoNzIzNjApLHIoNzc5OTQpLHIoMjkwMTkpLHIoNTkyOTIpLHIoMzY0NjUpLHIoNTM5Nikscig4OTQyNCkscigzMjE0OCkscigxMDc4NSkscig5MTEwKSxyKDI5Njg4KSxyKDM3NTU2KSxyKDE2NTM5KSxyKDQ5MTYxKSxyKDMyMzE4KSxyKDg1NTU3KSxyKDY3MzA3KSxyKDczOTA0KSxyKDQ0NjYpLHIoNjQ2MjEpLHIoMzE5MDcpLHIoNjc0OTUpLHIoOTcxNCkscigzMjk5Mikscig5NzM0NCkscigxMDA0MykscigzMTU1KSxyKDk4Njk4KSxyKDEwNDU3KSxyKDg3MjYwKSxyKDM3MDIyKSxyKDE0ODE0KSxyKDIxODYxKSxyKDQ4OTA4KSxyKDEyNzkwKSxyKDMyNTUzKSxyKDU1ODU5KSxyKDE1NjQyKSxyKDkzNDY2KSxyKDUyODMzKSxyKDQ1NTM4KSxyKDg1NjIzKSxyKDIwMDQ2KSxyKDEwMCkscig2MzUzMCkscig4NDQxNCkscigzMTgzMSkscig4MjM0MikscigxMzcwKSxyKDg1OTM4KSxyKDgxOTEzKSxyKDI1NzM0KSxyKDIyODkwKSxyKDk3MzY3KSxyKDg2NjkpLHIoMTAzNjApLHIoNDQ0OTkpLHIoODQ3MTkpLHIoNTUyNTkpLHIoNjg2NDMpLHIoMjYyODcpLHIoODI2NjcpLHIoMTc3NTApLHIoMjgzNzQpLHIoNjQ2NzcpLHIoMTAwNjkpLHIoMjEzOTYpLHIoNTU5MTMpLHIoMzA5OSkscigzMTEyNykscig5NTY5NCkscig4MTkzMSkscig4MzcxMikscig3NTQ5Nykscig3MDU3KSxyKDczMjE1KSxyKDIzODgzKSxyKDU1MjM2KSxyKDExMjk3KSxyKDk3NTk0KSxyKDIxNzIpLHIoMjYzMDQpLHIoMzk1MjMpLHIoOTE2OSkscig3NTY1NSkscig2NDc1MSkscig0NTk2Mykscig4MDczNSkscig5NjY0NCkscig4OTQ2MSkscigxNzU0NCkscigzMTQ4MSkscig2MDIzOCkscig5MzIzKSxyKDczMzYpLHIoNjMzNDApLHIoNzkyMDIpLHIoOTcwMjkpLHIoNDYxMzgpLHIoNjMxNzUpLHIoNzM3NjQpLHIoMTM5MDcpLHIoNzA4MTQpLHIoNzIzMikscig5MTk1NCkscig3MjQ4Mikscig4MjE1NCkscig4MzA0OSkscig0MDY1MCkscig2NDYwOSkscig2NjYyNykscigzNzAwNSkscig4NjUwMykscig1MDA3MSkscig2OTg1NikscigyNDA0Nikscig0OTk4NSkscig4MDY3NykscigxNjY3MCkscig4NjQ0KSxyKDc4MzM3KSxyKDQ5MTgwKSxyKDkzNzc0KSxyKDUxMDgzKSxyKDg2NzA4KSxyKDI0MDE4KSxyKDU3OTYwKSxyKDMwNzA0KSxyKDcyODM4KSxyKDIxOTIpLHIoNzQzOSkscig2NTAyKSxyKDExNzgxKSxyKDM5MjE5KSxyKDY4ODA2KSxyKDQwMTQ0KSxyKDkxMDgzKSxyKDIyMjQ2KSxyKDc3NzU1KSxyKDY5NTMpLHIoMTMyNzApLHIoMTU5MzApLHIoOTQ1OTUpLHIoMjgwNzcpLHIoNjY0NTcpLHIoMjI1MjUpLHIoOTgxNjcpLHIoMjExOTQpLHIoNjkwNDYpLHIoNTIyNTQpLHIoODUyMTEpLHIoNzg5MTQpLHIoNzk2NzcpLHIoNTAxOTEpLHIoOTY4MzEpLHIoODExNTIpLHIoNjg0MTcpLHIoNjI2ODMpLHIoODQxMTIpLHIoMTkxNzIpLHIoNTEwNjgpLHIoODI3MTYpLHIoNTAyODgpLHIoNDU4NjApLHIoMzc3NCkscig3MDQwNikscig2NDcxOSkscig5NzY1MCkscig0ODYzNykscig0MDI0OCkscig3OTM5KSxyKDI4MTg0KSxyKDEwNTYxKSxyKDcwNjI5KSxyKDgzNTEpLHIoODA4MDQpLHIoNDY3MjMpLHIoNTc4NDkpLHIoOTQzMjQpLHIoNDY2NjIpLHIoMjYzNjMpLHIoNjU3MzEpLHIoMzUxMTUpLHIoMTExOCkscig1ODAyNCkscigxNDcyKSxyKDg5NDU1KSxyKDEyNDczKSxyKDMzNDQwKSxyKDc0ODg1KSxyKDc3MzEzKSxyKDc3MzU1KSxyKDY3NTc0KSxyKDg1MDIzKSxyKDc0MDA1KSxyKDI0NzQ0KSxyKDU2NjMxKSxyKDIwOTkzKSxyKDcyNjc5KSxyKDU4Njc5KSxyKDUwMjkxKSxmdW5jdGlvbih0KXt0LlBJTkc9XCJwaW5nXCIsdC5HRVRfVENfREFUQT1cImdldFRDRGF0YVwiLHQuR0VUX0lOX0FQUF9UQ19EQVRBPVwiZ2V0SW5BcHBUQ0RhdGFcIix0LkdFVF9WRU5ET1JfTElTVD1cImdldFZlbmRvckxpc3RcIix0LkFERF9FVkVOVF9MSVNURU5FUj1cImFkZEV2ZW50TGlzdGVuZXJcIix0LlJFTU9WRV9FVkVOVF9MSVNURU5FUj1cInJlbW92ZUV2ZW50TGlzdGVuZXJcIn0odHx8KHQ9e30pKSxmdW5jdGlvbih0KXt0LlNUVUI9XCJzdHViXCIsdC5MT0FESU5HPVwibG9hZGluZ1wiLHQuTE9BREVEPVwibG9hZGVkXCIsdC5FUlJPUj1cImVycm9yXCJ9KGV8fChlPXt9KSksZnVuY3Rpb24odCl7dC5WSVNJQkxFPVwidmlzaWJsZVwiLHQuSElEREVOPVwiaGlkZGVuXCIsdC5ESVNBQkxFRD1cImRpc2FibGVkXCJ9KG58fChuPXt9KSksZnVuY3Rpb24odCl7dC5UQ19MT0FERUQ9XCJ0Y2xvYWRlZFwiLHQuQ01QX1VJX1NIT1dOPVwiY21wdWlzaG93blwiLHQuVVNFUl9BQ1RJT05fQ09NUExFVEU9XCJ1c2VyYWN0aW9uY29tcGxldGVcIn0ob3x8KG89e30pKTt2YXIgcz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxyLG4sbyl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KSx1KHRoaXMsXCJsaXN0ZW5lcklkXCIsdm9pZCAwKSx1KHRoaXMsXCJjYWxsYmFja1wiLHZvaWQgMCksdSh0aGlzLFwibmV4dFwiLHZvaWQgMCksdSh0aGlzLFwicGFyYW1cIix2b2lkIDApLHUodGhpcyxcInN1Y2Nlc3NcIiwhMCksT2JqZWN0LmFzc2lnbih0aGlzLHtjYWxsYmFjazplLGxpc3RlbmVySWQ6bixwYXJhbTpyLG5leHQ6b30pO3RyeXt0aGlzLnJlc3BvbmQoKX1jYXRjaCh0KXt0aGlzLmludm9rZUNhbGxiYWNrKG51bGwpfX12YXIgZSxyO3JldHVybiBlPXQsKHI9W3trZXk6XCJpbnZva2VDYWxsYmFja1wiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPW51bGwhPT10O1wiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMubmV4dD90aGlzLmNhbGxiYWNrKHRoaXMubmV4dCx0LGUpOnRoaXMuY2FsbGJhY2sodCxlKX19XSkmJmEoZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fSgpO2Z1bmN0aW9uIGYodCl7cmV0dXJuIGY9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sZih0KX1mdW5jdGlvbiBsKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHAobi5rZXkpLG4pfX1mdW5jdGlvbiBwKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9Zih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPWYobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PWYoZSk/ZTplK1wiXCJ9ZnVuY3Rpb24gdih0LGUpe3JldHVybiB2PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sdih0LGUpfWZ1bmN0aW9uIHkodCl7dmFyIGU9aCgpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49ZCh0KTtpZihlKXt2YXIgbz1kKHRoaXMpLmNvbnN0cnVjdG9yO3I9UmVmbGVjdC5jb25zdHJ1Y3Qobixhcmd1bWVudHMsbyl9ZWxzZSByPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGUmJihcIm9iamVjdFwiPT09ZihlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiB0fSh0KX0odGhpcyxyKX19ZnVuY3Rpb24gaCgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKGg9ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIGQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LGQodCl9dmFyIGI9ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGUmJnYodCxlKX0obyx0KTt2YXIgZSxyLG49eShvKTtmdW5jdGlvbiBvKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxvKSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZT1vLChyPVt7a2V5OlwicmVzcG9uZFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50aHJvd0lmUGFyYW1JbnZhbGlkKCksdGhpcy5pbnZva2VDYWxsYmFjayhuZXcgWCh0aGlzLnBhcmFtLHRoaXMubGlzdGVuZXJJZCkpfX0se2tleTpcInRocm93SWZQYXJhbUludmFsaWRcIix2YWx1ZTpmdW5jdGlvbigpe2lmKCEodm9pZCAwPT09dGhpcy5wYXJhbXx8QXJyYXkuaXNBcnJheSh0aGlzLnBhcmFtKSYmdGhpcy5wYXJhbS5ldmVyeShOdW1iZXIuaXNJbnRlZ2VyKSkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBQYXJhbWV0ZXJcIil9fV0pJiZsKGUucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksb30ocyk7ZnVuY3Rpb24gZyh0KXtyZXR1cm4gZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxnKHQpfWZ1bmN0aW9uIG0odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsUyhuLmtleSksbil9fWZ1bmN0aW9uIHcodCxlLHIpe3JldHVybihlPVMoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gUyh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPWcodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1nKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1nKGUpP2U6ZStcIlwifXZhciBPPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCksdyh0aGlzLFwiZXZlbnRRdWV1ZVwiLG5ldyBNYXApLHcodGhpcyxcInF1ZXVlTnVtYmVyXCIsMCl9dmFyIGUscjtyZXR1cm4gZT10LChyPVt7a2V5OlwiYWRkXCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZXZlbnRRdWV1ZS5zZXQodGhpcy5xdWV1ZU51bWJlcix0KSx0aGlzLnF1ZXVlTnVtYmVyKyt9fSx7a2V5OlwicmVtb3ZlXCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZXZlbnRRdWV1ZS5kZWxldGUodCl9fSx7a2V5OlwiZXhlY1wiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ldmVudFF1ZXVlLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7bmV3IGIodC5jYWxsYmFjayx0LnBhcmFtLGUsdC5uZXh0KX0pKX19LHtrZXk6XCJjbGVhclwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5xdWV1ZU51bWJlcj0wLHRoaXMuZXZlbnRRdWV1ZS5jbGVhcigpfX0se2tleTpcInNpemVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ldmVudFF1ZXVlLnNpemV9fV0pJiZtKGUucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH0oKTtmdW5jdGlvbiBFKHQpe3JldHVybiBFPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LEUodCl9ZnVuY3Rpb24geCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxQKG4ua2V5KSxuKX19ZnVuY3Rpb24gaih0LGUscil7cmV0dXJuKGU9UChlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiBQKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9RSh0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPUUobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PUUoZSk/ZTplK1wiXCJ9dmFyIFQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KX12YXIgcixvO3JldHVybiByPXQsbz1be2tleTpcInJlc2V0XCIsdmFsdWU6ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5jbXBJZCxkZWxldGUgdGhpcy5jbXBWZXJzaW9uLGRlbGV0ZSB0aGlzLmV2ZW50U3RhdHVzLGRlbGV0ZSB0aGlzLmdkcHJBcHBsaWVzLGRlbGV0ZSB0aGlzLnRjTW9kZWwsZGVsZXRlIHRoaXMudGNTdHJpbmcsZGVsZXRlIHRoaXMudGNmUG9saWN5VmVyc2lvbix0aGlzLmNtcFN0YXR1cz1lLkxPQURJTkcsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLmRpc3BsYXlTdGF0dXM9bi5ISURERU4sdGhpcy5ldmVudFF1ZXVlLmNsZWFyKCl9fV0sbnVsbCYmeChyLnByb3RvdHlwZSxudWxsKSxvJiZ4KHIsbyksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fSgpO2Z1bmN0aW9uIEEodCl7cmV0dXJuIEE9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sQSh0KX1mdW5jdGlvbiBJKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGsobi5rZXkpLG4pfX1mdW5jdGlvbiBfKHQsZSxyKXtyZXR1cm4gZSYmSSh0LnByb3RvdHlwZSxlKSxyJiZJKHQsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIEModCxlLHIpe3JldHVybihlPWsoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gayh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPUEodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1BKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1BKGUpP2U6ZStcIlwifWooVCxcImFwaVZlcnNpb25cIixcIjJcIiksaihULFwidGNmUG9saWN5VmVyc2lvblwiLHZvaWQgMCksaihULFwiZXZlbnRRdWV1ZVwiLG5ldyBPKSxqKFQsXCJjbXBTdGF0dXNcIixlLkxPQURJTkcpLGooVCxcImRpc2FibGVkXCIsITEpLGooVCxcImRpc3BsYXlTdGF0dXNcIixuLkhJRERFTiksaihULFwiY21wSWRcIix2b2lkIDApLGooVCxcImNtcFZlcnNpb25cIix2b2lkIDApLGooVCxcImV2ZW50U3RhdHVzXCIsdm9pZCAwKSxqKFQsXCJnZHByQXBwbGllc1wiLHZvaWQgMCksaihULFwidGNNb2RlbFwiLHZvaWQgMCksaihULFwidGNTdHJpbmdcIix2b2lkIDApO3ZhciBSPV8oKGZ1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpLEModGhpcyxcImNtcElkXCIsVC5jbXBJZCksQyh0aGlzLFwiY21wVmVyc2lvblwiLFQuY21wVmVyc2lvbiksQyh0aGlzLFwiZ2RwckFwcGxpZXNcIixULmdkcHJBcHBsaWVzKSxDKHRoaXMsXCJ0Y2ZQb2xpY3lWZXJzaW9uXCIsVC50Y2ZQb2xpY3lWZXJzaW9uKX0pKTtmdW5jdGlvbiBMKHQpe3JldHVybiBMPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LEwodCl9ZnVuY3Rpb24gTSh0LGUpe3JldHVybiBNPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sTSh0LGUpfWZ1bmN0aW9uIE4odCl7dmFyIGU9VSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49RCh0KTtpZihlKXt2YXIgbz1EKHRoaXMpLmNvbnN0cnVjdG9yO3I9UmVmbGVjdC5jb25zdHJ1Y3Qobixhcmd1bWVudHMsbyl9ZWxzZSByPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGUmJihcIm9iamVjdFwiPT09TChlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIFYodCl9KHRoaXMscil9fWZ1bmN0aW9uIFYodCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIHR9ZnVuY3Rpb24gVSgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKFU9ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIEQodCl7cmV0dXJuIEQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LEQodCl9ZnVuY3Rpb24gRih0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPUwodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1MKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1MKGUpP2U6ZStcIlwifXZhciBCPWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlJiZNKHQsZSl9KG8sdCk7dmFyIHIsbj1OKG8pO2Z1bmN0aW9uIG8oKXt2YXIgdCxyLGksYTshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLG8pO2Zvcih2YXIgdT1hcmd1bWVudHMubGVuZ3RoLGM9bmV3IEFycmF5KHUpLHM9MDtzPHU7cysrKWNbc109YXJndW1lbnRzW3NdO3JldHVybiByPVYodD1uLmNhbGwuYXBwbHkobixbdGhpc10uY29uY2F0KGMpKSksaT1cImNtcFN0YXR1c1wiLGE9ZS5FUlJPUiwoaT1GKGkpKWluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaSx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbaV09YSx0fXJldHVybiByPW8sT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxyfShSKTtmdW5jdGlvbiBHKHQpe3JldHVybiBHPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LEcodCl9ZnVuY3Rpb24geih0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgcj0wLG49bmV3IEFycmF5KGUpO3I8ZTtyKyspbltyXT10W3JdO3JldHVybiBufWZ1bmN0aW9uIEgodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsSihuLmtleSksbil9fWZ1bmN0aW9uIFcodCxlKXtyZXR1cm4gVz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LFcodCxlKX1mdW5jdGlvbiBxKHQpe3ZhciBlPSQoKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcixuPVkodCk7aWYoZSl7dmFyIG89WSh0aGlzKS5jb25zdHJ1Y3RvcjtyPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2Ugcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZihlJiYoXCJvYmplY3RcIj09PUcoZSl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO3JldHVybiBLKHQpfSh0aGlzLHIpfX1mdW5jdGlvbiBLKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiB0fWZ1bmN0aW9uICQoKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybigkPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBZKHQpe3JldHVybiBZPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxZKHQpfWZ1bmN0aW9uIFEodCxlLHIpe3JldHVybihlPUooZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gSih0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPUcodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1HKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1HKGUpP2U6ZStcIlwifXZhciBYPWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlJiZXKHQsZSl9KG8sdCk7dmFyIGUscixuPXEobyk7ZnVuY3Rpb24gbyh0LGUpe3ZhciByO2lmKGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxvKSxRKEsocj1uLmNhbGwodGhpcykpLFwidGNTdHJpbmdcIix2b2lkIDApLFEoSyhyKSxcImxpc3RlbmVySWRcIix2b2lkIDApLFEoSyhyKSxcImV2ZW50U3RhdHVzXCIsdm9pZCAwKSxRKEsociksXCJjbXBTdGF0dXNcIix2b2lkIDApLFEoSyhyKSxcImlzU2VydmljZVNwZWNpZmljXCIsdm9pZCAwKSxRKEsociksXCJ1c2VOb25TdGFuZGFyZFRleHRzXCIsdm9pZCAwKSxRKEsociksXCJwdWJsaXNoZXJDQ1wiLHZvaWQgMCksUShLKHIpLFwicHVycG9zZU9uZVRyZWF0bWVudFwiLHZvaWQgMCksUShLKHIpLFwib3V0T2ZCYW5kXCIsdm9pZCAwKSxRKEsociksXCJwdXJwb3NlXCIsdm9pZCAwKSxRKEsociksXCJ2ZW5kb3JcIix2b2lkIDApLFEoSyhyKSxcInNwZWNpYWxGZWF0dXJlT3B0aW5zXCIsdm9pZCAwKSxRKEsociksXCJwdWJsaXNoZXJcIix2b2lkIDApLHIuZXZlbnRTdGF0dXM9VC5ldmVudFN0YXR1cyxyLmNtcFN0YXR1cz1ULmNtcFN0YXR1cyxyLmxpc3RlbmVySWQ9ZSxULmdkcHJBcHBsaWVzKXt2YXIgaT1ULnRjTW9kZWw7ci50Y1N0cmluZz1ULnRjU3RyaW5nLHIuaXNTZXJ2aWNlU3BlY2lmaWM9aS5pc1NlcnZpY2VTcGVjaWZpYyxyLnVzZU5vblN0YW5kYXJkVGV4dHM9aS51c2VOb25TdGFuZGFyZFRleHRzLHIucHVycG9zZU9uZVRyZWF0bWVudD1pLnB1cnBvc2VPbmVUcmVhdG1lbnQsci5wdWJsaXNoZXJDQz1pLnB1Ymxpc2hlckNvdW50cnlDb2RlLHIub3V0T2ZCYW5kPXthbGxvd2VkVmVuZG9yczpyLmNyZWF0ZVZlY3RvckZpZWxkKGkudmVuZG9yc0FsbG93ZWQsdCksZGlzY2xvc2VkVmVuZG9yczpyLmNyZWF0ZVZlY3RvckZpZWxkKGkudmVuZG9yc0Rpc2Nsb3NlZCx0KX0sci5wdXJwb3NlPXtjb25zZW50czpyLmNyZWF0ZVZlY3RvckZpZWxkKGkucHVycG9zZUNvbnNlbnRzKSxsZWdpdGltYXRlSW50ZXJlc3RzOnIuY3JlYXRlVmVjdG9yRmllbGQoaS5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cyl9LHIudmVuZG9yPXtjb25zZW50czpyLmNyZWF0ZVZlY3RvckZpZWxkKGkudmVuZG9yQ29uc2VudHMsdCksbGVnaXRpbWF0ZUludGVyZXN0czpyLmNyZWF0ZVZlY3RvckZpZWxkKGkudmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cyx0KX0sci5zcGVjaWFsRmVhdHVyZU9wdGlucz1yLmNyZWF0ZVZlY3RvckZpZWxkKGkuc3BlY2lhbEZlYXR1cmVPcHRpbnMpLHIucHVibGlzaGVyPXtjb25zZW50czpyLmNyZWF0ZVZlY3RvckZpZWxkKGkucHVibGlzaGVyQ29uc2VudHMpLGxlZ2l0aW1hdGVJbnRlcmVzdHM6ci5jcmVhdGVWZWN0b3JGaWVsZChpLnB1Ymxpc2hlckxlZ2l0aW1hdGVJbnRlcmVzdHMpLGN1c3RvbVB1cnBvc2U6e2NvbnNlbnRzOnIuY3JlYXRlVmVjdG9yRmllbGQoaS5wdWJsaXNoZXJDdXN0b21Db25zZW50cyksbGVnaXRpbWF0ZUludGVyZXN0czpyLmNyZWF0ZVZlY3RvckZpZWxkKGkucHVibGlzaGVyQ3VzdG9tTGVnaXRpbWF0ZUludGVyZXN0cyl9LHJlc3RyaWN0aW9uczpyLmNyZWF0ZVJlc3RyaWN0aW9ucyhpLnB1Ymxpc2hlclJlc3RyaWN0aW9ucyl9fXJldHVybiByfXJldHVybiBlPW8sKHI9W3trZXk6XCJjcmVhdGVSZXN0cmljdGlvbnNcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT17fTtpZih0Lm51bVJlc3RyaWN0aW9ucz4wKWZvcih2YXIgcj10LmdldE1heFZlbmRvcklkKCksbj1mdW5jdGlvbigpe3ZhciByPW8udG9TdHJpbmcoKTt0LmdldFJlc3RyaWN0aW9ucyhvKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbj10LnB1cnBvc2VJZC50b1N0cmluZygpO2Vbbl18fChlW25dPXt9KSxlW25dW3JdPXQucmVzdHJpY3Rpb25UeXBlfSkpfSxvPTE7bzw9cjtvKyspbigpO3JldHVybiBlfX0se2tleTpcImNyZWF0ZVZlY3RvckZpZWxkXCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT9lLnJlZHVjZSgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZVtTdHJpbmcocildPXQuaGFzKE51bWJlcihyKSksZX0pLHt9KToocj10LGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHoodCl9KHIpfHxmdW5jdGlvbih0KXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKHQpfShyKXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZihcInN0cmluZ1wiPT10eXBlb2YgdClyZXR1cm4geih0LGUpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09ciYmdC5jb25zdHJ1Y3RvciYmKHI9dC5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09cnx8XCJTZXRcIj09PXI/QXJyYXkuZnJvbSh0KTpcIkFyZ3VtZW50c1wiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/eih0LGUpOnZvaWQgMH19KHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZVswXS50b1N0cmluZygxMCldPWVbMV0sdH0pLHt9KTt2YXIgcn19XSkmJkgoZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxvfShSKTtmdW5jdGlvbiBaKHQpe3JldHVybiBaPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LFoodCl9ZnVuY3Rpb24gdHQodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheShlKTtyPGU7cisrKW5bcl09dFtyXTtyZXR1cm4gbn1mdW5jdGlvbiBldCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxydChuLmtleSksbil9fWZ1bmN0aW9uIHJ0KHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9Wih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPVoobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PVooZSk/ZTplK1wiXCJ9ZnVuY3Rpb24gbnQodCxlKXtyZXR1cm4gbnQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxudCh0LGUpfWZ1bmN0aW9uIG90KHQpe3ZhciBlPWl0KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsbj1hdCh0KTtpZihlKXt2YXIgbz1hdCh0aGlzKS5jb25zdHJ1Y3RvcjtyPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2Ugcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZihlJiYoXCJvYmplY3RcIj09PVooZSl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH0odCl9KHRoaXMscil9fWZ1bmN0aW9uIGl0KCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4oaXQ9ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIGF0KHQpe3JldHVybiBhdD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sYXQodCl9dmFyIHV0PWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlJiZudCh0LGUpfShvLHQpO3ZhciBlLHIsbj1vdChvKTtmdW5jdGlvbiBvKHQpe3ZhciBlO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsbyksZGVsZXRlKGU9bi5jYWxsKHRoaXMsdCkpLm91dE9mQmFuZCxlfXJldHVybiBlPW8sKHI9W3trZXk6XCJjcmVhdGVWZWN0b3JGaWVsZFwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybihlPXQsZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdHQodCl9KGUpfHxmdW5jdGlvbih0KXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKHQpfShlKXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZihcInN0cmluZ1wiPT10eXBlb2YgdClyZXR1cm4gdHQodCxlKTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PXImJnQuY29uc3RydWN0b3ImJihyPXQuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXJ8fFwiU2V0XCI9PT1yP0FycmF5LmZyb20odCk6XCJBcmd1bWVudHNcIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP3R0KHQsZSk6dm9pZCAwfX0oZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCsoZVsxXT9cIjFcIjpcIjBcIil9KSxcIlwiKTt2YXIgZX19LHtrZXk6XCJjcmVhdGVSZXN0cmljdGlvbnNcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT17fTtpZih0Lm51bVJlc3RyaWN0aW9ucz4wKXt2YXIgcj10LmdldE1heFZlbmRvcklkKCk7dC5nZXRSZXN0cmljdGlvbnMoKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3QucHVycG9zZUlkLnRvU3RyaW5nKCldPVwiX1wiLnJlcGVhdChyKX0pKTtmb3IodmFyIG49ZnVuY3Rpb24ocil7dmFyIG49cisxO3QuZ2V0UmVzdHJpY3Rpb25zKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQucmVzdHJpY3Rpb25UeXBlLnRvU3RyaW5nKCksbz10LnB1cnBvc2VJZC50b1N0cmluZygpLGk9ZVtvXS5zdWJzdHIoMCxyKSxhPWVbb10uc3Vic3RyKHIrMSk7ZVtvXT1pK24rYX0pKX0sbz0wO288cjtvKyspbihvKX1yZXR1cm4gZX19XSkmJmV0KGUucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksb30oWCk7ZnVuY3Rpb24gY3QodCl7cmV0dXJuIGN0PVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LGN0KHQpfWZ1bmN0aW9uIHN0KHQsZSl7cmV0dXJuIHN0PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sc3QodCxlKX1mdW5jdGlvbiBmdCh0KXt2YXIgZT1wdCgpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49dnQodCk7aWYoZSl7dmFyIG89dnQodGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKFwib2JqZWN0XCI9PT1jdChlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIGx0KHQpfSh0aGlzLHIpfX1mdW5jdGlvbiBsdCh0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH1mdW5jdGlvbiBwdCgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKHB0PWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiB2dCh0KXtyZXR1cm4gdnQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LHZ0KHQpfWZ1bmN0aW9uIHl0KHQsZSxyKXtyZXR1cm4oZT1odChlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiBodCh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPWN0KHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9Y3QobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PWN0KGUpP2U6ZStcIlwifXZhciBkdD1mdW5jdGlvbih0KXshZnVuY3Rpb24odCxlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZSYmc3QodCxlKX0obix0KTt2YXIgZSxyPWZ0KG4pO2Z1bmN0aW9uIG4oKXt2YXIgdDtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLG4pLHl0KGx0KHQ9ci5jYWxsKHRoaXMpKSxcImNtcExvYWRlZFwiLCEwKSx5dChsdCh0KSxcImNtcFN0YXR1c1wiLFQuY21wU3RhdHVzKSx5dChsdCh0KSxcImRpc3BsYXlTdGF0dXNcIixULmRpc3BsYXlTdGF0dXMpLHl0KGx0KHQpLFwiYXBpVmVyc2lvblwiLFN0cmluZyhULmFwaVZlcnNpb24pKSx5dChsdCh0KSxcImd2bFZlcnNpb25cIix2b2lkIDApLFQudGNNb2RlbCYmVC50Y01vZGVsLnZlbmRvckxpc3RWZXJzaW9uJiYodC5ndmxWZXJzaW9uPStULnRjTW9kZWwudmVuZG9yTGlzdFZlcnNpb24pLHR9cmV0dXJuIGU9bixPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGV9KFIpO2Z1bmN0aW9uIGJ0KHQpe3JldHVybiBidD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxidCh0KX1mdW5jdGlvbiBndCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxtdChuLmtleSksbil9fWZ1bmN0aW9uIG10KHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9YnQodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1idChuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuXCJzeW1ib2xcIj09YnQoZSk/ZTplK1wiXCJ9ZnVuY3Rpb24gd3QodCxlKXtyZXR1cm4gd3Q9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSx3dCh0LGUpfWZ1bmN0aW9uIFN0KHQpe3ZhciBlPU90KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsbj1FdCh0KTtpZihlKXt2YXIgbz1FdCh0aGlzKS5jb25zdHJ1Y3RvcjtyPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2Ugcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZihlJiYoXCJvYmplY3RcIj09PWJ0KGUpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIHR9KHQpfSh0aGlzLHIpfX1mdW5jdGlvbiBPdCgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKE90PWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBFdCh0KXtyZXR1cm4gRXQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LEV0KHQpfXZhciB4dD1mdW5jdGlvbih0KXshZnVuY3Rpb24odCxlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZSYmd3QodCxlKX0obyx0KTt2YXIgZSxyLG49U3Qobyk7ZnVuY3Rpb24gbygpe3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsbyksbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGU9bywocj1be2tleTpcInJlc3BvbmRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaW52b2tlQ2FsbGJhY2sobmV3IGR0KX19XSkmJmd0KGUucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksb30ocyk7ZnVuY3Rpb24ganQodCl7cmV0dXJuIGp0PVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LGp0KHQpfWZ1bmN0aW9uIFB0KHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFR0KG4ua2V5KSxuKX19ZnVuY3Rpb24gVHQodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1qdCh0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPWp0KG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1qdChlKT9lOmUrXCJcIn1mdW5jdGlvbiBBdCh0LGUpe3JldHVybiBBdD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LEF0KHQsZSl9ZnVuY3Rpb24gSXQodCl7dmFyIGU9X3QoKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcixuPUN0KHQpO2lmKGUpe3ZhciBvPUN0KHRoaXMpLmNvbnN0cnVjdG9yO3I9UmVmbGVjdC5jb25zdHJ1Y3Qobixhcmd1bWVudHMsbyl9ZWxzZSByPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGUmJihcIm9iamVjdFwiPT09anQoZSl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH0odCl9KHRoaXMscil9fWZ1bmN0aW9uIF90KCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4oX3Q9ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIEN0KHQpe3JldHVybiBDdD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sQ3QodCl9dmFyIGt0PWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlJiZBdCh0LGUpfShvLHQpO3ZhciBlLHIsbj1JdChvKTtmdW5jdGlvbiBvKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxvKSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZT1vLChyPVt7a2V5OlwicmVzcG9uZFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50aHJvd0lmUGFyYW1JbnZhbGlkKCksdGhpcy5pbnZva2VDYWxsYmFjayhuZXcgdXQodGhpcy5wYXJhbSkpfX1dKSYmUHQoZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxvfShiKTtmdW5jdGlvbiBSdCh0KXtyZXR1cm4gUnQ9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sUnQodCl9ZnVuY3Rpb24gTHQodCl7dmFyIGU9XCJmdW5jdGlvblwiPT10eXBlb2YgTWFwP25ldyBNYXA6dm9pZCAwO3JldHVybiBMdD1mdW5jdGlvbih0KXtpZihudWxsPT09dHx8IWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4tMSE9PUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwodCkuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIil9Y2F0Y2goZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdH19KHQpKXJldHVybiB0O2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2lmKHZvaWQgMCE9PWUpe2lmKGUuaGFzKHQpKXJldHVybiBlLmdldCh0KTtlLnNldCh0LHIpfWZ1bmN0aW9uIHIoKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe2lmKE10KCkpcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0LmFwcGx5KG51bGwsYXJndW1lbnRzKTt2YXIgbj1bbnVsbF07bi5wdXNoLmFwcGx5KG4sZSk7dmFyIG89bmV3KHQuYmluZC5hcHBseSh0LG4pKTtyZXR1cm4gciYmTnQobyxyLnByb3RvdHlwZSksb30odCxhcmd1bWVudHMsVnQodGhpcykuY29uc3RydWN0b3IpfXJldHVybiByLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cixlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxOdChyLHQpfSxMdCh0KX1mdW5jdGlvbiBNdCgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKE10PWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBOdCh0LGUpe3JldHVybiBOdD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LE50KHQsZSl9ZnVuY3Rpb24gVnQodCl7cmV0dXJuIFZ0PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxWdCh0KX12YXIgVXQ9ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGUmJk50KHQsZSl9KGksdCk7dmFyIGUscixuLG89KHI9aSxuPU10KCksZnVuY3Rpb24oKXt2YXIgdCxlPVZ0KHIpO2lmKG4pe3ZhciBvPVZ0KHRoaXMpLmNvbnN0cnVjdG9yO3Q9UmVmbGVjdC5jb25zdHJ1Y3QoZSxhcmd1bWVudHMsbyl9ZWxzZSB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGUmJihcIm9iamVjdFwiPT09UnQoZSl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH0odCl9KHRoaXMsdCl9KTtmdW5jdGlvbiBpKHQpe3ZhciBlO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsaSksKGU9by5jYWxsKHRoaXMsdCkpLm5hbWU9XCJFbmNvZGluZ0Vycm9yXCIsZX1yZXR1cm4gZT1pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZX0oTHQoRXJyb3IpKTtmdW5jdGlvbiBEdCh0KXtyZXR1cm4gRHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sRHQodCl9ZnVuY3Rpb24gRnQodCl7dmFyIGU9XCJmdW5jdGlvblwiPT10eXBlb2YgTWFwP25ldyBNYXA6dm9pZCAwO3JldHVybiBGdD1mdW5jdGlvbih0KXtpZihudWxsPT09dHx8IWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4tMSE9PUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwodCkuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIil9Y2F0Y2goZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdH19KHQpKXJldHVybiB0O2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2lmKHZvaWQgMCE9PWUpe2lmKGUuaGFzKHQpKXJldHVybiBlLmdldCh0KTtlLnNldCh0LHIpfWZ1bmN0aW9uIHIoKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe2lmKEJ0KCkpcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0LmFwcGx5KG51bGwsYXJndW1lbnRzKTt2YXIgbj1bbnVsbF07bi5wdXNoLmFwcGx5KG4sZSk7dmFyIG89bmV3KHQuYmluZC5hcHBseSh0LG4pKTtyZXR1cm4gciYmR3QobyxyLnByb3RvdHlwZSksb30odCxhcmd1bWVudHMsenQodGhpcykuY29uc3RydWN0b3IpfXJldHVybiByLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cixlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxHdChyLHQpfSxGdCh0KX1mdW5jdGlvbiBCdCgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKEJ0PWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBHdCh0LGUpe3JldHVybiBHdD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LEd0KHQsZSl9ZnVuY3Rpb24genQodCl7cmV0dXJuIHp0PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSx6dCh0KX12YXIgSHQ9ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGUmJkd0KHQsZSl9KGksdCk7dmFyIGUscixuLG89KHI9aSxuPUJ0KCksZnVuY3Rpb24oKXt2YXIgdCxlPXp0KHIpO2lmKG4pe3ZhciBvPXp0KHRoaXMpLmNvbnN0cnVjdG9yO3Q9UmVmbGVjdC5jb25zdHJ1Y3QoZSxhcmd1bWVudHMsbyl9ZWxzZSB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGUmJihcIm9iamVjdFwiPT09RHQoZSl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH0odCl9KHRoaXMsdCl9KTtmdW5jdGlvbiBpKHQpe3ZhciBlO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsaSksKGU9by5jYWxsKHRoaXMsdCkpLm5hbWU9XCJEZWNvZGluZ0Vycm9yXCIsZX1yZXR1cm4gZT1pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZX0oRnQoRXJyb3IpKTtmdW5jdGlvbiBXdCh0KXtyZXR1cm4gV3Q9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sV3QodCl9ZnVuY3Rpb24gcXQodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsJHQobi5rZXkpLG4pfX1mdW5jdGlvbiBLdCh0LGUscil7cmV0dXJuKGU9JHQoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gJHQodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1XdCh0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPVd0KG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1XdChlKT9lOmUrXCJcIn12YXIgWXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KX12YXIgZSxyO3JldHVybiBlPXQscj1be2tleTpcImVuY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCEvXlswLTFdKyQvLnRlc3QodCkpdGhyb3cgbmV3IFV0KFwiSW52YWxpZCBiaXRGaWVsZFwiKTt2YXIgZT10Lmxlbmd0aCV0aGlzLkxDTTt0Kz1lP1wiMFwiLnJlcGVhdCh0aGlzLkxDTS1lKTpcIlwiO2Zvcih2YXIgcj1cIlwiLG49MDtuPHQubGVuZ3RoO24rPXRoaXMuQkFTSVMpcis9dGhpcy5ESUNUW3BhcnNlSW50KHQuc3Vic3RyKG4sdGhpcy5CQVNJUyksMildO3JldHVybiByfX0se2tleTpcImRlY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCEvXltBLVphLXowLTlcXC1fXSskLy50ZXN0KHQpKXRocm93IG5ldyBIdChcIkludmFsaWRseSBlbmNvZGVkIEJhc2U2NFVSTCBzdHJpbmdcIik7Zm9yKHZhciBlPVwiXCIscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10aGlzLlJFVkVSU0VfRElDVC5nZXQodFtyXSkudG9TdHJpbmcoMik7ZSs9XCIwXCIucmVwZWF0KHRoaXMuQkFTSVMtbi5sZW5ndGgpK259cmV0dXJuIGV9fV0sbnVsbCYmcXQoZS5wcm90b3R5cGUsbnVsbCksciYmcXQoZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLHR9KCk7ZnVuY3Rpb24gUXQodCl7cmV0dXJuIFF0PVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LFF0KHQpfWZ1bmN0aW9uIEp0KHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciByPTAsbj1uZXcgQXJyYXkoZSk7cjxlO3IrKyluW3JdPXRbcl07cmV0dXJuIG59ZnVuY3Rpb24gWHQodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsWnQobi5rZXkpLG4pfX1mdW5jdGlvbiBadCh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPVF0KHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9UXQobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PVF0KGUpP2U6ZStcIlwifUt0KFl0LFwiRElDVFwiLFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX1wiKSxLdChZdCxcIlJFVkVSU0VfRElDVFwiLG5ldyBNYXAoW1tcIkFcIiwwXSxbXCJCXCIsMV0sW1wiQ1wiLDJdLFtcIkRcIiwzXSxbXCJFXCIsNF0sW1wiRlwiLDVdLFtcIkdcIiw2XSxbXCJIXCIsN10sW1wiSVwiLDhdLFtcIkpcIiw5XSxbXCJLXCIsMTBdLFtcIkxcIiwxMV0sW1wiTVwiLDEyXSxbXCJOXCIsMTNdLFtcIk9cIiwxNF0sW1wiUFwiLDE1XSxbXCJRXCIsMTZdLFtcIlJcIiwxN10sW1wiU1wiLDE4XSxbXCJUXCIsMTldLFtcIlVcIiwyMF0sW1wiVlwiLDIxXSxbXCJXXCIsMjJdLFtcIlhcIiwyM10sW1wiWVwiLDI0XSxbXCJaXCIsMjVdLFtcImFcIiwyNl0sW1wiYlwiLDI3XSxbXCJjXCIsMjhdLFtcImRcIiwyOV0sW1wiZVwiLDMwXSxbXCJmXCIsMzFdLFtcImdcIiwzMl0sW1wiaFwiLDMzXSxbXCJpXCIsMzRdLFtcImpcIiwzNV0sW1wia1wiLDM2XSxbXCJsXCIsMzddLFtcIm1cIiwzOF0sW1wiblwiLDM5XSxbXCJvXCIsNDBdLFtcInBcIiw0MV0sW1wicVwiLDQyXSxbXCJyXCIsNDNdLFtcInNcIiw0NF0sW1widFwiLDQ1XSxbXCJ1XCIsNDZdLFtcInZcIiw0N10sW1wid1wiLDQ4XSxbXCJ4XCIsNDldLFtcInlcIiw1MF0sW1wielwiLDUxXSxbXCIwXCIsNTJdLFtcIjFcIiw1M10sW1wiMlwiLDU0XSxbXCIzXCIsNTVdLFtcIjRcIiw1Nl0sW1wiNVwiLDU3XSxbXCI2XCIsNThdLFtcIjdcIiw1OV0sW1wiOFwiLDYwXSxbXCI5XCIsNjFdLFtcIi1cIiw2Ml0sW1wiX1wiLDYzXV0pKSxLdChZdCxcIkJBU0lTXCIsNiksS3QoWXQsXCJMQ01cIiwyNCk7dmFyIHRlLGVlLHJlLG5lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCl9dmFyIGUscjtyZXR1cm4gZT10LChyPVt7a2V5OlwiaGFzXCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHQubGFuZ1NldC5oYXMoZSl9fSx7a2V5OlwicGFyc2VMYW5ndWFnZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciByPShlPWUudG9VcHBlckNhc2UoKSkuc3BsaXQoXCItXCIpWzBdO2lmKGUubGVuZ3RoPj0yJiYyPT1yLmxlbmd0aCl7aWYodC5sYW5nU2V0LmhhcyhlKSlyZXR1cm4gZTtpZih0LmxhbmdTZXQuaGFzKHIpKXJldHVybiByO3ZhciBuPXIrXCItXCIrcjtpZih0LmxhbmdTZXQuaGFzKG4pKXJldHVybiBuO3ZhciBvLGk9ZnVuY3Rpb24odCxlKXt2YXIgcj1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbXCJAQGl0ZXJhdG9yXCJdO2lmKCFyKXtpZihBcnJheS5pc0FycmF5KHQpfHwocj1mdW5jdGlvbih0LGUpe2lmKHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXJldHVybiBKdCh0LGUpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09ciYmdC5jb25zdHJ1Y3RvciYmKHI9dC5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09cnx8XCJTZXRcIj09PXI/QXJyYXkuZnJvbSh0KTpcIkFyZ3VtZW50c1wiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/SnQodCxlKTp2b2lkIDB9fSh0KSl8fGUmJnQmJlwibnVtYmVyXCI9PXR5cGVvZiB0Lmxlbmd0aCl7ciYmKHQ9cik7dmFyIG49MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gbj49dC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOnRbbisrXX19LGU6ZnVuY3Rpb24odCl7dGhyb3cgdH0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9dmFyIGksYT0hMCx1PSExO3JldHVybntzOmZ1bmN0aW9uKCl7cj1yLmNhbGwodCl9LG46ZnVuY3Rpb24oKXt2YXIgdD1yLm5leHQoKTtyZXR1cm4gYT10LmRvbmUsdH0sZTpmdW5jdGlvbih0KXt1PSEwLGk9dH0sZjpmdW5jdGlvbigpe3RyeXthfHxudWxsPT1yLnJldHVybnx8ci5yZXR1cm4oKX1maW5hbGx5e2lmKHUpdGhyb3cgaX19fX0odC5sYW5nU2V0KTt0cnl7Zm9yKGkucygpOyEobz1pLm4oKSkuZG9uZTspe3ZhciBhPW8udmFsdWU7aWYoLTEhPT1hLmluZGV4T2YoZSl8fC0xIT09YS5pbmRleE9mKHIpKXJldHVybiBhfX1jYXRjaCh0KXtpLmUodCl9ZmluYWxseXtpLmYoKX19dGhyb3cgbmV3IEVycm9yKFwidW5zdXBwb3J0ZWQgbGFuZ3VhZ2UgXCIuY29uY2F0KGUpKX19LHtrZXk6XCJmb3JFYWNoXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dC5sYW5nU2V0LmZvckVhY2goZSl9fSx7a2V5Olwic2l6ZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0LmxhbmdTZXQuc2l6ZX19XSkmJlh0KGUucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH0oKTtmdW5jdGlvbiBvZSh0KXtyZXR1cm4gb2U9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sb2UodCl9ZnVuY3Rpb24gaWUodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsY2Uobi5rZXkpLG4pfX1mdW5jdGlvbiBhZSh0LGUscil7cmV0dXJuIGUmJmllKHQucHJvdG90eXBlLGUpLHImJmllKHQsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIHVlKHQsZSxyKXtyZXR1cm4oZT1jZShlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiBjZSh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPW9lKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9b2UobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PW9lKGUpP2U6ZStcIlwifXRlPW5lLGVlPVwibGFuZ1NldFwiLHJlPW5ldyBTZXQoW1wiQVJcIixcIkJHXCIsXCJCU1wiLFwiQ0FcIixcIkNTXCIsXCJDWVwiLFwiREFcIixcIkRFXCIsXCJFTFwiLFwiRU5cIixcIkVTXCIsXCJFVFwiLFwiRVVcIixcIkZJXCIsXCJGUlwiLFwiR0xcIixcIkhFXCIsXCJIUlwiLFwiSFVcIixcIklEXCIsXCJJVFwiLFwiSkFcIixcIktPXCIsXCJMVFwiLFwiTFZcIixcIk1LXCIsXCJNU1wiLFwiTVRcIixcIk5MXCIsXCJOT1wiLFwiUExcIixcIlBULUJSXCIsXCJQVC1QVFwiLFwiUk9cIixcIlJVXCIsXCJTS1wiLFwiU0xcIixcIlNSLUxBVE5cIixcIlNSLUNZUkxcIixcIlNWXCIsXCJUTFwiLFwiVFJcIixcIlVLXCIsXCJaSFwiXSksKGVlPVp0KGVlKSlpbiB0ZT9PYmplY3QuZGVmaW5lUHJvcGVydHkodGUsZWUse3ZhbHVlOnJlLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dGVbZWVdPXJlO3ZhciBzZT1hZSgoZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCl9KSk7ZnVuY3Rpb24gZmUodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheShlKTtyPGU7cisrKW5bcl09dFtyXTtyZXR1cm4gbn1mdW5jdGlvbiBsZSh0KXtyZXR1cm4gbGU9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sbGUodCl9ZnVuY3Rpb24gcGUodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsdmUobi5rZXkpLG4pfX1mdW5jdGlvbiB2ZSh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPWxlKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9bGUobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PWxlKGUpP2U6ZStcIlwifXVlKHNlLFwiY21wSWRcIixcImNtcElkXCIpLHVlKHNlLFwiY21wVmVyc2lvblwiLFwiY21wVmVyc2lvblwiKSx1ZShzZSxcImNvbnNlbnRMYW5ndWFnZVwiLFwiY29uc2VudExhbmd1YWdlXCIpLHVlKHNlLFwiY29uc2VudFNjcmVlblwiLFwiY29uc2VudFNjcmVlblwiKSx1ZShzZSxcImNyZWF0ZWRcIixcImNyZWF0ZWRcIiksdWUoc2UsXCJzdXBwb3J0T09CXCIsXCJzdXBwb3J0T09CXCIpLHVlKHNlLFwiaXNTZXJ2aWNlU3BlY2lmaWNcIixcImlzU2VydmljZVNwZWNpZmljXCIpLHVlKHNlLFwibGFzdFVwZGF0ZWRcIixcImxhc3RVcGRhdGVkXCIpLHVlKHNlLFwibnVtQ3VzdG9tUHVycG9zZXNcIixcIm51bUN1c3RvbVB1cnBvc2VzXCIpLHVlKHNlLFwicG9saWN5VmVyc2lvblwiLFwicG9saWN5VmVyc2lvblwiKSx1ZShzZSxcInB1Ymxpc2hlckNvdW50cnlDb2RlXCIsXCJwdWJsaXNoZXJDb3VudHJ5Q29kZVwiKSx1ZShzZSxcInB1Ymxpc2hlckN1c3RvbUNvbnNlbnRzXCIsXCJwdWJsaXNoZXJDdXN0b21Db25zZW50c1wiKSx1ZShzZSxcInB1Ymxpc2hlckN1c3RvbUxlZ2l0aW1hdGVJbnRlcmVzdHNcIixcInB1Ymxpc2hlckN1c3RvbUxlZ2l0aW1hdGVJbnRlcmVzdHNcIiksdWUoc2UsXCJwdWJsaXNoZXJMZWdpdGltYXRlSW50ZXJlc3RzXCIsXCJwdWJsaXNoZXJMZWdpdGltYXRlSW50ZXJlc3RzXCIpLHVlKHNlLFwicHVibGlzaGVyQ29uc2VudHNcIixcInB1Ymxpc2hlckNvbnNlbnRzXCIpLHVlKHNlLFwicHVibGlzaGVyUmVzdHJpY3Rpb25zXCIsXCJwdWJsaXNoZXJSZXN0cmljdGlvbnNcIiksdWUoc2UsXCJwdXJwb3NlQ29uc2VudHNcIixcInB1cnBvc2VDb25zZW50c1wiKSx1ZShzZSxcInB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzXCIsXCJwdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0c1wiKSx1ZShzZSxcInB1cnBvc2VPbmVUcmVhdG1lbnRcIixcInB1cnBvc2VPbmVUcmVhdG1lbnRcIiksdWUoc2UsXCJzcGVjaWFsRmVhdHVyZU9wdGluc1wiLFwic3BlY2lhbEZlYXR1cmVPcHRpbnNcIiksdWUoc2UsXCJ1c2VOb25TdGFuZGFyZFRleHRzXCIsXCJ1c2VOb25TdGFuZGFyZFRleHRzXCIpLHVlKHNlLFwidmVuZG9yQ29uc2VudHNcIixcInZlbmRvckNvbnNlbnRzXCIpLHVlKHNlLFwidmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0c1wiLFwidmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0c1wiKSx1ZShzZSxcInZlbmRvckxpc3RWZXJzaW9uXCIsXCJ2ZW5kb3JMaXN0VmVyc2lvblwiKSx1ZShzZSxcInZlbmRvcnNBbGxvd2VkXCIsXCJ2ZW5kb3JzQWxsb3dlZFwiKSx1ZShzZSxcInZlbmRvcnNEaXNjbG9zZWRcIixcInZlbmRvcnNEaXNjbG9zZWRcIiksdWUoc2UsXCJ2ZXJzaW9uXCIsXCJ2ZXJzaW9uXCIpO3ZhciB5ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpfXZhciBlLHI7cmV0dXJuIGU9dCxyPVt7a2V5OlwiY2xvbmVcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1uZXcgdGhpcy5jb25zdHJ1Y3RvcjtyZXR1cm4gT2JqZWN0LmtleXModGhpcykuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIG49dC5kZWVwQ2xvbmUodFtyXSk7dm9pZCAwIT09biYmKGVbcl09bil9KSksZX19LHtrZXk6XCJkZWVwQ2xvbmVcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1sZSh0KTtpZihcIm51bWJlclwiPT09ZXx8XCJzdHJpbmdcIj09PWV8fFwiYm9vbGVhblwiPT09ZSlyZXR1cm4gdDtpZihudWxsIT09dCYmXCJvYmplY3RcIj09PWUpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQuY2xvbmUpcmV0dXJuIHQuY2xvbmUoKTtpZih0IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUodC5nZXRUaW1lKCkpO2lmKHZvaWQgMCE9PXRbU3ltYm9sLml0ZXJhdG9yXSl7dmFyIHIsbj1bXSxvPWZ1bmN0aW9uKHQsZSl7dmFyIHI9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0W1wiQEBpdGVyYXRvclwiXTtpZighcil7aWYoQXJyYXkuaXNBcnJheSh0KXx8KHI9ZnVuY3Rpb24odCxlKXtpZih0KXtpZihcInN0cmluZ1wiPT10eXBlb2YgdClyZXR1cm4gZmUodCxlKTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PXImJnQuY29uc3RydWN0b3ImJihyPXQuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXJ8fFwiU2V0XCI9PT1yP0FycmF5LmZyb20odCk6XCJBcmd1bWVudHNcIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP2ZlKHQsZSk6dm9pZCAwfX0odCkpfHxlJiZ0JiZcIm51bWJlclwiPT10eXBlb2YgdC5sZW5ndGgpe3ImJih0PXIpO3ZhciBuPTAsbz1mdW5jdGlvbigpe307cmV0dXJue3M6byxuOmZ1bmN0aW9uKCl7cmV0dXJuIG4+PXQubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTp0W24rK119fSxlOmZ1bmN0aW9uKHQpe3Rocm93IHR9LGY6b319dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfXZhciBpLGE9ITAsdT0hMTtyZXR1cm57czpmdW5jdGlvbigpe3I9ci5jYWxsKHQpfSxuOmZ1bmN0aW9uKCl7dmFyIHQ9ci5uZXh0KCk7cmV0dXJuIGE9dC5kb25lLHR9LGU6ZnVuY3Rpb24odCl7dT0hMCxpPXR9LGY6ZnVuY3Rpb24oKXt0cnl7YXx8bnVsbD09ci5yZXR1cm58fHIucmV0dXJuKCl9ZmluYWxseXtpZih1KXRocm93IGl9fX19KHQpO3RyeXtmb3Ioby5zKCk7IShyPW8ubigpKS5kb25lOyl7dmFyIGk9ci52YWx1ZTtuLnB1c2godGhpcy5kZWVwQ2xvbmUoaSkpfX1jYXRjaCh0KXtvLmUodCl9ZmluYWxseXtvLmYoKX1yZXR1cm4gdCBpbnN0YW5jZW9mIEFycmF5P246bmV3IHQuY29uc3RydWN0b3Iobil9dmFyIGE9e307Zm9yKHZhciB1IGluIHQpdC5oYXNPd25Qcm9wZXJ0eSh1KSYmKGFbdV09dGhpcy5kZWVwQ2xvbmUodFt1XSkpO3JldHVybiBhfX19XSxyJiZwZShlLnByb3RvdHlwZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLHR9KCk7ZnVuY3Rpb24gaGUodCl7cmV0dXJuIGhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LGhlKHQpfWZ1bmN0aW9uIGRlKHQpe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIE1hcD9uZXcgTWFwOnZvaWQgMDtyZXR1cm4gZGU9ZnVuY3Rpb24odCl7aWYobnVsbD09PXR8fCFmdW5jdGlvbih0KXt0cnl7cmV0dXJuLTEhPT1GdW5jdGlvbi50b1N0cmluZy5jYWxsKHQpLmluZGV4T2YoXCJbbmF0aXZlIGNvZGVdXCIpfWNhdGNoKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHR9fSh0KSlyZXR1cm4gdDtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtpZih2b2lkIDAhPT1lKXtpZihlLmhhcyh0KSlyZXR1cm4gZS5nZXQodCk7ZS5zZXQodCxyKX1mdW5jdGlvbiByKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXtpZihiZSgpKXJldHVybiBSZWZsZWN0LmNvbnN0cnVjdC5hcHBseShudWxsLGFyZ3VtZW50cyk7dmFyIG49W251bGxdO24ucHVzaC5hcHBseShuLGUpO3ZhciBvPW5ldyh0LmJpbmQuYXBwbHkodCxuKSk7cmV0dXJuIHImJmdlKG8sci5wcm90b3R5cGUpLG99KHQsYXJndW1lbnRzLG1lKHRoaXMpLmNvbnN0cnVjdG9yKX1yZXR1cm4gci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnIsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksZ2Uocix0KX0sZGUodCl9ZnVuY3Rpb24gYmUoKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybihiZT1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gZ2UodCxlKXtyZXR1cm4gZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxnZSh0LGUpfWZ1bmN0aW9uIG1lKHQpe3JldHVybiBtZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sbWUodCl9dmFyIHdlLFNlPWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlJiZnZSh0LGUpfShpLHQpO3ZhciBlLHIsbixvPShyPWksbj1iZSgpLGZ1bmN0aW9uKCl7dmFyIHQsZT1tZShyKTtpZihuKXt2YXIgbz1tZSh0aGlzKS5jb25zdHJ1Y3Rvcjt0PVJlZmxlY3QuY29uc3RydWN0KGUsYXJndW1lbnRzLG8pfWVsc2UgdD1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZihlJiYoXCJvYmplY3RcIj09PWhlKGUpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIHR9KHQpfSh0aGlzLHQpfSk7ZnVuY3Rpb24gaSh0LGUpe3ZhciByLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOlwiXCI7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxpKSwocj1vLmNhbGwodGhpcyxcImludmFsaWQgdmFsdWUgXCIuY29uY2F0KGUsXCIgcGFzc2VkIGZvciBcIikuY29uY2F0KHQsXCIgXCIpLmNvbmNhdChuKSkpLm5hbWU9XCJUQ01vZGVsRXJyb3JcIixyfXJldHVybiBlPWksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlfShkZShFcnJvcikpO2Z1bmN0aW9uIE9lKHQpe3JldHVybiBPZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxPZSh0KX1mdW5jdGlvbiBFZSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxfZShuLmtleSksbil9fWZ1bmN0aW9uIHhlKHQsZSl7cmV0dXJuIHhlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0seGUodCxlKX1mdW5jdGlvbiBqZSh0KXt2YXIgZT1UZSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49QWUodCk7aWYoZSl7dmFyIG89QWUodGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKFwib2JqZWN0XCI9PT1PZShlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIFBlKHQpfSh0aGlzLHIpfX1mdW5jdGlvbiBQZSh0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH1mdW5jdGlvbiBUZSgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKFRlPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBBZSh0KXtyZXR1cm4gQWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LEFlKHQpfWZ1bmN0aW9uIEllKHQsZSxyKXtyZXR1cm4oZT1fZShlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiBfZSh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPU9lKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9T2UobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PU9lKGUpP2U6ZStcIlwifSFmdW5jdGlvbih0KXt0W3QuTk9UX0FMTE9XRUQ9MF09XCJOT1RfQUxMT1dFRFwiLHRbdC5SRVFVSVJFX0NPTlNFTlQ9MV09XCJSRVFVSVJFX0NPTlNFTlRcIix0W3QuUkVRVUlSRV9MST0yXT1cIlJFUVVJUkVfTElcIn0od2V8fCh3ZT17fSkpO3ZhciBDZT1mdW5jdGlvbih0KXshZnVuY3Rpb24odCxlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZSYmeGUodCxlKX0oaSx0KTt2YXIgZSxyLG4sbz1qZShpKTtmdW5jdGlvbiBpKHQsZSl7dmFyIHI7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxpKSxJZShQZShyPW8uY2FsbCh0aGlzKSksXCJwdXJwb3NlSWRfXCIsdm9pZCAwKSxJZShQZShyKSxcInJlc3RyaWN0aW9uVHlwZVwiLHZvaWQgMCksdm9pZCAwIT09dCYmKHIucHVycG9zZUlkPXQpLHZvaWQgMCE9PWUmJihyLnJlc3RyaWN0aW9uVHlwZT1lKSxyfXJldHVybiBlPWksbj1be2tleTpcInVuSGFzaFwiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3BsaXQodGhpcy5oYXNoU2VwYXJhdG9yKSxyPW5ldyBpO2lmKDIhPT1lLmxlbmd0aCl0aHJvdyBuZXcgU2UoXCJoYXNoXCIsdCk7cmV0dXJuIHIucHVycG9zZUlkPXBhcnNlSW50KGVbMF0sMTApLHIucmVzdHJpY3Rpb25UeXBlPXBhcnNlSW50KGVbMV0sMTApLHJ9fV0sKHI9W3trZXk6XCJoYXNoXCIsZ2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNWYWxpZCgpKXRocm93IG5ldyBFcnJvcihcImNhbm5vdCBoYXNoIGludmFsaWQgUHVycG9zZVJlc3RyaWN0aW9uXCIpO3JldHVyblwiXCIuY29uY2F0KHRoaXMucHVycG9zZUlkKS5jb25jYXQoaS5oYXNoU2VwYXJhdG9yKS5jb25jYXQodGhpcy5yZXN0cmljdGlvblR5cGUpfX0se2tleTpcInB1cnBvc2VJZFwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1cnBvc2VJZF99LHNldDpmdW5jdGlvbih0KXt0aGlzLnB1cnBvc2VJZF89dH19LHtrZXk6XCJpc1ZhbGlkXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih0aGlzLnB1cnBvc2VJZCkmJnRoaXMucHVycG9zZUlkPjAmJih0aGlzLnJlc3RyaWN0aW9uVHlwZT09PXdlLk5PVF9BTExPV0VEfHx0aGlzLnJlc3RyaWN0aW9uVHlwZT09PXdlLlJFUVVJUkVfQ09OU0VOVHx8dGhpcy5yZXN0cmljdGlvblR5cGU9PT13ZS5SRVFVSVJFX0xJKX19LHtrZXk6XCJpc1NhbWVBc1wiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1cnBvc2VJZD09PXQucHVycG9zZUlkJiZ0aGlzLnJlc3RyaWN0aW9uVHlwZT09PXQucmVzdHJpY3Rpb25UeXBlfX1dKSYmRWUoZS5wcm90b3R5cGUsciksbiYmRWUoZSxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGl9KHllKTtmdW5jdGlvbiBrZSh0KXtyZXR1cm4ga2U9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sa2UodCl9ZnVuY3Rpb24gUmUodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheShlKTtyPGU7cisrKW5bcl09dFtyXTtyZXR1cm4gbn1mdW5jdGlvbiBMZSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxCZShuLmtleSksbil9fWZ1bmN0aW9uIE1lKHQsZSl7cmV0dXJuIE1lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sTWUodCxlKX1mdW5jdGlvbiBOZSh0KXt2YXIgZT1VZSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49RGUodCk7aWYoZSl7dmFyIG89RGUodGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKFwib2JqZWN0XCI9PT1rZShlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIFZlKHQpfSh0aGlzLHIpfX1mdW5jdGlvbiBWZSh0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH1mdW5jdGlvbiBVZSgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKFVlPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBEZSh0KXtyZXR1cm4gRGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LERlKHQpfWZ1bmN0aW9uIEZlKHQsZSxyKXtyZXR1cm4oZT1CZShlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiBCZSh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPWtlKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9a2UobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PWtlKGUpP2U6ZStcIlwifUllKENlLFwiaGFzaFNlcGFyYXRvclwiLFwiLVwiKTt2YXIgR2UsemUsSGUsV2U9ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGUmJk1lKHQsZSl9KG8sdCk7dmFyIGUscixuPU5lKG8pO2Z1bmN0aW9uIG8oKXt2YXIgdDshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLG8pO2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLGk9MDtpPGU7aSsrKXJbaV09YXJndW1lbnRzW2ldO3JldHVybiBGZShWZSh0PW4uY2FsbC5hcHBseShuLFt0aGlzXS5jb25jYXQocikpKSxcImJpdExlbmd0aFwiLDApLEZlKFZlKHQpLFwibWFwXCIsbmV3IE1hcCksRmUoVmUodCksXCJndmxfXCIsdm9pZCAwKSx0fXJldHVybiBlPW8scj1be2tleTpcImhhc1wiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcC5oYXModCl9fSx7a2V5OlwiaXNPa1RvSGF2ZVwiLHZhbHVlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvPSEwO2lmKG51bGwhPT0obj10aGlzLmd2bCkmJnZvaWQgMCE9PW4mJm4udmVuZG9ycyl7dmFyIGk9dGhpcy5ndmwudmVuZG9yc1tyXTtpZihpKWlmKHQ9PT13ZS5OT1RfQUxMT1dFRClvPWkubGVnSW50UHVycG9zZXMuaW5jbHVkZXMoZSl8fGkucHVycG9zZXMuaW5jbHVkZXMoZSk7ZWxzZSBpZihpLmZsZXhpYmxlUHVycG9zZXMubGVuZ3RoKXN3aXRjaCh0KXtjYXNlIHdlLlJFUVVJUkVfQ09OU0VOVDpvPWkuZmxleGlibGVQdXJwb3Nlcy5pbmNsdWRlcyhlKSYmaS5sZWdJbnRQdXJwb3Nlcy5pbmNsdWRlcyhlKTticmVhaztjYXNlIHdlLlJFUVVJUkVfTEk6bz1pLmZsZXhpYmxlUHVycG9zZXMuaW5jbHVkZXMoZSkmJmkucHVycG9zZXMuaW5jbHVkZXMoZSl9ZWxzZSBvPSExO2Vsc2Ugbz0hMX1yZXR1cm4gb319LHtrZXk6XCJhZGRcIix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKHRoaXMuaXNPa1RvSGF2ZShlLnJlc3RyaWN0aW9uVHlwZSxlLnB1cnBvc2VJZCx0KSl7dmFyIHI9ZS5oYXNoO3RoaXMuaGFzKHIpfHwodGhpcy5tYXAuc2V0KHIsbmV3IFNldCksdGhpcy5iaXRMZW5ndGg9MCksdGhpcy5tYXAuZ2V0KHIpLmFkZCh0KX19fSx7a2V5OlwicmVzdHJpY3RQdXJwb3NlVG9MZWdhbEJhc2lzXCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUscj1BcnJheS5mcm9tKHRoaXMuZ3ZsLnZlbmRvcklkcyksbj10Lmhhc2gsbz1yW3IubGVuZ3RoLTFdLGk9KGU9QXJyYXkobykua2V5cygpLGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIFJlKHQpfShlKXx8ZnVuY3Rpb24odCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9dFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT10W1wiQEBpdGVyYXRvclwiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0oZSl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpcmV0dXJuIFJlKHQsZSk7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1yJiZ0LmNvbnN0cnVjdG9yJiYocj10LmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1yfHxcIlNldFwiPT09cj9BcnJheS5mcm9tKHQpOlwiQXJndW1lbnRzXCI9PT1yfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChyKT9SZSh0LGUpOnZvaWQgMH19KGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0KzF9KSk7aWYodGhpcy5oYXMobikpZm9yKHZhciBhPTE7YTw9bzthKyspdGhpcy5tYXAuZ2V0KG4pLmFkZChhKTtlbHNlIHRoaXMubWFwLnNldChuLG5ldyBTZXQoaSkpLHRoaXMuYml0TGVuZ3RoPTB9fSx7a2V5OlwiZ2V0VmVuZG9yc1wiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPVtdO2lmKHQpe3ZhciByPXQuaGFzaDt0aGlzLmhhcyhyKSYmKGU9QXJyYXkuZnJvbSh0aGlzLm1hcC5nZXQocikpKX1lbHNle3ZhciBuPW5ldyBTZXQ7dGhpcy5tYXAuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtuLmFkZCh0KX0pKX0pKSxlPUFycmF5LmZyb20obil9cmV0dXJuIGUuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpfX0se2tleTpcImdldFJlc3RyaWN0aW9uVHlwZVwiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIHRoaXMuZ2V0UmVzdHJpY3Rpb25zKHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QucHVycG9zZUlkPT09ZSYmKHZvaWQgMD09PXJ8fHI+dC5yZXN0cmljdGlvblR5cGUpJiYocj10LnJlc3RyaWN0aW9uVHlwZSl9KSkscn19LHtrZXk6XCJ2ZW5kb3JIYXNSZXN0cmljdGlvblwiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPSExLG49dGhpcy5nZXRSZXN0cmljdGlvbnModCksbz0wO288bi5sZW5ndGgmJiFyO28rKylyPWUuaXNTYW1lQXMobltvXSk7cmV0dXJuIHJ9fSx7a2V5OlwiZ2V0TWF4VmVuZG9ySWRcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMubWFwLmZvckVhY2goKGZ1bmN0aW9uKGUpe3Q9TWF0aC5tYXgoQXJyYXkuZnJvbShlKVtlLnNpemUtMV0sdCl9KSksdH19LHtrZXk6XCJnZXRSZXN0cmljdGlvbnNcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5tYXAuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXt0P3IuaGFzKHQpJiZlLnB1c2goQ2UudW5IYXNoKG4pKTplLnB1c2goQ2UudW5IYXNoKG4pKX0pKSxlfX0se2tleTpcImdldFB1cnBvc2VzXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgU2V0O3JldHVybiB0aGlzLm1hcC5mb3JFYWNoKChmdW5jdGlvbihlLHIpe3QuYWRkKENlLnVuSGFzaChyKS5wdXJwb3NlSWQpfSkpLEFycmF5LmZyb20odCl9fSx7a2V5OlwicmVtb3ZlXCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgcj1lLmhhc2gsbj10aGlzLm1hcC5nZXQocik7biYmKG4uZGVsZXRlKHQpLDA9PW4uc2l6ZSYmKHRoaXMubWFwLmRlbGV0ZShyKSx0aGlzLmJpdExlbmd0aD0wKSl9fSx7a2V5OlwiZ3ZsXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ3ZsX30sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5ndmxffHwodGhpcy5ndmxfPXQsdGhpcy5tYXAuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXt2YXIgbj1DZS51bkhhc2gocik7QXJyYXkuZnJvbSh0KS5mb3JFYWNoKChmdW5jdGlvbihyKXtlLmlzT2tUb0hhdmUobi5yZXN0cmljdGlvblR5cGUsbi5wdXJwb3NlSWQscil8fHQuZGVsZXRlKHIpfSkpfSkpKX19LHtrZXk6XCJpc0VtcHR5XCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubWFwLnNpemV9fSx7a2V5OlwibnVtUmVzdHJpY3Rpb25zXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwLnNpemV9fV0sciYmTGUoZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxvfSh5ZSk7ZnVuY3Rpb24gcWUodCl7cmV0dXJuIHFlPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LHFlKHQpfWZ1bmN0aW9uIEtlKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFFlKG4ua2V5KSxuKX19ZnVuY3Rpb24gJGUodCxlLHIpe3JldHVybiBlJiZLZSh0LnByb3RvdHlwZSxlKSxyJiZLZSh0LHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH1mdW5jdGlvbiBZZSh0LGUscil7cmV0dXJuKGU9UWUoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gUWUodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1xZSh0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPXFlKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1xZShlKT9lOmUrXCJcIn0hZnVuY3Rpb24odCl7dC5DT09LSUU9XCJjb29raWVcIix0LldFQj1cIndlYlwiLHQuQVBQPVwiYXBwXCJ9KEdlfHwoR2U9e30pKSxmdW5jdGlvbih0KXt0LkNPUkU9XCJjb3JlXCIsdC5WRU5ET1JTX0RJU0NMT1NFRD1cInZlbmRvcnNEaXNjbG9zZWRcIix0LlZFTkRPUlNfQUxMT1dFRD1cInZlbmRvcnNBbGxvd2VkXCIsdC5QVUJMSVNIRVJfVEM9XCJwdWJsaXNoZXJUQ1wifSh6ZXx8KHplPXt9KSk7dmFyIEplPSRlKChmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KX0pKTtmdW5jdGlvbiBYZSh0KXtyZXR1cm4gWGU9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sWGUodCl9ZnVuY3Rpb24gWmUoKXtaZT1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LHI9T2JqZWN0LnByb3RvdHlwZSxuPXIuaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxyKXt0W2VdPXIudmFsdWV9LGk9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fFwiQEBpdGVyYXRvclwiLHU9aS5hc3luY0l0ZXJhdG9yfHxcIkBAYXN5bmNJdGVyYXRvclwiLGM9aS50b1N0cmluZ1RhZ3x8XCJAQHRvU3RyaW5nVGFnXCI7ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtzKHt9LFwiXCIpfWNhdGNoKHQpe3M9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0W2VdPXJ9fWZ1bmN0aW9uIGYodCxlLHIsbil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBiP2U6YixhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IF8obnx8W10pO3JldHVybiBvKGEsXCJfaW52b2tlXCIse3ZhbHVlOlAodCxyLHUpfSksYX1mdW5jdGlvbiBsKHQsZSxyKXt0cnl7cmV0dXJue3R5cGU6XCJub3JtYWxcIixhcmc6dC5jYWxsKGUscil9fWNhdGNoKHQpe3JldHVybnt0eXBlOlwidGhyb3dcIixhcmc6dH19fWUud3JhcD1mO3ZhciBwPVwic3VzcGVuZGVkU3RhcnRcIix2PVwic3VzcGVuZGVkWWllbGRcIix5PVwiZXhlY3V0aW5nXCIsaD1cImNvbXBsZXRlZFwiLGQ9e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIG0oKXt9dmFyIHc9e307cyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFM9T2JqZWN0LmdldFByb3RvdHlwZU9mLE89UyYmUyhTKEMoW10pKSk7TyYmTyE9PXImJm4uY2FsbChPLGEpJiYodz1PKTt2YXIgRT1tLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIHgodCl7W1wibmV4dFwiLFwidGhyb3dcIixcInJldHVyblwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtzKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIGoodCxlKXtmdW5jdGlvbiByKG8saSxhLHUpe3ZhciBjPWwodFtvXSx0LGkpO2lmKFwidGhyb3dcIiE9PWMudHlwZSl7dmFyIHM9Yy5hcmcsZj1zLnZhbHVlO3JldHVybiBmJiZcIm9iamVjdFwiPT1YZShmKSYmbi5jYWxsKGYsXCJfX2F3YWl0XCIpP2UucmVzb2x2ZShmLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe3IoXCJuZXh0XCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe3IoXCJ0aHJvd1wiLHQsYSx1KX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7cy52YWx1ZT10LGEocyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHIoXCJ0aHJvd1wiLHQsYSx1KX0pKX11KGMuYXJnKX12YXIgaTtvKHRoaXMsXCJfaW52b2tlXCIse3ZhbHVlOmZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtyKHQsbixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIFAoZSxyLG4pe3ZhciBvPXA7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO2lmKG89PT1oKXtpZihcInRocm93XCI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKG4ubWV0aG9kPWksbi5hcmc9YTs7KXt2YXIgdT1uLmRlbGVnYXRlO2lmKHUpe3ZhciBjPVQodSxuKTtpZihjKXtpZihjPT09ZCljb250aW51ZTtyZXR1cm4gY319aWYoXCJuZXh0XCI9PT1uLm1ldGhvZCluLnNlbnQ9bi5fc2VudD1uLmFyZztlbHNlIGlmKFwidGhyb3dcIj09PW4ubWV0aG9kKXtpZihvPT09cCl0aHJvdyBvPWgsbi5hcmc7bi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyl9ZWxzZVwicmV0dXJuXCI9PT1uLm1ldGhvZCYmbi5hYnJ1cHQoXCJyZXR1cm5cIixuLmFyZyk7bz15O3ZhciBzPWwoZSxyLG4pO2lmKFwibm9ybWFsXCI9PT1zLnR5cGUpe2lmKG89bi5kb25lP2g6dixzLmFyZz09PWQpY29udGludWU7cmV0dXJue3ZhbHVlOnMuYXJnLGRvbmU6bi5kb25lfX1cInRocm93XCI9PT1zLnR5cGUmJihvPWgsbi5tZXRob2Q9XCJ0aHJvd1wiLG4uYXJnPXMuYXJnKX19fWZ1bmN0aW9uIFQoZSxyKXt2YXIgbj1yLm1ldGhvZCxvPWUuaXRlcmF0b3Jbbl07aWYobz09PXQpcmV0dXJuIHIuZGVsZWdhdGU9bnVsbCxcInRocm93XCI9PT1uJiZlLml0ZXJhdG9yLnJldHVybiYmKHIubWV0aG9kPVwicmV0dXJuXCIsci5hcmc9dCxUKGUsciksXCJ0aHJvd1wiPT09ci5tZXRob2QpfHxcInJldHVyblwiIT09biYmKHIubWV0aG9kPVwidGhyb3dcIixyLmFyZz1uZXcgVHlwZUVycm9yKFwiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnXCIrbitcIicgbWV0aG9kXCIpKSxkO3ZhciBpPWwobyxlLml0ZXJhdG9yLHIuYXJnKTtpZihcInRocm93XCI9PT1pLnR5cGUpcmV0dXJuIHIubWV0aG9kPVwidGhyb3dcIixyLmFyZz1pLmFyZyxyLmRlbGVnYXRlPW51bGwsZDt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KHJbZS5yZXN1bHROYW1lXT1hLnZhbHVlLHIubmV4dD1lLm5leHRMb2MsXCJyZXR1cm5cIiE9PXIubWV0aG9kJiYoci5tZXRob2Q9XCJuZXh0XCIsci5hcmc9dCksci5kZWxlZ2F0ZT1udWxsLGQpOmE6KHIubWV0aG9kPVwidGhyb3dcIixyLmFyZz1uZXcgVHlwZUVycm9yKFwiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3RcIiksci5kZWxlZ2F0ZT1udWxsLGQpfWZ1bmN0aW9uIEEodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT1cIm5vcm1hbFwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBfKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzpcInJvb3RcIn1dLHQuZm9yRWFjaChBLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIEMoZSl7aWYoZXx8XCJcIj09PWUpe3ZhciByPWVbYV07aWYocilyZXR1cm4gci5jYWxsKGUpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIHIoKXtmb3IoOysrbzxlLmxlbmd0aDspaWYobi5jYWxsKGUsbykpcmV0dXJuIHIudmFsdWU9ZVtvXSxyLmRvbmU9ITEscjtyZXR1cm4gci52YWx1ZT10LHIuZG9uZT0hMCxyfTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoWGUoZSkrXCIgaXMgbm90IGl0ZXJhYmxlXCIpfXJldHVybiBnLnByb3RvdHlwZT1tLG8oRSxcImNvbnN0cnVjdG9yXCIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbyhtLFwiY29uc3RydWN0b3JcIix7dmFsdWU6Zyxjb25maWd1cmFibGU6ITB9KSxnLmRpc3BsYXlOYW1lPXMobSxjLFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PWd8fFwiR2VuZXJhdG9yRnVuY3Rpb25cIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsbSk6KHQuX19wcm90b19fPW0scyh0LGMsXCJHZW5lcmF0b3JGdW5jdGlvblwiKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSx4KGoucHJvdG90eXBlKSxzKGoucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPWosZS5hc3luYz1mdW5jdGlvbih0LHIsbixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBqKGYodCxyLG4sbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihyKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0seChFKSxzKEUsYyxcIkdlbmVyYXRvclwiKSxzKEUsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxzKEUsXCJ0b1N0cmluZ1wiLChmdW5jdGlvbigpe3JldHVyblwiW29iamVjdCBHZW5lcmF0b3JdXCJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxyPVtdO2Zvcih2YXIgbiBpbiBlKXIucHVzaChuKTtyZXR1cm4gci5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7ci5sZW5ndGg7KXt2YXIgbj1yLnBvcCgpO2lmKG4gaW4gZSlyZXR1cm4gdC52YWx1ZT1uLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPUMsXy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOl8scmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPVwibmV4dFwiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goSSksIWUpZm9yKHZhciByIGluIHRoaXMpXCJ0XCI9PT1yLmNoYXJBdCgwKSYmbi5jYWxsKHRoaXMscikmJiFpc05hTigrci5zbGljZSgxKSkmJih0aGlzW3JdPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKFwidGhyb3dcIj09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgcj10aGlzO2Z1bmN0aW9uIG8obixvKXtyZXR1cm4gdS50eXBlPVwidGhyb3dcIix1LmFyZz1lLHIubmV4dD1uLG8mJihyLm1ldGhvZD1cIm5leHRcIixyLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKFwicm9vdFwiPT09YS50cnlMb2MpcmV0dXJuIG8oXCJlbmRcIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIGM9bi5jYWxsKGEsXCJjYXRjaExvY1wiKSxzPW4uY2FsbChhLFwiZmluYWxseUxvY1wiKTtpZihjJiZzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFzKXRocm93IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO3I+PTA7LS1yKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbcl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmbi5jYWxsKG8sXCJmaW5hbGx5TG9jXCIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoXCJicmVha1wiPT09dHx8XCJjb250aW51ZVwiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPVwibmV4dFwiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsZCk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZihcInRocm93XCI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuXCJicmVha1wiPT09dC50eXBlfHxcImNvbnRpbnVlXCI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOlwicmV0dXJuXCI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD1cInJldHVyblwiLHRoaXMubmV4dD1cImVuZFwiKTpcIm5vcm1hbFwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLGR9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgcj10aGlzLnRyeUVudHJpZXNbZV07aWYoci5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShyLmNvbXBsZXRpb24sci5hZnRlckxvYyksSShyKSxkfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIHI9dGhpcy50cnlFbnRyaWVzW2VdO2lmKHIudHJ5TG9jPT09dCl7dmFyIG49ci5jb21wbGV0aW9uO2lmKFwidGhyb3dcIj09PW4udHlwZSl7dmFyIG89bi5hcmc7SShyKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpDKGUpLHJlc3VsdE5hbWU6cixuZXh0TG9jOm59LFwibmV4dFwiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSxkfX0sZX1mdW5jdGlvbiB0cih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCx1cihuLmtleSksbil9fWZ1bmN0aW9uIGVyKHQsZSl7cmV0dXJuIGVyPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sZXIodCxlKX1mdW5jdGlvbiBycih0KXt2YXIgZT1vcigpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49aXIodCk7aWYoZSl7dmFyIG89aXIodGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKFwib2JqZWN0XCI9PT1YZShlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIG5yKHQpfSh0aGlzLHIpfX1mdW5jdGlvbiBucih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH1mdW5jdGlvbiBvcigpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKG9yPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBpcih0KXtyZXR1cm4gaXI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LGlyKHQpfWZ1bmN0aW9uIGFyKHQsZSxyKXtyZXR1cm4oZT11cihlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiB1cih0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPVhlKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9WGUobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PVhlKGUpP2U6ZStcIlwifVllKEplLFwiSURfVE9fS0VZXCIsW3plLkNPUkUsemUuVkVORE9SU19ESVNDTE9TRUQsemUuVkVORE9SU19BTExPV0VELHplLlBVQkxJU0hFUl9UQ10pLFllKEplLFwiS0VZX1RPX0lEXCIsKFllKEhlPXt9LHplLkNPUkUsMCksWWUoSGUsemUuVkVORE9SU19ESVNDTE9TRUQsMSksWWUoSGUsemUuVkVORE9SU19BTExPV0VELDIpLFllKEhlLHplLlBVQkxJU0hFUl9UQywzKSxIZSkpO3ZhciBjcixzcixmcixscixwcix2cix5cixocixkcixicixncixtcix3cixTcixPcixFcix4cixqcixQcj1mdW5jdGlvbih0KXshZnVuY3Rpb24odCxlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZSYmZXIodCxlKX0obyx0KTt2YXIgZSxyLG49cnIobyk7ZnVuY3Rpb24gbygpe3ZhciB0OyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsbyk7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTtpKyspcltpXT1hcmd1bWVudHNbaV07cmV0dXJuIGFyKG5yKHQ9bi5jYWxsLmFwcGx5KG4sW3RoaXNdLmNvbmNhdChyKSkpLFwiYml0TGVuZ3RoXCIsMCksYXIobnIodCksXCJtYXhJZF9cIiwwKSxhcihucih0KSxcInNldF9cIixuZXcgU2V0KSx0fXJldHVybiBlPW8scj1be2tleTpTeW1ib2wuaXRlcmF0b3IsdmFsdWU6WmUoKS5tYXJrKChmdW5jdGlvbiB0KCl7dmFyIGU7cmV0dXJuIFplKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6ZT0xO2Nhc2UgMTppZighKGU8PXRoaXMubWF4SWQpKXt0Lm5leHQ9NzticmVha31yZXR1cm4gdC5uZXh0PTQsW2UsdGhpcy5oYXMoZSldO2Nhc2UgNDplKyssdC5uZXh0PTE7YnJlYWs7Y2FzZSA3OmNhc2VcImVuZFwiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMpfSkpfSx7a2V5OlwidmFsdWVzXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRfLnZhbHVlcygpfX0se2tleTpcIm1heElkXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4SWRffX0se2tleTpcImhhc1wiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNldF8uaGFzKHQpfX0se2tleTpcInVuc2V0XCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztBcnJheS5pc0FycmF5KHQpP3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUudW5zZXQodCl9KSk6XCJvYmplY3RcIj09PVhlKHQpP3RoaXMudW5zZXQoT2JqZWN0LmtleXModCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTnVtYmVyKHQpfSkpKToodGhpcy5zZXRfLmRlbGV0ZShOdW1iZXIodCkpLHRoaXMuYml0TGVuZ3RoPTAsdD09PXRoaXMubWF4SWQmJih0aGlzLm1heElkXz0wLHRoaXMuc2V0Xy5mb3JFYWNoKChmdW5jdGlvbih0KXtlLm1heElkXz1NYXRoLm1heChlLm1heElkLHQpfSkpKSl9fSx7a2V5OlwiaXNJbnRNYXBcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9XCJvYmplY3RcIj09PVhlKHQpO3JldHVybiByPXImJk9iamVjdC5rZXlzKHQpLmV2ZXJ5KChmdW5jdGlvbihyKXt2YXIgbj1OdW1iZXIuaXNJbnRlZ2VyKHBhcnNlSW50KHIsMTApKTtyZXR1cm4obj1uJiZlLmlzVmFsaWROdW1iZXIodFtyXS5pZCkpJiZ2b2lkIDAhPT10W3JdLm5hbWV9KSkscn19LHtrZXk6XCJpc1ZhbGlkTnVtYmVyXCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlSW50KHQsMTApPjB9fSx7a2V5OlwiaXNTZXRcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0hMTtyZXR1cm4gdCBpbnN0YW5jZW9mIFNldCYmKGU9QXJyYXkuZnJvbSh0KS5ldmVyeSh0aGlzLmlzVmFsaWROdW1iZXIpKSxlfX0se2tleTpcInNldFwiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoQXJyYXkuaXNBcnJheSh0KSl0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLnNldCh0KX0pKTtlbHNlIGlmKHRoaXMuaXNTZXQodCkpdGhpcy5zZXQoQXJyYXkuZnJvbSh0KSk7ZWxzZSBpZih0aGlzLmlzSW50TWFwKHQpKXRoaXMuc2V0KE9iamVjdC5rZXlzKHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE51bWJlcih0KX0pKSk7ZWxzZXtpZighdGhpcy5pc1ZhbGlkTnVtYmVyKHQpKXRocm93IG5ldyBTZShcInNldCgpXCIsdCxcIm11c3QgYmUgcG9zaXRpdmUgaW50ZWdlciBhcnJheSwgcG9zaXRpdmUgaW50ZWdlciwgU2V0PG51bWJlcj4sIG9yIEludE1hcFwiKTt0aGlzLnNldF8uYWRkKHQpLHRoaXMubWF4SWRfPU1hdGgubWF4KHRoaXMubWF4SWQsdCksdGhpcy5iaXRMZW5ndGg9MH19fSx7a2V5OlwiZW1wdHlcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2V0Xz1uZXcgU2V0fX0se2tleTpcImZvckVhY2hcIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPD10aGlzLm1heElkO2UrKyl0KHRoaXMuaGFzKGUpLGUpfX0se2tleTpcInNpemVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRfLnNpemV9fSx7a2V5Olwic2V0QWxsXCIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5zZXQodCl9fV0sciYmdHIoZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxvfSh5ZSk7ZnVuY3Rpb24gVHIodCl7cmV0dXJuIFRyPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LFRyKHQpfWZ1bmN0aW9uIEFyKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LENyKG4ua2V5KSxuKX19ZnVuY3Rpb24gSXIodCxlLHIpe3JldHVybiBlJiZBcih0LnByb3RvdHlwZSxlKSxyJiZBcih0LHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH1mdW5jdGlvbiBfcih0LGUscil7cmV0dXJuKGU9Q3IoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gQ3IodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1Ucih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPVRyKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1UcihlKT9lOmUrXCJcIn1jcj1zZS5jbXBJZCxzcj1zZS5jbXBWZXJzaW9uLGZyPXNlLmNvbnNlbnRMYW5ndWFnZSxscj1zZS5jb25zZW50U2NyZWVuLHByPXNlLmNyZWF0ZWQsdnI9c2UuaXNTZXJ2aWNlU3BlY2lmaWMseXI9c2UubGFzdFVwZGF0ZWQsaHI9c2UucG9saWN5VmVyc2lvbixkcj1zZS5wdWJsaXNoZXJDb3VudHJ5Q29kZSxicj1zZS5wdWJsaXNoZXJMZWdpdGltYXRlSW50ZXJlc3RzLGdyPXNlLnB1Ymxpc2hlckNvbnNlbnRzLG1yPXNlLnB1cnBvc2VDb25zZW50cyx3cj1zZS5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cyxTcj1zZS5wdXJwb3NlT25lVHJlYXRtZW50LE9yPXNlLnNwZWNpYWxGZWF0dXJlT3B0aW5zLEVyPXNlLnVzZU5vblN0YW5kYXJkVGV4dHMseHI9c2UudmVuZG9yTGlzdFZlcnNpb24sanI9c2UudmVyc2lvbjt2YXIga3I9SXIoKGZ1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpfSkpO2Z1bmN0aW9uIFJyKHQpe3JldHVybiBScj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxScih0KX1mdW5jdGlvbiBMcih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxNcihuLmtleSksbil9fWZ1bmN0aW9uIE1yKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9UnIodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1ScihuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuXCJzeW1ib2xcIj09UnIoZSk/ZTplK1wiXCJ9X3Ioa3IsY3IsMTIpLF9yKGtyLHNyLDEyKSxfcihrcixmciwxMiksX3Ioa3IsbHIsNiksX3Ioa3IscHIsMzYpLF9yKGtyLHZyLDEpLF9yKGtyLHlyLDM2KSxfcihrcixociw2KSxfcihrcixkciwxMiksX3Ioa3IsYnIsMjQpLF9yKGtyLGdyLDI0KSxfcihrcixtciwyNCksX3Ioa3Isd3IsMjQpLF9yKGtyLFNyLDEpLF9yKGtyLE9yLDEyKSxfcihrcixFciwxKSxfcihrcix4ciwxMiksX3Ioa3IsanIsNiksX3Ioa3IsXCJhbnlCb29sZWFuXCIsMSksX3Ioa3IsXCJlbmNvZGluZ1R5cGVcIiwxKSxfcihrcixcIm1heElkXCIsMTYpLF9yKGtyLFwibnVtQ3VzdG9tUHVycG9zZXNcIiw2KSxfcihrcixcIm51bUVudHJpZXNcIiwxMiksX3Ioa3IsXCJudW1SZXN0cmljdGlvbnNcIiwxMiksX3Ioa3IsXCJwdXJwb3NlSWRcIiw2KSxfcihrcixcInJlc3RyaWN0aW9uVHlwZVwiLDIpLF9yKGtyLFwic2VnbWVudFR5cGVcIiwzKSxfcihrcixcInNpbmdsZU9yUmFuZ2VcIiwxKSxfcihrcixcInZlbmRvcklkXCIsMTYpO3ZhciBOcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpfXZhciBlLHI7cmV0dXJuIGU9dCxyPVt7a2V5OlwiZW5jb2RlXCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyhOdW1iZXIodCkpfX0se2tleTpcImRlY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVyblwiMVwiPT09dH19XSxudWxsJiZMcihlLnByb3RvdHlwZSxudWxsKSxyJiZMcihlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH0oKTtmdW5jdGlvbiBWcih0KXtyZXR1cm4gVnI9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sVnIodCl9ZnVuY3Rpb24gVXIodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsRHIobi5rZXkpLG4pfX1mdW5jdGlvbiBEcih0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPVZyKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9VnIobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PVZyKGUpP2U6ZStcIlwifXZhciBGcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpfXZhciBlLHI7cmV0dXJuIGU9dCxyPVt7a2V5OlwiZW5jb2RlXCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgcjtpZihcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9cGFyc2VJbnQodCwxMCkpLChyPXQudG9TdHJpbmcoMikpLmxlbmd0aD5lfHx0PDApdGhyb3cgbmV3IFV0KFwiXCIuY29uY2F0KHQsXCIgdG9vIGxhcmdlIHRvIGVuY29kZSBpbnRvIFwiKS5jb25jYXQoZSkpO3JldHVybiByLmxlbmd0aDxlJiYocj1cIjBcIi5yZXBlYXQoZS1yLmxlbmd0aCkrcikscn19LHtrZXk6XCJkZWNvZGVcIix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKGUhPT10Lmxlbmd0aCl0aHJvdyBuZXcgSHQoXCJpbnZhbGlkIGJpdCBsZW5ndGhcIik7cmV0dXJuIHBhcnNlSW50KHQsMil9fV0sbnVsbCYmVXIoZS5wcm90b3R5cGUsbnVsbCksciYmVXIoZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLHR9KCk7ZnVuY3Rpb24gQnIodCl7cmV0dXJuIEJyPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LEJyKHQpfWZ1bmN0aW9uIEdyKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHpyKG4ua2V5KSxuKX19ZnVuY3Rpb24genIodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1Ccih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPUJyKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1CcihlKT9lOmUrXCJcIn12YXIgSHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KX12YXIgZSxyO3JldHVybiBlPXQscj1be2tleTpcImVuY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEZyLmVuY29kZShNYXRoLnJvdW5kKHQuZ2V0VGltZSgpLzEwMCksZSl9fSx7a2V5OlwiZGVjb2RlXCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZihlIT09dC5sZW5ndGgpdGhyb3cgbmV3IEh0KFwiaW52YWxpZCBiaXQgbGVuZ3RoXCIpO3ZhciByPW5ldyBEYXRlO3JldHVybiByLnNldFRpbWUoMTAwKkZyLmRlY29kZSh0LGUpKSxyfX1dLG51bGwmJkdyKGUucHJvdG90eXBlLG51bGwpLHImJkdyKGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fSgpO2Z1bmN0aW9uIFdyKHQpe3JldHVybiBXcj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxXcih0KX1mdW5jdGlvbiBxcih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxLcihuLmtleSksbil9fWZ1bmN0aW9uIEtyKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9V3IodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1XcihuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuXCJzeW1ib2xcIj09V3IoZSk/ZTplK1wiXCJ9dmFyICRyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCl9dmFyIGUscjtyZXR1cm4gZT10LHI9W3trZXk6XCJlbmNvZGVcIix2YWx1ZTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1cIlwiLG49MTtuPD1lO24rKylyKz1Oci5lbmNvZGUodC5oYXMobikpO3JldHVybiByfX0se2tleTpcImRlY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGghPT1lKXRocm93IG5ldyBIdChcImJpdGZpZWxkIGVuY29kaW5nIGxlbmd0aCBtaXNtYXRjaFwiKTtmb3IodmFyIHI9bmV3IFByLG49MTtuPD1lO24rKylOci5kZWNvZGUodFtuLTFdKSYmci5zZXQobik7cmV0dXJuIHIuYml0TGVuZ3RoPXQubGVuZ3RoLHJ9fV0sbnVsbCYmcXIoZS5wcm90b3R5cGUsbnVsbCksciYmcXIoZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLHR9KCk7ZnVuY3Rpb24gWXIodCl7cmV0dXJuIFlyPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LFlyKHQpfWZ1bmN0aW9uIFFyKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LEpyKG4ua2V5KSxuKX19ZnVuY3Rpb24gSnIodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1Zcih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPVlyKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1ZcihlKT9lOmUrXCJcIn12YXIgWHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KX12YXIgZSxyO3JldHVybiBlPXQscj1be2tleTpcImVuY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQ9dC50b1VwcGVyQ2FzZSgpKS5jaGFyQ29kZUF0KDApLTY1LG49dC5jaGFyQ29kZUF0KDEpLTY1O2lmKHI8MHx8cj4yNXx8bjwwfHxuPjI1KXRocm93IG5ldyBVdChcImludmFsaWQgbGFuZ3VhZ2UgY29kZTogXCIuY29uY2F0KHQpKTtpZihlJTI9PTEpdGhyb3cgbmV3IFV0KFwibnVtQml0cyBtdXN0IGJlIGV2ZW4sIFwiLmNvbmNhdChlLFwiIGlzIG5vdCB2YWxpZFwiKSk7cmV0dXJuIGUvPTIsRnIuZW5jb2RlKHIsZSkrRnIuZW5jb2RlKG4sZSl9fSx7a2V5OlwiZGVjb2RlXCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZihlIT09dC5sZW5ndGh8fHQubGVuZ3RoJTIpdGhyb3cgbmV3IEh0KFwiaW52YWxpZCBiaXQgbGVuZ3RoIGZvciBsYW5ndWFnZVwiKTt2YXIgcj10Lmxlbmd0aC8yLG49RnIuZGVjb2RlKHQuc2xpY2UoMCxyKSxyKSs2NSxvPUZyLmRlY29kZSh0LnNsaWNlKHIpLHIpKzY1O3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG4pK1N0cmluZy5mcm9tQ2hhckNvZGUobyl9fV0sbnVsbCYmUXIoZS5wcm90b3R5cGUsbnVsbCksciYmUXIoZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLHR9KCk7ZnVuY3Rpb24gWnIodCl7cmV0dXJuIFpyPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LFpyKHQpfWZ1bmN0aW9uIHRuKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGVuKG4ua2V5KSxuKX19ZnVuY3Rpb24gZW4odCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1acih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPVpyKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1acihlKT9lOmUrXCJcIn12YXIgcm4sbm49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KX12YXIgZSxyO3JldHVybiBlPXQscj1be2tleTpcImVuY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPUZyLmVuY29kZSh0Lm51bVJlc3RyaWN0aW9ucyxrci5udW1SZXN0cmljdGlvbnMpO2lmKCF0LmlzRW1wdHkoKSl7dmFyIHI9ZnVuY3Rpb24oZSxyKXtmb3IodmFyIG49ZSsxO248PXI7bisrKWlmKHQuZ3ZsLnZlbmRvcklkcy5oYXMobikpcmV0dXJuIG47cmV0dXJuIGV9O3QuZ2V0UmVzdHJpY3Rpb25zKCkuZm9yRWFjaCgoZnVuY3Rpb24obil7ZSs9RnIuZW5jb2RlKG4ucHVycG9zZUlkLGtyLnB1cnBvc2VJZCksZSs9RnIuZW5jb2RlKG4ucmVzdHJpY3Rpb25UeXBlLGtyLnJlc3RyaWN0aW9uVHlwZSk7Zm9yKHZhciBvPXQuZ2V0VmVuZG9ycyhuKSxpPW8ubGVuZ3RoLGE9MCx1PTAsYz1cIlwiLHM9MDtzPGk7cysrKXt2YXIgZj1vW3NdO2lmKDA9PT11JiYoYSsrLHU9Zikscz09PWktMXx8b1tzKzFdPnIoZixvW2ktMV0pKXt2YXIgbD0hKGY9PT11KTtjKz1Oci5lbmNvZGUobCksYys9RnIuZW5jb2RlKHUsa3IudmVuZG9ySWQpLGwmJihjKz1Gci5lbmNvZGUoZixrci52ZW5kb3JJZCkpLHU9MH19ZSs9RnIuZW5jb2RlKGEsa3IubnVtRW50cmllcyksZSs9Y30pKX1yZXR1cm4gZX19LHtrZXk6XCJkZWNvZGVcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0wLHI9bmV3IFdlLG49RnIuZGVjb2RlKHQuc3Vic3RyKGUsa3IubnVtUmVzdHJpY3Rpb25zKSxrci5udW1SZXN0cmljdGlvbnMpO2UrPWtyLm51bVJlc3RyaWN0aW9ucztmb3IodmFyIG89MDtvPG47bysrKXt2YXIgaT1Gci5kZWNvZGUodC5zdWJzdHIoZSxrci5wdXJwb3NlSWQpLGtyLnB1cnBvc2VJZCk7ZSs9a3IucHVycG9zZUlkO3ZhciBhPUZyLmRlY29kZSh0LnN1YnN0cihlLGtyLnJlc3RyaWN0aW9uVHlwZSksa3IucmVzdHJpY3Rpb25UeXBlKTtlKz1rci5yZXN0cmljdGlvblR5cGU7dmFyIHU9bmV3IENlKGksYSksYz1Gci5kZWNvZGUodC5zdWJzdHIoZSxrci5udW1FbnRyaWVzKSxrci5udW1FbnRyaWVzKTtlKz1rci5udW1FbnRyaWVzO2Zvcih2YXIgcz0wO3M8YztzKyspe3ZhciBmPU5yLmRlY29kZSh0LnN1YnN0cihlLGtyLmFueUJvb2xlYW4pKTtlKz1rci5hbnlCb29sZWFuO3ZhciBsPUZyLmRlY29kZSh0LnN1YnN0cihlLGtyLnZlbmRvcklkKSxrci52ZW5kb3JJZCk7aWYoZSs9a3IudmVuZG9ySWQsZil7dmFyIHA9RnIuZGVjb2RlKHQuc3Vic3RyKGUsa3IudmVuZG9ySWQpLGtyLnZlbmRvcklkKTtpZihlKz1rci52ZW5kb3JJZCxwPGwpdGhyb3cgbmV3IEh0KFwiSW52YWxpZCBSYW5nZUVudHJ5OiBlbmRWZW5kb3JJZCBcIi5jb25jYXQocCxcIiBpcyBsZXNzIHRoYW4gXCIpLmNvbmNhdChsKSk7Zm9yKHZhciB2PWw7djw9cDt2Kyspci5hZGQodix1KX1lbHNlIHIuYWRkKGwsdSl9fXJldHVybiByLmJpdExlbmd0aD1lLHJ9fV0sbnVsbCYmdG4oZS5wcm90b3R5cGUsbnVsbCksciYmdG4oZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLHR9KCk7ZnVuY3Rpb24gb24odCl7cmV0dXJuIG9uPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LG9uKHQpfWZ1bmN0aW9uIGFuKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHVuKG4ua2V5KSxuKX19ZnVuY3Rpb24gdW4odCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1vbih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPW9uKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1vbihlKT9lOmUrXCJcIn0hZnVuY3Rpb24odCl7dFt0LkZJRUxEPTBdPVwiRklFTERcIix0W3QuUkFOR0U9MV09XCJSQU5HRVwifShybnx8KHJuPXt9KSk7dmFyIGNuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCl9dmFyIGUscjtyZXR1cm4gZT10LHI9W3trZXk6XCJlbmNvZGVcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxyPVtdLG49W10sbz1Gci5lbmNvZGUodC5tYXhJZCxrci5tYXhJZCksaT1cIlwiLGE9a3IubWF4SWQra3IuZW5jb2RpbmdUeXBlLHU9YSt0Lm1heElkLGM9Miprci52ZW5kb3JJZCtrci5zaW5nbGVPclJhbmdlK2tyLm51bUVudHJpZXMscz1hK2tyLm51bUVudHJpZXM7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24obyxhKXtpKz1Oci5lbmNvZGUobyksKGU9dC5tYXhJZD5jJiZzPHUpJiZvJiYodC5oYXMoYSsxKT8wPT09bi5sZW5ndGgmJihuLnB1c2goYSkscys9a3Iuc2luZ2xlT3JSYW5nZSxzKz1rci52ZW5kb3JJZCk6KG4ucHVzaChhKSxzKz1rci52ZW5kb3JJZCxyLnB1c2gobiksbj1bXSkpfSkpLGU/KG8rPVN0cmluZyhybi5SQU5HRSksbys9dGhpcy5idWlsZFJhbmdlRW5jb2RpbmcocikpOihvKz1TdHJpbmcocm4uRklFTEQpLG8rPWkpLG99fSx7a2V5OlwiZGVjb2RlXCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgcixuPTAsbz1Gci5kZWNvZGUodC5zdWJzdHIobixrci5tYXhJZCksa3IubWF4SWQpO24rPWtyLm1heElkO3ZhciBpPUZyLmRlY29kZSh0LmNoYXJBdChuKSxrci5lbmNvZGluZ1R5cGUpO2lmKG4rPWtyLmVuY29kaW5nVHlwZSxpPT09cm4uUkFOR0Upe2lmKHI9bmV3IFByLDE9PT1lKXtpZihcIjFcIj09PXQuc3Vic3RyKG4sMSkpdGhyb3cgbmV3IEh0KFwiVW5hYmxlIHRvIGRlY29kZSBkZWZhdWx0IGNvbnNlbnQ9MVwiKTtuKyt9dmFyIGE9RnIuZGVjb2RlKHQuc3Vic3RyKG4sa3IubnVtRW50cmllcyksa3IubnVtRW50cmllcyk7bis9a3IubnVtRW50cmllcztmb3IodmFyIHU9MDt1PGE7dSsrKXt2YXIgYz1Oci5kZWNvZGUodC5jaGFyQXQobikpO24rPWtyLnNpbmdsZU9yUmFuZ2U7dmFyIHM9RnIuZGVjb2RlKHQuc3Vic3RyKG4sa3IudmVuZG9ySWQpLGtyLnZlbmRvcklkKTtpZihuKz1rci52ZW5kb3JJZCxjKXt2YXIgZj1Gci5kZWNvZGUodC5zdWJzdHIobixrci52ZW5kb3JJZCksa3IudmVuZG9ySWQpO24rPWtyLnZlbmRvcklkO2Zvcih2YXIgbD1zO2w8PWY7bCsrKXIuc2V0KGwpfWVsc2Ugci5zZXQocyl9fWVsc2V7dmFyIHA9dC5zdWJzdHIobixvKTtuKz1vLHI9JHIuZGVjb2RlKHAsbyl9cmV0dXJuIHIuYml0TGVuZ3RoPW4scn19LHtrZXk6XCJidWlsZFJhbmdlRW5jb2RpbmdcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aCxyPUZyLmVuY29kZShlLGtyLm51bUVudHJpZXMpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPTE9PT10Lmxlbmd0aDtyKz1Oci5lbmNvZGUoIWUpLHIrPUZyLmVuY29kZSh0WzBdLGtyLnZlbmRvcklkKSxlfHwocis9RnIuZW5jb2RlKHRbMV0sa3IudmVuZG9ySWQpKX0pKSxyfX1dLG51bGwmJmFuKGUucHJvdG90eXBlLG51bGwpLHImJmFuKGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fSgpO2Z1bmN0aW9uIHNuKHQpe3JldHVybiBzbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxzbih0KX1mdW5jdGlvbiBmbih0LGUscil7dmFyIG47cmV0dXJuIG49ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1zbih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPXNuKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfShlKSwoZT1cInN5bWJvbFwiPT1zbihuKT9uOm4rXCJcIilpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiBsbigpe3ZhciB0O3JldHVybiBmbih0PXt9LHNlLnZlcnNpb24sRnIpLGZuKHQsc2UuY3JlYXRlZCxIciksZm4odCxzZS5sYXN0VXBkYXRlZCxIciksZm4odCxzZS5jbXBJZCxGciksZm4odCxzZS5jbXBWZXJzaW9uLEZyKSxmbih0LHNlLmNvbnNlbnRTY3JlZW4sRnIpLGZuKHQsc2UuY29uc2VudExhbmd1YWdlLFhyKSxmbih0LHNlLnZlbmRvckxpc3RWZXJzaW9uLEZyKSxmbih0LHNlLnBvbGljeVZlcnNpb24sRnIpLGZuKHQsc2UuaXNTZXJ2aWNlU3BlY2lmaWMsTnIpLGZuKHQsc2UudXNlTm9uU3RhbmRhcmRUZXh0cyxOciksZm4odCxzZS5zcGVjaWFsRmVhdHVyZU9wdGlucywkciksZm4odCxzZS5wdXJwb3NlQ29uc2VudHMsJHIpLGZuKHQsc2UucHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHMsJHIpLGZuKHQsc2UucHVycG9zZU9uZVRyZWF0bWVudCxOciksZm4odCxzZS5wdWJsaXNoZXJDb3VudHJ5Q29kZSxYciksZm4odCxzZS52ZW5kb3JDb25zZW50cyxjbiksZm4odCxzZS52ZW5kb3JMZWdpdGltYXRlSW50ZXJlc3RzLGNuKSxmbih0LHNlLnB1Ymxpc2hlclJlc3RyaWN0aW9ucyxubiksZm4odCxcInNlZ21lbnRUeXBlXCIsRnIpLGZuKHQsc2UudmVuZG9yc0Rpc2Nsb3NlZCxjbiksZm4odCxzZS52ZW5kb3JzQWxsb3dlZCxjbiksZm4odCxzZS5wdWJsaXNoZXJDb25zZW50cywkciksZm4odCxzZS5wdWJsaXNoZXJMZWdpdGltYXRlSW50ZXJlc3RzLCRyKSxmbih0LHNlLm51bUN1c3RvbVB1cnBvc2VzLEZyKSxmbih0LHNlLnB1Ymxpc2hlckN1c3RvbUNvbnNlbnRzLCRyKSxmbih0LHNlLnB1Ymxpc2hlckN1c3RvbUxlZ2l0aW1hdGVJbnRlcmVzdHMsJHIpLHR9ZnVuY3Rpb24gcG4odCl7cmV0dXJuIHBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LHBuKHQpfWZ1bmN0aW9uIHZuKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGRuKG4ua2V5KSxuKX19ZnVuY3Rpb24geW4odCxlLHIpe3JldHVybiBlJiZ2bih0LnByb3RvdHlwZSxlKSxyJiZ2bih0LHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH1mdW5jdGlvbiBobih0LGUscil7cmV0dXJuKGU9ZG4oZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gZG4odCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1wbih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPXBuKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1wbihlKT9lOmUrXCJcIn12YXIgYm49eW4oKGZ1bmN0aW9uIHQoKXt2YXIgZTshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpLGhuKHRoaXMsXCIxXCIsaG4oe30semUuQ09SRSxbc2UudmVyc2lvbixzZS5jcmVhdGVkLHNlLmxhc3RVcGRhdGVkLHNlLmNtcElkLHNlLmNtcFZlcnNpb24sc2UuY29uc2VudFNjcmVlbixzZS5jb25zZW50TGFuZ3VhZ2Usc2UudmVuZG9yTGlzdFZlcnNpb24sc2UucHVycG9zZUNvbnNlbnRzLHNlLnZlbmRvckNvbnNlbnRzXSkpLGhuKHRoaXMsXCIyXCIsKGhuKGU9e30semUuQ09SRSxbc2UudmVyc2lvbixzZS5jcmVhdGVkLHNlLmxhc3RVcGRhdGVkLHNlLmNtcElkLHNlLmNtcFZlcnNpb24sc2UuY29uc2VudFNjcmVlbixzZS5jb25zZW50TGFuZ3VhZ2Usc2UudmVuZG9yTGlzdFZlcnNpb24sc2UucG9saWN5VmVyc2lvbixzZS5pc1NlcnZpY2VTcGVjaWZpYyxzZS51c2VOb25TdGFuZGFyZFRleHRzLHNlLnNwZWNpYWxGZWF0dXJlT3B0aW5zLHNlLnB1cnBvc2VDb25zZW50cyxzZS5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cyxzZS5wdXJwb3NlT25lVHJlYXRtZW50LHNlLnB1Ymxpc2hlckNvdW50cnlDb2RlLHNlLnZlbmRvckNvbnNlbnRzLHNlLnZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHMsc2UucHVibGlzaGVyUmVzdHJpY3Rpb25zXSksaG4oZSx6ZS5QVUJMSVNIRVJfVEMsW3NlLnB1Ymxpc2hlckNvbnNlbnRzLHNlLnB1Ymxpc2hlckxlZ2l0aW1hdGVJbnRlcmVzdHMsc2UubnVtQ3VzdG9tUHVycG9zZXMsc2UucHVibGlzaGVyQ3VzdG9tQ29uc2VudHMsc2UucHVibGlzaGVyQ3VzdG9tTGVnaXRpbWF0ZUludGVyZXN0c10pLGhuKGUsemUuVkVORE9SU19BTExPV0VELFtzZS52ZW5kb3JzQWxsb3dlZF0pLGhuKGUsemUuVkVORE9SU19ESVNDTE9TRUQsW3NlLnZlbmRvcnNEaXNjbG9zZWRdKSxlKSl9KSk7ZnVuY3Rpb24gZ24odCl7cmV0dXJuIGduPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LGduKHQpfWZ1bmN0aW9uIG1uKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LE9uKG4ua2V5KSxuKX19ZnVuY3Rpb24gd24odCxlLHIpe3JldHVybiBlJiZtbih0LnByb3RvdHlwZSxlKSxyJiZtbih0LHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH1mdW5jdGlvbiBTbih0LGUscil7cmV0dXJuKGU9T24oZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gT24odCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1nbih0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPWduKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1nbihlKT9lOmUrXCJcIn12YXIgRW49d24oKGZ1bmN0aW9uIHQoZSxyKXtpZihmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCksU24odGhpcyxcIjFcIixbemUuQ09SRV0pLFNuKHRoaXMsXCIyXCIsW3plLkNPUkVdKSwyPT09ZS52ZXJzaW9uKWlmKGUuaXNTZXJ2aWNlU3BlY2lmaWMpdGhpc1syXS5wdXNoKHplLlBVQkxJU0hFUl9UQyk7ZWxzZXt2YXIgbj0hKCFyfHwhci5pc0ZvclZlbmRvcnMpO24mJiEwIT09ZVtzZS5zdXBwb3J0T09CXXx8dGhpc1syXS5wdXNoKHplLlZFTkRPUlNfRElTQ0xPU0VEKSxuJiYoZVtzZS5zdXBwb3J0T09CXSYmZVtzZS52ZW5kb3JzQWxsb3dlZF0uc2l6ZT4wJiZ0aGlzWzJdLnB1c2goemUuVkVORE9SU19BTExPV0VEKSx0aGlzWzJdLnB1c2goemUuUFVCTElTSEVSX1RDKSl9fSkpO2Z1bmN0aW9uIHhuKHQpe3JldHVybiB4bj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSx4bih0KX1mdW5jdGlvbiBqbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxQbihuLmtleSksbil9fWZ1bmN0aW9uIFBuKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9eG4odCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT14bihuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuXCJzeW1ib2xcIj09eG4oZSk/ZTplK1wiXCJ9dmFyIFRuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCl9dmFyIGUscjtyZXR1cm4gZT10LHI9W3trZXk6XCJlbmNvZGVcIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciByLG49dGhpczt0cnl7cj10aGlzLmZpZWxkU2VxdWVuY2VbU3RyaW5nKHQudmVyc2lvbildW2VdfWNhdGNoKHIpe3Rocm93IG5ldyBVdChcIlVuYWJsZSB0byBlbmNvZGUgdmVyc2lvbjogXCIuY29uY2F0KHQudmVyc2lvbixcIiwgc2VnbWVudDogXCIpLmNvbmNhdChlKSl9dmFyIG89XCJcIjtlIT09emUuQ09SRSYmKG89RnIuZW5jb2RlKEplLktFWV9UT19JRFtlXSxrci5zZWdtZW50VHlwZSkpO3ZhciBpPWxuKCk7cmV0dXJuIHIuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIGE9dFtyXSx1PWlbcl0sYz1rcltyXTt2b2lkIDA9PT1jJiZuLmlzUHVibGlzaGVyQ3VzdG9tKHIpJiYoYz1OdW1iZXIodFtzZS5udW1DdXN0b21QdXJwb3Nlc10pKTt0cnl7bys9dS5lbmNvZGUoYSxjKX1jYXRjaCh0KXt0aHJvdyBuZXcgVXQoXCJFcnJvciBlbmNvZGluZyBcIi5jb25jYXQoZSxcIi0+XCIpLmNvbmNhdChyLFwiOiBcIikuY29uY2F0KHQubWVzc2FnZSkpfX0pKSxZdC5lbmNvZGUobyl9fSx7a2V5OlwiZGVjb2RlXCIsdmFsdWU6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsbz1ZdC5kZWNvZGUodCksaT0wO3I9PT16ZS5DT1JFJiYoZS52ZXJzaW9uPUZyLmRlY29kZShvLnN1YnN0cihpLGtyW3NlLnZlcnNpb25dKSxrcltzZS52ZXJzaW9uXSkpLHIhPT16ZS5DT1JFJiYoaSs9a3Iuc2VnbWVudFR5cGUpO3ZhciBhPXRoaXMuZmllbGRTZXF1ZW5jZVtTdHJpbmcoZS52ZXJzaW9uKV1bcl0sdT1sbigpO3JldHVybiBhLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPXVbdF0sYT1rclt0XTtpZih2b2lkIDA9PT1hJiZuLmlzUHVibGlzaGVyQ3VzdG9tKHQpJiYoYT1OdW1iZXIoZVtzZS5udW1DdXN0b21QdXJwb3Nlc10pKSwwIT09YSl7dmFyIGM9by5zdWJzdHIoaSxhKTtpZihlW3RdPXI9PT1jbj9yLmRlY29kZShjLGUudmVyc2lvbik6ci5kZWNvZGUoYyxhKSxOdW1iZXIuaXNJbnRlZ2VyKGEpKWkrPWE7ZWxzZXtpZighTnVtYmVyLmlzSW50ZWdlcihlW3RdLmJpdExlbmd0aCkpdGhyb3cgbmV3IEh0KHQpO2krPWVbdF0uYml0TGVuZ3RofX19KSksZX19LHtrZXk6XCJpc1B1Ymxpc2hlckN1c3RvbVwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5pbmRleE9mKFwicHVibGlzaGVyQ3VzdG9tXCIpfX1dLG51bGwmJmpuKGUucHJvdG90eXBlLG51bGwpLHImJmpuKGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fSgpO2Z1bmN0aW9uIEFuKHQpe3JldHVybiBBbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxBbih0KX1mdW5jdGlvbiBJbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxfbihuLmtleSksbil9fWZ1bmN0aW9uIF9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9QW4odCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1BbihuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuXCJzeW1ib2xcIj09QW4oZSk/ZTplK1wiXCJ9IWZ1bmN0aW9uKHQsZSxyKXsoZT1QbihlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXJ9KFRuLFwiZmllbGRTZXF1ZW5jZVwiLG5ldyBibik7dmFyIENuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCl9dmFyIGUscjtyZXR1cm4gZT10LHI9W3trZXk6XCJwcm9jZXNzXCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgcj10Lmd2bDtpZighcil0aHJvdyBuZXcgVXQoXCJVbmFibGUgdG8gZW5jb2RlIFRDTW9kZWwgd2l0aG91dCBhIEdWTFwiKTtpZighci5pc1JlYWR5KXRocm93IG5ldyBVdChcIlVuYWJsZSB0byBlbmNvZGUgVENNb2RlbCB0Y01vZGVsLmd2bC5yZWFkeVByb21pc2UgaXMgbm90IHJlc29sdmVkXCIpOyh0PXQuY2xvbmUoKSkuY29uc2VudExhbmd1YWdlPXIubGFuZ3VhZ2Uuc2xpY2UoMCwyKS50b1VwcGVyQ2FzZSgpLChudWxsPT1lP3ZvaWQgMDplLnZlcnNpb24pPjAmJihudWxsPT1lP3ZvaWQgMDplLnZlcnNpb24pPD10aGlzLnByb2Nlc3Nvci5sZW5ndGg/dC52ZXJzaW9uPWUudmVyc2lvbjp0LnZlcnNpb249dGhpcy5wcm9jZXNzb3IubGVuZ3RoO3ZhciBuPXQudmVyc2lvbi0xO2lmKCF0aGlzLnByb2Nlc3NvcltuXSl0aHJvdyBuZXcgVXQoXCJJbnZhbGlkIHZlcnNpb246IFwiLmNvbmNhdCh0LnZlcnNpb24pKTtyZXR1cm4gdGhpcy5wcm9jZXNzb3Jbbl0odCxyKX19XSxudWxsJiZJbihlLnByb3RvdHlwZSxudWxsKSxyJiZJbihlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH0oKTtmdW5jdGlvbiBrbih0KXtyZXR1cm4ga249XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sa24odCl9ZnVuY3Rpb24gUm4odCl7dmFyIGU9XCJmdW5jdGlvblwiPT10eXBlb2YgTWFwP25ldyBNYXA6dm9pZCAwO3JldHVybiBSbj1mdW5jdGlvbih0KXtpZihudWxsPT09dHx8IWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4tMSE9PUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwodCkuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIil9Y2F0Y2goZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdH19KHQpKXJldHVybiB0O2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2lmKHZvaWQgMCE9PWUpe2lmKGUuaGFzKHQpKXJldHVybiBlLmdldCh0KTtlLnNldCh0LHIpfWZ1bmN0aW9uIHIoKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe2lmKExuKCkpcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0LmFwcGx5KG51bGwsYXJndW1lbnRzKTt2YXIgbj1bbnVsbF07bi5wdXNoLmFwcGx5KG4sZSk7dmFyIG89bmV3KHQuYmluZC5hcHBseSh0LG4pKTtyZXR1cm4gciYmTW4obyxyLnByb3RvdHlwZSksb30odCxhcmd1bWVudHMsTm4odGhpcykuY29uc3RydWN0b3IpfXJldHVybiByLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cixlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxNbihyLHQpfSxSbih0KX1mdW5jdGlvbiBMbigpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKExuPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBNbih0LGUpe3JldHVybiBNbj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LE1uKHQsZSl9ZnVuY3Rpb24gTm4odCl7cmV0dXJuIE5uPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxObih0KX0hZnVuY3Rpb24odCxlLHIpeyhlPV9uKGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09cn0oQ24sXCJwcm9jZXNzb3JcIixbZnVuY3Rpb24odCl7cmV0dXJuIHR9LGZ1bmN0aW9uKHQsZSl7dC5wdWJsaXNoZXJSZXN0cmljdGlvbnMuZ3ZsPWUsdC5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cy51bnNldChbMSwzLDQsNSw2XSk7dmFyIHI9bmV3IE1hcDtyZXR1cm4gci5zZXQoXCJsZWdJbnRQdXJwb3Nlc1wiLHQudmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cyksci5zZXQoXCJwdXJwb3Nlc1wiLHQudmVuZG9yQ29uc2VudHMpLHIuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXtyLmZvckVhY2goKGZ1bmN0aW9uKG8saSl7aWYobyl7dmFyIGE9ZS52ZW5kb3JzW2ldO2lmKCFhfHxhLmRlbGV0ZWREYXRlKXIudW5zZXQoaSk7ZWxzZSBpZigwPT09YVtuXS5sZW5ndGgpaWYoXCJsZWdJbnRQdXJwb3Nlc1wiPT09biYmMD09PWEucHVycG9zZXMubGVuZ3RoJiYwPT09YS5sZWdJbnRQdXJwb3Nlcy5sZW5ndGgmJmEuc3BlY2lhbFB1cnBvc2VzLmxlbmd0aD4wKTtlbHNlIGlmKHQuaXNTZXJ2aWNlU3BlY2lmaWMpaWYoMD09PWEuZmxleGlibGVQdXJwb3Nlcy5sZW5ndGgpci51bnNldChpKTtlbHNle2Zvcih2YXIgdT10LnB1Ymxpc2hlclJlc3RyaWN0aW9ucy5nZXRSZXN0cmljdGlvbnMoaSksYz0hMSxzPTAsZj11Lmxlbmd0aDtzPGYmJiFjO3MrKyljPXVbc10ucmVzdHJpY3Rpb25UeXBlPT09d2UuUkVRVUlSRV9DT05TRU5UJiZcInB1cnBvc2VzXCI9PT1ufHx1W3NdLnJlc3RyaWN0aW9uVHlwZT09PXdlLlJFUVVJUkVfTEkmJlwibGVnSW50UHVycG9zZXNcIj09PW47Y3x8ci51bnNldChpKX1lbHNlIHIudW5zZXQoaSl9fSkpfSkpLHQudmVuZG9yc0Rpc2Nsb3NlZC5zZXQoZS52ZW5kb3JzKSx0fV0pO3ZhciBWbj1mdW5jdGlvbih0KXshZnVuY3Rpb24odCxlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZSYmTW4odCxlKX0oaSx0KTt2YXIgZSxyLG4sbz0ocj1pLG49TG4oKSxmdW5jdGlvbigpe3ZhciB0LGU9Tm4ocik7aWYobil7dmFyIG89Tm4odGhpcykuY29uc3RydWN0b3I7dD1SZWZsZWN0LmNvbnN0cnVjdChlLGFyZ3VtZW50cyxvKX1lbHNlIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKFwib2JqZWN0XCI9PT1rbihlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiB0fSh0KX0odGhpcyx0KX0pO2Z1bmN0aW9uIGkodCl7dmFyIGU7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxpKSwoZT1vLmNhbGwodGhpcyx0KSkubmFtZT1cIkdWTEVycm9yXCIsZX1yZXR1cm4gZT1pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZX0oUm4oRXJyb3IpKTtmdW5jdGlvbiBVbih0KXtyZXR1cm4gVW49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sVW4odCl9ZnVuY3Rpb24gRG4odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsRm4obi5rZXkpLG4pfX1mdW5jdGlvbiBGbih0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPVVuKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9VW4obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PVVuKGUpP2U6ZStcIlwifXZhciBCbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpfXZhciBlLHI7cmV0dXJuIGU9dCxyPVt7a2V5OlwiYWJzQ2FsbFwiLHZhbHVlOmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obyxpKXt2YXIgYT1uZXcgWE1MSHR0cFJlcXVlc3Q7YS53aXRoQ3JlZGVudGlhbHM9cixhLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsKGZ1bmN0aW9uKCl7aWYoYS5yZWFkeVN0YXRlPT1YTUxIdHRwUmVxdWVzdC5ET05FKWlmKGEuc3RhdHVzPj0yMDAmJmEuc3RhdHVzPDMwMCl7dmFyIHQ9YS5yZXNwb25zZTtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl0cnl7dD1KU09OLnBhcnNlKHQpfWNhdGNoKHQpe31vKHQpfWVsc2UgaShuZXcgRXJyb3IoXCJIVFRQIFN0YXR1czogXCIuY29uY2F0KGEuc3RhdHVzLFwiIHJlc3BvbnNlIHR5cGU6IFwiKS5jb25jYXQoYS5yZXNwb25zZVR5cGUpKSl9KSksYS5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwoZnVuY3Rpb24oKXtpKG5ldyBFcnJvcihcImVycm9yXCIpKX0pKSxhLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLChmdW5jdGlvbigpe2kobmV3IEVycm9yKFwiYWJvcnRlZFwiKSl9KSksbnVsbD09PWU/YS5vcGVuKFwiR0VUXCIsdCwhMCk6YS5vcGVuKFwiUE9TVFwiLHQsITApLGEucmVzcG9uc2VUeXBlPVwianNvblwiLGEudGltZW91dD1uLGEub250aW1lb3V0PWZ1bmN0aW9uKCl7aShuZXcgRXJyb3IoXCJUaW1lb3V0IFwiK24rXCJtcyBcIit0KSl9LGEuc2VuZChlKX0pKX19LHtrZXk6XCJwb3N0XCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLG49YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjA7cmV0dXJuIHRoaXMuYWJzQ2FsbCh0LEpTT04uc3RyaW5naWZ5KGUpLHIsbil9fSx7a2V5OlwiZmV0Y2hcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjA7cmV0dXJuIHRoaXMuYWJzQ2FsbCh0LG51bGwsZSxyKX19XSxudWxsJiZEbihlLnByb3RvdHlwZSxudWxsKSxyJiZEbihlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH0oKTtmdW5jdGlvbiBHbih0KXtyZXR1cm4gR249XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sR24odCl9ZnVuY3Rpb24gem4oKXt6bj1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LHI9T2JqZWN0LnByb3RvdHlwZSxuPXIuaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxyKXt0W2VdPXIudmFsdWV9LGk9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fFwiQEBpdGVyYXRvclwiLHU9aS5hc3luY0l0ZXJhdG9yfHxcIkBAYXN5bmNJdGVyYXRvclwiLGM9aS50b1N0cmluZ1RhZ3x8XCJAQHRvU3RyaW5nVGFnXCI7ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtzKHt9LFwiXCIpfWNhdGNoKHQpe3M9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0W2VdPXJ9fWZ1bmN0aW9uIGYodCxlLHIsbil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBiP2U6YixhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IF8obnx8W10pO3JldHVybiBvKGEsXCJfaW52b2tlXCIse3ZhbHVlOlAodCxyLHUpfSksYX1mdW5jdGlvbiBsKHQsZSxyKXt0cnl7cmV0dXJue3R5cGU6XCJub3JtYWxcIixhcmc6dC5jYWxsKGUscil9fWNhdGNoKHQpe3JldHVybnt0eXBlOlwidGhyb3dcIixhcmc6dH19fWUud3JhcD1mO3ZhciBwPVwic3VzcGVuZGVkU3RhcnRcIix2PVwic3VzcGVuZGVkWWllbGRcIix5PVwiZXhlY3V0aW5nXCIsaD1cImNvbXBsZXRlZFwiLGQ9e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIG0oKXt9dmFyIHc9e307cyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFM9T2JqZWN0LmdldFByb3RvdHlwZU9mLE89UyYmUyhTKEMoW10pKSk7TyYmTyE9PXImJm4uY2FsbChPLGEpJiYodz1PKTt2YXIgRT1tLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIHgodCl7W1wibmV4dFwiLFwidGhyb3dcIixcInJldHVyblwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtzKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIGoodCxlKXtmdW5jdGlvbiByKG8saSxhLHUpe3ZhciBjPWwodFtvXSx0LGkpO2lmKFwidGhyb3dcIiE9PWMudHlwZSl7dmFyIHM9Yy5hcmcsZj1zLnZhbHVlO3JldHVybiBmJiZcIm9iamVjdFwiPT1HbihmKSYmbi5jYWxsKGYsXCJfX2F3YWl0XCIpP2UucmVzb2x2ZShmLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe3IoXCJuZXh0XCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe3IoXCJ0aHJvd1wiLHQsYSx1KX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7cy52YWx1ZT10LGEocyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHIoXCJ0aHJvd1wiLHQsYSx1KX0pKX11KGMuYXJnKX12YXIgaTtvKHRoaXMsXCJfaW52b2tlXCIse3ZhbHVlOmZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtyKHQsbixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIFAoZSxyLG4pe3ZhciBvPXA7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO2lmKG89PT1oKXtpZihcInRocm93XCI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKG4ubWV0aG9kPWksbi5hcmc9YTs7KXt2YXIgdT1uLmRlbGVnYXRlO2lmKHUpe3ZhciBjPVQodSxuKTtpZihjKXtpZihjPT09ZCljb250aW51ZTtyZXR1cm4gY319aWYoXCJuZXh0XCI9PT1uLm1ldGhvZCluLnNlbnQ9bi5fc2VudD1uLmFyZztlbHNlIGlmKFwidGhyb3dcIj09PW4ubWV0aG9kKXtpZihvPT09cCl0aHJvdyBvPWgsbi5hcmc7bi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyl9ZWxzZVwicmV0dXJuXCI9PT1uLm1ldGhvZCYmbi5hYnJ1cHQoXCJyZXR1cm5cIixuLmFyZyk7bz15O3ZhciBzPWwoZSxyLG4pO2lmKFwibm9ybWFsXCI9PT1zLnR5cGUpe2lmKG89bi5kb25lP2g6dixzLmFyZz09PWQpY29udGludWU7cmV0dXJue3ZhbHVlOnMuYXJnLGRvbmU6bi5kb25lfX1cInRocm93XCI9PT1zLnR5cGUmJihvPWgsbi5tZXRob2Q9XCJ0aHJvd1wiLG4uYXJnPXMuYXJnKX19fWZ1bmN0aW9uIFQoZSxyKXt2YXIgbj1yLm1ldGhvZCxvPWUuaXRlcmF0b3Jbbl07aWYobz09PXQpcmV0dXJuIHIuZGVsZWdhdGU9bnVsbCxcInRocm93XCI9PT1uJiZlLml0ZXJhdG9yLnJldHVybiYmKHIubWV0aG9kPVwicmV0dXJuXCIsci5hcmc9dCxUKGUsciksXCJ0aHJvd1wiPT09ci5tZXRob2QpfHxcInJldHVyblwiIT09biYmKHIubWV0aG9kPVwidGhyb3dcIixyLmFyZz1uZXcgVHlwZUVycm9yKFwiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnXCIrbitcIicgbWV0aG9kXCIpKSxkO3ZhciBpPWwobyxlLml0ZXJhdG9yLHIuYXJnKTtpZihcInRocm93XCI9PT1pLnR5cGUpcmV0dXJuIHIubWV0aG9kPVwidGhyb3dcIixyLmFyZz1pLmFyZyxyLmRlbGVnYXRlPW51bGwsZDt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KHJbZS5yZXN1bHROYW1lXT1hLnZhbHVlLHIubmV4dD1lLm5leHRMb2MsXCJyZXR1cm5cIiE9PXIubWV0aG9kJiYoci5tZXRob2Q9XCJuZXh0XCIsci5hcmc9dCksci5kZWxlZ2F0ZT1udWxsLGQpOmE6KHIubWV0aG9kPVwidGhyb3dcIixyLmFyZz1uZXcgVHlwZUVycm9yKFwiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3RcIiksci5kZWxlZ2F0ZT1udWxsLGQpfWZ1bmN0aW9uIEEodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT1cIm5vcm1hbFwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBfKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzpcInJvb3RcIn1dLHQuZm9yRWFjaChBLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIEMoZSl7aWYoZXx8XCJcIj09PWUpe3ZhciByPWVbYV07aWYocilyZXR1cm4gci5jYWxsKGUpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIHIoKXtmb3IoOysrbzxlLmxlbmd0aDspaWYobi5jYWxsKGUsbykpcmV0dXJuIHIudmFsdWU9ZVtvXSxyLmRvbmU9ITEscjtyZXR1cm4gci52YWx1ZT10LHIuZG9uZT0hMCxyfTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoR24oZSkrXCIgaXMgbm90IGl0ZXJhYmxlXCIpfXJldHVybiBnLnByb3RvdHlwZT1tLG8oRSxcImNvbnN0cnVjdG9yXCIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbyhtLFwiY29uc3RydWN0b3JcIix7dmFsdWU6Zyxjb25maWd1cmFibGU6ITB9KSxnLmRpc3BsYXlOYW1lPXMobSxjLFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PWd8fFwiR2VuZXJhdG9yRnVuY3Rpb25cIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsbSk6KHQuX19wcm90b19fPW0scyh0LGMsXCJHZW5lcmF0b3JGdW5jdGlvblwiKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSx4KGoucHJvdG90eXBlKSxzKGoucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPWosZS5hc3luYz1mdW5jdGlvbih0LHIsbixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBqKGYodCxyLG4sbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihyKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0seChFKSxzKEUsYyxcIkdlbmVyYXRvclwiKSxzKEUsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxzKEUsXCJ0b1N0cmluZ1wiLChmdW5jdGlvbigpe3JldHVyblwiW29iamVjdCBHZW5lcmF0b3JdXCJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxyPVtdO2Zvcih2YXIgbiBpbiBlKXIucHVzaChuKTtyZXR1cm4gci5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7ci5sZW5ndGg7KXt2YXIgbj1yLnBvcCgpO2lmKG4gaW4gZSlyZXR1cm4gdC52YWx1ZT1uLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPUMsXy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOl8scmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPVwibmV4dFwiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goSSksIWUpZm9yKHZhciByIGluIHRoaXMpXCJ0XCI9PT1yLmNoYXJBdCgwKSYmbi5jYWxsKHRoaXMscikmJiFpc05hTigrci5zbGljZSgxKSkmJih0aGlzW3JdPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKFwidGhyb3dcIj09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgcj10aGlzO2Z1bmN0aW9uIG8obixvKXtyZXR1cm4gdS50eXBlPVwidGhyb3dcIix1LmFyZz1lLHIubmV4dD1uLG8mJihyLm1ldGhvZD1cIm5leHRcIixyLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKFwicm9vdFwiPT09YS50cnlMb2MpcmV0dXJuIG8oXCJlbmRcIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIGM9bi5jYWxsKGEsXCJjYXRjaExvY1wiKSxzPW4uY2FsbChhLFwiZmluYWxseUxvY1wiKTtpZihjJiZzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFzKXRocm93IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO3I+PTA7LS1yKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbcl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmbi5jYWxsKG8sXCJmaW5hbGx5TG9jXCIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoXCJicmVha1wiPT09dHx8XCJjb250aW51ZVwiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPVwibmV4dFwiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsZCk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZihcInRocm93XCI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuXCJicmVha1wiPT09dC50eXBlfHxcImNvbnRpbnVlXCI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOlwicmV0dXJuXCI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD1cInJldHVyblwiLHRoaXMubmV4dD1cImVuZFwiKTpcIm5vcm1hbFwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLGR9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgcj10aGlzLnRyeUVudHJpZXNbZV07aWYoci5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShyLmNvbXBsZXRpb24sci5hZnRlckxvYyksSShyKSxkfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIHI9dGhpcy50cnlFbnRyaWVzW2VdO2lmKHIudHJ5TG9jPT09dCl7dmFyIG49ci5jb21wbGV0aW9uO2lmKFwidGhyb3dcIj09PW4udHlwZSl7dmFyIG89bi5hcmc7SShyKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpDKGUpLHJlc3VsdE5hbWU6cixuZXh0TG9jOm59LFwibmV4dFwiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSxkfX0sZX1mdW5jdGlvbiBIbih0LGUscixuLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxjPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgcih0KX11LmRvbmU/ZShjKTpQcm9taXNlLnJlc29sdmUoYykudGhlbihuLG8pfWZ1bmN0aW9uIFduKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMscj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLG8pe3ZhciBpPXQuYXBwbHkoZSxyKTtmdW5jdGlvbiBhKHQpe0huKGksbixvLGEsdSxcIm5leHRcIix0KX1mdW5jdGlvbiB1KHQpe0huKGksbixvLGEsdSxcInRocm93XCIsdCl9YSh2b2lkIDApfSkpfX1mdW5jdGlvbiBxbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxabihuLmtleSksbil9fWZ1bmN0aW9uIEtuKHQsZSl7cmV0dXJuIEtuPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sS24odCxlKX1mdW5jdGlvbiAkbih0KXt2YXIgZT1RbigpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49Sm4odCk7aWYoZSl7dmFyIG89Sm4odGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKFwib2JqZWN0XCI9PT1HbihlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIFluKHQpfSh0aGlzLHIpfX1mdW5jdGlvbiBZbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH1mdW5jdGlvbiBRbigpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKFFuPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBKbih0KXtyZXR1cm4gSm49T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LEpuKHQpfWZ1bmN0aW9uIFhuKHQsZSxyKXtyZXR1cm4oZT1abihlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiBabih0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPUduKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9R24obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PUduKGUpP2U6ZStcIlwifXZhciB0bz1mdW5jdGlvbih0KXshZnVuY3Rpb24odCxlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZSYmS24odCxlKX0odSx0KTt2YXIgZSxyLG4sbyxpLGE9JG4odSk7ZnVuY3Rpb24gdSh0KXt2YXIgZTshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHUpLFhuKFluKGU9YS5jYWxsKHRoaXMpKSxcInJlYWR5UHJvbWlzZVwiLHZvaWQgMCksWG4oWW4oZSksXCJndmxTcGVjaWZpY2F0aW9uVmVyc2lvblwiLHZvaWQgMCksWG4oWW4oZSksXCJ2ZW5kb3JMaXN0VmVyc2lvblwiLHZvaWQgMCksWG4oWW4oZSksXCJ0Y2ZQb2xpY3lWZXJzaW9uXCIsdm9pZCAwKSxYbihZbihlKSxcImxhc3RVcGRhdGVkXCIsdm9pZCAwKSxYbihZbihlKSxcInB1cnBvc2VzXCIsdm9pZCAwKSxYbihZbihlKSxcInNwZWNpYWxQdXJwb3Nlc1wiLHZvaWQgMCksWG4oWW4oZSksXCJmZWF0dXJlc1wiLHZvaWQgMCksWG4oWW4oZSksXCJzcGVjaWFsRmVhdHVyZXNcIix2b2lkIDApLFhuKFluKGUpLFwiaXNSZWFkeV9cIiwhMSksWG4oWW4oZSksXCJ2ZW5kb3JzX1wiLHZvaWQgMCksWG4oWW4oZSksXCJ2ZW5kb3JJZHNcIix2b2lkIDApLFhuKFluKGUpLFwiZnVsbFZlbmRvckxpc3RcIix2b2lkIDApLFhuKFluKGUpLFwiYnlQdXJwb3NlVmVuZG9yTWFwXCIsdm9pZCAwKSxYbihZbihlKSxcImJ5U3BlY2lhbFB1cnBvc2VWZW5kb3JNYXBcIix2b2lkIDApLFhuKFluKGUpLFwiYnlGZWF0dXJlVmVuZG9yTWFwXCIsdm9pZCAwKSxYbihZbihlKSxcImJ5U3BlY2lhbEZlYXR1cmVWZW5kb3JNYXBcIix2b2lkIDApLFhuKFluKGUpLFwic3RhY2tzXCIsdm9pZCAwKSxYbihZbihlKSxcImRhdGFDYXRlZ29yaWVzXCIsdm9pZCAwKSxYbihZbihlKSxcImxhbmdfXCIsdm9pZCAwKSxYbihZbihlKSxcImNhY2hlTGFuZ19cIix2b2lkIDApLFhuKFluKGUpLFwiaXNMYXRlc3RcIiwhMSk7dmFyIHI9dS5iYXNlVXJsO2lmKGUubGFuZ189dS5ERUZBVUxUX0xBTkdVQUdFLGUuY2FjaGVMYW5nXz11LkRFRkFVTFRfTEFOR1VBR0UsZS5pc1ZlbmRvckxpc3QodCkpZS5wb3B1bGF0ZSh0KSxlLnJlYWR5UHJvbWlzZT1Qcm9taXNlLnJlc29sdmUoKTtlbHNle2lmKCFyKXRocm93IG5ldyBWbihcIm11c3Qgc3BlY2lmeSBHVkwuYmFzZVVybCBiZWZvcmUgbG9hZGluZyBHVkwganNvblwiKTtpZih0PjApe3ZhciBuPXQ7dS5DQUNIRS5oYXMobik/KGUucG9wdWxhdGUodS5DQUNIRS5nZXQobikpLGUucmVhZHlQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpKToocis9dS52ZXJzaW9uZWRGaWxlbmFtZS5yZXBsYWNlKFwiW1ZFUlNJT05dXCIsU3RyaW5nKG4pKSxlLnJlYWR5UHJvbWlzZT1lLmZldGNoSnNvbihyKSl9ZWxzZSB1LkNBQ0hFLmhhcyh1LkxBVEVTVF9DQUNIRV9LRVkpPyhlLnBvcHVsYXRlKHUuQ0FDSEUuZ2V0KHUuTEFURVNUX0NBQ0hFX0tFWSkpLGUucmVhZHlQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpKTooZS5pc0xhdGVzdD0hMCxlLnJlYWR5UHJvbWlzZT1lLmZldGNoSnNvbihyK3UubGF0ZXN0RmlsZW5hbWUpKX1yZXR1cm4gZX1yZXR1cm4gZT11LHI9W3trZXk6XCJjYWNoZUxhbmd1YWdlXCIsdmFsdWU6ZnVuY3Rpb24oKXt1LkxBTkdVQUdFX0NBQ0hFLmhhcyh0aGlzLmNhY2hlTGFuZ18pfHx1LkxBTkdVQUdFX0NBQ0hFLnNldCh0aGlzLmNhY2hlTGFuZ18se3B1cnBvc2VzOnRoaXMucHVycG9zZXMsc3BlY2lhbFB1cnBvc2VzOnRoaXMuc3BlY2lhbFB1cnBvc2VzLGZlYXR1cmVzOnRoaXMuZmVhdHVyZXMsc3BlY2lhbEZlYXR1cmVzOnRoaXMuc3BlY2lhbEZlYXR1cmVzLHN0YWNrczp0aGlzLnN0YWNrcyxkYXRhQ2F0ZWdvcmllczp0aGlzLmRhdGFDYXRlZ29yaWVzfSl9fSx7a2V5OlwiZmV0Y2hKc29uXCIsdmFsdWU6KGk9V24oem4oKS5tYXJrKChmdW5jdGlvbiB0KGUpe3JldHVybiB6bigpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0LnByZXY9MCx0LnQwPXRoaXMsdC5uZXh0PTQsQm4uZmV0Y2goZSk7Y2FzZSA0OnQudDE9dC5zZW50LHQudDAucG9wdWxhdGUuY2FsbCh0LnQwLHQudDEpLHQubmV4dD0xMTticmVhaztjYXNlIDg6dGhyb3cgdC5wcmV2PTgsdC50Mj10LmNhdGNoKDApLG5ldyBWbih0LnQyLm1lc3NhZ2UpO2Nhc2UgMTE6Y2FzZVwiZW5kXCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyxbWzAsOF1dKX0pKSksZnVuY3Rpb24odCl7cmV0dXJuIGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6XCJnZXRKc29uXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7Z3ZsU3BlY2lmaWNhdGlvblZlcnNpb246dGhpcy5ndmxTcGVjaWZpY2F0aW9uVmVyc2lvbix2ZW5kb3JMaXN0VmVyc2lvbjp0aGlzLnZlbmRvckxpc3RWZXJzaW9uLHRjZlBvbGljeVZlcnNpb246dGhpcy50Y2ZQb2xpY3lWZXJzaW9uLGxhc3RVcGRhdGVkOnRoaXMubGFzdFVwZGF0ZWQscHVycG9zZXM6dGhpcy5wdXJwb3NlcyxzcGVjaWFsUHVycG9zZXM6dGhpcy5zcGVjaWFsUHVycG9zZXMsZmVhdHVyZXM6dGhpcy5mZWF0dXJlcyxzcGVjaWFsRmVhdHVyZXM6dGhpcy5zcGVjaWFsRmVhdHVyZXMsc3RhY2tzOnRoaXMuc3RhY2tzLGRhdGFDYXRlZ29yaWVzOnRoaXMuZGF0YUNhdGVnb3JpZXMsdmVuZG9yczp0aGlzLmZ1bGxWZW5kb3JMaXN0fSkpfX0se2tleTpcImNoYW5nZUxhbmd1YWdlXCIsdmFsdWU6KG89V24oem4oKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciByLG4sbyxpLGE7cmV0dXJuIHpuKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cj1lLHQucHJldj0xLHI9dS5jb25zZW50TGFuZ3VhZ2VzLnBhcnNlTGFuZ3VhZ2UoZSksdC5uZXh0PTg7YnJlYWs7Y2FzZSA1OnRocm93IHQucHJldj01LHQudDA9dC5jYXRjaCgxKSxuZXcgVm4oXCJFcnJvciBkdXJpbmcgcGFyc2luZyB0aGUgbGFuZ3VhZ2U6IFwiK3QudDAubWVzc2FnZSk7Y2FzZSA4OmlmKG49ZS50b1VwcGVyQ2FzZSgpLHIudG9Mb3dlckNhc2UoKSE9PXUuREVGQVVMVF9MQU5HVUFHRS50b0xvd2VyQ2FzZSgpfHx1LkxBTkdVQUdFX0NBQ0hFLmhhcyhuKSl7dC5uZXh0PTExO2JyZWFrfXJldHVybiB0LmFicnVwdChcInJldHVyblwiKTtjYXNlIDExOmlmKHI9PT10aGlzLmxhbmdfKXt0Lm5leHQ9Mjk7YnJlYWt9aWYodGhpcy5sYW5nXz1yLCF1LkxBTkdVQUdFX0NBQ0hFLmhhcyhuKSl7dC5uZXh0PTE4O2JyZWFrfWZvcihpIGluIG89dS5MQU5HVUFHRV9DQUNIRS5nZXQobikpby5oYXNPd25Qcm9wZXJ0eShpKSYmKHRoaXNbaV09b1tpXSk7dC5uZXh0PTI5O2JyZWFrO2Nhc2UgMTg6cmV0dXJuIGE9dS5iYXNlVXJsK3UubGFuZ3VhZ2VGaWxlbmFtZS5yZXBsYWNlKFwiW0xBTkddXCIsdGhpcy5sYW5nXy50b0xvd2VyQ2FzZSgpKSx0LnByZXY9MTksdC5uZXh0PTIyLHRoaXMuZmV0Y2hKc29uKGEpO2Nhc2UgMjI6dGhpcy5jYWNoZUxhbmdfPW4sdGhpcy5jYWNoZUxhbmd1YWdlKCksdC5uZXh0PTI5O2JyZWFrO2Nhc2UgMjY6dGhyb3cgdC5wcmV2PTI2LHQudDE9dC5jYXRjaCgxOSksbmV3IFZuKFwidW5hYmxlIHRvIGxvYWQgbGFuZ3VhZ2U6IFwiK3QudDEubWVzc2FnZSk7Y2FzZSAyOTpjYXNlXCJlbmRcIjpyZXR1cm4gdC5zdG9wKCl9fSksdCx0aGlzLFtbMSw1XSxbMTksMjZdXSl9KSkpLGZ1bmN0aW9uKHQpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OlwibGFuZ3VhZ2VcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYW5nX319LHtrZXk6XCJpc1ZlbmRvckxpc3RcIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dCYmdm9pZCAwIT09dC52ZW5kb3JzfX0se2tleTpcInBvcHVsYXRlXCIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5wdXJwb3Nlcz10LnB1cnBvc2VzLHRoaXMuc3BlY2lhbFB1cnBvc2VzPXQuc3BlY2lhbFB1cnBvc2VzLHRoaXMuZmVhdHVyZXM9dC5mZWF0dXJlcyx0aGlzLnNwZWNpYWxGZWF0dXJlcz10LnNwZWNpYWxGZWF0dXJlcyx0aGlzLnN0YWNrcz10LnN0YWNrcyx0aGlzLmRhdGFDYXRlZ29yaWVzPXQuZGF0YUNhdGVnb3JpZXMsdGhpcy5pc1ZlbmRvckxpc3QodCkmJih0aGlzLmd2bFNwZWNpZmljYXRpb25WZXJzaW9uPXQuZ3ZsU3BlY2lmaWNhdGlvblZlcnNpb24sdGhpcy50Y2ZQb2xpY3lWZXJzaW9uPXQudGNmUG9saWN5VmVyc2lvbix0aGlzLnZlbmRvckxpc3RWZXJzaW9uPXQudmVuZG9yTGlzdFZlcnNpb24sdGhpcy5sYXN0VXBkYXRlZD10Lmxhc3RVcGRhdGVkLFwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLmxhc3RVcGRhdGVkJiYodGhpcy5sYXN0VXBkYXRlZD1uZXcgRGF0ZSh0aGlzLmxhc3RVcGRhdGVkKSksdGhpcy52ZW5kb3JzXz10LnZlbmRvcnMsdGhpcy5mdWxsVmVuZG9yTGlzdD10LnZlbmRvcnMsdGhpcy5tYXBWZW5kb3JzKCksdGhpcy5pc1JlYWR5Xz0hMCx0aGlzLmlzTGF0ZXN0JiZ1LkNBQ0hFLnNldCh1LkxBVEVTVF9DQUNIRV9LRVksdGhpcy5nZXRKc29uKCkpLHUuQ0FDSEUuaGFzKHRoaXMudmVuZG9yTGlzdFZlcnNpb24pfHx1LkNBQ0hFLnNldCh0aGlzLnZlbmRvckxpc3RWZXJzaW9uLHRoaXMuZ2V0SnNvbigpKSksdGhpcy5jYWNoZUxhbmd1YWdlKCl9fSx7a2V5OlwibWFwVmVuZG9yc1wiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5ieVB1cnBvc2VWZW5kb3JNYXA9e30sdGhpcy5ieVNwZWNpYWxQdXJwb3NlVmVuZG9yTWFwPXt9LHRoaXMuYnlGZWF0dXJlVmVuZG9yTWFwPXt9LHRoaXMuYnlTcGVjaWFsRmVhdHVyZVZlbmRvck1hcD17fSxPYmplY3Qua2V5cyh0aGlzLnB1cnBvc2VzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLmJ5UHVycG9zZVZlbmRvck1hcFt0XT17bGVnSW50Om5ldyBTZXQsY29uc2VudDpuZXcgU2V0LGZsZXhpYmxlOm5ldyBTZXR9fSkpLE9iamVjdC5rZXlzKHRoaXMuc3BlY2lhbFB1cnBvc2VzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLmJ5U3BlY2lhbFB1cnBvc2VWZW5kb3JNYXBbdF09bmV3IFNldH0pKSxPYmplY3Qua2V5cyh0aGlzLmZlYXR1cmVzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLmJ5RmVhdHVyZVZlbmRvck1hcFt0XT1uZXcgU2V0fSkpLE9iamVjdC5rZXlzKHRoaXMuc3BlY2lhbEZlYXR1cmVzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLmJ5U3BlY2lhbEZlYXR1cmVWZW5kb3JNYXBbdF09bmV3IFNldH0pKSxBcnJheS5pc0FycmF5KHQpfHwodD1PYmplY3Qua2V5cyh0aGlzLmZ1bGxWZW5kb3JMaXN0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybit0fSkpKSx0aGlzLnZlbmRvcklkcz1uZXcgU2V0KHQpLHRoaXMudmVuZG9yc189dC5yZWR1Y2UoKGZ1bmN0aW9uKHQscil7dmFyIG49ZS52ZW5kb3JzX1tTdHJpbmcocildO3JldHVybiBuJiZ2b2lkIDA9PT1uLmRlbGV0ZWREYXRlJiYobi5wdXJwb3Nlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtlLmJ5UHVycG9zZVZlbmRvck1hcFtTdHJpbmcodCldLmNvbnNlbnQuYWRkKHIpfSkpLG4uc3BlY2lhbFB1cnBvc2VzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYnlTcGVjaWFsUHVycG9zZVZlbmRvck1hcFtTdHJpbmcodCldLmFkZChyKX0pKSxuLmxlZ0ludFB1cnBvc2VzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYnlQdXJwb3NlVmVuZG9yTWFwW1N0cmluZyh0KV0ubGVnSW50LmFkZChyKX0pKSxuLmZsZXhpYmxlUHVycG9zZXMmJm4uZmxleGlibGVQdXJwb3Nlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtlLmJ5UHVycG9zZVZlbmRvck1hcFtTdHJpbmcodCldLmZsZXhpYmxlLmFkZChyKX0pKSxuLmZlYXR1cmVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYnlGZWF0dXJlVmVuZG9yTWFwW1N0cmluZyh0KV0uYWRkKHIpfSkpLG4uc3BlY2lhbEZlYXR1cmVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYnlTcGVjaWFsRmVhdHVyZVZlbmRvck1hcFtTdHJpbmcodCldLmFkZChyKX0pKSx0W3JdPW4pLHR9KSx7fSl9fSx7a2V5OlwiZ2V0RmlsdGVyZWRWZW5kb3JzXCIsdmFsdWU6ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89dGhpcyxpPXQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKSxhPXt9O3JldHVybihcInB1cnBvc2VcIj09PXQmJnI/dGhpc1tcImJ5XCIraStcIlZlbmRvck1hcFwiXVtTdHJpbmcoZSldW3JdOnRoaXNbXCJieVwiKyhuP1wiU3BlY2lhbFwiOlwiXCIpK2krXCJWZW5kb3JNYXBcIl1bU3RyaW5nKGUpXSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7YVtTdHJpbmcodCldPW8udmVuZG9yc1tTdHJpbmcodCldfSkpLGF9fSx7a2V5OlwiZ2V0VmVuZG9yc1dpdGhDb25zZW50UHVycG9zZVwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdldEZpbHRlcmVkVmVuZG9ycyhcInB1cnBvc2VcIix0LFwiY29uc2VudFwiKX19LHtrZXk6XCJnZXRWZW5kb3JzV2l0aExlZ0ludFB1cnBvc2VcIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRGaWx0ZXJlZFZlbmRvcnMoXCJwdXJwb3NlXCIsdCxcImxlZ0ludFwiKX19LHtrZXk6XCJnZXRWZW5kb3JzV2l0aEZsZXhpYmxlUHVycG9zZVwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdldEZpbHRlcmVkVmVuZG9ycyhcInB1cnBvc2VcIix0LFwiZmxleGlibGVcIil9fSx7a2V5OlwiZ2V0VmVuZG9yc1dpdGhTcGVjaWFsUHVycG9zZVwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdldEZpbHRlcmVkVmVuZG9ycyhcInB1cnBvc2VcIix0LHZvaWQgMCwhMCl9fSx7a2V5OlwiZ2V0VmVuZG9yc1dpdGhGZWF0dXJlXCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVyZWRWZW5kb3JzKFwiZmVhdHVyZVwiLHQpfX0se2tleTpcImdldFZlbmRvcnNXaXRoU3BlY2lhbEZlYXR1cmVcIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRGaWx0ZXJlZFZlbmRvcnMoXCJmZWF0dXJlXCIsdCx2b2lkIDAsITApfX0se2tleTpcInZlbmRvcnNcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52ZW5kb3JzX319LHtrZXk6XCJuYXJyb3dWZW5kb3JzVG9cIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLm1hcFZlbmRvcnModCl9fSx7a2V5OlwiaXNSZWFkeVwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzUmVhZHlffX0se2tleTpcImNsb25lXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgdSh0aGlzLmdldEpzb24oKSk7cmV0dXJuIHRoaXMubGFuZ18hPT11LkRFRkFVTFRfTEFOR1VBR0UmJnQuY2hhbmdlTGFuZ3VhZ2UodGhpcy5sYW5nXyksdH19XSxuPVt7a2V5OlwiYmFzZVVybFwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJhc2VVcmxffSxzZXQ6ZnVuY3Rpb24odCl7aWYoL15odHRwcz86XFwvXFwvdmVuZG9ybGlzdFxcLmNvbnNlbnN1XFwub3JnXFwvLy50ZXN0KHQpKXRocm93IG5ldyBWbihcIkludmFsaWQgYmFzZVVybCEgIFlvdSBtYXkgbm90IHB1bGwgZGlyZWN0bHkgZnJvbSB2ZW5kb3JsaXN0LmNvbnNlbnN1Lm9yZyBhbmQgbXVzdCBwcm92aWRlIHlvdXIgb3duIGNhY2hlXCIpO3QubGVuZ3RoPjAmJlwiL1wiIT09dFt0Lmxlbmd0aC0xXSYmKHQrPVwiL1wiKSx0aGlzLmJhc2VVcmxfPXR9fSx7a2V5OlwiZW1wdHlMYW5ndWFnZUNhY2hlXCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9ITE7cmV0dXJuIG51bGw9PXQmJnUuTEFOR1VBR0VfQ0FDSEUuc2l6ZT4wPyh1LkxBTkdVQUdFX0NBQ0hFPW5ldyBNYXAsZT0hMCk6XCJzdHJpbmdcIj09dHlwZW9mIHQmJnRoaXMuY29uc2VudExhbmd1YWdlcy5oYXModC50b1VwcGVyQ2FzZSgpKSYmKHUuTEFOR1VBR0VfQ0FDSEUuZGVsZXRlKHQudG9VcHBlckNhc2UoKSksZT0hMCksZX19LHtrZXk6XCJlbXB0eUNhY2hlXCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9ITE7cmV0dXJuIE51bWJlci5pc0ludGVnZXIodCkmJnQ+PTA/KHUuQ0FDSEUuZGVsZXRlKHQpLGU9ITApOnZvaWQgMD09PXQmJih1LkNBQ0hFPW5ldyBNYXAsZT0hMCksZX19LHtrZXk6XCJpc0luc3RhbmNlT2ZcIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm5cIm9iamVjdFwiPT09R24odCkmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQubmFycm93VmVuZG9yc1RvfX1dLHImJnFuKGUucHJvdG90eXBlLHIpLG4mJnFuKGUsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx1fSh5ZSk7ZnVuY3Rpb24gZW8odCl7cmV0dXJuIGVvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LGVvKHQpfWZ1bmN0aW9uIHJvKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHNvKG4ua2V5KSxuKX19ZnVuY3Rpb24gbm8odCxlKXtyZXR1cm4gbm89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxubyh0LGUpfWZ1bmN0aW9uIG9vKHQpe3ZhciBlPWFvKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsbj11byh0KTtpZihlKXt2YXIgbz11byh0aGlzKS5jb25zdHJ1Y3RvcjtyPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2Ugcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZihlJiYoXCJvYmplY3RcIj09PWVvKGUpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gaW8odCl9KHRoaXMscil9fWZ1bmN0aW9uIGlvKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiB0fWZ1bmN0aW9uIGFvKCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4oYW89ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIHVvKHQpe3JldHVybiB1bz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sdW8odCl9ZnVuY3Rpb24gY28odCxlLHIpe3JldHVybihlPXNvKGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09cix0fWZ1bmN0aW9uIHNvKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoXCJvYmplY3RcIiE9ZW8odCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwodCxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1lbyhuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuXCJzeW1ib2xcIj09ZW8oZSk/ZTplK1wiXCJ9WG4odG8sXCJMQU5HVUFHRV9DQUNIRVwiLG5ldyBNYXApLFhuKHRvLFwiQ0FDSEVcIixuZXcgTWFwKSxYbih0byxcIkxBVEVTVF9DQUNIRV9LRVlcIiwwKSxYbih0byxcIkRFRkFVTFRfTEFOR1VBR0VcIixcIkVOXCIpLFhuKHRvLFwiY29uc2VudExhbmd1YWdlc1wiLG5ldyBuZSksWG4odG8sXCJiYXNlVXJsX1wiLHZvaWQgMCksWG4odG8sXCJsYXRlc3RGaWxlbmFtZVwiLFwidmVuZG9yLWxpc3QuanNvblwiKSxYbih0byxcInZlcnNpb25lZEZpbGVuYW1lXCIsXCJhcmNoaXZlcy92ZW5kb3ItbGlzdC12W1ZFUlNJT05dLmpzb25cIiksWG4odG8sXCJsYW5ndWFnZUZpbGVuYW1lXCIsXCJwdXJwb3Nlcy1bTEFOR10uanNvblwiKTt2YXIgZm89ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGUmJm5vKHQsZSl9KG8sdCk7dmFyIGUscixuPW9vKG8pO2Z1bmN0aW9uIG8odCl7dmFyIGU7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxvKSxjbyhpbyhlPW4uY2FsbCh0aGlzKSksXCJpc1NlcnZpY2VTcGVjaWZpY19cIiwhMSksY28oaW8oZSksXCJzdXBwb3J0T09CX1wiLCEwKSxjbyhpbyhlKSxcInVzZU5vblN0YW5kYXJkVGV4dHNfXCIsITEpLGNvKGlvKGUpLFwicHVycG9zZU9uZVRyZWF0bWVudF9cIiwhMSksY28oaW8oZSksXCJwdWJsaXNoZXJDb3VudHJ5Q29kZV9cIixcIkFBXCIpLGNvKGlvKGUpLFwidmVyc2lvbl9cIiwyKSxjbyhpbyhlKSxcImNvbnNlbnRTY3JlZW5fXCIsMCksY28oaW8oZSksXCJwb2xpY3lWZXJzaW9uX1wiLDQpLGNvKGlvKGUpLFwiY29uc2VudExhbmd1YWdlX1wiLFwiRU5cIiksY28oaW8oZSksXCJjbXBJZF9cIiwwKSxjbyhpbyhlKSxcImNtcFZlcnNpb25fXCIsMCksY28oaW8oZSksXCJ2ZW5kb3JMaXN0VmVyc2lvbl9cIiwwKSxjbyhpbyhlKSxcIm51bUN1c3RvbVB1cnBvc2VzX1wiLDApLGNvKGlvKGUpLFwiZ3ZsX1wiLHZvaWQgMCksY28oaW8oZSksXCJjcmVhdGVkXCIsdm9pZCAwKSxjbyhpbyhlKSxcImxhc3RVcGRhdGVkXCIsdm9pZCAwKSxjbyhpbyhlKSxcInNwZWNpYWxGZWF0dXJlT3B0aW5zXCIsbmV3IFByKSxjbyhpbyhlKSxcInB1cnBvc2VDb25zZW50c1wiLG5ldyBQciksY28oaW8oZSksXCJwdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0c1wiLG5ldyBQciksY28oaW8oZSksXCJwdWJsaXNoZXJDb25zZW50c1wiLG5ldyBQciksY28oaW8oZSksXCJwdWJsaXNoZXJMZWdpdGltYXRlSW50ZXJlc3RzXCIsbmV3IFByKSxjbyhpbyhlKSxcInB1Ymxpc2hlckN1c3RvbUNvbnNlbnRzXCIsbmV3IFByKSxjbyhpbyhlKSxcInB1Ymxpc2hlckN1c3RvbUxlZ2l0aW1hdGVJbnRlcmVzdHNcIixuZXcgUHIpLGNvKGlvKGUpLFwiY3VzdG9tUHVycG9zZXNcIix2b2lkIDApLGNvKGlvKGUpLFwidmVuZG9yQ29uc2VudHNcIixuZXcgUHIpLGNvKGlvKGUpLFwidmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0c1wiLG5ldyBQciksY28oaW8oZSksXCJ2ZW5kb3JzRGlzY2xvc2VkXCIsbmV3IFByKSxjbyhpbyhlKSxcInZlbmRvcnNBbGxvd2VkXCIsbmV3IFByKSxjbyhpbyhlKSxcInB1Ymxpc2hlclJlc3RyaWN0aW9uc1wiLG5ldyBXZSksdCYmKGUuZ3ZsPXQpLGUudXBkYXRlZCgpLGV9cmV0dXJuIGU9bywocj1be2tleTpcImd2bFwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmd2bF99LHNldDpmdW5jdGlvbih0KXt0by5pc0luc3RhbmNlT2YodCl8fCh0PW5ldyB0byh0KSksdGhpcy5ndmxfPXQsdGhpcy5wdWJsaXNoZXJSZXN0cmljdGlvbnMuZ3ZsPXR9fSx7a2V5OlwiY21wSWRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbXBJZF99LHNldDpmdW5jdGlvbih0KXtpZih0PU51bWJlcih0KSwhKE51bWJlci5pc0ludGVnZXIodCkmJnQ+MSkpdGhyb3cgbmV3IFNlKFwiY21wSWRcIix0KTt0aGlzLmNtcElkXz10fX0se2tleTpcImNtcFZlcnNpb25cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbXBWZXJzaW9uX30sc2V0OmZ1bmN0aW9uKHQpe2lmKHQ9TnVtYmVyKHQpLCEoTnVtYmVyLmlzSW50ZWdlcih0KSYmdD4tMSkpdGhyb3cgbmV3IFNlKFwiY21wVmVyc2lvblwiLHQpO3RoaXMuY21wVmVyc2lvbl89dH19LHtrZXk6XCJjb25zZW50U2NyZWVuXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uc2VudFNjcmVlbl99LHNldDpmdW5jdGlvbih0KXtpZih0PU51bWJlcih0KSwhKE51bWJlci5pc0ludGVnZXIodCkmJnQ+LTEpKXRocm93IG5ldyBTZShcImNvbnNlbnRTY3JlZW5cIix0KTt0aGlzLmNvbnNlbnRTY3JlZW5fPXR9fSx7a2V5OlwiY29uc2VudExhbmd1YWdlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uc2VudExhbmd1YWdlX30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuY29uc2VudExhbmd1YWdlXz10fX0se2tleTpcInB1Ymxpc2hlckNvdW50cnlDb2RlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVibGlzaGVyQ291bnRyeUNvZGVffSxzZXQ6ZnVuY3Rpb24odCl7aWYoIS9eKFtBLXpdKXsyfSQvLnRlc3QodCkpdGhyb3cgbmV3IFNlKFwicHVibGlzaGVyQ291bnRyeUNvZGVcIix0KTt0aGlzLnB1Ymxpc2hlckNvdW50cnlDb2RlXz10LnRvVXBwZXJDYXNlKCl9fSx7a2V5OlwidmVuZG9yTGlzdFZlcnNpb25cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ndmw/dGhpcy5ndmwudmVuZG9yTGlzdFZlcnNpb246dGhpcy52ZW5kb3JMaXN0VmVyc2lvbl99LHNldDpmdW5jdGlvbih0KXtpZigodD0wfE51bWJlcih0KSk8MCl0aHJvdyBuZXcgU2UoXCJ2ZW5kb3JMaXN0VmVyc2lvblwiLHQpO3RoaXMudmVuZG9yTGlzdFZlcnNpb25fPXR9fSx7a2V5OlwicG9saWN5VmVyc2lvblwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmd2bD90aGlzLmd2bC50Y2ZQb2xpY3lWZXJzaW9uOnRoaXMucG9saWN5VmVyc2lvbl99LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLnBvbGljeVZlcnNpb25fPXBhcnNlSW50KHQsMTApLHRoaXMucG9saWN5VmVyc2lvbl88MCl0aHJvdyBuZXcgU2UoXCJwb2xpY3lWZXJzaW9uXCIsdCl9fSx7a2V5OlwidmVyc2lvblwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZlcnNpb25ffSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy52ZXJzaW9uXz1wYXJzZUludCh0LDEwKX19LHtrZXk6XCJpc1NlcnZpY2VTcGVjaWZpY1wiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzU2VydmljZVNwZWNpZmljX30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaXNTZXJ2aWNlU3BlY2lmaWNfPXR9fSx7a2V5OlwidXNlTm9uU3RhbmRhcmRUZXh0c1wiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVzZU5vblN0YW5kYXJkVGV4dHNffSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy51c2VOb25TdGFuZGFyZFRleHRzXz10fX0se2tleTpcInN1cHBvcnRPT0JcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdXBwb3J0T09CX30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuc3VwcG9ydE9PQl89dH19LHtrZXk6XCJwdXJwb3NlT25lVHJlYXRtZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVycG9zZU9uZVRyZWF0bWVudF99LHNldDpmdW5jdGlvbih0KXt0aGlzLnB1cnBvc2VPbmVUcmVhdG1lbnRfPXR9fSx7a2V5Olwic2V0QWxsVmVuZG9yQ29uc2VudHNcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmVuZG9yQ29uc2VudHMuc2V0KHRoaXMuZ3ZsLnZlbmRvcnMpfX0se2tleTpcInVuc2V0QWxsVmVuZG9yQ29uc2VudHNcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmVuZG9yQ29uc2VudHMuZW1wdHkoKX19LHtrZXk6XCJzZXRBbGxWZW5kb3JzRGlzY2xvc2VkXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZlbmRvcnNEaXNjbG9zZWQuc2V0KHRoaXMuZ3ZsLnZlbmRvcnMpfX0se2tleTpcInVuc2V0QWxsVmVuZG9yc0Rpc2Nsb3NlZFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52ZW5kb3JzRGlzY2xvc2VkLmVtcHR5KCl9fSx7a2V5Olwic2V0QWxsVmVuZG9yc0FsbG93ZWRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmVuZG9yc0FsbG93ZWQuc2V0KHRoaXMuZ3ZsLnZlbmRvcnMpfX0se2tleTpcInVuc2V0QWxsVmVuZG9yc0FsbG93ZWRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmVuZG9yc0FsbG93ZWQuZW1wdHkoKX19LHtrZXk6XCJzZXRBbGxWZW5kb3JMZWdpdGltYXRlSW50ZXJlc3RzXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHMuc2V0KHRoaXMuZ3ZsLnZlbmRvcnMpfX0se2tleTpcInVuc2V0QWxsVmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0c1wiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52ZW5kb3JMZWdpdGltYXRlSW50ZXJlc3RzLmVtcHR5KCl9fSx7a2V5Olwic2V0QWxsUHVycG9zZUNvbnNlbnRzXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnB1cnBvc2VDb25zZW50cy5zZXQodGhpcy5ndmwucHVycG9zZXMpfX0se2tleTpcInVuc2V0QWxsUHVycG9zZUNvbnNlbnRzXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnB1cnBvc2VDb25zZW50cy5lbXB0eSgpfX0se2tleTpcInNldEFsbFB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzLnNldCh0aGlzLmd2bC5wdXJwb3Nlcyl9fSx7a2V5OlwidW5zZXRBbGxQdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0c1wiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cy5lbXB0eSgpfX0se2tleTpcInNldEFsbFNwZWNpYWxGZWF0dXJlT3B0aW5zXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNwZWNpYWxGZWF0dXJlT3B0aW5zLnNldCh0aGlzLmd2bC5zcGVjaWFsRmVhdHVyZXMpfX0se2tleTpcInVuc2V0QWxsU3BlY2lhbEZlYXR1cmVPcHRpbnNcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc3BlY2lhbEZlYXR1cmVPcHRpbnMuZW1wdHkoKX19LHtrZXk6XCJzZXRBbGxcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2V0QWxsVmVuZG9yQ29uc2VudHMoKSx0aGlzLnNldEFsbFB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzKCksdGhpcy5zZXRBbGxTcGVjaWFsRmVhdHVyZU9wdGlucygpLHRoaXMuc2V0QWxsUHVycG9zZUNvbnNlbnRzKCksdGhpcy5zZXRBbGxWZW5kb3JMZWdpdGltYXRlSW50ZXJlc3RzKCl9fSx7a2V5OlwidW5zZXRBbGxcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudW5zZXRBbGxWZW5kb3JDb25zZW50cygpLHRoaXMudW5zZXRBbGxQdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cygpLHRoaXMudW5zZXRBbGxTcGVjaWFsRmVhdHVyZU9wdGlucygpLHRoaXMudW5zZXRBbGxQdXJwb3NlQ29uc2VudHMoKSx0aGlzLnVuc2V0QWxsVmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cygpfX0se2tleTpcIm51bUN1c3RvbVB1cnBvc2VzXCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5udW1DdXN0b21QdXJwb3Nlc187aWYoXCJvYmplY3RcIj09PWVvKHRoaXMuY3VzdG9tUHVycG9zZXMpKXt2YXIgZT1PYmplY3Qua2V5cyh0aGlzLmN1c3RvbVB1cnBvc2VzKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBOdW1iZXIodCktTnVtYmVyKGUpfSkpO3Q9cGFyc2VJbnQoZS5wb3AoKSwxMCl9cmV0dXJuIHR9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLm51bUN1c3RvbVB1cnBvc2VzXz1wYXJzZUludCh0LDEwKSx0aGlzLm51bUN1c3RvbVB1cnBvc2VzXzwwKXRocm93IG5ldyBTZShcIm51bUN1c3RvbVB1cnBvc2VzXCIsdCl9fSx7a2V5OlwidXBkYXRlZFwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IERhdGUsZT1uZXcgRGF0ZShEYXRlLlVUQyh0LmdldFVUQ0Z1bGxZZWFyKCksdC5nZXRVVENNb250aCgpLHQuZ2V0VVRDRGF0ZSgpKSk7dGhpcy5jcmVhdGVkPWUsdGhpcy5sYXN0VXBkYXRlZD1lfX1dKSYmcm8oZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxvfSh5ZSk7ZnVuY3Rpb24gbG8odCl7cmV0dXJuIGxvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LGxvKHQpfWZ1bmN0aW9uIHBvKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHZvKG4ua2V5KSxuKX19ZnVuY3Rpb24gdm8odCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1sbyh0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPWxvKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1sbyhlKT9lOmUrXCJcIn1jbyhmbyxcImNvbnNlbnRMYW5ndWFnZXNcIix0by5jb25zZW50TGFuZ3VhZ2VzKTt2YXIgeW89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KX12YXIgZSxyO3JldHVybiBlPXQscj1be2tleTpcImVuY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1cIlwiO3JldHVybiB0PUNuLnByb2Nlc3ModCxlKSwocj1BcnJheS5pc0FycmF5KG51bGw9PWU/dm9pZCAwOmUuc2VnbWVudHMpP2Uuc2VnbWVudHM6bmV3IEVuKHQsZSlbXCJcIit0LnZlcnNpb25dKS5mb3JFYWNoKChmdW5jdGlvbihlLG8pe3ZhciBpPVwiXCI7bzxyLmxlbmd0aC0xJiYoaT1cIi5cIiksbis9VG4uZW5jb2RlKHQsZSkraX0pKSxufX0se2tleTpcImRlY29kZVwiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zcGxpdChcIi5cIiksbj1yLmxlbmd0aDtlfHwoZT1uZXcgZm8pO2Zvcih2YXIgbz0wO288bjtvKyspe3ZhciBpPXJbb10sYT1ZdC5kZWNvZGUoaS5jaGFyQXQoMCkpLnN1YnN0cigwLGtyLnNlZ21lbnRUeXBlKSx1PUplLklEX1RPX0tFWVtGci5kZWNvZGUoYSxrci5zZWdtZW50VHlwZSkudG9TdHJpbmcoKV07VG4uZGVjb2RlKGksZSx1KX1yZXR1cm4gZX19XSxudWxsJiZwbyhlLnByb3RvdHlwZSxudWxsKSxyJiZwbyhlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH0oKTtmdW5jdGlvbiBobyh0KXtyZXR1cm4gaG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0saG8odCl9ZnVuY3Rpb24gYm8odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZ28obi5rZXkpLG4pfX1mdW5jdGlvbiBnbyh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPWhvKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9aG8obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PWhvKGUpP2U6ZStcIlwifWZ1bmN0aW9uIG1vKHQsZSl7cmV0dXJuIG1vPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sbW8odCxlKX1mdW5jdGlvbiB3byh0KXt2YXIgZT1TbygpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49T28odCk7aWYoZSl7dmFyIG89T28odGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKFwib2JqZWN0XCI9PT1obyhlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiB0fSh0KX0odGhpcyxyKX19ZnVuY3Rpb24gU28oKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybihTbz1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gT28odCl7cmV0dXJuIE9vPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxPbyh0KX12YXIgRW89ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGUmJm1vKHQsZSl9KG8sdCk7dmFyIGUscixuPXdvKG8pO2Z1bmN0aW9uIG8oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLG8pLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBlPW8sKHI9W3trZXk6XCJyZXNwb25kXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMscj1ULnRjTW9kZWwsbj1yLnZlbmRvckxpc3RWZXJzaW9uO3ZvaWQgMD09PXRoaXMucGFyYW0mJih0aGlzLnBhcmFtPW4pLCh0PXRoaXMucGFyYW09PT1uJiZyLmd2bD9yLmd2bDpuZXcgdG8odGhpcy5wYXJhbSkpLnJlYWR5UHJvbWlzZS50aGVuKChmdW5jdGlvbigpe2UuaW52b2tlQ2FsbGJhY2sodC5nZXRKc29uKCkpfSkpfX1dKSYmYm8oZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxvfShzKTtmdW5jdGlvbiB4byh0KXtyZXR1cm4geG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0seG8odCl9ZnVuY3Rpb24gam8odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsUG8obi5rZXkpLG4pfX1mdW5jdGlvbiBQbyh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPXhvKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9eG8obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PXhvKGUpP2U6ZStcIlwifWZ1bmN0aW9uIFRvKCl7cmV0dXJuIFRvPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWZ1bmN0aW9uKHQsZSl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm51bGwhPT0odD1Dbyh0KSk7KTtyZXR1cm4gdH0odCxlKTtpZihuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSk7cmV0dXJuIG8uZ2V0P28uZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP3Q6cik6by52YWx1ZX19LFRvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBBbyh0LGUpe3JldHVybiBBbz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LEFvKHQsZSl9ZnVuY3Rpb24gSW8odCl7dmFyIGU9X28oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcixuPUNvKHQpO2lmKGUpe3ZhciBvPUNvKHRoaXMpLmNvbnN0cnVjdG9yO3I9UmVmbGVjdC5jb25zdHJ1Y3Qobixhcmd1bWVudHMsbyl9ZWxzZSByPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGUmJihcIm9iamVjdFwiPT09eG8oZSl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gdH0odCl9KHRoaXMscil9fWZ1bmN0aW9uIF9vKCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4oX289ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIENvKHQpe3JldHVybiBDbz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sQ28odCl9dmFyIGtvPWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlJiZBbyh0LGUpfShvLHQpO3ZhciBlLHIsbj1JbyhvKTtmdW5jdGlvbiBvKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxvKSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZT1vLChyPVt7a2V5OlwicmVzcG9uZFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5saXN0ZW5lcklkPVQuZXZlbnRRdWV1ZS5hZGQoe2NhbGxiYWNrOnRoaXMuY2FsbGJhY2sscGFyYW06dGhpcy5wYXJhbSxuZXh0OnRoaXMubmV4dH0pLFRvKENvKG8ucHJvdG90eXBlKSxcInJlc3BvbmRcIix0aGlzKS5jYWxsKHRoaXMpfX1dKSYmam8oZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxvfShiKTtmdW5jdGlvbiBSbyh0KXtyZXR1cm4gUm89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sUm8odCl9ZnVuY3Rpb24gTG8odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsTW8obi5rZXkpLG4pfX1mdW5jdGlvbiBNbyh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPVJvKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9Um8obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PVJvKGUpP2U6ZStcIlwifWZ1bmN0aW9uIE5vKHQsZSl7cmV0dXJuIE5vPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sTm8odCxlKX1mdW5jdGlvbiBWbyh0KXt2YXIgZT1VbygpO3JldHVybiBmdW5jdGlvbigpe3ZhciByLG49RG8odCk7aWYoZSl7dmFyIG89RG8odGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKFwib2JqZWN0XCI9PT1SbyhlKXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiB0fSh0KX0odGhpcyxyKX19ZnVuY3Rpb24gVW8oKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybihVbz1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gRG8odCl7cmV0dXJuIERvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxEbyh0KX12YXIgRm8sQm8sR28sem8sSG8sV28scW89ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLGUmJk5vKHQsZSl9KG8sdCk7dmFyIGUscixuPVZvKG8pO2Z1bmN0aW9uIG8oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLG8pLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBlPW8sKHI9W3trZXk6XCJyZXNwb25kXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmludm9rZUNhbGxiYWNrKFQuZXZlbnRRdWV1ZS5yZW1vdmUodGhpcy5wYXJhbSkpfX1dKSYmTG8oZS5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxvfShzKTtmdW5jdGlvbiBLbyh0KXtyZXR1cm4gS289XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sS28odCl9ZnVuY3Rpb24gJG8odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsSm8obi5rZXkpLG4pfX1mdW5jdGlvbiBZbyh0LGUscil7cmV0dXJuIGUmJiRvKHQucHJvdG90eXBlLGUpLHImJiRvKHQsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIFFvKHQsZSxyKXtyZXR1cm4oZT1KbyhlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiBKbyh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPUtvKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9S28obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PUtvKGUpP2U6ZStcIlwifUZvPXQuUElORyxCbz10LkdFVF9UQ19EQVRBLEdvPXQuR0VUX0lOX0FQUF9UQ19EQVRBLHpvPXQuR0VUX1ZFTkRPUl9MSVNULEhvPXQuQUREX0VWRU5UX0xJU1RFTkVSLFdvPXQuUkVNT1ZFX0VWRU5UX0xJU1RFTkVSO3ZhciBYbz1ZbygoZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCl9KSk7ZnVuY3Rpb24gWm8odCl7cmV0dXJuIFpvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIHR9LFpvKHQpfWZ1bmN0aW9uIHRpKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGVpKG4ua2V5KSxuKX19ZnVuY3Rpb24gZWkodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZihcIm9iamVjdFwiIT1abyh0KXx8IXQpcmV0dXJuIHQ7dmFyIHI9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbCh0LFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPVpvKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm5cInN5bWJvbFwiPT1abyhlKT9lOmUrXCJcIn1RbyhYbyxGbyx4dCksUW8oWG8sQm8sYiksUW8oWG8sR28sa3QpLFFvKFhvLHpvLEVvKSxRbyhYbyxIbyxrbyksUW8oWG8sV28scW8pO3ZhciByaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpfXZhciBlLHI7cmV0dXJuIGU9dCxyPVt7a2V5OlwiaGFzXCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PU51bWJlcih0KSksdGhpcy5zZXRfLmhhcyh0KX19XSxudWxsJiZ0aShlLnByb3RvdHlwZSxudWxsKSxyJiZ0aShlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH0oKTtmdW5jdGlvbiBuaSh0KXtyZXR1cm4gbmk9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgdH0sbmkodCl9ZnVuY3Rpb24gb2kodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheShlKTtyPGU7cisrKW5bcl09dFtyXTtyZXR1cm4gbn1mdW5jdGlvbiBpaSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCx1aShuLmtleSksbil9fWZ1bmN0aW9uIGFpKHQsZSxyKXtyZXR1cm4oZT11aShlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiB1aSh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPW5pKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9bmkobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PW5pKGUpP2U6ZStcIlwifSFmdW5jdGlvbih0LGUscil7KGU9ZWkoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yfShyaSxcInNldF9cIixuZXcgU2V0KFswLDIsdm9pZCAwLG51bGxdKSk7dmFyIGNpPVwiX190Y2ZhcGlcIixzaT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUocil7aWYoZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLGUpLGFpKHRoaXMsXCJjYWxsUXVldWVcIix2b2lkIDApLGFpKHRoaXMsXCJjdXN0b21Db21tYW5kc1wiLHZvaWQgMCkscil7dmFyIG49dC5BRERfRVZFTlRfTElTVEVORVI7aWYobnVsbCE9ciYmcltuXSl0aHJvdyBuZXcgRXJyb3IoXCJCdWlsdC1JbiBDdXN0b20gQ29tbW1hbmQgZm9yIFwiLmNvbmNhdChuLFwiIG5vdCBhbGxvd2VkOiBVc2UgXCIpLmNvbmNhdCh0LkdFVF9UQ19EQVRBLFwiIGluc3RlYWRcIikpO2lmKG49dC5SRU1PVkVfRVZFTlRfTElTVEVORVIsbnVsbCE9ciYmcltuXSl0aHJvdyBuZXcgRXJyb3IoXCJCdWlsdC1JbiBDdXN0b20gQ29tbW1hbmQgZm9yIFwiLmNvbmNhdChuLFwiIG5vdCBhbGxvd2VkXCIpKTtudWxsIT1yJiZyW3QuR0VUX1RDX0RBVEFdJiYoclt0LkFERF9FVkVOVF9MSVNURU5FUl09clt0LkdFVF9UQ19EQVRBXSxyW3QuUkVNT1ZFX0VWRU5UX0xJU1RFTkVSXT1yW3QuR0VUX1RDX0RBVEFdKSx0aGlzLmN1c3RvbUNvbW1hbmRzPXJ9dHJ5e3RoaXMuY2FsbFF1ZXVlPXdpbmRvd1tjaV0oKXx8W119Y2F0Y2godCl7dGhpcy5jYWxsUXVldWU9W119ZmluYWxseXt3aW5kb3dbY2ldPXRoaXMuYXBpQ2FsbC5iaW5kKHRoaXMpLHRoaXMucHVyZ2VRdWV1ZWRDYWxscygpfX12YXIgcixuO3JldHVybiByPWUsbj1be2tleTpcImFwaUNhbGxcIix2YWx1ZTpmdW5jdGlvbihlLHIsbil7Zm9yKHZhciBvPWFyZ3VtZW50cy5sZW5ndGgsaT1uZXcgQXJyYXkobz4zP28tMzowKSxhPTM7YTxvO2ErKylpW2EtM109YXJndW1lbnRzW2FdO2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlKW4obnVsbCwhMSk7ZWxzZSBpZihyaS5oYXMocikpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBjYWxsYmFjayBmdW5jdGlvblwiKTtpZihULmRpc2FibGVkKW4obmV3IEIsITEpO2Vsc2UgaWYodGhpcy5pc0N1c3RvbUNvbW1hbmQoZSl8fHRoaXMuaXNCdWlsdEluQ29tbWFuZChlKSlpZih0aGlzLmlzQ3VzdG9tQ29tbWFuZChlKSYmIXRoaXMuaXNCdWlsdEluQ29tbWFuZChlKSl7dmFyIHU7KHU9dGhpcy5jdXN0b21Db21tYW5kcylbZV0uYXBwbHkodSxbbl0uY29uY2F0KGkpKX1lbHNlIGU9PT10LlBJTkc/dGhpcy5pc0N1c3RvbUNvbW1hbmQoZSk/bmV3IFhvW2VdKHRoaXMuY3VzdG9tQ29tbWFuZHNbZV0saVswXSxudWxsLG4pOm5ldyBYb1tlXShuLGlbMF0pOnZvaWQgMD09PVQudGNNb2RlbD90aGlzLmNhbGxRdWV1ZS5wdXNoKFtlLHIsbl0uY29uY2F0KGkpKTp0aGlzLmlzQ3VzdG9tQ29tbWFuZChlKSYmdGhpcy5pc0J1aWx0SW5Db21tYW5kKGUpP25ldyBYb1tlXSh0aGlzLmN1c3RvbUNvbW1hbmRzW2VdLGlbMF0sbnVsbCxuKTpuZXcgWG9bZV0obixpWzBdKTtlbHNlIG4obnVsbCwhMSl9ZWxzZSBuKG51bGwsITEpfX0se2tleTpcInB1cmdlUXVldWVkQ2FsbHNcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY2FsbFF1ZXVlO3RoaXMuY2FsbFF1ZXVlPVtdLHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGUscjsoZT13aW5kb3cpW2NpXS5hcHBseShlLGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIG9pKHQpfShyPXQpfHxmdW5jdGlvbih0KXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKHQpfShyKXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZihcInN0cmluZ1wiPT10eXBlb2YgdClyZXR1cm4gb2kodCxlKTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PXImJnQuY29uc3RydWN0b3ImJihyPXQuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXJ8fFwiU2V0XCI9PT1yP0FycmF5LmZyb20odCk6XCJBcmd1bWVudHNcIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP29pKHQsZSk6dm9pZCAwfX0ocil8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpfSkpfX0se2tleTpcImlzQ3VzdG9tQ29tbWFuZFwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmN1c3RvbUNvbW1hbmRzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLmN1c3RvbUNvbW1hbmRzW3RdfX0se2tleTpcImlzQnVpbHRJbkNvbW1hbmRcIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09WG9bdF19fV0sbiYmaWkoci5wcm90b3R5cGUsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlfSgpO2Z1bmN0aW9uIGZpKHQpe3JldHVybiBmaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxmaSh0KX1mdW5jdGlvbiBsaSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCx2aShuLmtleSksbil9fWZ1bmN0aW9uIHBpKHQsZSxyKXtyZXR1cm4oZT12aShlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH1mdW5jdGlvbiB2aSh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCIhPWZpKHQpfHwhdClyZXR1cm4gdDt2YXIgcj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKHQsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9ZmkobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVyblwic3ltYm9sXCI9PWZpKGUpP2U6ZStcIlwifXZhciB5aT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLG89YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDA7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KSxwaSh0aGlzLFwiY2FsbFJlc3BvbmRlclwiLHZvaWQgMCkscGkodGhpcyxcImlzU2VydmljZVNwZWNpZmljXCIsdm9pZCAwKSxwaSh0aGlzLFwibnVtVXBkYXRlc1wiLDApLHRoaXMudGhyb3dJZkludmFsaWRJbnQoZSxcImNtcElkXCIsMiksdGhpcy50aHJvd0lmSW52YWxpZEludChyLFwiY21wVmVyc2lvblwiLDApLFQuY21wSWQ9ZSxULmNtcFZlcnNpb249cixULnRjZlBvbGljeVZlcnNpb249NCx0aGlzLmlzU2VydmljZVNwZWNpZmljPSEhbix0aGlzLmNhbGxSZXNwb25kZXI9bmV3IHNpKG8pfXZhciByLGk7cmV0dXJuIHI9dCxpPVt7a2V5OlwidGhyb3dJZkludmFsaWRJbnRcIix2YWx1ZTpmdW5jdGlvbih0LGUscil7aWYoIShcIm51bWJlclwiPT10eXBlb2YgdCYmTnVtYmVyLmlzSW50ZWdlcih0KSYmdD49cikpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBcIi5jb25jYXQoZSxcIjogXCIpLmNvbmNhdCh0KSl9fSx7a2V5OlwidXBkYXRlXCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtpZihULmRpc2FibGVkKXRocm93IG5ldyBFcnJvcihcIkNtcEFwaSBEaXNhYmxlZFwiKTtULmNtcFN0YXR1cz1lLkxPQURFRCxyPyhULmRpc3BsYXlTdGF0dXM9bi5WSVNJQkxFLFQuZXZlbnRTdGF0dXM9by5DTVBfVUlfU0hPV04pOnZvaWQgMD09PVQudGNNb2RlbD8oVC5kaXNwbGF5U3RhdHVzPW4uRElTQUJMRUQsVC5ldmVudFN0YXR1cz1vLlRDX0xPQURFRCk6KFQuZGlzcGxheVN0YXR1cz1uLkhJRERFTixULmV2ZW50U3RhdHVzPW8uVVNFUl9BQ1RJT05fQ09NUExFVEUpLFQuZ2RwckFwcGxpZXM9bnVsbCE9PXQsVC5nZHByQXBwbGllcz8oXCJcIj09PXQ/KFQudGNNb2RlbD1uZXcgZm8sVC50Y01vZGVsLmNtcElkPVQuY21wSWQsVC50Y01vZGVsLmNtcFZlcnNpb249VC5jbXBWZXJzaW9uKTpULnRjTW9kZWw9eW8uZGVjb2RlKHQpLFQudGNNb2RlbC5pc1NlcnZpY2VTcGVjaWZpYz10aGlzLmlzU2VydmljZVNwZWNpZmljLFQudGNmUG9saWN5VmVyc2lvbj1OdW1iZXIoVC50Y01vZGVsLnBvbGljeVZlcnNpb24pLFQudGNTdHJpbmc9dCk6VC50Y01vZGVsPW51bGwsMD09PXRoaXMubnVtVXBkYXRlcz90aGlzLmNhbGxSZXNwb25kZXIucHVyZ2VRdWV1ZWRDYWxscygpOlQuZXZlbnRRdWV1ZS5leGVjKCksdGhpcy5udW1VcGRhdGVzKyt9fSx7a2V5OlwiZGlzYWJsZVwiLHZhbHVlOmZ1bmN0aW9uKCl7VC5kaXNhYmxlZD0hMCxULmNtcFN0YXR1cz1lLkVSUk9SfX1dLGkmJmxpKHIucHJvdG90eXBlLGkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdH0oKTtmdW5jdGlvbiBoaSh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgcj0wLG49bmV3IEFycmF5KGUpO3I8ZTtyKyspbltyXT10W3JdO3JldHVybiBufWZ1bmN0aW9uIGRpKHQsZSl7KC90cnVzdGUtc3ZjfHRydXN0ZS1sYWJzfHRydXN0YXJjLXN2Yy8udGVzdCh3aW5kb3cubG9jYXRpb24pfHx0cnVzdGUmJnRydXN0ZS51dGlsJiZ0cnVzdGUudXRpbC5kZWJ1ZykmJmNvbnNvbGUubG9nKFwiW1wiK3QrXCJdIFwiK2UpfWZ1bmN0aW9uIGJpKHQsZSxyKXt2YXIgbj10cnVzdGUmJnRydXN0ZS5ldSYmdHJ1c3RlLmV1LnBvcGZyYW1lO2lmKHZvaWQgMCE9PXJ8fG4pe3ZhciBvPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocnx8biksaT10cnVzdGUudXRpbCYmdHJ1c3RlLnV0aWwuZ2V0SlNPTnx8dHJ1c3RlLmNtYSYmdHJ1c3RlLmNtYS5jaGVhcEpTT058fHdpbmRvdy5KU09OLnN0cmluZ2lmeSxhPXtzb3VyY2U6XCJpYWJfanNcIixtZXNzYWdlOmUsZGF0YTp0fTtkaShcIklORk9cIixcIlBvc3QgTWVzc2FnZSBzZW50OiBcIitpKGEpKSxvJiZvLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UmJm8uY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShpKGEpLFwiKlwiKX19ZnVuY3Rpb24gZ2kodCxlKXt2YXIgcj10cnVzdGUuZXUuYmluZE1hcC5jb29raWVFeHBpcnl8fDM5NSxuPVwiOyBleHBpcmVzPVwiLG89bmV3IERhdGU7by5zZXREYXRlKG8uZ2V0RGF0ZSgpK3IpLG4rPW8udG9VVENTdHJpbmcoKTt2YXIgaT1zZWxmLmxvY2F0aW9uLmhvc3RuYW1lLGE9ISFpLm1hdGNoKC9eXFxkezAsM31cXC5cXGR7MCwzfVxcLlxcZHswLDN9XFwuXFxkezAsM30kLyl8fFwibG9jYWxob3N0XCI9PWksdT1hP2k6aS5yZXBsYWNlKC9ed3d3XFwuLyxcIlwiKSxjPVwiaHR0cHM6XCI9PXNlbGYubG9jYXRpb24ucHJvdG9jb2w/XCIgU2VjdXJlO1wiOlwiXCIscz1jP1wiTm9uZTtcIjpcIkxheDtcIixmPShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IFJlZ0V4cChcIlsoXWlQLis7IENQVSAuKk9TIChcXFxcZCspW19cXFxcZF0qLipbKV0gQXBwbGVXZWJLaXRbL11cIixcImlnXCIpLmV4ZWMoZSk7cmV0dXJuISghcnx8MiE9PXIubGVuZ3RoKSYmK3JbMV09PT10fSgxMix0KXx8ZnVuY3Rpb24odCxlLHIpe3ZhciBuPW5ldyBSZWdFeHAoXCJbKF1NYWNpbnRvc2g7LipNYWMgT1MgWCAoXFxcXGQrKV8oXFxcXGQrKVtfXFxcXGRdKi4qWyldIEFwcGxlV2ViS2l0Wy9dXCIsXCJpZ1wiKS5leGVjKHIpO2lmKG4mJjM9PT1uLmxlbmd0aCl7dmFyIG89K25bMV0saT0rblsyXTtyZXR1cm4gbz09PXQmJmk9PT1lfXJldHVybiExfSgxMCwxNCx0KSYmKGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBSZWdFeHAoXCJWZXJzaW9uWy9dLiogU2FmYXJpWy9dXCIsXCJpZ1wiKS5leGVjKHQpO3JldHVybiEoIWV8fCFlLmxlbmd0aHx8d2kodCkpfSh0KXx8ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFJlZ0V4cChcIl5Nb3ppbGxhWy9dWy5cXFxcZF0rIFsoXU1hY2ludG9zaDsuKk1hYyBPUyBYIFtfXFxcXGRdK1spXSBBcHBsZVdlYktpdFsvXVsuXFxcXGRdKyBbKF1LSFRNTCwgbGlrZSBHZWNrb1spXSRcIixcImlnXCIpLmV4ZWModCk7cmV0dXJuISghZXx8IWUubGVuZ3RoKX0odCkpfSh0KXx8ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBSZWdFeHAoXCJVQ0Jyb3dzZXJbL11cIixcImlnXCIpLmV4ZWModCk7cmV0dXJuISghZXx8IWUubGVuZ3RoKX0odCk/IWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvPW5ldyBSZWdFeHAoXCJVQ0Jyb3dzZXJbL10oXFxcXGQrKVsuXShcXFxcZCspWy5dKFxcXFxkKylbLlxcXFxkXSogXCIsXCJpZ1wiKS5leGVjKG4pO2lmKG8mJjQ9PT1vLmxlbmd0aCl7dmFyIGk9K29bMV0sYT0rb1syXSx1PStvWzNdO3JldHVybiBpIT10P2k+dDphIT1lP2E+ZTp1Pj1yfXJldHVybiExfSgxMiwxMywyLHQpOndpKHQpJiZTaSg1MSx0KSYmIVNpKDY3LHQpfSh0KX0obmF2aWdhdG9yLnVzZXJBZ2VudCk/XCJcIjpcIiBTYW1lU2l0ZT1cIitzKStjLGw9dHJ1c3RlLmV1LmJpbmRNYXB8fHt9O2lmKHZvaWQgMCE9PXRydXN0ZS5ldS5ub3RpY2VMUC5wY29va2llKXtpZihkb2N1bWVudC5jb29raWU9dCtcIj07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDsgcGF0aD0vO2RvbWFpbj1cIisoYT9cIlwiOlwiLlwiKSt1LnJlcGxhY2UoL15cXC4vLFwiXCIpK1wiO1wiK2YsIWwudG9wTGV2ZWxEb21haW4pe2Zvcih2YXIgcD0wLHY9dSx5PXYuc3BsaXQoXCIuXCIpLGg9W10sZD1cIl9nZFwiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO3A8eS5sZW5ndGgtMSYmLTE9PWRvY3VtZW50LmNvb2tpZS5pbmRleE9mKGQrXCI9XCIrZCk7KXY9eS5zbGljZSgtMS0rK3ApLmpvaW4oXCIuXCIpLGRvY3VtZW50LmNvb2tpZT1kK1wiPVwiK2QrXCI7ZG9tYWluPVwiK3YrXCI7XCIrZixoLnB1c2goZCk7bC50b3BMZXZlbERvbWFpbj12O2Zvcih2YXIgYj0wO2I8aC5sZW5ndGg7YisrKWRvY3VtZW50LmNvb2tpZT1oW2JdK1wiPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj1cIit2K1wiO1wiO2RvY3VtZW50LmNvb2tpZT1kK1wiPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj1cIit2K1wiO1wiK2Z9dT1sLnRvcExldmVsRG9tYWlufXNlbGYuZG9jdW1lbnQuY29va2llPXQrXCI9XCIrZStuK1wiOyBwYXRoPS87ZG9tYWluPVwiKyhhP1wiXCI6XCIuXCIpK3UucmVwbGFjZSgvXlxcLi8sXCJcIikrXCI7XCIrZn1mdW5jdGlvbiBtaSh0KXt2YXIgZT1udWxsO3RyeXt2YXIgcj1uZXcgUmVnRXhwKFwiXFxcXHMqXCIrdC5yZXBsYWNlKFwiLlwiLFwiXFxcXC5cIikrXCJcXFxccyo9XFxcXHMqKFteO10qKVwiKS5leGVjKHNlbGYuZG9jdW1lbnQuY29va2llKTtyJiZyLmxlbmd0aD4xJiYoZT1yWzFdKX1jYXRjaCh0KXtkaShcIldBUk5cIix0Lm1lc3NhZ2UrdC5zdGFjayl9cmV0dXJuIGV9ZnVuY3Rpb24gd2kodCl7dmFyIGU9bmV3IFJlZ0V4cChcIkNocm9tKGV8aXVtKVwiLFwiaWdcIikuZXhlYyh0KTtyZXR1cm4hKCFlfHwhZS5sZW5ndGgpfWZ1bmN0aW9uIFNpKHQsZSl7dmFyIHI9bmV3IFJlZ0V4cChcIkNocm9tW14gL10rWy9dKFxcXFxkKylbLlxcXFxkXSogXCIsXCJpZ1wiKS5leGVjKGUpO3JldHVybiEoIXJ8fDIhPT1yLmxlbmd0aCkmJityWzFdPj10fWZ1bmN0aW9uIE9pKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciByPTAsbj1uZXcgQXJyYXkoZSk7cjxlO3IrKyluW3JdPXRbcl07cmV0dXJuIG59IWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRydXN0ZSYmdHJ1c3RlJiZ0cnVzdGUuZXUmJnRydXN0ZS5ldS5iaW5kTWFwKXt2YXIgdD1cImV1Y29uc2VudC12MlwiLGU9dHJ1c3RlLmV1LmJpbmRNYXAubGFuZ3VhZ2Uscj10cnVzdGUuZXUuYmluZE1hcC5kb21haW4sbj10cnVzdGUuZXUuYmluZE1hcC5pY29uQmFzZVVybCxvPXRydXN0ZS5ldS5iaW5kTWFwLmZlYXQuaWFiR2RwckFwcGxpZXMsaT10cnVzdGUuZXUuYmluZE1hcC5mZWF0LmVuYWJsZUFDU3RyaW5nLGE9MT09dHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5lbmFibGVJYWIyXzIsdT1cImlhYi92Mj9kb21haW49XCIuY29uY2F0KHIsXCImbG9jYWxlPVwiKS5jb25jYXQoZSxcIiZpYWIyMj1cIikuY29uY2F0KGEpLGM9bz9cIlwiOm51bGwscz1vJiZ0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmVuYWJsZVRjZk9wdG91dCxmPW8mJnRydXN0ZS5ldS5iaW5kTWFwLmZlYXQuZW5hYmxlVGNmVmVuZG9yTGVnSW50T3B0aW4sbD1uZXcgU2V0LHA9bmV3IFNldChbMiw3LDgsOSwxMCwxMV0pLHY9ISghdHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5nY218fCEodHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5nY20uYWRzfHx0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmdjbS5hbmFseXRpY3M+LTF8fHRydXN0ZS5ldS5iaW5kTWFwLmZlYXQuZ2NtLmFkUGVyc29uYWxpemF0aW9uPi0xfHx0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmdjbS5hZFVzZXJEYXRhPi0xfHx0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmdjbS5mdW5jdGlvbmFsaXR5Pi0xfHx0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmdjbS5wZXJzb25hbGl6YXRpb24+LTF8fHRydXN0ZS5ldS5iaW5kTWFwLmZlYXQuZ2NtLnNlY3VyaXR5Pi0xKSkseT17Y29va2llTG9hZGVkOiExfSxoPW5ldyB5aSg0NywyLCEwLHtnZXRUQ0RhdGE6ZnVuY3Rpb24odCxlLHIpe2lmKFwiYm9vbGVhblwiIT10eXBlb2YgZSl7aWYodHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5lbmFibGVBQ1N0cmluZyl7dmFyIG49bWkoXCJhY3N0cmluZ1wiKTtlLmFkZHRsQ29uc2VudD1ufHx0cnVzdGUuZXUuYmluZE1hcC5hZGR0bENvbnNlbnR8fFwiMn5+ZHZcIn1lLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZT12fXQoZSxyKX19KSxkPWZ1bmN0aW9uKHQpe3ZhciBlPXRydXN0ZS5ldS5iaW5kTWFwLmRvbWFpbitcIiBcIit0Lm5hbWUscj10LnN0YWNrO3RydXN0ZS51dGlsJiZ0cnVzdGUudXRpbC5lcnJvciYmdHJ1c3RlLnV0aWwuZXJyb3IoZSxyLHtwcm9kdWN0OlwiY21cIix0YWc6XCJ0Y2ZhcGlcIn0pfTt0by5iYXNlVXJsPW4sdG8ubGF0ZXN0RmlsZW5hbWU9dSx0by5sYW5ndWFnZUZpbGVuYW1lPXUsdG8udmVyc2lvbmVkRmlsZW5hbWU9dTt2YXIgYj1uZXcgdG87Yi5jaGFuZ2VMYW5ndWFnZShlKS50aGVuKChmdW5jdGlvbigpe2IucmVhZHlQcm9taXNlLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIHI9bmV3IGZvKGIpO3IuY21wSWQ9NDcsci5jbXBWZXJzaW9uPTIsci5pc1NlcnZpY2VTcGVjaWZpYz0hMDt2YXIgbj1taSh0KTtmdW5jdGlvbiBhKCl7ci5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cy5zZXRfPXB9ZnVuY3Rpb24gdShlKXt2YXIgcj15by5lbmNvZGUoZSk7ciYmKGgudXBkYXRlKHIsITEpLGdpKHQscikpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIHQmJnQubGVuZ3RoPjB9ZnVuY3Rpb24gZCh0LG4pe3IudXNlTm9uU3RhbmRhcmRTdGFja3M9dHx8ITEsci5jb25zZW50U2NyZWVuPW58fDEsci5jb25zZW50TGFuZ3VhZ2U9ZX1mdW5jdGlvbiBnKHQsZSl7X190Y2ZhcGkoXCJnZXRUQ0RhdGFcIiwyLChmdW5jdGlvbihyLG4pe24mJmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10cnVzdGUmJnRydXN0ZS5ldSYmdHJ1c3RlLmV1LmJpbmRNYXAsbz10cnVzdGUmJnRydXN0ZS5ldSYmdHJ1c3RlLmV1Lm5vdGljZUxQO2lmKG4mJm8mJm4ub3JpZ2luQmFzZVVybCYmKCFvLmRlYnVnfHxcImZhbHNlXCI9PW8uZGVidWcpKXt2YXIgaT1bXTt0JiZPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZSxyLG49KHI9MixmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fShlPXQpfHxmdW5jdGlvbih0LGUpe3ZhciByPW51bGw9PXQ/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPXIpe3ZhciBuLG8saSxhLHU9W10sYz0hMCxzPSExO3RyeXtpZihpPShyPXIuY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KHIpIT09cilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShuPWkuY2FsbChyKSkuZG9uZSkmJih1LnB1c2gobi52YWx1ZSksdS5sZW5ndGghPT1lKTtjPSEwKTt9Y2F0Y2godCl7cz0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPXIucmV0dXJuJiYoYT1yLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIHV9fShlLHIpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXJldHVybiBoaSh0LGUpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09ciYmdC5jb25zdHJ1Y3RvciYmKHI9dC5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09cnx8XCJTZXRcIj09PXI/QXJyYXkuZnJvbSh0KTpcIkFyZ3VtZW50c1wiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/aGkodCxlKTp2b2lkIDB9fShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLG89blswXSxhPW5bMV07aS5wdXNoKFwicF9cIi5jb25jYXQobyxcIj1cIikuY29uY2F0KGEpKX0pKTt2YXIgYT1pLmxlbmd0aD4wP1wiJlwiK2kuam9pbihcIiZcIik6XCJcIix1PVwiZG9tYWluPVwiK24uZG9tYWluK1wiJmNvdW50cnk9XCIrbi5jb3VudHJ5K1wiJmFjY2VwdF9hbGw9XCIrZStcIiZkZWNsaW5lX2FsbD1cIityK2ErXCImcmFuZD1cIitNYXRoLnJhbmRvbSgpO3RydXN0ZS51dGlsJiZ0cnVzdGUudXRpbC5zZW5kTWVzc2FnZSh1LG4ub3JpZ2luQmFzZVVybCtcInRjZi9sb2dcIil9fShyLnB1cnBvc2UmJnIucHVycG9zZS5jb25zZW50cyx0LGUpfSkpfWZ1bmN0aW9uIG0odCxlKXtpZihpKXt2YXIgcj1cIlwiO3N3aXRjaChlKXtjYXNlXCJwcm9jZXNzX2lhYl92ZW5kb3JfbGlzdFwiOnZhciBuPVtdO3QmJihPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZSxyLG89KHI9MixmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fShlPXQpfHxmdW5jdGlvbih0LGUpe3ZhciByPW51bGw9PXQ/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPXIpe3ZhciBuLG8saSxhLHU9W10sYz0hMCxzPSExO3RyeXtpZihpPShyPXIuY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KHIpIT09cilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShuPWkuY2FsbChyKSkuZG9uZSkmJih1LnB1c2gobi52YWx1ZSksdS5sZW5ndGghPT1lKTtjPSEwKTt9Y2F0Y2godCl7cz0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPXIucmV0dXJuJiYoYT1yLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIHV9fShlLHIpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXJldHVybiBPaSh0LGUpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09ciYmdC5jb25zdHJ1Y3RvciYmKHI9dC5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09cnx8XCJTZXRcIj09PXI/QXJyYXkuZnJvbSh0KTpcIkFyZ3VtZW50c1wiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/T2kodCxlKTp2b2lkIDB9fShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGk9KG9bMF0sb1sxXSk7aSYmbi5wdXNoKGkpfSkpLHI9bi5qb2luKFwiLlwiKSk7YnJlYWs7Y2FzZVwicHJvY2Vzc19pYWJfYWNjZXB0X2FsbFwiOnI9dHJ1c3RlLmV1LmJpbmRNYXAuYXRwSWRzO2JyZWFrO2Nhc2VcInByb2Nlc3NfaWFiX3JlamVjdF9hbGxcIjpyPVwiXCJ9dHJ1c3RlLmV1LmJpbmRNYXAuYWRkdGxDb25zZW50PWIuZ3ZsU3BlY2lmaWNhdGlvblZlcnNpb24rXCJ+XCIrcixnaShcImFjc3RyaW5nXCIsdHJ1c3RlLmV1LmJpbmRNYXAuYWRkdGxDb25zZW50KX19ZnVuY3Rpb24gdyh0KXtzd2l0Y2godCl7Y2FzZSAwOl9fdGNmYXBpKFwiZ2V0VmVuZG9yTGlzdFwiLDIsKGZ1bmN0aW9uKHQsZSl7ZSYmYmkodCxcImlhYl92ZW5kb3JsaXN0XCIpfSksXCJMQVRFU1RcIik7YnJlYWs7Y2FzZSAxOl9fdGNmYXBpKFwiZ2V0VENEYXRhXCIsMiwoZnVuY3Rpb24odCxlKXtlJiZiaSh0LFwiaWFiX2NvbnNlbnRzXCIpfSkpfX1mdW5jdGlvbiBTKHQpe2lmKHQmJmwuaGFzKHQub3JpZ2luKSl7dmFyIGU7dHJ5e2U9XCJzdHJpbmdcIj09dHlwZW9mIHQuZGF0YT9KU09OLnBhcnNlKHQuZGF0YSk6dC5kYXRhfWNhdGNoKHQpe3JldHVybn1pZihlJiZcInByZWZlcmVuY2VfbWFuYWdlclwiPT1lLnNvdXJjZSlzd2l0Y2goZS5tZXNzYWdlKXtjYXNlXCJyZXF1ZXN0X2lhYl92ZW5kb3JfbGlzdFwiOncoMCk7YnJlYWs7Y2FzZVwicmVxdWVzdF9pYWJfY29uc2VudF9kYXRhXCI6dygxKTticmVhaztjYXNlXCJwcm9jZXNzX2lhYl92ZW5kb3JfbGlzdFwiOm0oZS5kYXRhLmF0cENvbnNlbnRzLGUubWVzc2FnZSksZnVuY3Rpb24odCl7dmFyIGUsbixvLGksYTtkKHQudXNlTm9uU3RhbmRhcmRTdGFja3MsdC5jb25zZW50U2NyZWVuKSxlPXQudmVuZG9yQ29uc2VudHMsbj10LnZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHMsci52ZW5kb3JDb25zZW50cy5lbXB0eSgpLHIudmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cy5lbXB0eSgpLHYoZSkmJnIudmVuZG9yQ29uc2VudHMuc2V0KGUpLHYobikmJnIudmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cy5zZXQobiksbz10LnB1cnBvc2VDb25zZW50cyxpPXQucHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHMsci5wdXJwb3NlQ29uc2VudHMuZW1wdHkoKSxyLnB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzLmVtcHR5KCksdihvKSYmci5wdXJwb3NlQ29uc2VudHMuc2V0KG8pLHYoaSkmJnIucHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHMuc2V0KGkpLGE9dC5zcGVjaWFsRmVhdHVyZU9wdGlucyxyLnNwZWNpYWxGZWF0dXJlT3B0aW5zLmVtcHR5KCksdihhKSYmci5zcGVjaWFsRmVhdHVyZU9wdGlucy5zZXQoYSksdShyKSxnKCExLCExKX0oZS5kYXRhKTticmVhaztjYXNlXCJwcm9jZXNzX2lhYl9hY2NlcHRfYWxsXCI6bShlLmRhdGEuYXRwQ29uc2VudHMsZS5tZXNzYWdlKSxmdW5jdGlvbih0KXtkKHQudXNlTm9uU3RhbmRhcmRTdGFja3MsdC5jb25zZW50U2NyZWVuKSxyLnNldEFsbCgpLGEoKSx1KHIpLGcoITAsITEpfShlLmRhdGEpO2JyZWFrO2Nhc2VcInByb2Nlc3NfaWFiX3JlamVjdF9hbGxcIjptKGUuZGF0YS5hdHBDb25zZW50cyxlLm1lc3NhZ2UpLGZ1bmN0aW9uKHQpe2QodC51c2VOb25TdGFuZGFyZFN0YWNrcyx0LmNvbnNlbnRTY3JlZW4pLHIudW5zZXRBbGwoKSx1KHIpLGcoITEsITApfShlLmRhdGEpfX19bnx8IXMmJiFmP2Z1bmN0aW9uKHQpe3kuY29va2llTG9hZGVkPSEwO3ZhciBlPWM7aWYodCYmbyl7dmFyIG49eW8uZGVjb2RlKHQpOyF0fHxuLnBvbGljeVZlcnNpb24hPXIucG9saWN5VmVyc2lvbiYmbi5wb2xpY3lWZXJzaW9uIT1yLnBvbGljeVZlcnNpb25ffHwoZT10KX12YXIgaT1taShcIm5vdGljZV9nZHByX3ByZWZzXCIpO2gudXBkYXRlKGUsIWkpLHcoMSl9KG4pOihtKFwiXCIsXCJwcm9jZXNzX2lhYl9yZWplY3RfYWxsXCIpLG1pKHQpfHwoZCghMSwxKSxyLnVuc2V0QWxsKCkscyYmYSgpLGYmJihhKCksci5zZXRBbGxWZW5kb3JMZWdpdGltYXRlSW50ZXJlc3RzKCkpLHUocikpKSxmdW5jdGlvbigpe2wuYWRkKHdpbmRvdy5vcmlnaW4pO3ZhciB0LGUscixuLG89dHJ1c3RlLmV1LmJpbmRNYXA7W28ucHJlZm1nclVybCxvLklSTUludGVncmF0aW9uVVJMLG8uY2RuVVJMXS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZih0KXt2YXIgZTt0cnl7ZT1uZXcgVVJMKHQpLm9yaWdpbn1jYXRjaCh0KXt9ZSYmbC5hZGQoZSl9fSkpLGU9XCJtZXNzYWdlXCIscj1TLG49ISFuLCh0PXdpbmRvdykmJnIgaW5zdGFuY2VvZiBGdW5jdGlvbiYmKHQuYWRkRXZlbnRMaXN0ZW5lcj90LmFkZEV2ZW50TGlzdGVuZXIoZSxyLG4pOnQuYXR0YWNoRXZlbnQmJnQuYXR0YWNoRXZlbnQoXCJvblwiK2UscikpfSgpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gZCh0KX0pKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGQodCl9KSl9fSgpfSkoKX0pKCk7In0sICJoZWFkZXJzU2l6ZSI6IDQwOSwgImJvZHlTaXplIjogODIyMDQsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDgyNjEzfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogOTE1LjU0OSwgInJlY2VpdmUiOiA0NzYuNTJ9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5IiwgInNlcnZlcklQQWRkcmVzcyI6ICIxOC4xNzIuNTIuNDkiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIkNOPSoudHJ1c3RhcmMuY29tIiwgInZhbGlkRnJvbSI6IDE3MTA1NDcyMDAsICJ2YWxpZFRvIjogMTc0NDY3NTE5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjA3LjgyN1oiLCAidGltZSI6IDU3Mi4zNzYsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2Fzc2V0L25vdGljZS5qcy92L3YxLjctNTE4IiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIk9yaWdpbiIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIifSwgeyJuYW1lIjogIkFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogIlJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cDovL2JhcHNtYW5kaXJkZXBhcmlzLmZyLyJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE3XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtRGVzdCIsICJ2YWx1ZSI6ICJzY3JpcHQifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1Nb2RlIiwgInZhbHVlIjogImNvcnMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1TaXRlIiwgInZhbHVlIjogImNyb3NzLXNpdGUifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAiY29uc2VudC50cnVzdGFyYy5jb20ifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA0NDIsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogInRleHQvamF2YXNjcmlwdCJ9LCB7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICJUaHUifSwgeyJuYW1lIjogIkxhc3QtTW9kaWZpZWQiLCAidmFsdWUiOiAiMTMgSnVuIDIwMjQgMDQ6MDY6NDIgR01UIn0sIHsibmFtZSI6ICJQcmFnbWEiLCAidmFsdWUiOiAicHVibGljIn0sIHsibmFtZSI6ICJDb250ZW50LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA1OjEyOjQxIEdNVCJ9LCB7Im5hbWUiOiAiVmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogIlZpYSIsICJ2YWx1ZSI6ICIxLjEgNTE5ZTJiZmVmNGM2NjViY2YyZDZiYzNhMzc0YzVmODIuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJBZ2UiLCAidmFsdWUiOiAiMjQ4OCJ9LCB7Im5hbWUiOiAiQ2FjaGUtQ29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTI1OTIwMDAifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJ4LWNhY2hlIiwgInZhbHVlIjogIkhpdCBmcm9tIGNsb3VkZnJvbnQifSwgeyJuYW1lIjogIngtYW16LWNmLXBvcCIsICJ2YWx1ZSI6ICJOUlQyMC1QMiJ9LCB7Im5hbWUiOiAieC1hbXotY2YtaWQiLCAidmFsdWUiOiAiaWhCV2N4NklIZ3RKQUJOd3lhdkdNLVdGbVlCeEQxalVyTXQtd0dtbUxqMzhYbjlxZGZucnhnPT0ifSwgeyJuYW1lIjogInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCAidmFsdWUiOiAibWF4LWFnZT0zMTUzNjAwMDsgaW5jbHVkZVN1YkRvbWFpbnMifV0sICJjb250ZW50IjogeyJzaXplIjogOTUwMjUsICJtaW1lVHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLCAiY29tcHJlc3Npb24iOiA2NzQ1NSwgInRleHQiOiAiZnVuY3Rpb24gX3RydXN0ZV9ldSgpe2Z1bmN0aW9uIHUoKXt2YXIgZz10cnVzdGUuZXUuYmluZE1hcDtnLmZlYXQuaXNDb25zZW50UmV0cmlldmVkPWcuZmVhdC5jcm9zc0RvbWFpbj9nLmZlYXQuaXNDb25zZW50UmV0cmlldmVkOiEwO2lmKCF1LmRvbmUmJnRydXN0ZS51dGlsLmlzQ29uc2VudFJlc29sdmVkKCkpe3UuZG9uZT0hMDt2YXIgaz1mdW5jdGlvbigpe3ZhciBhPShuZXcgRGF0ZSkuZ2V0VGltZSgpLGM9dHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX1JFUE9QLCEwKSxkPXRydXN0ZS5ldS5iaW5kTWFwLnBvcFRpbWU7cmV0dXJuIGQmJmQhPWMmJmE+PWR9KCk7ayYmKGcuZmVhdC5kcm9wUG9wQ29va2llPSEwKTt0cnVzdGUuZXUuY2NwYS5pbml0aWFsaXplKCk7dHJ1c3RlLmV1LmdwcC5pbml0aWFsaXplKCk7dHJ1c3RlLmV1LmdwY0RudEF1dG9PcHRPdXQoKTt0cnVzdGUuZXUuZ2NtKCk7dmFyIGE9ZnVuY3Rpb24oKXt2YXIgYT10cnVzdGUuZXUuYmluZE1hcDtcbmlmKGEuZmVhdC5jb25zZW50UmVzb2x1dGlvbil7dmFyIGM9dHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX0dEUFJfUFJFRl9OQU1FLCEwKTtpZihjJiYoYz1jLnNwbGl0KFwiOlwiKSwhUmVnRXhwKGEuYmVoYXZpb3IrXCIuXCIrYS5iZWhhdmlvck1hbmFnZXIpLnRlc3QoY1syXSkmJigvKCx1c3xub25lKS9pLnRlc3QoY1syXSl8fFwiZXVcIj09YS5iZWhhdmlvck1hbmFnZXImJi9pbXBsaWVkLmV1L2kudGVzdChjWzJdKSkpKXJldHVybiEwfXJldHVybiExfTt0cnVzdGUudXRpbC5maXJlQ3VzdG9tRXZlbnQoXCJ0cnVzdGUtY29va2llXCIsZy5wcmVmQ29va2llKTt0cnVzdGUuZXUuaXNHUENETlRFdmVudCgpP2cuZmVhdC5kbnRTaG93VUkmJlwiZXhwcmVzc2VkXCI9PWcuYmVoYXZpb3ImJnRydXN0ZS51dGlsLmV4ZWN1dGVPbkNvbmRpdGlvbihmdW5jdGlvbigpe3JldHVybiBnLnByZWZDb29raWV8fGcuZmVhdC5ncHAuZ3BwQXBwbGllcyYmbnVsbD09dHJ1c3RlLnV0aWwucmVhZENvb2tpZShcImdwcHN0cmluZ1wiKX0sXG5mdW5jdGlvbigpe3RydXN0ZS5ldS5pc0dQQ0ROVEV2ZW50KCkmJiF0cnVzdGUuZXUuY3ByYS5zaG91bGRTaG93RmluUHJvZygpJiYodHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIodHJ1c3RlLmV1Lm5vdGljZUxQLnBuLCEwKSx0cnVzdGUuZXUubXNnLmxvZyhcImNvbnNlbnRcIixnLGcubWVzc2FnZUJhc2VVcmwpKX0sMTAsM0U0KTpudWxsIT10cnVzdGUudXRpbC5nZXRJbnRWYWx1ZShnLnByZWZDb29raWUpPyhcImV4cHJlc3NlZFwiPT1nLmJlaGF2aW9yJiYoa3x8YSgpKSYmKGcuZmVhdC5pc1JlcG9wRXZlbnQ9ITAsZy5mZWF0LmlzUmVjb25zZW50RXZlbnQ9ayx0cnVzdGUuZXUuY2xpY2tMaXN0ZW5lcih0cnVzdGUuZXUubm90aWNlTFAucG4sITApKSx0cnVzdGUuZXUubXNnLmxvZyhcInJldHVybnNcIixnLGcubWVzc2FnZUJhc2VVcmwpKTpcImV4cHJlc3NlZFwiPT1nLmJlaGF2aW9yJiYodHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIodHJ1c3RlLmV1Lm5vdGljZUxQLnBuLCEwKSx0cnVzdGUuZXUubXNnLmxvZyhcImNvbnNlbnRcIixcbmcsZy5tZXNzYWdlQmFzZVVybCkpfX10cnVzdGU9c2VsZi50cnVzdGV8fHt9O3RydXN0ZS5ldT10cnVzdGUuZXV8fHt9O3RydXN0ZS5ldS52ZXJzaW9uPVwidjEuNy01MFwiO3RydXN0ZS5ldS5DT09LSUVfREFYX05BTUU9XCJub3RpY2VfZGF4X3NpZ25hdHVyZVwiO3RydXN0ZS5ldS5DT09LSUVfR0RQUl9QUkVGX05BTUU9XCJub3RpY2VfZ2Rwcl9wcmVmc1wiO3RydXN0ZS5ldS5DT09LSUVfUFJFRl9OQU1FPVwibm90aWNlX3ByZWZlcmVuY2VzXCI7dHJ1c3RlLmV1LkNPT0tJRV9DQVRFR09SWV9OQU1FPVwib3B0b3V0X2RvbWFpbnNcIjt0cnVzdGUuZXUuQ09PS0lFX1JFUE9QPVwibm90aWNlX3BvcHRpbWVcIjt0cnVzdGUuZXUuQ09PS0lFX1VJRD1cIlRBY29uc2VudElEXCI7QXJyYXkucHJvdG90eXBlLmluY2x1ZGVzfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLFwiaW5jbHVkZXNcIix7dmFsdWU6ZnVuY3Rpb24oZyxrKXtpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoJ1widGhpc1wiIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTtcbnZhciBhPU9iamVjdCh0aGlzKSxiPWEubGVuZ3RoPj4+MDtpZigwPT09YilyZXR1cm4hMTtmb3IodmFyIGM9a3wwLGM9TWF0aC5tYXgoMDw9Yz9jOmItTWF0aC5hYnMoYyksMCk7YzxiOyl7aWYoYVtjXT09PWd8fFwibnVtYmVyXCI9PT10eXBlb2YgYVtjXSYmXCJudW1iZXJcIj09PXR5cGVvZiBnJiZpc05hTihhW2NdKSYmaXNOYU4oZykpcmV0dXJuITA7YysrfXJldHVybiExfSxjb25maWd1cmFibGU6ITB9KTtTdHJpbmcucHJvdG90eXBlLmluY2x1ZGVzfHwoU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihnLGspe1wibnVtYmVyXCIhPT10eXBlb2YgayYmKGs9MCk7cmV0dXJuIGsrZy5sZW5ndGg+dGhpcy5sZW5ndGg/ITE6LTEhPT10aGlzLmluZGV4T2YoZyxrKX0pOyhmdW5jdGlvbigpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQpcmV0dXJuITE7d2luZG93LkN1c3RvbUV2ZW50PWZ1bmN0aW9uKGcsayl7az1rfHx7YnViYmxlczohMSxjYW5jZWxhYmxlOiExLFxuZGV0YWlsOm51bGx9O3ZhciBhPWRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiQ3VzdG9tRXZlbnRcIik7YS5pbml0Q3VzdG9tRXZlbnQoZyxrLmJ1YmJsZXMsay5jYW5jZWxhYmxlLGsuZGV0YWlsKTtyZXR1cm4gYX19KSgpO3RydXN0ZS51dGlsPXRydXN0ZS51dGlsfHx7fTt0cnVzdGUudXRpbC5nZXRJbnRWYWx1ZT1mdW5jdGlvbihnKXtnPXBhcnNlSW50KGcpO3JldHVybiBpc05hTihnKT9udWxsOmd9O3RydXN0ZS51dGlsLmlzQXNjZW5kaW5nPWZ1bmN0aW9uKGcpe3JldHVybiBnLmV2ZXJ5KGZ1bmN0aW9uKGssYSl7cmV0dXJuIDA9PT1hfHxrPj1nW2EtMV19KX07dHJ1c3RlLnV0aWwuY2hlY2tDb25zZW50Rm9ybWF0VmFsaWRpdHk9ZnVuY3Rpb24oZyl7Zys9XCJcIjt2YXIgaz1nLnNwbGl0KC9bLHxdLykubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUludChhKX0pO3JldHVybi9eWzAtOV1bMC05XT8oWyx8XVswLTldWzAtOV0/KSokLy50ZXN0KGcpJiYyMD49ay5sZW5ndGgmJnRydXN0ZS51dGlsLmlzQXNjZW5kaW5nKGspJiZcbjIwPj10cnVzdGUudXRpbC5nZXRMb3dlc3RDb25zZW50KGcpJiZrLmluY2x1ZGVzKDApJiZrW2subGVuZ3RoLTFdPHRydXN0ZS5ldS5iaW5kTWFwLmNhdGVnb3J5Q291bnR9O3RydXN0ZS51dGlsLnZhbGlkQ29uc2VudD1mdW5jdGlvbihnKXtyZXR1cm4gbnVsbCE9dHJ1c3RlLnV0aWwuZ2V0SW50VmFsdWUoZykmJi0xPHRydXN0ZS51dGlsLmdldEludFZhbHVlKGcpJiZ0cnVzdGUudXRpbC5jaGVja0NvbnNlbnRGb3JtYXRWYWxpZGl0eShnKX07dHJ1c3RlLnV0aWwuZ2V0TG93ZXN0Q29uc2VudD1mdW5jdGlvbihnKXt2YXIgaz1nJiYtMTxnLmluZGV4T2YoXCJ8XCIpP1wifFwiOlwiLFwiO3JldHVybiBudWxsIT1nJiYwPGcubGVuZ3RoP2cuc2xpY2UoZy5sYXN0SW5kZXhPZihrKSsxLGcubGVuZ3RoKTpudWxsfTt0cnVzdGUudXRpbC5nZXRTY3JpcHRFbGVtZW50PWZ1bmN0aW9uKGcsayxhKXtcInN0cmluZ1wiPT10eXBlb2YgZyYmKGc9UmVnRXhwKGcpKTtcInN0cmluZ1wiPT10eXBlb2YgYSYmKGE9UmVnRXhwKGEpKTtcbmlmKCEoZyBpbnN0YW5jZW9mIFJlZ0V4cCYmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBhfHxhIGluc3RhbmNlb2YgUmVnRXhwKSkpcmV0dXJuIG51bGw7Zm9yKHZhciBiPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIiksYyxkLGU9Yi5sZW5ndGg7MDxlLS0mJihkPWJbZV0pOylpZihjPWE/YS50ZXN0KGQuc3JjKTohMCwoa3x8IWQuaWQpJiZnLnRlc3QoZC5zcmMpJiZjKXJldHVybiBkO3JldHVybiBudWxsfTt0cnVzdGUudXRpbC5nZXRVbmlxdWVJRD1mdW5jdGlvbigpe3JldHVyblwidHJ1c3RlX1wiK01hdGgucmFuZG9tKCl9O3RydXN0ZS51dGlsLmluaXRQYXJhbWV0ZXJNYXA9ZnVuY3Rpb24oZyxrKXtrIGluc3RhbmNlb2YgT2JqZWN0fHwoaz17fSk7aWYoZyYmXCJzdHJpbmdcIj09dHlwZW9mIGcuc3JjKXt2YXIgYSxiPWsuX3VybD1nLnNyYztpZihiPShrLl9xdWVyeT1iLnJlcGxhY2UoL15bXjs/I10qWzs/I10vLFwiXCIpKS5yZXBsYWNlKC9bIzs/Jl0rL2csXCImXCIpKWZvcihiPVxuYi5zcGxpdChcIiZcIiksYT1iLmxlbmd0aDswPGEtLTspe3ZhciBjPWJbYV0uc3BsaXQoXCI9XCIpLGQ9Yy5zaGlmdCgpO2tbZF18fChrW2RdPWMubGVuZ3RoP2RlY29kZVVSSUNvbXBvbmVudChjLmpvaW4oXCI9XCIpKTpcIlwiKX1nLmlkPWsuc2lkPWsuc2lkfHx0cnVzdGUudXRpbC5nZXRVbmlxdWVJRCgpfWVsc2Ugay5fcXVlcnk9ay5fdXJsPVwiXCI7cmV0dXJuIGt9O3RydXN0ZS51dGlsLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGcsayxhLGIsYyl7ZyYmKFwic3RyaW5nXCI9PXR5cGVvZiBrJiZhIGluc3RhbmNlb2YgRnVuY3Rpb24pJiYoZy5hZGRFdmVudExpc3RlbmVyP2cuYWRkRXZlbnRMaXN0ZW5lcihrLGEsYz8hMDohMSk6Zy5hdHRhY2hFdmVudD9nLmF0dGFjaEV2ZW50KFwib25cIitrLGEpOmImJmEoKSl9O3RydXN0ZS51dGlsLmNyZWF0ZUhpZ2hlc3RMZXZlbENvb2tpZT1mdW5jdGlvbigpe3ZhciBnPXRydXN0ZS5ldS5iaW5kTWFwO2lmKGcuYWxsT3B0ZWRJbilyZXR1cm4gZy5hbGxPcHRlZEluO2Zvcih2YXIgaz1cbltdLGE9MDthPGcuY2F0ZWdvcnlDb3VudDthKyspay5wdXNoKGEpO3JldHVybiBrLnRvU3RyaW5nKCl9O3RydXN0ZS51dGlsLnBhcnNlSlNPTj1mdW5jdGlvbihnKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZyl0cnl7cmV0dXJuIHNlbGYuSlNPTj9zZWxmLkpTT04ucGFyc2UoZyk6L1teLDp7fVxcW1xcXTAtOS5cXC0rRWFlZmxuci11IFxcblxcclxcdF0vLnRlc3QoZy5yZXBsYWNlKC9cIihcXFxcLnxbXlwiXFxcXF0pKlwiL2csXCJcIikpP2c6ZXZhbChcIihcIitnK1wiKVwiKX1jYXRjaChrKXtpZigvXlxccypbe1tdLipbfVxcXV1cXHMqJC8udGVzdChnKSlyZXR1cm4gdGhpcy5lcnJvcihcIkNvdWxkIG5vdCBwYXJzZSBqc29uIG9iamVjdDogXCIrZy5zbGljZSgwLDM1KSsoMzU8Zy5sZW5ndGg/XCIuLi5cIjpcIlwiKSksbnVsbH1yZXR1cm4gZ307dHJ1c3RlLnV0aWwuZ2V0SlNPTj10cnVzdGUudXRpbC5nZXRKU09OfHxmdW5jdGlvbihnKXtpZihzZWxmLkpTT04mJiEoc2VsZi5KU09OLm9yZ3x8c2VsZi5KU09OLmxpY2Vuc2V8fHNlbGYuSlNPTi5jb3B5cmlnaHQpKXJldHVybiBzZWxmLkpTT04uc3RyaW5naWZ5KGcpO1xuaWYoZyBpbnN0YW5jZW9mIEFycmF5KXt2YXIgaz1cIltcIjtpZihnLmxlbmd0aClmb3IodmFyIGs9ayt0cnVzdGUudXRpbC5nZXRKU09OKGdbMF0pLGE9MTthPGcubGVuZ3RoO2ErKylrKz1cIixcIit0cnVzdGUudXRpbC5nZXRKU09OKGdbYV0pO3JldHVybiBrK1wiXVwifWlmKFwic3RyaW5nXCI9PXR5cGVvZiBnKXJldHVybidcIicrZysnXCInO2lmKGcgaW5zdGFuY2VvZiBPYmplY3Qpe3ZhciBhPSExLGs9XCJ7XCIsYjtmb3IoYiBpbiBnKWsrPShhP1wiLFwiOlwiXCIpKydcIicrYisnXCI6Jyt0cnVzdGUudXRpbC5nZXRKU09OKGdbYl0pLGE9ITA7cmV0dXJuIGsrXCJ9XCJ9cmV0dXJuIHZvaWQgMD09PWc/dm9pZCAwOmcrXCJcIn07dHJ1c3RlLnV0aWwuYWRkU2NyaXB0RWxlbWVudD1mdW5jdGlvbihnLGssYSxiLGMpe2lmKCFnKXJldHVybiB0cnVzdGUudXRpbC50cmFjZShcIkVSUk9SIGFkZGluZyBzY3JpcHQgZWxlbWVudCB0byBwYWdlLCBzcmMgaXMgbnVsbFwiKSxudWxsO3ZhciBkPW51bGw7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGcpe2Q9XG4oYSYmYS5vd25lckRvY3VtZW50fHxzZWxmLmRvY3VtZW50KS5jcmVhdGVFbGVtZW50KFwiU0NSSVBUXCIpO2Quc3JjPWc7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltub25jZV1cIik7ZSYmZC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLGUubm9uY2V8fGUuZ2V0QXR0cmlidXRlKFwibm9uY2VcIikpfWVsc2UgaWYoZyYmXCJzY3JpcHRcIj09KGcubm9kZU5hbWUrXCJcIikudG9Mb3dlckNhc2UoKSl7aWYoZD1nLCFkLnNyYylyZXR1cm4gdHJ1c3RlLnV0aWwudHJhY2UoXCJFUlJPUiBPYmplY3QgcGFzc2VkIGludG8gYWRkU0NyaXB0RWxlbWVudCBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkICdzcmMnIGF0dHJpYnV0ZVwiKSxudWxsfWVsc2UgcmV0dXJuIHRydXN0ZS51dGlsLnRyYWNlKFwiRVJST1IgT2JqZWN0IHBhc3NlZCBpbnRvIGFkZFNDcmlwdEVsZW1lbnQgaXMgbm90IGEgU2NyaXB0RWxlbWVudFwiKSxudWxsO2MmJlwic3RyaW5nXCI9PXR5cGVvZiBjLnZhbHVlT2YoKSYmZC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXG5jKTtiJiZkLnNldEF0dHJpYnV0ZShcImFzeW5jXCIsXCJhc3luY1wiKTtkLnNldEF0dHJpYnV0ZShcImltcG9ydGFuY2VcIixcImhpZ2hcIik7KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltub25jZV1cIikpJiZkLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsZS5ub25jZXx8ZS5nZXRBdHRyaWJ1dGUoXCJub25jZVwiKSk7ZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZC5vbmVycm9yPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEmJlwiZXJyb3JcIj09YS50eXBlKXRydXN0ZS51dGlsLnRyYWNlKFwiRVJST1IgU2NyaXB0IHdhcyB1bmFibGUgdG8gbG9hZDogXCIrZyksYj0yO2Vsc2UgaWYoYSYmXCJsb2FkXCI9PWEudHlwZXx8XCJsb2FkZWRcIj09ZC5yZWFkeVN0YXRlKWI9MTtiJiYoZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZC5vbmVycm9yPW51bGwsayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZrKGQsYikpfTsoYSYmYS5hcHBlbmRDaGlsZCYmYXx8c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJvZHlcIilbMF18fFxuc2VsZi5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIilbMF0pLmFwcGVuZENoaWxkKGQpO3JldHVybiBkfTt0cnVzdGUudXRpbC50cmFjZT10cnVzdGUudXRpbC50cmFjZXx8ZnVuY3Rpb24oKXtyZXR1cm4gc2VsZi5jb25zb2xlJiZjb25zb2xlLmxvZyYmKHRoaXMuZGVidWd8fCExIT09dGhpcy5kZWJ1ZyYmKDA+c2VsZi5sb2NhdGlvbi5ob3N0bmFtZS5pbmRleE9mKFwiLlwiKXx8MDxzZWxmLmxvY2F0aW9uLmhvc3RuYW1lLmluZGV4T2YoXCIudHJ1c3RlLXN2Yy5uZXRcIikpKT8oY29uc29sZS5sb2cuYXBwbHk/Y29uc29sZS5sb2cuYXBwbHkoY29uc29sZSxhcmd1bWVudHMpOkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwoY29uc29sZS5sb2csY29uc29sZSkuYXBwbHkoY29uc29sZSxhcmd1bWVudHMpLCEwKTohMX07dHJ1c3RlLnV0aWwuZXJyb3I9dHJ1c3RlLnV0aWwuZXJyb3J8fGZ1bmN0aW9uKGcsayxhKXthPWF8fHt9O3ZhciBiPWsmJmsudG9TdHJpbmcoKXx8XG5cIlwiO2VuY29kZVVSSUNvbXBvbmVudChhLmF1dGhvcml0eXx8MCk7dmFyIGM9YS5jYWxsZXJ8fFwiXCI7ayYmay5zdGFjayYmKGIrPVwiXFxuXCIray5zdGFjay5tYXRjaCgvKEB8YXQpW15cXG5cXHJcXHRdKi8pWzBdK1wiXFxuXCIray5zdGFjay5tYXRjaCgvKEB8YXQpW15cXG5cXHJcXHRdKiQvKVswXSk7dHJ1c3RlLnV0aWwudHJhY2UoZyxiLGEpO3RydXN0ZS51dGlsLmRlYnVnfHwhayYmIWd8fChkZWxldGUgYS5jYWxsZXIsZGVsZXRlIGEubW9kLGRlbGV0ZSBhLmRvbWFpbixkZWxldGUgYS5hdXRob3JpdHksYS5tc2c9ZyxnPXRydXN0ZS5ldS5iaW5kTWFwLGcuZmVhdC5lbmFibGVKc0xvZyYmKGs9bmV3IChzZWxmLlhNTEh0dHBSZXF1ZXN0fHxzZWxmLlhEb21haW5SZXF1ZXN0fHxzZWxmLkFjdGl2ZVhPYmplY3QpKFwiTVNYTUwyLlhNTEhUVFAuMy4wXCIpLGsub3BlbihcIlBPU1RcIixnLmFwaWd3bGFtYmRhVXJsLCEwKSxrLnNldFJlcXVlc3RIZWFkZXImJmsuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtdHlwZVwiLFxuXCJhcHBsaWNhdGlvbi9qc29uXCIpLGsuc2VuZCh0cnVzdGUudXRpbC5nZXRKU09OKHtpbmZvOnRydXN0ZS51dGlsLmdldEpTT04oYSl8fFwiXCIsZXJyb3I6YixjYWxsZXI6Y30pKSkpfTt0cnVzdGUudXRpbC5zZW5kTWVzc2FnZT1mdW5jdGlvbiBrKGEsYil7dmFyIGM7KGsuX2ltZ3JlcHx8KGsuX2ltZ3JlcD1bXSkpLnB1c2goYz1uZXcgSW1hZ2UoMSwxKSk7Yy5vbmVycm9yPWsuX2Vycm9yQ0J8fChrLl9lcnJvckNCPWZ1bmN0aW9uKGEpe3RydXN0ZS51dGlsLmVycm9yKFwiRXJyb3IgbWFraW5nIEdFVCByZXF1ZXN0IHRvOiBcIit0aGlzLnNyYyl9KTtjLnNyYz1iLnJlcGxhY2UoL14uezMsNX06LyxzZWxmLmxvY2F0aW9uLnByb3RvY29sKS5yZXBsYWNlKC9cXD8/JC8sXCI/XCIpK2F9O3RydXN0ZS51dGlsLmdldFN0eWxlPWZ1bmN0aW9uKGssYSl7cmV0dXJuIGsmJmE/ay5jdXJyZW50U3R5bGU/ay5jdXJyZW50U3R5bGVbYV06c2VsZi5nZXRDb21wdXRlZFN0eWxlP3NlbGYuZ2V0Q29tcHV0ZWRTdHlsZShrLFxubnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShhKTprLnN0eWxlW2FdOm51bGx9O3RydXN0ZS51dGlsLmdldFBvc2l0aW9uPWZ1bmN0aW9uKGspe2lmKCFrfHxrLm93bmVyRG9jdW1lbnQhPXNlbGYuZG9jdW1lbnQpcmV0dXJuIG51bGw7Zm9yKHZhciBhPTAsYj0wO2sub2Zmc2V0UGFyZW50OyliKz1rLm9mZnNldExlZnQsYSs9ay5vZmZzZXRUb3Asaz1rLm9mZnNldFBhcmVudDtyZXR1cm5bYixhXX07dHJ1c3RlLnV0aWwucmVhZHlTdGF0ZT1mdW5jdGlvbiBhKGIpe2Euc3RhdHVzPWImJlwibG9hZFwiPT1iLnR5cGU/XCJjb21wbGV0ZVwiOnNlbGYuZG9jdW1lbnQucmVhZHlTdGF0ZXx8YS5zdGF0dXN8fFwiaW50ZXJhY3RpdmVcIjtyZXR1cm4gYS5zdGF0dXN9O3RydXN0ZS51dGlsLmFkZExpc3RlbmVyKHNlbGYsXCJsb2FkXCIsdHJ1c3RlLnV0aWwucmVhZHlTdGF0ZSk7dHJ1c3RlLnV0aWwuYWRkTGlzdGVuZXIoc2VsZi5kb2N1bWVudCxcInJlYWR5c3RhdGVjaGFuZ2VcIix0cnVzdGUudXRpbC5yZWFkeVN0YXRlKTtcbnRydXN0ZS51dGlsLmdldERlZmF1bHRTdHlsZVByb3BlcnR5PWZ1bmN0aW9uKGEsYil7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpO3ZhciBkPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMsbnVsbClbYV07Yy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpO3JldHVybiBkfTt0cnVzdGUudXRpbC5nZXREaXNwbGF5UHJvcGVydHk9ZnVuY3Rpb24oYSl7dmFyIGI9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKS5kaXNwbGF5O3JldHVyblwibm9uZVwiPT1iP3RydXN0ZS51dGlsLmdldERlZmF1bHRTdHlsZVByb3BlcnR5KFwiZGlzcGxheVwiLGEubm9kZU5hbWUpOmJ9O3RydXN0ZS51dGlsLmNhbGxDTUVuZHBvaW50PWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9dHJ1c3RlLmV1LmJpbmRNYXA7aWYoZiYmZi5wcmVmbWdyVXJsKXt2YXIgbD1mLnByZWZtZ3JVcmwuc3BsaXQoXCI/XCIpO2E9bFswXS5yZXBsYWNlKC9cXC8kLyxcIlwiKStcbmE7bD0xPGwubGVuZ3RoP2xbMV0rXCImXCI6XCJcIjtsKz1cInNpdGU9XCIrZi5kb21haW47bCs9XCImbG9jYWxlPVwiK2YubG9jYWxlO2wrPVwiJmJlaGF2aW9yPVwiK2YuYmVoYXZpb3I7bCs9XCImY291bnRyeT1cIitmLmNvdW50cnk7Zi5zdGF0ZSYmKGwrPVwiJnN0YXRlPVwiK2Yuc3RhdGUpO2ImJihsKz1cIiZjYXRlZ29yeT1cIitiKTt0cnVzdGUuZXUuY29uc2VudFVJRCYmKGwrPVwiJnVpZD1cIit0cnVzdGUuZXUuY29uc2VudFVJRCk7Zi5zZWVkVXJsJiYobCs9XCImc2VlZF91cmw9XCIrZi5zZWVkVXJsKTtmLmZlYXQuaXNHUENPcHRvdXRFdmVudD8obCs9XCImaXNfZ3BjPVwiK2YuZmVhdC5ncGMsbCs9XCImY29uc2VudD1cIitmLmdwY09wdGVkSW4pOmYuZmVhdC5pc0ROVE9wdG91dEV2ZW50PyhsKz1cIiZpc19kbnQ9XCIrZi5mZWF0LmRudCxsKz1cIiZjb25zZW50PVwiK2YuZG50T3B0ZWRJbik6ZSYmKGwrPVwiJmNvbnNlbnQ9XCIrZSk7bCs9XCImdXNlclR5cGU9XCIrdHJ1c3RlLmV1LnVzZXJUeXBlO2wrPVwiJnNlc3Npb249XCIrXG50cnVzdGUuZXUuc2Vzc2lvbjtpZihkKXRydXN0ZS51dGlsLnNlbmRNZXNzYWdlKGwsYSk7ZWxzZXt2YXIgcD1uZXcgKHNlbGYuWE1MSHR0cFJlcXVlc3R8fHNlbGYuWERvbWFpblJlcXVlc3R8fHNlbGYuQWN0aXZlWE9iamVjdCkoXCJNU1hNTDIuWE1MSFRUUC4zLjBcIik7cC5vbmxvYWQ9ZnVuY3Rpb24oYSl7MjAwPT1wLnN0YXR1cyYmYyhwKX07cC5vcGVuKFwiR0VUXCIsYStsKTtwLnNlbmQobnVsbCl9fX07dHJ1c3RlLnV0aWwuaHR0cFJlcXVlc3Q9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IFhNTEh0dHBSZXF1ZXN0O2Uub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGE7aWYoMjAwPT09ZS5zdGF0dXMpe2E9ZS5yZXNwb25zZVRleHQ7dHJ5e2E9SlNPTi5wYXJzZShlLnJlc3BvbnNlVGV4dCl9Y2F0Y2goYil7dHJ1c3RlLnV0aWwudHJhY2UoXCJGYWlsZWQgdG8gcGFyc2UgaHR0cCByZXNwb25zZS5cIil9fWVsc2UgYT1cIlwiO2lmKGQmJmEpZChhLnVzZXJfcHJlZmVyZW5jZXMsYSk7ZWxzZSByZXR1cm4gYX07XG5lLm9wZW4oYixhKTtlLnNldFJlcXVlc3RIZWFkZXIoXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5cIixcIipcIik7XCJQT1NUXCI9PT1iP2Uuc2VuZChjKTplLnNlbmQoKX07dHJ1c3RlLnV0aWwuY3JlYXRlUHJlZmVyZW5jZUZyb21Db29raWVWYWx1ZT1mdW5jdGlvbihhLGIsYyxkKXtpZih0cnVzdGUuZXUmJnRydXN0ZS5ldS5hY3RtZXNzYWdlKXt2YXIgZT10cnVzdGUudXRpbCYmdHJ1c3RlLnV0aWwuZ2V0SlNPTnx8dHJ1c3RlLmNtYSYmdHJ1c3RlLmNtYS5jaGVhcEpTT058fHdpbmRvdy5KU09OLnN0cmluZ2lmeTthPXtzb3VyY2U6XCJwcmVmZXJlbmNlX21hbmFnZXJcIixtZXNzYWdlOlwic3VibWl0X3ByZWZlcmVuY2VzXCIsaXNJbXBsaWNpdDohMCxkYXRhOnt2YWx1ZTphLHNraXBBdXRvYmxvY2s6Yixmcm9tVXNlckNvbnNlbnRTdG9yYWdlOmMsdXNlckRhdGE6ZCxleHBpcmVzOmQmJihuZXcgRGF0ZShwYXJzZUludChkLmNvb2tpZV9leHBpcnkpKSkudG9HTVRTdHJpbmcoKX19O3RydXN0ZS5ldS5hY3RtZXNzYWdlKGEpO1xud2luZG93LlBSRUZfTUdSX0FQSV9ERUJVRyYmUFJFRl9NR1JfQVBJX0RFQlVHLmF1dGhvcml0aWVzLnB1c2god2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKTt3aW5kb3cucG9zdE1lc3NhZ2UmJndpbmRvdy5wb3N0TWVzc2FnZShlKGEpLFwiKlwiKX19O3RydXN0ZS51dGlsLmNvbnNlbnRSZXF1aXJlZGxldmVsPWZ1bmN0aW9uKGEpe3RydXN0ZS51dGlsLmNyZWF0ZVByZWZlcmVuY2VGcm9tQ29va2llVmFsdWUoXCIwXCIsYSl9O3RydXN0ZS51dGlsLmZpcmVDdXN0b21FdmVudD1mdW5jdGlvbihhLGIpe2lmKGIpe3ZhciBjPW5ldyBDdXN0b21FdmVudChhLHtkZXRhaWw6Yn0pLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuYm9keXx8ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJib2R5XCIpWzBdfSxlPWZ1bmN0aW9uKCl7dmFyIGE9ZCgpO2EmJmEuZGlzcGF0Y2hFdmVudChjKX07ZCgpP2UoKTp0cnVzdGUudXRpbC53YWl0Rm9yRWxlbShkLGUsMTAwLDJFNCl9fTt0cnVzdGUudXRpbC53YWl0Rm9yRWxlbT1cbmZ1bmN0aW9uKGEsYixjLGQpe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgTXV0YXRpb25PYnNlcnZlcil7dmFyIGU9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYyl7YSgpJiYoZS5kaXNjb25uZWN0KCksYigpKX0pO2Uub2JzZXJ2ZShkb2N1bWVudCx7YXR0cmlidXRlczohMSxjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMSxzdWJ0cmVlOiEwfSk7c2V0VGltZW91dChmdW5jdGlvbigpe2UuZGlzY29ubmVjdCgpfSxkKX1lbHNlIHRydXN0ZS51dGlsLmV4ZWN1dGVPbkNvbmRpdGlvbihhLGIsYyxkKX07dHJ1c3RlLnV0aWwuZXhlY3V0ZU9uQ29uZGl0aW9uPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEoKSliKCk7ZWxzZXt2YXIgZSxmPWZ1bmN0aW9uKCl7YSgpJiYoZT1jbGVhckludGVydmFsKGUpLGIoKSl9O2U9c2V0SW50ZXJ2YWwoZixjKTtmKCk7c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoZSl9LGQpfX07dHJ1c3RlLnV0aWwub3B0b3V0UmVxdWlyZWQ9XG5mdW5jdGlvbigpezE9PXRydXN0ZS5ldS5ub3RpY2VMUC5ndG0/KHRydXN0ZS51dGlsLmNvbnNlbnRSZXF1aXJlZGxldmVsKCksdHJ1c3RlLnV0aWwuY2FsbENNRW5kcG9pbnQoXCIvZGVmYXVsdGNvbnNlbnRtYW5hZ2VyL2dldE9wdE91dERvbWFpbnM/XCIsbnVsbCxmdW5jdGlvbihhKXsoYT1hLnJlc3BvbnNlVGV4dCkmJnRydXN0ZS51dGlsLnBhcnNlSlNPTihhKSYmdHJ1c3RlLnV0aWwuc2V0U3RvcmFnZSh0cnVzdGUuZXUuQ09PS0lFX0NBVEVHT1JZX05BTUUsYSwhMSl9KSk6dHJ1c3RlLmV1JiZ0cnVzdGUuZXUuY2xpY2tMaXN0ZW5lciYmdHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIoMyk7dHJ1c3RlLmV1LmJpbmRNYXAucHJlZkNvb2tpZT0wfTt0cnVzdGUudXRpbC5vcHRpbkFsbD1mdW5jdGlvbigpe3ZhciBhPXRydXN0ZS51dGlsLmNyZWF0ZUhpZ2hlc3RMZXZlbENvb2tpZSgpO3NlbGYubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odHJ1c3RlLmV1LkNPT0tJRV9DQVRFR09SWV9OQU1FKTtcbnRydXN0ZS5ldS5jY3BhLmRyb3BDY3BhQ29va2llKCExLFwiWVwiKTt0cnVzdGUudXRpbC5jcmVhdGVQcmVmZXJlbmNlRnJvbUNvb2tpZVZhbHVlKGEpfTt0cnVzdGUudXRpbC5pc0F1dG9ibG9jaz1mdW5jdGlvbigpe3JldHVybiEhKHRydXN0ZS5ldS5iaW5kTWFwLmZlYXQuYXV0b2Jsb2NrJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgdHJ1c3RhcmMmJnRydXN0YXJjLmNjbSYmdHJ1c3RhcmMuY2NtLmNhYil9O3RydXN0ZS51dGlsLmF1dG9ibG9ja0NvbnNlbnQ9ZnVuY3Rpb24oYSl7XCJmdW5jdGlvblwiPT10eXBlb2YgdHJ1c3RhcmMuY2NtLmNhYi5zdWJtaXRDb25zZW50JiYoXCJsb2FkaW5nXCI9PT10cnVzdGUudXRpbC5yZWFkeVN0YXRlKCk/c2VsZi5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLGZ1bmN0aW9uKGIpe3RydXN0YXJjLmNjbS5jYWIuc3VibWl0Q29uc2VudChhKX0pOnRydXN0YXJjLmNjbS5jYWIuc3VibWl0Q29uc2VudChhKSl9O3RydXN0ZS51dGlsLmlzQWNjZXB0QWxsPVxuZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuITE7dmFyIGI9dHJ1c3RlLnV0aWwuY3JlYXRlSGlnaGVzdExldmVsQ29va2llKCk7cmV0dXJuIFJlZ0V4cCgoXCJeXCIrYitcIiRcIikucmVwbGFjZSgvLC9nLFwiLlwiKSkudGVzdChhKX07dHJ1c3RlLnV0aWwuaHRtbERlY29kZT1mdW5jdGlvbihhKXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGEsXCJ0ZXh0L2h0bWxcIikuZG9jdW1lbnRFbGVtZW50LnRleHRDb250ZW50fTt0cnVzdGUudXRpbC5pc0dwYz1mdW5jdGlvbigpe3ZhciBhPXRydXN0ZS5ldS5iaW5kTWFwLGI9ITEsYz1cInRydWVcIiE9dHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX0NQUkFfR1BDSVNIT05PUkVELCEwKSYmdHJ1c3RlLmV1Lm5vdGljZUxQLnVzZXJJRDshYS5mZWF0LmdwY3x8KDEhPXRydXN0ZS5ldS5ub3RpY2VMUC5ndG18fGEuZmVhdC5pYWJ8fGEucHJlZkNvb2tpZSYmIWMpfHwoYj0hMCk7cmV0dXJuIGJ9O3RydXN0ZS51dGlsLmlzRG50PVxuZnVuY3Rpb24oKXtyZXR1cm4gdHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5kbnQmJjE9PXRydXN0ZS5ldS5ub3RpY2VMUC5ndG0mJiF0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmlhYiYmIXRydXN0ZS5ldS5iaW5kTWFwLnByZWZDb29raWV9O3RydXN0ZS51dGlsLmlzQ29uc2VudENlbnRlcj1mdW5jdGlvbigpe3JldHVybiB0cnVzdGUuZXUubm90aWNlTFAudXNlcklEJiZ0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmVuYWJsZVN0b3JlZENvbnNlbnQmJigxPT10cnVzdGUuZXUubm90aWNlTFAuZ3RtfHx0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmF1dG9ibG9jayl9O3RydXN0ZS51dGlsLmlzQ29uc2VudFJlc29sdmVkPWZ1bmN0aW9uKCl7dmFyIGE9dHJ1c3RlLmV1LmJpbmRNYXA7cmV0dXJuKCFhLmZlYXQuY3Jvc3NEb21haW58fGEuZmVhdC5pc0NvbnNlbnRSZXRyaWV2ZWQpJiYoIXRydXN0ZS51dGlsLmlzQ29uc2VudENlbnRlcigpfHxhLmZlYXQuaXNDb25zZW50Q2VudGVySW5pdGlhbGl6ZWQpfTtcbnRydXN0ZS51dGlsLmV4dHJhY3RPcmlnaW49ZnVuY3Rpb24oYSl7dmFyIGI7dHJ5e2I9KG5ldyBVUkwoYSkpLm9yaWdpbn1jYXRjaChjKXt0cnVzdGUudXRpbC50cmFjZShjKX1yZXR1cm4gYn07dHJ1c3RlLnV0aWwuZ3JhbnREZW55PWZ1bmN0aW9uKGEpe3JldHVybiBhP1wiZ3JhbnRlZFwiOlwiZGVuaWVkXCJ9O3RydXN0ZS51dGlsLkNPT0tJRV9OUz10cnVzdGUudXRpbC5DT09LSUVfTlN8fFwidHJ1c3RlLmNvb2tpZS5cIjt0cnVzdGUudXRpbC5pc0lFPS9NU0lFfFRyaWRlbnQvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO3RydXN0ZS51dGlsLmNvb2tpZT17aW5pdDpmdW5jdGlvbihhLGIsYyl7Yj1ifHxcInxfXCI7Yz1jfHxcIiwgXCI7YSYmKGE9YixiPWMsYz1hKTt2YXIgZD17fTtiLnNwbGl0KFwiXCIpLmZvckVhY2goZnVuY3Rpb24oYSxiKXtkW2FdPWNbYl19KTt0aGlzLnJlcGxhY2VDaGFyPWQ7dGhpcy5yZWdleD1SZWdFeHAoT2JqZWN0LmtleXMoZCkubWFwKGZ1bmN0aW9uKGEpe3JldHVyblwiXFxcXFwiK1xuYX0pLmpvaW4oXCJ8XCIpLFwiZ1wiKTtyZXR1cm4gdGhpc30sY29udmVydDpmdW5jdGlvbihhKXt2YXIgYj10aGlzO3JldHVybiBhJiYoXCJzdHJpbmdcIj09PXR5cGVvZiBhfHxhIGluc3RhbmNlb2YgU3RyaW5nKT9hLnJlcGxhY2UoYi5yZWdleCxmdW5jdGlvbihhKXtyZXR1cm4gYi5yZXBsYWNlQ2hhclthXX0pOmF9fS5pbml0KHRydXN0ZS5ldS5iaW5kTWFwLmZlYXQucmVwbGFjZURlbGltaXRlcik7dHJ1c3RlLnV0aWwucmVhZENvb2tpZT1mdW5jdGlvbihhLGIpe3ZhciBjPW51bGw7dHJ5e3ZhciBkPVJlZ0V4cChcIlxcXFxzKlwiK2EucmVwbGFjZShcIi5cIixcIlxcXFwuXCIpK1wiXFxcXHMqPVxcXFxzKihbXjtdKilcIikuZXhlYyhzZWxmLmRvY3VtZW50LmNvb2tpZSk7ZCYmMTxkLmxlbmd0aCYmKGM9ZFsxXSl9Y2F0Y2goZSl7dHJ1c3RlLnV0aWwudHJhY2UoZS5tZXNzYWdlLGUuc3RhY2spfSFjJiZiJiYodHJ1c3RlLnV0aWwuaXNJRT8oZD1cIm50X1wiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpLHRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZShcIm5vdGljZV90ZXN0XCIsXG5kLG51bGwsITEpLHRydXN0ZS51dGlsLnJlYWRDb29raWUoXCJub3RpY2VfdGVzdFwiLCExKT09ZD9zZWxmLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRydXN0ZS51dGlsLkNPT0tJRV9OUythKTpjPXRydXN0ZS51dGlsLnJlYWRDb29raWVTdG9yYWdlKGEpLHRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZShcIm5vdGljZV90ZXN0XCIsXCJcIixcIlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UXCIsITEpKTpjPXRydXN0ZS51dGlsLnJlYWRDb29raWVTdG9yYWdlKGEpKTtkPXRydXN0ZS51dGlsLmNvb2tpZS5jb252ZXJ0KGMpO2lmKGQhPT1jKXtpZihjPXRydXN0ZS51dGlsLmdldFN0b3JhZ2UodHJ1c3RlLnV0aWwuQ09PS0lFX05TK2EsITEpKXt2YXIgZj1uZXcgRGF0ZShjLmV4cGlyZXMpO2Y+bmV3IERhdGUmJnRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZShhLGMudmFsdWUsZi50b1N0cmluZygpLCEwKX1lbHNlIHRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZShhLGQpO2M9ZH1yZXR1cm4gY307dHJ1c3RlLnV0aWwuc2FtZXNpdGU9XG5mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe3ZhciBiO2I9KGI9UmVnRXhwKFwiVUNCcm93c2VyWy9dXCIsXCJpZ1wiKS5leGVjKGEpKSYmYi5sZW5ndGg/ITA6ITE7aWYoYil7dmFyIGM9UmVnRXhwKFwiVUNCcm93c2VyWy9dKFxcXFxkKylbLl0oXFxcXGQrKVsuXShcXFxcZCspWy5cXFxcZF0qIFwiLFwiaWdcIikuZXhlYyhhKTtjJiY0PT09Yy5sZW5ndGg/KGE9K2NbMV0sYj0rY1syXSxjPStjWzNdLGE9MTIhPWE/MTI8YToxMyE9Yj8xMzxiOjI8PWMpOmE9ITE7cmV0dXJuIWF9cmV0dXJuIGYoYSkmJmwoNTEsYSkmJiFsKDY3LGEpfWZ1bmN0aW9uIGMoYSxiLGMpe2lmKChjPVJlZ0V4cChcIlsoXU1hY2ludG9zaDsuKk1hYyBPUyBYIChcXFxcZCspXyhcXFxcZCspW19cXFxcZF0qLipbKV0gQXBwbGVXZWJLaXRbL11cIixcImlnXCIpLmV4ZWMoYykpJiYzPT09Yy5sZW5ndGgpe3ZhciBkPStjWzJdO3JldHVybitjWzFdPT09YSYmZD09PWJ9cmV0dXJuITF9ZnVuY3Rpb24gZChhKXt2YXIgYj1SZWdFeHAoXCJWZXJzaW9uWy9dLiogU2FmYXJpWy9dXCIsXG5cImlnXCIpLmV4ZWMoYSk7cmV0dXJuIGImJmIubGVuZ3RoPyFmKGEpOiExfWZ1bmN0aW9uIGUoYSl7cmV0dXJuKGE9UmVnRXhwKFwiXk1vemlsbGFbL11bLlxcXFxkXSsgWyhdTWFjaW50b3NoOy4qTWFjIE9TIFggW19cXFxcZF0rWyldIEFwcGxlV2ViS2l0Wy9dWy5cXFxcZF0rIFsoXUtIVE1MLCBsaWtlIEdlY2tvWyldJFwiLFwiaWdcIikuZXhlYyhhKSkmJmEubGVuZ3RoPyEwOiExfWZ1bmN0aW9uIGYoYSl7cmV0dXJuKGE9UmVnRXhwKFwiQ2hyb20oZXxpdW0pXCIsXCJpZ1wiKS5leGVjKGEpKSYmYS5sZW5ndGg/ITA6ITF9ZnVuY3Rpb24gbChhLGIpe3ZhciBjPVJlZ0V4cChcIkNocm9tW14gL10rWy9dKFxcXFxkKylbLlxcXFxkXSogXCIsXCJpZ1wiKS5leGVjKGIpO3JldHVybiBjJiYyPT09Yy5sZW5ndGg/K2NbMV0+PWE6ITF9cmV0dXJuIShmdW5jdGlvbihhLGIpe3ZhciBjPVJlZ0V4cChcIlsoXWlQLis7IENQVSAuKk9TIChcXFxcZCspW19cXFxcZF0qLipbKV0gQXBwbGVXZWJLaXRbL11cIixcImlnXCIpLmV4ZWMoYik7cmV0dXJuIGMmJlxuMj09PWMubGVuZ3RoPytjWzFdPT09YTohMX0oMTIsYSl8fGMoMTAsMTQsYSkmJihkKGEpfHxlKGEpKXx8YihhKSl9O3RydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZT1mdW5jdGlvbihhLGIsYyxkLGUpe3RydXN0ZS51dGlsLmNvb2tpZSYmIWUmJihiPXRydXN0ZS51dGlsLmNvb2tpZS5jb252ZXJ0KGIpKTtlPXRydXN0ZS5ldS5iaW5kTWFwfHx7fTt2YXIgZj1cIjsgZXhwaXJlcz1cIixsO2M/XCIwXCI9PWM/Zj1cIlwiOihsPW5ldyBEYXRlKGMpLGYrPWMpOihsPW5ldyBEYXRlLGwuc2V0RGF0ZShsLmdldERhdGUoKStlLmNvb2tpZUV4cGlyeSksZis9bC50b0dNVFN0cmluZygpKTtkJiZ0cnVzdGUudXRpbC5jcmVhdGVDb29raWVTdG9yYWdlJiZ0cnVzdGUudXRpbC5jcmVhdGVDb29raWVTdG9yYWdlKGEsYixsKTtkPXNlbGYubG9jYXRpb24uaG9zdG5hbWU7dmFyIHA9KGM9ISFkLm1hdGNoKC9eXFxkezAsM31cXC5cXGR7MCwzfVxcLlxcZHswLDN9XFwuXFxkezAsM30kLyl8fFwibG9jYWxob3N0XCI9PWQpP2Q6ZC5yZXBsYWNlKC9ed3d3XFwuLyxcblwiXCIpO2w9KGQ9XCJodHRwczpcIj09c2VsZi5sb2NhdGlvbi5wcm90b2NvbD9cIiBTZWN1cmU7XCI6XCJcIik/XCJOb25lO1wiOlwiU3RyaWN0O1wiO2Q9KHRydXN0ZS51dGlsLnNhbWVzaXRlJiYhdHJ1c3RlLnV0aWwuc2FtZXNpdGUobmF2aWdhdG9yLnVzZXJBZ2VudCk/XCJcIjpcIiBTYW1lU2l0ZT1cIitsKStkO2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB0cnVzdGUuZXUubm90aWNlTFAucGNvb2tpZSl7ZG9jdW1lbnQuY29va2llPWErXCI9O2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7IHBhdGg9Lztkb21haW49XCIrKGM/XCJcIjpcIi5cIikrcC5yZXBsYWNlKC9eXFwuLyxcIlwiKStcIjtcIitkO2lmKCFlLnRvcExldmVsRG9tYWluKXtsPTA7Zm9yKHZhciBxPXAuc3BsaXQoXCIuXCIpLG09W10saD1cIl9nZFwiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO2w8cS5sZW5ndGgtMSYmLTE9PWRvY3VtZW50LmNvb2tpZS5pbmRleE9mKGgrXCI9XCIraCk7KXA9cS5zbGljZSgtMS0rK2wpLmpvaW4oXCIuXCIpLGRvY3VtZW50LmNvb2tpZT1cbmgrXCI9XCIraCtcIjtkb21haW49XCIrcCtcIjtcIitkLG0ucHVzaChoKTtlLnRvcExldmVsRG9tYWluPXA7Zm9yKGw9MDtsPG0ubGVuZ3RoO2wrKylkb2N1bWVudC5jb29raWU9bVtsXStcIj07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDtkb21haW49XCIrcCtcIjtcIjtkb2N1bWVudC5jb29raWU9aCtcIj07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDtkb21haW49XCIrcCtcIjtcIitkfXA9ZS50b3BMZXZlbERvbWFpbn1zZWxmLmRvY3VtZW50LmNvb2tpZT1hK1wiPVwiK2IrZitcIjsgcGF0aD0vO2RvbWFpbj1cIisoYz9cIlwiOlwiLlwiKStwLnJlcGxhY2UoL15cXC4vLFwiXCIpK1wiO1wiK2R9O3RydXN0ZS51dGlsLnJlYWRDb29raWVTdG9yYWdlPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYj10cnVzdGUudXRpbC5DT09LSUVfTlMrYSxjPXRydXN0ZS51dGlsLmdldFN0b3JhZ2UoYiwhMSksZD10cnVzdGUudXRpbC5nZXRTdG9yYWdlKGIsITApO2lmKCFjJiYhZClyZXR1cm4gbnVsbDtpZihkKXJldHVybiB0cnVzdGUudXRpbC5jcmVhdGVDb29raWUoYSxcbmQudmFsdWUpLGQudmFsdWU7dmFyIGU9bmV3IERhdGUoYy5leHBpcmVzKTtpZihlPG5ldyBEYXRlKXRyeXtyZXR1cm4gc2VsZi5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShiKSxudWxsfWNhdGNoKGYpe3JldHVybiBudWxsfXRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZShhLGMudmFsdWUsZS50b1N0cmluZygpKTtyZXR1cm4gYy52YWx1ZX1jYXRjaChsKXt0cnVzdGUudXRpbC50cmFjZShsLm1lc3NhZ2UsbC5zdGFjayl9cmV0dXJuIG51bGx9O3RydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZVN0b3JhZ2U9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXt9O2QubmFtZT10cnVzdGUudXRpbC5DT09LSUVfTlMrYTtkLnZhbHVlPWI7ZC5wYXRoPVwiL1wiO2lmKFwiMFwiPT1jKWQuZXhwaXJlcz1jO2Vsc2UgaWYoYyl7YT1uZXcgRGF0ZShjKTtpZihpc05hTihhPWEuZ2V0VGltZSgpKzZFNCphLmdldFRpbWV6b25lT2Zmc2V0KCkpKXRocm93IEVycm9yKFwiSW52YWxpZCBEYXRlIFN0cmluZ1wiKTtkLmV4cGlyZXM9YX1lbHNlIGQuZXhwaXJlcz1cbihuZXcgRGF0ZSkuZ2V0VGltZSgpKzM0MTI4RTY7dHJ1c3RlLnV0aWwuc2V0U3RvcmFnZShkLm5hbWUsZCxkLmV4cGlyZXM8KG5ldyBEYXRlKS5nZXRUaW1lKCkpfTt0cnVzdGUudXRpbC5zZXRTdG9yYWdlPWZ1bmN0aW9uKGEsYixjKXtiPVwic3RyaW5nXCI9PXR5cGVvZiBifHxiIGluc3RhbmNlb2YgU3RyaW5nP2I6dHJ1c3RlLnV0aWwuZ2V0SlNPTihiKTt0cnl7dmFyIGQ9Yz9zZWxmLnNlc3Npb25TdG9yYWdlfHxzZWxmLmxvY2FsU3RvcmFnZTpzZWxmLmxvY2FsU3RvcmFnZTtkLnNldEl0ZW0/ZC5zZXRJdGVtKGEsYik6ZFthXT1ifWNhdGNoKGUpe3RydXN0ZS51dGlsLnRyYWNlKFwiQ3VycmVudCBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUgTG9jYWwgU3RvcmFnZVwiKX19O3RydXN0ZS51dGlsLmdldFN0b3JhZ2U9ZnVuY3Rpb24oYSxiKXt2YXIgYz1udWxsO3RyeXt2YXIgZD1iP3NlbGYuc2Vzc2lvblN0b3JhZ2V8fHNlbGYubG9jYWxTdG9yYWdlOnNlbGYubG9jYWxTdG9yYWdlLFxuYz1kLmdldEl0ZW0/ZC5nZXRJdGVtKGEpOmRbYV19Y2F0Y2goZSl7dHJ1c3RlLnV0aWwudHJhY2UoXCJDdXJyZW50IGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNSBMb2NhbCBTdG9yYWdlXCIpfXJldHVybiBjJiZ0cnVzdGUudXRpbC5wYXJzZUpTT04oYyl8fG51bGx9O3RydXN0ZS5ldS5wZXJmb3JtU2hvcGlmeUNvbnNlbnQ9ZnVuY3Rpb24oKXt2YXIgYT10cnVzdGUuZXUuYmluZE1hcDtpZihhLmZlYXQuZW5hYmxlU2hvcGlmeSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdy5TaG9waWZ5KXt3aW5kb3cuU2hvcGlmeS5sb2FkRmVhdHVyZXMoW3tuYW1lOlwiY29uc2VudC10cmFja2luZy1hcGlcIix2ZXJzaW9uOlwiMC4xXCJ9XSxmdW5jdGlvbihhKXthJiZ0cnVzdGUudXRpbC50cmFjZShhKX0pO3ZhciBiPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEpe2EmJnRydXN0ZS51dGlsLnRyYWNlKFwic2hvcGlmeSBhcGkgZmFpbGVkIFwiK0pTT04uc3RyaW5naWZ5KGEpKX19O3RydXN0ZS51dGlsLmlzQWNjZXB0QWxsKGEucHJlZkNvb2tpZSk/XG53aW5kb3cuU2hvcGlmeS5jdXN0b21lclByaXZhY3kuc2V0VHJhY2tpbmdDb25zZW50KCEwLGIpOlwiMFwiPT1hLnByZWZDb29raWUmJndpbmRvdy5TaG9waWZ5LmN1c3RvbWVyUHJpdmFjeS5zZXRUcmFja2luZ0NvbnNlbnQoITEsYil9fTt0cnVzdGUuZXUuZ2NtPWZ1bmN0aW9uKCl7dmFyIGE9dHJ1c3RlLmV1LmJpbmRNYXA7aWYoYS5wcmVmQ29va2llJiZhLmZlYXQuZ2NtJiYoYS5mZWF0LmdjbS5hZHN8fC0xPGEuZmVhdC5nY20uYW5hbHl0aWNzfHwtMTxhLmZlYXQuZ2NtLmFkUGVyc29uYWxpemF0aW9ufHwtMTxhLmZlYXQuZ2NtLmFkVXNlckRhdGF8fC0xPGEuZmVhdC5nY20uZnVuY3Rpb25hbGl0eXx8LTE8YS5mZWF0LmdjbS5wZXJzb25hbGl6YXRpb258fC0xPGEuZmVhdC5nY20uc2VjdXJpdHkpKXt2YXIgYj1hLnByZWZDb29raWUuc3BsaXQoL1ssfF0vKSxjPW5ldyBNYXA7Yi5mb3JFYWNoKGZ1bmN0aW9uKGEpe2Muc2V0KHBhcnNlSW50KGEpLDEpfSk7Yj17fTt0cnVzdGUuZXUuaW5zZXJ0Q29uc2VudFN0YXRlKGEuZmVhdC5nY20uYWRQZXJzb25hbGl6YXRpb24sXG5iLFwiYWRfcGVyc29uYWxpemF0aW9uXCIsYyk7dHJ1c3RlLmV1Lmluc2VydENvbnNlbnRTdGF0ZShhLmZlYXQuZ2NtLmFkcyxiLFwiYWRfc3RvcmFnZVwiLGMpO3RydXN0ZS5ldS5pbnNlcnRDb25zZW50U3RhdGUoYS5mZWF0LmdjbS5hZFVzZXJEYXRhLGIsXCJhZF91c2VyX2RhdGFcIixjKTt0cnVzdGUuZXUuaW5zZXJ0Q29uc2VudFN0YXRlKGEuZmVhdC5nY20uYW5hbHl0aWNzLGIsXCJhbmFseXRpY3Nfc3RvcmFnZVwiLGMpO3RydXN0ZS5ldS5pbnNlcnRDb25zZW50U3RhdGUoYS5mZWF0LmdjbS5mdW5jdGlvbmFsaXR5LGIsXCJmdW5jdGlvbmFsaXR5X3N0b3JhZ2VcIixjKTt0cnVzdGUuZXUuaW5zZXJ0Q29uc2VudFN0YXRlKGEuZmVhdC5nY20ucGVyc29uYWxpemF0aW9uLGIsXCJwZXJzb25hbGl6YXRpb25fc3RvcmFnZVwiLGMpO3RydXN0ZS5ldS5pbnNlcnRDb25zZW50U3RhdGUoYS5mZWF0LmdjbS5zZWN1cml0eSxiLFwic2VjdXJpdHlfc3RvcmFnZVwiLGMpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBndGFnJiZcbmd0YWcoXCJjb25zZW50XCIsXCJ1cGRhdGVcIixiKX19O3RydXN0ZS5ldS5pbnNlcnRDb25zZW50U3RhdGU9ZnVuY3Rpb24oYSxiLGMsZCl7LTE8YSYmKGJbY109dHJ1c3RlLnV0aWwuZ3JhbnREZW55KGQuZ2V0KGEpKSl9O3RydXN0ZS5ldS5tc2c9e19saXN0ZW5lcnM6W10sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihhKXt0cnVzdGUuZXUubXNnLl9saXN0ZW5lcnMucHVzaChhKX0sZGlzcGF0Y2hFdmVudDpmdW5jdGlvbihhKXtmb3IodmFyIGI9dHJ1c3RlLmV1Lm1zZy5fbGlzdGVuZXJzLmxlbmd0aDswPGItLTspdHJ5e3RydXN0ZS5ldS5tc2cuX2xpc3RlbmVyc1tiXShhKX1jYXRjaChjKXt9fSxwb3N0TWVzc2FnZTpmdW5jdGlvbihhLGIsYyl7c2VsZi5wb3N0TWVzc2FnZSYmKGJ8fHNlbGYpLnBvc3RNZXNzYWdlKGEsY3x8XCIqXCIpfSxtc2dMaXN0ZW5lcklFNzpmdW5jdGlvbihhKXt0cnVzdGUuZXUubXNnLmRpc3BhdGNoRXZlbnQoYSYmdHJ1c3RlLnV0aWwucGFyc2VKU09OKGEpfHxhKX0sXG5tc2dMaXN0ZW5lcjpmdW5jdGlvbihhKXthLmRhdGEmJnRydXN0ZS5ldS5tc2cub3JpZ2luU2V0LmhhcyhhLm9yaWdpbikmJihhPXRydXN0ZS51dGlsLnBhcnNlSlNPTihhLmRhdGEpLHRydXN0ZS5ldS5tc2cuZGlzcGF0Y2hFdmVudChhKSl9LGxvZzpmdW5jdGlvbihhLGIsYyl7dHJ1c3RlLmV1Lm5vdGljZUxQLmRlYnVnJiZcImZhbHNlXCIhPXRydXN0ZS5ldS5ub3RpY2VMUC5kZWJ1Z3x8KGE9XCJhY3Rpb249XCIrYStcIiZkb21haW49XCIrYi5kb21haW4rXCImYmVoYXZpb3I9XCIrYi5iZWhhdmlvcitcIiZjb3VudHJ5PVwiK2IuY291bnRyeStcIiZsYW5ndWFnZT1cIitiLmxhbmd1YWdlK1wiJnJhbmQ9XCIrTWF0aC5yYW5kb20oKStcIiZzZXNzaW9uPVwiK3RydXN0ZS5ldS5zZXNzaW9uK1wiJnVzZXJUeXBlPVwiK3RydXN0ZS5ldS51c2VyVHlwZSxjPT09Yi5tZXNzYWdlQmFzZVVybCYmKGErPVwiJnJlZmVyZXI9XCIrd2luZG93Lm9yaWdpbiksdHJ1c3RlLnV0aWwuc2VuZE1lc3NhZ2UoYSxjKSl9LHBvbGxlcjp7bGFzdEhhc2g6c2VsZi5sb2NhdGlvbi5oYXNoLFxuY2FsbGJhY2s6ITEsX2ludGVydmFsSWQ6MCxzdGFydDpmdW5jdGlvbigpe3RoaXMuY2FsbGJhY2smJiF0aGlzLl9pbnRlcnZhbElkJiYodGhpcy5faW50ZXJ2YWxJZD1zZXRJbnRlcnZhbCh0aGlzLl9hY3Rpb24sMjAwKSx0aGlzLmxhc3RIYXNoPXNlbGYubG9jYXRpb24uaGFzaCl9LHN0b3A6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsSWQpO3RoaXMuX2ludGVydmFsSWQ9MH0sX2FjdGlvbjpmdW5jdGlvbihhKXthPXRydXN0ZS5ldS5tc2cucG9sbGVyO2lmKGEuY2FsbGJhY2smJjAhPWEuX2ludGVydmFsSWQpe3ZhciBiPXNlbGYubG9jYXRpb24uaGFzaDtiJiZhLmxhc3RIYXNoIT1iJiYoc2VsZi5sb2NhdGlvbi5oYXNoPWEubGFzdEhhc2gsYS5jYWxsYmFjayhiLnN1YnN0cmluZygxKSksYS5sYXN0SGFzaD1zZWxmLmxvY2F0aW9uLmhhc2gpfX19LGluaXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFNldDtbYS5wcmVmbWdyVXJsLGEuSVJNSW50ZWdyYXRpb25VUkwsXG5hLmNkblVSTF0uZm9yRWFjaChmdW5jdGlvbihhKXthJiYoYT10cnVzdGUudXRpbC5leHRyYWN0T3JpZ2luKGEpKSYmYi5hZGQoYSl9KTt0aGlzLm9yaWdpblNldD1iO3JldHVybiB0aGlzfX0uaW5pdCh0cnVzdGUuZXUuYmluZE1hcCk7c2VsZi5wb3N0TWVzc2FnZT90cnVzdGUudXRpbC5hZGRMaXN0ZW5lcihzZWxmLFwibWVzc2FnZVwiLHRydXN0ZS5ldS5tc2cubXNnTGlzdGVuZXIpOnRydXN0ZS5ldS5tc2cucG9sbGVyLmNhbGxiYWNrPXRydXN0ZS5ldS5tc2cubXNnTGlzdGVuZXJJRTc7dHJ1c3RlLmV1Lm1vYmlsZT10cnVzdGUuZXUubW9iaWxlfHx7aXNNb2JpbGU6ITEsY2hlY2tJZk1vYmlsZTpmdW5jdGlvbigpe3ZhciBhPXNlbGYubmF2aWdhdG9yLnVzZXJBZ2VudHx8c2VsZi5uYXZpZ2F0b3IudmVuZG9yfHxzZWxmLm9wZXJhLGI9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcXC0pfGFpKGtvfHJuKXxhbChhdnxjYXxjbyl8YW1vaXxhbihleHxueXx5dyl8YXB0dXxhcihjaHxnbyl8YXModGV8dXMpfGF0dHd8YXUoZGl8XFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XFwtKG58dSl8YzU1XFwvfGNhcGl8Y2N3YXxjZG1cXC18Y2VsbHxjaHRtfGNsZGN8Y21kXFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXFwtc3xkZXZpfGRpY2F8ZG1vYnxkbyhjfHApb3xkcygxMnxcXC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXFwtNXxnXFwtbW98Z28oXFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFxcLShtfHB8dCl8aGVpXFwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcXC1jfGh0KGMoXFwtfCB8X3xhfGd8cHxzfHQpfHRwKXxodShhd3x0Yyl8aVxcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcXC18XFwvKXxpYnJvfGlkZWF8aWcwMXxpa29tfGltMWt8aW5ub3xpcGFxfGlyaXN8amEodHx2KWF8amJyb3xqZW11fGppZ3N8a2RkaXxrZWppfGtndCggfFxcLyl8a2xvbnxrcHQgfGt3Y1xcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XFwvKGt8bHx1KXw1MHw1NHxcXC1bYS13XSl8bGlid3xseW54fG0xXFwtd3xtM2dhfG01MFxcL3xtYSh0ZXx1aXx4byl8bWMoMDF8MjF8Y2EpfG1cXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVxcLXxvbnx0Znx3Znx3Z3x3dCl8bm9rKDZ8aSl8bnpwaHxvMmltfG9wKHRpfHd2KXxvcmFufG93ZzF8cDgwMHxwYW4oYXxkfHQpfHBkeGd8cGcoMTN8XFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXFwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XFwtZ3xxYVxcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XFwtWzItN118aVxcLSl8cXRla3xyMzgwfHI2MDB8cmFrc3xyaW05fHJvKHZlfHpvKXxzNTVcXC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcXC18b298cFxcLSl8c2RrXFwvfHNlKGMoXFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFxcLXxzaGFyfHNpZShcXC18bSl8c2tcXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcXC18dlxcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFxcLXx0ZGdcXC18dGVsKGl8bSl8dGltXFwtfHRcXC1tb3x0byhwbHxzaCl8dHMoNzB8bVxcLXxtM3xtNSl8dHhcXC05fHVwKFxcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcXC12KXx2bTQwfHZvZGF8dnVsY3x2eCg1Mnw1M3w2MHw2MXw3MHw4MHw4MXw4M3w4NXw5OCl8dzNjKFxcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1xcLXx5b3VyfHpldG98enRlXFwtL2k7XG5yZXR1cm4vTW9iaWxlfGlQKGhvbmV8b2R8YWQpfEFuZHJvaWR8QmxhY2tCZXJyeXxJRU1vYmlsZXxLaW5kbGV8TmV0RnJvbnR8U2lsay1BY2NlbGVyYXRlZHwoaHB3fHdlYilPU3xGZW5uZWN8TWluaW1vfE9wZXJhIE0ob2JpfGluaSl8QmxhemVyfERvbGZpbnxEb2xwaGlufFNreWZpcmV8WnVuZS9pLnRlc3QoYSl8fGIudGVzdChhLnN1YnN0cigwLDQpKX19O3RydXN0ZS5ldS5tb2JpbGUuaXNNb2JpbGU9dHJ1c3RlLmV1Lm1vYmlsZS5jaGVja0lmTW9iaWxlKCk7dHJ1c3RlLmV1Ll9saXN0ZW5lcnM9W107dHJ1c3RlLmV1LmNhbmNlbENtVGltZW91dD1udWxsO3RydXN0ZS5ldS5jbUxvYWRpbmc9ITE7dHJ1c3RlLmV1LmlybUxhbmRpbmdQYWdlUmVhY2hlZD0hMTt0cnVzdGUuZXUub3B0T3V0RG9uZT0hMTt0cnVzdGUuZXUuc3VibWl0dGVkSVJNPSExO3RydXN0ZS5ldS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7aWYoYSYmXCJmdW5jdGlvblwiPT10eXBlb2YgYSl7Zm9yKHZhciBjPVxuLTEsZD0wLGU9dHJ1c3RlLmV1Ll9saXN0ZW5lcnMubGVuZ3RoO2Q8ZTtkKyspaWYodHJ1c3RlLmV1Ll9saXN0ZW5lcnNbZF09PT1hKXtjPWQ7YnJlYWt9YysxJiZiP3RydXN0ZS5ldS5fbGlzdGVuZXJzLnNwbGljZShjLDEpOmMrMXx8dHJ1c3RlLmV1Ll9saXN0ZW5lcnMucHVzaChhKX19O3RydXN0ZS5ldS5fZGlzcGF0Y2hFdmVudD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10cnVzdGUuZXUuX2xpc3RlbmVycy5sZW5ndGg7MDxjLS07KXRyeXt0cnVzdGUuZXUuX2xpc3RlbmVyc1tjXShhLGIpfWNhdGNoKGQpe319OyhmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKGEsYyl7aWYoYyYmXCJ1c2VyYWN0aW9uY29tcGxldGVcIj09YS5ldmVudFN0YXR1cyl7dmFyIGQ9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0cnVzdGUuZXUucG9wZGl2Mik7ZCYmKGQuc3R5bGUubWluSGVpZ2h0PVwiMFwiLGQuc3R5bGUubWF4SGVpZ2h0PVwibm9uZVwiKTtpZihkPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHJ1c3RlLmV1LnBvcGRpdjMpKWQuc3R5bGUubWluSGVpZ2h0PVxuXCIwXCI7aWYoZD1zZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRydXN0ZS5ldS5wb3BmcmFtZSkpZC5zdHlsZS5taW5IZWlnaHQ9XCIwXCJ9fTtcInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fdGNmYXBpJiZfX3RjZmFwaShcImFkZEV2ZW50TGlzdGVuZXJcIiwyLGEpfSkoKTt0cnVzdGUuZXUuYWN0bWVzc2FnZT1mdW5jdGlvbihhKXt2YXIgYj10cnVzdGUuZXUuYmluZE1hcDtpZihhKWlmKFwicHJlZmVyZW5jZV9tYW5hZ2VyXCI9PWEuc291cmNlKXN3aXRjaChhLm1lc3NhZ2Upe2Nhc2UgXCJzdWJtaXRfcHJlZmVyZW5jZXNcIjp2YXIgYz1cIm9iamVjdFwiPT10eXBlb2YgYS5kYXRhP2EuZGF0YS52YWx1ZTphLmRhdGE7aWYoYyYmdHJ1c3RlLnV0aWwudmFsaWRDb25zZW50KGMpKXtiLnByZWZDb29raWU9Yzt0cnVzdGUudXRpbC50cmFjZShcImNoYW5naW5nIHByZWZlcmVuY2UgdG86IFwiK2IucHJlZkNvb2tpZSk7dHJ1c3RlLmV1LnBlcmZvcm1TaG9waWZ5Q29uc2VudCgpO3RydXN0ZS5ldS5nY20oKTthLmlzSW1wbGljaXR8fFxudHJ1c3RlLmV1LnJlc2V0R3BjRG50KCk7dHJ1c3RlLmJuJiZ0cnVzdGUuYm4uaGFuZGxlQmFubmVyRG9uZSYmdHJ1c3RlLmJuLmhhbmRsZUJhbm5lckRvbmUoKTtjPXRydXN0ZS51dGlsLmdldExvd2VzdENvbnNlbnQoYi5wcmVmQ29va2llKStcIjpcIitiLmRheFNpZ25hdHVyZTt0cnVzdGUudXRpbC5jcmVhdGVDb29raWUodHJ1c3RlLmV1LkNPT0tJRV9QUkVGX05BTUUsYyxhLmRhdGEuZXhwaXJlcywhMCk7Yz1iLnByZWZDb29raWUrXCI6XCIrYi5kYXhTaWduYXR1cmU7Yi5mZWF0LmNvbnNlbnRSZXNvbHV0aW9uJiYoYz1jK1wiOlwiK2IuYmVoYXZpb3IrXCIsXCIrYi5iZWhhdmlvck1hbmFnZXIpO3RydXN0ZS5ldS5jb25zZW50VUlEJiYhYi5wcmVmQ29va2llLmluY2x1ZGVzKFwiLTFcIikmJnRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX1VJRCx0cnVzdGUuZXUuY29uc2VudFVJRCxhLmRhdGEuZXhwaXJlcywhMCk7dHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llKHRydXN0ZS5ldS5DT09LSUVfR0RQUl9QUkVGX05BTUUsXG5jLGEuZGF0YS5leHBpcmVzLCEwKTt2YXIgZDtiLmZlYXQuZHJvcFBvcENvb2tpZSYmKGIuZmVhdC5pc1JlY29uc2VudEV2ZW50PSExLHRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX1JFUE9QLGIucG9wVGltZSxhLmRhdGEuZXhwaXJlcywhMCksYi5mZWF0LmNyb3NzRG9tYWluJiYoZD17cG9wVGltZTpiLnBvcFRpbWUsY29va2llRXhwaXJ5OnRydXN0ZS5ldS5iaW5kTWFwLmNvb2tpZUV4cGlyeX0pKTtiLmZlYXQuY3Jvc3NEb21haW4mJiF0cnVzdGUudXRpbC5pc0NvbnNlbnRDZW50ZXIoKSYmKGQmJmQuY29va2llRXhwaXJ5fHwoZD17Y29va2llRXhwaXJ5OnRydXN0ZS5ldS5iaW5kTWFwLmNvb2tpZUV4cGlyeX0pLHRydXN0ZS5ldS5wb3N0TWVzc2FnZVRvRnJhbWUoXCJzZXRQcmVmZXJlbmNlXCIsYyxcInRydXN0YXJjTm90aWNlRnJhbWVcIixkKSk7dHJ1c3RlLnV0aWwuZmlyZUN1c3RvbUV2ZW50KFwidHJ1c3RlLWNvbnNlbnRcIixiLnByZWZDb29raWUpO3RydXN0ZS51dGlsLmlzQ29uc2VudENlbnRlcigpJiZcbiFhLmRhdGEuZnJvbVVzZXJDb25zZW50U3RvcmFnZSYmKGQ9ZnVuY3Rpb24oKXt0cnVzdGUuZXUuZmxhZ3MuaXNMb2NhbFN0b3JhZ2VPcHRPdXRVcGRhdGVkPSExO3RydXN0ZS5ldS5zYXZlVXNlckNvbnNlbnQodHJ1c3RlLmV1Lm5vdGljZUxQLnVzZXJJRCxiLnByZWZDb29raWUsYi5kb21haW4sdHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX0NQUkFfRklOUFJPRywhMCksYi5mZWF0LmNyb3NzRG9tYWluLGxvY2FsU3RvcmFnZS5vcHRvdXRfZG9tYWlucyx0cnVzdGUudXRpbC5nZXRTdG9yYWdlKHRydXN0ZS51dGlsLkNPT0tJRV9OUyt0cnVzdGUuZXUuQ09PS0lFX0dEUFJfUFJFRl9OQU1FKS5leHBpcmVzLHRydXN0ZS51dGlsLnJlYWRDb29raWUodHJ1c3RlLmV1LkNPT0tJRV9DUFJBX0dQQ0lTSE9OT1JFRCwhMCksdHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX1VTUFJJVkFDWSwhMCksdHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX1JFUE9QLFxuITApKX0sYz1mdW5jdGlvbigpe3JldHVybiB0cnVzdGUuZXUuZmxhZ3MuaXNMb2NhbFN0b3JhZ2VPcHRPdXRVcGRhdGVkfSxiLmZlYXQuaXNHUENPcHRvdXRFdmVudD8odHJ1c3RlLmV1LmNwcmEuZHJvcEdQQ0lzSG9ub3JlZENvb2tpZSgpLHRydXN0ZS51dGlsLmV4ZWN1dGVPbkNvbmRpdGlvbihjLGQsNTAsNTUwMCkpOmQoKSk7aWYodHJ1c3RlLnV0aWwuaXNBdXRvYmxvY2soKSYmIWEuZGF0YS5za2lwQXV0b2Jsb2NrKWlmKGE9dHJ1c3RlLnV0aWwuY3JlYXRlSGlnaGVzdExldmVsQ29va2llKCksYi5wcmVmQ29va2llLmluY2x1ZGVzKGEpKXRydXN0ZS51dGlsLmF1dG9ibG9ja0NvbnNlbnQoKTtlbHNle2E9ITE7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5vcHRvdXRfZG9tYWlucztpZihlKXt2YXIgZj1KU09OLnBhcnNlKGUpO1wib2JqZWN0XCI9PXR5cGVvZiBmJiZPYmplY3Qua2V5cyhmKS5sZW5ndGgmJih0cnVzdGUudXRpbC5hdXRvYmxvY2tDb25zZW50KGYpLGE9ITApfX1jYXRjaChsKXt0cnVzdGUudXRpbC50cmFjZShsLm1lc3NhZ2UsXG5sLnN0YWNrKX1hfHx0cnVzdGUudXRpbC5hdXRvYmxvY2tDb25zZW50KCl9Yi5mZWF0LmlzUmVwb3BFdmVudD0hMTt0cnVzdGUuZXUuc2VuZGNsb3NlcmVwb3J0PSExO2lmKGE9dHJ1c3RlLmV1LmNhSWNvbilhLnNldEF0dHJpYnV0ZShcImNvbnNlbnRcIixiLnByZWZDb29raWUpLGEuc3R5bGUuZGlzcGxheT10cnVzdGUudXRpbC5nZXREaXNwbGF5UHJvcGVydHkoYSl9YnJlYWs7Y2FzZSBcImNtX2xvYWRpbmdcIjp0cnVzdGUuZXUuY21Mb2FkaW5nPSEwO2JyZWFrO2Nhc2UgXCJlbmFibGVfYWNcIjp0cnVzdGUuZXUubm90aWNlTFAuYWNjZXNzaWJpbGl0eT0hMDticmVhaztjYXNlIFwiY2hhbmdlX3BhbmVsXCI6Y2FzZSBcImNoYW5nZV9wYW5lbF9ub19zY3JvbGxcIjpcInN0cmluZ1wiPT10eXBlb2YgYS5kYXRhJiYobnVsbCE9dHJ1c3RlLmV1LmNhbmNlbENtVGltZW91dCYmKGNsZWFyVGltZW91dCh0cnVzdGUuZXUuY2FuY2VsQ21UaW1lb3V0KSx0cnVzdGUuZXUuY2FuY2VsQ21UaW1lb3V0PW51bGwpLGU9XG5wYXJzZUludChhLmRhdGEuc3BsaXQoXCJ4XCIpWzBdKSxpc05hTihlKXx8KHRydXN0ZS5ldS5yZXNpemVGcmFtZShiLndpZHRoLGUpLFwiY2hhbmdlX3BhbmVsXCI9PT1hLm1lc3NhZ2UmJihzZWxmLnNjcm9sbFRvKDAsMCksKGE9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0cnVzdGUuZXUucG9wZGl2MikpJiYoYS5zY3JvbGxUb3A9MCkpKSk7YnJlYWs7Y2FzZSBcInJlbW92ZV9pZnJhbWVcIjpcInRydWVcIiE9YS5kYXRhfHx0cnVzdGUuZXUucHJlZmNsb3NlKCl8fHNldFRpbWVvdXQodHJ1c3RlLmV1LnByZWZjbG9zZSw1MDApO2JyZWFrO2Nhc2UgXCJ0b2dnbGVfY2xvc2VfYnV0dG9uXCI6dHJ1c3RlLmV1LnRvZ2dsZUNsb3NlQnV0dG9uKGIsYS5kYXRhKTticmVhaztjYXNlIFwic2VuZF90cmFja2VyX2xpc3RcIjphLmRhdGEgaW5zdGFuY2VvZiBPYmplY3QmJnRydXN0ZS51dGlsLnNldFN0b3JhZ2UodHJ1c3RlLmV1LkNPT0tJRV9DQVRFR09SWV9OQU1FLGEuZGF0YSwhMSk7YnJlYWs7Y2FzZSBcImdldF90cmFja2VyX2xpc3RcIjphPVxue3ZhbHVlOnRydXN0ZS51dGlsLmdldFN0b3JhZ2UodHJ1c3RlLmV1LkNPT0tJRV9DQVRFR09SWV9OQU1FKXx8e319O3RydXN0ZS5ldS5wb3N0TWVzc2FnZVRvRnJhbWUoXCJvcHRvdXRfZG9tYWluc19zdGF0dXNcIixhKTticmVhaztjYXNlIFwic2hvd190aHJvYmJlclwiOlwidHJ1ZVwiPT1hLmRhdGE/dHJ1c3RlLmV1LnNob3dUaHJvYmJlcigpOnRydXN0ZS5ldS5oaWRlVGhyb2JiZXIoKTticmVhaztjYXNlIFwic2hvd19jbVwiOnRydXN0ZS5ldS5zaG93Q00oYS5kYXRhKTticmVhaztjYXNlIFwicmVxdWVzdF9wb3B1cF9tZXNzYWdlXCI6dHJ1c3RlLmV1LnBvc3RNZXNzYWdlVG9GcmFtZShcInBvcHVwX21lc3NhZ2VcIix0cnVzdGUuZXUuYmluZE1hcC5wb3B1cE1zZyk7YnJlYWs7Y2FzZSBcImNvb2tpZV9kYXRhXCI6aWYoIWIuZmVhdC5pc0NvbnNlbnRSZXRyaWV2ZWQpe2lmKGU9YS5kYXRhKWY9ZS52YWx1ZSxkPW5ldyBEYXRlKGUuZXhwaXJlcyksZiYmKGM9Zi5zcGxpdChcIjpcIiksYi5wcmVmQ29va2llPVxuY1swXSxiLmRheENvb2tpZT1jWzFdLHRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX0dEUFJfUFJFRl9OQU1FLGYsZCwhMCksdHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llKHRydXN0ZS5ldS5DT09LSUVfUFJFRl9OQU1FLHRydXN0ZS51dGlsLmdldExvd2VzdENvbnNlbnQoYi5wcmVmQ29va2llKStcIjpcIitiLmRheFNpZ25hdHVyZSxkLCEwKSksZS5wb3BUaW1lJiZ0cnVzdGUudXRpbC5jcmVhdGVDb29raWUodHJ1c3RlLmV1LkNPT0tJRV9SRVBPUCxlLnBvcFRpbWUsZCwhMCksbnVsbCE9YS5kYXRhLmNtYXBpQmwmJnRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZShcImNtYXBpX2d0bV9ibFwiLGEuZGF0YS5jbWFwaUJsLGQsITApLG51bGwhPWEuZGF0YS5jbWFwaVBydmN5JiZ0cnVzdGUudXRpbC5jcmVhdGVDb29raWUoXCJjbWFwaV9jb29raWVfcHJpdmFjeVwiLGEuZGF0YS5jbWFwaVBydmN5LGQsITApLG51bGwhPWEuZGF0YS5vcHRvdXREb21haW5zJiZ0cnVzdGUudXRpbC5zZXRTdG9yYWdlKHRydXN0ZS5ldS5DT09LSUVfQ0FURUdPUllfTkFNRSxcbmEuZGF0YS5vcHRvdXREb21haW5zLCExKTt0cnVzdGUudXRpbC5pc0NvbnNlbnRDZW50ZXIoKXx8KGIuZmVhdC5pc0NvbnNlbnRSZXRyaWV2ZWQ9ITApO3UoKX1icmVhaztjYXNlIFwidHdvX3N0ZXBfeWVzXCI6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRydXN0ZS5ibiYmKHRydXN0ZS51dGlsLnRyYWNlKFwiVHdvIFN0ZXAgT3B0LWluIENvbmZpcm1lZC5cIiksdHJ1c3RlLmJuLnR3b1N0ZXBDb25maXJtZWQmJnRydXN0ZS5ibi50d29TdGVwQ29uZmlybWVkKCkpO2JyZWFrO2Nhc2UgXCJ0d29fc3RlcF9ub1wiOlwidW5kZWZpbmVkXCIhPXR5cGVvZiB0cnVzdGUuYm4mJnRydXN0ZS5ibi50d29TdGVwRGVjbGluZWQmJnRydXN0ZS5ibi50d29TdGVwRGVjbGluZWQoKTticmVhaztjYXNlIFwiZmlucHJvZ195ZXNcIjpcInN0cmluZ1wiPT10eXBlb2YgYS5kYXRhJiYoYT1KU09OLnBhcnNlKGEuZGF0YSksYS5pc05vdGljZUZsb3c/dHJ1c3RlLmV1LmNwcmEueWVzKGEuY3ByYVNvdXJjZSk6dHJ1c3RlLmV1LmNwcmEuZHJvcENwcmFDb29raWUoITApLFxudHJ1c3RlLmV1LmhpZGVDbG9zZUJ1dHRvbighMSkpO2JyZWFrO2Nhc2UgXCJmaW5wcm9nX25vXCI6XCJzdHJpbmdcIj09dHlwZW9mIGEuZGF0YSYmKGE9SlNPTi5wYXJzZShhLmRhdGEpLGEuaXNOb3RpY2VGbG93P3RydXN0ZS5ldS5jcHJhLm5vKGEuY3ByYUNvbnNlbnQsYS5jcHJhU291cmNlKTp0cnVzdGUuZXUuY3ByYS5kcm9wQ3ByYUNvb2tpZSghMSksdHJ1c3RlLmV1LmhpZGVDbG9zZUJ1dHRvbighMSkpO2JyZWFrO2Nhc2UgXCJoaWRlX2Nsb3NlX2J1dHRvblwiOnRydXN0ZS5ldS5oaWRlQ2xvc2VCdXR0b24oITApO2JyZWFrO2Nhc2UgXCJmaW5pc2hlZF9vcHRfb3V0XCI6dHJ1c3RlLnV0aWwudHJhY2UoXCJhdXRvIG9wdCBvdXQgcHJvY2VzcyBmaW5pc2hlZFwiKTt0cnVzdGUuZXUub3B0T3V0RG9uZT0hMDticmVhaztjYXNlIFwidHJ1c3RlLWNsaWNrLXRvZ2dsZS1ldmVudFwiOnRydXN0ZS51dGlsLmZpcmVDdXN0b21FdmVudChhLmRhdGEse30pO2JyZWFrO2Nhc2UgXCJ0cnVzdGUtY2xpY2stYnV0dG9uLXN1Ym1pdFwiOnRydXN0ZS51dGlsLmZpcmVDdXN0b21FdmVudChhLmRhdGEsXG57fSk7YnJlYWs7Y2FzZSBcInRydXN0ZS1jbGljay1hY2NlcHQtYWxsLWJ1dHRvblwiOnRydXN0ZS51dGlsLmZpcmVDdXN0b21FdmVudChhLm1lc3NhZ2Use30pfWVsc2UgaWYoXCJ0cnVzdGFyY191c2VyX2NvbnNlbnRfY2xpZW50XCI9PWEuc291cmNlKW51bGwhPT1hLnVzZXJJRCYmKHRydXN0ZS5ldS5ub3RpY2VMUC51c2VySUQ9YS51c2VySUQsdHJ1c3RlLmV1LmdldFVzZXJDb25zZW50KGEudXNlcklELGZ1bmN0aW9uKGEsYil7dHJ1c3RlLmV1LnBvc3RVc2VyQ2VudGVyQ2FsbGJhY2soYSxiKX0pKTtlbHNlIGlmKFwidHJ1c3RhcmNfaXJtXCI9PWEuc291cmNlKXN3aXRjaChhLm1lc3NhZ2Upe2Nhc2UgXCJzdWJtaXRcIjppZihiLmZlYXQuZW5hYmxlSXJtQXV0b09wdE91dCYmdHJ1c3RlLmV1LmNwcmEuc2hvdWxkU2hvd0ZpblByb2coKSl7dHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIoNywhMCx7Y3ByYUNvbnNlbnQ6XCIwXCIsY3ByYVNvdXJjZTpcImlybS1vcHRvdXRcIn0pO2JyZWFrfWVsc2UgdHJ1c3RlLmV1LmlybS5vcHRvdXQoKTtcbmJyZWFrO2Nhc2UgXCJjb21wbGV0ZVwiOnRydXN0ZS5ldS5zdWJtaXR0ZWRJUk0mJih0cnVzdGUuZXUuaXJtTGFuZGluZ1BhZ2VSZWFjaGVkPSEwLHRydXN0ZS51dGlsLnRyYWNlKFwiaXJtIGxhbmRpbmcgcGFnZSByZWFjaGVkXCIpKTticmVhaztjYXNlIFwiZXJyb3JcIjp0cnVzdGUudXRpbC50cmFjZShcImVycm9yIGluIGlybSBwcm9jZXNzLiB0ZXJtaW5hdGluZyBvcHRvdXRcIiksdHJ1c3RlLmV1LnByZWZjbG9zZSgpfX07dHJ1c3RlLmV1LmhpZGVDbG9zZUJ1dHRvbj1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnRydXN0ZS1jbG9zZS1idXR0b24tY29udGFpbmVyXCIpO2ImJihhPyhiLnNldEF0dHJpYnV0ZShcImRhdGEtY2xvc2UtZGlzcGxheVwiLGIuc3R5bGUuZGlzcGxheSksYi5zdHlsZS5kaXNwbGF5PVwibm9uZVwiKTpcIm5vbmVcIj09PWIuc3R5bGUuZGlzcGxheSYmKGE9Yi5nZXRBdHRyaWJ1dGUoXCJkYXRhLWNsb3NlLWRpc3BsYXlcIiksbnVsbCE9PWEmJihiLnN0eWxlLmRpc3BsYXk9XG5hKSkpfTt0cnVzdGUuZXUucG9zdE1lc3NhZ2VUb0ZyYW1lPWZ1bmN0aW9uKGEsYixjLGQpe2M9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChjfHx0cnVzdGUuZXUucG9wZnJhbWUpO3ZhciBlPXRydXN0ZS51dGlsJiZ0cnVzdGUudXRpbC5nZXRKU09OfHx0cnVzdGUuY21hJiZ0cnVzdGUuY21hLmNoZWFwSlNPTnx8d2luZG93LkpTT04uc3RyaW5naWZ5O2E9e3NvdXJjZTpcIm5vdGljZV9qc1wiLG1lc3NhZ2U6YSxkYXRhOmJ9O2Zvcih2YXIgZiBpbiBkKWFbZl09ZFtmXTtjJiZjLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UmJmMuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShlKGEpLFwiKlwiKX07dHJ1c3RlLmV1LmFkZENsb3NlQnV0dG9uPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1cImlybVwiPT09YixlPXRydXN0ZS51dGlsLnZhbGlkQ29uc2VudChhLnByZWZDb29raWUpfHxhLmZlYXQuZ3BwLmdwcEFwcGxpZXMmJnRydXN0ZS5ldS5pc0dQQ0ROVEV2ZW50KCksZj0hZCYmYS5mZWF0Lm9wdG91dENsb3NlJiZcbiFlJiZcInJlcXVpcmVkXCIhPWM7aWYoYSBpbnN0YW5jZW9mIE9iamVjdCYmIWEuZmVhdC5pc1JlcG9wRXZlbnQmJlwic2hvd19sb3lhbHR5X21lc3NhZ2VcIiE9PWMmJihhLmF1dG9EaXNwbGF5Q2xvc2VCdXR0b258fGZ8fGR8fFwidXNcIj09YS5iZWhhdmlvck1hbmFnZXJ8fFwiaW1wbGllZFwiPT1hLmJlaGF2aW9yfHxcImV4cHJlc3NlZFwiPT1hLmJlaGF2aW9yJiZlKSl7dmFyIGw9XCJpcm1cIj09PWI/dHJ1c3RlLmV1LnByZWZjbG9zZWJ1dHRvbl9pcm06dHJ1c3RlLmV1LnByZWZjbG9zZWJ1dHRvbjtiPWw7ZiYmKGI9ZnVuY3Rpb24oKXt0cnVzdGUudXRpbC52YWxpZENvbnNlbnQoYS5wcmVmQ29va2llKT9sKCk6KHRydXN0ZS5ldS5wcmVmY2xvc2VidXR0b24oKSx0cnVzdGUuZXUuY3ByYS5zaG91bGRTaG93RmluUHJvZygpP3RydXN0ZS5ldS5jbGlja0xpc3RlbmVyKDcsITAse2NwcmFDb25zZW50OlwiMFwiLGNwcmFTb3VyY2U6XCJvcHRvdXQtY2xvc2VcIn0pOnRydXN0ZS51dGlsLm9wdG91dFJlcXVpcmVkKCkpfSk7XG50cnVzdGUuZXUubm90aWNlTFAub2Nsb3NlJiZcImZhbHNlXCIhPXRydXN0ZS5ldS5ub3RpY2VMUC5vY2xvc2UmJihmPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHJ1c3RlLmV1LnBvcGRpdikpJiZ0cnVzdGUudXRpbC5hZGRMaXN0ZW5lcihmLFwiY2xpY2tcIixiKTt2YXIgcD1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7aWYoZCl2YXIgcT1zZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRydXN0ZS5ldS5wb3BkaXYzX2lybSk7ZWxzZSBxPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHJ1c3RlLmV1LnBvcGRpdjMpLGEuY2xvc2VidG5pZD1cImNsb3NlYnRuLWlkXCIrTWF0aC5yYW5kb20oKSxwLmlkPWEuY2xvc2VidG5pZDt0cnVzdGUuZXUucG9wY2xvc2U9KFwicG9wLWNsb3NlXCIrTWF0aC5yYW5kb20oKSkucmVwbGFjZShcIi5cIixcIlwiKTtmPWEuY2xvc2VCdXR0b25Vcmx8fGEuYXNzZXRTZXJ2ZXJVUkwrXCJjbG9zZV9idG4ucG5nXCI7ZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIpO1xuZC5pZD10cnVzdGUuZXUucG9wY2xvc2U7ZC5zZXRBdHRyaWJ1dGUoXCJhbHRcIixhLmNsb3NlQnRuQWx0KTtkLnNyYz1mO2QuY2xhc3NOYW1lPVwidHJ1c3RlLWNsb3NlLWJ1dHRvbi1pbWdcIjtmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO2Yuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLFwiY2xvc2VcIik7Zi5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJidXR0b25cIik7dHJ1c3RlLnV0aWwuYWRkTGlzdGVuZXIoZixcImNsaWNrXCIsYik7Zi5jbGFzc05hbWU9XCJ0cnVzdGUtY2xvc2UtYnV0dG9uXCI7Zi50YWJJbmRleD0xO2YuYXBwZW5kQ2hpbGQoZCk7ZD1cIi50cnVzdGUtY2xvc2UtYnV0dG9uIHtjdXJzb3I6IHBvaW50ZXI7XCI7aWYoYS5zdHlsZXMuY2xvc2VidG5saW5rKWZvcih2YXIgbSBpbiBhLnN0eWxlcy5jbG9zZWJ0bmxpbmspZCs9bStcIjogXCIrYS5zdHlsZXMuY2xvc2VidG5saW5rW21dK1wiO1wiO2QrPVwifVwiO3AuYXBwZW5kQ2hpbGQoZik7cC5jbGFzc05hbWU9XCJ0cnVzdGUtY2xvc2UtYnV0dG9uLWNvbnRhaW5lclwiO1xuYj1cIi50cnVzdGUtY2xvc2UtYnV0dG9uLWNvbnRhaW5lciB7cG9zaXRpb246IGFic29sdXRlO3RvcDogLTIwcHg7cmlnaHQ6IC0yMHB4O1wiO2lmKGEuc3R5bGVzLmNsb3NlYnRuKWZvcihtIGluIGEuc3R5bGVzLmNsb3NlYnRuKWIrPW0rXCI6IFwiK2Euc3R5bGVzLmNsb3NlYnRuW21dK1wiO1wiO209XCIudHJ1c3RlLWNsb3NlLWJ1dHRvbi1pbWcge2JvcmRlcjogMDt9XCIrZCsoYitcIn1cIik7ZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7ZC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXCJ0ZXh0L2Nzc1wiKTsoYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW25vbmNlXVwiKSkmJmQuc2V0QXR0cmlidXRlKFwibm9uY2VcIixiLm5vbmNlfHxiLmdldEF0dHJpYnV0ZShcIm5vbmNlXCIpKTtkLmlubmVyVGV4dD1tO2RvY3VtZW50LmhlYWQuaW5zZXJ0QmVmb3JlKGQsZG9jdW1lbnQuaGVhZC5maXJzdENoaWxkKTt0cnVzdGUudXRpbC5hZGRMaXN0ZW5lcihwLFwia2V5ZG93blwiLGZ1bmN0aW9uKGEpe2F8fChhPVxud2luZG93LmV2ZW50KTt2YXIgYj1hLndoaWNofHxhLmtleUNvZGU7aWYoOT09YiYmIWEuc2hpZnRLZXkpYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6ZXZlbnQucmV0dXJuVmFsdWU9ITEscSYmcS5mb2N1cygpO2Vsc2UgaWYoMTM9PWJ8fDMyPT1iKWEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmV2ZW50LnJldHVyblZhbHVlPSExLChwLmZpcnN0RWxlbWVudENoaWxkfHxwLmNoaWxkcmVuWzBdKS5jbGljaygpfSk7cSYmKHRydXN0ZS51dGlsLmFkZExpc3RlbmVyKHEsXCJrZXlkb3duXCIsZnVuY3Rpb24oYSl7YXx8KGE9d2luZG93LmV2ZW50KTs5PT0oYS53aGljaHx8YS5rZXlDb2RlKSYmYS5zaGlmdEtleSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmV2ZW50LnJldHVyblZhbHVlPSExLChwLmZpcnN0RWxlbWVudENoaWxkfHxwLmNoaWxkcmVuWzBdKS5mb2N1cygpKX0pLHEuYXBwZW5kQ2hpbGQocCkpO3RydXN0ZS51dGlsLnRyYWNlKFwiQWRkaW5nIHRoZSBjbG9zZSBidXR0b25cIil9fTtcbnRydXN0ZS5ldS5jbGlja0xpc3RlbmVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10cnVzdGUuZXUuYmluZE1hcDtpZighKGQgaW5zdGFuY2VvZiBPYmplY3QpKXJldHVybiB0cnVzdGUuZXUuZXJyb3IoXCJjbGljayBsaXN0ZW5lciB3YXMgY2FsbGVkIGJ1dCBiaW5kaW5ncyBhcmUgdW5hdmFpbGJsZVwiKTt2YXIgZT10cnVzdGUudXRpbC5nZXRJbnRWYWx1ZShkLnByZWZDb29raWUpO2E9dHJ1c3RlLnV0aWwuZ2V0SW50VmFsdWUoYSk7dmFyIGY7Zj1cIm5vdGljZVwiO3N3aXRjaChhKXtjYXNlIDE6Zj1cInByZWZtZ3JcIjticmVhaztjYXNlIDI6Zj1cImFkdmFuY2VkXCI7YnJlYWs7Y2FzZSAzOmY9XCJyZXF1aXJlZFwiO2JyZWFrO2Nhc2UgNDpmPVwiaWFiX21hbmFnZV9zZXR0aW5nc1wiO2JyZWFrO2Nhc2UgNTpmPVwiaWFiX21hbmFnZV9zZXR0aW5nc19wYXJ0bmVyc1wiO2JyZWFrO2Nhc2UgNjpmPVwic2hvdzJuZE9wdGluU3RlcFwiO2JyZWFrO2Nhc2UgNzpmPVwic2hvd19sb3lhbHR5X21lc3NhZ2VcIjticmVhaztcbmRlZmF1bHQ6bnVsbCE9ZSYmMDw9ZSYmKGY9XCJwcmVmbWdyXCIpfXRydXN0ZS5ldS5wcmVmdmlldyhkLGYsITEsYyk7Ynx8dHJ1c3RlLmV1Ll9kaXNwYXRjaEV2ZW50KFwiY2xpY2tcIik7cmV0dXJuIGZ9O3RydXN0ZS5ldS5yZW9wZW5CYW5uZXI9ZnVuY3Rpb24oKXt2YXIgYT10cnVzdGUuZXUuYmluZE1hcDtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXJldHVybiB0cnVzdGUuZXUuZXJyb3IoXCJSZSBPcGVuIEJhbm5lciBjbGljayBsaXN0ZW5lciB3YXMgY2FsbGVkIGJ1dCBiaW5kaW5ncyBhcmUgdW5hdmFpbGFibGVcIik7aWYoYS5mZWF0LmNjcGFBcHBsaWVzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgdHJ1c3RlLmJuKXJldHVybiB0cnVzdGUuYm4ucmVvcGVuQmFubmVyJiZ0cnVzdGUuYm4ucmVvcGVuQmFubmVyKCk7dHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIoKX07dHJ1c3RlLmV1LmlybUNsaWNrTGlzdGVuZXI9ZnVuY3Rpb24oKXt2YXIgYT10cnVzdGUuZXUuYmluZE1hcDtpZighKGEgaW5zdGFuY2VvZlxuT2JqZWN0KSlyZXR1cm4gdHJ1c3RlLmV1LmVycm9yKFwiSVJNIGNsaWNrIGxpc3RlbmVyIHdhcyBjYWxsZWQgYnV0IGJpbmRpbmdzIGFyZSB1bmF2YWlsYmxlXCIpO3RydXN0ZS5ldS5pcm1WaWV3KGEpO3RydXN0ZS5ldS5fZGlzcGF0Y2hFdmVudChcImNsaWNrXCIpO3JldHVyblwiaXJtXCJ9O3RydXN0ZS5ldS50b2dnbGVDbG9zZUJ1dHRvbj1mdW5jdGlvbihhLGIpe2lmKGEmJmEuY2xvc2VidG5pZCl7dmFyIGM9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhLmNsb3NlYnRuaWQpO2MmJmMuY2xhc3NMaXN0LmFkZChudWxsIT1iJiZcInRydWVcIj09Yj9cInRydXN0ZV92aXNpYmlsaXR5X3Zpc2libGVcIjpcInRydXN0ZV92aXNpYmlsaXR5X2hpZGRlblwiKX19O3RydXN0ZS5ldS5yZXNpemVGcmFtZT1mdW5jdGlvbihhLGIsYyl7dHJ1c3RlLnV0aWwudHJhY2UoXCJyZXNpemluZyB0aGUgaWZyYW1lIHRvOlwiLGEsYixjKTthPXNlbGYuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3ZhciBkPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHJ1c3RlLmV1LnBvcGRpdjIpO1xuYz1wYXJzZUludChjKTtiPXBhcnNlSW50KGIpO3RydXN0ZS51dGlsLmlzSUU/KCFpc05hTihjKSYmKGQmJmQuc3R5bGUpJiYoZC5zdHlsZS5tYXJnaW5MZWZ0PWMrXCJweFwiKSxiJiYoZCYmZC5zdHlsZSkmJihkLnN0eWxlLmhlaWdodD1iK1wicHhcIiwoZD1zZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRydXN0ZS5ldS5wb3BmcmFtZSkpJiZkLnN0eWxlJiYoZC5zdHlsZS5oZWlnaHQ9YitcInB4XCIpLChkPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHJ1c3RlLmV1LnBvcGRpdjMpKSYmZC5zdHlsZSYmKGQuc3R5bGUuaGVpZ2h0PWIrXCJweFwiKSkpOighaXNOYU4oYykmJihhJiZhLnN0eWxlKSYmYS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tdHJ1c3RlLWJveC1vdmVybGF5LW1hcmdpbi1sZWZ0XCIsYytcInB4XCIpLGImJihhJiZhLnN0eWxlKSYmKGIrPVwicHhcIixhLnN0eWxlLnNldFByb3BlcnR5KFwiLS10cnVzdGUtYm94LW92ZXJsYXktaGVpZ2h0XCIsYiksYS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tdHJ1c3RlLXBvcGZyYW1lLWhlaWdodFwiLFxuYiksYS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tdHJ1c3RlLWJveC1vdmVybGF5LWlubmVyLWhlaWdodFwiLGIpKSl9O3RydXN0ZS5ldS5wcmVmY2xvc2VidXR0b249ZnVuY3Rpb24oKXt0cnVzdGUuZXUucHJlZmNsb3NlKCkmJnRydXN0ZS5ldS5fZGlzcGF0Y2hFdmVudChcImNsb3NlXCIpfTt0cnVzdGUuZXUucHJlZmNsb3NlYnV0dG9uX2lybT1mdW5jdGlvbigpe3RydXN0ZS5ldS5wcmVmY2xvc2VfaXJtKCkmJnRydXN0ZS5ldS5fZGlzcGF0Y2hFdmVudChcImNsb3NlXCIpfTt0cnVzdGUuZXUucmVtb3ZlSGlkZGVuPWZ1bmN0aW9uKCl7dHJ5e2Zvcih2YXIgYT1zZWxmLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwib2JqZWN0XCIpLGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtjJiYoYy5jbGFzc05hbWU9Yy5jbGFzc05hbWUucmVwbGFjZSgvXFxidHJ1c3RlX2hpZGRlblxcYi9nLFwiXCIpKX19Y2F0Y2goZCl7dHJ1c3RlLmV1LmVycm9yKFwiZXJyb3IgcmVtb3ZpbmcgdHJ1c3RlX2hpZGRlbiBmcm9tIGNsYXNzIG5hbWVzXCIsXG5kKX19O3RydXN0ZS5ldS5wcmVmY2xvc2U9ZnVuY3Rpb24oKXt0cnl7dmFyIGE9dHJ1c3RlLmV1LmJpbmRNYXA7aWYocG9wMj0ocG9wPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHJ1c3RlLmV1LnBvcGRpdikpJiZzZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRydXN0ZS5ldS5wb3BkaXYyKSl7cG9wLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocG9wKTtwb3AyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocG9wMik7dmFyIGI9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0cnVzdGUuZXUub3V0ZXJkaXYpO2ImJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKTt0cnVzdGUuZXUucmVtb3ZlSGlkZGVuKCk7dmFyIGM9c2VsZi5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwib2xkSGFzaFwiKTtjJiYoc2VsZi5sb2NhdGlvbi5oYXNoPWMsc2VsZi5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwib2xkSGFzaFwiKSk7dHJ1c3RlLnV0aWwudHJhY2UoXCJjbG9zaW5nIHRoZSBDTVwiKTtcbmlmKGEuZmVhdC5lbmFibGVSZXR1cm5Gb2N1cyYmYS5yZXR1cm5Gb2N1c1RvKXt2YXIgZD1zZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEucmV0dXJuRm9jdXNUbyk7ZCYmZC5mb2N1cygpO2EucmV0dXJuRm9jdXNUbz1cIlwifXRydXN0ZS5ldS5ncHAudXBkYXRlQ21wRGlzcGxheVN0YXR1cyhcImhpZGRlblwiKTtyZXR1cm4hMH19Y2F0Y2goZSl7dHJ1c3RlLmV1LmVycm9yKFwiZXJyb3IgaW4gcHJlZmNsb3NlXCIsZSl9cmV0dXJuITF9O3RydXN0ZS5ldS5wcmVmY2xvc2VfaXJtPWZ1bmN0aW9uKCl7dHJ5e2lmKHBvcDJfaXJtPShwb3BfaXJtPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHJ1c3RlLmV1LnBvcGRpdl9pcm0pKSYmc2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0cnVzdGUuZXUucG9wZGl2Ml9pcm0pKXtwb3BfaXJtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocG9wX2lybSk7cG9wMl9pcm0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwb3AyX2lybSk7dmFyIGE9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0cnVzdGUuZXUub3V0ZXJkaXZfaXJtKTtcbmEmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTt0cnVzdGUuZXUuaXJtTGFuZGluZ1BhZ2VSZWFjaGVkJiYhdHJ1c3RlLmV1Lm9wdE91dERvbmU/KHRydXN0ZS5ldS5zaG93Q00oITApLHRydXN0ZS5ldS50b2dnbGVDbG9zZUJ1dHRvbih0cnVzdGUuZXUuYmluZE1hcCxcInRydWVcIiksdHJ1c3RlLnV0aWwudHJhY2UoXCJzaG93aW5nIElSTVwiKSk6dHJ1c3RlLmV1LnByZWZjbG9zZSgpO3RydXN0ZS5ldS5yZW1vdmVIaWRkZW4oKTt0cnVzdGUudXRpbC50cmFjZShcImNsb3NpbmcgSVJNIGlmcmFtZVwiKTtyZXR1cm4hMH19Y2F0Y2goYil7dHJ1c3RlLmV1LmVycm9yKFwiZXJyb3IgaW4gcHJlZmNsb3NlX2lybVwiLGIpfXJldHVybiExfTt0cnVzdGUuZXUucnVuT25SZWFkeT1mdW5jdGlvbihhKXtkb2N1bWVudC5ib2R5P2EoKTp0cnVzdGUudXRpbC5hZGRMaXN0ZW5lcih3aW5kb3csXCJsb2FkXCIsYSl9O3RydXN0ZS5ldS5wcmVmdmlldz1mdW5jdGlvbihhLGIsYyxkKXtpZighYnx8IWEpcmV0dXJuIHRydXN0ZS5ldS5jbGlja0xpc3RlbmVyKG51bGwpO1xudHJ1c3RlLnV0aWwudHJhY2UoXCJvcGVuaW5nIHRoZSBDTVwiKTt0cnVzdGUuZXUucG9wZGl2PShcInBvcC1kaXZcIitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKFwiLlwiLFwiXCIpO3RydXN0ZS5ldS5wb3BkaXYyPShcInBvcC1kaXYyXCIrTWF0aC5yYW5kb20oKSkucmVwbGFjZShcIi5cIixcIlwiKTt0cnVzdGUuZXUucG9wZGl2Mz0oXCJwb3AtZGl2M1wiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoXCIuXCIsXCJcIik7dHJ1c3RlLmV1LnBvcGZyYW1lPShcInBvcC1mcmFtZVwiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoXCIuXCIsXCJcIik7dHJ1c3RlLmV1Lm91dGVyZGl2PShcInBvcC1vdXRlcmRpdlwiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoXCIuXCIsXCJcIik7dHJ1c3RlLnV0aWwudHJhY2UoXCJBY3Rpb24gaXM6IFwiK2IpO3RydXN0ZS5ldS5zZW5kY2xvc2VyZXBvcnQ9ITA7dmFyIGU9YS5wcmVmbWdyVXJsJiYoMDxhLnByZWZtZ3JVcmwuaW5kZXhPZihcIi50cnVzdGVcIil8fDA8YS5wcmVmbWdyVXJsLmluZGV4T2YoXCIudHJ1c3RhcmNcIikpP1xuYS5wcmVmbWdyVXJsOihcImh0dHBzOlwiPT1zZWxmLmxvY2F0aW9uLnByb3RvY29sP1wiaHR0cHM6XCI6XCJodHRwOlwiKStcIi8vY29uc2VudC1wcmVmLnRydXN0YXJjLmNvbS9cIixmPTA8ZS5pbmRleE9mKFwiP1wiKT9cIiZzaXRlPVwiOlwiP3NpdGU9XCIsbD10cnVzdGUuZXUubm90aWNlTFAub3N0eXBlLHA9dHJ1c3RlLmV1Lm5vdGljZUxQLmFjLGU9ZSsoZisoYS5kb21haW58fHNlbGYubG9jYXRpb24uaG9zdG5hbWUpK1wiJmNvdW50cnk9XCIrYS5jb3VudHJ5KSxlPSFhLmZlYXQuaXNSZWNvbnNlbnRFdmVudHx8XCJldVwiIT1hLmJlaGF2aW9yTWFuYWdlcnx8YS5pc0dkcHJMYXlvdXR8fGEuaXNJYWJMYXlvdXR8fGEuaXNHcHBMYXlvdXQ/ZSsoXCImYWN0aW9uPVwiK2IpOmUrXCImYWN0aW9uPW5vdGljZVwiO2Euc3RhdGUmJihlKz1cIiZzdGF0ZT1cIithLnN0YXRlKTthLmxvY2FsZSYmKGUrPVwiJmxvY2FsZT1cIithLmxvY2FsZSk7bnVsbCE9YS5wcmVmQ29va2llJiYoZSs9XCImcHJlZmVyZW5jZXM9XCIrZW5jb2RlVVJJKGEucHJlZkNvb2tpZSkpO1xuYS5iZWhhdmlvciYmKGUrPVwiJmJlaGF2aW9yPVwiK2EuYmVoYXZpb3IpO3RydXN0ZS5ldS5ub3RpY2VMUC5ndG0mJihlKz1cIiZndG09XCIrdHJ1c3RlLmV1Lm5vdGljZUxQLmd0bSk7YS5mZWF0LmF1dG9ibG9jayYmKGUrPVwiJmF1dG9ibG9jaz1cIithLmZlYXQuYXV0b2Jsb2NrKTtsJiYoZSs9XCImb3N0eXBlPVwiK2wpO1wiZXVcIiE9YS5iZWhhdmlvck1hbmFnZXJ8fChhLmlzR2RwckxheW91dHx8YS5pc0lhYkxheW91dHx8YS5pc0dwcExheW91dCl8fChlKz1cIiZsYXlvdXQ9ZGVmYXVsdF9ldVwiKTt0cnVzdGUuZXUuY29uc2VudFVJRCYmKGUrPVwiJnVpZD1cIit0cnVzdGUuZXUuY29uc2VudFVJRCk7cCYmKGUrPVwiJmFjY2Vzc2liaWxpdHk9dHJ1ZVwiKTtcInVuZGVmaW5lZFwiIT10eXBlb2YgdHJ1c3RlLmV1Lm5vdGljZUxQLmRlYnVnJiYoZSs9XCImZGVidWc9XCIrdHJ1c3RlLmV1Lm5vdGljZUxQLmRlYnVnKTtcInVuZGVmaW5lZFwiIT10eXBlb2YgdHJ1c3RlLmV1Lm5vdGljZUxQLnByaXZhY3lwb2xpY3lsaW5rdGV4dCYmXG4oZSs9XCImcHJpdmFjeXBvbGljeWxpbmt0ZXh0PVwiK3RydXN0ZS5ldS5ub3RpY2VMUC5wcml2YWN5cG9saWN5bGlua3RleHQpO1widW5kZWZpbmVkXCIhPXR5cGVvZiB0cnVzdGUuZXUubm90aWNlTFAucHJpdmFjeXBvbGljeWxpbmsmJihlKz1cIiZwcml2YWN5cG9saWN5bGluaz1cIitlbmNvZGVVUklDb21wb25lbnQodHJ1c3RlLmV1Lm5vdGljZUxQLnByaXZhY3lwb2xpY3lsaW5rKSk7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRydXN0ZS5ldS5ub3RpY2VMUC5jb29raWVMaW5rVGV4dCYmKGUrPVwiJmNvb2tpZUxpbmtUZXh0PVwiK3RydXN0ZS5ldS5ub3RpY2VMUC5jb29raWVMaW5rVGV4dCk7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRydXN0ZS5ldS5ub3RpY2VMUC5jb29raWVMaW5rJiYoZSs9XCImY29va2llTGluaz1cIitlbmNvZGVVUklDb21wb25lbnQodHJ1c3RlLmV1Lm5vdGljZUxQLmNvb2tpZUxpbmspKTthLmZlYXQuaXNSZWNvbnNlbnRFdmVudCYmKGUrPVwiJnJlcG9wPXRydWVcIik7YS5mZWF0LmlhYiYmXG4oZSs9XCImaWFiPXRydWVcIik7YS5mZWF0LmVuYWJsZUFDU3RyaW5nJiYoZSs9XCImYXRwPXRydWVcIik7YS5mZWF0LmVuYWJsZVR3b1N0ZXBWZXJpZmljYXRpb24mJihlKz1cIiZ0d29TdGVwPXRydWVcIik7YS5mZWF0Lm9wdG91dENsb3NlJiYoZSs9XCImb3B0b3V0Q2xvc2U9dHJ1ZVwiKTthLmJlaGF2aW9yTWFuYWdlciYmKGUrPVwiJmJlaGF2aW9yTWFuYWdlcj1cIithLmJlaGF2aW9yTWFuYWdlcik7YS5zZWVkVXJsJiYoZSs9XCImc2VlZF91cmw9XCIrYS5zZWVkVXJsKTthLmNtSWQmJihlKz1cIiZjbV9pZD1cIithLmNtSWQpO2EuZmVhdC5lbmFibGVDUFJBJiYoZSs9XCImaXNfY3ByYT1cIithLmZlYXQuZW5hYmxlQ1BSQSxlKz1cIiZpc19maW5wcm9nPVwiK3RydXN0ZS5ldS5jcHJhLnNob3VsZFNob3dGaW5Qcm9nKCksYS5mZWF0LmlzR1BDT3B0b3V0RXZlbnQ/ZSs9XCImaXNfZ3BjPVwiK2EuZmVhdC5ncGM6YS5mZWF0LmlzRE5UT3B0b3V0RXZlbnQmJihlKz1cIiZpc19kbnQ9XCIrYS5mZWF0LmRudCksZCYmKGUrPVxuXCImY3ByYV9jb25zZW50PVwiK2QuY3ByYUNvbnNlbnQsZSs9XCImY3ByYV9zb3VyY2U9XCIrZC5jcHJhU291cmNlKSk7dmFyIGU9ZSsoXCImaXJtPVwiK2MpKyhcIiZmcm9tPVwiK2EuaWNvbkJhc2VVcmwpLGU9ZSsoXCImc2Vzc2lvbj1cIit0cnVzdGUuZXUuc2Vzc2lvbiksZT1lKyhcIiZ1c2VyVHlwZT1cIit0cnVzdGUuZXUudXNlclR5cGUpLHE9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRydXN0ZS1jb25zZW50LWlmcmFtZVwiKXx8c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO3Euc3JjPWU7dmFyIG09ISFzZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwidHJ1c3RlLWNvbnNlbnQtaWZyYW1lXCIpO2lmKG0pdHJ1c3RlLmV1LnBvcGZyYW1lPVwidHJ1c3RlLWNvbnNlbnQtaWZyYW1lXCI7ZWxzZXt0cnVzdGUuZXUuY3JlYXRlUHJlZlZpZXdTdHlsZShhLFwiaWFiX21hbmFnZV9zZXR0aW5nc1wiPT1ifHxcImlhYl9tYW5hZ2Vfc2V0dGluZ3NfcGFydG5lcnNcIj09Yik7dmFyIGg9XG5zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7aC5zZXRBdHRyaWJ1dGUoXCJpZFwiLHRydXN0ZS5ldS5wb3BkaXYpO2guY2xhc3NOYW1lPVwidHJ1c3RlX292ZXJsYXlcIjt2YXIgbjthLm91dGVyZGl2JiYobj1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksbi5pZD10cnVzdGUuZXUub3V0ZXJkaXYsbi5jbGFzc05hbWU9XCJ0cnVzdGVfY21fb3V0ZXJkaXZcIik7dmFyIHI9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3Iuc2V0QXR0cmlidXRlKFwiaWRcIix0cnVzdGUuZXUucG9wZGl2Mik7ci5jbGFzc05hbWU9XCJ0cnVzdGVfYm94X292ZXJsYXlcIjt2YXIgcz1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7cy5zZXRBdHRyaWJ1dGUoXCJpZFwiLHRydXN0ZS5ldS5wb3BkaXYzKTtzLmNsYXNzTmFtZT1cInRydXN0ZV9ib3hfb3ZlcmxheV9pbm5lclwiO3MudGFiSW5kZXg9XCIxXCI7cy5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJkaWFsb2dcIik7cy5zZXRBdHRyaWJ1dGUoXCJhcmlhLW1vZGFsXCIsXG5cInRydWVcIik7cy5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsdHJ1c3RlLnV0aWwuaHRtbERlY29kZSh0cnVzdGUuZXUuYmluZE1hcC5sb2NhbGl6YXRpb24ubW9kYWxUaXRsZSkpO2Q9YS5leHRlcm5hbGNzcztlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTsoZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW25vbmNlXVwiKSkmJmUuc2V0QXR0cmlidXRlKFwibm9uY2VcIixmLm5vbmNlfHxmLmdldEF0dHJpYnV0ZShcIm5vbmNlXCIpKTtlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpKTtzLmFwcGVuZENoaWxkKGUpO3ZhciB0PXNlbGYuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt0LmNsYXNzTmFtZT1cInRydXN0ZV9ib3hfb3ZlcmxheV9ib3JkZXJcIjtxLmlkPXRydXN0ZS5ldS5wb3BmcmFtZTtxLnRpdGxlPWEuaWZyYW1lVGl0bGU7cS50YWJJbmRleD1cIjFcIjtxLnNjcm9sbGluZz1cIm5vXCI7cS5jbGFzc05hbWU9XCJ0cnVzdGVfcG9wZnJhbWVcIjtxLnNldEF0dHJpYnV0ZShcIm5hbWVcIixcblwidHJ1c3RhcmNfY21cIil9cS5vbmxvYWQ9ZnVuY3Rpb24oYSl7KHEucGFyZW50RWxlbWVudHx8cS5wYXJlbnROb2RlWzBdKS5mb2N1cygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0cnVzdGUuZXUuY21Mb2FkaW5nfHwobnVsbCE9dHJ1c3RlLmV1LmNhbmNlbENtVGltZW91dCYmKGNsZWFyVGltZW91dCh0cnVzdGUuZXUuY2FuY2VsQ21UaW1lb3V0KSx0cnVzdGUuZXUuY2FuY2VsQ21UaW1lb3V0PW51bGwpLHRydXN0ZS5ldS5zZW5kY2xvc2VyZXBvcnQ9ITEsdHJ1c3RlLmV1LnByZWZjbG9zZWJ1dHRvbigpKX0sdHJ1c3RlLmV1LmJpbmRNYXAuY21UaW1lb3V0KX07IWN8fCF0cnVzdGUuZXUub3B0T3V0RG9uZSYmdHJ1c3RlLmV1LmlybUxhbmRpbmdQYWdlUmVhY2hlZHx8KGguc3R5bGUudmlzaWJpbGl0eT1cImhpZGRlblwiLGEub3V0ZXJkaXY/bi5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCI6ci5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCIsdHJ1c3RlLnV0aWwudHJhY2UoXCJDTSBoaWRkZW5cIikpO1xudHJ1c3RlLmV1LmlmcmFtZT1xO3RydXN0ZS5ldS5ydW5PblJlYWR5KGZ1bmN0aW9uKCl7bXx8KHNlbGYuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoKSxuPyhzZWxmLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksbi5hcHBlbmRDaGlsZChyKSxuLmFwcGVuZENoaWxkKHQpKTooc2VsZi5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpLHNlbGYuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KSksci5hcHBlbmRDaGlsZChzKSxzLmFwcGVuZENoaWxkKHQpLHMuYXBwZW5kQ2hpbGQocSkpO3RyeXtmb3IodmFyIGM9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcIm9iamVjdFwiKSxkPWMubGVuZ3RoOzA8ZC0tOyl7dmFyIGY9Y1tkXTtmJiYoZi5jbGFzc05hbWUrPVwiIHRydXN0ZV9oaWRkZW5cIil9fWNhdGNoKGwpe310cnVzdGUuZXUuYWRkQ2xvc2VCdXR0b24oYSxcImNtXCIsYik7dHJ1c3RlLnV0aWwuYWRkTGlzdGVuZXIoc2VsZi5kb2N1bWVudCxcImZvY3VzXCIsZnVuY3Rpb24oYSl7dmFyIGI9XG5zZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRydXN0ZS5ldS5wb3BkaXYzKTtiJiYhYi5jb250YWlucyhhLnRhcmdldCkmJihhLnN0b3BQcm9wYWdhdGlvbigpLGIuZm9jdXMoKSl9KTtzZWxmLmxvY2F0aW9uLmhhc2gmJnNlbGYuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIm9sZEhhc2hcIixzZWxmLmxvY2F0aW9uLmhhc2gpO3NlbGYuc2Nyb2xsVG8oMCwwKTt0cnVzdGUuZXUuX2Rpc3BhdGNoRXZlbnQoXCJvcGVuXCIpO3RydXN0ZS51dGlsLmZpcmVDdXN0b21FdmVudChcInRydXN0ZS1pZnJhbWUtb3BlblwiLHt9KTt0cnVzdGUuZXUuZ3BwLnVwZGF0ZUNtcERpc3BsYXlTdGF0dXMoXCJ2aXNpYmxlXCIpO3RydXN0ZS5ldS5jYW5jZWxDbVRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3RydXN0ZS5ldS5zZW5kY2xvc2VyZXBvcnQ9ITE7dHJ1c3RlLmV1LnByZWZjbG9zZWJ1dHRvbigpO3RydXN0ZS5ldS5jYW5jZWxDbVRpbWVvdXQ9bnVsbH0sM0U0KX0pfTt0cnVzdGUuZXUuaXJtVmlldz1cbmZ1bmN0aW9uKGEpe3RydXN0ZS51dGlsLnRyYWNlKFwib3BlbmluZyBJUk0gaWZyYW1lXCIpO3RydXN0ZS5ldS5pcm1MYW5kaW5nUGFnZVJlYWNoZWQ9ITE7dHJ1c3RlLmV1Lm9wdE91dERvbmU9ITE7dHJ1c3RlLmV1LnN1Ym1pdHRlZElSTT0hMTt0cnVzdGUuZXUucG9wZGl2X2lybT0oXCJwb3AtZGl2LWlybVwiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoXCIuXCIsXCJcIik7dHJ1c3RlLmV1LnBvcGRpdjJfaXJtPShcInBvcC1kaXYyLWlybVwiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoXCIuXCIsXCJcIik7dHJ1c3RlLmV1LnBvcGRpdjNfaXJtPShcInBvcC1kaXYzLWlybVwiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoXCIuXCIsXCJcIik7dHJ1c3RlLmV1LnBvcGZyYW1lX2lybT0oXCJwb3AtZnJhbWUtaXJtXCIrTWF0aC5yYW5kb20oKSkucmVwbGFjZShcIi5cIixcIlwiKTt0cnVzdGUuZXUub3V0ZXJkaXZfaXJtPShcInBvcC1vdXRlcmRpdi1pcm1cIitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKFwiLlwiLFwiXCIpO3ZhciBiPWEuSVJNSW50ZWdyYXRpb25VUkwsXG5jPXNlbGYuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKSxkPSEhc2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRydXN0ZS1jb25zZW50LWlmcmFtZS1pcm1cIik7aWYoIWQpe3RydXN0ZS5ldS5jcmVhdGVJUk1WaWV3U3R5bGUoYSk7dmFyIGU9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2Uuc2V0QXR0cmlidXRlKFwiaWRcIix0cnVzdGUuZXUucG9wZGl2X2lybSk7ZS5jbGFzc05hbWU9XCJ0cnVzdGVfaXJtX292ZXJsYXlcIjt2YXIgZjthLm91dGVyZGl2JiYoZj1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksZi5pZD10cnVzdGUuZXUub3V0ZXJkaXZfaXJtLGYuY2xhc3NOYW1lPVwidHJ1c3RlX2lybV9vdXRlcmRpdlwiKTt2YXIgbD1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7bC5zZXRBdHRyaWJ1dGUoXCJpZFwiLHRydXN0ZS5ldS5wb3BkaXYyX2lybSk7bC5jbGFzc05hbWU9XCJ0cnVzdGVfaXJtX2JveF9vdmVybGF5XCI7dHJ1c3RlLmV1LmFwcGx5Q1NTKGEuc3R5bGVzLmJveF9vdmVybGF5LFxubCk7dmFyIHA9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3Auc2V0QXR0cmlidXRlKFwiaWRcIix0cnVzdGUuZXUucG9wZGl2M19pcm0pO3AuY2xhc3NOYW1lPVwidHJ1c3RlX2lybV9ib3hfb3ZlcmxheV9pbm5lclwiO3AudGFiSW5kZXg9XCIxXCI7dmFyIHE9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3EuY2xhc3NOYW1lPVwidHJ1c3RlX2lybV9ib3hfb3ZlcmxheV9ib3JkZXJcIn1jPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0cnVzdGUtY29uc2VudC1pZnJhbWUtaXJtXCIpfHxzZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7Yy5zcmM9YjtkP3RydXN0ZS5ldS5wb3BmcmFtZV9pcm09XCJ0cnVzdGUtY29uc2VudC1pZnJhbWUtaXJtXCI6KGMuaWQ9dHJ1c3RlLmV1LnBvcGZyYW1lX2lybSxjLnRhYkluZGV4PVwiMFwiLGMuc2Nyb2xsaW5nPVwieWVzXCIsYy5jbGFzc05hbWU9XCJ0cnVzdGVfaXJtX3BvcGZyYW1lXCIpO3RydXN0ZS5ldS5pZnJhbWVfaXJtPVxuYzt0cnVzdGUuZXUucnVuT25SZWFkeShmdW5jdGlvbigpe2R8fChzZWxmLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksZj8oc2VsZi5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpLGYuYXBwZW5kQ2hpbGQobCksZi5hcHBlbmRDaGlsZChxKSk6KHNlbGYuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsKSxzZWxmLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocSkpLGwuYXBwZW5kQ2hpbGQocCkscC5hcHBlbmRDaGlsZChxKSxwLmFwcGVuZENoaWxkKGMpKTt0cnl7Zm9yKHZhciBiPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJvYmplY3RcIiksaD1iLmxlbmd0aDswPGgtLTspe3ZhciBuPWJbaF07biYmKG4uY2xhc3NOYW1lKz1cIiB0cnVzdGVfaGlkZGVuXCIpfX1jYXRjaChyKXt9dHJ1c3RlLmV1LmFkZENsb3NlQnV0dG9uKGEsXCJpcm1cIik7dHJ1c3RlLnV0aWwuYWRkTGlzdGVuZXIoc2VsZi5kb2N1bWVudCxcImZvY3VzXCIsZnVuY3Rpb24oYSl7dmFyIGI9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0cnVzdGUuZXUucG9wZGl2M19pcm0pO1xuYiYmIWIuY29udGFpbnMoYS50YXJnZXQpJiYoYS5zdG9wUHJvcGFnYXRpb24oKSxiLmZvY3VzKCkpfSk7c2VsZi5zY3JvbGxUbygwLDApO3RydXN0ZS5ldS5fZGlzcGF0Y2hFdmVudChcIm9wZW5cIik7dHJ1c3RlLnV0aWwuZmlyZUN1c3RvbUV2ZW50KFwidHJ1c3RlLWlmcmFtZS1vcGVuXCIse30pO3RydXN0ZS5ldS5ncHAudXBkYXRlQ21wRGlzcGxheVN0YXR1cyhcInZpc2libGVcIil9KX07dHJ1c3RlLmV1LmZpbmRIaWdoZXN0WkluZGV4PWZ1bmN0aW9uKGEpe2E9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShhfHxcIipcIik7Zm9yKHZhciBiPTAsYyxkPTA7ZDxhLmxlbmd0aDtkKyspaWYoc2VsZi5nZXRDb21wdXRlZFN0eWxlfHxhW2RdLnN0eWxlLnBvc2l0aW9uJiZcInN0YXRpY1wiIT1hW2RdLnN0eWxlLnBvc2l0aW9uKWM9cGFyc2VJbnQodHJ1c3RlLnV0aWwuZ2V0U3R5bGUoYVtkXSxcInotaW5kZXhcIikpLGM+YiYmKGI9Yyk7cmV0dXJuIGJ9O3RydXN0ZS5ldS5vbkJlZm9yZVVubG9hZD1cbmZ1bmN0aW9uKGEpe3JldHVyblwiUGxlYXNlIGFsbG93IG9wdG91dHMgdG8gZmluaXNoIGJlZm9yZSBuYXZpZ2F0aW5nIG91dCBvZiB0aGUgcGFnZSFcIn07dHJ1c3RlLmV1LnNob3dUaHJvYmJlcj1mdW5jdGlvbigpe3ZhciBhPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0cnVzdGUuZXUudGhyb2JiZXJcIik7aWYoIWEpe2E9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2EuaWQ9XCJ0cnVzdGUuZXUudGhyb2JiZXJcIjt2YXIgYj1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIik7Yi5zcmM9dHJ1c3RlLmV1LmJpbmRNYXAuYXNzZXRTZXJ2ZXJVUkwrXCJ0aHJvYmJlci5naWZcIjtiLnN0eWxlLmJvcmRlcj1cIjBcIjtiLnN0eWxlLm9wYWNpdHk9XCIwLjVcIjtiLnN0eWxlLndpZHRoPVwiMTZweFwiO2Iuc3R5bGUuaGVpZ2h0PVwiMTZweFwiO2Iuc3R5bGUudmVydGljYWxBbGlnbj1cIm1pZGRsZVwiO2Iuc3R5bGUubWFyZ2luUmlnaHQ9XCI1cHhcIjthLmFwcGVuZENoaWxkKGIpO1xuYS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIlByb2Nlc3NpbmcgT3B0LW91dHNcIikpO2Euc3R5bGUucG9zaXRpb249XCJmaXhlZFwiO2Euc3R5bGUuYm90dG9tPVwiMFwiO2Euc3R5bGUucmlnaHQ9XCIyMHB4XCI7YS5zdHlsZS5iYWNrZ3JvdW5kPVwid2hpdGVcIjthLnN0eWxlLmJvcmRlcj1cIjFweCBzb2xpZCAjZGRkZGRkXCI7YS5zdHlsZS5ib3JkZXJCb3R0b209XCJub25lXCI7YS5zdHlsZS5mb250PVwiMTBweCBBcmlhbCxzYW5zLXNlcmlmXCI7YS5zdHlsZS5jb2xvcj1cIiM2NzY3NjdcIjthLnN0eWxlLnBhZGRpbmc9XCI1cHggMTBweFwifXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJib2R5XCIpWzBdLmFwcGVuZENoaWxkKGEpO3NlbGYub25iZWZvcmV1bmxvYWR8fChzZWxmLm9uYmVmb3JldW5sb2FkPXRydXN0ZS5ldS5vbkJlZm9yZVVubG9hZCl9O3RydXN0ZS5ldS5oaWRlVGhyb2JiZXI9ZnVuY3Rpb24oYSl7KGF8fChhPXNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0cnVzdGUuZXUudGhyb2JiZXJcIikpKSYmXG5hLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTtzZWxmLm9uYmVmb3JldW5sb2FkPT10cnVzdGUuZXUub25CZWZvcmVVbmxvYWQmJihzZWxmLm9uYmVmb3JldW5sb2FkPW51bGwpfTt0cnVzdGUuZXUuc2hvd0NNPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYixjLGQ9XCJmYWxzZVwiPT1hP1widHJ1c3RlX3Zpc2liaWxpdHlfaGlkZGVuXCI6YT9cInRydXN0ZV92aXNpYmlsaXR5X3Zpc2libGVcIjpcInRydXN0ZV92aXNpYmlsaXR5X2hpZGRlblwiO2lmKGM9KGI9c2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0cnVzdGUuZXUucG9wZGl2KSkmJnNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHJ1c3RlLmV1LnBvcGRpdjIpKXJldHVybiBiLmNsYXNzTGlzdC5hZGQoZCksYy5jbGFzc0xpc3QuYWRkKGQpLHRydXN0ZS5ldS5ncHAudXBkYXRlQ21wRGlzcGxheVN0YXR1cyhhP1widmlzaWJsZVwiOlwiaGlkZGVuXCIpLCEwfWNhdGNoKGUpe3RydXN0ZS5ldS5lcnJvcihcIkVycm9yIHNob3dpbmcgQ01cIixcbmUpfXJldHVybiExfTt0cnVzdGUuZXUuZXJyb3I9ZnVuY3Rpb24oYSxiLGMpe2M9Y3x8e307Yy5tb2Q9XCJldVwiO2MuZG9tYWluPWMuZG9tYWlufHx0cnVzdGUuZXUuYmluZE1hcCYmdHJ1c3RlLmV1LmJpbmRNYXAuZG9tYWlufHx2b2lkIDA7Yy5jYWxsZXI9c2VsZi5sb2NhdGlvbi5ob3N0bmFtZTtjLnBhdGg9c2VsZi5sb2NhdGlvbi5wYXRobmFtZTt0cnVzdGUudXRpbC5lcnJvcihhLGIsYyl9O3RydXN0ZS5ldS5hcHBseUNTUz1mdW5jdGlvbihhLGIpe2lmKGEpZm9yKHZhciBjIGluIGEpYi5zdHlsZVtjXT1hW2NdfTt0cnVzdGUuZXUuY3JlYXRlUHJlZlZpZXdTdHlsZT1mdW5jdGlvbihhLGIpe3ZhciBjPXNlbGYuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGQ9Mip0cnVzdGUuZXUuZmluZEhpZ2hlc3RaSW5kZXgoXCJkaXZcIiksZT1NYXRoLm1pbigyMTQ3NDgzNjQ3LGQrMkU2KSxmPVwiIFwiLGw9XCIgXCIscD1cIiBcIixxPVwiIFwiO2Eud2lkdGgmJihmPVwibWF4LXdpZHRoOiBcIithLndpZHRoK1wicHg7XCIpO1xuYj8obD1cIm1pbi1oZWlnaHQ6IDQwMHB4O1wiLGMuc3R5bGUuc2V0UHJvcGVydHkoXCItLXRydXN0ZS1ib3gtb3ZlcmxheS1oZWlnaHRcIixcImF1dG9cIikscT1wPVwibWluLWhlaWdodDogNDAwcHg7XCIpOmEuaGVpZ2h0JiZjLnN0eWxlLnNldFByb3BlcnR5KFwiLS10cnVzdGUtYm94LW92ZXJsYXktaGVpZ2h0XCIsYS5oZWlnaHQrXCJweFwiKTtjLnN0eWxlLnNldFByb3BlcnR5KFwiLS10cnVzdGUtYm94LW92ZXJsYXktbWFyZ2luLWxlZnRcIixcImF1dG9cIik7Yy5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tdHJ1c3RlLWJveC1vdmVybGF5LWlubmVyLWhlaWdodFwiLFwiMTAwJVwiKTtjLnN0eWxlLnNldFByb3BlcnR5KFwiLS10cnVzdGUtcG9wZnJhbWUtaGVpZ2h0XCIsXCIxMDAlXCIpO2M9XCIudHJ1c3RlX292ZXJsYXkge2JhY2tncm91bmQtY29sb3I6ICMwMDA7b3BhY2l0eTogMC40O3Bvc2l0aW9uOiBmaXhlZDt6LWluZGV4OiBcIitNYXRoLm1pbigyMTQ3NDgzNjQ2LGQrMUU2KStcIjt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7dG9wOiAwcHg7bGVmdDogMHB4O292ZXJmbG93OiBoaWRkZW47ZmlsdGVyOiBBbHBoYShPcGFjaXR5OiA4MCk7XCI7XG5pZihhLnN0eWxlcy5vdmVybGF5KWZvcih2YXIgbSBpbiBhLnN0eWxlcy5vdmVybGF5KWMrPW0rXCI6IFwiK2Euc3R5bGVzLm92ZXJsYXlbbV0rXCI7XCI7Zj1cIi50cnVzdGVfYm94X292ZXJsYXkge3Bvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OlwiK2UrXCI7dG9wOiAwcHg7bGVmdDogMHB4O2JvdHRvbTogMHB4O3JpZ2h0OiAwcHg7Ym9yZGVyLXJhZGl1czogNXB4O3BhZGRpbmc6IDEwcHg7d2lkdGg6IDgwJTtcIitmK2wrXCJoZWlnaHQ6IHZhcigtLXRydXN0ZS1ib3gtb3ZlcmxheS1oZWlnaHQpO21pbi13aWR0aDogMjIwcHg7bWFyZ2luOiAyMHB4IGF1dG8gMjBweCB2YXIoLS10cnVzdGUtYm94LW92ZXJsYXktbWFyZ2luLWxlZnQpO2JveC1zaXppbmc6IGNvbnRlbnQtYm94O1wiO2lmKGEuc3R5bGVzLmJveF9vdmVybGF5KWZvcihtIGluIGEuc3R5bGVzLmJveF9vdmVybGF5KWYrPW0rXCI6IFwiK2Euc3R5bGVzLmJveF9vdmVybGF5W21dK1wiO1wiO2w9XCIudHJ1c3RlX2JveF9vdmVybGF5X2JvcmRlciB7ZGlzcGxheTogYmxvY2s7YmFja2dyb3VuZDogIzAwMDtvcGFjaXR5OiAwLjM7d2lkdGg6IGNhbGMoMTAwJSArIDIwcHgpO2hlaWdodDogY2FsYygxMDAlICsgMjBweCk7cG9zaXRpb246IGFic29sdXRlO3RvcDogLTEwcHg7bGVmdDogLTEwcHg7XCI7XG5pZihhLnN0eWxlcy5ib3hfb3ZlcmxheV9ib3JkZXIpZm9yKG0gaW4gYS5zdHlsZXMuYm94X292ZXJsYXlfYm9yZGVyKWwrPW0rXCI6IFwiK2Euc3R5bGVzLmJveF9vdmVybGF5X2JvcmRlclttXStcIjtcIjtlPVwiLnRydXN0ZV9jbV9vdXRlcmRpdiB7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO292ZXJmbG93OiBzY3JvbGw7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtsZWZ0OiAwO3otaW5kZXg6IFwiK2UrXCI7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1wiO2lmKGEuc3R5bGVzLm91dGVyZGl2KWZvcihtIGluIGEuc3R5bGVzLm91dGVyZGl2KWUrPW0rXCI6IFwiK2Euc3R5bGVzLm91dGVyZGl2W21dK1wiO1wiO3E9XCIudHJ1c3RlX3BvcGZyYW1lIHtib3JkZXI6IDBweDtib3JkZXItcmFkaXVzOiAycHg7b3ZlcmZsb3c6IGhpZGRlbjtiYWNrZ3JvdW5kOiAjZmZmO2Rpc3BsYXk6IGJsb2NrO3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDBweDtsZWZ0OiAwcHg7d2lkdGg6IDEwMCU7aGVpZ2h0OiB2YXIoLS10cnVzdGUtcG9wZnJhbWUtaGVpZ2h0KTtcIitcbnE7aWYoYS5zdHlsZXMuaW5uZXJfaWZyYW1lKWZvcihtIGluIGEuc3R5bGVzLmlubmVyX2lmcmFtZSlxKz1tK1wiOiBcIithLnN0eWxlcy5pbm5lcl9pZnJhbWVbbV0rXCI7XCI7cD1jK1wifVwiKyhmK1wifVwiKSsoXCIudHJ1c3RlX2JveF9vdmVybGF5X2lubmVyIHtwb3NpdGlvbjogcmVsYXRpdmU7d2lkdGg6IDEwMCU7aGVpZ2h0OiB2YXIoLS10cnVzdGUtYm94LW92ZXJsYXktaW5uZXItaGVpZ2h0KTtvdXRsaW5lOiBub25lO1wiKyArcCtcIn1cIikrKGwrXCJ9XCIpKyhlK1wifVwiKSsocStcIn1cIik7bT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7bS5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXCJ0ZXh0L2Nzc1wiKTsocT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW25vbmNlXVwiKSkmJm0uc2V0QXR0cmlidXRlKFwibm9uY2VcIixxLm5vbmNlfHxxLmdldEF0dHJpYnV0ZShcIm5vbmNlXCIpKTttLmlubmVyVGV4dD1wO2RvY3VtZW50LmhlYWQuaW5zZXJ0QmVmb3JlKG0sZG9jdW1lbnQuaGVhZC5maXJzdENoaWxkKTtcbnRydXN0ZS5ldS5jcmVhdGVDb21tb25TdHlsZSgpfTt0cnVzdGUuZXUuY3JlYXRlSVJNVmlld1N0eWxlPWZ1bmN0aW9uKGEpe3ZhciBiPXNlbGYuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGM9Mip0cnVzdGUuZXUuZmluZEhpZ2hlc3RaSW5kZXgoXCJkaXZcIiksZD1NYXRoLm1pbigyMTQ3NDgzNjQ3LGMrMkU2KSxlPVwiIFwiO2Eud2lkdGgmJihlPVwibWF4LXdpZHRoOiBcIithLmlybVdpZHRoK1wicHg7XCIpO2Iuc3R5bGUuc2V0UHJvcGVydHkoXCItLXRydXN0ZS1ib3gtb3ZlcmxheS1tYXJnaW4tbGVmdFwiLFwiYXV0b1wiKTtiLnN0eWxlLnNldFByb3BlcnR5KFwiLS10cnVzdGUtYm94LW92ZXJsYXktaW5uZXItaGVpZ2h0XCIsXCIxMDAlXCIpO2Iuc3R5bGUuc2V0UHJvcGVydHkoXCItLXRydXN0ZS1wb3BmcmFtZS1oZWlnaHRcIixcIjEwMCVcIik7Yj1cIi50cnVzdGVfaXJtX292ZXJsYXkge2JhY2tncm91bmQtY29sb3I6ICMwMDA7b3BhY2l0eTogMC40O3Bvc2l0aW9uOiBmaXhlZDt6LWluZGV4OiBcIitNYXRoLm1pbigyMTQ3NDgzNjQ2LFxuYysxRTYpK1wiO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTt0b3A6IDBweDtsZWZ0OiAwcHg7b3ZlcmZsb3c6IGhpZGRlbjtmaWx0ZXI6IEFscGhhKE9wYWNpdHk6IDgwKTtcIjtpZihhLnN0eWxlcy5vdmVybGF5KWZvcih2YXIgZiBpbiBhLnN0eWxlcy5vdmVybGF5KWIrPWYrXCI6IFwiK2Euc3R5bGVzLm92ZXJsYXlbZl0rXCI7XCI7ZT1cIi50cnVzdGVfaXJtX2JveF9vdmVybGF5IHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDpcIitkK1wiO3RvcDogMHB4O2xlZnQ6IDBweDtib3R0b206IDBweDtyaWdodDogMHB4O2JvcmRlci1yYWRpdXM6IDVweDtwYWRkaW5nOiAxMHB4O3dpZHRoOiA4MCU7XCIrZStcImhlaWdodDogXCIrYS5pcm1IZWlnaHQrXCJweDttaW4td2lkdGg6IDIyMHB4O21hcmdpbjogMjBweCBhdXRvIDIwcHggdmFyKC0tdHJ1c3RlLWJveC1vdmVybGF5LW1hcmdpbi1sZWZ0KTtib3gtc2l6aW5nOiBjb250ZW50LWJveDtcIjtpZihhLnN0eWxlcy5ib3hfb3ZlcmxheSlmb3IoZiBpbiBhLnN0eWxlcy5ib3hfb3ZlcmxheSllKz1cbmYrXCI6IFwiK2Euc3R5bGVzLmJveF9vdmVybGF5W2ZdK1wiO1wiO2M9XCIudHJ1c3RlX2lybV9ib3hfb3ZlcmxheV9ib3JkZXIge2Rpc3BsYXk6IGJsb2NrO2JhY2tncm91bmQ6ICMwMDA7b3BhY2l0eTogMC4zO3dpZHRoOiBjYWxjKDEwMCUgKyAyMHB4KTtoZWlnaHQ6IGNhbGMoMTAwJSArIDIwcHgpO3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IC0xMHB4O2xlZnQ6IC0xMHB4O1wiO2lmKGEuc3R5bGVzLmJveF9vdmVybGF5X2JvcmRlcilmb3IoZiBpbiBhLnN0eWxlcy5ib3hfb3ZlcmxheV9ib3JkZXIpYys9ZitcIjogXCIrYS5zdHlsZXMuYm94X292ZXJsYXlfYm9yZGVyW2ZdK1wiO1wiO2Q9XCIudHJ1c3RlX2lybV9vdXRlcmRpdiB7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO292ZXJmbG93OiBzY3JvbGw7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtsZWZ0OiAwO3otaW5kZXg6IFwiK2QrXCI7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1wiO2lmKGEuc3R5bGVzLm91dGVyZGl2KWZvcihmIGluIGEuc3R5bGVzLm91dGVyZGl2KWQrPVxuZitcIjogXCIrYS5zdHlsZXMub3V0ZXJkaXZbZl0rXCI7XCI7dmFyIGw9XCIudHJ1c3RlX2lybV9wb3BmcmFtZSB7Ym9yZGVyOiAwcHg7Ym9yZGVyLXJhZGl1czogMnB4O292ZXJmbG93OiBzY3JvbGw7YmFja2dyb3VuZDogI2ZmZjtkaXNwbGF5OiBibG9jaztwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwcHg7bGVmdDogMHB4O3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcIjtpZihhLnN0eWxlcy5pbm5lcl9pZnJhbWUpZm9yKGYgaW4gYS5zdHlsZXMuaW5uZXJfaWZyYW1lKWwrPWYrXCI6IFwiK2Euc3R5bGVzLmlubmVyX2lmcmFtZVtmXStcIjtcIjthPWIrXCJ9XCIrKGUrXCJ9XCIpK1wiLnRydXN0ZV9pcm1fYm94X292ZXJsYXlfaW5uZXIge3Bvc2l0aW9uOiByZWxhdGl2ZTt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7b3V0bGluZTogbm9uZTt9XCIrKGMrXCJ9XCIpKyhkK1wifVwiKSsobCtcIn1cIik7Zj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7Zi5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXCJ0ZXh0L2Nzc1wiKTtcbihkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJbbm9uY2VdXCIpKSYmZi5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLGQubm9uY2V8fGQuZ2V0QXR0cmlidXRlKFwibm9uY2VcIikpO2YuaW5uZXJUZXh0PWE7ZG9jdW1lbnQuaGVhZC5pbnNlcnRCZWZvcmUoZixkb2N1bWVudC5oZWFkLmZpcnN0Q2hpbGQpO3RydXN0ZS5ldS5jcmVhdGVDb21tb25TdHlsZSgpfTt0cnVzdGUuZXUuY3JlYXRlQ29tbW9uU3R5bGU9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7YS5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXCJ0ZXh0L2Nzc1wiKTt2YXIgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW25vbmNlXVwiKTtiJiZhLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsYi5ub25jZXx8Yi5nZXRBdHRyaWJ1dGUoXCJub25jZVwiKSk7YS5pbm5lclRleHQ9XCIudHJ1c3RlX3Zpc2liaWxpdHlfdmlzaWJsZSB7dmlzaWJpbGl0eTogdmlzaWJsZTt9LnRydXN0ZV92aXNpYmlsaXR5X2hpZGRlbiB7dmlzaWJpbGl0eTogaGlkZGVuO31cIjtcbmRvY3VtZW50LmhlYWQuaW5zZXJ0QmVmb3JlKGEsZG9jdW1lbnQuaGVhZC5maXJzdENoaWxkKX07dHJ1c3RlLmV1Lmljb249e307dHJ1c3RlLmV1Lmljb24ubWFrZT1mdW5jdGlvbihhKXtpZighdHJ1c3RlLmV1LnByZWZCdXR0b24pe3ZhciBiPXRydXN0ZS5ldS5iaW5kTWFwLGM9dHJ1c3RlLmV1LnByZWZCdXR0b249c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtiLmZlYXQuZW5hYmxlSWNvblJvbGUmJmMuc2V0QXR0cmlidXRlKFwicm9sZVwiLGIuaWNvblJvbGU/Yi5pY29uUm9sZTpcInRydWVcIj09Yi50ZXh0P1wibGlua1wiOlwiYnV0dG9uXCIpO3RydXN0ZS51dGlsLmFkZExpc3RlbmVyKGMsXCJjbGlja1wiLGEpO2MuaWQ9dHJ1c3RlLmV1Lmljb25pZD0oXCJpY29uLWlkXCIrTWF0aC5yYW5kb20oKSkucmVwbGFjZShcIi5cIixcIlwiKTtjLnRhYkluZGV4PVwiMFwiO2Muc2V0QXR0cmlidXRlKFwibGFuZ1wiLGIubGFuZ3VhZ2UpO2IuZmVhdC5lbmFibGVIYXNQb3BVcCYmYy5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhhc3BvcHVwXCIsXG5cImRpYWxvZ1wiKTtiLmZlYXQuZW5hYmxlSWNvbkxhYmVsJiZjLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixiLnRlY29uc2VudENoaWxkQXJpYUxhYmVsKTt0cnVzdGUudXRpbC5hZGRMaXN0ZW5lcihjLFwia2V5ZG93blwiLGZ1bmN0aW9uKGEpe2F8fChhPXdpbmRvdy5ldmVudCk7dmFyIGI9YS53aGljaHx8YS5rZXlDb2RlO2lmKDEzPT1ifHwzMj09YilhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTpldmVudC5yZXR1cm5WYWx1ZT0hMSxjLmNsaWNrKCl9KTt0cnVzdGUuZXUuY3JlYXRlSWNvblN0eWxlKCk7XCJ0cnVlXCI9PWIudGV4dCYmYi5pY29uPyhjLmNsYXNzTGlzdC5hZGQoXCJ0cnVzdGVfY3Vyc29yX3BvaW50ZXJcIiksYy5pbm5lckhUTUw9Yi5pY29uKTooYT1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIiksYS5jbGFzc0xpc3QuYWRkKFwidHJ1c3RlX2JvcmRlcl9ub25lXCIpLGEuY2xhc3NMaXN0LmFkZChcInRydXN0ZV9jdXJzb3JfcG9pbnRlclwiKSxhLm9uZXJyb3I9XG5mdW5jdGlvbigpe3RydXN0ZS5ldS5pY29uLm1ha2UoKX0sYy5hcHBlbmRDaGlsZChhKSxhPWIuYXNzZXRTZXJ2ZXJVUkwrKGIuY29va2llUHJlZmVyZW5jZUljb258fGIubGFuZ3VhZ2UrXCItY29va2llcHJlZmVyZW5jZXN0ZXh0LnBuZ1wiKSxjLmZpcnN0Q2hpbGQuc3JjP1wiZW5cIiE9Yi5sYW5ndWFnZSYmYy5maXJzdENoaWxkLnNyYz09YT9jLmZpcnN0Q2hpbGQuc3JjPWIuYXNzZXRTZXJ2ZXJVUkwrYi5jb29raWVQcmVmZXJlbmNlSWNvbi5zdWJzdHJpbmcoMyk6KGMuY2xhc3NMaXN0LmFkZChcInRydXN0ZV9jdXJzb3JfcG9pbnRlclwiKSxjLmlubmVySFRNTD1iLmljb24pOihjLmZpcnN0Q2hpbGQuc3JjPWEsYy5maXJzdENoaWxkLmFsdD1iLmljb24pKX19O3RydXN0ZS5ldS5pY29uLnNob3c9ZnVuY3Rpb24oKXt2YXIgYT10cnVzdGUuZXUucHJlZkJ1dHRvbixiPXRydXN0ZS5ldS5iaW5kTWFwLGM9dHJ1c3RlLmV1LmNhSWNvbjtpZihjKXtjLmFwcGVuZENoaWxkKGEpO2Muc2V0QXR0cmlidXRlKFwiY29uc2VudFwiLFxudHJ1c3RlLmV1LmJpbmRNYXAucHJlZkNvb2tpZSk7Yi5mZWF0LmVuYWJsZUNvbnRhaW5lckxhYmVsJiZjLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixcIk9wZW4gQ29va2llIFByZWZlcmVuY2VzIE1vZGFsXCIpO2lmKFwiZXVcIiE9dHJ1c3RlLmV1LmJpbmRNYXAuYmVoYXZpb3JNYW5hZ2VyfHxcImV4cHJlc3NlZFwiPT10cnVzdGUuZXUuYmluZE1hcC5iZWhhdmlvcil0cnVzdGUuZXUuY3JlYXRlQ2FJY29uU3R5bGUoYyksYy5jbGFzc0xpc3QuYWRkKFwidHJ1c3RlX2NhSWNvbl9kaXNwbGF5XCIpO2IuZmVhdC5lbmFibGVDb250YWluZXJSb2xlJiZjLnNldEF0dHJpYnV0ZShcInJvbGVcIixiLmNvbnRhaW5lclJvbGU/Yi5jb250YWluZXJSb2xlOlwiY29tcGxlbWVudGFyeVwiKX1lbHNlIHRydXN0ZS5ldS5qc05vZGUxJiZ0cnVzdGUuZXUuanNOb2RlMS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRydXN0ZS5ldS5qc05vZGUxKX07dHJ1c3RlLmV1Lmljb24uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3ZhciBhPVxudHJ1c3RlLmV1LmJpbmRNYXA7dHJ1c3RlLmV1LmNhSWNvbj1zZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEuY29udGFpbmVySWQpfHxzZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwidGVjb25zZW50XCIpO3ZhciBiPWEuY29udGFpbmVySWQ9PWRlY29kZVVSSShcIiU1RiU0QyU0MmMlNEMlNDIlNUZcIik/bnVsbDphLmNvbnRhaW5lcklkO3RydXN0ZS5ldS5jYUljb258fCFiJiZ0cnVzdGUuZXUuanNOb2RlMSYmXCJIRUFEXCIhPXRydXN0ZS5ldS5qc05vZGUxLnBhcmVudE5vZGUubm9kZU5hbWUmJih0cnVzdGUuZXUuY2FJY29uPXRydXN0ZS5ldS5qc05vZGUxLnBhcmVudE5vZGUpP3RydXN0ZS5ldS5pY29uLnNob3coKTpiJiZ0cnVzdGUudXRpbC5leGVjdXRlT25Db25kaXRpb24oZnVuY3Rpb24oKXt0cnVzdGUuZXUuY2FJY29uPXRydXN0ZS5ldS5jYUljb258fHNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYS5jb250YWluZXJJZCl8fHNlbGYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0ZWNvbnNlbnRcIik7XG5yZXR1cm4gdHJ1c3RlLmV1LmNhSWNvbn0sdHJ1c3RlLmV1Lmljb24uc2hvdywxMDAsNkU0KX07dHJ1c3RlLmV1LmNyZWF0ZUljb25TdHlsZT1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTthLnNldEF0dHJpYnV0ZShcInR5cGVcIixcInRleHQvY3NzXCIpO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJbbm9uY2VdXCIpO2ImJmEuc2V0QXR0cmlidXRlKFwibm9uY2VcIixiLm5vbmNlfHxiLmdldEF0dHJpYnV0ZShcIm5vbmNlXCIpKTthLmlubmVyVGV4dD1cIi50cnVzdGVfY3Vyc29yX3BvaW50ZXIge2N1cnNvcjogcG9pbnRlcjt9LnRydXN0ZV9ib3JkZXJfbm9uZSB7Ym9yZGVyOiBub25lO31cIjtkb2N1bWVudC5oZWFkLmluc2VydEJlZm9yZShhLGRvY3VtZW50LmhlYWQuZmlyc3RDaGlsZCl9O3RydXN0ZS5ldS5jcmVhdGVDYUljb25TdHlsZT1mdW5jdGlvbihhKXthPVwiLnRydXN0ZV9jYUljb25fZGlzcGxheSB7ZGlzcGxheTogXCIrdHJ1c3RlLnV0aWwuZ2V0RGlzcGxheVByb3BlcnR5KGEpK1xuXCIgIWltcG9ydGFudDt9XCI7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO2Iuc2V0QXR0cmlidXRlKFwidHlwZVwiLFwidGV4dC9jc3NcIik7dmFyIGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltub25jZV1cIik7YyYmYi5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLGMubm9uY2V8fGMuZ2V0QXR0cmlidXRlKFwibm9uY2VcIikpO2IuaW5uZXJUZXh0PWE7ZG9jdW1lbnQuaGVhZC5pbnNlcnRCZWZvcmUoYixkb2N1bWVudC5oZWFkLmZpcnN0Q2hpbGQpfTt0cnVzdGUuZXUuaXJtPXt9O3RydXN0ZS5ldS5pcm0uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3ZhciBhPXRydXN0ZS5ldS5iaW5kTWFwO3RydXN0ZS51dGlsLmV4ZWN1dGVPbkNvbmRpdGlvbihmdW5jdGlvbigpe3RydXN0ZS5ldS5pcm1MaW5rQ29udGFpbmVyPXRydXN0ZS5ldS5pcm1MaW5rQ29udGFpbmVyfHxzZWxmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEuaXJtQ29udGFpbmVySWQpO3JldHVybiB0cnVzdGUuZXUuaXJtTGlua0NvbnRhaW5lcn0sXG50cnVzdGUuZXUuaXJtLnNob3csMTAwLDNFNCl9O3RydXN0ZS5ldS5pcm0uc2hvdz1mdW5jdGlvbigpe3ZhciBhPXRydXN0ZS5ldS5pcm1MaW5rLGI9dHJ1c3RlLmV1LmlybUxpbmtDb250YWluZXI7YiYmKGIuYXBwZW5kQ2hpbGQoYSksYi5zdHlsZS5kaXNwbGF5PXRydXN0ZS51dGlsLmdldERpc3BsYXlQcm9wZXJ0eShiKSxhPXRydXN0ZS5ldS5iaW5kTWFwLGEuZmVhdC5lbmFibGVDb250YWluZXJSb2xlJiZiLnNldEF0dHJpYnV0ZShcInJvbGVcIixhLmNvbnRhaW5lclJvbGU/YS5jb250YWluZXJSb2xlOlwiY29tcGxlbWVudGFyeVwiKSl9O3RydXN0ZS5ldS5pcm0ubWFrZT1mdW5jdGlvbihhKXtpZighdHJ1c3RlLmV1LmlybUxpbmspe3ZhciBiPXRydXN0ZS5ldS5iaW5kTWFwLGM9dHJ1c3RlLmV1LmlybUxpbms9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTt0cnVzdGUudXRpbC5hZGRMaXN0ZW5lcihjLFwiY2xpY2tcIixhKTtjLmlkPXRydXN0ZS5ldS5pcm1JZD0oXCJpcm0taWQtXCIrXG5NYXRoLnJhbmRvbSgpKS5yZXBsYWNlKFwiLlwiLFwiXCIpO2MudGFiSW5kZXg9XCIwXCI7Yi5mZWF0LmVuYWJsZUljb25Sb2xlJiZjLnNldEF0dHJpYnV0ZShcInJvbGVcIixiLmljb25Sb2xlP2IuaWNvblJvbGU6XCJsaW5rXCIpO2Muc2V0QXR0cmlidXRlKFwibGFuZ1wiLGIubGFuZ3VhZ2UpO3RydXN0ZS51dGlsLmFkZExpc3RlbmVyKGMsXCJrZXlkb3duXCIsZnVuY3Rpb24oYSl7YXx8KGE9d2luZG93LmV2ZW50KTt2YXIgYj1hLndoaWNofHxhLmtleUNvZGU7aWYoMTM9PWJ8fDMyPT1iKWEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmV2ZW50LnJldHVyblZhbHVlPSExLGMuY2xpY2soKX0pO2Muc3R5bGUuY3Vyc29yPVwicG9pbnRlclwiO2MuaW5uZXJIVE1MPWIuaXJtVGV4dH19O3RydXN0ZS5ldS5pcm0ub3B0b3V0PWZ1bmN0aW9uKCl7dmFyIGE9dHJ1c3RlLmV1LmJpbmRNYXA7YS5mZWF0LmVuYWJsZUlybUF1dG9PcHRPdXQ/KHRydXN0ZS51dGlsLnRyYWNlKFwiaXJtIGZvcm0gc3VibWl0dGVkLiBiZWdpbm5pbmcgb3B0b3V0XCIpLFxudHJ1c3RlLmV1LnN1Ym1pdHRlZElSTT0hMCx0cnVzdGUuZXUucHJlZnZpZXcoYSxcInByZWZtZ3JcIiwhMCksdHJ1c3RlLmV1LnRvZ2dsZUNsb3NlQnV0dG9uKGEsXCJmYWxzZVwiKSk6dHJ1c3RlLnV0aWwudHJhY2UoXCJpcm0gZm9ybSBzdWJtaXR0ZWQuIEF1dG8gb3B0IG91dCBkaXNhYmxlZFwiKX07dHJ1c3RlLmV1LmlzR1BDRE5URXZlbnQ9ZnVuY3Rpb24oKXt2YXIgYT10cnVzdGUuZXUuYmluZE1hcDtyZXR1cm4gYS5mZWF0LmlzR1BDT3B0b3V0RXZlbnR8fGEuZmVhdC5pc0ROVE9wdG91dEV2ZW50fTt0cnVzdGUuZXUucmVzZXRHcGNEbnQ9ZnVuY3Rpb24oKXt2YXIgYT10cnVzdGUuZXUuYmluZE1hcDt0cnVzdGUuZXUuaXNHUENETlRFdmVudCgpJiYoYS5mZWF0LmlzR1BDT3B0b3V0RXZlbnQ9ITEsYS5mZWF0LmlzRE5UT3B0b3V0RXZlbnQ9ITEpfTt0cnVzdGUuZXUuYXV0b09wdG91dD1mdW5jdGlvbihhLGIpe3ZhciBjPXRydXN0ZS5ldS5iaW5kTWFwO2F8fChhPXRydXN0ZS51dGlsLmNyZWF0ZUhpZ2hlc3RMZXZlbENvb2tpZSgpKTtcbmlmKGMuZmVhdC5ncHAuZ3BwQXBwbGllcyl7dmFyIGQ9dHJ1c3RlLnV0aWwucmVhZENvb2tpZShcImdwcHN0cmluZ1wiKTt0cnVzdGUuZXUuaXNHUENETlRFdmVudCgpJiZudWxsPT1kJiZ0cnVzdGUuZXUuZ3BwLmdwcEF1dG9PcHRPdXQoKSYmdHJ1c3RlLmV1LmNjcGFPcHRPdXQoYil9ZWxzZSBjLmZlYXQuY2NwYUFwcGxpZXM/dHJ1c3RlLmV1LmNjcGFPcHRPdXQoYik6KHRydXN0ZS51dGlsLmNyZWF0ZVByZWZlcmVuY2VGcm9tQ29va2llVmFsdWUoYSxiKSx0cnVzdGUudXRpbC5jYWxsQ01FbmRwb2ludChcIi9kZWZhdWx0Y29uc2VudG1hbmFnZXIvZ2V0T3B0T3V0RG9tYWlucz9cIixudWxsLGZ1bmN0aW9uKGEpe2E9YS5yZXNwb25zZVRleHQ7dmFyIGI9dHJ1c3RlLnV0aWwucGFyc2VKU09OKGEpO2EmJmImJih0cnVzdGUudXRpbC5zZXRTdG9yYWdlKHRydXN0ZS5ldS5DT09LSUVfQ0FURUdPUllfTkFNRSxiLCExKSxjLmZlYXQuaXNHUENPcHRvdXRFdmVudCYmdHJ1c3RlLnV0aWwuaXNDb25zZW50Q2VudGVyKCkmJlxuKHRydXN0ZS5ldS5mbGFncy5pc0xvY2FsU3RvcmFnZU9wdE91dFVwZGF0ZWQ9ITApKX0sITEsYSkpfTt0cnVzdGUuZXUuY2NwYU9wdE91dD1mdW5jdGlvbihhKXt0cnVzdGUuZXUuY2NwYS5kcm9wQ2NwYUNvb2tpZSghMCx0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmRudFNob3dVST9cIllcIjpcIk5cIik7dHJ1c3RlLnV0aWwuY29uc2VudFJlcXVpcmVkbGV2ZWwoYSk7dHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5pc0dQQ09wdG91dEV2ZW50JiZ0cnVzdGUudXRpbC5pc0NvbnNlbnRDZW50ZXIoKSYmKHRydXN0ZS5ldS5mbGFncy5pc0xvY2FsU3RvcmFnZU9wdE91dFVwZGF0ZWQ9ITApfTt0cnVzdGUuZXUuZ3BjRG50R1BQQXV0b09wdE91dD1mdW5jdGlvbigpe3ZhciBhPSExOyh0cnVzdGUudXRpbC5pc0dwYygpfHx0cnVzdGUudXRpbC5pc0RudCgpKSYmdHJ1c3RlLnV0aWwuY2FsbENNRW5kcG9pbnQoXCIvZGVmYXVsdGNvbnNlbnRtYW5hZ2VyL2dldEdQUEF1dG9PcHRPdXQ/XCIsbnVsbCxmdW5jdGlvbihiKXt2YXIgYz1cbmIucmVzcG9uc2VUZXh0LGQ9dHJ1c3RlLnV0aWwucGFyc2VKU09OKGMpO2NvbnNvbGUubG9nKFwiR1BQIEF1dG8gT3B0T3V0IFJlc3BvbnNlOiBcIitiLnJlc3BvbnNlVGV4dCk7YyYmZCYmKGI9dHJ1c3RlLnV0aWwmJnRydXN0ZS51dGlsLmdldEpTT058fHRydXN0ZS5jbWEmJnRydXN0ZS5jbWEuY2hlYXBKU09OfHx3aW5kb3cuSlNPTi5zdHJpbmdpZnksYz17c291cmNlOlwicHJlZmVyZW5jZV9tYW5hZ2VyXCIsbWVzc2FnZTpcInByb2Nlc3NfZ3BwX2NvbnNlbnRcIixkYXRhOmR9LHdpbmRvdy5wb3N0TWVzc2FnZSYmd2luZG93LnBvc3RNZXNzYWdlKGIoYyksXCIqXCIpLGE9MiE9PWQuc2FsZU9wdE91dCYmMiE9PWQuc2hhcmluZ09wdE91dCYmMiE9PWQudGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dCl9LCExLG51bGwpO3JldHVybiBhfTt0cnVzdGUuZXUuZ3BjRG50QXV0b09wdE91dD1mdW5jdGlvbigpe2lmKHRydXN0ZS51dGlsLmlzR3BjKCl8fHRydXN0ZS51dGlsLmlzRG50KCkpe3ZhciBhPXRydXN0ZS5ldS5iaW5kTWFwO1xuYS5mZWF0LmNjcGFBcHBsaWVzJiYoYS5ncGNPcHRlZEluPVwiMFwiLGEuZG50T3B0ZWRJbj1cIjBcIik7dmFyIGI9XCJcIjthLmZlYXQuZ3BjPyhiPWEuZ3BjT3B0ZWRJbixhLmZlYXQuaXNHUENPcHRvdXRFdmVudD0hMCk6KGI9YS5kbnRPcHRlZEluLGEuZmVhdC5pc0ROVE9wdG91dEV2ZW50PSEwKTtpZihhLmFsbE9wdGVkSW4pe3ZhciBjPWEuYWxsT3B0ZWRJbi5zcGxpdCgvWyx8XS8pLGQ9Yi5zcGxpdCgvWyx8XS8pLGI9YS5mZWF0LnJlcGxhY2VEZWxpbWl0ZXI/XCJ8XCI6XCIsXCIsYj1BcnJheS5mcm9tKGMuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBkLmluY2x1ZGVzKGEpfSkpLmpvaW4oYik7YS5mZWF0LmdwYz9hLmdwY09wdGVkSW49YjphLmRudE9wdGVkSW49Yn1pZih0cnVzdGUuZXUuY3ByYS5zaG91bGRTaG93RmluUHJvZygpJiYhdHJ1c3RlLnV0aWwuaXNBY2NlcHRBbGwoYikpdHJ1c3RlLmJuJiZ0cnVzdGUuYm4uaGFuZGxlQmFubmVyRG9uZSYmdHJ1c3RlLmJuLmhhbmRsZUJhbm5lckRvbmUoKSxcbnRydXN0ZS5ldS5jbGlja0xpc3RlbmVyKDcsITAse2NwcmFDb25zZW50OmIsY3ByYVNvdXJjZTphLmZlYXQuaXNHUENPcHRvdXRFdmVudD9cImdwY1wiOlwiZG50XCJ9KTtlbHNle2E9dHJ1c3RlLnV0aWwuaXNBdXRvYmxvY2soKSYmdHJ1c3RhcmMuY2NtLmNhYi5nZXRJbmZvKCkuc291cmNlQ29uc2VudDtpZihjPVwiZG50XCI9PWF8fFwiZ3BjXCI9PWEpdHJ1c3RlLnV0aWwudHJhY2UoXCJzb3VyY2VDb25zZW50IDogW1wiK2ErXCJdIHJlc2V0XCIpLHRydXN0YXJjLmNjbS5jYWIucmVzZXRTb3VyY2VDb25zZW50KCk7dHJ1c3RlLmV1LmF1dG9PcHRvdXQoYixjKX19fTt0cnVzdGUuZXUuY2NwYT17fTt0cnVzdGUuZXUuQ09PS0lFX1VTUFJJVkFDWT1cInVzcHJpdmFjeVwiO3RydXN0ZS5ldS5VU1BfVkVSU0lPTj1cIjFcIjt0cnVzdGUuZXUuVVNQX0ZJTEVfTkFNRT1cInVzcGFwaS5qc1wiO3RydXN0ZS5ldS5jY3BhLnVzcFN0cmluZz1mdW5jdGlvbihhLGIpe3ZhciBjPXRydXN0ZS5ldS5iaW5kTWFwLGQ9XCIxLS0tXCI7XG5jLmZlYXQuY2NwYUFwcGxpZXMmJihkPS9eW25OeVktXSQvLFwidW5kZWZpbmVkXCIhPT10eXBlb2YgYiYmZC50ZXN0KGIpfHwoYj1cIllcIiksYz1kLnRlc3QoYy5sc3BhKT9jLmxzcGE6XCItXCIsZD10cnVzdGUuZXUuVVNQX1ZFUlNJT04rYisoYT9cIllcIjpcIk5cIikrYyk7cmV0dXJuIGR9O3RydXN0ZS5ldS5jY3BhLmRyb3BDY3BhQ29va2llPWZ1bmN0aW9uKGEsYil7dHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5lbmFibGVDQ1BBJiZ0cnVzdGUudXRpbC5jcmVhdGVDb29raWUodHJ1c3RlLmV1LkNPT0tJRV9VU1BSSVZBQ1ksdHJ1c3RlLmV1LmNjcGEudXNwU3RyaW5nKGEsYikpfTt0cnVzdGUuZXUuY2NwYS5nZXRPcHRvdXQ9ZnVuY3Rpb24oKXt2YXIgYT10cnVzdGUudXRpbC5yZWFkQ29va2llKHRydXN0ZS5ldS5DT09LSUVfVVNQUklWQUNZKTtyZXR1cm4vXlsxXVtuTnlZLV1bbk55WS1dW25OeVktXSQvLnRlc3QoYSk/YS5jaGFyQXQoMik6bnVsbH07dHJ1c3RlLmV1LmNjcGEuc2hvd0xpbms9ZnVuY3Rpb24oKXt2YXIgYT1cbnRydXN0ZS5ldS5iaW5kTWFwLGI9dHJ1c3RlLmV1LmNjcGFMaW5rPXNlbGYuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7dHJ1c3RlLnV0aWwuYWRkTGlzdGVuZXIoYixcImNsaWNrXCIsZnVuY3Rpb24oKXt0cnVzdGUuYm4ucmVvcGVuQmFubmVyJiZ0cnVzdGUuYm4ucmVvcGVuQmFubmVyKCl9KTtiLmlkPXRydXN0ZS5ldS5pcm1JZD0oXCJjY3BhLWlkLVwiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoXCIuXCIsXCJcIik7Yi50YWJJbmRleD1cIjBcIjthLmZlYXQuZW5hYmxlSWNvblJvbGUmJmIuc2V0QXR0cmlidXRlKFwicm9sZVwiLGEuaWNvblJvbGU/YS5pY29uUm9sZTpcImxpbmtcIik7Yi5zZXRBdHRyaWJ1dGUoXCJsYW5nXCIsYS5sYW5ndWFnZSk7dHJ1c3RlLnV0aWwuYWRkTGlzdGVuZXIoYixcImtleWRvd25cIixmdW5jdGlvbihhKXthfHwoYT13aW5kb3cuZXZlbnQpO3ZhciBjPWEud2hpY2h8fGEua2V5Q29kZTtpZigxMz09Y3x8MzI9PWMpYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6XG5ldmVudC5yZXR1cm5WYWx1ZT0hMSxiLmNsaWNrKCl9KTtiLnN0eWxlLmN1cnNvcj1cInBvaW50ZXJcIjtiLmlubmVySFRNTD1hLmNjcGFUZXh0O3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEuY29udGFpbmVySWQpO2MmJihjLmFwcGVuZENoaWxkKGIpLGMuc3R5bGUuZGlzcGxheT10cnVzdGUudXRpbC5nZXREaXNwbGF5UHJvcGVydHkoYyksYS5mZWF0LmVuYWJsZUNvbnRhaW5lclJvbGUmJmMuc2V0QXR0cmlidXRlKFwicm9sZVwiLGEuY29udGFpbmVyUm9sZT9hLmNvbnRhaW5lclJvbGU6XCJjb21wbGVtZW50YXJ5XCIpKX07dHJ1c3RlLmV1LmNjcGEuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3ZhciBhPXRydXN0ZS5ldS5iaW5kTWFwO2EuZmVhdC5lbmFibGVDQ1BBJiZ0cnVzdGUudXRpbC5hZGRTY3JpcHRFbGVtZW50KGEuYXNzZXRTZXJ2ZXJVUkwrdHJ1c3RlLmV1LlVTUF9GSUxFX05BTUUsZnVuY3Rpb24oKXthLmZlYXQuZ3BwLmdwcEFwcGxpZXN8fChhLnByZWZDb29raWV8fHRydXN0ZS5ldS5jY3BhLmRyb3BDY3BhQ29va2llKGEuZmVhdC5jY3BhZGVmYXVsdHx8XG4hMSxcIllcIiksYS5mZWF0LmNjcGFBcHBsaWVzJiZ0cnVzdGUudXRpbC5leGVjdXRlT25Db25kaXRpb24oZnVuY3Rpb24oKXtyZXR1cm4gc2VsZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhLmNvbnRhaW5lcklkKX0sdHJ1c3RlLmV1LmNjcGEuc2hvd0xpbmssMTAwLDFFNCkpfSl9O3RydXN0ZS5ldS5zYXZlVXNlckNvbnNlbnQ9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsbCxwLHEsbSl7dmFyIGg9dHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5jcm9zc0RvbWFpbj9cIi92MS9jb250cm9sbGVyL2NvbnNlbnQvdXNlci9cIithOlwiL3YxL2NvbnRyb2xsZXIvc2V0VXNlckNvbnNlbnQvXCIrYStcIl9cIit3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7dHJ5e2E/dHJ1c3RlLnV0aWwuaHR0cFJlcXVlc3QodHJ1c3RlLmV1LlVTRVJfQ09OU0VOVF9DRU5URVJfU0VSVkVSK2gsXCJQT1NUXCIsSlNPTi5zdHJpbmdpZnkoe3VzZXJfaWQ6YSx1c2VyX3ByZWZlcmVuY2VzOmIsZG9tYWluOmMsZmluYW5jaWFsX3Byb2dyYW06ZCxcbmNyb3NzX2RvbWFpbjplLGNvb2tpZV9kYXRlOkRhdGUubm93KCksb3B0b3V0X2RvbWFpbnM6Znx8XCJcIixzaXRlOndpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxjb29raWVfZXhwaXJ5OmwsaXNfZ3BjX2hvbm9yZWQ6cCxjY3BhX2Nvb2tpZTpxfHxcIlwiLHBvcF90aW1lOm18fFwiXCJ9KSxudWxsKTp0cnVzdGUudXRpbC50cmFjZShcIlVzZXJJRCBiaW5kaW5nIGZhaWxlZC5cIil9Y2F0Y2gobil7dHJ1c3RlLnV0aWwudHJhY2Uobi5tZXNzYWdlLG4uc3RhY2spfX07dHJ1c3RlLmV1LmdldFVzZXJDb25zZW50PWZ1bmN0aW9uKGEsYil7dmFyIGM9dHJ1c3RlLmV1LmJpbmRNYXA7Yy5mZWF0LmNyb3NzRG9tYWluP3RydXN0ZS5ldS5nZXRVc2VyQ2VudGVyQ2FsbChcIi92MS9jb250cm9sbGVyL2NvbnNlbnQvdXNlci9cIithK1wiP2RvbWFpbklkPVwiK2MuZG9tYWluLGEsZnVuY3Rpb24oYSxlKXtiKGEsZSk7Yy5mZWF0LmlzQ29uc2VudFJldHJpZXZlZD0hMH0pOnRydXN0ZS5ldS5nZXRVc2VyQ2VudGVyQ2FsbChcIi92MS9jb250cm9sbGVyL2dldFVzZXJDb25zZW50L1wiK1xuYStcIl9cIit3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsYSxiKX07dHJ1c3RlLmV1LmdldFVzZXJDZW50ZXJDYWxsPWZ1bmN0aW9uKGEsYixjKXt0cnl7YiYmdHJ1c3RlLnV0aWwuaHR0cFJlcXVlc3QodHJ1c3RlLmV1LlVTRVJfQ09OU0VOVF9DRU5URVJfU0VSVkVSK2EsXCJHRVRcIixudWxsLGMpfWNhdGNoKGQpe3RydXN0ZS51dGlsLnRyYWNlKGQubWVzc2FnZSxkLnN0YWNrKX19O3RydXN0ZS5ldS5jcHJhPXt9O3RydXN0ZS5ldS5DT09LSUVfQ1BSQV9GSU5QUk9HPVwibm90aWNlX2NwcmFfZmlucHJvZ1wiO3RydXN0ZS5ldS5DT09LSUVfQ1BSQV9HUENJU0hPTk9SRUQ9XCJncGNpc2hvbm9yZWRcIjt0cnVzdGUuZXUuY3ByYS5zaG91bGRTaG93RmluUHJvZz1mdW5jdGlvbigpe3ZhciBhPXRydXN0ZS5ldS5iaW5kTWFwLGI9dHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX0NQUkFfRklOUFJPRywhMCk7cmV0dXJuIGEuZmVhdC5lbmFibGVDUFJBJiZcInRydWVcIj09dHJ1c3RlLmV1Lm5vdGljZUxQLmZpbnByb2cmJlxuKCFifHxcInRydWVcIj09PWIpJiYoMT09dHJ1c3RlLmV1Lm5vdGljZUxQLmd0bXx8IXRydXN0ZS51dGlsLnZhbGlkQ29uc2VudChhLnByZWZDb29raWUpfHx0cnVzdGUudXRpbC5pc0FjY2VwdEFsbChhLnByZWZDb29raWUpKX07dHJ1c3RlLmV1LmNwcmEuZHJvcENwcmFDb29raWU9ZnVuY3Rpb24oYSxiKXt0cnVzdGUuZXUuYmluZE1hcC5mZWF0LmVuYWJsZUNQUkEmJnRydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX0NQUkFfRklOUFJPRyxhLGIsITAsITApfTt0cnVzdGUuZXUuY3ByYS5kcm9wR1BDSXNIb25vcmVkQ29va2llPWZ1bmN0aW9uKCl7dHJ1c3RlLnV0aWwuaXNDb25zZW50Q2VudGVyKCkmJnRydXN0ZS5ldS5iaW5kTWFwLmZlYXQuaXNHUENPcHRvdXRFdmVudCYmdHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llKHRydXN0ZS5ldS5DT09LSUVfQ1BSQV9HUENJU0hPTk9SRUQsITAsbnVsbCwhMCl9O3RydXN0ZS5ldS5jcHJhLnllcz1mdW5jdGlvbihhKXt0cnVzdGUuZXUuY3ByYS5kcm9wQ3ByYUNvb2tpZSghMCk7XG5zd2l0Y2goYSl7Y2FzZSBcImdwY1wiOnRydXN0ZS5ldS5jcHJhLmRyb3BHUENJc0hvbm9yZWRDb29raWUoKTtjYXNlIFwiZG50XCI6dHJ1c3RlLmV1LnJlc2V0R3BjRG50KCk7Y2FzZSBcImJhbm5lci1kZWNsaW5lXCI6Y2FzZSBcImJhbm5lci1kZWNsaW5lLWNjcGFcIjpjYXNlIFwib3B0b3V0LWNsb3NlXCI6Y2FzZSBcImlybS1vcHRvdXRcIjpjYXNlIFwiY29uc2VudC1jZW50ZXJcIjpcInVuZGVmaW5lZFwiIT10eXBlb2YgdHJ1c3RlLmJuJiZ0cnVzdGUuYm4uYWNjZXB0QWxsP3RydXN0ZS5ibi5hY2NlcHRBbGwoKTp0cnVzdGUudXRpbC5vcHRpbkFsbCgpfX07dHJ1c3RlLmV1LmNwcmEubm89ZnVuY3Rpb24oYSxiKXt0cnVzdGUuZXUuY3ByYS5kcm9wQ3ByYUNvb2tpZSghMSk7c3dpdGNoKGIpe2Nhc2UgXCJncGNcIjpjYXNlIFwiZG50XCI6dHJ1c3RlLmV1LmlzR1BDRE5URXZlbnQoKSYmdHJ1c3RlLmV1LmF1dG9PcHRvdXQoYSk7YnJlYWs7Y2FzZSBcImJhbm5lci1kZWNsaW5lXCI6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRydXN0ZS5ibiYmXG50cnVzdGUuYm4uZGVjbGluZUFsbCYmdHJ1c3RlLmJuLmRlY2xpbmVBbGwoKTticmVhaztjYXNlIFwiYmFubmVyLWRlY2xpbmUtY2NwYVwiOlwidW5kZWZpbmVkXCIhPXR5cGVvZiB0cnVzdGUuYm4mJnRydXN0ZS5ibi5kZWNsaW5lQ1BSQSYmdHJ1c3RlLmJuLmRlY2xpbmVDUFJBKCk7YnJlYWs7Y2FzZSBcIm9wdG91dC1jbG9zZVwiOnRydXN0ZS51dGlsLm9wdG91dFJlcXVpcmVkKCk7YnJlYWs7Y2FzZSBcImlybS1vcHRvdXRcIjp0cnVzdGUuZXUuaXJtLm9wdG91dCgpO2JyZWFrO2Nhc2UgXCJjb25zZW50LWNlbnRlclwiOnRydXN0ZS5ldS5hdXRvT3B0b3V0KGEpfX07dHJ1c3RlLmV1LmdwcD17fTt0cnVzdGUuZXUuR1BQX0ZJTEVOQU1FPVwiZ3BwLmpzXCI7dHJ1c3RlLmV1LmdwcC5pbml0aWFsaXplPWZ1bmN0aW9uKCl7dmFyIGE9dHJ1c3RlLmV1LmJpbmRNYXA7YS5mZWF0LmdwcC5lbmFibGVkJiZ0cnVzdGUudXRpbC5hZGRTY3JpcHRFbGVtZW50KGEuYXNzZXRTZXJ2ZXJVUkwrdHJ1c3RlLmV1LkdQUF9GSUxFTkFNRSl9O1xudHJ1c3RlLmV1LmdwcC51cGRhdGVDbXBEaXNwbGF5U3RhdHVzPWZ1bmN0aW9uKGEpe2lmKHRydXN0ZS5ldS5iaW5kTWFwLmZlYXQuZ3BwLmVuYWJsZWQpe3ZhciBiPXRydXN0ZS51dGlsJiZ0cnVzdGUudXRpbC5nZXRKU09OfHx0cnVzdGUuY21hJiZ0cnVzdGUuY21hLmNoZWFwSlNPTnx8d2luZG93LkpTT04uc3RyaW5naWZ5O2E9e3NvdXJjZTpcInByZWZlcmVuY2VfbWFuYWdlclwiLG1lc3NhZ2U6XCJ1cGRhdGVfY21wX2Rpc3BsYXlfc3RhdHVzXCIsZGF0YTp7c3RhdHVzOmF9fTt3aW5kb3cucG9zdE1lc3NhZ2UmJndpbmRvdy5wb3N0TWVzc2FnZShiKGEpLFwiKlwiKX19O3RydXN0ZS5ldS5ncHAuZ3BwQXV0b09wdE91dD1mdW5jdGlvbigpe3ZhciBhPSExO3RydXN0ZS5ldS5iaW5kTWFwLmZlYXQuZ3BwLmVuYWJsZWQmJnRydXN0ZS51dGlsLmV4ZWN1dGVPbkNvbmRpdGlvbih0cnVzdGUuZXUuZ3BwLmlzR3BwQXBpTG9hZGVkLGZ1bmN0aW9uKCl7YT10cnVzdGUuZXUuZ3BjRG50R1BQQXV0b09wdE91dCgpfSxcbjEwLDNFNCk7cmV0dXJuIGF9O3RydXN0ZS5ldS5ncHAuc2VuZEF1dG9PcHRPdXRNZXNzYWdlPWZ1bmN0aW9uKGEpe3ZhciBiPXRydXN0ZS51dGlsJiZ0cnVzdGUudXRpbC5nZXRKU09OfHx0cnVzdGUuY21hJiZ0cnVzdGUuY21hLmNoZWFwSlNPTnx8d2luZG93LkpTT04uc3RyaW5naWZ5O2E9e3NvdXJjZTpcInByZWZlcmVuY2VfbWFuYWdlclwiLG1lc3NhZ2U6XCJwcm9jZXNzX2dwcF9hdXRvX29wdF9vdXRcIixkYXRhOntpc0dwYzphfX07d2luZG93LnBvc3RNZXNzYWdlJiZ3aW5kb3cucG9zdE1lc3NhZ2UoYihhKSxcIipcIil9O3RydXN0ZS5ldS5ncHAuaXNHcHBBcGlMb2FkZWQ9ZnVuY3Rpb24oKXt2YXIgYT0hMTtfX2dwcChcInBpbmdcIixmdW5jdGlvbihiLGMpe2MmJlwibG9hZGVkXCI9PWIuY21wU3RhdHVzJiYoYT0hMCl9KTtyZXR1cm4gYX07dHJ1c3RlLmV1LlNPVVJDRV9TRVJWRVI9dHJ1c3RlLmV1LlNPVVJDRV9TRVJWRVJ8fFwiLy9jb25zZW50LnRydXN0YXJjLmNvbS9ub3RpY2VcIi5yZXBsYWNlKC9eXFx3ezMsNX06LyxcblwiXCIpO3RydXN0ZS5ldS5VU0VSX0NPTlNFTlRfQ0VOVEVSX1NFUlZFUj10cnVzdGUuZXUuVVNFUl9DT05TRU5UX0NFTlRFUl9TRVJWRVJ8fFwiLy91c2VyLWNvbnNlbnQtY2VudGVyLnRydXN0YXJjLmNvbVwiLnJlcGxhY2UoL15cXHd7Myw1fTovLFwiXCIpO3RydXN0ZS5ldS5TQ1JJUFRfUkVHWD10cnVzdGUuZXUuU0NSSVBUX1JFR1h8fC9cXC4odHJ1c3RlfHRydXN0YXJjKVxcYi4qXFxibm90aWNlKFxcLjApPyhcXC5leHApPyhcXC5qcyk/XFxiLipcXGJkb21haW49Lzt0cnVzdGUudXRpbC5DT09LSUVfTlM9XCJ0cnVzdGUuZXUuY29va2llLlwiO3RydXN0ZS5ldS5KU19SRUdYPXRydXN0ZS5ldS5KU19SRUdYfHwodHJ1c3RlLmV1LmJpbmRNYXAmJnRydXN0ZS5ldS5iaW5kTWFwLmRvbWFpbj9cImRvbWFpbj1cIit0cnVzdGUuZXUuYmluZE1hcC5kb21haW46dm9pZCAwKTt0cnVzdGUuZXUuaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjPXRydXN0ZS5ldS5iaW5kTWFwO2lmKDI9PWIpcmV0dXJuIHRydXN0ZS51dGlsLmVycm9yKFwiRmFpbGVkIHRvIGxvYWQgYmluZGluZyBKUyBhdCBVUkw6IFwiK1xuYS5zcmMpO2lmKCFjKXJldHVybiB0cnVzdGUudXRpbC50cmFjZShcIkRpZCBub3QgbG9hZCBKUzBcIik7dHJ1c3RlLnV0aWwuZ2V0UmFuZG9tVVVJRD1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5jcnlwdG98fHdpbmRvdy5tc0NyeXB0bztyZXR1cm4oWzFFN10rLTFFMystNEUzKy04RTMrLTFFMTEpLnJlcGxhY2UoL1swMThdL2csZnVuY3Rpb24oYil7cmV0dXJuKGJeYS5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoMSkpWzBdJjE1Pj5iLzQpLnRvU3RyaW5nKDE2KX0pfTt0cnVzdGUuZXUuQ09PS0lFX0dEUFJfUFJFRl9OQU1FPVwibm90aWNlX2dkcHJfcHJlZnNcIjt0cnVzdGUuZXUuQ09PS0lFX1NFU1NJT049XCJUQXNlc3Npb25JRFwiO3RydXN0ZS5ldS5TQ1JJUFRfUkVHWD10cnVzdGUuZXUuU0NSSVBUX1JFR1h8fC9cXC4odHJ1c3RlfHRydXN0YXJjKVxcYi4qXFxibm90aWNlKFxcLjApPyhcXC5leHApPyhcXC5qcyk/XFxiLipcXGJkb21haW49Lzt0cnVzdGUuZXUuSlNfUkVHWD10cnVzdGUuZXUuSlNfUkVHWHx8XG4odHJ1c3RlLmV1LmJpbmRNYXAmJnRydXN0ZS5ldS5iaW5kTWFwLmRvbWFpbj9cImRvbWFpbj1cIit0cnVzdGUuZXUuYmluZE1hcC5kb21haW46dm9pZCAwKTt0cnVzdGUuZXUuanNOb2RlMT10cnVzdGUuZXUuYmluZE1hcC5jdXJyZW50U2NyaXB0fHx0cnVzdGUudXRpbC5nZXRTY3JpcHRFbGVtZW50KHRydXN0ZS5ldS5TQ1JJUFRfUkVHWCwhMCx0cnVzdGUuZXUuSlNfUkVHWCk7dHJ1c3RlLmV1Lm5vdGljZUxQPXRydXN0ZS51dGlsLmluaXRQYXJhbWV0ZXJNYXAodHJ1c3RlLmV1LmpzTm9kZTEsdHJ1c3RlLmV1Lm5vdGljZUxQfHx7fSk7dHJ1c3RlLmV1Lm5vdGljZUxQLmNvb2tpZU5hbWUmJih0cnVzdGUuZXUuQ09PS0lFX0dEUFJfUFJFRl9OQU1FPXRydXN0ZS5ldS5ub3RpY2VMUC5jb29raWVOYW1lK1wiX2dkcHJcIix0cnVzdGUuZXUuQ09PS0lFX1NFU1NJT049dHJ1c3RlLmV1Lm5vdGljZUxQLmNvb2tpZU5hbWUrXCJfc2Vzc2lvblwiKTt0cnVzdGUudXRpbC5yZWFkQ29va2llU2ltcGxlPWZ1bmN0aW9uKGEpe3JldHVybihhPVxuUmVnRXhwKFwiXFxcXHMqXCIrYS5yZXBsYWNlKFwiLlwiLFwiXFxcXC5cIikrXCJcXFxccyo9XFxcXHMqKFteO10qKVwiKS5leGVjKHNlbGYuZG9jdW1lbnQuY29va2llKSkmJjE8YS5sZW5ndGg/YVsxXTpudWxsfTt2YXIgZD10cnVzdGUudXRpbC5yZWFkQ29va2llU2ltcGxlKHRydXN0ZS5ldS5DT09LSUVfU0VTU0lPTik7aWYobnVsbD09ZCl7dXNlclR5cGU9dHJ1c3RlLnV0aWwucmVhZENvb2tpZVNpbXBsZSh0cnVzdGUuZXUuQ09PS0lFX0dEUFJfUFJFRl9OQU1FKT9cIkVYSVNUSU5HXCI6XCJORVdcIjt2YXIgZD10cnVzdGUudXRpbC5nZXRSYW5kb21VVUlEKCkrXCJ8XCIrdXNlclR5cGUsZT1uZXcgRGF0ZTtlLnNldFRpbWUoZS5nZXRUaW1lKCkrMThFNSk7dHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llKHRydXN0ZS5ldS5DT09LSUVfU0VTU0lPTixkLGUudG9HTVRTdHJpbmcoKSwhMSl9ZD1kLnNwbGl0KC9bfCxdLyk7dHJ1c3RlLmV1LnNlc3Npb249ZFswXTt0cnVzdGUuZXUudXNlclR5cGU9ZFsxXTt0cnVzdGUuZXUuYmluZE1hcC5mZWF0LnVpZEVuYWJsZWQmJlxuKGQ9dHJ1c3RlLnV0aWwucmVhZENvb2tpZVN0b3JhZ2UodHJ1c3RlLmV1LkNPT0tJRV9VSUQpLG51bGw9PWQmJihkPXRydXN0ZS51dGlsLmdldFJhbmRvbVVVSUQoKSksdHJ1c3RlLmV1LmNvbnNlbnRVSUQ9ZCk7Yy5kb21haW4mJih0cnVzdGUuZXUubm90aWNlTFAuZG9tYWluPWMuZG9tYWluKTtjLmJlaGF2aW9yJiYodHJ1c3RlLmV1Lm5vdGljZUxQLmJlaGF2aW9yPWMuYmVoYXZpb3IpO2MuY291bnRyeSYmYy5sYW5ndWFnZSYmKHRydXN0ZS5ldS5ub3RpY2VMUC5sb2NhbGU9Yy5jb3VudHJ5K1wiLVwiK2MubGFuZ3VhZ2UpO3RydXN0ZS5ldS5ub3RpY2VMUC5wbiYmdHJ1c3RlLmV1Lm5vdGljZUxQLnBuLmluZGV4T2YoXCItXCIpJiYoZD10cnVzdGUuZXUubm90aWNlTFAucG4uc3BsaXQoXCItXCIpLDE8ZC5sZW5ndGgmJih0cnVzdGUuZXUubm90aWNlTFAucG49XCJleHByZXNzZWRcIj09Yy5iZWhhdmlvcj9kWzFdOmRbMF0pKTt0cnVzdGUuZXUuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbihhKXtcImNsaWNrXCI9PVxuYT8odHJ1c3RlLmV1Lm1zZy5sb2coYSxjLGMubWVzc2FnZUJhc2VVcmwpLG51bGw9PXRydXN0ZS51dGlsLmdldEludFZhbHVlKGMucHJlZkNvb2tpZSkmJnRydXN0ZS5ldS5tc2cubG9nKFwiY29uc2VudFwiLGMsYy5tZXNzYWdlQmFzZVVybCkpOlwiY2xvc2VcIj09YT8odHJ1c3RlLmV1Lm1zZy5wb2xsZXIuc3RvcCgpLHRydXN0ZS5ldS5zZW5kY2xvc2VyZXBvcnQmJihhPXRydXN0ZS5ldS5iaW5kTWFwLm1lc3NhZ2VCYXNlVXJsLnJlcGxhY2UoXCJub3RpY2Vtc2dcIixcImNvbnNlbnRtc2dcIiksdHJ1c3RlLmV1Lm1zZy5sb2coXCJjbG9zZV9idXR0b25cIix0cnVzdGUuZXUuYmluZE1hcCxhKSkpOlwib3BlblwiPT1hJiZ0cnVzdGUuZXUubXNnLnBvbGxlci5zdGFydCgpfSk7aWYobnVsbD09dHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX0dEUFJfUFJFRl9OQU1FLCEwKSYmKGQ9dHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX1BSRUZfTkFNRSwhMCksZD10cnVzdGUudXRpbC5nZXRJbnRWYWx1ZShkKSxcbm51bGwhPWQpKXtlPVtdO2lmKC0xPT1kKWUucHVzaChkKTtlbHNlIGZvcih2YXIgZj0wO2Y8PWQ7ZisrKWUucHVzaChmKTtkPWUuam9pbigpK1wiOlwiK3RydXN0ZS5ldS5iaW5kTWFwLmRheFNpZ25hdHVyZTtlPXRydXN0ZS51dGlsLmdldFN0b3JhZ2UodHJ1c3RlLnV0aWwuQ09PS0lFX05TK3RydXN0ZS5ldS5DT09LSUVfUFJFRl9OQU1FLCExKTt0cnVzdGUudXRpbC5jcmVhdGVDb29raWUodHJ1c3RlLmV1LkNPT0tJRV9HRFBSX1BSRUZfTkFNRSxkLGUmJmUuZXhwaXJlc3x8MCwhMCl9Yy5mZWF0LmVuYWJsZUNNJiYoYy5mZWF0LmlhYkJhbm5lckFwcGxpZXM/dHJ1c3RlLmV1Lmljb24ubWFrZShmdW5jdGlvbigpe3RydXN0ZS5ldS5jbGlja0xpc3RlbmVyKDQpO2MucmV0dXJuRm9jdXNUbz10cnVzdGUuZXUuaWNvbmlkfSk6dHJ1c3RlLmV1Lmljb24ubWFrZShmdW5jdGlvbigpe3RydXN0ZS5ldS5jbGlja0xpc3RlbmVyKHRydXN0ZS5ldS5ub3RpY2VMUC5wbik7Yy5yZXR1cm5Gb2N1c1RvPVxudHJ1c3RlLmV1Lmljb25pZH0pKTtjLmZlYXQuZW5hYmxlSVJNJiZ0cnVzdGUuZXUuaXJtLm1ha2UodHJ1c3RlLmV1LmlybUNsaWNrTGlzdGVuZXIpO2Q9ZnVuY3Rpb24oKXt0cnVzdGUuZXUubXNnLmFkZEV2ZW50TGlzdGVuZXIodHJ1c3RlLmV1LmFjdG1lc3NhZ2UpO3RyeXt2YXIgYT1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTthLnR5cGU9XCJ0ZXh0L2Nzc1wiO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJbbm9uY2VdXCIpO2ImJmEuc2V0QXR0cmlidXRlKFwibm9uY2VcIixiLm5vbmNlfHxiLmdldEF0dHJpYnV0ZShcIm5vbmNlXCIpKTsoYS5zaGVldHx8e30pLmluc2VydFJ1bGU/YS5zaGVldC5pbnNlcnRSdWxlKFwidHJ1c3RlX2hpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbjt9XCIsMCk6KGEuc3R5bGVTaGVldHx8YS5zaGVldCkuYWRkUnVsZShcInRydXN0ZV9oaWRkZW5cIixcInZpc2liaWxpdHk6aGlkZGVuO1wiKTtzZWxmLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5hcHBlbmRDaGlsZChhKX1jYXRjaChmKXt9YT1cbnRydXN0ZS51dGlsLnJlYWRDb29raWUodHJ1c3RlLmV1LkNPT0tJRV9HRFBSX1BSRUZfTkFNRSwhMCk7dHJ1c3RlLnV0aWwucmVhZENvb2tpZShcImNtYXBpX2Nvb2tpZV9wcml2YWN5XCIsITApO3RydXN0ZS51dGlsLnJlYWRDb29raWUoXCJjbWFwaV9ndG1fYmxcIiwhMCk7dHJ1c3RlLnV0aWwucmVhZENvb2tpZSh0cnVzdGUuZXUuQ09PS0lFX1BSRUZfTkFNRSwhMCk7YT8oYT1hLnNwbGl0KFwiOlwiKSxjLnByZWZDb29raWU9YVswXSxjLmRheENvb2tpZT1hWzFdKTpudWxsIT10cnVzdGUudXRpbC5yZWFkQ29va2llKFwiZ3Bwc3RyaW5nXCIpJiYoYy5wcmVmQ29va2llPTApO2MuZmVhdC5jcm9zc0RvbWFpbiYmdHJ1c3RlLmV1LnBvc3RNZXNzYWdlVG9GcmFtZShcImdldFByZWZlcmVuY2VcIix7fSxcInRydXN0YXJjTm90aWNlRnJhbWVcIik7Yy5mZWF0LmVuYWJsZUNNJiZ0cnVzdGUuZXUuaWNvbi5pbml0aWFsaXplKCk7Yy5mZWF0LmVuYWJsZUlSTSYmdHJ1c3RlLmV1LmlybS5pbml0aWFsaXplKCk7dHJ1c3RlLnV0aWwuaXNDb25zZW50Q2VudGVyKCk/XG50cnVzdGUuZXUuZ2V0VXNlckNvbnNlbnQodHJ1c3RlLmV1Lm5vdGljZUxQLnVzZXJJRCxmdW5jdGlvbihhLGIpe3RydXN0ZS5ldS5wb3N0VXNlckNlbnRlckNhbGxiYWNrKGEsYil9KTp1KCk7Yy5mZWF0LmNyb3NzRG9tYWluJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5mZWF0LmlzQ29uc2VudFJldHJpZXZlZD0hMDt1KCl9LDQ1MDApfTsvRmlyZWZveFtcXC9cXHNdKFxcZCtcXC5cXGQrKS8udGVzdChzZWxmLm5hdmlnYXRvci51c2VyQWdlbnQpJiYzLjY+bmV3IE51bWJlcihSZWdFeHAuJDEpJiZcImNvbXBsZXRlXCIhPXRydXN0ZS51dGlsLnJlYWR5U3RhdGUoKT9zZWxmLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsZCwhMSk6ZCgpO2MuYXBpRGVmYXVsdHMmJjEzPGMuYXBpRGVmYXVsdHMubGVuZ3RoJiZzZWxmLlByaXZhY3lNYW5hZ2VyQVBJLmluaXQoYy5hcGlEZWZhdWx0cyk7XCJpbXBsaWVkXCI9PWMuYmVoYXZpb3ImJnNlbGYuUHJpdmFjeU1hbmFnZXJBUEkuaW5pdCh7ZGVmYXVsdF9jb25zZW50OlwiYXBwcm92ZWRcIn0pO1xuc2VsZi5Qcml2YWN5TWFuYWdlckFQSS5pbml0KHRydXN0ZS5ldS5ub3RpY2VMUCwhMCk7dHJ1c3RlLmV1LmZsYWdzPXt9O3RydXN0ZS5ldS5mbGFncy5pbml0PSEwfTt0cnVzdGUuZXUucG9zdFVzZXJDZW50ZXJDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3ZhciBjPXRydXN0ZS5ldS5iaW5kTWFwO2lmKGEmJmIpe3ZhciBkPWIuY29va2llX2V4cGlyeSYmKG5ldyBEYXRlKHBhcnNlSW50KGIuY29va2llX2V4cGlyeSkpKS50b0dNVFN0cmluZygpO3RydXN0ZS51dGlsLmNyZWF0ZVByZWZlcmVuY2VGcm9tQ29va2llVmFsdWUoYSwhMSwhMCxiKTtcInRydWVcIj09dHJ1c3RlLmV1Lm5vdGljZUxQLmZpbnByb2cmJihudWxsIT09Yi5maW5hbmNpYWxfcHJvZ3JhbSYmXCJudWxsXCIhPT1iLmZpbmFuY2lhbF9wcm9ncmFtKSYmdHJ1c3RlLmV1LmNwcmEuZHJvcENwcmFDb29raWUoXCJ0cnVlXCI9PWIuZmluYW5jaWFsX3Byb2dyYW0sZCk7KGIuaXNfZ3BjX2hvbm9yZWR8fGMuZmVhdC5ncGMpJiZ0cnVzdGUudXRpbC5jcmVhdGVDb29raWUodHJ1c3RlLmV1LkNPT0tJRV9DUFJBX0dQQ0lTSE9OT1JFRCxcbmIuaXNfZ3BjX2hvbm9yZWQsZCwhMCwhMCk7Yi5vcHRvdXRfZG9tYWlucyYmdHJ1c3RlLnV0aWwuc2V0U3RvcmFnZSh0cnVzdGUuZXUuQ09PS0lFX0NBVEVHT1JZX05BTUUsYi5vcHRvdXRfZG9tYWlucywhMSk7Yi5jY3BhX2Nvb2tpZSYmdHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llKHRydXN0ZS5ldS5DT09LSUVfVVNQUklWQUNZLGIuY2NwYV9jb29raWUsZCk7Yi5wb3BfdGltZSYmdHJ1c3RlLnV0aWwuY3JlYXRlQ29va2llKHRydXN0ZS5ldS5DT09LSUVfUkVQT1AsMSpiLnBvcF90aW1lLGQsITApO3RydXN0ZS5ldS5jcHJhLnNob3VsZFNob3dGaW5Qcm9nKCkmJiF0cnVzdGUudXRpbC5pc0FjY2VwdEFsbChhKSYmdHJ1c3RlLmV1LmNsaWNrTGlzdGVuZXIoNywhMCx7Y3ByYUNvbnNlbnQ6YSxjcHJhU291cmNlOlwiY29uc2VudC1jZW50ZXJcIn0pfWMuZmVhdC5pc0NvbnNlbnRDZW50ZXJJbml0aWFsaXplZD0hMDt1KCl9O3RydXN0ZS5ldS5qc05vZGUxPXRydXN0ZS5ldS5iaW5kTWFwLmN1cnJlbnRTY3JpcHR8fFxudHJ1c3RlLnV0aWwuZ2V0U2NyaXB0RWxlbWVudCh0cnVzdGUuZXUuU0NSSVBUX1JFR1gsITAsdHJ1c3RlLmV1LkpTX1JFR1gpO3RydXN0ZS5ldS5ub3RpY2VMUD10cnVzdGUudXRpbC5pbml0UGFyYW1ldGVyTWFwKHRydXN0ZS5ldS5qc05vZGUxLHRydXN0ZS5ldS5ub3RpY2VMUHx8e30pO3RydXN0ZS5ldS5ub3RpY2VMUC5sb2NhbGU9dHJ1c3RlLmV1Lm5vdGljZUxQLmxvY2FsZXx8XCJcIjshdHJ1c3RlLmV1Lm5vdGljZUxQLm9zdHlwZSYmdHJ1c3RlLmV1Lm1vYmlsZS5pc01vYmlsZSYmKHRydXN0ZS5ldS5ub3RpY2VMUC5vc3R5cGU9XCJtb2JpbGVcIik7dHJ1c3RlLmV1Lm5vdGljZUxQLmd0bT10cnVzdGUuZXUuYmluZE1hcC5mZWF0Lmd0bXx8dHJ1c3RlLmV1Lm5vdGljZUxQLmd0bTt0cnVzdGUuZXUubm90aWNlTFAuY29va2llTmFtZSYmKHRydXN0ZS5ldS5DT09LSUVfUFJFRl9OQU1FPXRydXN0ZS5ldS5ub3RpY2VMUC5jb29raWVOYW1lLHRydXN0ZS5ldS5DT09LSUVfR0RQUl9QUkVGX05BTUU9XG50cnVzdGUuZXUubm90aWNlTFAuY29va2llTmFtZStcIl9nZHByXCIsdHJ1c3RlLmV1LkNPT0tJRV9SRVBPUD10cnVzdGUuZXUubm90aWNlTFAuY29va2llTmFtZStcIl9wb3B0aW1lXCIpO3RydXN0ZS5ldS5ub3RpY2VMUC5kZWJ1ZyYmKHRydXN0ZS51dGlsLmRlYnVnPVwiZmFsc2VcIiE9dHJ1c3RlLmV1Lm5vdGljZUxQLmRlYnVnKTt0cnVzdGUuY21hPXNlbGYuUHJpdmFjeU1hbmFnZXJBUEk9ZnVuY3Rpb24oYSl7dmFyIGI9e30sYz1jfHx3aW5kb3csZD17YmluZm86YXx8e319O3RoaXMhPWMmJih0aGlzLmlubmVyPWQpO2QuZmFrZT17Y2FwYWJpbGl0aWVzOltcImdldENvbnNlbnRcIl0sZGVmYXVsdF9jb25zZW50OlwiZGVuaWVkXCIsZGVmYXVsdF9zb3VyY2U6XCJpbXBsaWVkXCIscmVwb3J0bGV2ZWw6NSxjb25zZW50OnthbGw6e3ZhbHVlOm51bGwsdHlwZTp7fX19LGRvbWFpbjpkLmJpbmZvLmRvbWFpbnx8Yy5sb2NhdGlvbi5ob3N0bmFtZX07ZC5yZXF1ZXN0b3JzPXtsb2FkaW5nOltdfTtkLmF1dGhvcml0aWVzPVxuW1wiLnRydXN0ZS5jb21cIixcIi50cnVzdGFyYy5jb21cIixcIi50cnVzdGFyYy5ldVwiLFwiLnRydXN0ZS1zdmMubmV0XCIsXCIuXCIrZC5mYWtlLmRvbWFpbl07ZC5ibGFja2xpc3Q9W1wiLmV4YW1wbGUteHh4LmNvbVwiXTtkLnZhbGlkX3ZhbHVlcz17Y29uc2VudDp7ZGVuaWVkOjEsYXBwcm92ZWQ6Mn0sc291cmNlOntpbXBsaWVkOjEsYXNzZXJ0ZWQ6Mn0sdHlwZTp7c2Vzc2lvbjoxMDQ4NTYxLG5lY2Vzc2FyeTo2NTUyMyxsaW1pdGVkOjY1NTI3LGhvc3Q6NjUzMTEsc2hhcmVkOjY1MzQzLHByZXNlbnQ6NjU0MDcsc3lzdGVtaWM6NjE5NTEsZnVuY3Rpb25hbDo2MjQ2Myx1bmlxdWU6NjM0ODcsdXVpZDo2NTUzNSx1c2VyOjgxOTEsc2l0ZToxNjM4MyxwYXJ0eTozMjc2NyxcInByaXZhdGVcIjoxNjI0MSxzZWN1cml0eToxNjE0NyxwcmVmZXJlbmNlczozMDU3OSxiZWhhdmlvcmFsOjEzMTE5LHRyYWNraW5nOjYyMzM1LGFuYWx5dGljOjMwNTgzLGFkdmVydGlzaW5nOjYzNDg3LHJlcXVlc3RlZDo4MDU1LHJlcXVpcmVkOjE2MTc5LFxuZnVuY3Rpb25hbGl0eToyOTU1NSx0YXJnZXRpbmc6NjU1MzV9fTtkLmNhZGR5PW51bGw7ZC5pc0NhcGFibGU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMuZmFrZS5jYXBhYmlsaXRpZXMubGVuZ3RoOzA8Yi0tOylpZih0aGlzLmZha2UuY2FwYWJpbGl0aWVzW2JdPT1hKXJldHVybiBiKzE7cmV0dXJuIDB9O2QuZW5kc1dpdGg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbCE9YiYmYi5yZXBsYWNlP1JlZ0V4cChcIi4qXCIrYi5yZXBsYWNlKC9cXC4vZyxcIlxcXFwuXCIpK1wiJFwiKS50ZXN0KGEpOiExfTtkLl9oYXNMb2FkZWRQcmVmcz0hMTtkLmxvYWRPbGRQcmVmcz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmdldFN0b3JhZ2UoXCJQcml2YWN5TWFuYWdlckFQSS5wcmVmZXJlbmNlc1wiLG51bGwsMTMpO2lmKGIpe3RoaXMudGNvbnNvbGUubG9nKFwiQXBwbHlpbmcgb2xkIHByZWZlcmVuY2VzOiBcIixiKTtmb3IodmFyIGMgaW4gYilhLmNvbnNlbnRbY109YltjXXx8YS5jb25zZW50W2NdfXRoaXMuX2hhc0xvYWRlZFByZWZzPVxuITA7Zm9yKHZhciBiPTAsZD10aGlzLnJlcXVlc3RvcnMubG9hZGluZyYmdGhpcy5yZXF1ZXN0b3JzLmxvYWRpbmcubGVuZ3RofHwwO2I8ZDspe3ZhciBlPXRoaXMucmVxdWVzdG9ycy5sb2FkaW5nW2IrK107aWYoYT10aGlzLnByb2Nlc3NNZXNzYWdlKGUuYXBpT2IsZSkpe2ZvcihjIGluIGEpZS5hcGlPYltjXT1hW2NdO2RlbGV0ZSBlLmFwaU9iLmxvYWRpbmc7dGhpcy5zZW5kUG9zdChlLHtQcml2YWN5TWFuYWdlckFQSTplLmFwaU9ifSl9fX07ZC5nZXRBdXRob3JpdHlMZXZlbD1mdW5jdGlvbihhLGIsZCxlKXtpZighZSlyZXR1cm4gMDt2YXIgbT10aGlzLmlzQW5BdXRob3JpdHkoZSk7aWYobSlyZXR1cm4gbTttPVwiLlwiKyhjLmxvY2F0aW9uLmhvc3RuYW1lfHxcImxvY2FsaG9zdFwiKTtiPWJ8fG07Zm9yKHZhciBoPXRoaXMuYmxhY2tsaXN0Lmxlbmd0aDswPGgtLTspaWYodGhpcy5lbmRzV2l0aChiLHRoaXMuYmxhY2tsaXN0W2hdKSlyZXR1cm4gMDtpZih0aGlzLmVuZHNXaXRoKGEsZCl8fFxudGhpcy5lbmRzV2l0aChkLGEpKXJldHVybi01O2lmKHRoaXMuZW5kc1dpdGgoYSxiKXx8dGhpcy5lbmRzV2l0aChiLGEpKXJldHVybi0xO2UuY2hhckF0JiYoZT1lLnNwbGl0KC9cXHMqW1xccyxdXFxzKi8pKTtmb3IodmFyIGg9MCxuPWUubGVuZ3RoOzA8bi0tOyl0aGlzLmVuZHNXaXRoKGIsZVtuXSk/aD1NYXRoLm1pbigtNCxoKTp0aGlzLmVuZHNXaXRoKGEsZVtuXSk/aD1NYXRoLm1pbigtMyxoKTp0aGlzLmVuZHNXaXRoKG0sZVtuXSkmJihoPU1hdGgubWluKC0yLGgpKTtpZihoKXJldHVybiBoO3RoaXMuc2VuZEV2ZW50KFwidWthXCIsZSwwLGQsbnVsbCxhLGIpO3JldHVybiAwfTtkLmlzQW5BdXRob3JpdHk9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIDA7YS5jaGFyQXQmJihhPWEuc3BsaXQoL1xccypbXFxzLF1cXHMqLykpO2lmKDE9PWEubGVuZ3RoJiYoYT1hWzBdLnJlcGxhY2UoL15cXC4/LyxcIi5cIikpKWZvcih2YXIgYj10aGlzLmF1dGhvcml0aWVzLmxlbmd0aDswPGItLTspe2lmKHRoaXMuZW5kc1dpdGgoYSxcbnRoaXMuYXV0aG9yaXRpZXNbYl0pKXJldHVybiBiKzF9ZWxzZSBmb3IodmFyIGMsYj1hLmxlbmd0aDswPGItLTspaWYoYz10aGlzLmlzQW5BdXRob3JpdHkoYVtiXSkpcmV0dXJuIGM7cmV0dXJuIDB9O2Quc2VuZFVwZGF0ZXNUbz1mdW5jdGlvbihhLGIsYyl7dGhpcy5jYWRkeT17aG9sZDohMH07dmFyIGQsZT17UHJpdmFjeU1hbmFnZXJBUEk6e3RpbWVzdGFtcDpjLGNhcGFiaWxpdGllczp0aGlzLmZha2UuY2FwYWJpbGl0aWVzfX0saD1lLlByaXZhY3lNYW5hZ2VyQVBJLG47Zm9yKG4gaW4gYSlpZihjPWFbbl0pZm9yKHZhciByPWMubGVuZ3RoOzA8ci0tOylpZigoZD1jW3JdKSYmZC53KWlmKGQuZ2V0Q29uc2VudCl7dmFyIHM9dGhpcy5hcGlEbyhcImdldENvbnNlbnRcIix0aGlzLmF1dGhvcml0aWVzWzBdLGQuZCx0aGlzLmF1dGhvcml0aWVzWzBdLGQudCk7aWYoZC5zIT1zLnNvdXJjZXx8ZC5jIT1zLmNvbnNlbnQpaC5jb25zZW50PWQuYz1zLmNvbnNlbnQsaC5zb3VyY2U9ZC5zPXMuc291cmNlLFxuaC5zZWxmPWQuYSxoLmRvbWFpbj1kLmQsaC5hY3Rpb249XCJnZXRDb25zZW50XCIsdGhpcy5zZW5kUG9zdChkLncsZSl9ZWxzZSBkLmdldENvbnNlbnREZWNpc2lvbiYmYiYmKGguY29uc2VudD1oLnNvdXJjZT1udWxsLGguc2VsZj1kLmEsaC5hY3Rpb249XCJnZXRDb25zZW50RGVjaXNpb25cIix0aGlzLnNlbmRQb3N0KGQudyxlKSk7dGhpcy5jYWRkeT1udWxsfTtkLmdldEJUeXBlPWZ1bmN0aW9uKGEpe3ZhciBiPTA7aWYoYSl7YS5jaGFyQXQ/YT1hLnNwbGl0KC9cXFcrLyk6MDxhJiYoYT1bYV0pO2Zvcih2YXIgYj02NTUzNSxjPWEubGVuZ3RoOzA8Yy0tOyl7dmFyIGQ9cGFyc2VJbnQoYVtjXSk7aWYoaXNOYU4oZCkpaWYodGhpcy52YWxpZF92YWx1ZXMudHlwZVthW2NdXSliJj10aGlzLnZhbGlkX3ZhbHVlcy50eXBlW2FbY11dO2Vsc2UgdGhyb3cgRXJyb3IoXCJpbnZhbGlkIHR5cGVcIik7ZWxzZSBiJj1kfX1yZXR1cm4gYn07ZC5nZXRUeXBlUGVybWlzc2lvbj1mdW5jdGlvbihhLGIsYyxkKXtpZighYnx8XG5pc05hTihiKXx8Yi5sZW5ndGgpYj10aGlzLmdldEJUeXBlKGIpO2lmKGQmJlwidW5kZWZpbmVkXCIhPT10eXBlb2YgYVtkXSl7aWYoIWlzTmFOKGMuY29uc2VudERlY2lzaW9uKSYmYy5jb25zZW50RGVjaXNpb25zLnNwbGl0KC9bLDs6XS8pLmxlbmd0aCE9cGFyc2VJbnQoYy5jb25zZW50RGVjaXNpb24pKXJldHVybiBhW2RdfWVsc2V7dmFyIGU9dGhpcy5nZXRTdG9yYWdlKHRydXN0ZS5ldS5DT09LSUVfQ0FURUdPUllfTkFNRSxudWxsLDEzKSxoO2ZvcihoIGluIGUpe3ZhciBuPXBhcnNlSW50KGVbaF0udmFsdWUpKzErXCJcIjtpZihkPT09aHx8ZD09bilyZXR1cm4gYy5jb25zZW50RGVjaXNpb25zLnNwbGl0KC9bLDs6XS8pLmluY2x1ZGVzKG4pP1wiYXBwcm92ZWRcIjpcImRlbmllZFwifX1jPWI8PDEmNjU1MzV8NDM2OTtkPVtdO2lmKDAhPWIpZm9yKHZhciByIGluIGEpYVtyXSYmdGhpcy52YWxpZF92YWx1ZXMuY29uc2VudFthW3JdXSYmKGQudGVtcD10aGlzLmdldEJUeXBlKHIpLChkLnRlbXB8XG5iKT09ZC50ZW1wJiZcImFwcHJvdmVkXCI9PWFbcl18fChkLnRlbXB8YykhPWQudGVtcCYmXCJkZW5pZWRcIj09YVtyXSkmJihkW2Fbcl1dfHxkLnB1c2goYVtyXSksZFthW3JdXT1yKTtyZXR1cm4gZC5kZW5pZWQ/XCJkZW5pZWRcIjpkLmpvaW4oXCIsXCIpfTtkLnVwZGF0ZVByZWZlcmVuY2VzPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFhKXJldHVybiExO1wiLlwiIT1hLmNoYXJBdCgwKSYmKGE9XCIuXCIrYSk7aWYoYnx8Yyl7dmFyIGU9dGhpcy5nZXRDb25zZW50Rm9yRG9tYWluKGEsZCl8fHt0eXBlOnt9fTt0aGlzLnZhbGlkX3ZhbHVlcy5jb25zZW50W2JdJiYoZS52YWx1ZT1iKTtpZihjKWZvcih2YXIgaCBpbiBjKWlmKHRoaXMudmFsaWRfdmFsdWVzLmNvbnNlbnRbY1toXV0paXNOYU4oaCk/dGhpcy52YWxpZF92YWx1ZXMudHlwZVtoXSYmKGUudHlwZVtoXT1jW2hdKTplLnR5cGVbaF09Y1toXTtlbHNlIGlmKG51bGw9PT1jW2hdfHxcIm51bGxcIj09PWNbaF0pZS50eXBlW2hdPW51bGwsZGVsZXRlIGUudHlwZVtoXTtcbnRoaXMudGNvbnNvbGUubG9nKFwidXBkYXRpbmcgcHJlZmVyZW5jZSBmb3IgZG9tYWluOiBcIithK1wiIHRvOlwiLGUpO2QuY29uc2VudFthXT1lfWVsc2UgaWYobnVsbD09PWJ8fFwibnVsbFwiPT09Yil0aGlzLnRjb25zb2xlLmxvZyhcIkRlbGV0aW5nIGNvbnNlbnQgcHJlZmVyZW5jZSBmb3I6IFwiK2EpLGQuY29uc2VudFthXT1udWxsLGRlbGV0ZSBkLmNvbnNlbnRbYV07ZWxzZSByZXR1cm4hMTt0aGlzLmdldFN0b3JhZ2UoXCJQcml2YWN5TWFuYWdlckFQSS5wcmVmZXJlbmNlc1wiLGQuY29uc2VudCwxMyk7cmV0dXJuITB9O2QuYXBpRG89ZnVuY3Rpb24oYSxiKXtpZighYXx8IWJ8fCF0aGlzLmlzQ2FwYWJsZShhKSlyZXR1cm57ZXJyb3I6XCJDYWxsIGlzIG1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVycyBvciBub3QgYWxsb3dlZFwifTt0aGlzLnRjb25zb2xlLmxvZyhcIkRvaW5nIEFQSSBDYWxsXCIsQXJyYXkuYXBwbHkobnVsbCxhcmd1bWVudHMpKTtzd2l0Y2goYSl7Y2FzZSBcImdldENvbnNlbnRcIjp2YXIgZD1cbihhcmd1bWVudHNbMl18fGMubG9jYXRpb24uaG9zdG5hbWUpLnJlcGxhY2UoL15cXC4/LyxcIi5cIiksZT10aGlzLmdldEF1dGhvcml0eUxldmVsKGQsKHRoaXMuY2FkZHl8fHt9KS5mcm9tLGIsYXJndW1lbnRzWzNdKTtpZihcImFsbFwiPT1kKXJldHVybntlcnJvcjpcIkNhbGwgdG8gdGhpcyBkb21haW4gaXMgbm90IGF1dGhvcml6ZWRcIn07dmFyIG09MCxoPWFyZ3VtZW50c1s0XSxuPXRoaXMuZ2V0U3RvcmFnZSh0cnVzdGUuZXUuQ09PS0lFX0NBVEVHT1JZX05BTUUsbnVsbCwxMywhMCkscj17cmVxdWlyZWQ6XCIwXCIsZnVuY3Rpb25hbDpcIjFcIixhZHZlcnRpc2luZzpcIjJcIn07dHJ5e2Zvcih2YXIgcyBpbiBuKWlmKG5bc10udmFsdWUmJnJbaF0mJm5bc10udmFsdWU9PXJbaF0pe2g9czticmVha31tPXRoaXMuZ2V0QlR5cGUoaCl9Y2F0Y2godCl7aWYoaXNOYU4oaCkmJiFuW2hdKXJldHVybntlcnJvcjpcIkludmFsaWQgVHlwZSBwYXJhbWV0ZXJcIn19bj10aGlzLmdldENvbnNlbnRGb3JEb21haW4oZCxcbnRoaXMuZmFrZSk7cj10aGlzLmdldFR5cGVQZXJtaXNzaW9uKHRoaXMuZmFrZS5jb25zZW50LmFsbC50eXBlLG0sdGhpcy5mYWtlLGgpO24mJihyPXRoaXMuZ2V0VHlwZVBlcm1pc3Npb24obi50eXBlLG0sdGhpcy5mYWtlLGgpfHxyfHxuLnZhbHVlKTttPShyPXJ8fHRoaXMuZmFrZS5jb25zZW50LmFsbC52YWx1ZSk/e3NvdXJjZTpcImFzc2VydGVkXCIsY29uc2VudDpyfTp7c291cmNlOnRoaXMuZmFrZS5kZWZhdWx0X3NvdXJjZSxjb25zZW50OnRoaXMuZmFrZS5kZWZhdWx0X2NvbnNlbnR9O3RoaXMudGNvbnNvbGUubG9nKFwiRGlkIGdldENvbnNlbnQgQVBJIGNhbGwgZm9yOiBcIitkK1wiIGZyb206IFwiKyh0aGlzLmNhZGR5fHx7fSkuZnJvbStcIiwgZ290IHJlc3VsdDogXCIsbSk7MDxlJiYobS5vcmlnaW49Yy5sb2NhdGlvbi5ob3N0bmFtZSk7cmV0dXJuIG07ZGVmYXVsdDpyZXR1cm4gdGhpcy5zZWNvbmRhcnlBY3Rpb24oYSxiLGFyZ3VtZW50c1syXSxhcmd1bWVudHNbM10pfX07ZC5wcm9jZXNzTWVzc2FnZT1cbmZ1bmN0aW9uKGEsYil7dmFyIGM7aWYoIWF8fCFifHwhKGM9Yi5vcmlnaW58fGIuZG9tYWluKXx8XCJudWxsXCI9PWMpcmV0dXJuIHRoaXMudGNvbnNvbGUuZXJyb3IoXCJnb3QgaW52YWxpZCBwb3N0bWVzc2FnZSBjYWxsIGZyb20gXCIrYyxhKSx7ZXJyb3I6XCJDYWxsIGlzIG1hbGZvcm1lZCBhbmQgbWlzc2luZyBpbmZvcm1hdGlvblwifTt0aGlzLnRjb25zb2xlLmxvZyhcInByb2Nlc3NpbmcgbWVzc2FnZSBmcm9tIFwiK2MsYSk7Yj17b3JpZ2luOmIub3JpZ2luLGRvbWFpbjpiLmRvbWFpbixzb3VyY2U6Yi5zb3VyY2V9O2M9XCIuXCIrYy50b0xvY2FsZUxvd2VyQ2FzZSgpLnJlcGxhY2UoL14oaHR0cHM/Oik/XFwvXFwvKFteXFwvXSpAKT8vLFwiXCIpLnJlcGxhY2UoL1tcXC86XS4qLyxcIlwiKTtzd2l0Y2goYS5hY3Rpb24pe2Nhc2UgXCJnZXRDb25zZW50XCI6dmFyIGQ9YS5zZWxmLGU9YS5hdXRob3JpdHksaD1hLmRvbWFpbixuPWEudHlwZXx8dm9pZCAwO2QmJmQucmVwbGFjZSgvXlxcLj8vLFwiLlwiKTtoJiZoLnJlcGxhY2UoL15cXC4/LyxcblwiLlwiKTtpZighZClyZXR1cm57ZXJyb3I6XCJBbGwgY2FsbGVycyBtdXN0IGlkZW50aWZ5IHRoZW1zZWx2ZXMgdmlhIHRoZWlyIGRvbWFpbiBpZC4gQWRkIHByb3BlcnR5ICdzZWxmJyBvbiB0aGUgcG9zdCBtZXNzYWdlIG9iamVjdC5cIn07aWYoaCYmIXRoaXMuZW5kc1dpdGgoaCxjKSl7aWYoIWUpcmV0dXJue2Vycm9yOlwiQ2FsbCAnYXV0aG9yaXR5JyBwYXJhbWV0ZXIgaXMgbWlzc2luZy4gQWxsIHJlcXVlc3RzIGZvciBwcmVmZXJlbmNlcyBvZiBkb21haW5zIG5vdCB5b3VyIG93biByZXF1aXJlIGFuIGF1dGhvcml0eSBwYXJhbWV0ZXIuIEFuICdhdXRob3JpdHknIGlzIHdoYXRldmVyIGVudGl0eSBoYXMgYXBwcm92ZWQgb3IgcmVxdWVzdGVkIHlvdSB0byBtYWtlIHRoaXMgY2FsbC4gRXhhbXBsZXMgaW5jbHVkZSB0aGUgZG9tYWluIHlvdSBhcmUgaW5xdWlyaW5nIGFib3V0LCB0aGUgd2ViIHNpdGUgeW91IGFyZSBob3N0ZWQgb24sIG9yIGEgdGhpcmQgcGFydHkgcHJpdmFjeSBwcm92aWRlciBsaWtlIFRSVVNUZS5cIn07XG5pZighdGhpcy5nZXRBdXRob3JpdHlMZXZlbChoLGMsZCxlKSlyZXR1cm57ZXJyb3I6XCJDYWxsIGlzIG5vdCBhdXRob3JpemVkLiBUaGUgY2FsbCB5b3UgbWFkZSByZXF1aXJlcyBhIHZhbGlkIGF1dGhvcml0eVwifX1lbHNlIGh8fChoPWMpO3RoaXMuY2FkZHk9e2Zyb206Y307Yz10aGlzLmFwaURvKFwiZ2V0Q29uc2VudFwiLGQsaCxlLG4pO3RoaXMuY2FkZHk9bnVsbDtjJiYhYy5lcnJvciYmKHRoaXMucmVxdWVzdG9yc1toXT10aGlzLnJlcXVlc3RvcnNbaF18fFtdLHRoaXMucmVxdWVzdG9yc1toXS5wdXNoKHt3OmIsZ2V0Q29uc2VudDoxLHQ6bixhOmQsZDpoLHM6Yy5zb3VyY2UsYzpjLmNvbnNlbnR9KSxjLmRvbWFpbj1oLGMuc2VsZj1kLGMuY2FwYWJpbGl0aWVzPXRoaXMuZmFrZS5jYXBhYmlsaXRpZXMpO3JldHVybiBjO2Nhc2UgXCJ1cGRhdGVQcmVmZXJlbmNlXCI6aWYoMDx0aGlzLmlzQW5BdXRob3JpdHkoYykpe2lmKCFhLmRvbWFpbilyZXR1cm57ZXJyb3I6XCJSZXF1aXJlZCBwYXJhbWV0ZXIgJ2RvbWFpbicgbm90IHNlbnRcIn07XG5kPWEuZG9tYWluLnJlcGxhY2UoL15cXC4/LyxcIi5cIik7aWYoIXRoaXMudXBkYXRlUHJlZmVyZW5jZXMoZCxhLnZhbHVlLGEudHlwZSx0aGlzLmZha2UpKXJldHVybntlcnJvcjpcIkludmFsaWQgdmFsdWUgZm9yIHJlcXVpcmVkIHBhcmFtZXRlciAndmFsdWUnIHNlbnRcIn07aD10aGlzLnJlcXVlc3RvcnM7XCJhbGxcIiE9ZCYmKGg9e30saFtkXT10aGlzLnJlcXVlc3RvcnNbZF0pO3RoaXMuc2VuZFVwZGF0ZXNUbyhoLCExLGEudGltZXN0YW1wKTtyZXR1cm4gbnVsbH1yZXR1cm57ZXJyb3I6XCJDYWxsIGlzIG5vdCBmcm9tIGFuIGF1dGhvcml6ZWQgTG9jYXRpb25cIn07ZGVmYXVsdDpyZXR1cm4gdGhpcy5zZWNvbmRhcnlNZXNzYWdlUHJvY2Vzc2luZyhhLGIsYyl9fTtkLmxvYWRDb25zZW50RGVjaXNpb249ZnVuY3Rpb24oYSl7dmFyIGI7bnVsbD09YS5jb25zZW50RGVjaXNpb25zJiYoYj10aGlzLmdldFN0b3JhZ2UodHJ1c3RlLmV1LkNPT0tJRV9HRFBSX1BSRUZfTkFNRSksYiBpbnN0YW5jZW9mXG5PYmplY3QmJihiPWIudmFsdWUpLG51bGwhPWImJlwiXCIhPWImJihhLmNvbnNlbnREZWNpc2lvbnM9Yi5zcGxpdCgvWyx8XS8pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VJbnQoYSkrMX0pLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4haXNOYU4oYSl9KS5qb2luKCkpKTthLmNvbnNlbnREZWNpc2lvbj10cnVzdGUudXRpbC5nZXRMb3dlc3RDb25zZW50KGEuY29uc2VudERlY2lzaW9ucyk7bnVsbD09YS5jb25zZW50RGVjaXNpb24mJihiPXRoaXMuZ2V0U3RvcmFnZSh0cnVzdGUuZXUuQ09PS0lFX1BSRUZfTkFNRSksYiBpbnN0YW5jZW9mIE9iamVjdCYmKGI9Yi52YWx1ZSksYj1wYXJzZUludChiKSxpc05hTihiKXx8KGEuY29uc2VudERlY2lzaW9uPWIrMSkpO2I9YS5jb25zZW50RGVjaXNpb247aWYobnVsbCE9Yil7dmFyIGM9dHJ1c3RlLnV0aWwuZ2V0U3RvcmFnZSh0cnVzdGUuZXUuQ09PS0lFX0NBVEVHT1JZX05BTUUpfHx7fSxkPSEwO2lmKGEuY29uc2VudERlY2lzaW9ucylmb3IodmFyIGUgaW4gYylpZihjLmhhc093blByb3BlcnR5KGUpKXt2YXIgaD1cbmNbZV07aC5kb21haW5zJiYoZD1kJiYtMTxhLmNvbnNlbnREZWNpc2lvbnMuaW5kZXhPZihwYXJzZUludChoLnZhbHVlKSsxKSl9YS5jb25zZW50LmFsbC52YWx1ZT0wPT1ifHxkP1wiYXBwcm92ZWRcIjpcImRlbmllZFwifXRoaXMuYWRqdXN0VHlwZVZhbHVlcyhhKTt0aGlzLmJpbmZvJiZ0aGlzLmJpbmZvLmd0bSYmdGhpcy51cGRhdGVHVE0mJnRoaXMudXBkYXRlR1RNKGEpfTtkLmFkanVzdFR5cGVWYWx1ZXM9ZnVuY3Rpb24oYSl7ZGVsZXRlIGEuY29uc2VudC5hbGwudHlwZS5mdW5jdGlvbmFsO2RlbGV0ZSBhLmNvbnNlbnQuYWxsLnR5cGUuYWR2ZXJ0aXNpbmc7dmFyIGI7YS5jb25zZW50RGVjaXNpb25zPyhhLmNvbnNlbnQuYWxsLnR5cGUuZnVuY3Rpb25hbD1cImRlbmllZFwiLGEuY29uc2VudC5hbGwudHlwZS5hZHZlcnRpc2luZz1cImRlbmllZFwiLGI9YS5jb25zZW50RGVjaXNpb25zLnNwbGl0KC9bLHxdLyksYi5pbmNsdWRlcyhcIjJcIikmJihhLmNvbnNlbnQuYWxsLnR5cGUuZnVuY3Rpb25hbD1cblwiYXBwcm92ZWRcIiksYi5pbmNsdWRlcyhcIjNcIikmJihhLmNvbnNlbnQuYWxsLnR5cGUuYWR2ZXJ0aXNpbmc9XCJhcHByb3ZlZFwiKSk6KGI9YS5jb25zZW50RGVjaXNpb24sMT09Yj8oYS5jb25zZW50LmFsbC50eXBlLmZ1bmN0aW9uYWw9XCJkZW5pZWRcIixhLmNvbnNlbnQuYWxsLnR5cGUuYWR2ZXJ0aXNpbmc9XCJkZW5pZWRcIik6Mj09YiYmKGEuY29uc2VudC5hbGwudHlwZS5mdW5jdGlvbmFsPVwiYXBwcm92ZWRcIixhLmNvbnNlbnQuYWxsLnR5cGUuYWR2ZXJ0aXNpbmc9XCJkZW5pZWRcIikpfTtiLmNhbGxBcGk9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGQuY2FkZHk9bnVsbCxkLmFwaURvLmFwcGx5KGQsYXJndW1lbnRzKX1jYXRjaChhKXt0cnl7ZC5zZW5kRXJyb3ImJmQuc2VuZEVycm9yKGFyZ3VtZW50c1swXSxhcmd1bWVudHNbM10sYXJndW1lbnRzWzFdLHtkb21haW46YXJndW1lbnRzWzJdLHR5cGU6YXJndW1lbnRzWzRdfSxhKX1jYXRjaChiKXt9ZC50Y29uc29sZS5sb2coYS5zdGFjayk7ZC5jYWRkeT1cbm51bGw7cmV0dXJue2Vycm9yOlwiVW5rbm93biBFcnJvciBvY2N1cmVkXCJ9fX07ZC5nZXRDb25zZW50RnJvbURvbWFpbmxpc3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFjKXJldHVybiBudWxsO3ZhciBkPW51bGwsZSxoPWIuY29uc2VudERlY2lzaW9ucztiPSFoJiZiLmNvbnNlbnREZWNpc2lvbjtmb3IodmFyIG4gaW4gYylpZihiKXtpZihjW25dLmRvbWFpbnMmJihlPWNbbl0uZG9tYWluc1thXXx8Y1tuXS5kb21haW5zW2Euc3Vic3RyaW5nKDEpXSkpe2Q9e3ZhbHVlOm51bGwsdHlwZTp7fX07Y1tuXS52YWx1ZTxiJiYoZC52YWx1ZT1cImFwcHJvdmVkXCIpO2JyZWFrfX1lbHNlIGgmJihjW25dLmRvbWFpbnMmJihlPWNbbl0uZG9tYWluc1thXXx8Y1tuXS5kb21haW5zW2Euc3Vic3RyaW5nKDEpXSkpJiYoZHx8KGQ9e3ZhbHVlOm51bGwsdHlwZTp7fX0pLFwiZGVuaWVkXCIhPWQudmFsdWUmJjA8PWguaW5kZXhPZihwYXJzZUludChjW25dLnZhbHVlKSsxKSYmKGQudmFsdWU9XCJhcHByb3ZlZFwiKSxcIjBcIj09PVxuZT8oZC52YWx1ZT1cImRlbmllZFwiLGQudHlwZVtjW25dLnZhbHVlXT1cImRlbmllZFwiKTpcIjFcIj09PWUmJihcImRlbmllZFwiIT1kLnZhbHVlJiYoZC52YWx1ZT1cImFwcHJvdmVkXCIpLGQudHlwZVtjW25dLnZhbHVlXT1cImFwcHJvdmVkXCIpKTtyZXR1cm4gZH07ZC5nZXRDb25zZW50Rm9yRG9tYWluPWZ1bmN0aW9uKGEsYil7aWYoIWF8fCFiKXJldHVybiBudWxsO3RoaXMubG9hZENvbnNlbnREZWNpc2lvbihiKTt2YXIgYz10aGlzLmdldENvbnNlbnRGcm9tRG9tYWlubGlzdChhLGIsdGhpcy5nZXRTdG9yYWdlKFwib3B0b3V0X2RvbWFpbnNcIixudWxsLDEyKSk7aWYoIWMpcmV0dXJuIG51bGw7Yy5jdXJyZW50RGVjaXNpb249Yi5jb25zZW50RGVjaXNpb25zfHxiLmNvbnNlbnREZWNpc2lvbjtyZXR1cm4gYi5jb25zZW50W2FdPWN9O2QuX2ltZ3JlcD1bXTtkLnNlbmRFdmVudD1mdW5jdGlvbihhLGIsZCxlLG0saCl7aWYoISh0aGlzLmNhZGR5JiZ0aGlzLmNhZGR5LmhvbGR8fHRoaXMudGNvbnNvbGUuaXNEZWJ1ZygpKSl7aWYodGhpcy5pc0NhcGFibGUoYSkpe2lmKCFpc05hTihiKXx8XG50aGlzLmZha2UucmVwb3J0bGV2ZWwmNClpZih0aGlzLmNhZGR5KXtpZih0aGlzLmZha2UucmVwb3J0bGV2ZWwmMilyZXR1cm47YT10aGlzLmNhZGR5LmZyb207aWYodGhpcy5mYWtlLnJlcG9ydGxldmVsJjE2JiZoJiZhJiZ0aGlzLmVuZHNXaXRoKGgsYSl8fHRoaXMuZmFrZS5yZXBvcnRsZXZlbCYzMiYmZSYmYSYmdGhpcy5lbmRzV2l0aChhLGUpKXJldHVybn1lbHNlIGlmKHRoaXMuZmFrZS5yZXBvcnRsZXZlbCYxfHx0aGlzLmZha2UucmVwb3J0bGV2ZWwmOCYmZSYmaCYmdGhpcy5lbmRzV2l0aChoLGUpKXJldHVybn1lbHNlIGlmKFwidWthXCI9PWEmJnRoaXMuZmFrZS5yZXBvcnRsZXZlbCY2NClyZXR1cm47bnVsbD09bSYmKG09e3BhZ2U6Yy5sb2NhdGlvbi5wYXRobmFtZX0pO2VuY29kZVVSSUNvbXBvbmVudChiKTtkJiZlbmNvZGVVUklDb21wb25lbnQoZCk7ZW5jb2RlVVJJQ29tcG9uZW50KGUpO20mJmVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNoZWFwSlNPTihtKSk7dGhpcy5iaW5mbyYmXG4oYj10aGlzLmJpbmZvLmxvY2FsZS5pbmRleE9mKFwiLVwiKSxlbmNvZGVVUklDb21wb25lbnQodGhpcy5iaW5mby5sb2NhbGUuc2xpY2UoMCxiKSksZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuYmluZm8uYmVoYXZpb3IpLGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmJpbmZvLmxvY2FsZS5zdWJzdHIoYisxKSkpfX07ZC5zZW5kRXJyb3I9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmZha2UucmVwb3J0bGV2ZWwmMTI4fHwodGhpcy5jYWRkeSYmdGhpcy5jYWRkeS5ob2xkfHx0aGlzLnRjb25zb2xlLmlzRGVidWcoKSl8fChkfHwoZD17fSksZSYmZS5zdGFjayYmKGUuc3RhY2subWF0Y2goLyhAfGF0KVteXFxuXFxyXFx0XSovKSxlLnN0YWNrLm1hdGNoKC8oQHxhdClbXlxcblxcclxcdF0qJC8pKSx0aGlzLmJpbmZvJiYoZC5jb3VudHJ5PXRoaXMuYmluZm8ubG9jYWxlLnNsaWNlKDAsMil8fHRoaXMuYmluZm8uY291bnRyeXx8XCJcIix0aGlzLmJpbmZvLmJlaGF2aW9yJiYoZC5iZWhhdmlvcj10aGlzLmJpbmZvLmJlaGF2aW9yKSxcbnRoaXMuYmluZm8ubG9jYWxlJiYoZC5sb2NhbGU9dGhpcy5iaW5mby5sb2NhbGUpKSxkZWxldGUgZC5hdXRob3JpdHksZGVsZXRlIGQuYWN0aW9uLGRlbGV0ZSBkLnNlbGYpfTtkLnNlY29uZGFyeU1lc3NhZ2VQcm9jZXNzaW5nPWZ1bmN0aW9uKGEsYixjKXthLmZyb209Yztzd2l0Y2goYS5hY3Rpb24pe2Nhc2UgXCJnZXRDb25zZW50RGVjaXNpb25cIjppZighYS5zZWxmKXJldHVybntlcnJvcjpcIk1pc3NpbmcgaWRlbnRpdHkgb2YgQVBJIGNhbGxlclwifTt0aGlzLnJlcXVlc3RvcnNbY109dGhpcy5yZXF1ZXN0b3JzW2NdfHxbXTt0aGlzLnJlcXVlc3RvcnNbY10ucHVzaCh7dzpiLGdldENvbnNlbnREZWNpc2lvbjoxLHQ6bnVsbCxhOmEuc2VsZn0pO3JldHVybntjb25zZW50RGVjaXNpb246bnVsbCxzb3VyY2U6bnVsbCxjYXBhYmlsaXRpZXM6dGhpcy5mYWtlLmNhcGFiaWxpdGllc307Y2FzZSBcInVwZGF0ZURlY2lzaW9uXCI6aWYoMDx0aGlzLmlzQW5BdXRob3JpdHkoYykpe2I9YS52YWx1ZTtcbmlmKGI9PXRoaXMuZmFrZS5jb25zZW50RGVjaXNpb25zKWJyZWFrO3RoaXMuZmFrZS5jb25zZW50RGVjaXNpb25zPWI7dGhpcy5sb2FkQ29uc2VudERlY2lzaW9uKHRoaXMuZmFrZSk7dGhpcy50Y29uc29sZS5sb2coXCJ1cGRhdGVkIGRlY2lzaW9uIHRvIDogXCIrYik7dGhpcy5zZW5kVXBkYXRlc1RvKHRoaXMucmVxdWVzdG9ycywhMCxhLnRpbWVzdGFtcCk7cmV0dXJuIG51bGx9dGhpcy50Y29uc29sZS5lcnJvcihcIlVuYXV0aG9yaXplZCBlbnRpdHkgY2FsbGluZyB1cGRhdGVEZWNpc2lvblwiLGEpO3JldHVybntlcnJvcjpcIkNhbGwgaXMgbm90IGZyb20gYW4gYXV0aG9yaXplZCBMb2NhdGlvblwifTtkZWZhdWx0OnJldHVybiB0aGlzLnRjb25zb2xlLmVycm9yKFwiVW5rbm93biBhcGkgY2FsbCBhdHRlbXB0XCIsYSkse2Vycm9yOlwiQ2FsbCBpcyBub3QgYXZhaWxhYmxlXCJ9fX07ZC5zZWNvbmRhcnlBY3Rpb249ZnVuY3Rpb24oYSxiLGMsZCl7c3dpdGNoKGEpe2Nhc2UgXCJnZXRDb25zZW50RGVjaXNpb25cIjpyZXR1cm4gdGhpcy5sb2FkQ29uc2VudERlY2lzaW9uKHRoaXMuZmFrZSksXG5jPShkPXRoaXMuZmFrZS5jb25zZW50RGVjaXNpb24pP3BhcnNlSW50KGQpOjAsZD1kP1wiYXNzZXJ0ZWRcIjpcImltcGxpZWRcIix0aGlzLnNlbmRFdmVudChhLC0xLDAsYikse2NvbnNlbnREZWNpc2lvbjpjLHNvdXJjZTpkfTtjYXNlIFwiZ2V0R0RQUkNvbnNlbnREZWNpc2lvblwiOnJldHVybiB0aGlzLmxvYWRDb25zZW50RGVjaXNpb24odGhpcy5mYWtlKSxjPShkPXRoaXMuZmFrZS5jb25zZW50RGVjaXNpb25zKT9kLnNwbGl0KC9bLHxdLykubWFwKE51bWJlcik6WzBdLGQ9ZD9cImFzc2VydGVkXCI6XCJpbXBsaWVkXCIsdGhpcy5zZW5kRXZlbnQoYSwtMSwwLGIpLHtjb25zZW50RGVjaXNpb246Yyxzb3VyY2U6ZH07Y2FzZSBcImdldENvbnNlbnRDYXRlZ29yaWVzXCI6cmV0dXJue2NhdGVnb3JpZXM6dHJ1c3RlLnV0aWwuZ2V0U3RvcmFnZSh0cnVzdGUuZXUuQ09PS0lFX0NBVEVHT1JZX05BTUUpfHxcIm5vIGNhdGVnb3JpZXNcIn07Y2FzZSBcInNldENvbnNlbnRMZXZlbHNcIjpmb3IoYT1jLmxlbmd0aC0xOzA8PVxuYTthLS0pZm9yKGI9MDtiPGE7YisrKWlmKGNbYl09PT1jW2FdKXtjLnNwbGljZShhLDEpO2JyZWFrfWE9dHJ1c3RlLmV1LmJpbmRNYXAuZmVhdC5yZXBsYWNlRGVsaW1pdGVyP1wifFwiOlwiLFwiO2I9Yy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEtMX0pO2E9KDE9PWMuYXQoMCk/XCJcIjpcIjBcIithKStiLmpvaW4oYSk7dHJ1c3RlLnV0aWwudmFsaWRDb25zZW50KGEpPzE9PXRydXN0ZS5ldS5ub3RpY2VMUC5ndG0mJih0cnVzdGUudXRpbC5pc0FjY2VwdEFsbChhKT90cnVzdGUudXRpbC5vcHRpbkFsbCgpOnRydXN0ZS5ldS5hdXRvT3B0b3V0KGEsITEpLHRydXN0ZS5ldS5wcmVmY2xvc2UoKSk6Y29uc29sZS5sb2coXCJDb25zZW50IHZhbHVlIHBhc3NlZCBpcyBpbnZhbGlkLlwiKTtjYXNlIFwiY2hhbmdlUmVwb3J0TGV2ZWxcIjpyZXR1cm4gYz1wYXJzZUludChjK1wiXCIpLGlzTmFOKGMpfHwodGhpcy5mYWtlLnJlcG9ydGxldmVsPWMpLHRoaXMuZmFrZS5yZXBvcnRsZXZlbDtkZWZhdWx0OnJldHVybiB0aGlzLnRjb25zb2xlLmVycm9yKFwiVW5rbm93biBhcGkgY2FsbCBhdHRlbXB0XCIsXG57YWN0aW9uOmEsc2VsZjpiLGFyZzE6YyxhcmcyOmR9KSx7ZXJyb3I6XCJDYWxsIGlzIG5vdCBhdmFpbGFibGVcIn19fTtkLmhhbmRsZUNNTWVzc2FnZT1mdW5jdGlvbihhLGIpe3ZhciBkPW51bGw7aWYoKGIub3JpZ2luPT09d2luZG93Lm9yaWdpbnx8dHJ1c3RlLmV1Lm1zZy5vcmlnaW5TZXQuaGFzKGIub3JpZ2luKSkmJlwicHJlZmVyZW5jZV9tYW5hZ2VyXCI9PWEuc291cmNlJiZcInN1Ym1pdF9wcmVmZXJlbmNlc1wiPT1hLm1lc3NhZ2Upe1widW5kZWZpbmVkXCIhPT10eXBlb2YoZGw9Y1t0aGlzLmJpbmZvJiZ0aGlzLmJpbmZvLmRsfHxcImRhdGFMYXllclwiXSkmJmRsLnB1c2goe2V2ZW50OlwidXNlcmFjdGlvbmNvbXBsZXRlXCJ9KTt2YXIgZT1bXSxtPSExLGg9XCJvYmplY3RcIj09dHlwZW9mIGEuZGF0YT9hLmRhdGEudmFsdWU6YS5kYXRhO3RoaXMudGNvbnNvbGUubG9nKFwiZ290IG5ldyB2YWx1ZXMgZnJvbSBjb25zZW50IG1hbmFnZXI6IFwiK2gpO2gmJmguc3BsaXQoL1ssfF0vKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2E9XG5wYXJzZUludChhKTtpc05hTihhKT9tPSEwOmUucHVzaChhKzEpfSk7bT8oYS5mcm9tPWIub3JpZ2lufHxiLmRvbWFpbixhLm1zZz1hLm1lc3NhZ2UsdGhpcy50Y29uc29sZS5lcnJvcihcIkdvdCBpbnZhbGlkIHZhbHVlIGZyb20gdGhlIENNOiBcIitoLGEpKTpkPXt2YWx1ZTplLmpvaW4oKSxhY3Rpb246XCJ1cGRhdGVEZWNpc2lvblwiLHRpbWVzdGFtcDoxfX1yZXR1cm4gZH07ZC51cGRhdGVHVE09ZnVuY3Rpb24oYSl7aWYoYSYmISgxPmEuY29uc2VudERlY2lzaW9uKSYmYS5jb25zZW50RGVjaXNpb25zKXt2YXIgYixkPXRoaXMuYmluZm8mJnRoaXMuYmluZm8uZ3RtX2Z1bl9pZHN8fFwiZ2EtbXMtdWFcIixlPXRoaXMuYmluZm8mJnRoaXMuYmluZm8uZ3RtX2Fkdl9pZHN8fFwidGEtYXNwLWJ6aS1zcC1hd2N0LWN0cy1jc20taW1nLWZsYy1mbHMtbXBtLW1wci1tNmQtdGMtdGRjXCIsbSxoPWQrXCItXCIrZSxuPWEuY29uc2VudERlY2lzaW9ucy5zcGxpdCgvWyx8XS8pO24uaW5jbHVkZXMoXCIxXCIpJiZcbihtPVwicmVxdWlyZWRcIik7bi5pbmNsdWRlcyhcIjJcIikmJihoPWgucmVwbGFjZShkLFwiXCIpLG09XCJmdW5jdGlvbmFsXCIpO24uaW5jbHVkZXMoXCIzXCIpJiYoaD1oLnJlcGxhY2UoZSxcIlwiKSxtPVwiXCIpO2g9aC5yZXBsYWNlKC8oXi0pfCgtJCkvLFwiXCIpO2E9KFwicGVybWl0IFwiK2EuY29uc2VudERlY2lzaW9ucytcIiBcIittKS50cmltKCk7Yj0oYj1jLmRvY3VtZW50LmNvb2tpZS5tYXRjaCgvY21hcGlfY29va2llX3ByaXZhY3k9XFxzKihbXjtcXFxcc10qKS8pKSYmYlsxXTtpZihiIT1hKXt0cnVzdGUudXRpbC5jcmVhdGVDb29raWUoXCJjbWFwaV9ndG1fYmxcIixoLFwiXCIsITApO3RydXN0ZS51dGlsLmNyZWF0ZUNvb2tpZShcImNtYXBpX2Nvb2tpZV9wcml2YWN5XCIsYSxcIlwiLCEwKTtpZihiPWNbdGhpcy5iaW5mbyYmdGhpcy5iaW5mby5kbHx8XCJkYXRhTGF5ZXJcIl0pYi5wdXNoKHtcImd0bS5ibGFja2xpc3RcIjpofSksYi5wdXNoKHtldmVudDpcImNvb2tpZV9wcmVmc19zZXRcIn0pO3RydXN0ZS5ldS5iaW5kTWFwLmZlYXQuY3Jvc3NEb21haW4mJlxuIXRydXN0ZS51dGlsLmlzQ29uc2VudENlbnRlcigpJiYoYj10cnVzdGUudXRpbC5nZXRTdG9yYWdlKHRydXN0ZS5ldS5DT09LSUVfQ0FURUdPUllfTkFNRSksdHJ1c3RlLmV1LnBvc3RNZXNzYWdlVG9GcmFtZShcInVwZGF0ZVByZWZlcmVuY2VcIixcIlwiLFwidHJ1c3RhcmNOb3RpY2VGcmFtZVwiLHtjbWFwaUJsOmgsY21hcGlQcnZjeTphLGNvb2tpZUV4cGlyeTp0cnVzdGUuZXUuYmluZE1hcC5jb29raWVFeHBpcnksb3B0b3V0RG9tYWluczpifSkpO3RydXN0ZS51dGlsLmZpcmVDdXN0b21FdmVudChcInRydXN0ZS1jb25zZW50LWd0bVwiLHRydXN0ZS5ldS5iaW5kTWFwLnByZWZDb29raWUpfX19O2QudGNvbnNvbGU9e307ZC50Y29uc29sZS5pc0RlYnVnPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPShjLlByaXZhY3lNYW5hZ2VyQVBJfHxiKS5kZWJ1Zz8oYy5Qcml2YWN5TWFuYWdlckFQSXx8YikuZGVidWc6MD5jLmxvY2F0aW9uLmhvc3RuYW1lLmluZGV4T2YoXCIuXCIpfHwwPGMubG9jYXRpb24uaG9zdG5hbWUuaW5kZXhPZihcIi50cnVzdGUtc3ZjLm5ldFwiKX07XG5kLnRjb25zb2xlLmxvZz1mdW5jdGlvbihhKXt2YXIgYj1jLmNvbnNvbGU/ITE6Y29uc29sZS5sb2cuYXBwbHk/Y29uc29sZS5sb2c6RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbChjb25zb2xlLmxvZyxjb25zb2xlKTtyZXR1cm4gdGhpcy5pc0RlYnVnKCkmJmImJihiLmFwcGx5KGNvbnNvbGUsYXJndW1lbnRzKXx8ITApfTtkLnRjb25zb2xlLmVycm9yPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmxvZyhcIkVycm9yOiBcIithKTtifHwoYj17fSk7YyYmdGhpcy5sb2coYy50b1N0cmluZygpK1wiXFxuXCIrYy5zdGFjayk7YSYmKGIubWVzc2FnZT1hKTtkLnNlbmRFcnJvciYmZC5zZW5kRXJyb3IoYi5hY3Rpb258fFwidWtcIixiLmF1dGhvcml0eSxiLnNlbGZ8fGIuZnJvbSxiLGMpfTtkLnBhcnNlSlNPTj1mdW5jdGlvbihhKXtpZihcInN0cmluZ1wiPT10eXBlb2YgYSl0cnl7cmV0dXJuIGMuSlNPTj9KU09OLnBhcnNlKGEpOiEvW14sOnt9XFxbXFxdMC05LlxcLStFYWVmbG5yLXUgXFxuXFxyXFx0XS8udGVzdChhLnJlcGxhY2UoL1wiKFxcXFwufFteXCJcXFxcXSkqXCIvZyxcblwiXCIpKSYmZXZhbChcIihcIithK1wiKVwiKX1jYXRjaChiKXtpZigvXlxccypbe1tdLipbfVxcXV1cXHMqJC8udGVzdChhKSlyZXR1cm4gdGhpcy50Y29uc29sZS5lcnJvcihcIkNvdWxkIG5vdCBwYXJzZSBqc29uIG9iamVjdDogXCIrYS5zbGljZSgwLDM1KSsoMzU8YS5sZW5ndGg/XCIuLi5cIjpcIlwiKSksbnVsbH1yZXR1cm4gYX07ZC5jaGVhcEpTT049ZnVuY3Rpb24oYSl7cmV0dXJuIGMudHJ1c3RlJiZ0cnVzdGUudXRpbCYmdHJ1c3RlLnV0aWwuZ2V0SlNPTihhKXx8Yy5KU09OJiZKU09OLnN0cmluZ2lmeShhKXx8J3tcIlByaXZhY3lNYW5hZ2VyQVBJXCI6e1wibWVzc2FnZVwiOlwiVGhlIEFQSSBuZWVkcyBhIEpTT04gcGFyc2VyXCJ9fSd9O2QuZ2V0U3RvcmFnZT1mdW5jdGlvbihhLGIsZCl7dHJ5e3ZhciBlPSExLG09IShkJjQpJiZcInRydXN0ZS5ldS5jb29raWUuXCJ8fFwiXCI7dHJ5e2U9Yy5sb2NhbFN0b3JhZ2UmJmMubG9jYWxTdG9yYWdlLmdldEl0ZW0mJiEoZCYyKX1jYXRjaChoKXt9aWYobnVsbD09Yil7dmFyIG49XG4hKGQmMSkmJlJlZ0V4cChcIlxcXFxzKlwiK2EucmVwbGFjZShcIi5cIixcIlxcXFwuXCIpK1wiXFxcXHMqPVxcXFxzKihbXjtcXFxcc10qKVwiKS5leGVjKGMuZG9jdW1lbnQuY29va2llLnRvU3RyaW5nKCkpO2lmKG4mJjE8bi5sZW5ndGgpYj1kZWNvZGVVUklDb21wb25lbnQoblsxXSksYj10aGlzLnBhcnNlSlNPTihiKXx8YjtlbHNlIGlmKGUpe2I9Yy5sb2NhbFN0b3JhZ2VbbSthXXx8Yy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShtK2EpO3ZhciByPXRoaXMucGFyc2VKU09OKGIpO2QmOHx8IXJ8fG51bGw9PXIudmFsdWU/Yj1yOihiPXIudmFsdWUsci5leHBpcmVzJiZuZXcgRGF0ZShwYXJzZUludChyLmV4cGlyZXMpKTxuZXcgRGF0ZSYmKHRoaXMuZ2V0U3RvcmFnZShhLDAsZCksYj1udWxsKSl9cmV0dXJuIGJ9YiYmIWIuY2hhckF0JiYoYj10aGlzLmNoZWFwSlNPTihiKSk7dmFyIHM9dGhpcy5mYWtlLmRvbWFpbnx8dGhpcy5iaW5mby5kb21haW58fG51bGw7cyYmKFwiLlwiIT1zLmNoYXJBdCgwKSYmKHM9XCIuXCIrcyksXG4wPmMubG9jYXRpb24uaG9zdG5hbWUuaW5kZXhPZihzKSYmKHM9bnVsbCkpO3ZhciB0PW5ldyBEYXRlO3Quc2V0RGF0ZSgzOTUpO3ZhciB1PVwiOyBleHBpcmVzPVwiKyhiP3QudG9HTVRTdHJpbmcoKTpcIlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UXCIpK1wiOyBwYXRoPS9cIisocz9cIjsgZG9tYWluPVwiK3M6XCJcIik7Yy5kb2N1bWVudC5jb29raWU9YStcIj1cIitlbmNvZGVVUklDb21wb25lbnQoYikrdTtpZihlKWlmKGIpZCY4fHwoYj10aGlzLmNoZWFwSlNPTih7bmFtZTphLHZhbHVlOmIsZXhwaXJlczp0LmdldFRpbWUoKX0pKSxjLmxvY2FsU3RvcmFnZS5zZXRJdGVtKG0rYSxiKTtlbHNle2MubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0obSthKTt0cnl7ZGVsZXRlIGMubG9jYWxTdG9yYWdlW20rYV19Y2F0Y2godyl7fX19Y2F0Y2godil7dGhpcy50Y29uc29sZS5lcnJvcihcImVycm9yIHdpdGggZ2V0U3RvcmFnZVwiLHtuYW1lOmEsdmFsdWU6Yn0sdil9cmV0dXJuIG51bGx9O2Quc2VuZFBvc3Q9XG5mdW5jdGlvbihhLGIpe2lmKGMucG9zdE1lc3NhZ2UmJmEmJmEuc291cmNlJiZiKXtcIm9iamVjdFwiPT10eXBlb2YgYiYmKGI9dGhpcy5jaGVhcEpTT04oYikpO3ZhciBkPWEub3JpZ2lufHxhLmRvbWFpbjtcIm51bGxcIiE9ZCYmZHx8KGQ9XCIqXCIpO3RoaXMudGNvbnNvbGUubG9nKFwicmVzcG9uZGluZyB0byAoXCIrZCtcIikgbWVzc2FnZSA6IFwiK2IpO2ImJmEuc291cmNlLnBvc3RNZXNzYWdlKGIsZCl9fTtkLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe2lmKCF0aGlzLl9oYXNMb2FkZWRQcmVmcyl7Yj1ifHx0aGlzLmZha2U7dHJ5e2EmJlwic3RyaW5nXCI9PXR5cGVvZiBhJiYoYT10aGlzLnBhcnNlSlNPTihhKSk7dGhpcy50Y29uc29sZS5sb2coXCJpbml0aW5nIHdpdGggb2JqZWN0OiBcIixhKTtpZihhKXtmb3IodmFyIGQgaW4gYiliW2RdPWFbZF18fGJbZF07Zm9yKGQgaW4gdGhpcy5iaW5mbyl0aGlzLmJpbmZvW2RdPWFbZF18fHRoaXMuYmluZm9bZF07YS5ibGFja2xpc3QgaW5zdGFuY2VvZiBBcnJheSYmXG4odGhpcy5ibGFja2xpc3Q9dGhpcy5ibGFja2xpc3QuY29uY2F0KGEuYmxhY2tsaXN0KSl9YyYmdGhpcy5sb2FkT2xkUHJlZnMmJnRoaXMubG9hZE9sZFByZWZzKGIpfWNhdGNoKGUpe3RoaXMudGNvbnNvbGUuZXJyb3IoXCJFcnJvciBpbml0aW5nOiBcIixiLGUpfX19O2QubWVzc2FnZUxpc3RlbmVyPWZ1bmN0aW9uKGEpe3ZhciBiLGM9YS5kYXRhJiZkLnBhcnNlSlNPTihhLmRhdGEpO2lmKGMmJihiPWMuUHJpdmFjeU1hbmFnZXJBUEl8fGQuaGFuZGxlQ01NZXNzYWdlKGMsYSkpKWlmKGIuY2FwYWJpbGl0aWVzfHxiLmVycm9yKWQudGNvbnNvbGUubG9nKFwiZ290IG15IG93biBtZXNzYWdlLCByZXR1cm5pbmdcIiksZC50Y29uc29sZS5sb2coYSk7ZWxzZSBpZihiLnRpbWVzdGFtcCYmYi5hY3Rpb24pdHJ5e2QudGNvbnNvbGUubG9nKFwiR09UIFZBTElEIE1FU1NBR0U6IFwiK2EuZGF0YSk7dmFyIGU9ZC5wcm9jZXNzTWVzc2FnZShiLGEpO2lmKGUpe2Zvcih2YXIgbSBpbiBlKWJbbV09ZVttXTtcbmMuUHJpdmFjeU1hbmFnZXJBUEkmJmQuc2VuZFBvc3QoYSxjKX19Y2F0Y2goaCl7ZC5jYWRkeT1udWxsLGIuZnJvbT1hLm9yaWdpbnx8YS5kb21haW4sZC50Y29uc29sZS5lcnJvcihcIlRSVVNUZSBDb25zZW50IE1hbmFnZXIgQVBJIHVua25vd24gZXJyb3IuXCIsYixoKSxkLnNlbmRQb3N0KGEse1ByaXZhY3lNYW5hZ2VyQVBJOntlcnJvcjpcIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQ6IFwiK2gudG9TdHJpbmcoKX19KX1lbHNlIGIuZnJvbT1hLm9yaWdpbnx8YS5kb21haW4sZC50Y29uc29sZS5lcnJvcihcImdvdCBpbnZhbGlkIHBvc3RtZXNzYWdlIGNhbGwsIG1pc3NpbmcgdHMgb3IgYWN0aW9uXCIsYiksZC5zZW5kUG9zdChhLCd7XCJQcml2YWN5TWFuYWdlckFQSVwiOntcImVycm9yXCI6XCJBUEkgT2JqZWN0IG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzXCJ9fScpfTtiLmluaXQ9ZnVuY3Rpb24oYSxiKXtkLmluaXQoYSxudWxsLGIpfTtjLlBSRUZfTUdSX0FQSV9ERUJVRz1kO2lmKGMucG9zdE1lc3NhZ2Upe2E9XG5jLndpbmRvdzt0cnl7Zm9yKDthIT1hLnBhcmVudCYmYS5wYXJlbnQuZG9jdW1lbnQ7KWE9YS5wYXJlbnR9Y2F0Y2goZSl7fWEuYWRkRXZlbnRMaXN0ZW5lcj8oYS5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLGQubWVzc2FnZUxpc3RlbmVyLCExKSxhIT1jJiZjLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsZC5tZXNzYWdlTGlzdGVuZXIsITEpKTooYS5hdHRhY2hFdmVudChcIm9ubWVzc2FnZVwiLGQubWVzc2FnZUxpc3RlbmVyKSxhIT1jJiZjLmF0dGFjaEV2ZW50KFwib25tZXNzYWdlXCIsZC5tZXNzYWdlTGlzdGVuZXIpKX1kLmZha2UuY29uc2VudERlY2lzaW9uPW51bGw7ZC5mYWtlLmNhcGFiaWxpdGllcy5wdXNoKFwiZ2V0Q29uc2VudERlY2lzaW9uXCIsXCJnZXRHRFBSQ29uc2VudERlY2lzaW9uXCIsXCJnZXRDb25zZW50Q2F0ZWdvcmllc1wiLFwic2V0Q29uc2VudExldmVsc1wiKTtiLnZlcnNpb249XCIxLjdcIjtyZXR1cm4gYn0odHJ1c3RlLmV1Lm5vdGljZUxQKTtzZWxmLlRSVVNURV9DTUFQSV9ERUJVRz1cbnNlbGYuUFJFRl9NR1JfQVBJX0RFQlVHO3RydXN0ZS5jbWEuZGVidWc9dHJ1c3RlLnV0aWwuZGVidWc7dHJ1c3RlLmV1LmJpbmRNYXA/dHJ1c3RlLmV1LmluaXQobnVsbCwxKTp0cnVzdGUudXRpbC5hZGRTY3JpcHRFbGVtZW50KHRydXN0ZS5ldS5TT1VSQ0VfU0VSVkVSK1wiP2pzPTEmXCIrdHJ1c3RlLmV1Lm5vdGljZUxQLl9xdWVyeSx0cnVzdGUuZXUuaW5pdCxudWxsLCEwKX1zZWxmLl90cnVzdGUmJihzZWxmLl90cnVzdGUuZXU9X3RydXN0ZV9ldSl8fF90cnVzdGVfZXUoKTtcbiJ9LCAiaGVhZGVyc1NpemUiOiA0MDksICJib2R5U2l6ZSI6IDI3NTcwLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAyNzk3OX0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDUxOS40MDUsICJyZWNlaXZlIjogNTIuOTcxfSwgInBhZ2VyZWYiOiAicGFnZUA1YzA5MWM3ZWQxODA4OTZlYWIzYjIwZmJhOWZlOTRhOSIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiMTguMTcyLjUyLjQ5IiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICJDTj0qLnRydXN0YXJjLmNvbSIsICJ2YWxpZEZyb20iOiAxNzEwNTQ3MjAwLCAidmFsaWRUbyI6IDE3NDQ2NzUxOTl9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQwNTo1NDowOS4zODBaIiwgInRpbWUiOiA3OTYuMDI5LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9hc3NldC9pYy1lcnJvci5zdmciLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQWNjZXB0IiwgInZhbHVlIjogImltYWdlL3dlYnAsaW1hZ2UvanhsLHZpZGVvLyo7cT0wLjgsaW1hZ2UvcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2UvKjtxPTAuOCwqLyo7cT0wLjUifSwgeyJuYW1lIjogIlJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cDovL2JhcHNtYW5kaXJkZXBhcmlzLmZyLyJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE3XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtRGVzdCIsICJ2YWx1ZSI6ICJpbWFnZSJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLU1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAiSG9zdCIsICJ2YWx1ZSI6ICJjb25zZW50LnRydXN0YXJjLmNvbSJ9XSwgInF1ZXJ5U3RyaW5nIjogW10sICJoZWFkZXJzU2l6ZSI6IDQ3OCwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJDb250ZW50LVR5cGUiLCAidmFsdWUiOiAiaW1hZ2Uvc3ZnK3htbCJ9LCB7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICJXZWQifSwgeyJuYW1lIjogIkxhc3QtTW9kaWZpZWQiLCAidmFsdWUiOiAiMjAgTWFyIDIwMTkgMDY6MTQ6MTIgR01UIn0sIHsibmFtZSI6ICJQcmFnbWEiLCAidmFsdWUiOiAicHVibGljIn0sIHsibmFtZSI6ICJDb250ZW50LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA1OjQzOjM1IEdNVCJ9LCB7Im5hbWUiOiAiVmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiT3JpZ2luIn0sIHsibmFtZSI6ICJWaWEiLCAidmFsdWUiOiAiMS4xIDUxOWUyYmZlZjRjNjY1YmNmMmQ2YmMzYTM3NGM1ZjgyLmNsb3VkZnJvbnQubmV0IChDbG91ZEZyb250KSJ9LCB7Im5hbWUiOiAiQWdlIiwgInZhbHVlIjogIjYzNCJ9LCB7Im5hbWUiOiAiQ2FjaGUtQ29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTI1OTIwMDAifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiSGl0IGZyb20gY2xvdWRmcm9udCJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIk5SVDIwLVAyIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJuSkNuczExNGNJVnp3Wmc0V3NTNmFBLTdDNjFFRHhLT2o2RFlRdEdDSVV2QV85WHptMERnMUE9PSJ9LCB7Im5hbWUiOiAic3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwOyBpbmNsdWRlU3ViRG9tYWlucyJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiA1NTE0LCAibWltZVR5cGUiOiAiaW1hZ2Uvc3ZnK3htbCIsICJjb21wcmVzc2lvbiI6IDQ2NjksICJ0ZXh0IjogIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICA8cGF0aCBmaWxsPVwiI0ZGRlwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTExLjQyOSAxMC40NzZWNC43NjJIOS41MjR2NS43MTRoMS45MDV6bTAgNC43NjJ2LTEuOTA1SDkuNTI0djEuOTA1aDEuOTA1ek0xMCAwYzEuODI3IDAgMy41MTguNDU3IDUuMDcyIDEuMzdhOS40NzggOS40NzggMCAwIDEgMy41NTggMy41NThBOS44MzUgOS44MzUgMCAwIDEgMjAgMTBhOS44MzUgOS44MzUgMCAwIDEtMS4zNyA1LjA3MiA5LjQ3OCA5LjQ3OCAwIDAgMS0zLjU1OCAzLjU1OEE5LjgzNSA5LjgzNSAwIDAgMSAxMCAyMGE5LjgzNSA5LjgzNSAwIDAgMS01LjA3Mi0xLjM3IDkuNjU3IDkuNjU3IDAgMCAxLTMuNTU4LTMuNTgyQTkuNzkgOS43OSAwIDAgMSAwIDEwYTkuNzkgOS43OSAwIDAgMSAxLjM3LTUuMDQ4QTkuODQyIDkuODQyIDAgMCAxIDQuOTUyIDEuMzcgOS43OSA5Ljc5IDAgMCAxIDEwIDB6XCIvPlxuICAgIDwhLS1cbiAgICBQb3dlcmluZyBQcml2YWN5IENvbXBsaWFuY2UgRm9yIEN1c3RvbWVycyBXb3JsZHdpZGVcbiAgICBUcnVzdEFyYywgdGhlIGxlYWRlciBpbiBwcml2YWN5IGNvbXBsaWFuY2UgYW5kIGRhdGEgcHJvdGVjdGlvbiBmb3Igb3ZlciB0d28gZGVjYWRlcywgb2ZmZXJzIGFuIHVubWF0Y2hlZCBjb21iaW5hdGlvbiBvZiBpbm5vdmF0aXZlIHRlY2hub2xvZ3ksIGV4cGVydCBjb25zdWx0aW5nIGFuZCBUUlVTVGUgY2VydGlmaWNhdGlvbiBzb2x1dGlvbnMsIHRoYXQgdG9nZXRoZXIgYWRkcmVzcyBhbGwgcGhhc2VzIG9mIHByaXZhY3kgcHJvZ3JhbSBtYW5hZ2VtZW50LlxuXG4gICAgVGhlIFRydXN0QXJjIFBsYXRmb3JtLCBmb3J0aWZpZWQgb3ZlciBlaWdodCB5ZWFycyBvZiBvcGVyYXRpbmcgZXhwZXJpZW5jZSwgYWNyb3NzIGEgd2lkZSByYW5nZSBvZiBpbmR1c3RyaWVzIGFuZCBjbGllbnQgdXNlIGNhc2VzLCBhbG9uZyB3aXRoIG91ciBleHRlbnNpdmUgc2VydmljZXMsIGxldmVyYWdlIGRlZXAgcHJpdmFjeSBleHBlcnRpc2UgYW5kIHByb3ZlbiBtZXRob2RvbG9naWVzLCB3aGljaCBoYXZlIGJlZW4gY29udGludW91c2x5IGVuaGFuY2VkIHRocm91Z2ggdGhvdXNhbmRzIG9mIGN1c3RvbWVyIGVuZ2FnZW1lbnRzLlxuXG4gICAgSGVhZHF1YXJ0ZXJlZCBpbiBTYW4gRnJhbmNpc2NvLCBhbmQgYmFja2VkIGJ5IGEgZ2xvYmFsIHRlYW0gYWNyb3NzIHRoZSBBbWVyaWNhcywgRXVyb3BlLCBhbmQgQXNpYSwgVHJ1c3RBcmMgaGVscHMgY3VzdG9tZXJzIHdvcmxkd2lkZSBkZW1vbnN0cmF0ZSBjb21wbGlhbmNlLCBtaW5pbWl6ZSByaXNrIGFuZCBidWlsZCB0cnVzdC5cblxuICAgIFBvd2VyaW5nIFByaXZhY3kgQ29tcGxpYW5jZSBGb3IgQ3VzdG9tZXJzIFdvcmxkd2lkZVxuICAgIFRydXN0QXJjLCB0aGUgbGVhZGVyIGluIHByaXZhY3kgY29tcGxpYW5jZSBhbmQgZGF0YSBwcm90ZWN0aW9uIGZvciBvdmVyIHR3byBkZWNhZGVzLCBvZmZlcnMgYW4gdW5tYXRjaGVkIGNvbWJpbmF0aW9uIG9mIGlubm92YXRpdmUgdGVjaG5vbG9neSwgZXhwZXJ0IGNvbnN1bHRpbmcgYW5kIFRSVVNUZSBjZXJ0aWZpY2F0aW9uIHNvbHV0aW9ucywgdGhhdCB0b2dldGhlciBhZGRyZXNzIGFsbCBwaGFzZXMgb2YgcHJpdmFjeSBwcm9ncmFtIG1hbmFnZW1lbnQuXG5cbiAgICBUaGUgVHJ1c3RBcmMgUGxhdGZvcm0sIGZvcnRpZmllZCBvdmVyIGVpZ2h0IHllYXJzIG9mIG9wZXJhdGluZyBleHBlcmllbmNlLCBhY3Jvc3MgYSB3aWRlIHJhbmdlIG9mIGluZHVzdHJpZXMgYW5kIGNsaWVudCB1c2UgY2FzZXMsIGFsb25nIHdpdGggb3VyIGV4dGVuc2l2ZSBzZXJ2aWNlcywgbGV2ZXJhZ2UgZGVlcCBwcml2YWN5IGV4cGVydGlzZSBhbmQgcHJvdmVuIG1ldGhvZG9sb2dpZXMsIHdoaWNoIGhhdmUgYmVlbiBjb250aW51b3VzbHkgZW5oYW5jZWQgdGhyb3VnaCB0aG91c2FuZHMgb2YgY3VzdG9tZXIgZW5nYWdlbWVudHMuXG5cbiAgICBIZWFkcXVhcnRlcmVkIGluIFNhbiBGcmFuY2lzY28sIGFuZCBiYWNrZWQgYnkgYSBnbG9iYWwgdGVhbSBhY3Jvc3MgdGhlIEFtZXJpY2FzLCBFdXJvcGUsIGFuZCBBc2lhLCBUcnVzdEFyYyBoZWxwcyBjdXN0b21lcnMgd29ybGR3aWRlIGRlbW9uc3RyYXRlIGNvbXBsaWFuY2UsIG1pbmltaXplIHJpc2sgYW5kIGJ1aWxkIHRydXN0LlxuXG4gICAgUG93ZXJpbmcgUHJpdmFjeSBDb21wbGlhbmNlIEZvciBDdXN0b21lcnMgV29ybGR3aWRlXG4gICAgVHJ1c3RBcmMsIHRoZSBsZWFkZXIgaW4gcHJpdmFjeSBjb21wbGlhbmNlIGFuZCBkYXRhIHByb3RlY3Rpb24gZm9yIG92ZXIgdHdvIGRlY2FkZXMsIG9mZmVycyBhbiB1bm1hdGNoZWQgY29tYmluYXRpb24gb2YgaW5ub3ZhdGl2ZSB0ZWNobm9sb2d5LCBleHBlcnQgY29uc3VsdGluZyBhbmQgVFJVU1RlIGNlcnRpZmljYXRpb24gc29sdXRpb25zLCB0aGF0IHRvZ2V0aGVyIGFkZHJlc3MgYWxsIHBoYXNlcyBvZiBwcml2YWN5IHByb2dyYW0gbWFuYWdlbWVudC5cblxuICAgIFRoZSBUcnVzdEFyYyBQbGF0Zm9ybSwgZm9ydGlmaWVkIG92ZXIgZWlnaHQgeWVhcnMgb2Ygb3BlcmF0aW5nIGV4cGVyaWVuY2UsIGFjcm9zcyBhIHdpZGUgcmFuZ2Ugb2YgaW5kdXN0cmllcyBhbmQgY2xpZW50IHVzZSBjYXNlcywgYWxvbmcgd2l0aCBvdXIgZXh0ZW5zaXZlIHNlcnZpY2VzLCBsZXZlcmFnZSBkZWVwIHByaXZhY3kgZXhwZXJ0aXNlIGFuZCBwcm92ZW4gbWV0aG9kb2xvZ2llcywgd2hpY2ggaGF2ZSBiZWVuIGNvbnRpbnVvdXNseSBlbmhhbmNlZCB0aHJvdWdoIHRob3VzYW5kcyBvZiBjdXN0b21lciBlbmdhZ2VtZW50cy5cblxuICAgIEhlYWRxdWFydGVyZWQgaW4gU2FuIEZyYW5jaXNjbywgYW5kIGJhY2tlZCBieSBhIGdsb2JhbCB0ZWFtIGFjcm9zcyB0aGUgQW1lcmljYXMsIEV1cm9wZSwgYW5kIEFzaWEsIFRydXN0QXJjIGhlbHBzIGN1c3RvbWVycyB3b3JsZHdpZGUgZGVtb25zdHJhdGUgY29tcGxpYW5jZSwgbWluaW1pemUgcmlzayBhbmQgYnVpbGQgdHJ1c3QuXG5cbiAgICBQb3dlcmluZyBQcml2YWN5IENvbXBsaWFuY2UgRm9yIEN1c3RvbWVycyBXb3JsZHdpZGVcbiAgICBUcnVzdEFyYywgdGhlIGxlYWRlciBpbiBwcml2YWN5IGNvbXBsaWFuY2UgYW5kIGRhdGEgcHJvdGVjdGlvbiBmb3Igb3ZlciB0d28gZGVjYWRlcywgb2ZmZXJzIGFuIHVubWF0Y2hlZCBjb21iaW5hdGlvbiBvZiBpbm5vdmF0aXZlIHRlY2hub2xvZ3ksIGV4cGVydCBjb25zdWx0aW5nIGFuZCBUUlVTVGUgY2VydGlmaWNhdGlvbiBzb2x1dGlvbnMsIHRoYXQgdG9nZXRoZXIgYWRkcmVzcyBhbGwgcGhhc2VzIG9mIHByaXZhY3kgcHJvZ3JhbSBtYW5hZ2VtZW50LlxuXG4gICAgVGhlIFRydXN0QXJjIFBsYXRmb3JtLCBmb3J0aWZpZWQgb3ZlciBlaWdodCB5ZWFycyBvZiBvcGVyYXRpbmcgZXhwZXJpZW5jZSwgYWNyb3NzIGEgd2lkZSByYW5nZSBvZiBpbmR1c3RyaWVzIGFuZCBjbGllbnQgdXNlIGNhc2VzLCBhbG9uZyB3aXRoIG91ciBleHRlbnNpdmUgc2VydmljZXMsIGxldmVyYWdlIGRlZXAgcHJpdmFjeSBleHBlcnRpc2UgYW5kIHByb3ZlbiBtZXRob2RvbG9naWVzLCB3aGljaCBoYXZlIGJlZW4gY29udGludW91c2x5IGVuaGFuY2VkIHRocm91Z2ggdGhvdXNhbmRzIG9mIGN1c3RvbWVyIGVuZ2FnZW1lbnRzLlxuXG4gICAgSGVhZHF1YXJ0ZXJlZCBpbiBTYW4gRnJhbmNpc2NvLCBhbmQgYmFja2VkIGJ5IGEgZ2xvYmFsIHRlYW0gYWNyb3NzIHRoZSBBbWVyaWNhcywgRXVyb3BlLCBhbmQgQXNpYSwgVHJ1c3RBcmMgaGVscHMgY3VzdG9tZXJzIHdvcmxkd2lkZSBkZW1vbnN0cmF0ZSBjb21wbGlhbmNlLCBtaW5pbWl6ZSByaXNrIGFuZCBidWlsZCB0cnVzdC5cblxuICAgIFBvd2VyaW5nIFByaXZhY3kgQ29tcGxpYW5jZSBGb3IgQ3VzdG9tZXJzIFdvcmxkd2lkZVxuICAgIFRydXN0QXJjLCB0aGUgbGVhZGVyIGluIHByaXZhY3kgY29tcGxpYW5jZSBhbmQgZGF0YSBwcm90ZWN0aW9uIGZvciBvdmVyIHR3byBkZWNhZGVzLCBvZmZlcnMgYW4gdW5tYXRjaGVkIGNvbWJpbmF0aW9uIG9mIGlubm92YXRpdmUgdGVjaG5vbG9neSwgZXhwZXJ0IGNvbnN1bHRpbmcgYW5kIFRSVVNUZSBjZXJ0aWZpY2F0aW9uIHNvbHV0aW9ucywgdGhhdCB0b2dldGhlciBhZGRyZXNzIGFsbCBwaGFzZXMgb2YgcHJpdmFjeSBwcm9ncmFtIG1hbmFnZW1lbnQuXG5cbiAgICBUaGUgVHJ1c3RBcmMgUGxhdGZvcm0sIGZvcnRpZmllZCBvdmVyIGVpZ2h0IHllYXJzIG9mIG9wZXJhdGluZyBleHBlcmllbmNlLCBhY3Jvc3MgYSB3aWRlIHJhbmdlIG9mIGluZHVzdHJpZXMgYW5kIGNsaWVudCB1c2UgY2FzZXMsIGFsb25nIHdpdGggb3VyIGV4dGVuc2l2ZSBzZXJ2aWNlcywgbGV2ZXJhZ2UgZGVlcCBwcml2YWN5IGV4cGVydGlzZSBhbmQgcHJvdmVuIG1ldGhvZG9sb2dpZXMsIHdoaWNoIGhhdmUgYmVlbiBjb250aW51b3VzbHkgZW5oYW5jZWQgdGhyb3VnaCB0aG91c2FuZHMgb2YgY3VzdG9tZXIgZW5nYWdlbWVudHMuXG5cbiAgICBIZWFkcXVhcnRlcmVkIGluIFNhbiBGcmFuY2lzY28sIGFuZCBiYWNrZWQgYnkgYSBnbG9iYWwgdGVhbSBhY3Jvc3MgdGhlIEFtZXJpY2FzLCBFdXJvcGUsIGFuZCBBc2lhLCBUcnVzdEFyYyBoZWxwcyBjdXN0b21lcnMgd29ybGR3aWRlIGRlbW9uc3RyYXRlIGNvbXBsaWFuY2UsIG1pbmltaXplIHJpc2sgYW5kIGJ1aWxkIHRydXN0LlxuXG4gICAgUG93ZXJpbmcgUHJpdmFjeSBDb21wbGlhbmNlIEZvciBDdXN0b21lcnMgV29ybGR3aWRlXG4gICAgVHJ1c3RBcmMsIHRoZSBsZWFkZXIgaW4gcHJpdmFjeSBjb21wbGlhbmNlIGFuZCBkYXRhIHByb3RlY3Rpb24gZm9yIG92ZXIgdHdvIGRlY2FkZXMsIG9mZmVycyBhbiB1bm1hdGNoZWQgY29tYmluYXRpb24gb2YgaW5ub3ZhdGl2ZSB0ZWNobm9sb2d5LCBleHBlcnQgY29uc3VsdGluZyBhbmQgVFJVU1RlIGNlcnRpZmljYXRpb24gc29sdXRpb25zLCB0aGF0IHRvZ2V0aGVyIGFkZHJlc3MgYWxsIHBoYXNlcyBvZiBwcml2YWN5IHByb2dyYW0gbWFuYWdlbWVudC5cblxuICAgIFRoZSBUcnVzdEFyYyBQbGF0Zm9ybSwgZm9ydGlmaWVkIG92ZXIgZWlnaHQgeWVhcnMgb2Ygb3BlcmF0aW5nIGV4cGVyaWVuY2UsIGFjcm9zcyBhIHdpZGUgcmFuZ2Ugb2YgaW5kdXN0cmllcyBhbmQgY2xpZW50IHVzZSBjYXNlcywgYWxvbmcgd2l0aCBvdXIgZXh0ZW5zaXZlIHNlcnZpY2VzLCBsZXZlcmFnZSBkZWVwIHByaXZhY3kgZXhwZXJ0aXNlIGFuZCBwcm92ZW4gbWV0aG9kb2xvZ2llcywgd2hpY2ggaGF2ZSBiZWVuIGNvbnRpbnVvdXNseSBlbmhhbmNlZCB0aHJvdWdoIHRob3VzYW5kcyBvZiBjdXN0b21lciBlbmdhZ2VtZW50cy5cblxuICAgIEhlYWRxdWFydGVyZWQgaW4gU2FuIEZyYW5jaXNjbywgYW5kIGJhY2tlZCBieSBhIGdsb2JhbCB0ZWFtIGFjcm9zcyB0aGUgQW1lcmljYXMsIEV1cm9wZSwgYW5kIEFzaWEsIFRydXN0QXJjIGhlbHBzIGN1c3RvbWVycyB3b3JsZHdpZGUgZGVtb25zdHJhdGUgY29tcGxpYW5jZSwgbWluaW1pemUgcmlzayBhbmQgYnVpbGQgdHJ1c3QuXG4gICAgLS0+XG48L3N2Zz5cbiJ9LCAiaGVhZGVyc1NpemUiOiAzNzQsICJib2R5U2l6ZSI6IDg0NSwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogMTIxOX0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDc5NC4zMTQsICJyZWNlaXZlIjogMS43MTV9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5IiwgInNlcnZlcklQQWRkcmVzcyI6ICIxOC4xNzIuNTIuNDkiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIkNOPSoudHJ1c3RhcmMuY29tIiwgInZhbGlkRnJvbSI6IDE3MTA1NDcyMDAsICJ2YWxpZFRvIjogMTc0NDY3NTE5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjA5LjM4MVoiLCAidGltZSI6IDgwNS4zNjMsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2Fzc2V0L2ljLWNsb3NlLXdoaXRlLnN2ZyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiaW1hZ2Uvd2VicCxpbWFnZS9qeGwsdmlkZW8vKjtxPTAuOCxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qO3E9MC44LCovKjtxPTAuNSJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImltYWdlIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImNvbnNlbnQudHJ1c3RhcmMuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbXSwgImhlYWRlcnNTaXplIjogNDg0LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIk9LIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkNvbnRlbnQtVHlwZSIsICJ2YWx1ZSI6ICJpbWFnZS9zdmcreG1sIn0sIHsibmFtZSI6ICJMYXN0LU1vZGlmaWVkIiwgInZhbHVlIjogIldlZCJ9LCB7Im5hbWUiOiAiTGFzdC1Nb2RpZmllZCIsICJ2YWx1ZSI6ICIyMCBNYXIgMjAxOSAwNjoxNDowOSBHTVQifSwgeyJuYW1lIjogIlByYWdtYSIsICJ2YWx1ZSI6ICJwdWJsaWMifSwgeyJuYW1lIjogIkNvbnRlbnQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NDM6MzUgR01UIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIkFjY2VwdC1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiVmFyeSIsICJ2YWx1ZSI6ICJPcmlnaW4ifSwgeyJuYW1lIjogIlZpYSIsICJ2YWx1ZSI6ICIxLjEgNTE5ZTJiZmVmNGM2NjViY2YyZDZiYzNhMzc0YzVmODIuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJBZ2UiLCAidmFsdWUiOiAiNjM0In0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MjU5MjAwMCJ9LCB7Im5hbWUiOiAieC1jYWNoZSIsICJ2YWx1ZSI6ICJIaXQgZnJvbSBjbG91ZGZyb250In0sIHsibmFtZSI6ICJ4LWFtei1jZi1wb3AiLCAidmFsdWUiOiAiTlJUMjAtUDIifSwgeyJuYW1lIjogIngtYW16LWNmLWlkIiwgInZhbHVlIjogIlJHWDd3RFg0WjBDNUVuVjFyMEhWMEtqaFg5LUtXS0poaTd6R2VqWEt2MVJlRkRscTRZT2tnQT09In0sIHsibmFtZSI6ICJzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5IiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDA7IGluY2x1ZGVTdWJEb21haW5zIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDY5MDEsICJtaW1lVHlwZSI6ICJpbWFnZS9zdmcreG1sIiwgImNvbXByZXNzaW9uIjogNTU1MSwgInRleHQiOiAiPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+XG48c3ZnIHdpZHRoPVwiOXB4XCIgaGVpZ2h0PVwiOXB4XCIgdmlld0JveD1cIjAgMCA5IDlcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxuICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggNTEuMiAoNTc1MTkpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPlxuICAgIDx0aXRsZT5pb24tY2xvc2UgLSBJb25pY29uczwvdGl0bGU+XG4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+XG4gICAgPGRlZnM+PC9kZWZzPlxuICAgIDxnIGlkPVwidjNcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICA8ZyBpZD1cIldpdGgtV2FybmluZy0tLUNsaWNrZWRcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoLTYxNi4wMDAwMDAsIC04OS4wMDAwMDApXCIgZmlsbD1cIiNGRkZGRkZcIj5cbiAgICAgICAgICAgIDxnIGlkPVwiR3JvdXAtMTRcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAuMDAwMDAwLCA3Ni4wMDAwMDApXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk02MTQuOTI5Njg4LDIwLjU3MDMxMjUgQzYxNC45OTIxODgsMjAuNjMyODEyOCA2MTUuMDIzNDM4LDIwLjcxMDkzNyA2MTUuMDIzNDM4LDIwLjgwNDY4NzUgQzYxNS4wMjM0MzgsMjAuODk4NDM4IDYxNC45OTIxODgsMjAuOTc2NTYyMiA2MTQuOTI5Njg4LDIxLjAzOTA2MjUgTDYxNC4wMzkwNjMsMjEuOTA2MjUgQzYxMy45NzY1NjMsMjEuOTY4NzUwMyA2MTMuOTA2MjUxLDIyIDYxMy44MjgxMjYsMjIgQzYxMy43MzQzNzUsMjIgNjEzLjY1NjI1MSwyMS45Njg3NTAzIDYxMy41OTM3NTEsMjEuOTA2MjUgTDYxMC41MjM0MzgsMTguODM1OTM3NSBMNjA3LjQ1MzEyNiwyMS45MDYyNSBDNjA3LjM5MDYyNSwyMS45Njg3NTAzIDYwNy4zMjAzMTMsMjIgNjA3LjI0MjE4OCwyMiBDNjA3LjE0ODQzOCwyMiA2MDcuMDcwMzEzLDIxLjk2ODc1MDMgNjA3LjAwNzgxMywyMS45MDYyNSBMNjA2LjExNzE4OCwyMS4wMzkwNjI1IEM2MDYuMDU0Njg4LDIwLjk3NjU2MjIgNjA2LjAyMzQzOCwyMC44OTg0MzggNjA2LjAyMzQzOCwyMC44MDQ2ODc1IEM2MDYuMDIzNDM4LDIwLjcxMDkzNyA2MDYuMDU0Njg4LDIwLjYzMjgxMjggNjA2LjExNzE4OCwyMC41NzAzMTI1IEw2MDkuMjEwOTM4LDE3LjUgTDYwNi4xMTcxODgsMTQuNDUzMTI1IEM2MDUuOTYwOTM3LDE0LjI5Njg3NDIgNjA1Ljk2MDkzNywxNC4xNDA2MjU4IDYwNi4xMTcxODgsMTMuOTg0Mzc1IEw2MDYuOTg0Mzc2LDEzLjA5Mzc1IEM2MDcuMDc4MTI2LDEzLjAzMTI0OTcgNjA3LjE1NjI1LDEzIDYwNy4yMTg3NTEsMTMgQzYwNy4zMTI1MDEsMTMgNjA3LjM5MDYyNSwxMy4wMzEyNDk3IDYwNy40NTMxMjYsMTMuMDkzNzUgTDYxMC41MjM0MzgsMTYuMTQwNjI1IEw2MTMuNTkzNzUxLDEzLjA5Mzc1IEM2MTMuNjg3NTAxLDEzLjAzMTI0OTcgNjEzLjc2NTYyNSwxMyA2MTMuODI4MTI2LDEzIEM2MTMuOTIxODc2LDEzIDYxNCwxMy4wMzEyNDk3IDYxNC4wNjI1MDEsMTMuMDkzNzUgTDYxNC45Mjk2ODgsMTMuOTg0Mzc1IEM2MTUuMDg1OTM5LDE0LjE0MDYyNTggNjE1LjA4NTkzOSwxNC4yODkwNjE4IDYxNC45Mjk2ODgsMTQuNDI5Njg3NSBMNjExLjgzNTkzOCwxNy40NzY1NjI1IEw2MTQuOTI5Njg4LDIwLjU3MDMxMjUgWlwiIGlkPVwiaW9uLWNsb3NlLS0tSW9uaWNvbnNcIj48L3BhdGg+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgIDwvZz5cbiAgICA8L2c+XG4gICAgICAgIDwhLS1cbiAgICAgICAgUG93ZXJpbmcgUHJpdmFjeSBDb21wbGlhbmNlIEZvciBDdXN0b21lcnMgV29ybGR3aWRlXG4gICAgICAgIFRydXN0QXJjLCB0aGUgbGVhZGVyIGluIHByaXZhY3kgY29tcGxpYW5jZSBhbmQgZGF0YSBwcm90ZWN0aW9uIGZvciBvdmVyIHR3byBkZWNhZGVzLCBvZmZlcnMgYW4gdW5tYXRjaGVkIGNvbWJpbmF0aW9uIG9mIGlubm92YXRpdmUgdGVjaG5vbG9neSwgZXhwZXJ0IGNvbnN1bHRpbmcgYW5kIFRSVVNUZSBjZXJ0aWZpY2F0aW9uIHNvbHV0aW9ucywgdGhhdCB0b2dldGhlciBhZGRyZXNzIGFsbCBwaGFzZXMgb2YgcHJpdmFjeSBwcm9ncmFtIG1hbmFnZW1lbnQuXG5cbiAgICAgICAgVGhlIFRydXN0QXJjIFBsYXRmb3JtLCBmb3J0aWZpZWQgb3ZlciBlaWdodCB5ZWFycyBvZiBvcGVyYXRpbmcgZXhwZXJpZW5jZSwgYWNyb3NzIGEgd2lkZSByYW5nZSBvZiBpbmR1c3RyaWVzIGFuZCBjbGllbnQgdXNlIGNhc2VzLCBhbG9uZyB3aXRoIG91ciBleHRlbnNpdmUgc2VydmljZXMsIGxldmVyYWdlIGRlZXAgcHJpdmFjeSBleHBlcnRpc2UgYW5kIHByb3ZlbiBtZXRob2RvbG9naWVzLCB3aGljaCBoYXZlIGJlZW4gY29udGludW91c2x5IGVuaGFuY2VkIHRocm91Z2ggdGhvdXNhbmRzIG9mIGN1c3RvbWVyIGVuZ2FnZW1lbnRzLlxuXG4gICAgICAgIEhlYWRxdWFydGVyZWQgaW4gU2FuIEZyYW5jaXNjbywgYW5kIGJhY2tlZCBieSBhIGdsb2JhbCB0ZWFtIGFjcm9zcyB0aGUgQW1lcmljYXMsIEV1cm9wZSwgYW5kIEFzaWEsIFRydXN0QXJjIGhlbHBzIGN1c3RvbWVycyB3b3JsZHdpZGUgZGVtb25zdHJhdGUgY29tcGxpYW5jZSwgbWluaW1pemUgcmlzayBhbmQgYnVpbGQgdHJ1c3QuXG5cbiAgICAgICAgUG93ZXJpbmcgUHJpdmFjeSBDb21wbGlhbmNlIEZvciBDdXN0b21lcnMgV29ybGR3aWRlXG4gICAgICAgIFRydXN0QXJjLCB0aGUgbGVhZGVyIGluIHByaXZhY3kgY29tcGxpYW5jZSBhbmQgZGF0YSBwcm90ZWN0aW9uIGZvciBvdmVyIHR3byBkZWNhZGVzLCBvZmZlcnMgYW4gdW5tYXRjaGVkIGNvbWJpbmF0aW9uIG9mIGlubm92YXRpdmUgdGVjaG5vbG9neSwgZXhwZXJ0IGNvbnN1bHRpbmcgYW5kIFRSVVNUZSBjZXJ0aWZpY2F0aW9uIHNvbHV0aW9ucywgdGhhdCB0b2dldGhlciBhZGRyZXNzIGFsbCBwaGFzZXMgb2YgcHJpdmFjeSBwcm9ncmFtIG1hbmFnZW1lbnQuXG5cbiAgICAgICAgVGhlIFRydXN0QXJjIFBsYXRmb3JtLCBmb3J0aWZpZWQgb3ZlciBlaWdodCB5ZWFycyBvZiBvcGVyYXRpbmcgZXhwZXJpZW5jZSwgYWNyb3NzIGEgd2lkZSByYW5nZSBvZiBpbmR1c3RyaWVzIGFuZCBjbGllbnQgdXNlIGNhc2VzLCBhbG9uZyB3aXRoIG91ciBleHRlbnNpdmUgc2VydmljZXMsIGxldmVyYWdlIGRlZXAgcHJpdmFjeSBleHBlcnRpc2UgYW5kIHByb3ZlbiBtZXRob2RvbG9naWVzLCB3aGljaCBoYXZlIGJlZW4gY29udGludW91c2x5IGVuaGFuY2VkIHRocm91Z2ggdGhvdXNhbmRzIG9mIGN1c3RvbWVyIGVuZ2FnZW1lbnRzLlxuXG4gICAgICAgIEhlYWRxdWFydGVyZWQgaW4gU2FuIEZyYW5jaXNjbywgYW5kIGJhY2tlZCBieSBhIGdsb2JhbCB0ZWFtIGFjcm9zcyB0aGUgQW1lcmljYXMsIEV1cm9wZSwgYW5kIEFzaWEsIFRydXN0QXJjIGhlbHBzIGN1c3RvbWVycyB3b3JsZHdpZGUgZGVtb25zdHJhdGUgY29tcGxpYW5jZSwgbWluaW1pemUgcmlzayBhbmQgYnVpbGQgdHJ1c3QuXG5cbiAgICAgICAgUG93ZXJpbmcgUHJpdmFjeSBDb21wbGlhbmNlIEZvciBDdXN0b21lcnMgV29ybGR3aWRlXG4gICAgICAgIFRydXN0QXJjLCB0aGUgbGVhZGVyIGluIHByaXZhY3kgY29tcGxpYW5jZSBhbmQgZGF0YSBwcm90ZWN0aW9uIGZvciBvdmVyIHR3byBkZWNhZGVzLCBvZmZlcnMgYW4gdW5tYXRjaGVkIGNvbWJpbmF0aW9uIG9mIGlubm92YXRpdmUgdGVjaG5vbG9neSwgZXhwZXJ0IGNvbnN1bHRpbmcgYW5kIFRSVVNUZSBjZXJ0aWZpY2F0aW9uIHNvbHV0aW9ucywgdGhhdCB0b2dldGhlciBhZGRyZXNzIGFsbCBwaGFzZXMgb2YgcHJpdmFjeSBwcm9ncmFtIG1hbmFnZW1lbnQuXG5cbiAgICAgICAgVGhlIFRydXN0QXJjIFBsYXRmb3JtLCBmb3J0aWZpZWQgb3ZlciBlaWdodCB5ZWFycyBvZiBvcGVyYXRpbmcgZXhwZXJpZW5jZSwgYWNyb3NzIGEgd2lkZSByYW5nZSBvZiBpbmR1c3RyaWVzIGFuZCBjbGllbnQgdXNlIGNhc2VzLCBhbG9uZyB3aXRoIG91ciBleHRlbnNpdmUgc2VydmljZXMsIGxldmVyYWdlIGRlZXAgcHJpdmFjeSBleHBlcnRpc2UgYW5kIHByb3ZlbiBtZXRob2RvbG9naWVzLCB3aGljaCBoYXZlIGJlZW4gY29udGludW91c2x5IGVuaGFuY2VkIHRocm91Z2ggdGhvdXNhbmRzIG9mIGN1c3RvbWVyIGVuZ2FnZW1lbnRzLlxuXG4gICAgICAgIEhlYWRxdWFydGVyZWQgaW4gU2FuIEZyYW5jaXNjbywgYW5kIGJhY2tlZCBieSBhIGdsb2JhbCB0ZWFtIGFjcm9zcyB0aGUgQW1lcmljYXMsIEV1cm9wZSwgYW5kIEFzaWEsIFRydXN0QXJjIGhlbHBzIGN1c3RvbWVycyB3b3JsZHdpZGUgZGVtb25zdHJhdGUgY29tcGxpYW5jZSwgbWluaW1pemUgcmlzayBhbmQgYnVpbGQgdHJ1c3QuXG5cbiAgICAgICAgUG93ZXJpbmcgUHJpdmFjeSBDb21wbGlhbmNlIEZvciBDdXN0b21lcnMgV29ybGR3aWRlXG4gICAgICAgIFRydXN0QXJjLCB0aGUgbGVhZGVyIGluIHByaXZhY3kgY29tcGxpYW5jZSBhbmQgZGF0YSBwcm90ZWN0aW9uIGZvciBvdmVyIHR3byBkZWNhZGVzLCBvZmZlcnMgYW4gdW5tYXRjaGVkIGNvbWJpbmF0aW9uIG9mIGlubm92YXRpdmUgdGVjaG5vbG9neSwgZXhwZXJ0IGNvbnN1bHRpbmcgYW5kIFRSVVNUZSBjZXJ0aWZpY2F0aW9uIHNvbHV0aW9ucywgdGhhdCB0b2dldGhlciBhZGRyZXNzIGFsbCBwaGFzZXMgb2YgcHJpdmFjeSBwcm9ncmFtIG1hbmFnZW1lbnQuXG5cbiAgICAgICAgVGhlIFRydXN0QXJjIFBsYXRmb3JtLCBmb3J0aWZpZWQgb3ZlciBlaWdodCB5ZWFycyBvZiBvcGVyYXRpbmcgZXhwZXJpZW5jZSwgYWNyb3NzIGEgd2lkZSByYW5nZSBvZiBpbmR1c3RyaWVzIGFuZCBjbGllbnQgdXNlIGNhc2VzLCBhbG9uZyB3aXRoIG91ciBleHRlbnNpdmUgc2VydmljZXMsIGxldmVyYWdlIGRlZXAgcHJpdmFjeSBleHBlcnRpc2UgYW5kIHByb3ZlbiBtZXRob2RvbG9naWVzLCB3aGljaCBoYXZlIGJlZW4gY29udGludW91c2x5IGVuaGFuY2VkIHRocm91Z2ggdGhvdXNhbmRzIG9mIGN1c3RvbWVyIGVuZ2FnZW1lbnRzLlxuXG4gICAgICAgIEhlYWRxdWFydGVyZWQgaW4gU2FuIEZyYW5jaXNjbywgYW5kIGJhY2tlZCBieSBhIGdsb2JhbCB0ZWFtIGFjcm9zcyB0aGUgQW1lcmljYXMsIEV1cm9wZSwgYW5kIEFzaWEsIFRydXN0QXJjIGhlbHBzIGN1c3RvbWVycyB3b3JsZHdpZGUgZGVtb25zdHJhdGUgY29tcGxpYW5jZSwgbWluaW1pemUgcmlzayBhbmQgYnVpbGQgdHJ1c3QuXG5cbiAgICAgICAgUG93ZXJpbmcgUHJpdmFjeSBDb21wbGlhbmNlIEZvciBDdXN0b21lcnMgV29ybGR3aWRlXG4gICAgICAgIFRydXN0QXJjLCB0aGUgbGVhZGVyIGluIHByaXZhY3kgY29tcGxpYW5jZSBhbmQgZGF0YSBwcm90ZWN0aW9uIGZvciBvdmVyIHR3byBkZWNhZGVzLCBvZmZlcnMgYW4gdW5tYXRjaGVkIGNvbWJpbmF0aW9uIG9mIGlubm92YXRpdmUgdGVjaG5vbG9neSwgZXhwZXJ0IGNvbnN1bHRpbmcgYW5kIFRSVVNUZSBjZXJ0aWZpY2F0aW9uIHNvbHV0aW9ucywgdGhhdCB0b2dldGhlciBhZGRyZXNzIGFsbCBwaGFzZXMgb2YgcHJpdmFjeSBwcm9ncmFtIG1hbmFnZW1lbnQuXG5cbiAgICAgICAgVGhlIFRydXN0QXJjIFBsYXRmb3JtLCBmb3J0aWZpZWQgb3ZlciBlaWdodCB5ZWFycyBvZiBvcGVyYXRpbmcgZXhwZXJpZW5jZSwgYWNyb3NzIGEgd2lkZSByYW5nZSBvZiBpbmR1c3RyaWVzIGFuZCBjbGllbnQgdXNlIGNhc2VzLCBhbG9uZyB3aXRoIG91ciBleHRlbnNpdmUgc2VydmljZXMsIGxldmVyYWdlIGRlZXAgcHJpdmFjeSBleHBlcnRpc2UgYW5kIHByb3ZlbiBtZXRob2RvbG9naWVzLCB3aGljaCBoYXZlIGJlZW4gY29udGludW91c2x5IGVuaGFuY2VkIHRocm91Z2ggdGhvdXNhbmRzIG9mIGN1c3RvbWVyIGVuZ2FnZW1lbnRzLlxuXG4gICAgICAgIEhlYWRxdWFydGVyZWQgaW4gU2FuIEZyYW5jaXNjbywgYW5kIGJhY2tlZCBieSBhIGdsb2JhbCB0ZWFtIGFjcm9zcyB0aGUgQW1lcmljYXMsIEV1cm9wZSwgYW5kIEFzaWEsIFRydXN0QXJjIGhlbHBzIGN1c3RvbWVycyB3b3JsZHdpZGUgZGVtb25zdHJhdGUgY29tcGxpYW5jZSwgbWluaW1pemUgcmlzayBhbmQgYnVpbGQgdHJ1c3QuXG5cbiAgICAgICAgUG93ZXJpbmcgUHJpdmFjeSBDb21wbGlhbmNlIEZvciBDdXN0b21lcnMgV29ybGR3aWRlXG4gICAgICAgIFRydXN0QXJjLCB0aGUgbGVhZGVyIGluIHByaXZhY3kgY29tcGxpYW5jZSBhbmQgZGF0YSBwcm90ZWN0aW9uIGZvciBvdmVyIHR3byBkZWNhZGVzLCBvZmZlcnMgYW4gdW5tYXRjaGVkIGNvbWJpbmF0aW9uIG9mIGlubm92YXRpdmUgdGVjaG5vbG9neSwgZXhwZXJ0IGNvbnN1bHRpbmcgYW5kIFRSVVNUZSBjZXJ0aWZpY2F0aW9uIHNvbHV0aW9ucywgdGhhdCB0b2dldGhlciBhZGRyZXNzIGFsbCBwaGFzZXMgb2YgcHJpdmFjeSBwcm9ncmFtIG1hbmFnZW1lbnQuXG5cbiAgICAgICAgVGhlIFRydXN0QXJjIFBsYXRmb3JtLCBmb3J0aWZpZWQgb3ZlciBlaWdodCB5ZWFycyBvZiBvcGVyYXRpbmcgZXhwZXJpZW5jZSwgYWNyb3NzIGEgd2lkZSByYW5nZSBvZiBpbmR1c3RyaWVzIGFuZCBjbGllbnQgdXNlIGNhc2VzLCBhbG9uZyB3aXRoIG91ciBleHRlbnNpdmUgc2VydmljZXMsIGxldmVyYWdlIGRlZXAgcHJpdmFjeSBleHBlcnRpc2UgYW5kIHByb3ZlbiBtZXRob2RvbG9naWVzLCB3aGljaCBoYXZlIGJlZW4gY29udGludW91c2x5IGVuaGFuY2VkIHRocm91Z2ggdGhvdXNhbmRzIG9mIGN1c3RvbWVyIGVuZ2FnZW1lbnRzLlxuXG4gICAgICAgIEhlYWRxdWFydGVyZWQgaW4gU2FuIEZyYW5jaXNjbywgYW5kIGJhY2tlZCBieSBhIGdsb2JhbCB0ZWFtIGFjcm9zcyB0aGUgQW1lcmljYXMsIEV1cm9wZSwgYW5kIEFzaWEsIFRydXN0QXJjIGhlbHBzIGN1c3RvbWVycyB3b3JsZHdpZGUgZGVtb25zdHJhdGUgY29tcGxpYW5jZSwgbWluaW1pemUgcmlzayBhbmQgYnVpbGQgdHJ1c3QuXG4gICAgICAgIC0tPlxuXG48L3N2Zz4ifSwgImhlYWRlcnNTaXplIjogMzc1LCAiYm9keVNpemUiOiAxMzUwLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAxNzI1fSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogODAzLjk1NiwgInJlY2VpdmUiOiAxLjQwN30sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIjE4LjE3Mi41Mi40OSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiQ049Ki50cnVzdGFyYy5jb20iLCAidmFsaWRGcm9tIjogMTcxMDU0NzIwMCwgInZhbGlkVG8iOiAxNzQ0Njc1MTk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MDkuMzgyWiIsICJ0aW1lIjogODE0LjgyLCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9nZXQ/bmFtZT1Qb3dlcmVkLUJ5LVRydXN0QXJjLnBuZyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiaW1hZ2Uvd2VicCxpbWFnZS9qeGwsdmlkZW8vKjtxPTAuOCxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qO3E9MC44LCovKjtxPTAuNSJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImltYWdlIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImNvbnNlbnQudHJ1c3RhcmMuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogIm5hbWUiLCAidmFsdWUiOiAiUG93ZXJlZC1CeS1UcnVzdEFyYy5wbmcifV0sICJoZWFkZXJzU2l6ZSI6IDQ2MywgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJDb250ZW50LVR5cGUiLCAidmFsdWUiOiAiaW1hZ2UvcG5nIn0sIHsibmFtZSI6ICJDb250ZW50LUxlbmd0aCIsICJ2YWx1ZSI6ICIyNjM5In0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIlR1ZSJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICIxOCBKdW4gMjAyNCAwNTowMTowMSBHTVQifSwgeyJuYW1lIjogIlByYWdtYSIsICJ2YWx1ZSI6ICJwdWJsaWMifSwgeyJuYW1lIjogIlZpYSIsICJ2YWx1ZSI6ICIxLjEgNTE5ZTJiZmVmNGM2NjViY2YyZDZiYzNhMzc0YzVmODIuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJBZ2UiLCAidmFsdWUiOiAiMzE4OCJ9LCB7Im5hbWUiOiAiQ2FjaGUtQ29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTI1OTIwMDAifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiT3JpZ2luIn0sIHsibmFtZSI6ICJ4LWNhY2hlIiwgInZhbHVlIjogIkhpdCBmcm9tIGNsb3VkZnJvbnQifSwgeyJuYW1lIjogIngtYW16LWNmLXBvcCIsICJ2YWx1ZSI6ICJOUlQyMC1QMiJ9LCB7Im5hbWUiOiAieC1hbXotY2YtaWQiLCAidmFsdWUiOiAibE9vbkRHR0ctZE01VWRqRmlWa2l1bzQ3RTlmbW9ZRTBDTnF2QzJUUmFIQmI3dExoX25tOHlRPT0ifSwgeyJuYW1lIjogInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCAidmFsdWUiOiAibWF4LWFnZT0zMTUzNjAwMDsgaW5jbHVkZVN1YkRvbWFpbnMifV0sICJjb250ZW50IjogeyJzaXplIjogMjYzOSwgIm1pbWVUeXBlIjogImltYWdlL3BuZyIsICJjb21wcmVzc2lvbiI6IDAsICJ0ZXh0IjogImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFGNEFBQUFpQ0FZQUFBRFdNbTdVQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUY5MmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05pNHdMV013TURJZ056a3VNVFkwTkRnNExDQXlNREl3THpBM0x6RXdMVEl5T2pBMk9qVXpJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdNakl1TUNBb1RXRmphVzUwYjNOb0tTSWdlRzF3T2tOeVpXRjBaVVJoZEdVOUlqSXdNakF0TVRFdE1URlVNak02TVRBNk1UWXRNRFU2TURBaUlIaHRjRHBOYjJScFpubEVZWFJsUFNJeU1ESXdMVEV4TFRFeFZESXpPakV4T2pJMUxUQTFPakF3SWlCNGJYQTZUV1YwWVdSaGRHRkVZWFJsUFNJeU1ESXdMVEV4TFRFeFZESXpPakV4T2pJMUxUQTFPakF3SWlCa1l6cG1iM0p0WVhROUltbHRZV2RsTDNCdVp5SWdjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDBpTXlJZ2NHaHZkRzl6YUc5d09rbERRMUJ5YjJacGJHVTlJbk5TUjBJZ1NVVkROakU1TmpZdE1pNHhJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamM1WmpJelltRmhMVFZrWldJdE5EUmtOQzFpWXpjNExXWTBPRFl6T1dNeFpUYzNNaUlnZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDBpWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qZ3hNelZsWlRFeExXRXdPVE10TldVMFl5MDVPVEJrTFRKaE5XTmhNekF4T0dZd09DSWdlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09tTmhZelZpWkdSaUxUazJPRFl0TkdWaVpDMWhOV0k1TFRFMU5qZzVOR1EzTlRoallTSStJRHg0YlhCTlRUcElhWE4wYjNKNVBpQThjbVJtT2xObGNUNGdQSEprWmpwc2FTQnpkRVYyZERwaFkzUnBiMjQ5SW1OeVpXRjBaV1FpSUhOMFJYWjBPbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2WTJGak5XSmtaR0l0T1RZNE5pMDBaV0prTFdFMVlqa3RNVFUyT0RrMFpEYzFPR05oSWlCemRFVjJkRHAzYUdWdVBTSXlNREl3TFRFeExURXhWREl6T2pFd09qRTJMVEExT2pBd0lpQnpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdNakl1TUNBb1RXRmphVzUwYjNOb0tTSXZQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaWMyRjJaV1FpSUhOMFJYWjBPbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpsbU1qTmlZV0V0TldSbFlpMDBOR1EwTFdKak56Z3RaalE0TmpNNVl6RmxOemN5SWlCemRFVjJkRHAzYUdWdVBTSXlNREl3TFRFeExURXhWREl6T2pFeE9qSTFMVEExT2pBd0lpQnpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdNakl1TUNBb1RXRmphVzUwYjNOb0tTSWdjM1JGZG5RNlkyaGhibWRsWkQwaUx5SXZQaUE4TDNKa1pqcFRaWEUrSUR3dmVHMXdUVTA2U0dsemRHOXllVDRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejRMcW5Gc0FBQUQva2xFUVZSb2dlMlp6M0hyTmhER2Y4cmticGFnVjBHWW81aUQ2UXFlckV1T3Bpb3dOSlA3a3lvd1hZSHBCbWk1Z3NkY3FHUFlRWlFPbUFxY0EwQnh3WCsyWkZHY04rRTM0OUVDdTFnc1B3S0xKVHg1ZTN0anhPWHgwOUFCL0Y4eEVqOFFSdUlId2tqOFFCaUpId2dqOFFOaEpINGdqTVFQaEovYkZKUGZWcWQ4V1cxSXcvWHA0ZlFNVHdYQWsraFprb1pSbjFPMmZhQzJFdjlEd0ZNUGdHdGF6eDhnOFd0RCs3MHh2YUNMK0UxRDN6Y2hSOEEvRlgzeXlYaU9oUXY0UnY2ejA5SlREakN2OU03eGxFTWE1dWNONjMyMEU5K1VNandsaVg4bURaT3pSOVFmNWtMZUExUFJIMTAwRXM2WmFqejEvU0NuNFEyZVVwUmJld1U4V0hwN2JBRGNtVlpHR3E1TXZ3L2NvMWUxZ3lZc29mbWxYK09wdGZHL2JvandYc2dieWx4L1I1VjRPNTVuTStjMzlNc3FVMXE4Y3dBRlhGUHV2QVRJZ0VjV3MzMURITUI1Yzd4L2tEejFCQVJDNTFqNk9xWTFmZjBnTE93Q0lNQlR2emJNWC9oWVYzeE5LYytDUFdrWW1kMnI1L1hVbERUY3Q4U1RveGVOWTlvNnBjVzd1WW5Qd1VZUlIwQzh1NlVsL2ZaVlRnWm44UEVnNUJ6OUFMbHA3MG5EN0FoZmN5RnZLNzlWZmROWUI3MktiMG5ETmZIT3BVNTZWb2xSNm1yb3M2ckpnRWQwZWpnRmpwQy9IQTVBdlJQeUJ2dXVVdlpPeU0vaVZ3bDkyQkZMUkJvdVJWdnVnQnk0WlRGTEFKbCtybGpNRWk1Y1RtYkFqU0RMUDhGSFR2bHdMM2hxUXhvbVI5ZmQ5VFNUQVpDR0daN2FvOU9LMjVCdUN0aWthMko5b1M5SkIxak1jcXFwcmdGOUVmOTRoaEx0a2JKODlkRzVlSTllMmRFUmZ1U2g2bGhGZ0wycjd0RkZnTVMyc3RLaGZJa2FrdlFqMEZlT1R6N3RRYWVOVyt4VU5RV2V6T0g5VWN5RjdGQWVmajQyOGRJTzlJNWJFdTlVaCsvOGlEZ3M5RU44ODVidFF2V0xzdkN6SlEyL29GOUFJalNCeWZYZDhKUkxXYSsvaDZteEw3RGlqOTlkNm9ma1hzZ084ZTZqL2kxYzZwSXN0MW82N3hieW11cjIxZjN6QTduNkJkeGdrei9GSnVIYWZKMUt5RU0xSWcwbnRUKzdoaS9zdHlhZHlROUdEVjJieTNsZlRONHZFZTljNHQzM1dyL0FaZTVxOUVFbWUvN0NVeGw2TmJrMWUwMmdMdGM4ZFErOEFsY1YyeHhOUUdEYXZ2RzdOM1BlWUplMXJ5M1J2UXE3QUZpUmhwbFp5VDdOVnhFcjRNWElMdkEzOFM0Qy9nVitvVXhiaXBhRDlwTFh3cEdRSGZSRHVhYWRWMng5eWkzdW9sZWV3aTdoSXJNcU16RnVhc2JtZUdwdTJhZmh0akVxM1YvTTc1aHgwRlhiTDJaYjZzK2pUSnh5M0ZXYmkwc1N2Nkw1VGlRQzdNcEJrMUZOTFFVU1pLbXE3VGJZMi84Vis5ell2aE9iMUgrdC9EWmpNVnVpejU2c1Fac0JTeGF6YXBWMHdLVHR2bmd5bVhUT2V6SjBHbkVCUG5USkp1MzFQVTdlUTFTZmc4N2xybWxscHBZSDJ1L2pXNGtmMFMvR2YvME5oSkg0Z1RBU1B4Qkc0Z2ZDU1B4QUdJa2ZDQ1B4QStFLzVzVkdLeEx6LzBzQUFBQUFTVVZPUks1Q1lJST0iLCAiZW5jb2RpbmciOiAiYmFzZTY0In0sICJoZWFkZXJzU2l6ZSI6IDMwNiwgImJvZHlTaXplIjogMjY0OCwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogMjk1NH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDgxMy41NjEsICJyZWNlaXZlIjogMS4yNTl9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5IiwgInNlcnZlcklQQWRkcmVzcyI6ICIxOC4xNzIuNTIuNDkiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIkNOPSoudHJ1c3RhcmMuY29tIiwgInZhbGlkRnJvbSI6IDE3MTA1NDcyMDAsICJ2YWxpZFRvIjogMTc0NDY3NTE5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjA5LjM4OVoiLCAidGltZSI6IDAsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwOi8vY29uc2VudC50cnVzdGFyYy5jb20vYmFubmVybXNnP2FjdGlvbj12aWV3cyZkb21haW49Z29kYWRkeV9wYXJraW5nX2lhYi5jb20mYmVoYXZpb3I9aW1wbGllZCZjb3VudHJ5PWx1Jmxhbmd1YWdlPWVuJnJhbmQ9MC4wMzU2NTg4MzkzNjIzMzcyNyZzZXNzaW9uPTNkODY5YzE5LTk0MjMtNDc4My04ZjlmLThjNjM1MWQ4NzU4MSZ1c2VyVHlwZT1ORVciLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8xLjEiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQWNjZXB0IiwgInZhbHVlIjogImltYWdlL3dlYnAsaW1hZ2UvanhsLHZpZGVvLyo7cT0wLjgsaW1hZ2UvcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2UvKjtxPTAuOCwqLyo7cT0wLjUifSwgeyJuYW1lIjogIlJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cDovL2JhcHNtYW5kaXJkZXBhcmlzLmZyLyJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE3XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEifV0sICJxdWVyeVN0cmluZyI6IFt7Im5hbWUiOiAiYWN0aW9uIiwgInZhbHVlIjogInZpZXdzIn0sIHsibmFtZSI6ICJkb21haW4iLCAidmFsdWUiOiAiZ29kYWRkeV9wYXJraW5nX2lhYi5jb20ifSwgeyJuYW1lIjogImJlaGF2aW9yIiwgInZhbHVlIjogImltcGxpZWQifSwgeyJuYW1lIjogImNvdW50cnkiLCAidmFsdWUiOiAibHUifSwgeyJuYW1lIjogImxhbmd1YWdlIiwgInZhbHVlIjogImVuIn0sIHsibmFtZSI6ICJyYW5kIiwgInZhbHVlIjogIjAuMDM1NjU4ODM5MzYyMzM3MjcifSwgeyJuYW1lIjogInNlc3Npb24iLCAidmFsdWUiOiAiM2Q4NjljMTktOTQyMy00NzgzLThmOWYtOGM2MzUxZDg3NTgxIn0sIHsibmFtZSI6ICJ1c2VyVHlwZSIsICJ2YWx1ZSI6ICJORVcifV0sICJoZWFkZXJzU2l6ZSI6IDMwNSwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMzAxLCAic3RhdHVzVGV4dCI6ICJNb3ZlZCBQZXJtYW5lbnRseSIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzEuMSIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIlR1ZSJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICIxOCBKdW4gMjAyNCAwNTo1NDoxMCBHTVQifSwgeyJuYW1lIjogIkxvY2F0aW9uIiwgInZhbHVlIjogImh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vYmFubmVybXNnP2FjdGlvbj12aWV3cyZkb21haW49Z29kYWRkeV9wYXJraW5nX2lhYi5jb20mYmVoYXZpb3I9aW1wbGllZCZjb3VudHJ5PWx1Jmxhbmd1YWdlPWVuJnJhbmQ9MC4wMzU2NTg4MzkzNjIzMzcyNyZzZXNzaW9uPTNkODY5YzE5LTk0MjMtNDc4My04ZjlmLThjNjM1MWQ4NzU4MSZ1c2VyVHlwZT1ORVcifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiT3JpZ2luIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IC0xLCAibWltZVR5cGUiOiAieC11bmtub3duIiwgImNvbXByZXNzaW9uIjogMH0sICJoZWFkZXJzU2l6ZSI6IDMwOCwgImJvZHlTaXplIjogMCwgInJlZGlyZWN0VVJMIjogImh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vYmFubmVybXNnP2FjdGlvbj12aWV3cyZkb21haW49Z29kYWRkeV9wYXJraW5nX2lhYi5jb20mYmVoYXZpb3I9aW1wbGllZCZjb3VudHJ5PWx1Jmxhbmd1YWdlPWVuJnJhbmQ9MC4wMzU2NTg4MzkzNjIzMzcyNyZzZXNzaW9uPTNkODY5YzE5LTk0MjMtNDc4My04ZjlmLThjNjM1MWQ4NzU4MSZ1c2VyVHlwZT1ORVciLCAiX3RyYW5zZmVyU2l6ZSI6IDMwOH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IC0xLCAicmVjZWl2ZSI6IC0xfSwgInBhZ2VyZWYiOiAicGFnZUA1YzA5MWM3ZWQxODA4OTZlYWIzYjIwZmJhOWZlOTRhOSJ9LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjA5LjQxNFoiLCAidGltZSI6IDExOTQuMjU4LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9nZXQ/bmFtZT1NdXNlb1NhbnNfNTAwLm90ZiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJSZWZlcmVyIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mci8ifSwgeyJuYW1lIjogIlVzZXItQWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxN18zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNy4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xIn0sIHsibmFtZSI6ICJBY2NlcHQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogIkFjY2VwdC1MYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLURlc3QiLCAidmFsdWUiOiAiZm9udCJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLU1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAiSG9zdCIsICJ2YWx1ZSI6ICJjb25zZW50LnRydXN0YXJjLmNvbSJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJuYW1lIiwgInZhbHVlIjogIk11c2VvU2Fuc181MDAub3RmIn1dLCAiaGVhZGVyc1NpemUiOiAzODMsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9LCB7Im5hbWUiOiAiQ29udGVudC1MZW5ndGgiLCAidmFsdWUiOiAiNjI1MDQifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA1OjQyOjA2IEdNVCJ9LCB7Im5hbWUiOiAiUHJhZ21hIiwgInZhbHVlIjogInB1YmxpYyJ9LCB7Im5hbWUiOiAiVmlhIiwgInZhbHVlIjogIjEuMSA1MTllMmJmZWY0YzY2NWJjZjJkNmJjM2EzNzRjNWY4Mi5jbG91ZGZyb250Lm5ldCAoQ2xvdWRGcm9udCkifSwgeyJuYW1lIjogIkFnZSIsICJ2YWx1ZSI6ICI3MjMifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibWF4LWFnZT0yNTkyMDAwIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIk9yaWdpbiJ9LCB7Im5hbWUiOiAieC1jYWNoZSIsICJ2YWx1ZSI6ICJIaXQgZnJvbSBjbG91ZGZyb250In0sIHsibmFtZSI6ICJ4LWFtei1jZi1wb3AiLCAidmFsdWUiOiAiTlJUMjAtUDIifSwgeyJuYW1lIjogIngtYW16LWNmLWlkIiwgInZhbHVlIjogIldla2wyYlctaU1oVVZLVmtaTnRSbFd1VHlRanlqUUdvOERUZUdOdkJXeHNIcDVUMDlzVXhuQT09In0sIHsibmFtZSI6ICJzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5IiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDA7IGluY2x1ZGVTdWJEb21haW5zIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDYyNTA0LCAibWltZVR5cGUiOiAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgImNvbXByZXNzaW9uIjogMCwgInRleHQiOiAiVDFSVVR3QUxBSUFBQXdBd1EwWkdJR0hvMmVNQUFBa0lBQUM0bTBkUVQxUHJpeGl3QUFEQnBBQUFKTDVIVTFWQ244VG1YQUFBNW1RQUFBYWtUMU12TW4rd2dERUFBQUVnQUFBQVlHTnRZWENmWkozUUFBQUZ0QUFBQXpSb1pXRms3TDVBQWdBQUFMd0FBQUEyYUdobFlRZDJCTFVBQUFEMEFBQUFKR2h0ZEhqSzZsN1dBQUR0Q0FBQUJ5QnRZWGh3QWNoUUFBQUFBUmdBQUFBR2JtRnRaY3o4SkhzQUFBR0FBQUFFTkhCdmMzVC91QUF5QUFBSTZBQUFBQ0FBQVFBQUFBRUFBQ1JnaHdsZkR6ejFBQU1ENkFBQUFBREU3LzQ4QUFBQUFNVHYvanovaC84dUJFQURmQUFBQUFNQUFnQUFBQUFBQUFBQkFBQURyUDc4QUFBRWF2K0gvNFlFUUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFCeUFBQVVBQUJ5QUFBQUFJQ0lRR1FBQVVBQUFLOEFvb0FBQUNNQXJ3Q2lnQUFBZDBBTWdENkFBQUNBQUFBQUFBQUFBQUFvQUFBcjBBQUFFb0FBQUFBQUFBQUFIaHNhbUlBUUFBZyt3UUM3djhHQU1nRHJBRUVJQUFBa3dBQUFBQUI5QUs4QUFBQUlBQUxBQUFBSGdGdUFBRUFBQUFBQUFBQU9BQUFBQUVBQUFBQUFBRUFDZ0E0QUFFQUFBQUFBQUlBQXdCQ0FBRUFBQUFBQUFNQUVRQkZBQUVBQUFBQUFBUUFEZ0JXQUFFQUFBQUFBQVVBQlFCa0FBRUFBQUFBQUFZQURRQnBBQUVBQUFBQUFBY0FLZ0IyQUFFQUFBQUFBQWdBREFDZ0FBRUFBQUFBQUFrQURBQ2dBQUVBQUFBQUFBb0FIUUNzQUFFQUFBQUFBQXNBSHdESkFBRUFBQUFBQUF3QUh3REpBQUVBQUFBQUFCQUFDZ0E0QUFFQUFBQUFBQkVBQXdCQ0FBTUFBUVFKQUFBQWNBRG9BQU1BQVFRSkFBRUFIQUZZQUFNQUFRUUpBQUlBRGdGMEFBTUFBUVFKQUFNQUlnR0NBQU1BQVFRSkFBUUFHZ0drQUFNQUFRUUpBQVVBQ2dHK0FBTUFBUVFKQUFZQUdnR2tBQU1BQVFRSkFBY0FWQUhJQUFNQUFRUUpBQWdBR0FJY0FBTUFBUVFKQUFrQUdBSWNBQU1BQVFRSkFBb0FPZ0kwQUFNQUFRUUpBQXNBUGdKdUFBTUFBUVFKQUF3QVBnSnVBQU1BQVFRSkFCQUFGQUtzQUFNQUFRUUpBQkVBQmdMQVEyOXdlWEpwWjJoMElDaGpLU0F5TURBNElHSjVJRXB2Y3lCQ2RXbDJaVzVuWVM0Z1FXeHNJSEpwWjJoMGN5QnlaWE5sY25abFpDNU5kWE5sYnlCVFlXNXpOVEF3Ums5T1ZFeEJRanBQVkVaRldGQlBVbFJOZFhObGJ5QlRZVzV6SURVd01ERXVNREF3VFhWelpXOVRZVzV6TFRVd01FMTFjMlZ2SUZOaGJuTWdhWE1nWVNCMGNtRmtaVzFoY21zZ2IyWWdTbTl6SUVKMWFYWmxibWRoTGtwdmN5QkNkV2wyWlc1bllWTndZV05sWkNCaGJtUWdhMlZ5Ym1Wa0lIZHBkR2dnYVV0bGNtNHVhSFIwY0RvdkwzZDNkeTVxYjNOaWRXbDJaVzVuWVM1a1pXMXZiaTV1YkFCREFHOEFjQUI1QUhJQWFRQm5BR2dBZEFBZ0FDZ0FZd0FwQUNBQU1nQXdBREFBT0FBZ0FHSUFlUUFnQUVvQWJ3QnpBQ0FBUWdCMUFHa0FkZ0JsQUc0QVp3QmhBQzRBSUFCQkFHd0FiQUFnQUhJQWFRQm5BR2dBZEFCekFDQUFjZ0JsQUhNQVpRQnlBSFlBWlFCa0FDNEFUUUIxQUhNQVpRQnZBQ0FBVXdCaEFHNEFjd0FnQURVQU1BQXdBRklBWlFCbkFIVUFiQUJoQUhJQVJnQlBBRTRBVkFCTUFFRUFRZ0E2QUU4QVZBQkdBRVVBV0FCUUFFOEFVZ0JVQUUwQWRRQnpBR1VBYndCVEFHRUFiZ0J6QUMwQU5RQXdBREFBTVFBdUFEQUFNQUF3QUUwQWRRQnpBR1VBYndBZ0FGTUFZUUJ1QUhNQUlBQnBBSE1BSUFCaEFDQUFkQUJ5QUdFQVpBQmxBRzBBWVFCeUFHc0FJQUJ2QUdZQUlBQktBRzhBY3dBZ0FFSUFkUUJwQUhZQVpRQnVBR2NBWVFBdUFFb0Fid0J6QUNBQVFnQjFBR2tBZGdCbEFHNEFad0JoQUZNQWNBQmhBR01BWlFCa0FDQUFZUUJ1QUdRQUlBQnJBR1VBY2dCdUFHVUFaQUFnQUhjQWFRQjBBR2dBSUFCcEFFc0FaUUJ5QUc0QUxnQm9BSFFBZEFCd0FEb0FMd0F2QUhjQWR3QjNBQzRBYWdCdkFITUFZZ0IxQUdrQWRnQmxBRzRBWndCaEFDNEFaQUJsQUcwQWJ3QnVBQzRBYmdCc0FFMEFkUUJ6QUdVQWJ3QWdBRk1BWVFCdUFITUFOUUF3QURBQUFBQURBQUFBQXdBQUFoUUFBUUFBQUFBQUhBQURBQUVBQUFJVUFBWUIrQUFBQUFrQTl3QUJBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFDQUFNQUJBQUZBQVlBQndBSUFBa0FDZ0FMQUF3QURRQU9BQThBRUFBUkFCSUFFd0FVQUJVQUZnQVhBQmdBR1FBYUFCc0FIQUFkQUI0QUh3QWdBQ0VBSWdBakFDUUFKUUFtQUNjQUtBQXBBQ29BS3dBc0FDMEFMZ0F2QURBQU1RQXlBRE1BTkFBMUFEWUFOd0E0QURrQU9nQTdBRHdBUFFBK0FEOEFRQUJCQUVJQVF3QkVBRVVBUmdCSEFFZ0FTUUJLQUVzQVRBQk5BRTRBVHdCUUFGRUFVZ0JUQUZRQVZRQldBRmNBV0FCWkFGb0FXd0JjQUYwQVhnQmZBQUFBZ0FDQkFJTUFoUUNOQUpJQW1BQ2RBSndBbmdDZ0FKOEFvUUNqQUtVQXBBQ21BS2NBcVFDb0FLb0Fxd0N0QUs4QXJnQ3dBTElBc1FDMkFMVUF0d0M0QVZJQWJBQmhBR0lBWkFGVUFISUFtd0JxQUdZQld3QndBR1VCWHdDQ0FKUUJYUUJ0QVdBQllRQmpBSEVBQUFBQUFBQUFBQUFBQUdjQWRnQUFBS0lBdEFCN0FHQUFhUUFBQVR3QlhnQUFBR2dBZHdGVkFjWUFmQUIvQUpFQkRnRVBBVW9CU3dGUEFWQUJUQUZOQUxNQUFBQzdBVFFCV1FGYUFWY0JXQUZqQVdRQlV3QnpBVTRCVVFGV0FINEFoZ0I5QUljQWhBQ0pBSW9BaXdDSUFJOEFrQUFBQUk0QWxnQ1hBSlVBN1FGQkFVY0Fhd0ZEQVVRQlJRQjBBVWdCUmdGQ0FBUUJJQUFBQUVRQVFBQUZBQVFBZmdDZ0FLTUFwUUNzQUswQmZ3R1NBaHNDeHdMZEE3d2VuaUFKSUJRZ0dpQWVJQ0lnSmlBd0lEb2dSQ0J3SUhrZ2lTQ3NJU0lpRWlJZUlrZ2lZQ0psK3dULy93QUFBQ0FBb0FDaEFLVUFwd0N0QUs0QmtnSVlBc1lDMkFPOEhwNGdDU0FUSUJnZ0hDQWdJQ1lnTUNBNUlFUWdjQ0IwSUlBZ3JDRWlJaElpSGlKSUltQWlaUHNBLy8vLzRRRW0vNy8vdnYrOUFSci92UCtxL3lYK2UvNXIvTFhpcStHODRUZmhOT0V6NFRMaEwrRW00UjdoRmVFNjRUZmhNZUN1NERuZlN0OC8zeGJlLzk3OEJtSUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTUFBQUFBQUFEL3RRQXlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFRQ0FBRUJBUTVOZFhObGIxTmhibk10TlRBd0FBRUJBVEQ0RUFENDd3SDQ4QXdBK1BFQytQRUQrUElFK3czN1p2clUraEFGSFFBQUdHc1BwUjBBQUtwUkVoMEFBQm5tRVFEWUFnQUJBQWdBRHdBVkFCc0FJZ0FwQUM4QU5RQkFBRXNBVlFCZkFHVUFhd0J4QUhjQWZRQ0RBSW9Ba1FDWEFKMEFwd0N4QUxnQXZ3REZBTXNBMWdEaEFPY0E3UUQzQVFFQkRRRVpBU1FCTHdFekFUY0JQUUZEQVVvQlVRRlhBVjBCWkFGckFYVUJkd0Y1QVlRQmp3R2JBYWNCc3dHNUFiOEJ5d0hYQWQwQjR3SG5BZXNCOFFIM0FnTUNEd0lWQWhzQ0pnSXBBaXdDTXdJNkFrQUNSZ0pUQW1BQ1pnSnNBbmdDaEFLS0FwQUNsZ0tjQXFjQ3NnSzZBc0lDemdMYUF1QUM1Z0xxQXU0QzlBTDZBd0VEQ0FNT0F4UURHUU1lQXlzRE9BTS9BMFlEVVFOY0EyY0RjZ040QTM0RGlBT1NBNWNEb3dPdkE3WUR2UVBFQThnRDBBUGJBK01EN0FQNEEvc0VBQVFGQkJBRUZRUVlCQ0VFS1FReEJEc0VSQVJOQkZVRVh3UnBCSElFZlFTTEJKb0VxZ1M3Qk1rRTJBVGZCUEVGQkFVV0JTa0ZOQVUvQlZJRll3VnlCWDBGaHdXUUJaa0ZwQVd1QmJnRndRWE1CZGNGNFFYckJmUUYvUVlJQmhJR0hBWWxCakFHT3daRkJrOEdWd1pqQm1vR2RBWjhCb29HbHdha0JyTUd3UWJQQnR3RzZ3YjZCd2dIR0FjbkJ6WUhSd2RYQjJjSGRnZUhCNWdIcUFleEI3Z0h2d2YzQ0JRSUlnZ29RVzFoWTNKdmJtRnRZV055YjI1QlluSmxkbVZoWW5KbGRtVkJiMmR2Ym1WcllXOW5iMjVsYTBOaFkzVjBaV05oWTNWMFpVTmphWEpqZFcxbWJHVjRZMk5wY21OMWJXWnNaWGhEWkc5MFlXTmpaVzUwWTJSdmRHRmpZMlZ1ZEVOallYSnZibU5qWVhKdmJrUmpZWEp2Ym1SallYSnZia1JqY205aGRHUmpjbTloZEVWdFlXTnliMjVsYldGamNtOXVSV0p5WlhabFpXSnlaWFpsUldSdmRHRmpZMlZ1ZEdWa2IzUmhZMk5sYm5SRmIyZHZibVZyWlc5bmIyNWxhMFZqWVhKdmJtVmpZWEp2YmtkamFYSmpkVzFtYkdWNFoyTnBjbU4xYldac1pYaEhZbkpsZG1WblluSmxkbVZIWkc5MFlXTmpaVzUwWjJSdmRHRmpZMlZ1ZEVkamIyMXRZV0ZqWTJWdWRHZGpiMjF0WVdGalkyVnVkRWhqYVhKamRXMW1iR1Y0YUdOcGNtTjFiV1pzWlhoSVltRnlhR0poY2tsMGFXeGtaV2wwYVd4a1pVbHRZV055YjI1cGJXRmpjbTl1U1dKeVpYWmxhV0p5WlhabFNXOW5iMjVsYTJsdloyOXVaV3RKWkc5MFlXTmpaVzUwU1VwcGFrcGphWEpqZFcxbWJHVjRhbU5wY21OMWJXWnNaWGhMWTI5dGJXRmhZMk5sYm5SclkyOXRiV0ZoWTJObGJuUnJaM0psWlc1c1lXNWthV05NWVdOMWRHVnNZV04xZEdWTVkyOXRiV0ZoWTJObGJuUnNZMjl0YldGaFkyTmxiblJNWTJGeWIyNXNZMkZ5YjI1TVpHOTBiR1J2ZEU1aFkzVjBaVzVoWTNWMFpVNWpiMjF0WVdGalkyVnVkRzVqYjIxdFlXRmpZMlZ1ZEU1allYSnZibTVqWVhKdmJtNWhjRzl6ZEhKdmNHaGxSVzVuWlc1blQyMWhZM0p2Ym05dFlXTnliMjVQWW5KbGRtVnZZbkpsZG1WUGFIVnVaMkZ5ZFcxc1lYVjBiMmgxYm1kaGNuVnRiR0YxZEZKaFkzVjBaWEpoWTNWMFpWSmpiMjF0WVdGalkyVnVkSEpqYjIxdFlXRmpZMlZ1ZEZKallYSnZibkpqWVhKdmJsTmhZM1YwWlhOaFkzVjBaVk5qYVhKamRXMW1iR1Y0YzJOcGNtTjFiV1pzWlhoVFkyVmthV3hzWVhOalpXUnBiR3hoVkdOdmJXMWhZV05qWlc1MGRHTnZiVzFoWVdOalpXNTBWR05oY205dWRHTmhjbTl1VkdKaGNuUmlZWEpWZEdsc1pHVjFkR2xzWkdWVmJXRmpjbTl1ZFcxaFkzSnZibFZpY21WMlpYVmljbVYyWlZWeWFXNW5kWEpwYm1kVmFIVnVaMkZ5ZFcxc1lYVjBkV2gxYm1kaGNuVnRiR0YxZEZWdloyOXVaV3QxYjJkdmJtVnJWMk5wY21OMWJXWnNaWGgzWTJseVkzVnRabXhsZUZsamFYSmpkVzFtYkdWNGVXTnBjbU4xYldac1pYaGFZV04xZEdWNllXTjFkR1ZhWkc5MFlXTmpaVzUwZW1SdmRHRmpZMlZ1ZEd4dmJtZHpVMk52YlcxaFlXTmpaVzUwYzJOdmJXMWhZV05qWlc1MGRXNXBNREl4UVhWdWFUQXlNVUoxYm1reFJUbEZSWFZ5YjJsdVptbHVhWFI1WVhCd2NtOTRaWEYxWVd4dWIzUmxjWFZoYkd4bGMzTmxjWFZoYkdkeVpXRjBaWEpsY1hWaGJHWmZabVpmWmw5cFpsOW1YMnhqYjIxdFlXRmpZMlZ1ZEdGd2NHeGxabDlxZW1WeWJ5NTBiblZ0YjI1bExuUnVkVzEwZDI4dWRHNTFiWFJvY21WbExuUnVkVzFtYjNWeUxuUnVkVzFtYVhabExuUnVkVzF6YVhndWRHNTFiWE5sZG1WdUxuUnVkVzFsYVdkb2RDNTBiblZ0Ym1sdVpTNTBiblZ0YUhsd2FHVnVMbU5oYzJWd1lYSmxibXhsWm5RdVkyRnpaWEJoY21WdWNtbG5hSFF1WTJGelpXSnlZV05yWlhSc1pXWjBMbU5oYzJWaWNtRmphMlYwY21sbmFIUXVZMkZ6WldKeVlXTmxiR1ZtZEM1allYTmxZbkpoWTJWeWFXZG9kQzVqWVhObFlYUXVZMkZ6WldkMWFXeHNaVzF2ZEd4bFpuUXVZMkZ6WldkMWFXeHNaVzF2ZEhKcFoyaDBMbU5oYzJWbmRXbHNjMmx1WjJ4c1pXWjBMbU5oYzJWbmRXbHNjMmx1WjJ4eWFXZG9kQzVqWVhObFpXNWtZWE5vTG1OaGMyVmxiV1JoYzJndVkyRnpaWEJsY21sdlpHTmxiblJsY21Wa0xtTmhjMlZ4ZFdWemRHbHZibVJ2ZDI0dVkyRnpaV1Y0WTJ4aGJXUnZkMjR1WTJGelpXSjFiR3hsZEM1allYTmxlbVZ5Ynk1d1gyOXpabTl1WlM1d1gyOXpablIzYnk1d1gyOXpablJvY21WbExuQmZiM05tWm05MWNpNXdYMjl6Wm1acGRtVXVjRjl2YzJaemFYZ3VjRjl2YzJaelpYWmxiaTV3WDI5elptVnBaMmgwTG5CZmIzTm1ibWx1WlM1d1gyOXpabnBsY204dWRGOXZjMlp2Ym1VdWRGOXZjMlowZDI4dWRGOXZjMlowYUhKbFpTNTBYMjl6Wm1admRYSXVkRjl2YzJabWFYWmxMblJmYjNObWMybDRMblJmYjNObWMyVjJaVzR1ZEY5dmMyWmxhV2RvZEM1MFgyOXpabTVwYm1VdWRGOXZjMlprYjJ4c1lYSXViM05tWTJWdWRDNXZjMlp6ZEdWeWJHbHVaeTV2YzJaNVpXNHViM05tWm14dmNtbHVMbTl6WmtWMWNtOHViM05tZW1WeWJ5NXVkVzFsY21GMGIzSnZibVV1Ym5WdFpYSmhkRzl5ZEhkdkxtNTFiV1Z5WVhSdmNuUm9jbVZsTG01MWJXVnlZWFJ2Y21admRYSXViblZ0WlhKaGRHOXlabWwyWlM1dWRXMWxjbUYwYjNKemFYZ3ViblZ0WlhKaGRHOXljMlYyWlc0dWJuVnRaWEpoZEc5eVpXbG5hSFF1Ym5WdFpYSmhkRzl5Ym1sdVpTNXVkVzFsY21GMGIzSjZaWEp2TG1SbGJtOXRhVzVoZEc5eWIyNWxMbVJsYm05dGFXNWhkRzl5ZEhkdkxtUmxibTl0YVc1aGRHOXlkR2h5WldVdVpHVnViMjFwYm1GMGIzSm1iM1Z5TG1SbGJtOXRhVzVoZEc5eVptbDJaUzVrWlc1dmJXbHVZWFJ2Y25OcGVDNWtaVzV2YldsdVlYUnZjbk5sZG1WdUxtUmxibTl0YVc1aGRHOXlaV2xuYUhRdVpHVnViMjFwYm1GMGIzSnVhVzVsTG1SbGJtOXRhVzVoZEc5eWRHaHBibk53WVdObGRXNXBNREJCTUhWdWFUQXdRVVJEYjNCNWNtbG5hSFFnS0dNcElESXdNRGdnWW5rZ1NtOXpJRUoxYVhabGJtZGhMaUJCYkd3Z2NtbG5hSFJ6SUhKbGMyVnlkbVZrTGxOd1lXTmxaQ0JoYm1RZ2EyVnlibVZrSUhkcGRHZ2dhVXRsY200dVRYVnpaVzhnVTJGdWN5QTFNREJPYjNKdFlXd0F5UUlBQVFBeEFEc0FhQUNaQUt3QXNRRFVBUGtCQmdGSkFWc0JjUUdVQWQ0Q0RBSWhBazBDaEFLeEFyWUM1d0wyQXdRRENnTVJBeVVETGdNMkEwVURVd05kQTQwRGtRTzNBOEVEMHdQWEErUUQ2QVA3QkFVRUZBUTlCRUVFUmdSTkJGTUVYZ1JwQkhVRXlnVWhCU1VGS3dVNEJVSUZUQVdkQmE4Ri93WUpCaFFHWHdadUJuMEd2Z2JVQnhRSEhRY3JCMm9IZEFkK0I1WUhvQWV0QjdFSDZRZnhCL2tJQkFnTkNCWUlId2dqQ0ZnSVhBaGdDR2tJYlFoMENJWUlpd2lRQ0prSW93aW9DSzBJc2dqYUNPb0k3Z2tXQ1QwSlNBbHRDWGdKaHdtVENaZ0p2Z25EQ2RBSjNnb0FDaHdLSWdvdkNqVUtPZ3BEQ2trS1ZRcGJDbUVLWmdweENub0tmd3FEQ29vS2p3cW5DcTBLdEFxNENyNEt3d3JXQ3VrSzd3cjFDdnNMQUFzREN4QUxGUXNuQ3l3TE1ndEFDMFVMU2d0YUMyb0xjZ3QyQzMwTGhBdUpDNDBMbHd1a0M2OEx0d3U3Qzc4THl3dlNDOWdMM2d2a0MrZ0w3QXYzQy93TUJ3d09EQklNRmd3YURDUU1MZ3c0REVJTVRBeFdER0FNWkF4b0RIRU1lZ3lEREl3TWtBeVdESndNb1F5bURLc01yN3YzK2hYN1pQY3oremIzWUhNSzkxLzdNdmN4KzJCekhSN3hhaDMzSlBjSSt3ajdMbkVLK3lUN0NmY005ek1lQzF2bEp4MGY3WkE4Q2d1eTk1SVYreTczRHZzRTl5dHlIZmN0K3c3M0Evc3JjUjBlN2hiMDJ0YnE2OWxBSWlFOVB5c3NQTmYxSGd2N2txb0tJd2I3a3YxV0JmRUcwZmRmQmZlZUJ2c1grQ29WaTVwTGwyY2UyZnQwQmZ0cUJ0cjNkQVdYcjV2TGl4b0xGZUFHdjlzRmpRYkFPd1hnQmpOVUhTWUdEaFBnSXdvTHhSMnBsSzZwSHJhYlI4NGJ6NjIzM2g5RkJtNkNaMjBlWUh2UFNCdEhhV0EzSHd2MzFBZjNGRVBSK3hUN0NFSlBpeDZ6UkFXTHlyelp5N3B2T0I2Q2RRYzIrM0NFK3pzTHFCMFRzejBkRTNNaEhSTU1DNHRtMXZzTyt5QTYrd0Q3SmZzbTRQc0Y5eUhVdXFpOXFSNTNIWXA3ZXhwbUJ5UkRaRE0vVEsyTEh2Yzc5MG9WTUZQVDlQSzl5K1BheTJYN0dQc1lTMkZGSHdzVjhBYmo5eE80Q2xZNkJZa0dWOXk0Q2c2Nzkva1YrMlAzS2ZzMjkyajNSZXozQklzZUxRb0w5M243Nm1UM0pockR3THJXZngxRzB2c1greGtzTlBzQ0h2dHQ5K3FzK3kxNkNndk1DdmV0OXlzRzl5bjdyUVgzQkFiN0t2ZW1CWDZpZytVZEI5aWt2ZGZsR3VoYzBrT21IcFZ3YkpGQkcvdHNCdTc3NXhYM2tmY0dCOEtpaFlHZUg2OTNuMlpYR2p4YldqNGVDL2M2KzVoMzVocTN0SjIxMjdoZWl4NnkxQVdMVjhQN0F5WTVWeThlK3puM21KNHVHbUpoZFdFelVzYUxIZ3V6OTVFVit5ejNCUHNGOXpQM0dOSGNpeDQyQ2d2Vjlzak5UdmVjT2diN1hmdXNCVm4zWkFmN0VzMFZqUWZ0OXhjRm1xQ1pwb3NhZHgySWEzRWErdzhIQzEvaTkvZjdZVFgzQnlVSGl6MHordzc3S1BzRTl3WDNPUGNyNy9jTjl6cjNETnBHaXg2OTFRV0xNK0Q3UGZ0aSt5NzdOUHRnSGd2TUN2aGVCck9FeW5ZS3JFdWxaQjczei94ZUJlejVWaWo4WHdaa2treUZIV3JMY2JFZSs4NzRYd1VwQmdzVHlDc2RDL2U0emZ0cEJwSHA5MXlWOXlZYTJrMi9PUzllUTRzZXZGNEZpNjY3dkxXcGIyWWVKL3RvZy9zOUdvQ05mb3gvSGc3M3IzL20rTG5seFhiM0UzY3JDZ3ZwMEpld1VSMUwreEoyK3pzZUN4SWxIUk1ZQzF3ZEpEcGtIUXVUZitmNHR1ZWhIY1h2OTRidkU4d3FDaE13Qy9kTW9oMHpIUk13QytzVytEOURIUVlMTVgwZHZ1NzNOZTRUekN3S0V6QUxyczBLYVFvZWpRYUxpWHAwR2dzU3JRb1R6Q1VLRXpBTHNoYjRTZDc3bFFacWVvbkdIUWVMb1orZ3BSNzNrL2ZWQmNQOE5UajNnUWVzbTQxa0NuZDNkWEFlKzVQNzFBVUxOaDE2Q3hXM3RLZTV1bUtuWDE1amIxeGRzMis0SDdRRWQzNlpucUNZbVorZW1YMTJlSDE5ZUI4T2p4M2xkdmNUZHpjZEMrSDczUGQzOTVIaCs1SDNjZmZMNGZ3dUN4VXdIUTRWMi9BN0JzQUtGZHZ3T3dZTFFBb1NDeHZjbWxORUgvdkM3UGZZQi9jVlZNejdDd3VXSGVWMjl4TjNQaDBMYkFyUlFBb1M2KzRUNURzZEV4Z0xzZ3IzWXdhcWpxcVVxQjdXb3NTM3lSdWFtSWlMSCtzSGkzK05majFRVVVGMEhua2RqWnlnR2d2OWtTUUtWQjBqQmdzVlZRb2VqZ29MUUIxTVBjb0xGYy9LczlnZm1VTi9Cd3NGaTVTTWxHc2RIbEVIQzVxVmlZc2UzZ2VMZkk1MUN4VkJCNHVVaVptNzl3YWI5ek1lNndjVHlQSGdrcThkRStDTE5wTHpHdDhIOXpMN0JwdGJmWUtLaXg1QkI0dVFpNVFlRTlDa3lJSXJIeVFIS054djNBb0hpenB6SkJyN0J3Y3JUb0p5SGhQZ2dvYUwxQW9WK3pQM0JudTdtWlNOaXg3VkI0dUZpNE1lRStCeVRwVHJIL2NIQi9JNm80c2VqUWVMM0tmdUd2SUg2OGlVcEI0VDBKT1JpNHNmMVFlTGdveDlXL3NHZS9zeUhqY0hFK0FqTm9TTEhqVUhFOUNMNElRbEdnNzNFd1VMMGZjZVRSMExvQXFramFLUm54N1VvTW0rQzJCdGVXNXNicDIxSGdzU3JoMFQyQ0FkRXlBTDk3b1YrMUQzQS9zSzl5cjNGK25vOXhiM0R6UG8reGxOUzNOaWJCNkpCdmNFbXMvM0NQY1VHOE80ZFlzZnE5b0ZpMWFtTi90dEsvdGsrMEFlOFdRVnVzdTQydVhBVWpzN1hGRTZMVXZ0NEI0TzdQZE5GZnM5OXhWM3pKK1pqWXNlWFIwTGZ4WDNHT3JzOXgvM0Z6THgreHBOUzNCamJSK0pCdmNKbXM3M0RQY1dHOE80ZElzZnErQUZpMVdvT1B0dktQdHMrMG43WGZjRit4ajNLeDZLNWhVeFJ2TG52c3U3MitYQ1REVTVXa3c2SHc3NGppcjdnUWNuVGpBTG54Mlk4QjczZFgwS0J3dlVBOEgzOVJYN1gvY3kremIzV2ZkYjl6UDNOdmRmOTEvN00vYzIrMXY3V2ZzeSt6YjdYeDdVRnZjNzl3LzNGdmN6OXpYM0VQc1crenY3Ty9zUSt4YjdOZnN6K3cvM0Z2YzdIZ3VMb29TcnZyNmh5YlpzcEdLUUhndjNiNkIyK1ZaMzVYYjNFM2RLQ2d2ZkZZdmdLL2NrOXlYcTlmY045eDM3QnNjdWxSNzNWUGR4QmNyOE9qWDNnd2V5b0k1a0NuWjRkSEFlK3k3N1NhSldCYndHNHRoZ05EOUtWandsUnRqVUN2czNvSGI0TmVxRnp4MFR4RW9kRTZUakxRY1RHQXRyRll2UU1mY2c5eUQzQU9IM0hmY1VKdHo3SEZaamVJVWRqNW1Ob0I2YTl4d0Y5NW5mKyt3R2FQdmF3bmNGaTc2cTBOdldYVE15UEY0K0xGUFNpeDRPZmNQUkh2ZkNLZ2NMMEl2aCtLcW1DaFBBUHdvVE1BdmhGWXZTS2ZjbDl5UDI4ZmNjOXhNcTh2c3BWMlIxaFIyUG00eWdIcHozS1FYM291SDcrQVpvKy9MRWRnV0x2YTdRNXRGUE5qVkRVamduVk5lTEhnNFNwQW9UMkNJZEV5QUxUeDBURWxjZEV3cFJDaGIzZmdiM2JQY2k5eGIzZFBkeit5TDNGZnRzSC90K0N4YjNMdmNKOXdqM0pBdXFvWUYyZEhTRGNuVjNrb3NMbkhJS0N4YjRXK0g3OGdhTjl6WDM1YS8zZkJyM0RpN2MreGI3TTB2N0dvc2UxRm9GaTczbDZOWEFYRVVlK3pyNzdtZjdrQnA2alhtT2VCNE9GZmVUMGZ1VEJnNFYvSmtIWXdvSEMvc0NUME5mZHg1NUhZMEwreXY3RHZzRCt5MEw5eXYzRHZjRTl5NEwrMkQ3TS9zeCsxOEw1UXFMQy9la0Zmc2kxZnNpOXp2M090WDNJUGNqOXlSQTl5UDdPZnM2UVBzait5TWU3WXdWNzdidzcrMjNKaWNuWUNZb0oyRHc3eDRPZjRBZEM0MEdpd3ZYRmxJSzk1Y3FCd3VKQm9zTFp3cFRrTEVhQzF2bitWWXErMzRIZUkxOGhSMWsyMnNLQzVvR1FCMExkaDJDQ2d0VEN2d0MrMkZUQ2c3bHpFNkxIcmpkQllzTDMvZiszd3Y3dFlRS0MvdUxmd29MRmRQM0RMZjNMdmMxR3Zja1lmY1pRZmNLSGpZRzFQc09zL3NaK3lFYSt5bGwreWxBK3h3ZUR0RDNPc1hwMFFHMDJmY3oxZ1AzWWd2QUhZc0x6QXIzMlBRRzkxRDcyQVgzQkFiN2J2Z0ZCWTBIOTJIMzR3WDdBUWI3UnZ1OUJTTDN2U2dHQzBEM0hHWDNLZmNwR3ZjaHMvY1oxUGNPSGpZR1Fmc0tZZnNaK3lRYSt6VzMreTdUK3d3ZURoWHQ3aWtHalB0Y2J4ME9GdmdVM3ZzZStHTTFCdnRMK3dXM1IrYkJCYUtabTVxTEduY2RpbXR3R3Z2Ryt5d0hEdmc2RlpVS09jNUozeDhMMGVuRjl6clFBYS9XOXpQWUE2OEw2eGI0TStINzBQa0FLQVlMeDMrWkhRdXA5MThWK3l6MVRQTHk5c24zTFI3NGkvdXBOZmRHL0RRSExsUnJWRk5Uck9zZXFTa0hDK1dnbGdvTEZ2ZmtxZ3BBQnZ2ay9WWUZDOUQzT2NuZnpnSDNvOWNEOTA0TEZmc0Q2MFQzQmZjQnpNdUxIbGJRQll0WVlFeEpXN2ZESHZjRzl6Mmk5eXdhQy9zSUZmRUc5OFg0NmdYTC9HQTQ5OElIcnBtTlpBcDZkbmhrSGc1a1Z4cUxDZ3ZOOTh6UUFicmQ5eGJYQTcwTDkxSi91QjBMZHZjbGR3djd0YUIyK0k3UEhRdmxQZG5VSFF2M1c0b2QreHo4T2hYcEJndjVBSjhLQmd2cytJNHFCZ3YzcjRVS0M4MzRCM2NCOXpqV0E5SUw0UWVMZ29sOVprUUx6S0NvQ2d2RlJoMExoUXFoSGJ2eEMrNzVWaWdMOTRvVjkzVDdpdDMzaXZkejJmdHo5NG81KzRyN2RBWUxkdmd2ZHdFTHJBcGhhMnRoQzM4S0FRdlRIZmQ1N0FzRit3UUdDOHdLOThyNEF2dktveDM3eXZ3Qzk4b29CZ3NWOXpuVkJoUGdPL2svQmhQUTI5VDdPUVlPZndybFJoMExkL2NHUmgwTHUvSDRuZkVMaXg3aEJ3czBCZzYxSGYxV0JPOEdoZmlVQmJBZGR1MTNFZ3M1emtuZzN0RE4zZHhHempnMlNFZzZIZ3YzTXFVZEN4WHU3Q2dHQzlmN1hCWHM5M2NHcFltZGRnb0w4cURFQ2d2bStRZDNDL2NRMlBzUTkxd3UrMXo3RFQ3M0RRdjd0dnRpMy9rSWQvZHdkd0hYNndNTEZmZTQ0ZnU0Qmc2RUNnRUxkdmdHemdIRkN4SzI3dmV5N0FzRzYxUWRDOXdLQmd0MitFRFo4UE0zc1FvTDkzZjNrdUg3a3ZkeDk4emhDd2ZmdjFrMk5sZFdOaDhPNGZmbjJmY21kd3NWMFFZTGl4K05Dd2F1OTF3Rk9nWm8rMXdGQ3hYUXZnb3dCZzdWK1QvVUVndDIrZEozQVF0MitkZDNFZ3Y0bVJZTDIrTGJDKzFKNnZlUTN6ZnRFK1FMclIzWDdBdjdGTi8zTjl2M3A5OEJDNjIzc1orY0hndmtDdVFMRXE3dEMvaEFkd3YzVFRiZ052YytFK0FMb0hiM1VkLzRSWGNCQy9mRzJRSDNBZmZHRlF0LzV2Yy8zdmU2NWdFTGYrbjN0T0gzT09FQkMvc2crOEFWOXo3M2t3c1Y2Z2EyOTFjRlF3WUxHaFBZQ3hYN01RdjdHbloyK2FaM0FRdjR1M2IzVUhjQnlndnM5d3p0OTIzb0F3dDI5NHJaOTRwM0FRdWc1eDBMOTBjVjdRWUxGZnRnOXpFTGxJc2FqUXY3WThYSkMzYjVBT0VMQll0TUN3RUFBUVlBYUFBQUNUY0FmQUFBUWlBQVpBQUFaZ0FBZ3dBQXFnQUFpd0FBYWdBQWx3QUFwUUFBZ0FBQW9RQUFuQUFBcEFBQXFRQUFmUUFBbUFBQWN3QUFjZ0FBaFFBQWxnQUFqd0FBZUFBQW5nQUFtd0FBb3dBQWV3QUFyZ0FBcXdFQXNBQUFyUUFBcndBQWlnQUFzUUFBdFFBQXNnSUF1UUFBdGdJQW1nQUF1Z0FBdmdBQXV3RUF2d0FBdlFBQXFBQUFqUUFBeEFBQXdRSUF4UUFBblFBQWxRQUF5d0FBeUFFQXpRQUF5Z0FBekFBQWtBQUF6Z0FBMGdBQXp3SUExZ0FBMHdJQXB3QUExd0FBMndBQTJBRUEzQUFBMmdBQW53QUFrd0FBNFFBQTNnSUE0Z0FBb2dBQTR3QUJoekFBa1FBQnVBNEFqQUFBa2dBQnh3NEFqZ0FBbEFBQjFnc0F3QUFBM1FBQjRoVUF4Z0FCK0FNQXh3QUE1QUFCL0FBQVpRQUIvUU1BZmdBQWlBQUFnUUVBaEFBQWh3QUFmd0FBaGdBQ0FRQUFid0FBaVFBQVFRQUFDQUFBZFFBQWFRQUFkd0FBZGdBQWNBRUFkQUFBZVFFQWF3RUFZd0FDQWdBQW1RQUFwZ0FDQXdVQWJRRUNDVVFCUmhBQ1Rnd0J5QUlBQVFCTEFFNEFnUUNpQVJ3Qmt3SWtBcWNDdXdMeEF5WURiUU9TQTZnRHZBUExBK0lFTUFSaUJLWUUrZ1ZCQlpJRjlBWWRCcUFIQXdjZUJ6NEhad2VJQjdZSC9BaHVDTGdKR0Fsa0NhSUp4Z25tQ2s4S2RncUpDcndLOGdzSUMyNExzQXdIREVJTXJ3ME1EVm9OZFEydURlWU9XZzZ5RHUwUExBOUdEMTRQZWcrY0Q2d1B4UkF1RUl3UXpoRXdFWVVSd2hJL0VvUVNwQkxjRXhVVFBoT3RFL1FVT2hTYkZQb1ZPQldCRmJjVitCWXdGcHNXOUJkREY0SVg1eGY3R0dJWW5SakpHU2NaYVJuSUdqTWFVQnJkRzBFYmVSdVJIQzRjUkJ4OUhLOGM4UjFGSFY0ZHFSM2FIZXdlSmg1Vkhwb2UwUjliSDlrZ2lDRFZJUzRoaHlIckltY2l4U005STRJa0NpUTlKSEFrckNUcEpRb2xLeVZXSllFbDBDWkhKcTRuRlNlR0tCQW9meWl6S1VRcGpDblVLaVlxZENxK0t2OHJYU3ZWTEUwczFTMTRMZjB1bkM5R0w3OHdKRENKTVA4eGJER1FNYlF4NWpJV01va3pDRE5lTTdRMEdqU1ZOUEUxSFRXaU5mSTJRamFoTnZvM1dUZTBPQms0ZERqdE9WczUvVHBsT3ZVN1VUdWpQQWs4YkR6R1BSWTlmRDNmUGpZK3V6OEtQNEEvdFVBY1FHbEE5a0VtUVloQnprSkVRb0ZDOTBONlJCZEVxa1ZmUmRaR1hrYnZSNDVIemtnclNIbEkxMGtkU1daSmhFbW1TZUJLS0VwYVNwaEt1VXJNU3dCTFRrdWJTK2hNUTB5aFROZE0rMDB5VFcxTnZVM3pUanhPWVU2WVRzdFBEazlmVDdWUUhWQ0lVT05SU1ZHMVVncFNhMUxUVXlkVHBsUWJWSTlVOGxWZ1ZmaFdaRmF3VnpCWGtGZ0dXR0pZd0ZrWVdYOVo2RnB1V3ZGYldWdkNYQk5jaEZ5NFhScGRTRjJMWGZsZWMxNjZYd3RmYVYvaVlFcGd2V0VTWVc5aHpXSXdZcjFqUjJPYlpBcGtYbVN0WlB4bFJtV1FaZWxtU1dhQVp1aG5XbWZHYUFob1pXaUlhS3RvMkdqcmFTSnBUR21GYWFwcUUyb29hajFxVldwdGFvTnFxV3JQYXZOckdHdE9hM0JybG14VmJIWnNsbXl5YlM5dGwyMnJiY3h1TjI1MmJxaHUzbTlGYjVSdjlYQnZjUU54TFhKQ2NxdHkrWE1yYzI5enczUUtkRnQwdlhUbmRXcDF6WFhqZGhkMlRIWm9kb1YyNm5kUmQ4SjMrbmd6ZUZaNGVIaVBlS1o0dUhrSGVUcDVXbm1kZWM5NkVYcG1lcUo2OVh0WGU0QjhBWHhrZktkODJuMGNmWEY5clg0QWZtSitqSDhOZjNGLzM0QXdnRzZBejRFd2dhbUI2b0ljZ2w2Q3NvTDRnMHFEcW9QVWhGYUVyb1R2aFRDRmdvWGJoZ1dHZ29iYWh4dUhTb2VNaCtDSUlJaHlpTXVJOVlseGljbUtDSW8waW5PS3hZc1JpMkdMdUl2aWpGNk12WXpBak1PTTEyK0x2ZmpzdlFHUXZmZ2t2UU9RRnZpSStWRDhpQWIzanZ2RkZmcys5NU1GOStnRyt5RDd3QlgzUHZlVEJmeVNCL3drRnZpU0IvYysrNU1GK3lEN3dCWDNQdmVUOXo3N2t3VU8rNjBPKzNDTDdQajFkeEwzQXU3Ly81K0FBUDhBWFlBQUU5RDNDUGRXRlJQZzRnYVIrSlFGRTlBbkJoUGdqUDFXRmU3c0tBWU8rMWo0cHZkUUFjclh5OWNEOTEvNHBoWFg5MUEvQnZzZysxQVYxL2RRUHdZTzkwaWdkdmRUMWZjODFQZGNkd0czK1EwRDl5RVczQWFzOTFNRjl5OEdhdnRUQmR3R3JmZFRCZmNWQnBqVkJmc1dCcW4zUEFYM0ZnYVkxQVg3RndhdTkxd0ZPZ1pvKzF3Rit5OEdydmRjQlRvR2FQdGNCZnNXQm45Q0JmY1ZCbTc3UEFYN0Z3Wi9RUVgzRmdicDFSV3A5endGOXk4R2JmczhCUTZuSmZkS01lVkdkdmtRNVRIM1N5MTNvSGNTemUvaDB1VHZFeVBBd2R3Vmk5RTk5eFIrSGhPRHdDL1NCeE14d09jSDl3cVowdDd2R3ZkMSsrNXU5eUFhdzcrNjErWE1Ub3NldU4wRmkxREkrd1NUSGhNcHdPaEVCeE5Gd0MwSCt3TjdRRG9xR3Z0cTkrNmkreVlhU0ZObVNTSkExNHNlRHZkemY5VmlkdmRuMVBjZTFmY3AxSDkzRXJ2WTl5alp4dG4zS05rVHU4RDNXL2c2RmQvUHpkM2NSODQzTjBoSU9qbk9TZDhmRTNmQSt4ejhPaFhwQnZpdytWWUZMUWI4S1B0bUZXRnJxN1VmRTd2QXRLdXR0YldyYVdJZUUzZkFZV3RyWVI0VHU4RDNaL3Y4RlRuT1NlRGUwTTNkM0ViT09EWklTRG9lMlJhMHE2MjF0S3hwWW1GcWEySmhhNnUxSGc3M0puL205NDdoTmZkSzl3L2ZnSGNTd2ZCRjcvZVo3Qk8xd2ZkYUZmc0w3VEQzSi9jcjZPWDNNUjdwNlFjVDArRXRCeE96NnlvSEU5TXIreGNIK3dGMnpyZlF3ckxSbzZpRml4OFRxNlRhQlJPemkxeVdaUHNSTDByN0Nmc1A2R3VMSG9rSEU3VTljVjArUFJyd2tCWGF3N3J2SHZjYk1RYjdBMUphTVROVHc4OGVEdnZqK0tiM1VBSEsyQVBLK0tZVjJQZFFQZ1lPKzRBcytkSUIxT01EOTFFc0ZlQUdRUGNjWmZjcDl5a2E5eUd6OXhuVTl3NGVOZ1pCK3dwaCt4bjdKQnI3TmJmN0x0UDdEQjRPKzRBcytkSUI5eUhqQS9jRkxCWFQ5d3kzOXk3M05ScjNKR0gzR1VIM0NoNDJCdFQ3RHJQN0dmc2hHdnNwWmZzcFFQc2NIZzVFK1ZaM0FmOEF2NEFBL3dCVGdBQUQ5eS8zM1JYWjl3b0ZqUWJZK3dyU3Z6UDNBZ1dOQi9jZHNIRGYreHBaay9jaUJUQUdrdnNpK3htOWNUZjNIR1lGaVFjeSt3SUZEdmNsb0hiM2l0a0I5OEhkQTlqM2loWDNkUHVLM2ZlSzkzUForM1AzaWpuN2l2dDBCZzc3cnliM1lnR205elVEcGlZVjJBYmY5MklGS0FZT1NmZUc0UUhsOTdnRDVmZUdGZmU0NGZ1NEJnNzdzSXZ5QWRmeEE5Y1c4ZklsQmc3N0dtSDVwZ0d2OStnRHIyRVY0UWIza3ZtbUJUVUdEdUovNXZpNDVnSEs4UGU5OEFQM3pIOFY5MUhJOXpiM1lQZGZUdmMxKzFIN1VFNzdOZnRmKzJESSt6YjNVQi9tQlBzSGF2Y045eTczTGF6M0RQY0g5d2lzK3d6N0xmc3VhdnNOK3dnZkRscUw0ZmtBZHdIM2FPc0R3eGI0S3VIN0x2a0FNd2I3UGZzNHgwM056QVdscEpPYml4cU5Cb3VLZFhVZi9GejdNQWNPcll2aCtLL29BZmdsOGdQSEZ2aGI0ZnZ5Qm8zM05mZmxyL2Q4R3ZjT0x0ejdGdnN6Uy9zYWl4N1VXZ1dMdmVYbzFjQmNSUjc3T3Z2dVovdVFHbnFOZVk1NEhnNm9mK24zbDl6M1d1RUIrQzN2QTdQZkZZdmdLL2NrOXlYcTlmY045eDM3QnNjdWxSNzNWUGR4QmNyOE9qWDNnd2V5b0k2TEg0a0hpM1o0ZEhBZSt5NzdTYUpXQmJ3RzR0aGdORDlLVmp3bFJ0aUxIdzdQb0hiM1VkLzMyL1dMZHhMNENld1QyS3IzVVJYMzZ2dFI3UGRSNjk4citFWDdCUWI3MnZ4YkJmY0JvUldOQnhQbzkxejNud1dlcEp1c2l4cU5Cb3VIWm1vZis1VUhEcVIvNmZlMDRmYzQ0UUg0TWZBRHUrRVZpOUlwOXlYM0kvYng5eHozRXlyeSt5bFhaSFdMSG9rR2k0K2JqS0FlblBjcEJmZWk0ZnY0Qm1qNzhzUjJCWXU5cnREbTBVODJOVU5TT0NkVTE0c2VEc2gvNXZlNjMvYys1Z0hHOC9lMTdRUDMxMzhWOXhqcTdQY2Y5eGN5OGZzYVRVdHdZMjBmaVFiM0Nack85d3ozRmh2RHVIU0xINnZnQll0VnFEajdieWo3YlB0SisxMzNCZnNZOXlzZWl1WVZNVWJ5NTc3THU5dmx3a3cxT1ZwTU9oOE9ncUIyK1FEaEFhNzRiQVBoRnZFRzk5UDVFZ1hQL0d3MTk4OEhyNXVPaXgrSkI0dDJjbmRqSGc3UWYrVDR2T1FTeFBCSTdmZUw3REh4RStqRTkyQVYreFQwTS9jaEhoUGs5eWZxN1BjQzFHRzNWYXdmRTlpVWxkYmI2UnIzQ0REVSt4ZjdLVVF3TFVxc1lMbHFIaFBvZUg0dFNQc0FHaFBrK0JhRkZVSkpXMEZBUmIvYzE4bTdvcHNlNmwzMGJUOGFFOWo3a3ZmaEZjRzJ0OW5WdjJKS1FWaFZnSUFlTUxJdHFka2FEc2gvNXZjLzN2ZTY1Z0c4N2ZlMTh3UDNjbjhWOTIvdTkyejNTZmRlK3diM0Yvc3EreGdzS3ZzZit4ZmtKdmNheWN5bHM2Z2ZqUWI3Q1h4SSt3ejdGaHRUWHFPTEgyczFCWXZBYnQ4ZTBmZnRGVEJWeXVIZHU4cmQ1ZEFrTDFsTFdqc2ZEdnVLaS9MM3dQSUI2dkVENnZnbkZmSHlKUWI4amdUeDhpVUdEdnVKSnZkaTk3N3lBZkR4QTdvbUZka0cxdmRpQlNjR2pQZStGZkh5SlFZT243ZjRkaEtzOXdBVHdLejNrQlg0WnZ0a0JlUUgrL3IzS3dXTkIvZjY5eXNGNUFmOFp2dGtCUTczRi9jcjJmY0QyUUhyK0hFRDYvZm9GZmh4MmZ4eEJ2dWZCUGh4MmZ4eEJnNmZ0L2gyRXNiNFp2c0I5d0VUd01hM0ZST2crR2IzWkFYTkIveG05MlFGTWdmMytmc3JCWWtIKy9uN0t3VU9Xb3ZzK0tqbUFmY2k3dFR4QS9jazkxWVY2clFHOXd6M1JaejNPUnIzQXl2VCt3WDdBVWxMaXg3QlJnV0x2clhLemJ0Z1V4NzdCL3MrZGZzc0dvbjdoUlh1N0NnR0R2ZXYreEhhN2RUM2dNN3kyd0hHN1BjTTdmZHQ2QVBHOTRVVisyRDNNZnMyOTNRZTJnZjdQdnNHOXhYM012Y3c5d3IzR3ZjdjhzUmRVbzBmK3dBRyt4STZNeWdtM1RQM0VSLzNwZFJEOTY4RzlVanMrMVg3WVBzMSt6ajdZaDczejR3VnpMdkIwUjd1KzRBbUJrZGJ2OHdmRHVXZ2R2ZGYzZmZZN0l0M0VwUDQrQlBZK0prVzhnYjdrdmxXQlNNRys1TDlWZ1h4QnRIM1h3WDNuZ1lUNlBzWCtDb1ZpNXBMbDJjZTJmdDBCZnRxQnRyM2RBV1hyNXZMaXhvTzY0dmg5NFhkOTJmaEV1dnU5NUR3UXZBVDlPc1c5NUVHOXhEeXovY1oybUhSUWFFZmpRY1QrTUducmNMUUd2Y0dOYzM3Q3g3N2l3YnUrNzBWOTJmM0pnZlBzV0ZOVFdOZVN4LzdLUHZYRmZlRjl6SUhFL1RWdTFwRFExNWJQeDhPOTB4LzV2aTU1UUc3OFFPNzkva1YrMlAzS2ZzMjkyajNSZXozQklzZVZ0SUZpell2K3huN01TTDNGUGNyOXlyeTl3ejNNdmNPM1Q2TEhyelZCWXMwNlBzKysySDdMdnN3KzJFZUR2ZGVpK0g0cXVFQjYrNzRHL0VENnhiM2ZnYjNiUGNpOXhiM2RQZHoreUwzRmZ0c0gvdCtCdTc5QUJYNHF2Y1VCL2N5OUM3N1FmdENJeTM3TXg4T3Jvdmg5M2ZoOTNIaEFldnVBK3NXK0QvaCs5ejNkL2VSNGZ1UjkzSDN5K0g4TGdZT2VxQjI5OExoOTN6aEFldnVBK3NXN3ZmQzk0dmgrNHYzZlBlMjRmd1pCZzczY24vbVVYYjNvZUgzcGVVU3ZQSDRZT1VUdkx6MzloWDdiUGN4K3lyM1V2Y2cyT0dMSG8wR0UzeUxpbng4SDEvaTkvZjdZVFgzQndjVHZDVUhpejB6K3c3N0tQc0U5d1gzT1BjcjcvY045enIzRE5wR2l4NjkxUVdMTStEN1BmdGkreTc3TlB0Z0hnNzNicUIyOThyaDk4cDNBZXZ1K0FMdUErc1c3dmZLK0FMN3l1NzVWaWo3eXZ3Qzk4b29CZzc3aTZCMitWWjNBZXZ1QStzVzd2bFdLQVlPaW4vbStMSGhBYW50OTNMdUE2bjNYeFg3TFBWTTh2TDJ5ZmN0SHZpTCs2azE5MGI4TkFjdVZHdFVVMU9zNng2cEtRY080S0IyOTlqZzk3MTNBZXZ1QStzVzd2Zlk5QWIzVVB2WUJmY0VCdnR1K0FVRmpRZjNZZmZqQmZzQkJ2dEcrNzBGSXZlOUtBWU9nb3ZoK1FCM0FldnVBK3NXK0RQaCs5RDVBQ2dHRHZmY29IYjNFL0g0Y1hjQjFmbGlBOVVXN2dhdCtGRUZqcmFLeW9zYWpRYUxvVWViWlI3M0lQdlNCZU1HOXlIMzBnV2NzcURNaXhxTkJvdUpUbzVnSHE3OFVRWHRCbEw1VmdVakJ2czIvQklGZTJSNFU0c2FpUWFMZU1ON3NoNzdOdmdTQlNNR0R2ZHZvSGI1Vm5jQjYrNzRBKzRENnhidStGNEdzNFRLaXg2TkJvdXNTNlZrSHZmUC9GNEY3UGxXS1B4ZkJtU1NUSXNlaVFhTGFzdHhzUjc3enZoZkJTa0dEdmV2ZitiNHVlVUJ1L0g0bmZFRHUvZjZGZnRrOXpQN052ZGc5MkQzTXZjMjkyVDNYL3N5OXpIN1lQdGcrelA3TWZ0Zkh2RVc5eTczQ2ZjSTl5VDNKUGNJK3dqN0x2c3ord2o3RFBzayt5VDdDZmNNOXpNZUR0Q2dkdmVaNGZlbDRRSHI3dmVzOEFQckZ1NzNtZmN6QnZjVjZPWDNHdmNhTHVMN0ZSLzdsZ2J1Ky9zVjk2WDNKQWZmdjFrMk5sZFdOaDhPOTd0LzV2aTU1UUc4OGZpZDhRTzg5L2tWKzJMM012czM5MkRoMkthOHlCN2RPY1hKTjlzRnZzbXIzZVFhOTJEN012Y3grMkg3WVBzeSt6SDdZQjd4RnZjdzl3YjNCL2NtOXlmM0J2c0grekJOZDFCclh4NDYzVkZOM2pvRmFtSlFlRlliK3liN0J2Y005eklmRHZLZ2R2ZXQ0ZmVSNFFIcjd2ZWY4QVByRnU3M3JmY3JCdmNwKzYwRjl3UUcreXIzcGdWK29vT1VpeHFOQjlpa3ZkZmxHdWhjMGtPbUhwVndiSkZCRy90c0J1Nzc1eFgza2ZjR0I4S2loWUdlSDY5M24yWlhHanhiV2o0ZURwTi81L2kyNXdIRjcvZUc3d08xM0JXTDN5NzNLdmNnMytYM0FSNzNlZnZxWlBjbUdzUEF1dGJsekU2TEhyamRCWXRHMHZzWCt4a3NOUHNDSHZ0dDkrcXMreTBhU0ZObVNTSkExNHNlRHNLZ2R2a0E0UUgzaSs0RDk0c1c3dmtBOTRiaC9OczE5NFlHRHZkU2YrYjVCM2NCNGU3Myt1NEQ0ZmVPRmZzeDl3VWk5em4zT2ZjRjlQY3hIdmhjS1B4YUIvc0NSRXo3QWZzQVJjcjNBQjc0WENnSER1bUw5d0l5ZHZsV2R4S1IrUUFUY1BlZkZ1NEc5NWo1VmdVaUJoT3crMFg4aHdWK1pYMVFpeHFKQm90OXhuNnhIdnREK0ljRklBWU8rQzZMOXdVdmR2bFdkeEtzK2djVGNQaEErVllWRTdEN0h2eWFCWUZraG1lTEdva0dpNGV3Z3JFZSt4SDRtZ1VsQnZkSS9WWUY5d2NHOXc3NFhnV1h1SlRDaXhxTkJvdVVWSmRlSHZjTy9GNEY5d2NHOTAzNVZnVWxCdnNXL0pvRmdXV0lab3NhaVFhTGhxK0JzaDc3SHZpYUJRN1ZvSGI1Vm5jQm9mak1BNkVXOXdNRzl4VDNiUVdpc3A2MWl4cU5Cb3VoWXFKakh2Y1UrMjBGOXdRRyszUDRBUGRsOStvRit3WUcrd1A3VXdWMFpIZGVpeHFKQm90MHVYV3hIdnNEOTFNRit3WUc5Mlg3NmdVT3ZhQjIrVlozQWZlSjdnUDNpUmJ1OTc4Rzk0RDRLd1g3QkFiN0ZmdDhCWFZqZGxxTEdva0dpM2E5ZGJJZSt4ZjNmQVg3QkFiM2dmd3JCUTdRaStINHF1RUJ0UGlhQTdRVytKcmgrK29HYVhpSml4K05CNHVqcEtheUh2Zm8rSDhGelB5RU5mZlVCNjJlam9zZmlRZUxjM0p3WXg3NzZQeCtCUTc3Z1N6VitUL1VBZkRnQS9Bc0ZmYzUxVHY1UDl2VSt6a0dEdnNhWWZtbUFhZjM2QVAzcm1FVjRRYjdrdm1tQlRVR0R2dUFMTlg1UDlRQjl3amdBNjUyRlVIM092blMrenBDM1AwL0J3N1crVlozQWRENFlnUFE5NHNWNHdiM0kvZjA5eVQ3OUFYaUJ2dGIrRjhGVEFZT3d6M1pBYWY0cmdPbkZqMzRydGtIRG1UNWgvY1RBZmMxOTBVRDk1VDVoeFhkQmtMM0V3VWpCZzZCZjlsZWR2ZUgxUGNNM1JLdTdmZUE1Uk84cnZjaUZTYmdWdUwzRGJUdml4Nk5CaE44aTRsNmRCOWI1ZmZVQi9jVVE5SDdGUHNJUWsrTEhyTkVCWXZLdk5uTHVtODRIb0oxQnhPOE52dHdoUHM3SCsyUUZlYjNHSkRVSHFSN0JrQldOVGxNYTdPMEhnN0pmOTVFMHZmKzRQZFFkeExYN1BleTdSTjgxeGJuQmhPOHNBZWhpWnVMSG8wR2k3azA5d1gzR2V6ejl6WDNNVFgzQVBzYyt3dGdOWXNlaVFhTGpaMmtIL2Q3S2dmcC9Gc1Y5eFhSd05mZnhrVDdBdnNIU1VrN0sxemw1UjRPbEgvZjkvN2ZBYlB1QTdQM2tSWDdMUGNFK3dYM00vY1kwZHlMSG1UU0JZdE5SeTBpUWRyeTg5WFg4ZUhCVVlzZXVjOEZpMHpWK3hQN00vc0Urd2Y3S2g0T3luL2ZXSGI0UnQvM1VIY1N0dTczc3V3VHZMYjNrUlg3TWVIN0FQY2Q5eEcwNllzZWpRWVRmSXVLZlhjZlcrZjVWaXI3ZmdkNGpYeUxIb2tHaTJUYit3a2VFN3o3R2l3ait6VWY3aGIzQjgzTjIrdTZNVEg3RlVSV1FEZFEwdmNDSGc2Y2Y5LzNPOVQzRmRnQnRPLzNwZTREdFBlUkZmc3E5d0g3Qi9jejl3M1cwNHNlWTlJRmkweFFOREU4dy9jRGhoNzRCUWFManFpWTl4Yy85ZnNqK3lUN0FTUDdOUi95eGhYZW1jZTUxUnZNd1dFMGpoOE8rMTZnZHZnNTJmY1UzNGgzRXZMckUranlGdXY0T2ZjTTJmc01vUWJwMEpld21wV0ppeDRUMk40SEUraUxmSTUxUy9zU2R2czdIbk5NUGNvSERzTDdadC8zR04vMzdOOUF5aEsyN2ZldDZoUHM5dzB2RldzL0JYSzh5bnJJRy9jVTl4UEw5enNmRTl6NGVTNWNCNEtNaElzZWlRWVQ3SXRtMXZzTyt5QTYrd0Q3SmZzbTRQc0Y5eUhVdXFpOXFSNk5Cb3VLZTNzZlpnY2tRMlF6UDB5dGl4NzNPL2RLRlRCVDAvVHl2Y3ZqMnN0bCt4ajdHRXRoUlI4T3pLQjIrRUhrOTFCM0FkZnM5NXpzQTljVzdQZUJCcU9Ob3BHZkh0U2d5ci9YRzl5YVUwUWYrOExzOTlnSDl4VlV6UHNMSmt0TFduVWVpUWFMaloyakgvZVhLZ2NPKzdXZ2R2aU9kL2NON2dIWDdBUFcrUE1WN2U0cEJvejlWaFhzK0k0cUJnNzd0dnRpMy9rSWQvY043Z0hYNndQVytQTVY3ZTRwQm96N1hCWDhtUWNvUTM5bWZvS01peDQ0QjR1WWlhREs5eGFmOXowZStKOEhEbitnZHZlQzNmZE9kL2R3ZHdIWDdBUFhGdXozZ3RRRzl5ejdnZ1gzQlFiN1QvZXRCWTBIOXp6M2N3WDdBZ2I3SHZ0T0JVVDRGaW9HRHZ1bGgrTDVBM2NCMGV3RDBmY2VGZnNUM0h6Q25KcU5peDdoQjR1RGlvSnRjNWJJSHZpN0tnY08rQXlnZHZnbTh6L2pFdGZzOTRQczk0UHNFN3pYRnV6M2V3YWlqS0tRbng3VG5yL0kxUnZabFU1SkgvdkQ3UGQ3QjZXTm9wQ2dIdENkd01mU0c5ZVpVMFFmKzhQczk5Z0g5eFZXelBzR09VVlZUbThlaVFiWGVsbXlOaHM4UkZKUWN4K0pCaFBjaTQyY254L09MUWNPektCMitDYnpQdVFTMSt6M25Pd1R1TmNXN1BlQkJxU05vcEdmSHRTZ3liN1lHOXlhVTBRZis4THM5OWdIOXhWVXpQc0wrd0pQUTE5M0hva0dFOWlMalp5Zkg4NHRCdzdoZjkvMy90OEJzdTczOE80RHN2ZVNGZnN1OXc3N0JQY3I5eXYzRHZjRTl5NzNMZnNPOXdQN0svc3Irdzc3QS9zdEh1NFc5TnJXNnV2WlFDSWhQVDhyTER6WDlSNE95WC9lOS9mYlF1QVMxK3ozc3UwVHVOZjdYQlhzOTNjR3BZbWRpeDZOQm91M09QY0Q5eGpzOC9jMTl6RTE5d0Q3SFBzVFlDK0xIb2tHRTlpTGpaeWZIN1l5QituN2t4VVR1UGNWMGNEWDM4WkUrd0w3QjBsSk94NFQyQzVaNWVVZkRzcC8zL2Y5MUVQZkVyYnU5N0xzRTdpMjk1RVYrekhoK3dEM0hmY010ZUtMSG8wR2k0bDVjUi83ZSt3SEU5ajVWaTlsQjNlTWZJc2VpUVlUdUl0ZzRQc0oreG9zSS9zMUh1NFc5d2ZOemR2cnVqRXgreFZFVmtBM1VOTDNBaDRPK3plZ2R2ZzE2b1YzRXRmc0U5RFhGdXozWXdhcWpxcVVxQjdXb3NTM3lSdWFtSWlMSCtzSGkzK05majFRVVVGMEhva0dFN0NMalp5Z0grTXRCdzR4ZjkvMy90OEJ2dTczTmU0RHJza1ZpODlCOXhEM0E5UEszeDczT3Z1WWQrWWF0N1NkdGR1NFhvc2VzdFFGaTFmRCt3TW1PVmN2SHZzNTk1aWVMaHBpWVhWaE0xTEdpeDRPKzBpSDRmZm4yUUhzN0FQczkwMFYrejMzRlhmTW41bU5peDdoQjR1Q2lYMW1SSmp3SHZkMTl3N1ordzczSmkzN0prWTl6UWNPeDMvbFVuYjRqbmNTME96M2wrd1R1TkQzU2hYN0dzWlA5d2J1emMyOW9CNk5CaE40aTRsN2RoOUk2ZmlPS3Z1QkJ4TzRKMDR3SkRwOXc5RWU5OElxQnc1bmkrcEJkdmlPZHhLUytId1RjUGRZRnZjRUJ2ZFArSTRGSlFZVHNQc1ArK29GYjRHRVlvb2JpUWFLaGJTbmdSLzdEL2ZxQlNRR0R2ZW9pK3o0TEhlZ2R4S2MrYUFUc1BkSUZ2Y0FCdlAzMlFXVHBaR29peHFOQm91UmJwTnhIdlQ3MlFYMkJ2YzMrSTRGSlFZaCsvY0ZnM0dIYjRzYWlRYUxoYWVEcFI0VDBQc0I5L1lGTWdiN0F2djJCWU54aG0rTEdva0dpb2VucFlNZkU3QWk5L2NGSkFZT2JhQjIrSTUzQWFINFpBUDNrL2RaRll1VGU1Si9Idlg3UFFYM0FnYjdRUGVZOXpmM2lnWDdBd1l0K3k0RmczNkNlb3NhaVFhTGdweURtQjR0OXk0Rit3TUc5emY3aXZ0QSs1Z0Y5d0lHOWZjOUJaS1hrNXVMR2c1disyYmYrUXgzQVkzNGlnT1ErMGNWaTdSc3hOTEp0Tm1xSHZlQitPa0ZJZ2I3RC92Z0JZSnhnMm1MR29rR2k0S3VnYVVlK3hQMzN3WDdBUWIzYVB5SWNsRUZYWGhxYjJRYmJHK2dpeDhPZG92ZTkramVBYkw0U1FPeUZ2aEozdnVWQm1wNmlZc2ZqUWVMb1orZ3BSNzNrL2ZWQmNQOE5UajNnUWVzbTQyTEg0a0hpM2QzZFhBZSs1UDcxQVVPKzFBcDEvZkU0ZmU2MWhLODVJZmdFK2ozR3RnVit6UDNCbnU3bVpTTml4N1ZCNHVGaTROeVRwVHJIdmNIQi9JNm80c2VqUWVMM0tmdUgvSUg2OGlVcEpPUmk0c2UxUWVMZ294OVcvc0dlL3N5SGpjSEl6YUVpeDRUOERVSEUraUw0SVFsSHc3N2svc3ora3NCN3VBRDd2c3pGZUQ2U3pZR0R2dFFLZGYzeE9IM3V0WVM5eGZnaCtRVDhLcDFGVUVIaTVTSm1idjNCcHYzTXg3ckIvSGdrb3NlRStqaEJ4UHdpemFTOHgvZkIvY3krd2FiVzMyQ2lvc2VRUWVMa0l1VXBNaUNLeDRrQnlqY2I0c2VpUWVMT25Na0gvc0hCeXRPZ25LQ2hvdUxIZzdSOTF6V29kY1N6dHIzMDlvVDhNNzNZQlhhQnJTYXY3OGUxNVlxOUJzVHNPSEF2L2NKSHp3R1lYMVhWaDVBZ08waUd4UHdORlpXK3dnZkR2dU4rQzNzRXVudS8vK2dnQUQvQUYyQUFCUEE2Zmd0RmU3c0tBYjlWZ1FUb084R2hmaVVCUlBBTkFZT3NYNzNSREhsK0JIM1FoTEE3dmNFMGhPNDk1eCtGZElHRTNqaEIrbVZ5ZEdyMVFnVHVET3VCVkp5WUdGS0d5aFkydmNEOXdEQjN1dk50V0JUcEIvanJXbmVTY1l6bUJuZlJEY0greGg1UFBzSyt5VWEreVRhK3dyM0dIa2VEc0NMNGZkOTBmZUQ1UUgzQ2U4RDFQZlRGYmY3ZlU0MStIcmgrOW4zZmZkTTBmdE05eGdHeHJlNzFjaTdZSXNleE5BRmkwbkxKdnNTTURuN0F4NzdIRjhIRHRDZ2R2ZGJ5dURLOTd4M0FmZVI3d1BsOSs4Vjl4d0dwbHNGWnZzM1RQYzMrMXZ2OTF2M05zcjdOckFIcHJzRjl4dktKUWIzT3ZlOEJmc0ZCdnNMKzNBRmRWeDJWSXNhaVFhTGRzSjF1aDc3Q3Zkd0Jmc0ZCdmM1Kzd3RkpBWU9LMDNjZ25iNUhOd1N5dDMzS3QwVGVQY2Y5d01WMndaSCtCVUZoNXFKbUpjYXo3cXN4OEt6YVlzZXVjc0ZpMVMrTmZzS1JFRXFmSTE3ajN3ZWR2eVVGUk80aThGWTR2Y0owdFR1bVltYWlKc2VSZmdhQlR3R3pmd01CWTk2alh4K0drVmNhRkJUWXJDTEhnNWsrYUh3QWZjUzIrTGJBL2U1K2FFVjIvQTdCdnM3SmhYYjhEc0dEdmV2ZjgvcjBQZWEwTzNQQWNIVTU5ZjRJOVFEd2ZmMUZmdGY5ekw3TnZkWjkxdjNNL2MyOTEvM1gvc3o5emI3Vy90Wit6TDdOdnRmSHRRVzl6djNEL2NXOXpQM05mY1EreGI3Ty9zNyt4RDdGdnMxK3pQN0QvY1c5enNlNTRvVklkY3Q5dzMzQjd2dWl4NU9yQVdMYWt4Sk9tREgwdEM0eWRyTXJVeUxIc2lzQll0Yjd2c0grdzAvTENJZUR2c0k5NTNFeDhic3Z0REZBZFhUOXhiUEEvZEsrQklWektiQWl4K05YYy8zWFFiY1g3ZzRQMTVtaXg2b1dnV0xzNmUyc0taN1hCNkZnUWRWK3hxSUlFekNhY0FmbXNZVmFubWZvcjdYanJFZmw0TUdZVzVjWFI3N0VQdEVGZmVueFB1bkJnNmQyUGd2QWJmNFlnUDNpZmV1RmZjNCsyRUY3QWI3T1BkaDl6ajNZZ1VxQnZ0ZC9DOFY3QWI3T1BkaDl6ajNZZ1VxQnZzNCsySUZEdGYzNk5rQitGemNBOGYzNkJYNElQdFIzUGVmL0hFR0R2ZXZmOC8zbEwvM0VjSDJ6d0hCMVBjMDB2Y04wL2NqMUFQQjkvVVYrMS8zTXZzMjkxbjNXL2N6OXpiM1gvZGYrelAzTnZ0YisxbjdNdnMyKzE4ZTFCYjNPL2NQOXhiM00vYzE5eEQ3RnZzNyt6djdFUHNXK3pYN00vc1A5eGIzT3g3M05QdFBGZEwzSnNnRzBmc21CZGtHUS9jZkJZS2NoNCtMR28wSHFwT3hyY1VhMFZ1NFJCNzdKUWJTKzBjVjl4SEhCN0NqZFdSamMzTm1IdzVrK2FUUkFmY085NU1EOXc3NXBCWDNrOUg3a3dZTyt5bjRPdFgzS2RRQnR0ajNLTmtEOTFiNE9oWGZ6ODNkM0VmT056ZElTRG81emtuZkg5VUVZV3VzdExTcnJiVzFxMmxpWW10cVlSOE85eVA3UWRuM0NIYjNpdGtCOThEZEE5ZjNpaFgzZFB1SzNmZUs5M1BaKzNQM2lqbjdpdnQwQnB2OE54VTkrSVhaQnc3N0tmZzd6ZmZNMEFIM2w5Y0R2Zmc3RmZlNHpmdHBCcEhwOTF5Vjl5WWEyazIvT1M5ZVE0c2V2RjRGaTY2N3ZMV3BiMlllSi90b2cvczlHb0NOZm94L0hnNzdLZmd4MFBjbnhQYk9BZmVmMXdQM1QvZ3hGZWZMejlqYlVySlBsQi8zQWZjU0JidjdvMGozSVFlY25vNkxINGtIaTN4K2dvQWVNaVNiWlFXdEJyaTNjbDFmWW10aFNXZTlpeDloVmdXTHVVbndIZzVrK1lmM0V3SDNOZmRGQS9jMStZY1YzQWJyOXhNRkl3WU8zSC9sVW5iNGpuY1MzdXozbCt3VHVONzdYQlhoOXlFR3FJUzhpeDZOQm91amJNNzNIN3IzQ0lzZWpnWVRlSXVKZW5rZlJ1bjRqaXI3Z1FjVHVDZE9NQ003ZmNQUkh2ZkNLZ2NPdi9rQTRRSDNyTmJKMVFQM3JGa1Yxdmt5OTFqaCs2UUcreFVnSnZzWCt4ZjNBQ1gzRlIvM0hmdTNGZFg0K1VFR0R2dWI5NFB5QWVQdUErUDNneFh1OGlnR0RtVDdZOFhKc0FIM21jNEQ5MitpRlc3N0F3V0xsSXlVcXFHQmRuUjBnM0oxZDVLTEhsRUhpNktFcTc2K29jbTJiS1Jpa0I2WHdnV1RCdzc3S2ZnN3pRSDNPTllEMHZnN0ZmZVh6VEQ0QjBjR0lTUzVXcTZ0QlptWWo1U0xHbzBHaTRsL2ZSLzdqUzRIRGtUM25jVEp5L2RoeXdISjAvZFoxQVAzZmZnVUZlblkwZTNxUHRFc0xUOUZMQ25YUmVvZnl3UlVYN2JJeHJlMXdzRzNZVkJPWDJCVkgvc3YrMHNWOTh6RSs4d0dEcDdZK0M4QnZmaGpBL2VRMkJYc0J2YzQ5Mkg3T1BkaUJTb0c5emo3WWdYOEF2dGhGZXdHOXpqM1lmczQ5MklGS2diM09QdGlCUTc0UVl2M1FVbk42ODJlM3ZlaGR4TDNMTmIzNjkzM0V0VVRyZmZrRnZmaytWWUZRQWI3NVAxV0JmdGU5NkVWOTVmTk1QZ0hSd1loSkxsYXJxMEZtWmlQbElzYWpRYUxpWDk5SC91TkxnZjVZL3ZqRmRVR0UyMzJ5QWNUdmMxTzk1dzZCeE52KzEzN3JBVlo5MlFIRTcvN0VzMFZqUWZ0OXhjRm1xQ1pwb3NhalFhTGlHdHhIL3NQQnc3NE80dk45MS9OdHREM2wzY0I5eXpXK04zWEEvZm1GdmZrK1ZZRlFBYjc1UDFXQmZ0Zzk2RVY5NWZOTVBnSFJ3WWhKTGxhcnEwRm1aaVBsSXNhalFhTGlYOTlIL3VOTGdmNHRQdmpGZmU0emZ0cEJwSHA5MXlWOXlZYTJrMi9PUzllUTRzZXZGNEZpNjY3dkxXcGIyWWVKL3RvZy9zOUdvQ05mb3gvSGc3NFRZdjNRVW5ONGRDbDNySEU5czRTOTUvWDk0UGQ5eExWRTZhQTkvQVc5K1Q1VmdWQUJ2dmsvVllGK0prVzFRWVRab0QyeUFjVHRvRE5UdmVjT2djVFo0RDdYZnVzQlZuM1pBY1R0NEQ3RXMwVmpRZnQ5eGNGbXFDWnBvc2FqUWFMaUd0eEgvc1BCeE91Z1B6djRSWG55OC9ZMjFLeVQ1UWY5d0gzRWdXNys2Tkk5eUVIbko2T2l4K0pCNHQ4Zm9LQUhqSWttMlVGclFhNHQzSmRYMkpyWVVsbnZZc2ZZVllGaTdsSjhCNE9NL3RtNWZpbDdCS3k4ZFR1S3VrVDhQZHErQzBWN3V3b0JoUG8rMFA4cWhYN0ErdEU5d1gzQWN6TGl4NVcwQVdMV0dCTVNWdTN3eDczQnZjOW92Y3NHcll0WmdmN0RmdEZldnM1R2c3bG9IYjNYOTMzMk95TGQ5RDNFeEtUK1BnVDNQaVpGdklHKzVMNVZnVWpCdnVTL1ZZRjhRYlI5MThGOTU0R0UrejdGL2dxRll1YVM1ZG5IdG43ZEFYN2FnYmE5M1FGbDYrYnk0c2FaZmNtRmQwR1F2Y1RCU01HRHVXZ2R2ZGYzZmZZN0l0MzBQY1RFcFA0K0JQYytKa1c4Z2I3a3ZsV0JTTUcrNUw5VmdYeEJ0SDNYd1gzbmdZVDdQc1grQ29WaTVwTGwyY2UyZnQwQmZ0cUJ0cjNkQVdYcjV2TGl4cGc5eVlWM0Ficjl4TUZJd1lPNWFCMjkxL2Q5OWpzaTNmUTl4TVNrL2o0RTl6NG1SYnlCdnVTK1ZZRkl3YjdrdjFXQmZFRzBmZGZCZmVlQmhQcyt4ZjRLaFdMbWt1WFp4N1orM1FGKzJvRzJ2ZDBCWmV2bTh1TEd2c2U5eVlWNEFhLzJ3V05Cc0E3QmVBR00vY1RCU1lHRHVXZ2R2ZGYzZmZZN0l0M3pzbVJ5UkwzSnRIM1dkRVQxL2laRnZJRys1TDVWZ1VqQnZ1Uy9WWUY4UWJSOTE4Rjk1NEdFK2Y3Ri9ncUZZdWFTNWRuSHRuN2RBWDdhZ2JhOTNRRmw2K2J5NHNhK3p2M0p4WFJCcW1VcnFrZXRwdEh6aHNUMjgrdHQ5NGZSUVp1Z21kdEhtQjd6MGdiRStkSGFXQTNIdzdsb0hiM1g5MzMyT3lMZCtyd0V2ZFQyK0xiRTk3NG1SYnlCdnVTK1ZZRkl3YjdrdjFXQmZFRzBmZGZCZmVlQmhQdSt4ZjRLaFdMbWt1WFp4N1orM1FGKzJvRzJ2ZDBCWmV2bTh1TEdyajNRQlhiOERzRyt6c21GZHZ3T3dZTzVhQjI5MS9kOTlqc2kzZkV0TSt6RXZkNXY4Mi9FOS80bVJieUJ2dVMrVllGSXdiN2t2MVdCZkVHMGZkZkJmZWVCaFB2K3hmNEtoV0xta3VYWng3WiszUUYrMm9HMnZkMEJaZXZtOHVMR296M0doVzN0S2U1dW1LblgxNWpiMXhkczIrNEg3UUVkMzZabnFDWW1aK2VtWDEyZUgxOWVCOE85K2lMNGZkMzRUYmQ5M1RoRXZnbTdSUFlqeGJ5QmhPNDl4TDN6Z1gzUGZ2TytEL2grOTBHRTlqM2QvZVM0ZnVTOTNIM3pPSDhtQWZITlJXNUJoTzQrM1Q3SEFjTzkwNzdZOFhKOXpveTVFZDIrUkxsRXIzeDk2UE9FNXk5OS9rVisxYjNGL3N2OTFONUhoUE9kejBGaTVTTWxLcWhnWFowZElOeWRYZVNpeDVSQjR1aWhLdSt2cUhKdG15a1lwQWVFNjZUc1FYM081TG45SXNhVnRJRml6WXYreG43TVNMM0ZQY3I5eXJ5OXd6M012Y08zVDZMSHJ6VkJZczA2UHMrSGhPYysySDdMdnN3KzJFZkRxNkw0ZmQzNGZkeDRiejNFd0hyN2dQckZ2Zy80ZnZjOTNmM2tlSDdrZmR4OTh2aC9DNEc5MFc4RmQwR1F2Y1RCU01HRHE2TDRmZDM0ZmR4NGJ6M0V3SHI3Z1ByRnZnLzRmdmM5M2Yza2VIN2tmZHg5OHZoL0M0RzkwRzhGZHdHNi9jVEJTTUdEcTZMNGZkMzRmZHg0YnozRXdIcjdnUHJGdmcvNGZ2YzkzZjNrZUg3a2ZkeDk4dmgvQzRHMmJ3VjRBYS8yd1dOQnNBN0JlQUdNL2NUQlNZR0RxNkw0ZmQzNGZkeDRkYndFdXZ1aGR2aTJ4UDY2eGI0UCtINzNQZDM5NUhoKzVIM2NmZkw0Znd1QnZlWTFoWGI4RHNHRS9iN095WVYyL0E3Qmc3N2k2QjIrVlozMFBjVEFldnVBK3NXN3ZsV0tBYVd2QlhkQmtMM0V3VWpCZzc3aTZCMitWWjMwUGNUQWV2dUErc1c3dmxXS0FhU3ZCWGNCdXYzRXdVakJnNzdpNkIyK1ZaMzBQY1RBZXZ1QStzVzd2bFdLQVl5dkJYZ0JyL2JCWTBHd0RzRjRBWXo5eE1GSmdZTys0dWdkdmxXZCtyd0VxTGJoTzZHMnhQbzZ4YnUrVllvQmhQMDZkWVYyL0E3QnZzN0poWGI4RHNHRHZkeGkrSDNkdDMzZHVFQjl3ZnUrQnZ4QS9jSEZ2ZCtCdmRzOXlMM0Z2ZDA5M1A3SXZjVisyd2YrMzc3ekZBNXhnYnUrM1lWOTNiM0tkMzdLZmQyOXhRSDl6TDBMdnRCKzBJakxmc3pIdzczYjZCMitWWjN6c21SeVJMcjdwclI5MW5SbXU0VDJlc1c3dmhlQnJPRXlvc2VqUWFMckV1bFpCNzN6L3hlQmV6NVZpajhYd1pra2t5TEhva0dpMnJMY2JFZSs4NzRYd1VwQmhQZDl3YTlGZEVHcVpTdXFSNjJtMGZPR3hQcno2MjMzaDlGQm02Q1oyMGVZSHZQU0JzVDNVZHBZRGNmRHZldmYrYjR1ZVd3OXhNQnUvSDRuZkVEdS9mNkZmdGs5elA3TnZkZzkyRDNNdmMyOTJUM1gvc3k5ekg3WVB0Zyt6UDdNZnRmSHZFVzl5NzNDZmNJOXlUM0pQY0krd2o3THZzeit3ajdEUHNrK3lUN0NmY005ek1lOTNMNElSWGRCa0wzRXdVakJnNzNyMy9tK0xubHNQY1RBYnZ4K0ozeEE3djMraFg3WlBjeit6YjNZUGRnOXpMM052ZGs5MS83TXZjeCsyRDdZUHN6K3pIN1h4N3hGdmN1OXduM0NQY2s5eVQzQ1BzSSt5NzdNL3NJK3d6N0pQc2srd24zRFBjekh2ZHUrQ0VWM0Ficjl4TUZJd1lPOTY5LzV2aTU1YkQzRXdHNzhmaWQ4UU83OS9vVisyVDNNL3MyOTJEM1lQY3k5emIzWlBkZit6TDNNZnRnKzJEN00vc3grMThlOFJiM0x2Y0o5d2ozSlBjazl3ajdDUHN1K3pQN0NQc00reVQ3SlBzSjl3ejNNeDczRHZnaEZlQUd2OXNGalFiQU93WGdCalAzRXdVbUJnNzNyMy9tK0xubHJzbVJ5Uks3OGVqUjkxblI1dkVUM2J2MytoWDdaUGN6K3piM1lQZGc5ekwzTnZkazkxLzdNdmN4KzJEN1lQc3orekg3WHg3eEZ2Y3U5d24zQ1Bjazl5VDNDUHNJK3k3N00vc0krd3o3SlBzayt3bjNEUGN6SHVqNEloWFJCcW1VcnFrZXRwdEh6aHNUNzgrdHQ5NGZSUVp1Z21kdEhtQjd6MGdiRTkxSGFXQTNIdzczcjMvbStMbmx5dkFCdS9IM0h0dmkyL2NjOFFPNzkvb1YrMlQzTS9zMjkyRDNZUGN5OXpiM1pQZGYrekwzTWZ0ZysyRDdNL3N4KzE4ZThSYjNMdmNKOXdqM0pQY2s5d2o3Q1BzdSt6UDdDUHNNK3lUN0pQc0o5d3ozTXg3M3hmZzdGZHZ3T3diN095WVYyL0E3Qmc3Mm9IYjRsM2NCeXZpYkE4ckNGY0pVOTJEM2QvZGgrM2ZDd3Z0ajkzcjNZL2Q2Vk1MN1lmdDQrMkQzZUZSVTkyTDdlZ1VPOTdKLzVrVjIrUlRsZDU4U3ZmSDRuZkVUckwzMytoVVRiUHNHdWlqWFNCNWFSZ1VUbkwxcHVzMEZhY0xOZU5JYjkyRDNNdmMyOTJUM0JWcnRQTXdmdWNzRkU2eGFyVjFNQmFwVlRKMUhHL3RnK3pQN01mdGZIL2tERnZzeit3ajdEUHNrV1Z5WnBHUWU5ODc0U2dXK1c2cEZPeHI4blJiM0x2Y0o5d2ozSkxxNGZuU3hIdnZOL0VjRlc3MXQwZHdhRHZkU2YrYjVCM2ZROXhNQjRlNzMrdTRENGZlT0Zmc3g5d1VpOXpuM09mY0Y5UGN4SHZoY0tQeGFCL3NDUkV6N0Fmc0FSY3IzQUI3NFhDZ0g5NE84RmQwR1F2Y1RCU01HRHZkU2YrYjVCM2ZROXhNQjRlNzMrdTRENGZlT0Zmc3g5d1VpOXpuM09mY0Y5UGN4SHZoY0tQeGFCL3NDUkV6N0Fmc0FSY3IzQUI3NFhDZ0g5MzY4RmR3RzYvY1RCU01HRHZkU2YrYjVCM2ZROXhNQjRlNzMrdTRENGZlT0Zmc3g5d1VpOXpuM09mY0Y5UGN4SHZoY0tQeGFCL3NDUkV6N0Fmc0FSY3IzQUI3NFhDZ0g5eCs4RmVBR3Y5c0ZqUWJBT3dYZ0JqUDNFd1VtQmc3M1VuL20rUWQzNnZBQjRlN0QyK0xid3U0RDRmZU9GZnN4OXdVaTl6bjNPZmNGOVBjeEh2aGNLUHhhQi9zQ1JFejdBZnNBUmNyM0FCNzRYQ2dIOTliV0ZkdndPd2I3T3lZVjIvQTdCZzY5b0hiNVZuZlE5eE1COTRudUEvZUpGdTczdndiM2dQZ3JCZnNFQnZzViszd0ZkV04yV29zYWlRYUxkcjExc2g3N0YvZDhCZnNFQnZlQi9Dc0ZrZmhjRmR3RzYvY1RCU01HRHRDZ2R2Y2g0ZmVsNGZjTWR3SHI3ZmV0N3dQckZ1MzNJZmN6QnZjVzUrWDNHdmNhTCtMN0ZSLzdOUGNNS1FidC9ITVY5NlgzSlFmZnYxazJObGRXTmg4T3ZZVGZVM2I1RHQ4UzErejNBdTZON1hmdUUzVFhGdXo0bndiV3hLL0d5cXRrWkI1Q0ptczRHaE82SVBkSGJEb2FXR04yWDBGVHFvc2VOUWVMdkc3bzQ5Njk4UjczRS90SHI4ckg3NmpzR2hPMDVEelQrd1A3QVNCSyt3OGVEb0YvMlY1Mjk0ZlU5d3pkeVBjVEVxN3Q5NERsRTc2dTl5SVZKdUJXNHZjTnRPK0xIbzBHRTM2TGlYcDBIMXZsOTlRSDl4UkQwZnNVK3doQ1Q0c2VzMFFGaThxODJjdTZiemdlZ25VSEU3NDIrM0NFK3pzZjdaQVY1dmNZa05RZXBIc0dRRlkxT1V4cnM3UWU1dmhFRmQwR1F2Y1RCU01HRG9GLzJWNTI5NGZVOXd6ZHlQY1RFcTd0OTREbEU3NnU5eUlWSnVCVzR2Y050TytMSG8wR0UzNkxpWHAwSDF2bDk5UUg5eFJEMGZzVSt3aENUNHNlczBRRmk4cTgyY3U2YnpnZWduVUhFNzQyKzNDRSt6c2Y3WkFWNXZjWWtOUWVwSHNHUUZZMU9VeHJzN1FlNFBoRUZkd0c2L2NUQlNNR0RvRi8yVjUyOTRmVTl3emR5UGNUWExvU3J1MzNnT1VUdTY3M0loVW00RmJpOXcyMDc0c2VqUVlUZTR1SmVuUWZXK1gzMUFmM0ZFUFIreFQ3Q0VKUGl4NnpSQVdMeXJ6Wnk3cHZPQjZDZFFjVHV6YjdjSVQ3T3gvdGtCWG05eGlRMUI2a2V3WkFWalU1VEd1enRCNkIrRVFWNEFZVHQ3L2JCWTBHRTd2QU93WGdCalAzRXdVbUJnNkJmOWxlZHZlSDFQY00zY2JKa2NrU3J1MWswZmRaMFUzbEU3WkFydmNpRlNiZ1Z1TDNEYlR2aXg2TkJoTjJRSXVKZW5RZlcrWDMxQWYzRkVQUit4VDdDRUpQaXg2elJBV0x5cnpaeTdwdk9CNkNkUWNUdGtBMiszQ0UrenNmN1pBVjV2Y1lrTlFlcEhzR1FGWTFPVXhyczdRZUU3VkFaUGhGRmRFR3FaU3VxUjYybTBmT0d4TzZnTSt0dDk0ZlJRWnVnbWR0SG1CN3owZ2JFN1ZBUjJsZ054OE9nWC9aWG5iM2g5VDNETjNpOEJLdTdaSGI0dHQ2NVJPOGdLNzNJaFVtNEZiaTl3MjA3NHNlalFZVGVvQ0xpWHAwSDF2bDk5UUg5eFJEMGZzVSt3aENUNHNlczBRRmk4cTgyY3U2YnpnZWduVUhFN3lBTnZ0d2hQczdIKzJRRmViM0dKRFVIcVI3QmtCV05UbE1hN08wSGhPN0FQZEIrRjRWMi9BN0J2czdKaFhiOERzR0RvRi8yVjUyOTRmVTl3emR2TFRQc3hLdTdiZS96YitoNVJPL1FLNzNJaFVtNEZiaTl3MjA3NHNlalFZVGYwQ0xpWHAwSDF2bDk5UUg5eFJEMGZzVSt3aENUNHNlczBRRmk4cTgyY3U2YnpnZWduVUhFNzlBTnZ0d2hQczdIKzJRRmViM0dKRFVIcVI3QmtCV05UbE1hN08wSGhPL3dQY1YrRGdWdDdTbnVicGlwMTllWTI5Y1hiTnZ1QiswQkhkK21aNmdtSm1mbnBsOWRuaDlmWGdmRHZmYWY5azkzL2MvMVBjTTNUN1lFcS91OTNubzk1L3RFMit2OXlJVktkdFQ2UGNYdnZDbGxCNk5Canl6MTF2eEcvY00xdE9MSDJQUkJZdE1VVFF3UThUM0JvWWU5LzhHaTQyZGx2Y2VRUGNBK3h3NVRHMVFZeCtKQnNGeVdxNHRHL3NIUlUrTEh4TjNza1FGaThxODE4NjZiemdlZ25JSEUyOGorMXA3K3pJZitEMzNRaFhnbWNLejFSdkp3bVExamg4VHIvemgrejBWM2ZXWjF4NjZmQVpBV0RRNFMyeXl0UjRPbGZ0anhjbjNNMDkyK0UvZkVyVHU5MG5PRTd5MDk1RVYreC9vSXZjY2VSNFQzSGM4Qll1VWpKU3FvWUYyZEhTRGNuVjNrb3NlVVFlTG9vU3J2cjZoeWJac3BHS1FIcE94QmZjUWtNM1hpeHBrMGdXTFRVY3RJa0hhOHZQVjEvSGh3VkdMSHJuUEJZdE0xZnNUSGhPOCt6UDdCUHNIK3lvZkRweC8zL2M3MVBjVjJNajNFd0cwNy9lbDdnTzA5NUVWK3lyM0Fmc0g5elAzRGRiVGl4NWowZ1dMVEZBME1UekQ5d09HSHZnRkJvdU9xSmozRnovMSt5UDdKUHNCSS9zMUgvTEdGZDZaeDduVkc4ekJZVFNPSC9zeTk1OFYzUVpDOXhNRkl3WU9uSC9mOXp2VTl4WFl5UGNUQWJUdjk2WHVBN1Qza1JYN0t2Y0Ird2YzTS9jTjF0T0xIbVBTQll0TVVEUXhQTVAzQTRZZStBVUdpNDZvbVBjWFAvWDdJL3NrK3dFait6VWY4c1lWM3BuSHVkVWJ6TUZoTkk0Zit6ZjNueFhjQnV2M0V3VWpCZzZjZjkvM085VDNGZGpJOXhOY3VoSzA3L2VsN2hQMnRQZVJGZnNxOXdIN0IvY3o5dzNXMDRzZVk5SUZpMHhRTkRFOHcvY0RoaDc0QlFhTGpxaVk5eGMvOWZzait5VDdBU1A3TlIveXhoWGVtY2U1MVJ2TXdXRTBqaC83bC9lZkZlQUdFKzYvMndXTkJoUDJ3RHNGNEFZejl4TUZKZ1lPbkgvZjl6dlU5eFhZNHZBU3RPK3AyK0xiaCs0VC9iVDNrUlg3S3ZjQit3ZjNNL2NOMXRPTEhtUFNCWXRNVURReFBNUDNBNFllK0FVR2k0Nm9tUGNYUC9YN0kvc2srd0VqK3pVZjhzWVYzcG5IdWRVYnpNRmhOSTRmRS9ZLzk3a1YyL0E3QnZzN0poWGI4RHNHRHZ1MW9IYjRqbmZvOXhNQjErd0Q0ZmpYRmQwR1F2Y1RCU01HNFAxV0ZlejRqaW9HRHZ1MW9IYjRqbmZvOXhNQjErd0QzZmpYRmR3RzYvY1RCU01HUFAxV0ZlejRqaW9HRHZ1MW9IYjRqbmZvOXhOY3VoTFg3QlBvMXhicytJNHFCakxVRmVBR0U5aS8yd1dOQmhQb3dEc0Y0QVl6OXhNRkpnWU8rN1dnZHZpT2QvY0w4QktOMjRYc2g5c1Q5UGM5K1BFVjIvQTdCdnM3SmhYYjhEc0dFK2pWL1ZZVjdQaU9LZ1lPdm4vZjk5RFo5NUYzQWJidDk3cnVBN2IzZnhYN0VlRDdEdmNzOTByVDl5ejNHL2NtVC9VMzBSN250WUxJK3g5T1M3RkRwVVNiR1hBOHQ0RzRlN04zR2ZzUVZKVk45MG5idkdxeVg2QlRHWWtHaTJDMU8vc3VPUHNGK3dvZTdZa1YyYnpZOCtIQ1ZFQTFYeWY3QVM1YjJ0MGVEc3lnZHZnbTh6N2t4c21SeVJMWDdHL1I5MW5SWHV3VHJJRFhGdXozZ1Fha2phS1JueDdVb01tKzJCdmNtbE5FSC92QzdQZllCL2NWVk16N0Mvc0NUME5mZHg2SkJoUE1nSXVObko4ZnppMEhFNnFBME5VVjBRYXBsSzZwSHJhYlI4NGJFN1VBejYyMzNoOUZCbTZDWjIwZVlIdlBTQnNUcW9CSGFXQTNIdzdoZjkvMy90L0k5eE1Cc3U3MzhPNERzdmVTRmZzdTl3NzdCUGNyOXl2M0R2Y0U5eTczTGZzTzl3UDdLL3NyK3c3N0Evc3RIdTRXOU5yVzZ1dlpRQ0loUFQ4ckxEelg5UjczRy9mWkZkMEdRdmNUQlNNR0R1Ri8zL2YrMzhqM0V3R3k3dmZ3N2dPeTk1SVYreTczRHZzRTl5djNLL2NPOXdUM0x2Y3QrdzczQS9zcit5djdEdnNEK3kwZTdoYjAydGJxNjlsQUlpRTlQeXNzUE5mMUh2Y1g5OWtWM0Ficjl4TUZJd1lPNFgvZjkvN2Z5UGNUWExvU3N1NzM4TzRUN0xMM2toWDdMdmNPK3dUM0svY3I5dzczQlBjdTl5MzdEdmNEK3l2N0svc08rd1A3TFI3dUZ2VGExdXJyMlVBaUlUMC9LeXc4MS9VZXIvZlpGZUFHRTl5LzJ3V05CaFBzd0RzRjRBWXo5eE1GSmdZTzRYL2Y5LzdmeHNtUnlSS3k3cEhSOTFuUmtPNFQyYkwza2hYN0x2Y08rd1QzSy9jcjl3NzNCUGN1OXkzN0R2Y0QreXY3Sy9zTyt3UDdMUjd1RnZUYTF1cnIyVUFpSVQwL0t5dzgxL1VlRTlXUjk5b1YwUWFwbEs2cEhyYWJSODRiRStyUHJiZmVIMFVHYm9KbmJSNWdlODlJR3hQVlIybGdOeDhPNFgvZjkvN2Y0dkFCc3U2KzIrTGJ2ZTREc3ZlU0Zmc3U5dzc3QlBjcjl5djNEdmNFOXk3M0xmc085d1A3Sy9zcit3NzdBL3N0SHU0VzlOclc2dXZaUUNJaFBUOHJMRHpYOVI3M2J2ZnpGZHZ3T3diN095WVYyL0E3Qmc3c3QrYjNBOW4zQStZQjk2THBBL2VpK0VjVjZlWXRCdnRoKzZ3VitJM1ovSTBHOTJIN3JCWHA1aTBHRHVGLzMxVjIrRW5mZjNjU3N1NzM4TzRUckxMM2toVVRiRGF3UXNWY0htWlhCUk9jdTJpeXdnVjVzYmVBdVJ2M0svY085d1QzTHR4bzBWUzZIN0xCQlJPc1hLMWpWQVdnWTEyWFdodjdLL3NPK3dQN0xSL3VGdlRhMXVxcHFJTitwQjc3WlB1MUJXeXJlTGpBR3Zmd0ZpRTlQeXR3Y1pHV2RCNzNZZmV6QmFkc25HRmFHZzdIZitWU2R2aU9kK2ozRXhMUTdQZVg3Qk84MFBkS0Zmc2F4ay8zQnU3TnpiMmdIbzBHRTN5TGlYdDJIMGpwK0k0cSs0RUhFN3duVGpBa09uM0QwUjczd2lvSDkxRFVGZDBHUXZjVEJTTUdEc2QvNVZKMitJNTM2UGNURXREczk1ZnNFN3pROTBvVit4ckdUL2NHN3MzTnZhQWVqUVlUZkl1SmUzWWZTT240amlyN2dRY1R2Q2RPTUNRNmZjUFJIdmZDS2dmM1M5UVYzQWJyOXhNRkl3WU94My9sVW5iNGpuZm85eE5jdWhMUTdQZVg3Qk8yMFBkS0Zmc2F4ay8zQnU3TnpiMmdIbzBHRTNhTGlYdDJIMGpwK0k0cSs0RUhFN1luVGpBa09uM0QwUjczd2lvSDQ5UVY0QVlUcnIvYkJZMEdFN2JBT3dYZ0JqUDNFd1VtQmc3SGYrVlNkdmlPZC9jTDhCTFE3SkxiNHR1UTdCTzUwUGRLRmZzYXhrLzNCdTdOemIyZ0hvMEdFM21MaVh0MkgwanArSTRxKzRFSEU3a25UakFrT24zRDBSNzN3aW9IRTdiM28rNFYyL0E3QnZzN0poWGI4RHNHRG0vN1p0LzVESGZvOXhNQmpmaUtBNUQ3UnhXTHRHekUwc20wMmFvZTk0SDQ2UVVpQnZzUCsrQUZnbkdEYVlzYWlRYUxncTZCcFI3N0UvZmZCZnNCQnZkby9JaHlVUVZkZUdwdlpCdHNiNkNMSC9kRStVQVYzQWJyOXhNRkl3WU95WC9mOS83ZjkxQjNBZGZzOTdMdUE5ZjdYQlhzOTNjR3BZbWRpeDZOQm91ME9QY0k5eHJwOXdIM01QY3VOUGNEK3g0aFkwVjlmaDZKQm91TW5LUWY5M29xQituOFdoWDNGOUcrMk9ERVFTRDdBVTFET1RKVDEvTWVEbS83WnQvNURIZjNDL0FCOXh2YjR0c0RrUHRIRll1MGJNVFN5YlRacWg3M2dmanBCU0lHK3cvNzRBV0NjWU5waXhxSkJvdUNyb0dsSHZzVDk5OEYrd0VHOTJqOGlISlJCVjE0YW05a0cyeHZvSXNmOTV2NVdoWGI4RHNHK3pzbUZkdndPd1lPNWFCMjkxL2Q5OWpzaTNmdDBSS1QrUGo4UmZlVEU5ejRtUmJ5QnZ1UytWWUZJd2I3a3YxV0JmRUcwZmRmQmZlZUJoUHEreGY0S2hXTG1rdVhaeDdaKzNRRisyb0cydmQwQlpldm04dUxHdnNTOTBNVjk1UFIrNU1HRG9GLzJWNTI5NGZVOXd6ZDVkRVNydTJOOTVOMjVSTzlydmNpRlNiZ1Z1TDNEYlR2aXg2TkJoTjlpNGw2ZEI5YjVmZlVCL2NVUTlIN0ZQc0lRaytMSHJORUJZdkt2Tm5MdW04NEhvSjFCeE85TnZ0d2hQczdIKzJRRmViM0dKRFVIcVI3QmtCV05UbE1hN08wSGhPNmpmaGhGZmVUMGZ1VEJnN2xvSGIzWDkzMzJPeUxkOHpGRXZkSzAvY0wweFBlK0prVzhnYjdrdmxXQlNNRys1TDlWZ1h4QnRIM1h3WDNuZ1lUN3ZzWCtDb1ZpNXBMbDJjZTJmdDBCZnRxQnRyM2RBV1hyNXZMaXhxTTl5SVZ6OHF6MkIrWlEzOEhZRzE1Ym14dW5iVWVtRU45Qno3S1k5QWVEb0YvMlY1Mjk0ZlU5d3pkeE1WUjl4Y1NydTJJMC9jTDAzUGxFN1pBcnZjaUZTYmdWdUwzRGJUdml4Nk5CaE4yUUl1SmVuUWZXK1gzMUFmM0ZFUFIreFQ3Q0VKUGl4NnpSQVdMeXJ6Wnk3cHZPQjZDZFFjVHRrQTIrM0NFK3pzZjdaQVY1dmNZa05RZXBIc0dRRlkxT1V4cnM3UWVFN1dBOXhYNFFCWFB5clBZSDVsREJ4TzVnSDhIWUcxNWJteHVuYlVlRTdWQW1FTjlCeE8xZ0Q3S1k5QWVEdVg3WTliM0xYYjNYOTMzMk95TGR4TDRiTjhUN1BpWkZxT0pCbk40WG1SWEdqWDNDSUtMSHFMV0JZdFVrTEd0dDdHZm5CLzdrdmxXQlNNRys1TDlWZ1h4QnRIM1h3WDNuZ1lUOVBzWCtDb1ZpNXBMbDJjZTJmdDBCZnRxQnRyM2RBV1hyNXZMaXhvT2dmdGoxdmNNMlY1Mjk0ZlU5d3pkRXE3dDkwYmZjZVVUM3ZmTCt3UVZOZmNJZ29zZW90WUZpMVNRc1I4VFBhMjNzWitjSHZmVUIvY1VROUg3RlBzSVFrK0xIck5FQll2S3ZObkx1bTg0SG9KMUJ6YjdjSVQ3T3g4VFhTYmdWdUwzRGJUdml4Nk5Cb3VKZW5RZlVBY1QzbkoyYW1oZUdoTmQrMGIzbHhYbTl4aVExQjZrZXdaQVZqVTVUR3V6dEI0TzkweC81dmk1NWJEM0V3Rzc4UU83OS9rVisyUDNLZnMyOTJqM1JlejNCSXNlVnRJRml6WXYreG43TVNMM0ZQY3I5eXJ5OXd6M012Y08zVDZMSHJ6VkJZczA2UHMrKzJIN0x2c3crMkVlOThqNEloWGNCdXYzRXdVakJnNlVmOS8zL3QvSTl4TUJzKzREcy9lUkZmc3M5d1Q3QmZjejl4alIzSXNlWk5JRmkwMUhMU0pCMnZMejFkZng0Y0ZSaXg2NXp3V0xUTlg3RS9zeit3VDdCL3NxSHZkbDk5b1YzQWJyOXhNRkl3WU85MHgvNXZpNTViRDNFd0c3OFFPNzkva1YrMlAzS2ZzMjkyajNSZXozQklzZVZ0SUZpell2K3huN01TTDNGUGNyOXlyeTl3ejNNdmNPM1Q2TEhyelZCWXMwNlBzKysySDdMdnN3KzJFZTkybjRJaFhnQnIvYkJZMEd3RHNGNEFZejl4TUZKZ1lPbEgvZjkvN2Z5UGNUWExvU3MrNFQ2TFAza1JYN0xQY0Urd1gzTS9jWTBkeUxIbVRTQll0TlJ5MGlRZHJ5ODlYWDhlSEJVWXNldWM4RmkwelYreFA3TS9zRSt3ZjdLaDczQnZmYUZlQUdFOWkvMndXTkJoUG93RHNGNEFZejl4TUZKZ1lPOTB4LzV2aTU1YzN0QWJ2eDkyTGlBN3YzK1JYN1kvY3AremIzYVBkRjdQY0VpeDVXMGdXTE5pLzdHZnN4SXZjVTl5djNLdkwzRFBjeTl3N2RQb3Nldk5VRml6VG8rejc3WWZzdSt6RDdZUjczeVBnL0ZlTHROQVlPbEgvZjkvN2Y1ZTBCcys3M0F1SURzL2VSRmZzczl3VDdCZmN6OXhqUjNJc2VaTklGaTAxSExTSkIydkx6MWRmeDRjRlJpeDY1endXTFROWDdFL3N6K3dUN0Ivc3FIdmRsOS9jVjR1MDBCZzczVEgvbStMbmxzUGNUQWJ2eEE3djMrUlg3WS9jcCt6YjNhUGRGN1BjRWl4NVcwZ1dMTmkvN0dmc3hJdmNVOXl2M0t2TDNEUGN5OXc3ZFBvc2V2TlVGaXpUbyt6NzdZZnN1K3pEN1lSNzN3ZmdpRmZBRzQvY1RCVFlHVmpvRmlRWlgzQVUyQmc2VWY5LzMvdC9JdVYzM0V4S3o3aFBZcy9lUkZmc3M5d1Q3QmZjejl4alIzSXNlWk5JRmkwMUhMU0pCMnZMejFkZng0Y0ZSaXg2NXp3V0xUTlg3RS9zeit3VDdCL3NxSHZkZTk5b1Y4QWJqOXhNRk5nWVQ2Rlk2QllrR0U5aFgzQVUyQmc3M1hvdmgrS3JodlBjVEFldnUrQnZ4QStzVzkzNEc5MnozSXZjVzkzVDNjL3NpOXhYN2JCLzdmZ2J1L1FBVitLcjNGQWYzTXZRdSswSDdRaU10K3pNZmJ2a3hGZkFHNC9jVEJUWUdWam9GaVFaWDNBVTJCZzdvZjk5WWR2aEczN2IzSlJLMjd2ZXk3TkhiRTd5Mjk1RVYrekhoK3dEM0hmY1J0T21MSG8wR0UzeUxpbjEzSDF2bitWWXErMzRIZUkxOGl4NkpCb3RrMi9zSkhoTzgreG9zSS9zMUgrNFc5d2ZOemR2cnVqRXgreFZFVmtBM1VOTDNBaDRUdnZoTitGa1ZsSFNPZDNrYWNJTnhnR3dlMVFhYnJaU25xeHFiaVp1R25oNE85M0dMNGZkMjNmZDI0UUgzQis3NEcvRUQ5d2NXOTM0RzkyejNJdmNXOTNUM2Mvc2k5eFg3YkIvN2Z2dk1VRG5HQnU3N2RoWDNkdmNwM2ZzcDkzYjNGQWYzTXZRdSswSDdRaU10K3pNZkRzcC8zMWgyK0ViZnVNcE05eU1TdHU3M3N1d1RydmUrK01jVjl4WXdCbmlOZklzZWlRYUxaTnY3Q2ZzYUxDUDdOZnN4NGZzQTl4MzNFYlRwaXg2TkJoTnVpNHA5ZHg5YjUvakgxd2NUdHNvL0J4T3UyeW9IRTdZNyt4WUgrekQ4Q1JYM0I4M04yK3U2TVRIN0ZVUldRRGRRMHZjQ0hnNnVpK0gzZCtIM2NlSFowUkxyN29IM2t4UDQ2eGI0UCtINzNQZDM5NUhoKzVIM2NmZkw0Znd1QmhQMDVOa1Y5NVBSKzVNR0RweC8zL2M3MVBjVjJPWFJFclR2cGZlVGcrNFQrclQza1JYN0t2Y0Ird2YzTS9jTjF0T0xIbVBTQll0TVVEUXhQTVAzQTRZZStBVUdpNDZvbVBjWFAvWDdJL3NrK3dFait6VWY4c1lWM3BuSHVkVWJ6TUZoTkk0ZkUvejdpL2U4RmZlVDBmdVRCZzZ1aStIM2QrSDNjZUc0eFJMcjduelQ5d3ZURS9yckZ2Zy80ZnZjOTNmM2tlSDdrZmR4OTh2aC9DNEdFL2IzYkxnVno4cXoyQitaUTM4SFlHMTVibXh1bmJVZW1FTjlCejdLWTlBZURweC8zL2M3MVBjVjJNVEZVZmNYRXJUdm9OUDNDOU9BN2hQc2dMVDNrUlg3S3ZjQit3ZjNNL2NOMXRPTEhtUFNCWXRNVURReFBNUDNBNFllK0FVR2k0Nm9tUGNYUC9YN0kvc2srd0VqK3pVZjhzWVYzcG5IdWRVYnpNRmhOSTRmRSs4QSt3ejNteFhQeXJQWUg1bERCeFAzQUg4SFlHMTVibXh1bmJVZUUrNkFtRU45QnhQdkFEN0tZOUFlRHE2TDRmZDM0ZmR4NGRudEFldnUxT0lENnhiNFArSDczUGQzOTVIaCs1SDNjZmZMNGZ3dUJ2ZEEyUlhpN1RRR0RweC8zL2M3MVBjVjJPWHRBYlR2OXdIaTJPNER0UGVSRmZzcTl3SDdCL2N6OXczVzA0c2VZOUlGaTB4UU5ERTh3L2NEaGg3NEJRYUxqcWlZOXhjLzlmc2oreVQ3QVNQN05SL3l4aFhlbWNlNTFSdk13V0UwamgvN09QZThGZUx0TkFZT3J2dGoxdmNZNGZkMzRmZHg0UUhyN3ZkSTN3UHJGdmZ3aVFaemVGNWtWeG8xOXdpQ2l4NmkxZ1dMVkpDeHJiZXhuNXdmNGZ2YzkzZjNrZUg3a2ZkeDk4dmgvQzRIRHAzN1k5YjNETi8zTzlUM0ZkZ0J0Ty8zSnQ2MzdnTzA5NUVWK3lyM0Fmc0g5ek9ZbFl5TmxoNkpCM0J6Ym1wZkdqWDNDSUtMSHFMV0JZdFRrTEhPNjdleXNSOWowZ1dMVEZBME1UekQ5d09HSHZnRkJvdU9xSmozRnovMSt5UDdKUHNCSS9zMUgvTEdGZDZaeDduVkc4ekJZVFNPSHc2dWkrSDNkK0gzY2VHODl4TUI2KzRENnhiNFArSDczUGQzOTVIaCs1SDNjZmZMNGZ3dUJ2YzZ2Qlh3QnVQM0V3VTJCbFk2QllrR1Y5d0ZOZ1lPbkgvZjl6dlU5eFhZeUxsZDl4TVN0Ty8zcGU0VDdyVDNrUlg3S3ZjQit3ZjNNL2NOMXRPTEhtUFNCWXRNVURReFBNUDNBNFllK0FVR2k0Nm9tUGNYUC9YN0kvc2srd0VqK3pVZjhzWVYzcG5IdWRVYnpNRmhOSTRmK3ovM254WHdCdVAzRXdVMkJoUDJWam9GaVFZVDdsZmNCVFlHRHZkeWYrWlJkdmVoNGZlbDViRDNFeEs4OGZoZzVSTyt2UGYyRmZ0czl6SDdLdmRTOXlEWTRZc2VqUVlUZm91S2ZId2ZYK0wzOS90aE5mY0hCeE8rSlFlTFBUUDdEdnNvK3dUM0JmYzQ5eXZ2OXczM092Y00ya2FMSHIzVkJZc3o0UHM5KzJMN0x2czArMkFlOTJmNEpSWGdCci9iQlkwR3dEc0Y0QVl6OXhNRkpnWU93dnRtMy9jWTMvZnMzMERLMVBjVFhMb1N0dTMzcmVvVDYvY05MeFZyUHdWeXZNcDZ5QnYzRlBjVHkvYzdIeFBiK0hrdVhBZUNqSVNMSG9rR0UrdUxadGI3RHZzZ092c0EreVg3SnVEN0JmY2gxTHFvdmFrZWpRYUxpbnQ3SDJZSEpFTmtNejlNcllzZTl6djNTaFV3VTlQMDhyM0w0OXJMWmZzWSt4aExZVVVmK3g3NGZSWGdCaFBudjlzRmpRWVQ2OEE3QmVBR00vY1RCU1lHRHZkeWYrWlJkdmVoNGZlbDVhekZFcnp4OXdqVDl3dlQzT1VUdjRDODkvWVYrMnozTWZzcTkxTDNJTmpoaXg2TkJoTi9nSXVLZkh3ZlgrTDM5L3RoTmZjSEJ4Ty9nQ1VIaXoweit3NzdLUHNFOXdYM09QY3I3L2NOOXpyM0ROcEdpeDY5MVFXTE0rRDdQZnRpK3k3N05QdGdIdmZ5K0NFVno4cXoyQitaUTM4SFlHMTVibXh1bmJVZW1FTjlCejdLWTlBZURzTDdadC8zR04vMzdOOUF5dERGVWZjWEVyYnRtOVAzQzlPTjZoUG1RUGNOTHhWclB3Vnl2TXA2eUJ2M0ZQY1R5L2M3SHhQV1FQaDVMbHdIZ295RWl4NkpCaFBtUUl0bTF2c08reUE2K3dEN0pmc200UHNGOXlIVXVxaTlxUjZOQm91S2Uzc2ZaZ2NrUTJRelAweXRpeDczTy9kS0ZUQlQwL1R5dmN2ajJzdGwreGo3R0V0aFJSOFQ1NENNK0hrVno4cXoyQitaUXdjVDY0Qi9CMkJ0ZVc1c2JwMjFIaFBuUUpoRGZRY1Q1NEEreW1QUUhnNzNjbi9tVVhiM29lSDNwZVhON1JLODhmZGc0dmM5NVJPL3ZQZjJGZnRzOXpIN0t2ZFM5eURZNFlzZWpRWVRmNHVLZkh3ZlgrTDM5L3RoTmZjSEJ4Ty9KUWVMUFRQN0R2c28rd1QzQmZjNDl5dnY5dzMzT3ZjTTJrYUxIcjNWQllzejRQczkrMkw3THZzMCsyQWU5OGI0UWhYaTdUUUdEc0w3WnQvM0dOLzM3TjlBeXZIdEVyYnQ4K0xsNmhQdjl3MHZGV3MvQlhLOHlucklHL2NVOXhQTDl6c2ZFOS80ZVM1Y0I0S01oSXNlaVFZVDc0dG0xdnNPK3lBNit3RDdKZnNtNFBzRjl5SFV1cWk5cVI2TkJvdUtlM3NmWmdja1EyUXpQMHl0aXg3M08vZEtGVEJUMC9UeXZjdmoyc3RsK3hqN0dFdGhSUjlnK0pvVjR1MDBCZzczY3Z0Zzl5VzY1bEYyOTZIaDk2WGxFcnp4OTJuYjl6dmxFOTI4OS9ZVisyejNNZnNxOTFMM0lOamhpeDZOQmhPOWk0cDhmQjlmNHZmMysyRTE5d2NIRTkwbEI0czlNL3NPK3lqN0JQY0Y5emozSysvM0RmYzY5d3phUm9zZXZkVUZpelBnK3ozN1l2c3UrelQ3WUI0VDMvZkQvREVWbEhTT2Qza2FjSU54Z0d3ZTFRYWJyWlNucXhxYmladUduaDRPd3Z0bTMvY1kzL2ZzMzBES3hQY2pFcmJ0OE5ydzZoUHY5dzB2RldzL0JYSzh5bnJJRy9jVTl4UEw5enNmRTkvNGVTNWNCNEtNaElzZWlRWVQ3NHRtMXZzTyt5QTYrd0Q3SmZzbTRQc0Y5eUhVdXFpOXFSNk5Cb3VLZTNzZlpnY2tRMlF6UDB5dGl4NzNPL2RLRlRCVDAvVHl2Y3ZqMnN0bCt4ajdHRXRoUlIrNCtHMFZncUtJbnAwYXBwT2tscW9lUWdaN2FZSndheHA4alh1UWVCNE85MjZnZHZmSzRmZktkOUQzRXdIcjd2Z0M3Z1ByRnU3M3l2Z0MrOHJ1K1ZZbys4cjhBdmZLS0FiM0pMd1Y0QWEvMndXTkJzQTdCZUFHTS9jVEJTWUdEc3lnZHZoQjVQZFFkOUQzRXdIWDdQZWM3QVBYRnV6M2dRYWpqYUtSbng3VW9NcS8xeHZjbWxORUgvdkM3UGZZQi9jVlZNejdDeVpMUzFwMUhva0dpNDJkb3gvM2x5b0hNYndWNEFhLzJ3V05Cc0E3QmVBR00vY1RCU1lHRHZlYW9IYjN5dUgzQ3M5SDkxUVM5d3J1K0FMdUUrejNDaGJ1OThyNEF2dks3dmlXeXM5TUJoUGM5eEFvQnhQcyt4RDhBZ2NUM1BjUUtBY1Q3UHNRVFVmSkIrNzdDaFgzQ3ZnQyt3b0hEc3lnZHZoQjVMaktUUGNqRXRmczk1enNFOXlQK01jVjAvekg3UGVCQnFPTm9wR2ZIdFNneXIvWEc5eWFVMFFmKzhMczk5Z0g5eFZVelBzTEprdExXblVlaVFhTGpaMmpIL2NJOXhrSEUreksreGtIRTl6YktnY1Q3RHREQnc3N2k2QjIrVlozenNtUnlSSjEwYnZ1dmRFVDNPc1c3dmxXS0FiN0NyMFYwUWFwbEs2cEhyYWJSODRiRSs3UHJiZmVIMFVHYm9KbmJSNWdlODlJR3hQY1IybGdOeDhPKzdXZ2R2aU9kK2JKa2NrU1lORzg3TDdSRTl4ZytOZ1YwUWFwbEs2cEhyYWJSODRiRSs3UHJiZmVIMFVHYm9KbmJSNWdlODlJR3hQY1IybGdOeC8zQy96WUZlejRqaW9HRHZ1TG9IYjVWbmZ0MFFIcjdnUHJGdTc1VmlnR1B0a1Y5NVBSKzVNR0R2dTFvSGI0am5mM0R0RUIxK3dEaWZqMEZmZVQwZnVUQnRuOU9oWHMrSTRxQmc3N2k2QjIrVlozek1VU21kT1Y3cFhURStqckZ1NzVWaWdHRS95OXVCWFB5clBZSDVsRGZ3ZGdiWGx1Ykc2ZHRSNllRMzBIUHNwajBCNE8rN1dnZHZpT2QrVEZVZmNYRW9YVGxleVgweFBlOXhMNDB4WFB5clBZSDVsREJ4UHVmd2RnYlhsdWJHNmR0UjRUM0poRGZRY1QzajdLWTlBZUU5UlovTk1WN1BpT0tnWU8rNHY3WTliM0xYYjVWbmNCNis0RDZ4YWZpUVp6ZUdSa1Z4bzE5d2lDaXg2aTFnV0xWSkN4cmJHeG41d2YrVllvQnc3N3RmdGoxdmN0ZHZpT2QvY043Z0hYN0FPcSt3UVZOZmNJZ29zZW90WUZpMU9Rc2EyenNaNmNIL2lPS3Z5ZkIzVjFkR3BqR3JmNVl4WHQ3aWtHRHZ1TG9IYjVWbmZ0N1JMcjdpN2lFL0RyRnU3NVZpZ0dFK2lSMlJYaTdUUUdEdnUxb0hiNGpuY0IxK3dEMXhicytJNHFCZzdWaHVaS2R2bFdkeExyN3ZkNTd4TzQ5N0tHRmZjQjl4V3o5MkFmK0djbi9HWUgreGM3ZEZFZUUzajdValVWN3ZsV0tBWU9aUHRpMy9jamR2aU9kL2NON2dIWDdQY3U2d1BXK1BNVjdlNHBCb3o5VmhYcytJNHFCdmVPOEJYdDdpa0dqUHRjRmZ5WkJ5aERmMlorZ295TEhqZ0hpNWlKb01yM0ZwLzNQUjc0bndjT2luL20rTEhodlBjVEFhbnQ5M0x1QTZuM1h4WDdMUFZNOHZMMnlmY3RIdmlMKzZrMTkwYjhOQWN1Vkd0VVUxT3M2eDZwS1FmM0lQaVpGZUFHdjlzRmpRYkFPd1hnQmpQM0V3VW1CZzc3dHZ0aTMva0lkK2ozRTEyNUV0ZnJFK2pYK0k0Vi9Ka0hLRU4vWm42Q2pJc2VPQWVMbUltZ3l2Y1duL2M5SHZpZkIvdE4xQlhkQmhQWXY5d0ZqUVlUNkw4NkJkMEdNL2NUQlMwR0R1RDdZUGNsMjNiMzJPRDN2WGNCNis3bzJ3UHJGdTczMlBRRzkxRDcyQVgzQkFiN2J2Z0ZCWTBIOTJIMzR3WDdBUWI3UnZ1OUJTTDN2U2dHOTBqOWtSV1VkSTUzZVJwd2czR0FiQjdWQnB1dGxLZXJHcHVKbTRhZUhnNS8rMkQzSmR0Mjk0TGQ5MDUzOTNCM0FkZnN6OXNEMXhiczk0TFVCdmNzKzRJRjl3VUcrMC8zclFXTkIvYzg5M01GK3dJRyt4NzdUZ1ZFK0JZcUJ2Y3QvWkVWbEhTT2Qza2FjSU54Z0d3ZTFRYWJyWlNucXhxYmladUduaDRPZ3FCMjkzWGQ5MXQzQWRmc0E5Y1c3UGQxMHdiM0l2dDFCZmNJQnZ0SDk2QUZqUWYzUlBlQUJmc0VCdnNsKzFzRlJmZGJLZ1lPZ292aCtRQjMwUGNUQWV2dUErc1crRFBoKzlENUFDZ0drcndWM0Ficjl4TUZJd1lPKzZXSDR2a0RkOUQzRXdIUjdBUFI5eDRWK3hQY2ZNS2NtbzJMSHVFSGk0T0tnbTF6bHNnZStMc3FCNUc4RmR3RzYvY1RCU01HRG9MN1lQY2x4dUg1QUhjQjYrN2Qyd1ByRnZnejRmdlErUUFvQnZjOS9aRVZsSFNPZDNrYWNJTnhnR3dlMVFhYnJaU25xeHFiaVp1R25oNE8rNlg3WVBjbHd1TDVBM2NTMGV4ZTJ4UHcwZmNlRmZzVDNIekNuSnFOaXg3aEI0dURpb0p0YzViSUh2aTdLZ2NUNkxQOWtSV1VkSTUzZVJwd2czR0FiQjdWQnB1dGxLZXJHcHVKbTRhZUhnNkNpK0g0Yi9jbEFldnU3TnNENnhiNE0rSDcwUGtBS0FiM1RCYVVkSTUzZVJwd2czR0FiQjdWQnB1dGxLZXJHcHVKbTRhZUhnNzdoNGZpK0hMM0pRSFI3TkxiQTlIM0hoWDdFOXg4d3B5YWpZc2U0UWVMZzRxQ2JYT1d5Qjc0dXlvSDl6QVdsSFNPZDNrYWNJTnhnR3dlMVFhYnJaU25xeHFiaVp1R25oNE9nb3ZoOTRieTk2ZDNBZXZ1OXdudUErc1crRFBoKzlENUFDZ0c5Mno4RGhYdThpZ0dEdnRhaCtMM2lmTDNwM2NCMGV6VTdnUFI5eDRWK3hQY2ZNS2NtbzJMSHVFSGk0T0tnbTF6bHNnZStMc3FCL2MrL0E0Vjd2SW9CZzZaaStINFEzZjNaWGNCOXd2dUE4ZjNueFhHclFYN3dmZ3o0ZnZROTZNSDl3SEtCZXdIK3dGTUJmZVFLUHZJQjFCcEJRNzdiWWZpK0VaMzkyVjNBZmNCN0FPdjk2Y1YxTFVGKzBjSCt4UGNmTUtjbW8yTEh1RUhpNE9LZ20xemxzZ2U5MjRIM2JvRjdBYzVYQVgzZ0NyN3VBZENZUVVPOTIrZ2R2bFdkOUQzRXdIcjd2Z0Q3Z1ByRnU3NFhnYXpoTXFMSG8wR2k2eExwV1FlOTgvOFhnWHMrVllvL0Y4R1pKSk1peDZKQm90cXkzR3hIdnZPK0Y4RktRYjNnN3dWM0Ficjl4TUZJd1lPektCMitDYnpQdVRJOXhNUzErejNuT3dUdk5jVzdQZUJCcVNOb3BHZkh0U2d5YjdZRzl5YVUwUWYrOExzOTlnSDl4VlV6UHNMK3dKUFExOTNIb2tHRTl5TGpaeWZIODR0Qi9kVzFCWGNCdXYzRXdVakJnNzNiL3RnOXlYYmR2bFdkd0hyN3ZjcjIvY2M3Z1ByRnU3NFhnYXpoTXFMSG8wR2k2eExwV1FlOTgvOFhnWHMrVllvL0Y4R1pKSk1peDZKQm90cXkzR3hIdnZPK0Y4RktRYjNndjJSRlpSMGpuZDVHbkNEY1lCc0h0VUdtNjJVcDZzYW00bWJocDRlRHN6N1lQY2wyM2I0SnZNKzVCTFg3TzNiNGV3VDJ0Y1c3UGVCQnFTTm9wR2ZIdFNneWI3WUc5eWFVMFFmKzhMczk5Z0g5eFZVelBzTCt3SlBRMTkzSG9rR0UrNkxqWnlmSDg0dEIvZEwvTWtWbEhTT2Qza2FjSU54Z0d3ZTFRYWJyWlNucXhxYmladUduaDRPOTIrZ2R2bFdkOUQzRXdIcjd2Z0Q3Z1ByRnU3NFhnYXpoTXFMSG8wR2k2eExwV1FlOTgvOFhnWHMrVllvL0Y4R1pKSk1peDZKQm90cXkzR3hIdnZPK0Y4RktRYjNmTHdWOEFiajl4TUZOZ1pXT2dXSkJsZmNCVFlHRHN5Z2R2Z204ejdreUxsZDl4TVMxK3ozbk93VHJ0Y1c3UGVCQnFTTm9wR2ZIdFNneWI3WUc5eWFVMFFmKzhMczk5Z0g5eFZVelBzTCt3SlBRMTkzSG9rR0U4NkxqWnlmSDg0dEIvZE8xQlh3QnVQM0V3VTJCaE8yVmpvRmlRWVRybGZjQlRZR0RzeWdkdmdtOHo3a3R2Y2xFcHJiZU96M25Pd1R0dGNXN1BlQkJxU05vcEdmSHRTZ3liN1lHOXlhVTBRZis4THM5OWdIOXhWVXpQc0wrd0pQUTE5M0hva0dFOWFMalp5Zkg4NHRCeE82UXZkY0ZaUjBqbmQ1R25DRGNZQnNIdFVHbTYyVXA2c2FtNG1iaHA0ZUR2ZHUrMkhtOXh0MitWWjNBZXZ0K0FUdEErc1c3ZmhlQnJPRnlvc2VqUWFMcTBxbFpSNzN5L3hYQlRHRlFteFhHekFIOXdEM0VMMzNTaC81T3luOFh3ZGtrVXlMSG9rR2lvcHN6SEd4KzgvNFh4Z3FCZzdNKzJYZjl5WjIrQ2J6UHVRUzErejNuT3dUM05jVzdQZUJCcVNOb3BHZkh0U2d5YjdaRzl5WlUwUWYrODhISjBSL1pYNkNqSXNlT0FlTG1ZbWZ5dmNYbi9jOUh2ZnNCL2NWVmN6N0RQc0NUME5mZHg2SkJoUHNpNDJZbXgvV0xRY085NjkvNXZpNTVjM1JBYnZ4OXhyM2svY1k4UU83OS9vVisyVDNNL3MyOTJEM1lQY3k5emIzWlBkZit6TDNNZnRnKzJEN00vc3grMThlOFJiM0x2Y0o5d2ozSlBjazl3ajdDUHN1K3pQN0NQc00reVQ3SlBzSjl3ejNNeDczR3ZnK0ZmZVQwZnVUQmc3aGY5LzMvdC9sMFFHeTdycjNrN251QTdMM2toWDdMdmNPK3dUM0svY3I5dzczQlBjdTl5MzdEdmNEK3l2N0svc08rd1A3TFI3dUZ2VGExdXJyMlVBaUlUMC9LeXc4MS9VZXV2ZjJGZmVUMGZ1VEJnNzNyMy9tK0xubHJNVUJ1L0gzRmRQM0M5UDNGZkVEdS9mNkZmdGs5elA3TnZkZzkyRDNNdmMyOTJUM1gvc3k5ekg3WVB0Zyt6UDdNZnRmSHZFVzl5NzNDZmNJOXlUM0pQY0krd2o3THZzeit3ajdEUHNrK3lUN0NmY005ek1lOTVuNEhSWFB5clBZSDVsRGZ3ZGdiWGx1Ykc2ZHRSNllRMzBIUHNwajBCNE80WC9mOS83ZnhNVlI5eGNTc3U2MjAvY0wwN1h1RTkreTk1SVYreTczRHZzRTl5djNLL2NPOXdUM0x2Y3QrdzczQS9zcit5djdEdnNEK3kwZTdoYjAydGJxNjlsQUlpRTlQeXNzUE5mMUh2ZEQ5OVVWejhxejJCK1pRd2NUNzM4SFlHMTVibXh1bmJVZUU5K1lRMzBIUHNwajBCNE85NjkvNXZpNTViRDNFd0c3OGZpZDhRTzc5L29WKzJUM00vczI5MkQzWVBjeTl6YjNaUGRmK3pMM01mdGcrMkQ3TS9zeCsxOGU4UmIzTHZjSjl3ajNKUGNrOXdqN0NQc3UrelA3Q1BzTSt5VDdKUHNKOXd6M014NzNyL2doRmRrRzYvY1RCU1lHKzNmN0V4WGZCdEwzRXdVMEJnN2hmOS8zL3QvSTl4TUJzdTczOE80RHN2ZVNGZnN1OXc3N0JQY3I5eXYzRHZjRTl5NzNMZnNPOXdQN0svc3Irdzc3QS9zdEh1NFc5TnJXNnV2WlFDSWhQVDhyTER6WDlSNzNXZmZaRmRrRzYvY1RCU1lHKzNmN0V4WGZCdEwzRXdVMEJnNzRPb0xoUHVIM2QrSDNjZUUvNEJLNzhmZmk3Uk91dS9mMkZmdGc5ekg3TS9ka0hoTjJ2TE9Vcmh2NEMrSDczdmQzOTVMaCs1TDNjZmZNNGZ2NkJtaGtsRm9iRTY3N1pQc3grekw3WHgveEZ2Y3U5d0QzRHZjdnM2cURpeDc4cmdlTGJJUmoreS83QVBjTjl6QWVEdmhpZjkvM085VDNEdDgrMkJLejd2ZnY3L2VsN2hQdXMvZVFGZnMwOXc4ajl5ZngxN3ZXdGg2TkJrRzAxbHIwRy9jTjF0T0xIMlBTQll0TVVEUXpQY0wzQklNZStBVUdpNDZvbVBjWFAvWDdJeXBFWGtCakg0a0cxRjlBdWljYit5ZjdEeUg3TkIvNHVjY1ZFOTdlbWNlNTFodk13R0ExamgvOVpFOFZFKzczQXRyVDZlamNSZnNCK3dVN1JTMGVFOTR0UE5IM0FoOE84cUIyOTYzaDk1SGh2UGNUQWV2dTk1L3dBK3NXN3ZldDl5c0c5eW43clFYM0JBYjdLdmVtQlg2aWc1U0xHbzBIMktTOTErVWE2RnpTUTZZZWxYQnNrVUViKzJ3Rzd2dm5GZmVSOXdZSHdxS0ZnWjRmcjNlZlpsY2FQRnRhUGg1RCtCZ1YzQWJyOXhNRkl3WU8remVnZHZnMTZvVjM2UGNURXRmc0U5alhGdXozWXdhcWpxcVVxQjdXb3NTM3lSdWFtSWlMSCtzSGkzK05majFRVVVGMEhva0dFN2lMalp5Z0grTXRCL1RVRmR3RzYvY1RCU01HRHZMN1lQY2wyM2IzcmVIM2tlRUI2Kzd3MitId0Erc1c3dmV0OXlzRzl5bjdyUVgzQkFiN0t2ZW1CWDZpZzVTTEdvMEgyS1M5MStVYTZGelNRNlllbFhCc2tVRWIrMndHN3Z2bkZmZVI5d1lId3FLRmdaNGZyM2VmWmxjYVBGdGFQaDVXL0Q0VmxIU09kM2thY0lOeGdHd2UxUWFiclpTbnF4cWJpWnVHbmg0Tyt6ZjdZUGNsMjNiNE5lcUZkeExYN0JQbzF4YnM5Mk1HcW82cWxLZ2UxcUxFdDhrYm1waUlpeC9yQjR0L2pYNDlVRkZCZEI2SkJoUFlpNDJjb0IvakxRZVEvTWtWbEhTT2Qza2FjSU54Z0d3ZTFRYWJyWlNucXhxYmladUduaDRPOHFCMjk2M2g5NUhodlBjVEFldnU5NS93QStzVzd2ZXQ5eXNHOXluN3JRWDNCQWI3S3ZlbUJYNmlnNVNMR28wSDJLUzkxK1VhNkZ6U1E2WWVsWEJza1VFYisyd0c3dnZuRmZlUjl3WUh3cUtGZ1o0ZnIzZWZabGNhUEZ0YVBoNDgrQmdWOEFiajl4TUZOZ1pXT2dXSkJsZmNCVFlHRHZzM29IYjROZXFGZCtpNVhmY1RFdGZzRTh6WEZ1ejNZd2FxanFxVXFCN1dvc1MzeVJ1YW1JaUxIK3NIaTMrTmZqMVFVVUYwSG9rR0U2eUxqWnlnSCtNdEIrN1VGZkFHNC9jVEJUWUdFOVJXT2dXSkJoUE1WOXdGTmdZT2szL24rTGJuc1BjVEFjWHY5NGJ2QTdYY0ZZdmZMdmNxOXlEZjVmY0JIdmQ1Kytwazl5WWF3OEM2MXVYTVRvc2V1TjBGaTBiUyt4ZjdHU3cwK3dJZSsyMzM2cXo3TFJwSVUyWkpJa0RYaXg3M0d2anJGZHdHNi9jVEJTTUdEakYvMy9mKzM4ajNFd0crN3ZjMTdnT3V5UldMejBIM0VQY0QwOHJmSHZjNis1aDM1aHEzdEoyMTI3aGVpeDZ5MUFXTFY4UDdBeVk1Vnk4ZSt6bjNtSjR1R21KaGRXRXpVc2FMSHZMNFZCWGNCdXYzRXdVakJnNlRmK2Y0dHVldzl4TUJ4ZS8zaHU4RHRkd1ZpOTh1OXlyM0lOL2w5d0VlOTNuNzZtVDNKaHJEd0xyVzVjeE9peDY0M1FXTFJ0TDdGL3NaTERUN0FoNzdiZmZxclBzdEdraFRaa2tpUU5lTEhyTDQ2eFhnQnIvYkJZMEd3RHNGNEFZejl4TUZKZ1lPTVgvZjkvN2Z5UGNUWExvU3Z1NzNOZTRUN0s3SkZZdlBRZmNROXdQVHl0OGU5enI3bUhmbUdyZTBuYlhidUY2TEhyTFVCWXRYdy9zREpqbFhMeDc3T2ZlWW5pNGFZbUYxWVROU3hvc2VrL2hVRmVBR0U5eS8yd1dOQmhQc3dEc0Y0QVl6OXhNRkpnWU9rL3RqeGNuM096RG1SWGI1RWVjU3hlLzNJYzZ0N3hPZnRkd1ZpOVE2OXhtQUhoUFBkejRGaTVTTWxLcWhnWFowZElOeWRYZVNpeDVSQjR1aWhLdSt2cUhKdG15a1lwQWVrN0lGOXhDVzFlRHhHdmQ1Kytwazl5WWF3OEM2MXVYTVRvc2V1TjBGaTBiUyt4ZjdHU3cwK3dJZSsyMzM2cXo3TFJvVHIwaFRaa2tpUU5lTEhnNHgrMlBGeWZjek9kMU9kdmhRM3hLKzd1dk9pZTRUbmE3SkZST2VpOE5OODRFZUU4NTNQUVdMbEl5VXFxR0JkblIwZzNKMWQ1S0xIbEVIaTZLRXE3NitvY20yYktSaWtCNlRzZ1VUemUyVHlzZlpHdmM2KzVoMzVocTN0SjIxMjdoZWl4NnkxQVdMVjhQN0F5WTVWeThlRTYzN09mZVluaTRhWW1GMVlUTlN4b3NlRHBOLzUvaTI1N0QzRXdIRjcvZUc3d08xM0JXTDN5NzNLdmNnMytYM0FSNzNlZnZxWlBjbUdzUEF1dGJsekU2TEhyamRCWXRHMHZzWCt4a3NOUHNDSHZ0dDkrcXMreTBhU0ZObVNTSkExNHNlOXhQNDZ4WHdCdVAzRXdVMkJsWTZCWWtHVjl3Rk5nWU9NWC9mOS83ZnlMbGQ5eE1TdnU3M05lNFQzSzdKRll2UFFmY1E5d1BUeXQ4ZTl6cjdtSGZtR3JlMG5iWGJ1RjZMSHJMVUJZdFh3L3NESmpsWEx4NzdPZmVZbmk0YVltRjFZVE5TeG9zZTYvaFVGZkFHNC9jVEJUWUdFK3hXT2dXSkJoUGNWOXdGTmdZT3d2dGp4Y213MG5iNUFPRVM5NHZ1Yjg0VCtQZUxGcUlHZERNRmk1U01sQjRUOUtxaGdYWjBkSU55ZFhlU2l4OVJCNHVpaEt1K3ZxSEp0bXlrWXBBZUUvaVd2UVdoK1FEM2h1SDgyelgzaGdZTyswZjdZOFhKc0xuaFQzYjRPTmtTN2V5dHpoUHU3ZmRORlN5MFc3cHpIbThoQll1VWpKU3FvWUYyZEhTRGNuVjNrb3NlVVFlTG9vU3J2cjZoeWJac3BHS1FIaFBlbHI0RkUrNkhvSitLbXh1Zm1ZMkxIK0VIaTRLSmZXWkVtUEFlOTNYM0R0bjdEdmNtTGZzbVJqM05CdzdDb0hiNUFPRzg5eE1COTR2dUEvZUxGdTc1QVBlRzRmemJOZmVHQm9yM0d4WHdCdVAzRXdVMkJsWTZCWWtHVjl3Rk5nWU8rMGlINGZmbjJjM2JPL2NpRXV6czA5c1QyT3ozVFJYN1BmY1ZkOHlmbVkyTEh1RUhpNEtKZldaRW1QQWU5M1gzRHRuN0RnY1Q2UGNtTGZzbVJqM05CeFBjOXpIM3NoV1VkSTU0ZVJweGczS0FiQjdWQnB1c2xLZXFHcHFKbTRhZUhnN1pvSGIzeXRmM2Z1RUI5NWJ1QS9IM3loWDNNUHZLN3ZmSzl6VFgrelQzZnZlRzRmemJOZmVHKzM3N01BWU8rekdINGZkRnorblpBZmNDN0FPejk1Y1YwVUVHK3ozM0ZYZk1uNW1OaXg3aEI0dUNpWDFtUkpuckhzNzNDYy83Q2VuM0R0bjdEdmNtTGZzbVJqM05MVVVIRHZkU2YrYjVCM2ZPeVpISkV1SHVsdEgzV2RHVjdoUFo0ZmVPRmZzeDl3VWk5em4zT2ZjRjlQY3hIdmhjS1B4YUIvc0NSRXo3QWZzQVJjcjNBQjc0WENnSEU5MzNBcjBWMFFhcGxLNnBIcmFiUjg0YkUrdlByYmZlSDBVR2JvSm5iUjVnZTg5SUd4UGRSMmxnTng4T3gzL2xVbmI0am5mbXlaSEpFdERzWmRIM1dkRmo3Qk9zZ05EM1NoWDdHc1pQOXdidXpjMjlvQjZOQmhOc2dJdUplM1lmU09uNGppcjdnUWNUcklBblRqQWtPbjNEMFI3M3dpb0h4dFVWRTZxQTBRYXBsSzZwSHJhYlI4NGJFN1VBejYyMzNoOUZCbTZDWjIwZVlIdlBTQnNUcklCSGFXQTNIdzczVW4vbStRZDM3ZEVCNGU2Lzk1Tys3Z1BoOTQ0Vit6SDNCU0wzT2ZjNTl3WDA5ekVlK0Z3by9Gb0grd0pFVFBzQit3QkZ5dmNBSHZoY0tBZjNLOWtWOTVQUis1TUdEc2QvNVZKMitJNTM5dzdSRXREc2p2ZVRqT3dUdXREM1NoWDdHc1pQOXdidXpjMjlvQjZOQmhONmk0bDdkaDlJNmZpT0t2dUJCeE82SjA0d0pEcDl3OUVlOThJcUJ4TzA3L0VWOTVQUis1TUdEdmRTZitiNUIzZk14UUhoN3JyVDl3dlR1KzRENGZlT0Zmc3g5d1VpOXpuM09mY0Y5UGN4SHZoY0tQeGFCL3NDUkV6N0Fmc0FSY3IzQUI3NFhDZ0g5NnE0RmMvS3M5Z2ZtVU4vQjJCdGVXNXNicDIxSHBoRGZRYyt5bVBRSGc3SGYrVlNkdmlPZCtURlVmY1hFdERzaWRQM0M5T0o3Qk9zZ05EM1NoWDdHc1pQOXdidXpjMjlvQjZOQmhOc2dJdUplM1lmU09uNGppcjdnUWNUcklBblRqQWtPbjNEMFI3M3dpb0hFNnNBOTNmUUZjL0tzOWdmbVVNSEU3TUFmd2RnYlhsdWJHNmR0UjRUcW9DWVEzMEhFNnNBUHNwajBCNE85MUovNXZrSGQ4UzB6N01CNGU3cHY4Mi82ZTRENGZlT0Zmc3g5d1VpOXpuM09mY0Y5UGN4SHZoY0tQeGFCL3NDUkV6N0Fmc0FSY3IzQUI3NFhDZ0g5NnF3RmJlMHA3bTZZcWRmWG1OdlhGMnpiN2dmdEFSM2ZwbWVvSmlabjU2WmZYWjRmWDE0SHc3SGYrVlNkdmlPZDl5MHo3TVMwT3k0djgyL3Qrd1R2SURROTBvVit4ckdUL2NHN3MzTnZhQWVqUVlUZklDTGlYdDJIMGpwK0k0cSs0RUhFNytBSjA0d0pEcDl3OUVlOThJcUIvZDN5QlczdEtlNXVtS25YMTVqYjF4ZHMyKzRIN1FFZDM2Wm5xQ1ltWitlbVgxMmVIMTllQjhPOTFKLzV2a0hkOUQzRXdIaDd2ZjY3Z1BoOTQ0Vit6SDNCU0wzT2ZjNTl3WDA5ekVlK0Z3by9Gb0grd0pFVFBzQit3QkZ5dmNBSHZoY0tBZjN3THdWMlFicjl4TUZKZ2I3ZC9zVEZkOEcwdmNUQlRRR0RzZC81VkoyK0k1MzZQY1RFdERzOTVmc0U3elE5MG9WK3hyR1QvY0c3czNOdmFBZWpRWVRmSXVKZTNZZlNPbjRqaXI3Z1FjVHZDZE9NQ1E2ZmNQUkh2ZkNLZ2YzamRRVjJRYnI5eE1GSmdiN2Qvc1RGZDhHMHZjVEJUUUdEdmRSKzJQVzl3em0rUWQzQWVIdDl5SGU5eHJ0QS9mWit3UVZOZmNJZ29zZW90WUZpMU9Rc2JTNXFyNnVIOHUyMHNUM0dCcjRYQ244V2dmN0FrUk0rd0g3QUVYSzl3QWUrRndwL0Z3SCt6SDNCQ0wzT1I2WkJuRnpjV2xoR2c3SCsyUFc5d3psVW5iNGpuY1MwT3ozWk41cjdCTmEwUGRLRmZzYXhrLzNCdTdOemIyZ0hvMEdpNGw3ZGg4OEJ4UGNjM1Z0YUdBYU5mY0lnb3Nlb3RZRmkxT1FzUjhUT3EyM3NhQ2NIdmlPS3Z1QkJ4TmFKMDR3SkRwOXc5RWU5OElxQnc3NExvdjNCUzkyK1ZaMzBQY1RFcXo2QnhONCtFRDVWaFVUdVBzZS9Kb0ZnV1NHWjRzYWlRYUxoN0NDc1I3N0VmaWFCU1VHOTBqOVZnWDNCd2IzRHZoZUJaZTRsTUtMR28wR2k1UlVsMTRlOXc3OFhnWDNCd2IzVGZsV0JTVUcreGI4bWdXQlpZaG1peHFKQm91R3I0R3lIdnNlK0pvRiswYThGZUFHdjlzRmpRYkFPd1hnQmpQM0V3VW1CZzczcUl2cytDeDNvSGZvOXhOY3VoS2MrYUFUdFBkSUZ2Y0FCdlAzMlFXVHBaR29peHFOQm91UmJwTnhIdlQ3MlFYMkJ2YzMrSTRGSlFZaCsvY0ZnM0dIYjRzYWlRYUxoYWVEcFI0VDFQc0I5L1lGTWdiN0F2djJCWU54aG0rTEdva0dpb2VucFlNZkU3UWk5L2NGSkFiM2tOUVY0QVlUckwvYkJZMEdFN1RBT3dYZ0JqUDNFd1VtQmc2OW9IYjVWbmZROXhNQjk0bnVBL2VKRnU3M3Z3YjNnUGdyQmZzRUJ2c1YrM3dGZFdOMldvc2FpUWFMZHIxMXNoNzdGL2Q4QmZzRUJ2ZUIvQ3NGTXZoY0ZlQUd2OXNGalFiQU93WGdCalAzRXdVbUJnNXYrMmJmK1F4MzZQY1RYTG9TamZpS0UraVErMGNWaTdSc3hOTEp0Tm1xSHZlQitPa0ZJZ2I3RC92Z0JZSnhnMm1MR29rR2k0S3VnYVVlK3hQMzN3WDdBUWIzYVB5SWNsRUZYWGhxYjJRYmJHK2dpeC9iK1VBVjRBWVQyTC9iQlkwR0UrakFPd1hnQmpQM0V3VW1CZzY5b0hiNVZuZnE4QkwzUE51STdvTGJFK2ozaVJidTk3OEc5NEQ0S3dYN0JBYjdGZnQ4QlhWamRscUxHb2tHaTNhOWRiSWUreGYzZkFYN0JBYjNnZndyQlJQMDVmaDJGZHZ3T3diN095WVYyL0E3Qmc3UWkrSDRxdUc4OXhNQnRQaWFBN1FXK0pyaCsrb0dhWGlKaXgrTkI0dWpwS2F5SHZmbytIOEZ6UHlFTmZmVUI2MmVqb3NmaVFlTGMzSndZeDc3NlB4K0JmZDUrVVVWM0Ficjl4TUZJd1lPZG92ZTkramUxUGNUQWJMNFNRT3lGdmhKM3Z1VkJtcDZpWXNmalFlTG9aK2dwUjczay9mVkJjUDhOVGozZ1Flc200MkxINGtIaTNkM2RYQWUrNVA3MUFYM1FmaWZGZHdHNi9jVEJTTUdEdENMNGZpcTRkbnRBZmVpNGdPMEZ2aWE0ZnZxQm1sNGlZc2ZqUWVMbzZTbXNoNzM2UGgvQmN6OGhEWDMxQWV0bm82TEg0a0hpM055Y0dNZSsrajhmZ1gzZWZsaUZlTHROQVlPZG92ZTkramU4ZTBCOTJmaUE3SVcrRW5lKzVVR2FucUppeCtOQjR1aG42Q2xIdmVUOTlVRncvdzFPUGVCQjZ5YmpZc2ZpUWVMZDNkMWNCNzdrL3ZVQmZkQStMd1Y0dTAwQmc3UWkrSDRxdUc4OXhNQnRQaWFBN1FXK0pyaCsrb0dhWGlKaXgrTkI0dWpwS2F5SHZmbytIOEZ6UHlFTmZmVUI2MmVqb3NmaVFlTGMzSndZeDc3NlB4K0JmZHkrVVVWOEFiajl4TUZOZ1pXT2dXSkJsZmNCVFlHRG5hTDN2Zm8zdFM1WGZjVEVyTDRTUlBZc2hiNFNkNzdsUVpxZW9tTEg0MEhpNkdmb0tVZTk1UDMxUVhEL0RVNDk0RUhySnVOaXgrSkI0dDNkM1Z3SHZ1VCs5UUY5em40bnhYd0J1UDNFd1UyQmhQb1Zqb0ZpUVlUMkZmY0JUWUdEdnVhb0hiNE9kbjNGTitJZHhMeTdCUG84aGJzK0p3RzZjK1lzWnFWaVlzZUU5amVCeFBvaTN5T2RVdjdFM2I3T3g1elREM0tCdzZxK3dQZitBM1o5MkxmaEhjUzk0Zi9BR0NBQUJQb3AzWVZOd2VMcm9XdXkvY1RuL2M3bWg2ajk2WUY5eERaK3drR2xPb0Y3WlRQbUxFYnFiMkVpeDhUMk44SEUraUxYSkptU3ZzVGR2czdmQjZCSlFVeVBkMEdkUHVlQlNtQ1JuNW1HM0Jsa1lzZkRwUDdZUGNsdXVmNHR1Y0J4ZS9iMjkzdkE3WGNGWXZmTHZjcTl5RGY1ZmNCSHZkNSsrcGs5eVlhdzhDNjF1WE1Ub3NldU4wRmkwYlMreGY3R1N3MCt3SWUrMjMzNnF6N0xScElVMlpKSWtEWGl4NzNGUHRyRlpSMGpuZDVHbkNEY1lCc0h0VUdtNjJVcDZzYW00bWJocDRlRGpIN1lQY2x1dC8zL3Q4QnZ1NjIyN0h1QTY3SkZZdlBRZmNROXdQVHl0OGU5enI3bUhmbUdyZTBuYlhidUY2TEhyTFVCWXRYdy9zREpqbFhMeDc3T2ZlWW5pNGFZbUYxWVROU3hvc2U3dnRTRlpSMGpuZDVHbkNEY1lCc0h0VUdtNjJVcDZzYW00bWJocDRlRHNMN1lQY2wyM2I1QU9FUzk0dnVOOXNUOFBlTEZ1NzVBUGVHNGZ6Yk5mZUdCbzc5T3hXVWRJNTNlUnB3ZzNHQWJCNFQ2TlVHbTYyVXA2c2FtNG1iaHA0ZUR2dEkrMkQzSmNMaDkrZlpFdXpzZzlzVDhPejNUUlg3UGZjVmQ4eWZtWTJMSHVFSGk0S0pmV1pFbVBBZTkzWDNEdG43RHZjbUxmc21SajNOQnhQbzJQeDBGWlIwam5kNUduQ0RjWUJzSHRVR202MlVwNnNhbTRtYmhwNGVEbVQ1aC9jVEFmY0Q5NmtEOXdQNWh4WGdCci9iQlkwR3dEc0Y0QVl6OXhNRkpnWU9aUG1IOXhNQjl3UDNxUVAzVy9tSEZmQUc0L2NUQlRZR1Zqb0ZpUVpYM0FVMkJnNWsrWVBGQWZjSzAvY0wwd1AzanZtREZjL0tzOWdmbVVOL0IyQnRlVzVzYnAyMUhwaERmUWMreW1QUUhnNWwrYVR0QWZkaTRnUDNZdm1rRmVMdE5BWU9aZmw3dE0rekFmYzV2ODIvQS9lTytYc1Z0N1NudWJwaXAxOWVZMjljWGJOdnVCKzBCSGQrbVo2Z21KbWZucGw5ZG5oOWZYZ2ZEbVQ3WTlZUzl6N2VFOEQzUHZzRUZUWDNDSUtMSHFMV0JZdFRrTEc0Mk1HTEgwNllCWXNvVkRzZkRtVDVoY21SeVJMYzBmZFowUk53M1BtSUZkRUdxWlN1cVI2Mm0wZk9HeE93ejYyMzNoOUZCbTZDWjIwZVlIdlBTQnNUY0VkcFlEY2ZEbVQ1aC9jVEFlSDMzQVAzaFBtSEZka0c2L2NUQlNZRyszZjdFeFhmQnRMM0V3VTBCZzczTEl2aDk0RGE5Mi9oQWVQdjkvSHhBK01XNy9pUUJzcTN2TWtlOXpFR3I1S09peCtKQjRwK2VsOXRIL3NGK3owRlJ0WUg0N0JVVFV4ZVUwWWYreDQxOXlVRzl3ZnA1dmNHNjBqdit3VWZmbzBHaTVXWG1hQWU5eC8zWHdYTys5SUgrd28yTi9zSUh3NzNQUGVLMlFIbCtLSUQ1ZmVLRmZpaTJmeWlCZzc0QlBlSzJRSGwrV29ENWZlS0ZmbHEyZjFxQmc3N3kvaWU5MWNCdlBjZEE3ejRuaFhwQnJiM1Z3VkVCZzc3MC9pZjkxY0J2dmNkQTc3NG54WFRCc3ozVndVdEJnNzd1akgzVndHMTl4b0R0VEVWMEFiTTkxY0ZNQVlPK3ozNG52ZFhBYnozcXdQM1V2aWVGZW9HdHZkWEJVTUcrMlA3VnhYcUJyYjNWd1ZEQmc3N1J2aWY5MWNCdnZlckEvZFUrSjhWMUFiTTkxY0ZMQWI3VFB0WEZkTUd6ZmRYQlN3R0R2c3ZNZmRYQWJYM3BRUDNTREVWMFFiTTkxY0ZMd2I3U2Z0WEZkQUd6UGRYQlRBR0R2c0krRUhZOTF4M0FmYzM2QVAzTjFrVjZQaHo5eERZK3hEM1hDNzdYUHNOUHZjTkJnNDc5ei9aOTBqWTkxeDNBZmRKNkFQSDl6OFY5dzM3Y2VqM2NmY1EyZnNROTBqM0VOajdFUGRjTHZ0Yyt3MCs5dzM3U1BzTkJnNzdFL2NjOThvQnZ2ZkpBL2RpOXh3VjRORFE0ZUZHMERZMVJrWTFOZEJHNFI4TzkzeUw4Z0hYN3ZjMDcvYzA3Z1A0NXhidThpZ0crNWdrRmUveUp3YjdseVFWN3ZJb0JnNzQxWC9WWW5iM1o5VDNIdFgzS2RSL2R4SzcyUGNvMmNiWjl5alp2dGozS05rVHUvRDNXL2c2RmQvUHpkM2NSODQzTjBoSU9qbk9TZDhmRTFjQSt4ejhPaFhwQnZpdytWWUZMUWI4S1B0bUZXRnJxN1VmRXdzQXRLdXR0YldyYVdJZUUxY0FZV3RyWVI0VG9QRDR5dnY4RlRuT1NkL2Z6ODNkM0VmT056ZElTRG9lKy9jV09jNUo0TjdRemQzY1JzNDROa2hJT2g3NFJCYTBxNjIxdGF0cFltRnJhMkZoYTZ1MUh2djJGclNycmJXMHJHbGlZV3ByWW1GcnE3VWVEdnRMMlBndkFiZjNtUVAzWk5nVjdBYjdPUGRoOXpqM1lnVXFCdnM0KzJJRkR2dEwyUGd2QWIzM21RTzkyQlhzQnZjNDkySDdPUGRpQlNvRzl6ajdZZ1VPL0FhZ2R2bFdkd0g3RGZndkExMFc5K1Q1VmdWQUJ2dmsvVllGRHNCLzZmZEV5dFBMOXozbmYzY1M2UEVUOUxIM2xoWE5CdnN6c1BjWSt3UDNQaHZMdTV5TEgzamxCWXRpZmxuN0JESFM5R3dlOTRRR21Nb0YrNklHaUtLTHBvK2hDUGV1QnBqTEJmdXRCdkdzNGM3M0JCdTFzSUNMSHhQc28rWUZFL1NMWHBkVCt6bjdHZnNCK3l4akhraEx3Z2FJZFl4cmpYa0lWQVlPK0NiMzcrTDNZYzRCOTBQWEEvaEg5NTRWMWdhZzk1c0ZqSnFKbW9zYWpRYnErMmdGeUFicTkyZ0ZqUWFMaVh5TWZCNmcrNXNGMWdacCtFd0ZSUVlqKzNvRmhIbUZjNHNhaVFhTGhhT0RuUjRqOTNvRlJnYjd1L3hNRmRmNENmY3N6dndRU1Bjc0JnN1c5NHJaQWJ2NG1RTzc5NG9WK0puWi9Ka0dEbTMzTy9mL0FkUDRBQVAza3ZjN0ZmRGMzZS93T3RzbUp6azdKaWZkT2U4ZkR0YjNDdGVGMTdiWGhkY1N4UGlJRTFqdDk5VVZwNmEwcDdVYkUyalNyRVhwRzhqRHNLNnRIMkxHQlc1d1lYRmlHeE5ZUkdyUkxSdE9VMlpuYVIrMCs0c1ZwNmEwcHJVYkU1alNyRVhwRzhqRHNLNnRIMkxHQlc1d1lYRmlHeE5ZUkdyUkxSdE9VMlpuYVI4TzF2Y3IyZmNEMlFIUCtIRUQ5dzdVRmI5cDJ2Y0VCZmU0MmZ1REJ0cjNBd1gzTk5uN0FBYkYyMWl1T2ZzSEJmdTZQZmVHQmp2N0F3WDdOajMzQWdZTzF2dEIyUkxPOXdBVHdNNzNrQlg0WnZ0a0JlUUgrL3IzS3dXTkIvZjY5eXNGNUFmOFp2dGtCWXo4TVJVOStHWFpCdzdXKzBIWkV0djRaL3NCOXdFVHdOdTNGUk9nK0dmM1pBWE5CL3huOTJRRk1nZjMrdnNyQllrSCsvcjdLd1g3ZUFROStHWFpCdzczR3FCMitFRFo5dzNmaUhjUzh1djNoT3NUN1BoTEZ1djRRUGNNMmZzTW1nYnAwSmV3bXBXSml4NFQzTjRIRSt5TGZJNTFTL3NTZHZzN0hucjdoSm9INmRDWHNKcVZpWXNlRTl6ZUJ4UHNpM3lPZFV2N0VuYjdPeDU2VEQzSy9FRHIrRUQzaEFjT3VxQjIrRURaOE80ODN4THk2L2RwN0JQcytEQVc3UGlPKzhxYUJoUGM2ZENYc0pxVmlZc2VFK3plQnhQY2kzeU9kVXY3RW5iN094NTZURDNLL0VEcitFRDNhUWNUN0lyM1J4WHQ3aWtHRHNxSDRrMTIrRG5aOXhUYVBOOFM4dXYzWSt3VGJ2SVc2L2c1OXd6Wit3eWhCdW5RbDdDYWxZbUxIaE8yM2djVHJvdDhqblZMK3hKMit6c2VjMHc5eWdmM3cvdXZGZnNUM0h6Q25KcU5peDdoQjR1RGlvSnRjNWJJSGhPMitMc3FCdzc0RTZCMitFRFo4TzQ4M3hMeTYvZUU2L2RwN0JQdStFc1c2L2hBOTJuOFFPejRqdnZLbWdZVDN1blFsN0NhbFltTEhoUHUzZ2NUM290OGpuVkwreEoyK3pzZWV2dUVtZ2ZwMEpld21wV0ppeDRUN3Q0SEU5NkxmSTUxUy9zU2R2czdIbnBNUGNyOFFPdjRRUGVFQnhQdTk4ajNSeFh0N2lrR0R2Z2poK0pOZHZoQTJmY04zNFozb1hjUzh1djNoT3YzWSt3VGM0RDRTeGJyK0VEM0RObjdESm9HNmRDWHNKcVZpWXNlRTZlQTNnY1RzNENMZkk1MVMvc1NkdnM3SG5yN2hKb0g2ZENYc0pxVmlZc2VFNmVBM2djVGM0Q0xmSTUxUy9zU2R2czdIbnBNUGNyOFFPdjRRUGVFQi9mRCs3WVZFNnVBK3hQY2ZNS2NtbzJMSHVFSGk0T0tnbTF6bHNnZStMc3FCdzc3WC90Zzl5VUI5eDdiQS9jU1VCV1VkSTUzZVJwd2czR0FiQjdWQnB1dGxLZXJHcHVKbTRhZUhnNzQ1SnQyK0FYM09jLzNBWXQzckhjU3RiL1ZzNjMzV05yM1E2cjNPZnNQOXcrdXROUytFOCs0OXp5R0ZmZWQreUgzR3RMM0dFVDNuZmNoQmZjc0IvY1Ewd1gzcWdmN0VOSUY5eXNIKzUzM0l2c1lSUHNhMHZ1ZCt5SUYreXNIK3hKRUJmdXFCL2NTUXdXeit3a1Y5eDhIK3diTEJmZU5CL2NHelFVVDE5ajNIQWYzZ3ZjUzl3MUw5d3JMOTRMN0VnWDdIQWYzQmtrRis0MEgrd1pMQmZzZkIvdUMreEw3Q3MzN0RVa0YrMkQzTkJYM2Evc0c5d0xGOWxIM2F2Y0dCZmNOQisvSEJmZDFCeFBudUNmRkJmY1BCL3RxOXdZZ1VQc0N4dnRyK3dZRit3OEhLRkVGKzNVSDdrOEY5MWd0RmZoS1VjLzMzd2UwbUh0bUgwRkNyQWVkaDVOM0h2c3IremtHRTgvWTkySkcrMkw3WUFZT3VmdGkzL2NqZHZoQTJmRHVQTjhTOHV2M2Flc1Q5dklXNi9oQTkybjhTd1lvUTM5bWZvS01peDQ0QjR1WWlhREs5eGFmOXowZStKLzd5Wm9IRSs3cDBKZXdtcFdKaXg0VDl0NEhFKzZMZkk1MVMvc1NkdnM3SG5wTVBjb0hFL2IzeVBkSEZlM3VLUVlPcjMvbStMam1BYkx3OTczd0EvZTBmeFgzVWNqM052ZGc5MTlPOXpYN1VmdFFUdnMxKzEvN1lNajdOdmRRSCtZRSt3ZHE5dzMzTHZjdHJQY005d2YzQ0t6N0RQc3QreTVxK3czN0NCOE9yNHZoK1FCM0FmZVI2d1BzRnZncTRmc3UrUUF6QnZzOSt6akhUYzNNQmFXa2s1dUxHbzBHaTRwMWRSLzhYUHN3Qnc2dmkrSDRyK2dCK0M3eUE5QVcrRnZoKy9JR2pmYzE5K1d2OTN3YTl3NHUzUHNXK3pOTCt4cUxIdFJhQll1OTVlalZ3RnhGSHZzNisrNW4rNUFhZW8xNWpuZ2VEcTkvNmZlWDNQZGE0UUg0Tis4RHZkOFZpK0FyOXlUM0plcjE5dzMzSGZzR3h5NlZIdmRVOTNFRnl2dzZOZmVEQjdLZ2pvc2ZpUWVMZG5oMGNCNzdMdnRKb2xZRnZBYmkyR0EwUDBwV1BDVkcySXNmRHErZ2R2ZFIzL2ZiOVl0M0V2Zi83QlBZb1BkUkZmZnErMUhzOTFIcjN5djRSZnNGQnZ2YS9Gc0Y5d0doRlkwSEUrajNYUGVmQlo2a202eUxHbzBHaTRkbWFoLzdsUWNPcjMvcDk3VGg5empoQWZnMjhBUEE0UldMMGluM0pmY2o5dkgzSFBjVEt2TDdLVmRrZFlzZWlRYUxqNXVNb0I2Yzl5a0Y5NkxoKy9nR2FQdnl4SFlGaTcydTBPYlJUelkxUTFJNEoxVFhpeDRPcjMvbTk3cmY5ejdtQWJqejk3WHRBL2ZKZnhYM0dPcnM5eC8zRnpMeCt4cE5TM0JqYlIrSkJ2Y0ptczczRFBjV0c4TzRkSXNmcStBRmkxV29PUHR2S1B0cyswbjdYZmNGK3hqM0t4Nks1aFV4UnZMbnZzdTcyK1hDVERVNVdrdzZIdzZ2b0hiNUFPRUJ4L2hzQS9jREZ2RUc5OVA1RWdYUC9HdzE5ODhIcjV1T2l4K0pCNHQyY25kakhnNnZmK1Q0dk9RU3MvQkk3ZmVMN0RIeEUraXo5MkFWK3hUME0vY2hIaFBrOXlmcTdQY0MxR0czVmF3ZkU5aVVsZGJiNlJyM0NERFUreGY3S1VRd0xVcXNZTGxxSGhQb2VINHRTUHNBR2hQaytCYUZGVUpKVzBGQVJiL2MxOG03b3BzZTZsMzBiVDhhRTlqN2t2ZmhGY0cydDluVnYySktRVmhWZ0lBZU1MSXRxZGthRHE5LzV2Yy8zdmU2NWdHejdmZTE4d1AzYVg4VjkyL3U5MnozU2ZkZSt3YjNGL3NxK3hnc0t2c2YreGZrSnZjYXljeWxzNmdmalFiN0NYeEkrd3o3Rmh0VFhxT0xIMnMxQll2QWJ0OGUwZmZ0RlRCVnl1SGR1OHJkNWRBa0wxbExXanNmRG0vM3hlRUI5d0gzdUFQM0FmZkZGZmU0NGZ1NEJnNzdXa3I1MGdIbjR3UDN1VW9WUVBjY1pmY3A5eWthOXlHejl4blU5dzRlTmdaQit3cGgreG43SkJyN05iZjdMdFA3REI0TysxcEsrZElCOXpUakEvY1lTaFhUOXd5Mzl5NzNOUnIzSkdIM0dVSDNDaDQyQnRUN0RyUDdHZnNoR3ZzcFpmc3BRUHNjSGc3N1QwclYrVC9VQWZjTDRBUDNDMG9WOXpuVk8vay8yOVQ3T1FZTyswNUsxZmsvMUFIM0orRUQ5MzM1a1JYN09rTGIvVDg3UWZjNkJnNzdIRWZYOThUaDk3cldFdERraCtBVDZQY3U5aFg3TS9jR2U3dVpsSTJMSHRVSGk0V0xnM0pPbE9zZTl3Y0g4anFqaXg2TkI0dmNwKzRmOGdmcnlKU2trNUdMaXg3VkI0dUNqSDFiK3daNyt6SWVOd2NqTm9TTEhoUHdOUWNUNkl2Z2hDVWZEdnNjUjlmM3hPSDN1dFlTOXpmZ2grUVQ4TXFURlVFSGk1U0ptYnYzQnB2M014N3JCL0hna29zZUUramhCeFB3aXphUzh4L2ZCL2N5K3dhYlczMkNpb3NlUVFlTGtJdVVwTWlDS3g0a0J5amNiNHNlaVFlTE9uTWtIL3NIQnl0T2duS0Nob3VMSGc3M3ZYemE3ZFQzZ2M3eTJ3SFY3UGNNN2ZkdDZBUFY5L1FWKzJEM01mczM5M1FlMmdmN1B2c0c5eGIzTXZjdjl3cjNHL2N2OHNSZFVvMGYrd0FHK3hJNk1pZ24zVEwzRVIvM3BkUkQ5NjhHOVVqdCsxWDdZUHMxK3pqN1loNzN6NHdWeTd2QzBSN3UrNEVtQmtkYndNd2ZEc0wzSGZndkFjcjRZZ1A0UVBjZEZld0cremozWWZjNDkySUZLZ2I3T1B0aUJXYjdZUlhzQnZzNDkySDNPUGRpQlNvRyt6ajdZZ1VPdy9jZCtDOEJ6L2hqQS9laTl4MFY3QWIzT1BkaCt6ajNZZ1VxQnZjNCsySUYvQUw3WVJYc0J2YzQ5Mkg3T1BkaUJTb0c5emo3WWdVTyt5YjNIZmd2QWNyM21RUDNkL2NkRmV3Ryt6ajNZZmM0OTJJRktnYjdPUHRpQlE3N0p2Y2QrQzhCei9lWkE4LzNIUlhzQnZjNDkySDdPUGRpQlNvRzl6ajdZZ1VPOTJMM3h0a0I5d0g0b2dQM0FmZkdGZmlpMmZ5aUJnNzRLdmZHMlFIM0FmbHFBL2NCOThZVitXclovV29HRHZ0NTk3cnlBZlR1QS9UM3VoWHU4aWdHRG5OLzVmaEdkL2NKN0JMVDhkVHVLdWtUK1BlTCtQVVY3dXdvQmhQMCswUDhyQlg3QSt0RTl3WDNBY3pMaXg1VzBBV0xXR0JNU1Z1M3d4NzNCdmM5b3Zjc0dyZ3RaQWY3RGZ0RmV2czVHZzc3VWFCMitKUjM5d25zRXZjUTd2Ly9vSUFBL3dCZGdBQVQ4UGNRK1BVVjd1d29CdjFXQkJQbzd3YUYrSlFGRS9BMEJnNHkrSkIzQWRIM3lRUDNkZmRhRmVEUTBlRGhSdEEyTlVaR05UYlFSZUVmRHJwLzMvZ20zd0cvN2ZleDdRTy85NlFWK3lMVit5TDNPL2M2MWZjZzl5UDNKRUQzSS9zNSt6cEEreVA3SXg3dGpCWHZ0dkR2N2JjbUp5ZGdKaWduWVBEdkhnNU1pOTc0QWUwQjkyenBBOHNXK0JUZSt4NzRZelVHKzB2N0JiZEg1c0VGb3BtYm1vc2FqUWFMaW10d0gvdkcreXdIRG9hTDN2Z1o0UUgzLys0RHdoYjRSZDc3ZGdaamQ0aUxINDBIOXpidzdlSDNDeHJyT3RYN0Rmc2NPeXFMSHI5TEJZdlAxdDdIdzI5R0x2c2JKdnRCK3dZZURuWDdGTi8zak5UM1RkOEIrQVR1QTVsa0ZZdlVNdmNmOXlUczV2Y085eG43Q3I4dmtoNzNWZmRvQmNUOElEZjNZZ2V5b0k2TEg0b0hpblo2ZEhFZSt5WDdPYUZZQmI4RzJ0OWxORUJKV3owcFRkU0xIdzYrck4vMzIvRUI5L2ZzQTZhc0ZmZmMreW5zOXludzN5YjRRZnNIQnZ2Sy9GY0Y5d0NoRmZkUDk1d0ZucVdic0lzYWpRYUxoMlZxSC91VUJ3NkQrdzdnOTZEYTl5emZBZmdYN2dPb2F4V0wwREgzSVBjZzl3RGg5eDMzRkNiYyt4eFdZM2lMSG9rR2k0K1pqYUFlbXZjY0JmZVozL3ZzQm1qNzJzSjNCWXUrcXREYjFsMHpNanhlUGl4VDBvc2VEcmwvMy9lbjIvYzMzd0hHOGZleTdRUEc5N29WKzFEM0Evc0s5eXIzRitubzl4YjNEelBvK3hsTlMzTmliQjZKQnZjRW1zLzNDUGNVRzhPNGRZc2ZxOW9GaTFhbU4vdHRLL3RrKzBBZThXUVZ1c3U0MnVYQVVqczdYRkU2TFV2dDRCNE9jL2hqM2dHbytHQUQzZnNJRmZFRzk4WDQ2Z1hML0dBNDk4SUhycG1OaXgrSkI0dDZkbmhrSGc2NGY5LzRtOTRTdnUxSjZ2ZUY2amZ0RStpKzkxTVYrd3p6T1BjY0hoUGs5eVRvNS9MUFlyVlZxaDhUMkpLUzFkYmxHdmNCTWREN0Uvc2pSRFl5VHF4aXVXd2VFK2h2ZVRoTExSb1Q1UGdQaFJWSFNWNUNRVWU4MTlESXVLV2JIdWhoOEc1RUdoUFkrNUQzelJXK3RyWFcwNzVsVFVkYVdIOS9Iakt3TUtmVUdnNjUreFRmOXpmYjk2ZmZBYkx0OTdMeEEvWjFGV3M4Qll2QmNOLzNiT3YzWlBkQTkxRDdBL2NLK3lyN0Zpd3YreGY3RHVRdDl4akp6S08xcVI2TkJ2c0ZmVWI3Q1BzVUcxTmVvWXNmOTBMM2NSVXhWY1RiMjdyRjNPbkxLVGRiUzE0OUh3NnZmOS80SnQ4QnUrMzNzZTBEdS9la0Zmc2kxZnNpOXp2M090WDNJUGNqOXlSQTl5UDdPZnM2UVBzait5TWU3WXdWNzdidzcrMjNKaWNuWUNZb0oyRHc3eDRPcjR2ZStBSHRBZmVsNlFQM0RSYjRGTjc3SHZoak5RYjdTL3NGdDBmbXdRV2ltWnVhaXhxTkJvdUthM0FmKzhiN0xBY09yNHZlK0JuaEFmZ2E3Z1BkRnZoRjN2dDJCbU4zaUlzZmpRZjNOdkR0NGZjTEd1czYxZnNOK3h3N0tvc2V2MHNGaTgvVzNzZkRiMFl1K3hzbSswSDdCaDRPci9zVDMvZU0xUGRNM3dINEt1NER3R1VWaTlReTl4LzNJK3ptOXc3M0dmc0t2ekNTSHZkVTkyY0Z4UHdmTi9kaUI3R2dqb3NmaWdlS2RucDFjUjc3SmZzNG9WZ0Z2d2JhM21VMFFFbGJQaWxOMUlzZkRxK3MzL2ZiOFFIMytPd0RwNndWOTl6N0tlejNLZkRmSnZoQit3Y0crOHI4VndYM0FLRVY5MC8zbkFXZXBadXdpeHFOQm91SFpXb2YrNVFIRHEvN0R1RDNvTnIzTE44QitEVHVBOFZyRll2UU1mY2c5eUQzQU9IM0hmY1VKdHo3SEZaamVJc2VpUWFMajVtTm9CNmE5eHdGOTVuZisrd0dhUHZhd25jRmk3NnEwTnZXWFRNeVBGNCtMRlBTaXg0T3IzL2Y5NmZiOXpmZkFiang5N0x0QTdqM3VoWDdVUGNEK3dyM0t2Y1g2ZWozRnZjUE0rajdHVTFMYzJKc0hva0c5d1Nhei9jSTl4UWJ3N2gxaXgrcjJnV0xWcVkzKzIwcisyVDdRQjd4WkJXNnk3amE1Y0JTT3p0Y1VUb3RTKzNnSGc2ditHUGVBY1g0WUFQM0Evc0lGZkVHOThYNDZnWEwvR0E0OThJSHJwbU5peCtKQjR0NmRuaGtIZzZ2ZjkvNG05NFN1ZTFKNnZlRjZqZnRFK2k1OTFNVit3enpPUGNjSGhQazl5VG81L0xQWXJWVnFoOFQySktTMWRibEd2Y0JNZEQ3RS9zalJEWXlUcXhpdVd3ZUUraHZlVGhMTFJvVDVQZ1BoUlZIU1Y1Q1FVZTgxOURJdUtXYkh1aGg4RzVFR2hQWSs1RDN6UlcrdHJYVzA3NWxUVWRhV0g5L0hqS3dNS2ZVR2c2dit4VGY5emZiOTZmZkFiZnQ5N0x4QS9jRWRSVnJQQVdMd1hEZjkyenI5MlQzUVBkUSt3UDNDdnNxK3hZc0wvc1grdzdrTGZjWXljeWp0YWtlalFiN0JYMUcrd2o3RkJ0VFhxR0xIL2RDOTNFVk1WWEUyOXU2eGR6cHl5azNXMHRlUFI4T2dpWDNSamJnU25haGR2aVU5MEFTMWZERjBVelJ5L0FUTG9DOTRCV0x5enIzQzMwZUU0NkFMOUVIRXg2QTZBZnlsdERONGhyM1R2dkFjdmNBR3NTOG9jVGd3RmFMSHJUWUJSTk5nSXRhdnlhVUh1SkZNd2N0ZjBOVExocjdTdmZBbnZzQUdsaGNiMDRxU051TEhnNmZjUGM2OTlQM1BBSEE3UGNGMUFQQTk3OFYreEhmS2ZjU2R4NDQxTnNIOXdDVXg5Q0xHbDdUQll0V1N6UW5SdERuNWREUDcrTEFUSXNldU5NRmkwL1Erd0NVSHR4Q053ZjdFblkzS3ZzUkdnN2ZpOTczTXMvM1Z1SUI5d3J0QThRVytIamUrOW4zTXZkc3ovdHM0QWJIdkx6Wno4TmppeDY3MHdXTFJzSWkreE1yT2ZzREhqTmVSN2o3TWs0SER0Nkw5MmhNeXRMTEV2ZVo3Uk53Ni9ldkZmY1dCcTVTQlgzN09VejNPUWNUc1BzcDdRY1RjUGNwOXp2Syt6dVpCNjNFQmZjWnl5d0c5eC8zZkFYN0JBWWorMHdGZFdSMldJc2FpUWFMZHI1MXNoNGo5MHdGK3dRRzl4LzdmQVV1Qmc2dCt4VGc5Ky9aOTJYZkFmZUYvd0JmZ0FBRHAyWVZOd2VMcjRTdHkvY1RvUGM3bWg2Zzk0Z0Y5eERaK3drR2xPMEY3WlRRbUxFYnFieUVpeC9lQjR0ZGsyVkwreE4yK3p0OEhvRWlCVEk5M1FaMys0QUZLWUpHZm1ZYmNHU1JpeDhPMkgvZTl4UEd5TWYzRnQwQi93QjRnQUQvQUdLQUFBUEU5MW9WMXdiN0NLN3hMZmM3RzhpNW00c2ZlZHdGaTJWOVdpSkh3dE50SHZkc0JwZkdCZnVKQm9pZ2k1K05ud2oza3dhWXh3WDdrUWJUcDg3Rjl3QWJzNitCaXgraDJ3V0xZSmRWKzBJbUt2c0hheDVDVDhvR2lYZUxkbzUzQ0VzR0R2c3A5NWZROTlMUkFiRFg5emZYQS9kVzk1Y1Y5d3V5Ny9jVjl4Ums3L3NMK3d0bEovc1UreFd4Si9jTEg5QUVUSG5SNWVPZDBjcktua1V6TVhoRlRCOE8reW4zb2MzNEIzY0I5empXQTlMM29SWDNsODB3K0FkSEJpRWt1VnF1clFXWm1JK1VpeHFOQm91SmYzMGYrNDB1Qnc3N0tmZWh6ZmZNMEFIM2w5Y0R2ZmVoRmZlNHpmdHBCcEhwOTF5Vjl5WWEyazIvT1M5ZVE0c2V2RjRGaTY2N3ZMV3BiMlllSi90b2cvczlHb0NOZm94L0hnNzdLZmVYMFBjbnhQYk9BZmVmMXdQM1QvZVhGZWZMejlqYlVySlBsQi8zQWZjU0JidjdvMGozSVFlY25vNkxINGtIaTN4K2dvQWVNaVNiWlFXdEJyaTNjbDFmWW10aFNXZTlpeDloVmdXTHVVbndIZzc3S2ZnTXpmZEozb3QzRXFIZDl4TFZFN2ozZXZlaEZkWDJ5TTFPOTV3NkJ2dGQrNndGV2Zka0Ivc1N6UldOQnhQWTdmY1hCWnFnbWFhTEdvMEdpNGhyY1IvN0R3Y08reW4zbDlEM09jbmZ6Z0gzbzljRDkwNzNseFhzeTlMYjJrek5NbXAwZ1lzZmlRYUxqcGVObng2U3lRWDNQczc3ZkFaMCsyKzFld1dMcXFHM3ZiTm5YRnRpYVZ0TmE3MkxIbDVZQll1OFIra2VEdnNwOTVmUTl6ckY2ZEdMZHhLMDJmY3oxaFBzOTJMM2x4WGh5TWprM2xISE0yOXFmbmw0SDRrRzBKZTB3OG9ickt4N2l4OFQzS1BMQlJQc2kyU2hWdnNkVHZzZit3ZjdFTkk4NlI3UUJGaG54OENscjZhMXZhcG5XMTV4WmwwZkR2c3ArUlBPQWJuM3dnUEY5NkVWM1FiM1pQZ1dCYjc3d2tqM1B3ZWtubzJMSDRrSGkzNTRmRzhlRHZzcDk1Zk05MHgzb25mM05Nd1NyOVJYMVBjZjBralhFN3F2K0I4Vk1kcGQyaDRUdWQ3VHZ0ZThiNmhub0I4VDFwS1N1N3JGR3RwRHMwVkVSV1E5WVo5dnFIWWVFN3AxZkZ0alVSb1R1ZmVCaFJWa1kzRmtZR0dtdXJPcHA1MlpIc1J3eG5sZEdoTzIreVAzWXhXd3JKMnRyckIzWldOd2JJQ0FIbGVoV3A2M0dnNzdLZmVYMGVuRjl6clFBYS9XOXpQWUE2LzR5aFU1eEU3a3BxMlluWjBlalFaR2YyTlRTeHRyYXB1TEgzSkxCWXV6ZGNEM0hjZjNIL2NIOXhCRjJpdzJUazR5SHRZV3Q2U3d1Yit2VDFaeFozQmhXV3l3dXg0Tyt5bjRNZEQzMHRFQnNOZjNOOWNEOTFiNE1SWDNDN0x2OXhYM0ZHVHYrd3Y3QzJVbit4VDdGYkVuOXdzZjBBUk1lZEhsNDUzUnlzcWVSVE14ZUVWTUh3NzdLZmltemZkSjNnR2gzZmNTMVFQM2V2ZzdGZFgyeU0xTzk1dzZCdnRkKzZ3RldmZGtCL3NTelJXTkIrMzNGd1dhb0ptbWl4cU5Cb3VJYTNFZit3OEhEdnNwK0RIUTl6bkozODRCOTZQWEEvZE8rREVWN012UzI5cE16VEpxZElHTEg0a0dpNDZYalo4ZWtza0Y5ejdPKzN3R2RQdHZ0WHNGaTZxaHQ3MnpaMXhiWW1sYlRXdTlpeDVlV0FXTHZFZnBIZzc3S2ZneDBQYzZ4ZW5SQWJUWjl6UFdBL2RpK0RFVjRjakk1TjVSeHpOdmFuNTVlQitKQnRDWHRNUEtHNnlzZTRzZm84c0ZpMlNoVnZzZFR2c2Yrd2Y3RU5JODZSN1FCRmhueDhDbHI2YTF2YXBuVzE1eFpsMGZEdnNwK2EzT0FibjN3Z1BGK0RzVjNRYjNaUGdXQmI3N3drajNQd2Vrbm8yTEg0a0hpMzU0Zkc4ZUR2c3ArREhNOTl2TUVxL1VWOVQzSDlKSTF4UG9yL2k1RlRIYVhkb2VFK1RlMDc3WHZHK29aNkFmRTlpU2tydTZ4UnJhUTdORlJFVmtQV0dmYjZoMkhoUG9kWHhiWTFFYUUrVDNnWVVWWkdOeFpHQmhwcnF6cWFlZG1SN0VjTVo1WFJvVDJQc2o5Mk1Wc0t5ZHJhNndkMlZqY0d5QWdCNVhvVnFldHhvTyt5bjRNZEhweGZjNjBBR3YxdmN6MkFPditXUVZPY1JPNUthdG1KMmRIbzBHUm45alUwc2JhMnFiaXg5eVN3V0xzM1hBOXgzSDl4LzNCL2NRUmRvc05rNU9NaDdXRnJla3NMbS9yMDlXY1dkd1lWbHNzTHNlRHZzcCt6dlE5OUxSQWJEWDl6ZlhBL2RXK3pzVjl3dXk3L2NWOXhSazcvc0wrd3RsSi9zVSt4V3hKL2NMSDlBRVRIblI1ZU9kMGNyS25rVXpNWGhGVEI4Tyt5bjdNYzBCOXpqV0E5TDdNUlgzbDgwdytBZEhCaUVrdVZxdXJRV1ptSStVaXhxTkJvdUpmMzBmKzQwdUJ3NzdLZnN4emZmTTBBSDNsOWNEdmZzeEZmZTR6ZnRwQnBIcDkxeVY5eVlhMmsyL09TOWVRNHNldkY0Rmk2Njd2TFdwYjJZZUovdG9nL3M5R29DTmZveC9IZzc3S2ZzODBQY254UGJPQWZlZjF3UDNUL3M4RmVmTHo5amJVckpQbEIvM0FmY1NCYnY3bzBqM0lRZWNubzZMSDRrSGkzeCtnb0FlTWlTYlpRV3RCcmkzY2wxZlltdGhTV2U5aXg5aFZnV0x1VW53SGc3N0tWbk45MG5lQWFIZDl4TFZBL2Q2K3pFVjFmYkl6VTczbkRvRysxMzdyQVZaOTJRSCt4TE5GWTBIN2ZjWEJacWdtYWFMR28wR2k0aHJjUi83RHdjTyt5bjdPOUQzT2NuZnpnSDNvOWNEOTA3N094WHN5OUxiMmt6Tk1tcDBnWXNmaVFhTGpwZU5ueDZTeVFYM1BzNzdmQVowKzIrMWV3V0xxcUczdmJOblhGdGlhVnROYTcyTEhsNVlCWXU4UitrZUR2c3ArenZROXpyRjZkRUJ0Tm4zTTlZRDkyTDdPeFhoeU1qazNsSEhNMjlxZm5sNEg0a0cwSmUwdzhvYnJLeDdpeCtqeXdXTFpLRlcreDFPK3gvN0Ivc1EwanpwSHRBRVdHZkh3S1d2cHJXOXFtZGJYbkZtWFI4Tyt5bjNhTTRCdWZmQ0E4WDdNaFhkQnZkaytCWUZ2dnZDU1BjL0I2U2VqWXNmaVFlTGZuaDhieDRPK3luN09zejMyOHdTcjlSWDFQY2Ywa2pYRStpdmJSVXgybDNhSGhQazN0TysxN3h2cUdlZ0h4UFlrcEs3dXNVYTJrT3pSVVJGWkQxaG4yK29kaDRUNkhWOFcyTlJHaFBrOTRHRkZXUmpjV1JnWWFhNnM2bW5uWmtleEhER2VWMGFFOWo3SS9kakZiQ3NuYTJ1c0hkbFkzQnNnSUFlVjZGYW5yY2FEdnNwK3p2UjZjWDNPdEFCcjliM005Z0RyL2NnRlRuRVR1U21yWmlkblI2TkJrWi9ZMU5MRzJ0cW00c2Zja3NGaTdOMXdQY2R4L2NmOXdmM0VFWGFMRFpPVGpJZTFoYTNwTEM1djY5UFZuRm5jR0ZaYkxDN0hnNzdLWUhROTlMUkFiRFg5emZYQS9kV2dSWDNDN0x2OXhYM0ZHVHYrd3Y3QzJVbit4VDdGYkVuOXdzZjBBUk1lZEhsNDUzUnlzcWVSVE14ZUVWTUh3NzdLWXZOQWZjNDFnUFNGdmVYelRENEIwY0dJU1M1V3E2dEJabVlqNVNMR28wR2k0bC9mUi83alM0SER2c3BpODMzek5BQjk1ZlhBNzBXOTdqTisya0drZW4zWEpYM0pocmFUYjg1TDE1RGl4NjhYZ1dMcnJ1OHRhbHZaaDRuKzJpRCt6MGFnSTErakg4ZUR2c3BnZEQzSjhUMnpnSDNuOWNEOTArQkZlZkx6OWpiVXJKUGxCLzNBZmNTQmJ2N28wajNJUWVjbm82TEg0a0hpM3grZ29BZU1pU2JaUVd0QnJpM2NsMWZZbXRoU1dlOWl4OWhWZ1dMdVVud0hnNzdLWXYzUVVuTjkwbmVFcUhkOXhMVkU0ajNlaGJWQmhOSTlzZ0hFNmpOVHZlY09nY1RXUHRkKzZ3RldmZGtCeE80K3hMTkZZMEg3ZmNYQlpxZ21hYUxHbzBHaTRocmNSLzdEd2NPK3ltQjBQYzV5ZC9PQWZlajF3UDNUb0VWN012UzI5cE16VEpxZElHTEg0a0dpNDZYalo4ZWtza0Y5ejdPKzN3R2RQdHZ0WHNGaTZxaHQ3MnpaMXhiWW1sYlRXdTlpeDVlV0FXTHZFZnBIZzc3S1lIUTl6ckY2ZEVCdE5uM005WUQ5MktCRmVISXlPVGVVY2N6YjJwK2VYZ2ZpUWJRbDdURHlodXNySHVMSDZQTEJZdGtvVmI3SFU3N0gvc0greERTUE9rZTBBUllaOGZBcGErbXRiMnFaMXRlY1daZEh3NzdLYUIyK0FiT0FibjN3Z1BGRnQwRzkyVDRGZ1crKzhKSTl6OEhwSjZOaXgrSkI0dCtlSHh2SGc3N0tZSE05OXZNRXEvVVY5VDNIOUpJMXhQb3IvY1NGVEhhWGRvZUUrVGUwNzdYdkcrb1o2QWZFOWlTa3J1NnhScmFRN05GUkVWa1BXR2ZiNmgySGhQb2RYeGJZMUVhRStUM2dZVVZaR054WkdCaHBycXpxYWVkbVI3RWNNWjVYUm9UMlBzajkyTVZzS3lkcmE2d2QyVmpjR3lBZ0I1WG9WcWV0eG9PK3ltQjBWcDI5empGOXpyUUVxL1c5elBZRTd5djk3MFZPY1JPNUthdG1KMmRIbzBHUm45alUwc2JhMnFiaXg4VGZISkxCUk84aTdOMXdQY2R4L2NmOXdmM0VFWGFMRFpPVGpJZTFoYTNwTEM1djY5UFZuRm5jR0ZaYkxDN0hnNzhvQTc3clE0Zzk0YmhBZEgzdUFQUjk0WVY5N2poKzdnR0RuK1grSTZYOTFDWEJ0OEs3Z3Zaa1pJTURQZ1pGUGl1RmFVVEFNa0NBQUVBQ3dBeUFFMEFWQUJYQUc4QWNnRFRBT0FCSGdFd0FUb0JTd0Y1QVlNQmp3R21BZW9COUFJMEFqY0NkUUthQXA4Q3BnS3JBcmdDeWdMZUF1d0RDd003QTBBRFNnTnpBNkVEcEFPMEE3a0Qwd1B6QkFRRUVRUjdCT01FOVFUNEJWSUZYd1ZpQllBRmxBVzBCYnNGeFFYVUJpVUdkZ2FpQnJzR3hRYkxCdGtHNVFidkJ2Z0hCQWNYQngwSEtRYzJCMEVIU3dkVkI1UUhvZ2VtQjdRSHdRZldCOThINkFmeEIvb0lMd2cwQ0RrSVF3aDFDSVFJandpK0NNc0kyUWpxQ080SSt3a0JDUVVKRlFrWkNSOEpSd2xhQ1g4SmhBbU9DWlVKbWdtZ0Nhb0pyd205Q2NzSnp3blZDZHNKNkFud0Nnb0tGQW9aQ2pjS1F3cEtDbVVLYmdwM0NuMEtsZ3FhQ3A0S3BBcW9DcTBLc1FxM0Nyc0t2d3JTQ3RzSzRRcmxDdW9LN1FyMEN2Z0xDUXNQQ3hVTEpnc3dDelFMUkF0SkMxZ0xYd3RtQzJ3TGNndDJDM29MaHd1UEM1Y0xtd3VuQzdNTHZRdkRDOGtMend2VEM5Y0w0Z3Z0Qy9nTC9Bd0JEQVVNQ0F3U0RCd01KZ3d3RERvTVJBeEpERTBNVmd4ZkRHZ01jUXg2RElBTWhBeUpESTRNa3d5WERKcFFDdmNOMXRPTElRb0xIbVBTNkIxUU5ERTh3L2NEaGtVSyt5VDdBU1A3TlI3eXhoWGVtY2U1MVJ2TXdXRTBqaDhMbEhTT2Qza2FjSU54Z0d3ZTFRYWJyWlNucXhxYmladUduaDRPekIzeUJpTWRDeFVpQ3VIM2p0MGQ5d1VpOXpuM09mY0Y5UGN4cmdvN0NpZ0hDeVlkRGhVeDJsM2EzdE8rMTd4dnFHZWdIcEtTdTdyRkd0cERzMFVlRTloRVJXUTlZWjl2cUhZZkUraDFmRnRqVVJyM2dZVVZaR054WkdCaHBycXpxYWVkbVI3RWNNWjVYZHdkK3lQM1l4V3dySjJ0cnJCM1pXTndiSUNBSGxlaFdwNjNHZzVzSFlJS3RBb1Q1aUFLRXhnTEZlZkx6OWpiVXJKUGxCLzNBZmNTQmJ2N28wajNJUWVjbm81a0NueCtnb0FlTWlTYlpRV3RCcmkzY2wxZlltdGhTV2U5aXg5aFZnV0x1VW53SGc2MTNCV0wzeTczS3ZjZzMrWDNBUjRzSFFzU3JoMFR6Q0FkRXpBTHJza1ZpODlCOXhEM0E5UEszeDR1SFF0VzBnV0xOaS83R2ZzeEl2Y1U5eXYzS3ZMM0RQY3k5dzdkUG9zZXZOVUZpelRvK3o3N1lmc3UrekQ3WVI0TFh3cmRkdmNUZHlnZEMrb1Q0b0JJQ2hQU2dDa2RDOUQzU2hYN0dzWlA5d2J1emMyOW9CNTNIWWw3ZGhvTEZlSEl5T1RlVWNjemIycCtlWGdmaVFiUWw3VER5aHVzckh1TEg2UExCWXRrb1ZiN0hVNzdIL3NIK3hEU1BPa2UwQVJZWjhmQXBhK210YjJxWjF0ZWNXWmRIdzRTcEFvVHpDSWRFekFMa1B0SEZZdTBiTVRTeWJUWnFoNzNnZmpwQlNJRyt3Lzc0QVdDY1lOcGRCMkNyb0dsSHZzVDk5OEYrd0VHOTJqOGlISlJCVjE0YW05a0cyeHZvSXNmQ3pnS0RoWHN5OUxiMmt6Tk1tcDBnWXNmZVIyT2w0MmZIcExKQmZjK3p2dDhCblQ3YjdWN0JZdXFvYmU5czJkY1cySnBXMDFydllzZVhsZ0ZpN3hINlI0T1pOSUZpMDFITFNKQjJ2THoxZGZ4NGNGUml4NjV6K2dkMWZzVCt6UDdCUHNIK3lvZUMwanBPQjBMRmR3RzYwd2RDeFBJTHgwTHZBb1RwakFLRTJZM0NoTVlDL3hhQi9zQ1JFejdBZnNBUmNyM0FLa0tDeFhtOXhpUTFCNmtld1pBVmpVNVRHdXp0QjRMNFgvZjkvN2YzWGIzRTNjeUNndjNsODB3K0FkSEJpRWt1VnF1clFXWm1JL2xIUWFMaVg5OUd2dU5MZ2NMdEJiNG11SDc2Z1pwZUluR0hRZUxvNlNtc2g3MzZQaC9CY3o4aERYMzFBZXRubzVrQ25OeWNHTWUrK2o4ZmdVTGR2Y1Rkd3VVZlIyejdqa0tFekFMOTRrVzd2ZS9CdmVBK0N1cEhmc1YrM3dGZFdOMlduUWRkcjExc2g3N0YvZDhxUjMzZ2Z3ckJRc1Y5d3V5Ny9jVjl4Ums3L3NMK3d0bEovc1UreFd4Si9jTEg5QUVUSG5SNWVPZDBjcktua1V6TVhoRlRCOE9SUjBPSHZnRkJvdU9xSmdhOXhjLzlmc2pDMUFkWHgwTEV0ZnM5NXpzRTZaV0hkaEhIWEFkbko4YUU4Yk9MUWNUR0F2M0RTOFZhejhGY3J6S2VzZ2I5eFQzRTh2M094LzRlUzVjQjRLTWhNQWRDM3dkKzRTYUIwNGQvRURyK0VEM2hBY0xFdXZ1K0FQdUU4d3lIUk13Qy9kZ0Zmc1U5RFAzSWZjbjZ1ejNBdFJodDFXc0hoUFlsSlhXMitrYTl3Z3cxUHNYK3lsRU1DMUtyR0M1YWg0VDZIaCtMVWo3QUJyNEZvVVZRa2xiUVVCRnY5elh5YnVpbXg3cVhmUnRQOXdkKzVMMzRSWEJ0cmZaMWI5aVNrRllWWUNBSGpDeUxhblpHZzczVXhYN0RQTTQ5eHozSk9qbjhzOWl0VldxSGhQWWtwTFYxdVVhOXdFeDBQc1QreU5FTmpKT3JHSzViQjRUNkc5NU9Fc3RHdmdQaFJWSFNWNUNRVWU4MTlESXVLV2JIdWhoOEc1RTNCMzdrUGZORmI2MnRkYlR2bVZOUjFwWWYzOGVNckF3cDlRYURyY2QwVUFLRXV2dTk1L3dFK1l0SFJNWUM3d2tIZmhBK1ZZVit4NzhtZ1dCWklabmRCMkhzSUt4SHZzUitKb0ZKUWIzU1AxV0JmY0hCdmNPK0Y0Rmw3aVV3b3NhZHgyVVZKZGVIdmNPL0Y0Rjl3Y0c5MDJxQ2lVRyt4YjhtZ1dCWllobWRCMkdyNEd5SHZzZStKb0ZDN1Qza1JYN0t2Y0Ird2YzTXd0V0NnN3M5NEVHbzQyaWtaOGUxS0RLdjlkSEhTWkxTMXAxSG5rZGpaMmpHZ3NWN0FiM09QZGgremozWWdVcUJ2YzQrMklGQytVVHNvQzg5L1lWKzJ6M01mc3E5MUwzSU5qaGRncUtmSHdhRTNLQU1SMExZQXFMZzRxQ0M1aERmUWMreW1QUUhndHYrMmJmK1F5dEhSUEFNd29UTUF0L0ZmZHY3dmRzOTBuM1h2c0c5eGY3S3ZzWUxDcjdIL3NYNUNiM0dzbk1wYk9vSDQwRyt3bDhTUHNNK3hZYlUxNmppeDlyTlFXTHdHN2ZIdEgzN1JVd1ZjcmgzYnZLM2VYUUpDOVpTMW83SHc1MUZXczhCWXZCY04vM2JPdjNaUGRBOTFEN0EvY0sreXI3Rml3dit4ZjdEdVF0OXhqSnpLTzFxUjZOQnZzRmZVYjdDUHNVRzFOZW9Zc2Y5MEwzY1JVeFZjVGIyN3JGM09uTEtUZGJTMTQ5SHc3M2NZdmg5M2JkOTNiaEFmY0g3dmdiOFJUZzl3ZHBIZnZNVURuR0J1NzdkaFgzZHZjcDNmc3A5M2F3Q3QwRzkyVDRGZ1crKzhKSTl6OEhwSjZOWkFwK2VIeHZIZzZnSGQxMjl4TjNSd29Md1FwQ1RCME8rRXNXNi9oQTl3elord3hKQ2d1QmY5bEp6ZmRGMVBjTTNRdjdFOXg4d3B5YXBRb0xGVzBLK3pqN1lnVUxUeDBUQ1FCWEhSTUZBRkVLS0VOL1pwNEttSW1neXZjV24vYzlIdmlmQzRzZmlRZUxDNzBLNlVZZEU4QS9IUk13Qzcyc0hmZUo3aFBJUWdvVE1BczE5d2lDaXg2aTFnV0xDMDhkRXlSWEhSTVVVUW9tNEZiaTl3MjA3NHNMZnhYM1VjajNOdmRnOTE5Tzl6WDdVZnRRVHZzMSsxLzdZTWo3TnZkUUgrWUUrd2RxOXczM0x2Y3RyUGNNOXdmM0NLejdEUHN0K3k1cSt3MzdDQjhPK3duN0dpd2orelVlN2hadkNndXVjQW9MN0FiN09QZGg5emozWWdVcUJndThDaE9zTUFvVGJEY0tFeEFMOXdmTnpkdnJ1akV4K3hWRVZrQTNVTkwzQWg0TGkrSDNkK0gzY2VFTCt6UDdDUHNNK3lRTGY5LzNPOVQzRmRnTDkyRDNNdmMyOTJRTEZ2aEYzdnQyQm1OM2lNWWRCL2MyOE8zaDl3c2E2enJWK3czN0hEc3FpeDYvU3dXTHo5YmV4OE52Umk3N0d5YjdRZnNHSGc3N1M1Y2RDNHNlZHgwTEVxMEtFOWdsQ2hNZ0MvZFJGZmZxKzFIczkxSHIzeXY0UmZzRkJ2dmEvRnNGOXdHaEZZMEg5MXozbndXZXBKdXNpeHAzSFlkbWFocjdsUWNPKzR1Z2R2bFdkK1YyOXhOM2lnb0xHa2hUWmtraVFOZUxIZ3VzRmZmYyt5bnM5eW53M3liNFFmc0hCdnZLL0ZjRjl3Q2hGZmRQOTV3Rm5xV2JzSXNhZHgySFpXb2ErNVFIRHV0cEhRYnUvUUFWK0twK0NndjNEdG43RHZjbUxmc21SajNOQy9jVUIvY3k5Qzc3UWZ0Q0l5MzdNeDhMb0k4S0M4TDdadC8zR04vMzdOTkQzd3ZyRnFNZEJndmRSaDBMelBmYnpCS3YxRmZVOXlQWEUraXZDNkNaQ2d0LzV2aTU1UXV5Q3ZlQzFBYjNMUHVDQmZjRkJ2dFA5NjBGalFmM1BQZHpCZnNDQnZzZSswNEZSUGdXS2dZTDhoYnIrRG4zRE5uN0RLR2pDbk5NUGNvSEN4YjRLdUg3THZrQU13YjdQZnM0eDAzTnpBV2xwSk9iaXhwM0hZcDFkUnI4WFBzd0J3NFY0dTJ3SFJMcjdoUElnUW9UTUF0bkNsU1FzUm9MZFFydmRndkZVZmNYRWd0dGM1YklIL2k3S2djTGR2bFdkd3QyOXMzM25IY0I5M3JWQS9kNkM5RDMwdEVCc05mM045Y0Q5MVlMRlp3ZER2c0VGWG9kQy9keWY1Z0tDOS9QemQzY1I4NDNOMGhJT2d0MjkxL2QrRGwzQ3hieEJ2ZlQrUklGei94c05mZlBCNitiam1RS2RuSjNZeDRPNWp6YTkxTGg5NlhsQzNiNGpuY0w5NUFWK0diN1pBWGtCL3Y2OXlzRmpRZjMrdmNyQmVRSC9HYjdaQVVMMFBmTHpnSDNuOWNEOTA4TDk0c1c3cHNkQzMvVlluYjNaOVQzSHRYM0tkUi9keEs3MlBjbzJjYlo5eWpaQzM2Q2pJc2VPQWVMQy9lRzRmemJOZmVHQzdJSzk0RUdDN1ViRTZEU3JFWHBHOGpEc0s2dEgyTEdCVzV3WVhGaUd3djlWcElLQmpZZEM3THU5L0R1QzQydkhRdmgwVVlkQytGMkhRdlRDdGcrNUFzZStGd0wrVllGQ3hhMHE2MjF0S3hwWW1GcWEySmhhNnUxSGc2MHE2MjF0YXRwWWd2aDd2ZjY3Z3VwQ2lnTEZlN3k2QXArQ2c3ZmhuY1M4dXNMMXhic0MvaXdxZ290QnZ3bysyWVZZV3VydFI4THRPLzNwZTRMZHZkWGR3RUxGZmNWMGNEWDM4WkUrd0w3QjBsSk93dlcrUE1WN2U0cEJvd0xCVFlHQy90VisyRDdOZnM0KzJJZTk4K01GUXZCSGZkcEMvY3Y4c1JkVW8wZit3QUcreEk2Q3hMUTdQZVg3QXQyaTk3MzZONExCc3ozVndVTGkrSDVBSGNMK3pzbUN4WGRCZ3YzRVIvM3BkUkQ5NjhHOVVnTGY5OUQwL2YrM3d0Mjk2M2g5NUhoQzhtUnlRdEVhdEV0RzA1VFptZHBId3ZzOC9jMTl6RTE5d0Q3SEFzSCt3MzdSWHI3T1JvTyswNTI5MWNMZHhMUjl6d0wrMGQyOTFBTDZ4YnVDL2NpRlF2d1NPMzNrdVV4OFJQa0Mvc080UGVnMnZjczN3RUw5MjZnZHZmSzRmZktkd3ZpSFFFTG41bU5pd3QyK0VFTGl4OE9vSTZMSDRvSGluWjZDeXgyOXluZitFRjNBUXYzZEI3YUIvcysrd1lMN09iM0R2Y1ord3EvQzMvZjk2ZmI5emZmQVF0LzV2ZTYzL2MrNWdFTDhmSWxCZzZMSG9rTEJmY1EyZnNKQnBRTEJTbUNSbjVtRzNBTCt4TjIrenQ4SG9FTDRVYlFOalZHUmpVTDF2dEIyZmtCZHdFTGgrTDVBM2NMZk1BZEM4eWcwd29MaXhxSkJndDNFcnZ4QzhVS0Vnc29CZzRBQUFFQUFBQUtBQjRBTEFBQmJHRjBiZ0FJQUFRQUFBQUEvLzhBQVFBQUFBRnJaWEp1QUFnQUFBQUJBQUFBQVFBRUFBSUFBQUFDQUFvSnFBQUJIRDRBQkFBQUFHQUF5Z0RRQU5ZQS9BRXVBVndCWWdGc0FYWUJmQUdHQVpBQm1nR2tBYklCdkFIR0Fkd0I0Z0lFQWdvQ0ZBSWFBaWdDTGdKd0FyNEN6QUxlQXdnRERnTTBBMG9EWEFOdUE3d0QwZ1BvQS9vRUZBUXFCRVFFVmdSZ0JIWUVqQVNpQkxBRXhnVFlCUUlGQ0FVU0JSZ0ZRZ1ZRQldZRmVBV09CWmdGbmdXa0Jhb0ZzQVgyQmdnR0RnWTBCa29HWUFabUJtd0d5Z2NRQng0SE5BZDJCN2dINWdoSUNGWUlnQWlxQ0xBSXRnaThDTUlKQkFrV0NUQUpTZ2x3Q1hZSmdBbUtDWkFBQVFEbEFDRUFBUURsQUNFQUNRQTNBQXdBU3dBSkFLZ0FGQUNyQUJRQTVRQWZBT2NBRHdEcEFCWUE4UUFKQVFVQUVnQU1BQkgvOFFBVi85RUFGLy93QUJqLzhRQVovL2tBR3YvMEFDNy8rd0EzLzhzQVYvL3ZBVW4vOXdHTi8rc0JqLy92QUFzQUVmL3ZBQlgvMEFBWC8rNEFHUC8xQUJuLytBQWEvL2NBTi8vTEFGZi83Z0ZKLy9nQmpmL3ZBWS8vN2dBQkFCZ0FCZ0FDQUEzLzdnQVAvKzhBQWdBUUFBVUFGZi91QUFFQUZmL3ZBQUlBRGYvMUFBLy85d0FDQUEzLzdBQVAvK29BQWdBTi8vY0FELy80QUFJQURmLzRBQS8vK1FBREFBMy92QUFQLzcwQUZmL3JBQUlBRGYvMkFBLy85d0FDQUEzLzRBQVAvK01BQlFBTi8vWUFHLy83QUJ6Lyt3QTMvLzBBT2YvOUFBRUE1UUFJQUFnQURmKzFBQnYvN1FBYy8rc0FVZi81QUZuLzVRRGxBQjhBN2YvNUFRVUFBUUFCQU9VQUNRQUNBSFAvdFFHQy83RUFBUUEzLy93QUF3QU4vNkVBT2YvN0FPVUFHUUFCQURmLytRQVFBSi8vMndDb0FCd0FxZ0FWQUtzQUV3RGpBQkVBNVFBK0FPY0FGd0RwQUJzQTdmK2hBUEVBRkFFRkFCSUJGZi9ZQVJuL3pRRWQvOWtCSWdBUEFTWC9xZ0FUQUFvQURBQU4vOHNBRy8vMEFCei84d0FnQUFzQUx2LzhBRDRBRWdCUi8vSUFYZ0FTQUtnQUd3Q3JBQklBclAvOUFPVUFKZ0RuQUJFQTZRQWFBTzMvOGdFRkFCQUJJZ0FPQVVuLy9BQURBT1VBRVFEdC8vTUJCUUFCQUFRQVBnQUZBRmYvOWdDcy8vc0E1UUFKQUFvQW0vLzNBS2dBR1FDcC8vZ0Fxd0FQQU9VQUpBRG5BQklBNlFBWEFPMy80QUVGQUE0QklnQU1BQUVBNVFBTkFBa0FOd0FTQURrQUJRQ29BQmtBcXdBU0FPVUFKd0RuQUJZQTZRQWFBUEVBS3dFRkFCRUFCUUExLzZFQU52LzlBRGYvNUFBNC8vQUFPdi9KQUFRQU5mK3hBRGYvOVFBNC8va0FPdi9sQUFRQU5mK3VBRGYvNlFBNC8vSUFPdi9UQUJNQUNnQU5BQTMvK1FBZ0FBd0FJdi83QUN2Lzh3QTFBQllBTndBVkFEb0FFZ0ErQUJJQVhnQVJBS2dBR0FDcUFBZ0Fxd0FQQU9NQURRRGxBRGNBNXdBVEFPa0FGd0R4QUFjQkJRQU5BQVVBTmYraUFEYi8vUUEzLy9JQU9QLzBBRHIvNEFBRkFDdi8vUUExLzdrQU52LzlBRGYvL1FBNi8va0FCQUEyLy9zQU9QLzlBRHIvL1FCei83OEFCZ0ExLzZrQU4vL2lBRGovN2dBNS8vZ0FPdi9IQUR2Ly9BQUZBRFgvb2dBMi8vMEFOLy95QURqLzlBQTYvK0FBQmdBaS8rNEFLLy9ZQURYL3V3QTUvKzhBT3YvOEFEdi8wUUFFQURYL3NnQTMvL1lBT1AvNUFEci80QUFDQURYLzNBQTYvL2NBQlFBMS82RUFOdi85QURmLzhnQTQvL1FBT3YvZ0FBVUFEZi9zQUNMLytRQTEvNzhBT2YvMkFEdi8zZ0FGQUNMLytnQTEvN2dBT2YvMUFEci8vUUE3LytBQUF3QTEvN2dBT3YvN0FLei8rd0FGQUNMLytBQXIvL3dBTmYrL0FEbi85UUE3LzlzQUJBQTEvN0lBTi8vN0FEai8vUUE2Ly9RQUNnQTNBQklBU3dBSEFLZ0FHUUNyQUJnQTR3QUhBT1VBSndEbkFCb0E2UUFjQVBFQUJ3RUZBQmNBQVFCTi83OEFBZ0JMQURBQThRQXdBQUVBNVFBSUFBb0FtLy8zQUtnQUdRQ3AvL2dBcXdBUEFPVUFKQURuQUJJQTZRQVhBTzMvNEFFRkFBNEJJZ0FNQUFNQURmL05BRGYvL1FBNS8ra0FCUUFLQUJVQUlBQU9BRDRBR2dCZUFCb0JCUUFWQUFRQUlBQUhBUVVBR3dGTkFBWUJVQUFHQUFVQUNnQVZBQ0FBRndBK0FCUUFYZ0FhQVFVQURBQUNBQTMvK3dCWi8vc0FBUURsQUFnQUFRRGxBQWdBQVFEbEFBZ0FBUURsQUFnQUVRQURBQ01BQ0FBakFBb0FOUUFnQURvQVBnQTlBRjRBUFFDb0FEd0FxZ0EzQUtzQU9RRGpBRFVBNVFCZ0FPY0FQUURwQUQ4QThRQTNBUVVBTVFGTkFCa0JVQUFaQUFRQUlBQVBBRDRBQ1FCZUFBb0JCUUFUQUFFQTVRQUdBQWtBQXdBakFBZ0FJd0FLQUNnQUlBQXBBRDRBTGdCZUFDNEJCUUE1QVUwQUVRRlFBQkVBQlFBS0FCRUFJQUFYQUQ0QUdBQmVBQnNCQlFBS0FBVUFDZ0FYQUNBQUZ3QStBQndBWGdBZEFRVUFGQUFCQVFVQUZ3QUJBT1VBQ1FBWEFFTC8rZ0JILy9vQVZQLzZBRlgvK2dDYy8vb0FuZi82QUo3LytnQ2YvL29Bb1AvNkFLSC8rZ0NpLy9vQXZmLzZBTC8vK2dEQi8vb0JGLy82QVJuLytnRWIvL29CSGYvNkFSLy8rZ0VoLy9vQkkvLzZBVDcvK2dGQS8vb0FFUUFEQUJRQUNBQVVBQW9BS1FBZ0FDMEFQZ0F3QUY0QU1BQ29BQzhBcWdBcUFLc0FMQURqQUNjQTVRQlJBT2NBTUFEcEFESUE4UUFxQVFVQUpBRk5BQXNCVUFBTEFBTUFxQUFMQU9VQUJnRHBBQW9BQlFDb0FCRUFxd0FJQU9VQURBRHBBQkFCQlFBR0FCQUFuLy9iQUtnQUhBQ3FBQlVBcXdBVEFPTUFFUURsQUQ0QTV3QVhBT2tBR3dEdC82RUE4UUFVQVFVQUVnRVYvOWdCR2YvTkFSMy8yUUVpQUE4QkpmK3FBQkFBbi8vYkFLZ0FIQUNxQUJVQXF3QVRBT01BRVFEbEFENEE1d0FYQU9rQUd3RHQvNkVBOFFBVUFRVUFFZ0VWLzlnQkdmL05BUjMvMlFFaUFBOEJKZitxQUFzQUlBQUdBRDRBRFFCZUFBc0FxQUFIQUtvQURnQ3JBQWtBNHdBR0FPVUFNZ0RuQUEwQTZRQU1BUEVBRGdBWUFEVUFEZ0EzQUEwQU9nQUxBSmtBQ3dDZi85RUFxQUFRQUtvQUNnQ3JBQWNBNVFBeUFPY0FDd0RwQUE4QTdmL3lBUEVBQ2dFRkFBWUJGZi9RQVJuL3lRRWQvOUVCSGdBT0FTQUFEZ0VpQUFNQk1nQUxBVFFBQ3dFL0FBNEJlZ0FCQUFNQTVRQVJBTzMvOHdFRkFBRUFDZ0NiLy9jQXFBQVpBS24vK0FDckFBOEE1UUFrQU9jQUVnRHBBQmNBN2YvZ0FRVUFEZ0VpQUF3QUNnQ2IvL2NBcUFBWkFLbi8rQUNyQUE4QTVRQWtBT2NBRWdEcEFCY0E3Zi9nQVFVQURnRWlBQXdBQVFEbEFBMEFBUURsQUEwQUFRRGxBQTBBQVFFRkFFTUFFQUNmLzlzQXFBQWNBS29BRlFDckFCTUE0d0FSQU9VQVBnRG5BQmNBNlFBYkFPMy9vUUR4QUJRQkJRQVNBUlgvMkFFWi84MEJIZi9aQVNJQUR3RWwvNm9BQkFBTi8vY0FHLy81QUJ6LytRQlovLzBBQmdDb0FCUUFxd0FMQU9VQUlnRG5BQWtBNlFBU0FRVUFDUUFHQUtnQUZBQ3JBQXNBNVFBaUFPY0FDUURwQUJJQkJRQUpBQWtBcUFBWUFLb0FDQUNyQUE4QTR3QU5BT1VBTndEbkFCTUE2UUFYQVBFQUJ3RUZBQTBBQVFFaUFBRUFBZ0dOLy9nQmovL3dBQUlCamYvN0FZLy8rd0FCQVkzLzZnQURBQTMvMmdBUC85d0Jpdi9wQUFJVFpBQUVBQUFVNkJmaUFEWUFMQUFBLzlyLytmL2QvL1QvKy8vNy8vb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOEFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8xQUFBQUFQL3FBQUFBQVAvSC84WC81di9YLy92LzgvL3FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rLy84UUFBLy9QLzlQLzYvL1QveFAvRC8vdi80Z0FBQUFBQUFQL1UvOXYvMXYvWS8vYi84d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vWUFBQUFBLytrQUFBQUEvOGoveGYvay85Zi8rdi95LytnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC81QUFBQUFQL1YvOUgvL1Avci8vMy8rdi8zQUFELzRnQUFBQUFBQUFBQS85ci83Ly81LytILzV3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzRBQUQvL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvNi8vZ0FBQUFBLy9QLytBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzdBQUQvL2YvNS8va0FBQUFBQUFBQUFBQUFBQUFBQVAvQy8vb0FBUCtvQUFELy9RQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy9BQUFBQUFBQUFBQUFBQUFBUC80Lys4QUFQLzlBQUFBQUFBQUFBRC8vUC96Ly9jQUFBQUFBQUQvK3dBQUFBQUFBUC9uQUFELzVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9zQUFQLzgvL2IvOHdBQUFBQUFBQUFBQUFBQUFBQUEvK0QvOVFBQS8rTUFBUC85QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9sQUFELzV3QUFBQUQvOWdBQUFBQUFBQUFBQUFBQUFQLzlBQUFBQUFBQUFBQUFBQUFBLytrQUFQL3pBQUFBQVAvMC83VC8vQUFBLy9uLysvLzdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9uLytnQUEvL2ovK2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC81Ly9FQUFQLzcvL0wvOWdBQS8vY0FBQUFBQUFELyt2LzdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8rdi96QUFBQUFQLzAvL0FBQVAvdUFBQUFBQUFBLy9yLytRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOHdBQS8vbi85Zi8yQUFBQUFBQUFBQUFBQUFBQUFBRC8xLy8yQUFELzBBQUEvL3dBQUFBQUFBRC8rd0FBQUFBQUJmLzcvL2YvK1AvOEFBQUFBQUFBQUFBQUFBQUFBQW9BQUFBQUFBRC85QUFBQUFEL3cvL08vKzcvMmYvOC8vRC8zd0FBLzh3QUFBQUFBQUFBQVArMC83TC82ZisyLzY4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzlnQUEvL3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOVAvekFBRC8rUC94QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy9BQUFBQUFBQUFBQUFBQUFBUC8yLys4QUFQLzlBQUFBQUFBQUFBRC8vUC96Ly9ZQUFBQUFBQUQvK3dBQUFBQUFBUC9rQUFELzRRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLytjQUFQL2VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC85QUFBQUFBQUEvL0VBQUFBQS8vci9vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vUC82UUFBLy9zQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELysvLzVBQUFBQVAvNkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzRBQUFBQUQvN1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC85Ly8zLy9BQUFBQUFBQUFBQUFBQUFBQUFBLy9uLy9RQUEvL0wvKy8vOS8vb0FBQUFBQUFELyt2LzZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvVkFBRC81d0FBQUFEL3J3QUFBQm9BRi8vMkFBQUFBUCs0LzhJQUFBQVpBQUFBQVArNC83VUFBUC9FLzc4QUFQL0UvOGovK2YvSi82TC9yZitrLzg3L3pnQVYvNnYvcVArcC8vMEFEd0FRLzZJQUZBQUhBQUQvK1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vdi85QUFBQUFELzlQL3BBQUQvNS8vOUFBQUFBUC81Ly9nQUFBQUFBQUFBQUFBQUFBQUFBUC85QUFBQUFBQUEvK01BQVAvdUFBQUFBUC9yQUFBQUdRQVYvL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvL0FBQS85c0FBQUFBLytQL3l3QUFBQUQvOHYvdS8vVUFBQUFBQUFELzV2L24vK0lBQUFBQUFBQUFBQUFBQUFBQUFQL3FBQUQvOGYvNkFBRC84UC82QUFBQUFQLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLzBBQVAvZ0FBQUFBUC9vLzlZQUFQL1cvL1AvOC8vMy8vYi85QUFBLysvLzcvL3QvL3NBQUFBQS8vTUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzh3QUEvL24vOWYvMkFBQUFBQUFBQUFBQUFBQUFBQUQvMWdBQUFBRC96d0FBLy93QUFBQUFBQUQvK3dBQUFBQUFBUC83Ly9mLytBQUFBQUFBQUFBQUFBQUFBQUFBLzlJQUFQL3AvL2NBQVAvWi8vUUFGd0FULys4QUFQLzkvLzBBQUFBQUFCVUFBQUFBLy92LzlnQUEvOFFBQUFBQS84My94Zi80LzhiLzRQL1kvK0gvNXYvakFCTC96di9QLzhqLyt3QU1BQXovNEFBU0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8yQUFELy9mLzUvL3NBQUFBQUFBQUFBQUFBQUFBQUFQKysvL29BQVAvSUFBRC8vUUFBQUFBQUFQLzlBQUFBQUFBQS8vMy8rLy83QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC85QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvOUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvNnYvemdBQS8vRUFBQUFBQUFBQUFQL20vL3IvL2YvOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC85QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUFELytRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvN0FBQUFBQUFBQUFBQUFBQUFBQUFBQVAvOUFBQUFBQUFBLy92LytmLzQvL29BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvOUFBQUFBUCtpLzg4QUFQL3hBQUFBQUFBQUFBRC81Z0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9uLy9BQUFBQUFBQUFBQUFBQUFBUC85QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWNBQUFBQUFBQUFBQUFBQUFBQUFQLzVBQUFBQUFBQS85MEFBUC9kQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC85Ly9zQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQVAvdUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOGdBQS8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8yQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvL3ovK3YvNUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUFQL3JBQUQvNkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzkvL3ovL1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUVnQUFBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9zQUFBQUFBQUFBQUFBQUFBRC8ydi92QUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9uQUFBQUFBQUFBQUFBQUFBQUFBRC96d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy9mLzlBQUFBQUFBQUFBQUFBQUFBQUFELytnQUFBQUFBQUFBQUFBRC8vUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC85QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC85QUFBQUFBQUFBQUFBQUFBQUFBRC8vZi83Ly9rQUFQLzcvL1gvK2YvOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvWi8vbi8zLy8wLy92LytQLzRBQkFBQ1AvN0FBQUFBQUFBQUFBQUFBQUtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvKy8vNUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvMUFBRC8rLy9xQUFELytQL0gvOFgvNXYvWC8vdi84Ly9wQUFEL3l3QUFBQUFBQUFBQUFBQUFBUC92QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK2YvOHYvVi8vSC85QUFBLy9UL3hQL01BQUQvNlFBQUFBQUFBUC9uLytQL3ovL09BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUdBQUF3QUlBQWtBRFFBUEFCQUFFUUFTQUJNQUZBQVZBQllBRndBWUFCa0FHZ0FqQUNRQUp3QXNBQzBBTGdBeEFESUFOUUEzQURnQU9RQTZBRHNBUEFCQ0FFUUFSZ0JIQUVnQVRBQk5BRkFBVWdCVEFGUUFWUUJXQUZjQVdBQlpBRm9BV3dCY0FITUFld0NEQUprQW1nQ3BBS29BcXdDc0FNSUF4QURHQU1nQXl3RE5BT0lBNVFEbkFPa0E4UUR5QVBRQStnRVJBUlVCSGdFZ0FTRUJJZ0V3QVRJQk5BRTFBVGNCT1FFN0FUOEJTUUZNQVU4QllnRjVBWWNCaWdHTUFZMEFBZ0JBQUFNQUF3QUFBQWdBQ1FBQkFBMEFEd0FEQUNJQVBBQUdBRUlBUkFBaEFFY0FSd0FrQUVrQVNRQWxBRXdBVEFBbUFFNEFVUUFuQUZNQVV3QXJBRmNBWEFBc0FITUFjd0F5QUh3QWtnQXpBSlFBb1FCS0FLTUFvd0JZQUt3QXNnQlpBTFFBdEFCZ0FMa0F5Z0JoQU13QXpBQnpBTTRBemdCMEFOQUEwQUIxQU5JQTBnQjJBTlFBMUFCM0FOWUExZ0I0QU5nQTJBQjVBTm9BMmdCNkFOd0EzQUI3QU40QTNnQjhBT0FBNUFCOUFPWUE1Z0NDQU9nQTZBQ0RBT29BNmdDRUFPd0E3QUNGQU80QTdnQ0dBUEFBOEFDSEFQSUE5UUNJQVBjQTl3Q01BUGtBK1FDTkFQc0Erd0NPQVAwQS9RQ1BBUDhCRGdDUUFSQUJGZ0NnQVJnQkdBQ25BUm9CR2dDb0FSd0JIQUNwQVI0QkhnQ3FBU0FCSUFDckFTSUJJZ0NzQVNRQkpBQ3RBU1lCSmdDdUFTZ0JLQUN2QVNvQktnQ3dBU3dCTEFDeEFTNEJMZ0N5QVRBQk9nQ3pBVDBCUFFDK0FUOEJQd0MvQVVrQlRBREFBVTRCVHdERUFWRUJVUURHQVdJQllnREhBWFFCZEFESUFYa0JlUURKQVlBQmdnREtBQUVBQ1FGNkFBRUFBQUFBQUFBQUFnQURBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBR0FBY0FDQUFKQUFvQUN3QU1BQXdBRFFBT0FBOEFFQUFNQUJFQUVnQVRBQlFBRlFBV0FCY0FHQUFaQUJvQUd3QWNBQjBBQUFBQUFBQUFBQUFBQUI0QUh3QWdBQUFBQUFBaEFBQUFJd0FBQUFBQUlnQUFBQ01BSXdBa0FCOEFBQUFsQUFBQUFBQUFBQ1lBSndBb0FDa0FLZ0FyQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCUUFGQUFVQUNRQUhBQWtBQ1FBSkFBa0FEQUFNQUF3QURBQUlBQXdBRVFBUkFCRUFFUUFSQUFBQUVRQVhBQmNBRndBWEFCc0FMUUF1QUI0QUhnQWVBQjRBSGdBZUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFMd0FqQUNRQUpBQWtBQ1FBSkFBQUFDUUFBQUFBQUFBQUFBQXBBQjhBS1FBRkFCNEFCUUFlQUFVQUhnQUhBQ0FBQndBZ0FBY0FJQUFIQUNBQUNBQUFBQWdBQUFBSkFBQUFDUUFBQUFrQUFBQUpBQUFBQ1FBQUFBc0FBQUFMQUFBQUN3QUFBQXNBQUFBTUFDTUFEQUFqQUF3QUFBQU1BQUFBREFBQUFBd0FBQUFNQUFBQURRQUFBQTBBQUFBT0FDSUFJZ0FQQUFBQUR3QUFBQThBQUFBUEFBQUFEd0FBQUF3QUl3QU1BQ01BREFBakFDTUFEQUFqQUJFQUpBQVJBQ1FBRVFBa0FBa0FBQUFVQUNVQUZBQWxBQlFBSlFBVkFBQUFGUUFBQUJVQUFBQVZBQUFBRmdBQUFCWUFBQUFXQUFBQUZ3QUFBQmNBQUFBWEFBQUFGd0FBQUJjQUFBQVhBQUFBR1FBbkFCc0FLUUFiQUJ3QUtnQWNBQ29BSEFBcUFBQUFBQUFWQUFBQUZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQU1BQXdBeEFBQUFNZ0F4QUFBQU1nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURNQUFBQUFBQUFBQUFBMEFBQUFBQUFBQUFBQUFBQUFBRE1BTXdBMUFBRUFBd0YvQUJVQUFBQUFBQUFBQUFBVkFBQUFKd0FBQUFBQUhBQVdBQm9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFJUUFBQUFBQUFBQW9BQUFBQVFBQ0FBb0FBZ0FDQUFJQUNnQUNBQUlBQXdBQ0FBSUFCQUFDQUFvQUFnQUtBQUlBRHdBSUFBVUFFQUFMQUJFQUNRQVNBQUFBQUFBaUFBQUFBQUFBQUFZQUFBQWxBQ01BSlFBYkFDUUFBQUFBQUFBQUFBQUFBQjBBSFFBbEFDa0FJd0FkQUI0QURBQWZBQmNBRFFBVEFBNEFGQUFBQUFBQUtnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQkFBRUFBUUFCQUFFQUFRQUtBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQ2dBS0FBb0FDZ0FLQUFBQUNnQUZBQVVBQlFBRkFBa0FBZ0FBQUFZQUJnQUdBQVlBQmdBR0FBWUFKUUFsQUNVQUpRQWxBQUFBQUFBQUFBQUFKZ0FkQUNVQUpRQWxBQ1VBSlFBQUFDVUFId0FmQUI4QUh3QU9BQUFBRGdBQkFBWUFBUUFHQUFFQUJnQUtBQ1VBQ2dBbEFBb0FKUUFLQUNVQUFnQWpBQUlBSXdBQ0FDVUFBZ0FsQUFJQUpRQUNBQ1VBQWdBbEFBb0FKQUFLQUNRQUNnQWtBQW9BSkFBQ0FBQUFBZ0FBQUFJQUFBQUNBQUFBQWdBQUFBSUFBQUFDQUFBQUFnQUFBQU1BQUFBQ0FBQUFIUUFDQUFBQUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQUFJQUhRQUNBQjBBQWdBZEFCMEFBZ0FkQUFvQUpRQUtBQ1VBQ2dBbEFBb0FKUUFDQUIwQUFnQWRBQUlBSFFBUEFCNEFEd0FlQUE4QUhnQVBBQjRBQ0FBTUFBZ0FEQUFJQUF3QUJRQWZBQVVBSHdBRkFCOEFCUUFmQUFVQUh3QUZBQjhBQ3dBTkFBa0FEZ0FKQUJJQUZBQVNBQlFBRWdBVUFCc0FBQUFQQUI0QUNBQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQllBRmdBQUFCZ0FBQUFBQUJnQUFBQUFBQUFBQUFBYUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJzQUd3QWJBQnNBR3dBQUFBQUFHd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJrQUFBQUFBQUFBQUFBQUFDc0FBQUFBQUFBQUFBQUFBQmtBR1FBQUFBRUFBQUFLQURJQTBBQUJiR0YwYmdBSUFBUUFBQUFBLy84QUN3QUFBQUVBQWdBREFBUUFCUUFHQUFjQUNBQUpBQW9BQzJOaGMyVUFSR1J1YjIwQVNtWnlZV01BVUd4cFoyRUFibXh1ZFcwQWRHNTFiWElBZW05dWRXMEFnSEJ1ZFcwQWhuTnBibVlBakhOMWNITUFrblJ1ZFcwQW1BQUFBQUVBQUFBQUFBRUFGQUFBQUEwQUFnQURBQVFBQlFBR0FBY0FDQUFKQUFvQUN3QU1BQTBBRGdBQUFBRUFBUUFBQUFFQUVBQUFBQUVBRXdBQUFBRUFEd0FBQUFFQUVRQUFBQUVBRmdBQUFBRUFGUUFBQUFFQUVnQVpBRFFBUEFCRUFFd0FWQUJjQUdRQWJBQjBBSHdBaEFDTUFKUUFuQUNrQUt3QXRBQzhBTVFBekFEVUFOd0E1QURzQVBRQUFRQUFBQUVBeUFBRUFBQUFBUURxQUFZQUFBQUJBU0FBQmdBQUFBRUJMQUFHQUFBQUFRRTJBQVlBQUFBQkFVSUFCZ0FBQUFFQlVBQUdBQUFBQVFGZ0FBWUFBQUFCQVhJQUJnQUFBQUVCaGdBR0FBQUFBUUdjQUFZQUFBQUJBYlFBQmdBQUFBRUJ6Z0FHQUFBQUFRSHFBQVlBQUFBQkFmUUFBUUFBQUFFQ0FBQUJBQUFBQVFJeUFBRUFBQUFCQW1RQUFRQUFBQUVDaWdBQkFBQUFBUUt3QUFFQUFBQUJBdjRBQVFBQUFBRURUQUFCQUFBQUFRT2FBQUVBQUFBQkErZ0FBUUFBQUFFRC9nQUNBL3dBRWdGMUFYWUJkQUY3QVhjQmVBRjVBWG9CaEFGOEFZSUJmUUdEQVlBQmdRR0ZBWDRCZndBQkEvb0FBUUFJQUFZQURnQVdBQjRBSkFBcUFEQUJaUUFEQUVjQVNnRm1BQU1BUndCTkFXSUFBZ0JIQVdNQUFnQktBV2tBQWdCTEFXUUFBZ0JOQUFNQUFRUENBQUVEekFBQkE4SUFBUUFBQUJjQUF3QUFBQUVEcmdBQkE3NEFBUUFBQUJjQUF3QUFBQUVEbkFBQ0E3SURyQUFCQUFBQUZ3QURBQUFBQVFPSUFBTURuZ09lQTVnQUFRQUFBQmNBQXdBQUFBRURjZ0FFQTRnRGlBT0lBNElBQVFBQUFCY0FBd0FBQUFFRFdnQUZBM0FEY0FOd0EzQURhZ0FCQUFBQUZ3QURBQUFBQVFOQUFBWURWZ05XQTFZRFZnTldBMUFBQVFBQUFCY0FBd0FBQUFFREpBQUhBem9ET2dNNkF6b0RPZ002QXpRQUFRQUFBQmNBQXdBQUFBRURCZ0FJQXh3REhBTWNBeHdESEFNY0F4d0RGZ0FCQUFBQUZ3QURBQUFBQVFMbUFBa0MvQUw4QXZ3Qy9BTDhBdndDL0FMOEF2WUFBUUFBQUJjQUF3QUFBQUVDeEFBS0F0b0MyZ0xhQXRvQzJnTGFBdG9DMmdMYUF0UUFBUUFBQUJjQUF3QUJBc0FBQVFLZ0FBQUFBUUFBQUJnQUF3QUJBbzRBQVFLK0FBRUNwQUFCQUFBQUZ3QUNBckFBR2dHYUFZWUJod0dJQVlrQmlnR0xBWXdCalFHT0FZOEJtd0djQVowQm5nR2ZBWkFCa1FHU0FaTUJsQUdWQVpZQmx3R1lBWmtBQWdLZUFCb0FFUUFTQUJNQUZBQVZBQllBRndBWUFCa0FHZ0ZxQVdzQmJBRnRBVzRCYndGd0FYRUJjZ0Z6QUFVQVlRQmlBR01CUEFGYUFBSUNiZ0FVQUJFQUVnQVRBQlFBRlFBV0FCY0FHQUFaQUJvQmhnR0hBWWdCaVFHS0FZc0JqQUdOQVk0Qmp3QUNBbEFBRkFGcUFXc0JiQUZ0QVc0QmJ3RndBWEVCY2dGekFaQUJrUUdTQVpNQmxBR1ZBWllCbHdHWUFaa0FBZ0l5QUNnQm9BR2hBYUlCb3dHa0FhVUJwZ0duQWFnQnFRR2dBYUVCb2dHakFhUUJwUUdtQWFjQnFBR3BBYUFCb1FHaUFhTUJwQUdsQWFZQnB3R29BYWtCb0FHaEFhSUJvd0drQWFVQnBnR25BYWdCcVFBQ0Fkd0FLQUc3QWJ3QnZRRytBYjhCd0FIQkFjSUJ3d0hFQWJzQnZBRzlBYjRCdndIQUFjRUJ3Z0hEQWNRQnV3RzhBYjBCdmdHL0FjQUJ3UUhDQWNNQnhBRzdBYndCdlFHK0FiOEJ3QUhCQWNJQnd3SEVBQUlCaGdBb0Fhb0FkUUJ1QUc4QnF3R3NBYTBCcmdHdkFiQUJxZ0IxQUc0QWJ3R3JBYXdCclFHdUFhOEJzQUdxQUhVQWJnQnZBYXNCckFHdEFhNEJyd0d3QWFvQWRRQnVBRzhCcXdHc0FhMEJyZ0d2QWJBQUFnRXdBQ2dCc1FHeUFiTUJ0QUcxQWJZQnR3RzRBYmtCdWdHeEFiSUJzd0cwQWJVQnRnRzNBYmdCdVFHNkFiRUJzZ0d6QWJRQnRRRzJBYmNCdUFHNUFib0JzUUd5QWJNQnRBRzFBYllCdHdHNEFia0J1Z0FDQVBBQURBSEZBVmtCb0FHaEFhSUJvd0drQWFVQnBnR25BYWdCcVFBQkFEUUJxZ0FCQUJJQUNRQUtBQTRBSVFBOEFENEFYQUJlQUdBQWFBQnpBSGNBZXdGS0FVc0JWQUZYQVZnQUFRQUJBRWNBQWdBQkFCRUFHZ0FBQUFFQUFRQVFBQUVBQVFGWkFBSUFBUUdnQWFrQUFBQUNBQUlCV1FGWkFBQUJ1d0hFQUFFQUFRQUJBQUVBQWdBR0FBVUFCUUFBQUJFQUdnQUJBR0VBWXdBTEFUd0JQQUFPQVZvQldnQVBBV29CY3dBUUFBSUFBUUdHQVo4QUFBQUNBQUlCYWdGekFBQUJrQUdaQUFvQUFnQUNBQkVBR2dBQUFZWUJqd0FLQUFJQUF3QVJBQm9BQUFGcUFYTUFDZ0dHQVprQUZBQUNBQUlBQVFBQkFBQUFFQUFhQUFFQi9nQUZBUUVBQUFFK0FHMEJWZ0EvQXM0QUxBSTJBRFlDK1FBd0Fxd0FOZ0RMQUQ4QkxnQkpBUzRBSEFIVEFDUUNxd0JOQVA4QUd3SFlBRm9BL2dCTUFaUUFKQUp4QUQ4QjZRQXpBandBTndJM0FDZ0NYZ0FmQWpNQU1BSlhBRHNDRVFBakFsOEFPUUpYQURFQkpBQmZBU1VBTHdJdUFDRUNuUUJnQWk0QU93SHBBQ0FETlFBN0FuUUFDQUo2QUdBQzBnQXdBdVFBWUFJOUFHQUNDUUJnQXZnQU1RTDBBR0FCSXdCZ0Foa0FIZ0p2QUdBQ0VRQmdBMklBU2dMMUFHQUROUUF3QWw4QVlBTkJBREVDZ1FCZ0FpSUFLZ0pSQUFVQzJBQldBbmdBQmdPMEFDRUNaQUFXQWt3QUNBSmZBQ2tCTFFCbEFaUUFIQUV1QUNNQ1pRQkZBbElBSEFIekFLRUNFQUFqQWxnQVRBSWpBQ2dDV1FBckFpc0FLUUZRQUNnQ1VRQXJBbHNBVEFENUFFc0ErUC9KQWc0QVRBRUpBRVlEa2dCTUFsc0FUQUp3QUNjQ1dBQk1BbGtBS3dGM0FFd0J3QUFqQVdZQUh3SldBRVVCOWdBSEF5NEFFUUg4QUJZQi9nQUNBZ1VBSndGZUFERUJHd0JqQVY0QUh3SmdBRU1CSVFCZUFrQUFOUUpQQURnQ1h3QWNBYm9BTUFIekFINEROUUEyQWFZQVNRSXNBQ3dDWmdBOEF6VUFOZ0h6QUhvQmhRQXJBcWtBVEFHRkFDOEJoUUFvQWZNQW9RSnJBRk1DVGdBckFSTUFXQUh6QUtzQmhRQkJBZE1BUGdJdEFESUR4d0ExQThFQU5RUFRBQ2dCd2dBbkFuUUFDQUowQUFnQ2RBQUlBblFBQ0FKMEFBZ0NkQUFJQTI0QUJBTFVBRElDUFFCZ0FqMEFZQUk5QUdBQ1BRQmdBU01BREFFakFHQUJJd0FIQVNNQUZ3TDNBRGdDOVFCZ0F6VUFNQU0xQURBRE5RQXdBelVBTUFNMUFEQUNoUUEvQXpnQU1nTFlBRllDMkFCV0F0Z0FWZ0xZQUZZQ1RBQUlBbDhBWUFKTUFFd0NFQUFqQWhBQUl3SVFBQ01DRUFBakFoQUFJd0lRQUNNRFlBQWtBaVFBS1FJckFDa0NLd0FwQWlzQUtRSXJBQ2tBK2YvM0FQa0FUQUQ1Ly9NQStRQUNBazBBS3dKYkFFd0NjQUFuQW5BQUp3SndBQ2NDY0FBbkFuQUFKd0o3QUVFQ2NBQW5BbFlBUlFKV0FFVUNWZ0JGQWxZQVJRSCtBQUlDV0FCTUFmNEFBZ0owQUFnQ0VBQWpBblFBQ0FJUUFDTUNkQUFJQWhBQUl3TFNBREFDSXdBb0F0SUFNQUlqQUNnQzBnQXdBaU1BS0FMU0FEQUNJd0FvQXVRQVlBSjNBQ3NDOXdBNEFsa0FLd0k5QUdBQ0t3QXBBajBBWUFJckFDa0NQUUJnQWlzQUtRSTlBR0FDTEFBcEFqMEFZQUlyQUNrQytBQXhBbEVBS3dMNEFERUNVUUFyQXZnQU1RSlJBQ3NDK0FBeEFsRUFLd0wwQUdBQ1cvL3lBeUFBT0FKYkFBUUJJLy9xQVBuLzFRRWpBQk1BK2YvK0FTTUFEZ0Q1Ly9vQkl3QTFBUGtBSHdFakFHQUErUUJNQW1RQVlBSHpBRXNDR1FBZUFQai95UUp2QUdBQ0RnQk1BaEVBVEFJUkFHQUJDUUJHQWhFQVlBRUpBRVlDRVFCZ0FTY0FSZ0lSQUdBQlZBQkdBaWdBUEFGQkFDUUM5UUJnQWxzQVRBTDFBR0FDV3dCTUF2VUFZQUpiQUV3Q1cvLzhBdlFBWUFKYkFFd0ROUUF3QW5BQUp3TTFBREFDY0FBbkF6VUFNQUp3QUNjRHdBQXdBK2dBS0FLQkFHQUJkd0JNQW9FQVlBRjNBRW9DZ1FCZ0FYY0FUQUlpQUNvQndBQWpBaUlBS2dIQUFDTUNJZ0FxQWNBQUl3SWlBQ29Cd0FBakFsRUFCUUZuQUNBQ1VRQUZBV1lBSHdKb0FCQUJmUUFvQXRnQVZnSldBRVVDMkFCV0FsWUFSUUxZQUZZQ1ZnQkZBdGdBVmdKV0FFVUMyQUJXQWxZQVJRTFhBRllDVmdCRkE3UUFJUU11QUJFQ1RBQUlBZjRBQWdKTUFBZ0NYd0FwQWdVQUp3SmZBQ2tDQlFBbkFsOEFLUUlGQUNjQkZBQW9BamtBSEFJaUFDb0J3QUFqQWxFQUJRRm1BQjhCOHdCdkFmTUFid0h6QUhZQjlBRE9BZlFBcFFIekFLb0I4d0JSQWZNQVZnS3lBRmdDd2dCYUE0b0FXZ0RqQURFQTJ3QXpBUFFBS2dGeEFERUJhQUF6QVg4QUtnR21BQ29CeWdBOEFac0FNd01DQUV3RVd3QXdBV01BTEFGakFESUFxUCtIQWs4QUpnT3NBQmNDWlFBd0Fmd0FTQUpsQURrQ1pRQkVBbVVBUXdKbEFGQUNvQUFvQWtrQUtBSlpBQ2dEbVFBb0E2a0FLQUZQQUhjRWFnQXFBa2dBS0FJK0FDY0NQZ0JjQWo0QVFBSStBRElDUGdBVkFqNEFOUUkrQUMwQ1BnQThBajRBS0FJK0FDZ0IvZ0J0QVZRQVhBRlVBQzhCWHdCM0FXQUFRd0dTQUVVQmtnQS9BME1BU2dKUkFEOENVZ0JFQVlnQVB3R0lBRVFDNkFCdEE3QUFiUUUxQUdrQ0FnQklBVjBBZkFIQkFFWUNTUUEwQWRzQUtRSVZBQ3dDQkFBT0FrMEFHd0lTQUIwQ1NBQTdBZ0lBSFFKSEFETUNTQUFuQWo0QU1BSStBR0lDUGdCSEFqNEFOUUkrQUJ3Q1BnQTZBajRBTFFJK0FEb0NQZ0F1QWo0QUxBSVJBRElDTGdBMUFtNEFPUUp0QURJQ1BBQWNBbWNBT1FHRkFDVUJoUUJCQVlVQUx3R0ZBQ2dCaFFBV0FZVUFLd0dGQUNrQmhRQXVBWVVBSkFHRkFDUUJoUUFsQVlVQUZnR0ZBQ3NCaFFBcEFZVUFMZ0dGQUNRQmhRQWtBWVVBSlFHRkFFRUJoUUF2QVlVQUtBR0ZBQllCaFFBckFZVUFLUUdGQUM0QmhRQWtBWVVBSkFHRkFDVUJoUUJCQVlVQUx3R0ZBQ2dCaFFBV0FZVUFLd0dGQUNrQmhRQXVBWVVBSkFHRkFDUUFEZ0FBQVFFQUFBR3ZBRVk9IiwgImVuY29kaW5nIjogImJhc2U2NCJ9LCAiaGVhZGVyc1NpemUiOiAzMTcsICJib2R5U2l6ZSI6IDYyNTg1LCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiA2MjkwMn0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDEwNTMuNzc1LCAicmVjZWl2ZSI6IDE0MC40ODN9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5IiwgInNlcnZlcklQQWRkcmVzcyI6ICIxOC4xNzIuNTIuNDkiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIkNOPSoudHJ1c3RhcmMuY29tIiwgInZhbGlkRnJvbSI6IDE3MTA1NDcyMDAsICJ2YWxpZFRvIjogMTc0NDY3NTE5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjA5LjQxNVoiLCAidGltZSI6IDEwMDIuMjExLCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9nZXQ/bmFtZT1NdXNlb1NhbnMtMzAwLm90ZiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJSZWZlcmVyIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mci8ifSwgeyJuYW1lIjogIlVzZXItQWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxN18zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNy4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xIn0sIHsibmFtZSI6ICJBY2NlcHQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogIkFjY2VwdC1MYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLURlc3QiLCAidmFsdWUiOiAiZm9udCJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLU1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAiSG9zdCIsICJ2YWx1ZSI6ICJjb25zZW50LnRydXN0YXJjLmNvbSJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJuYW1lIiwgInZhbHVlIjogIk11c2VvU2Fucy0zMDAub3RmIn1dLCAiaGVhZGVyc1NpemUiOiAzODMsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9LCB7Im5hbWUiOiAiQ29udGVudC1MZW5ndGgiLCAidmFsdWUiOiAiNjI5MjQifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiVHVlIn0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIjE4IEp1biAyMDI0IDA0OjU3OjU1IEdNVCJ9LCB7Im5hbWUiOiAiUHJhZ21hIiwgInZhbHVlIjogInB1YmxpYyJ9LCB7Im5hbWUiOiAiVmlhIiwgInZhbHVlIjogIjEuMSA1MTllMmJmZWY0YzY2NWJjZjJkNmJjM2EzNzRjNWY4Mi5jbG91ZGZyb250Lm5ldCAoQ2xvdWRGcm9udCkifSwgeyJuYW1lIjogIkFnZSIsICJ2YWx1ZSI6ICIzMzczIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MjU5MjAwMCJ9LCB7Im5hbWUiOiAiVmFyeSIsICJ2YWx1ZSI6ICJPcmlnaW4ifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiSGl0IGZyb20gY2xvdWRmcm9udCJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIk5SVDIwLVAyIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJYREdPSExpVjlNRnlfeXpmdEE1OTFkTW9zY09xYW9IeVNWbTNMY2xqaTczOER4Y3dYV0hsWHc9PSJ9LCB7Im5hbWUiOiAic3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwOyBpbmNsdWRlU3ViRG9tYWlucyJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiA2MjkyNCwgIm1pbWVUeXBlIjogImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsICJjb21wcmVzc2lvbiI6IDAsICJ0ZXh0IjogIlQxUlVUd0FMQUlBQUF3QXdRMFpHSVBFYjBjb0FBQWtJQUFDN0NFZFFUMU9GcDhZckFBREVFQUFBSS9aSFUxVkNuOFRtWEFBQTZBZ0FBQWFrVDFNdk1uOU1mK2dBQUFFZ0FBQUFZR050WVhDZlpaM1FBQUFGdEFBQUF6Um9aV0ZrN01FL29RQUFBTHdBQUFBMmFHaGxZUWQ1QkxrQUFBRDBBQUFBSkdodGRIaTdnbWpzQUFEdXJBQUFCeUJ0WVhod0FjaFFBQUFBQVJnQUFBQUdibUZ0WmNyNEpIVUFBQUdBQUFBRU5IQnZjM1QvdUFBeUFBQUk2QUFBQUNBQUFRQUFBQUVBQVBWVEloaGZEenoxQUFNRDZBQUFBQURFNy80UUFBQUFBTVR2L2hEL2l2OHVCRUFEY3dBQUFBTUFBZ0FBQUFBQUFBQUJBQUFEclA3OEFBQUVhditLLzRvRVFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQnlBQUFVQUFCeUFBQUFBSUNHQUVzQUFVQUFBSzhBb29BQUFDTUFyd0NpZ0FBQWQwQU1nRDZBQUFDQUFBQUFBQUFBQUFBb0FBQXIwQUFBRW9BQUFBQUFBQUFBSGhzYW1JQUFBQWcrd1FDN3Y4R0FNZ0RyQUVFSUFBQWt3QUFBQUFCOUFLOEFBQUFJQUFMQUFBQUhnRnVBQUVBQUFBQUFBQUFPQUFBQUFFQUFBQUFBQUVBQ2dBNEFBRUFBQUFBQUFJQUF3QkNBQUVBQUFBQUFBTUFFUUJGQUFFQUFBQUFBQVFBRGdCV0FBRUFBQUFBQUFVQUJRQmtBQUVBQUFBQUFBWUFEUUJwQUFFQUFBQUFBQWNBS2dCMkFBRUFBQUFBQUFnQURBQ2dBQUVBQUFBQUFBa0FEQUNnQUFFQUFBQUFBQW9BSFFDc0FBRUFBQUFBQUFzQUh3REpBQUVBQUFBQUFBd0FId0RKQUFFQUFBQUFBQkFBQ2dBNEFBRUFBQUFBQUJFQUF3QkNBQU1BQVFRSkFBQUFjQURvQUFNQUFRUUpBQUVBSEFGWUFBTUFBUVFKQUFJQURnRjBBQU1BQVFRSkFBTUFJZ0dDQUFNQUFRUUpBQVFBR2dHa0FBTUFBUVFKQUFVQUNnRytBQU1BQVFRSkFBWUFHZ0drQUFNQUFRUUpBQWNBVkFISUFBTUFBUVFKQUFnQUdBSWNBQU1BQVFRSkFBa0FHQUljQUFNQUFRUUpBQW9BT2dJMEFBTUFBUVFKQUFzQVBnSnVBQU1BQVFRSkFBd0FQZ0p1QUFNQUFRUUpBQkFBRkFLc0FBTUFBUVFKQUJFQUJnTEFRMjl3ZVhKcFoyaDBJQ2hqS1NBeU1EQTRJR0o1SUVwdmN5QkNkV2wyWlc1bllTNGdRV3hzSUhKcFoyaDBjeUJ5WlhObGNuWmxaQzVOZFhObGJ5QlRZVzV6TXpBd1JrOU9WRXhCUWpwUFZFWkZXRkJQVWxSTmRYTmxieUJUWVc1eklETXdNREV1TURBd1RYVnpaVzlUWVc1ekxUTXdNRTExYzJWdklGTmhibk1nYVhNZ1lTQjBjbUZrWlcxaGNtc2diMllnU205eklFSjFhWFpsYm1kaExrcHZjeUJDZFdsMlpXNW5ZVk53WVdObFpDQmhibVFnYTJWeWJtVmtJSGRwZEdnZ2FVdGxjbTR1YUhSMGNEb3ZMM2QzZHk1cWIzTmlkV2wyWlc1bllTNWtaVzF2Ymk1dWJBQkRBRzhBY0FCNUFISUFhUUJuQUdnQWRBQWdBQ2dBWXdBcEFDQUFNZ0F3QURBQU9BQWdBR0lBZVFBZ0FFb0Fid0J6QUNBQVFnQjFBR2tBZGdCbEFHNEFad0JoQUM0QUlBQkJBR3dBYkFBZ0FISUFhUUJuQUdnQWRBQnpBQ0FBY2dCbEFITUFaUUJ5QUhZQVpRQmtBQzRBVFFCMUFITUFaUUJ2QUNBQVV3QmhBRzRBY3dBZ0FETUFNQUF3QUZJQVpRQm5BSFVBYkFCaEFISUFSZ0JQQUU0QVZBQk1BRUVBUWdBNkFFOEFWQUJHQUVVQVdBQlFBRThBVWdCVUFFMEFkUUJ6QUdVQWJ3QlRBR0VBYmdCekFDMEFNd0F3QURBQU1RQXVBREFBTUFBd0FFMEFkUUJ6QUdVQWJ3QWdBRk1BWVFCdUFITUFJQUJwQUhNQUlBQmhBQ0FBZEFCeUFHRUFaQUJsQUcwQVlRQnlBR3NBSUFCdkFHWUFJQUJLQUc4QWN3QWdBRUlBZFFCcEFIWUFaUUJ1QUdjQVlRQXVBRW9BYndCekFDQUFRZ0IxQUdrQWRnQmxBRzRBWndCaEFGTUFjQUJoQUdNQVpRQmtBQ0FBWVFCdUFHUUFJQUJyQUdVQWNnQnVBR1VBWkFBZ0FIY0FhUUIwQUdnQUlBQnBBRXNBWlFCeUFHNEFMZ0JvQUhRQWRBQndBRG9BTHdBdkFIY0Fkd0IzQUM0QWFnQnZBSE1BWWdCMUFHa0FkZ0JsQUc0QVp3QmhBQzRBWkFCbEFHMEFid0J1QUM0QWJnQnNBRTBBZFFCekFHVUFid0FnQUZNQVlRQnVBSE1BTXdBd0FEQUFBQUFEQUFBQUF3QUFBaFFBQVFBQUFBQUFIQUFEQUFFQUFBSVVBQVlCK0FBQUFBa0E5d0FCQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQ0FBTUFCQUFGQUFZQUJ3QUlBQWtBQ2dBTEFBd0FEUUFPQUE4QUVBQVJBQklBRXdBVUFCVUFGZ0FYQUJnQUdRQWFBQnNBSEFBZEFCNEFId0FnQUNFQUlnQWpBQ1FBSlFBbUFDY0FLQUFwQUNvQUt3QXNBQzBBTGdBdkFEQUFNUUF5QURNQU5BQTFBRFlBTndBNEFEa0FPZ0E3QUR3QVBRQStBRDhBUUFCQkFFSUFRd0JFQUVVQVJnQkhBRWdBU1FCS0FFc0FUQUJOQUU0QVR3QlFBRkVBVWdCVEFGUUFWUUJXQUZjQVdBQlpBRm9BV3dCY0FGMEFYZ0JmQUFBQWdBQ0JBSU1BaFFDTkFKSUFtQUNkQUp3QW5nQ2dBSjhBb1FDakFLVUFwQUNtQUtjQXFRQ29BS29BcXdDdEFLOEFyZ0N3QUxJQXNRQzJBTFVBdHdDNEFWSUFiQUJoQUdJQVpBRlVBSElBbXdCcUFHWUJXd0J3QUdVQlh3Q0NBSlFCWFFCdEFXQUJZUUJqQUhFQUFBQUFBQUFBQUFBQUFHY0FkZ0FBQUtJQXRBQjdBR0FBYVFBQUFUd0JYZ0FBQUdnQWR3RlZBY2NBZkFCL0FKRUJEZ0VQQVVvQlN3RlBBVkFCVEFGTkFMTUFBQUM3QVRRQldRRmFBVmNCV0FGakFXUUJVd0J6QVU0QlVRRldBSDRBaGdCOUFJY0FoQUNKQUlvQWl3Q0lBSThBa0FBQUFJNEFsZ0NYQUpVQTdRRkJBVWNBYXdGREFVUUJSUUIwQVVnQlJnRkNBQVFCSUFBQUFFUUFRQUFGQUFRQWZnQ2dBS01BcFFDc0FLMEJmd0dTQWhzQ3h3TGRBN3dlbmlBSklCUWdHaUFlSUNJZ0ppQXdJRG9nUkNCd0lIa2dpU0NzSVNJaUVpSWVJa2dpWUNKbCt3VC8vd0FBQUNBQW9BQ2hBS1VBcHdDdEFLNEJrZ0lZQXNZQzJBTzhIcDRnQ1NBVElCZ2dIQ0FnSUNZZ01DQTVJRVFnY0NCMElJQWdyQ0VpSWhJaUhpSklJbUFpWlBzQS8vLy80UUVuLzcvL3Z2KzlBUm4vdlArcS95WCtlLzVyL0xYaXErRzg0VGZoTk9FejRUTGhMK0VtNFI3aEZlRTY0VGZoTWVDdTREbmZTdDgvM3hiZS85NzhCbUlBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1BQUFBQUFBRC90UUF5QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBUUNBQUVCQVE1TmRYTmxiMU5oYm5NdE16QXdBQUVCQVRENEVBRDQ3d0g0OEF3QStQRUMrUEVEK0JZRSt3cjdadnJVK2djRkhRQUFHWVlQcEIwQUFLenBFaDBBQUJzQkVRRFhBZ0FCQUFnQUR3QVZBQnNBSWdBcEFDOEFOUUJBQUVzQVZRQmZBR1VBYXdCeEFIY0FmUUNEQUlvQWtRQ1hBSjBBcHdDeEFMZ0F2d0RGQU1zQTFnRGhBT2NBN1FEM0FRRUJEUUVaQVNRQkx3RXpBVGNCUFFGREFVb0JVUUZYQVYwQlpBRnJBWFVCZHdGNUFZUUJqd0diQWFjQnN3RzVBYjhCeXdIWEFkMEI0d0huQWVzQjhRSDNBZ01DRHdJVkFoc0NKZ0lwQWl3Q013STZBa0FDUmdKVEFtQUNaZ0pzQW5nQ2hBS0tBcEFDbGdLY0FxY0NzZ0s2QXNJQ3pnTGFBdUFDNWdMcUF1NEM5QUw2QXdFRENBTU9BeFFER1FNZUF5c0RPQU0vQTBZRFVRTmNBMmNEY2dONEEzNERpQU9TQTVjRG93T3ZBN1lEdlFQRUE4Z0QwQVBiQStNRDdBUDRBL3NFQUFRRkJCQUVGUVFZQkNFRUtRUXhCRHNFUkFSTkJGVUVYd1JwQkhJRWZRU0xCSm9FcWdTN0JNa0UyQVRmQlBFRkJBVVdCU2tGTkFVL0JWSUZZd1Z5QlgwRmh3V1FCWmtGcEFXdUJiZ0Z3UVhNQmRjRjRRWHJCZlFGL1FZSUJoSUdIQVlsQmpBR093WkZCazhHVndaakJtb0dkQVo4Qm9vR2x3YWtCck1Hd1FiUEJ0d0c2d2I2QndnSEdBY25CellIUndkWEIyY0hkZ2VIQjVnSHFBZXhCN2dIdndmM0NCUUlJa0Z0WVdOeWIyNWhiV0ZqY205dVFXSnlaWFpsWVdKeVpYWmxRVzluYjI1bGEyRnZaMjl1Wld0RFlXTjFkR1ZqWVdOMWRHVkRZMmx5WTNWdFpteGxlR05qYVhKamRXMW1iR1Y0UTJSdmRHRmpZMlZ1ZEdOa2IzUmhZMk5sYm5SRFkyRnliMjVqWTJGeWIyNUVZMkZ5YjI1a1kyRnliMjVFWTNKdllYUmtZM0p2WVhSRmJXRmpjbTl1WlcxaFkzSnZia1ZpY21WMlpXVmljbVYyWlVWa2IzUmhZMk5sYm5SbFpHOTBZV05qWlc1MFJXOW5iMjVsYTJWdloyOXVaV3RGWTJGeWIyNWxZMkZ5YjI1SFkybHlZM1Z0Wm14bGVHZGphWEpqZFcxbWJHVjRSMkp5WlhabFoySnlaWFpsUjJSdmRHRmpZMlZ1ZEdka2IzUmhZMk5sYm5SSFkyOXRiV0ZoWTJObGJuUm5ZMjl0YldGaFkyTmxiblJJWTJseVkzVnRabXhsZUdoamFYSmpkVzFtYkdWNFNHSmhjbWhpWVhKSmRHbHNaR1ZwZEdsc1pHVkpiV0ZqY205dWFXMWhZM0p2YmtsaWNtVjJaV2xpY21WMlpVbHZaMjl1Wld0cGIyZHZibVZyU1dSdmRHRmpZMlZ1ZEVsS2FXcEtZMmx5WTNWdFpteGxlR3BqYVhKamRXMW1iR1Y0UzJOdmJXMWhZV05qWlc1MGEyTnZiVzFoWVdOalpXNTBhMmR5WldWdWJHRnVaR2xqVEdGamRYUmxiR0ZqZFhSbFRHTnZiVzFoWVdOalpXNTBiR052YlcxaFlXTmpaVzUwVEdOaGNtOXViR05oY205dVRHUnZkR3hrYjNST1lXTjFkR1Z1WVdOMWRHVk9ZMjl0YldGaFkyTmxiblJ1WTI5dGJXRmhZMk5sYm5ST1kyRnliMjV1WTJGeWIyNXVZWEJ2YzNSeWIzQm9aVVZ1WjJWdVowOXRZV055YjI1dmJXRmpjbTl1VDJKeVpYWmxiMkp5WlhabFQyaDFibWRoY25WdGJHRjFkRzlvZFc1bllYSjFiV3hoZFhSU1lXTjFkR1Z5WVdOMWRHVlNZMjl0YldGaFkyTmxiblJ5WTI5dGJXRmhZMk5sYm5SU1kyRnliMjV5WTJGeWIyNVRZV04xZEdWellXTjFkR1ZUWTJseVkzVnRabXhsZUhOamFYSmpkVzFtYkdWNFUyTmxaR2xzYkdGelkyVmthV3hzWVZSamIyMXRZV0ZqWTJWdWRIUmpiMjF0WVdGalkyVnVkRlJqWVhKdmJuUmpZWEp2YmxSaVlYSjBZbUZ5VlhScGJHUmxkWFJwYkdSbFZXMWhZM0p2Ym5WdFlXTnliMjVWWW5KbGRtVjFZbkpsZG1WVmNtbHVaM1Z5YVc1blZXaDFibWRoY25WdGJHRjFkSFZvZFc1bllYSjFiV3hoZFhSVmIyZHZibVZyZFc5bmIyNWxhMWRqYVhKamRXMW1iR1Y0ZDJOcGNtTjFiV1pzWlhoWlkybHlZM1Z0Wm14bGVIbGphWEpqZFcxbWJHVjRXbUZqZFhSbGVtRmpkWFJsV21SdmRHRmpZMlZ1ZEhwa2IzUmhZMk5sYm5Sc2IyNW5jMU5qYjIxdFlXRmpZMlZ1ZEhOamIyMXRZV0ZqWTJWdWRIVnVhVEF5TVVGMWJta3dNakZDZFc1cE1VVTVSVVYxY205cGJtWnBibWwwZVdGd2NISnZlR1Z4ZFdGc2JtOTBaWEYxWVd4c1pYTnpaWEYxWVd4bmNtVmhkR1Z5WlhGMVlXeG1YMlptWDJaZmFXWmZabDlzWTI5dGJXRmhZMk5sYm5SaGNIQnNaV1pmYW5wbGNtOHVkRzUxYlc5dVpTNTBiblZ0ZEhkdkxuUnVkVzEwYUhKbFpTNTBiblZ0Wm05MWNpNTBiblZ0Wm1sMlpTNTBiblZ0YzJsNExuUnVkVzF6WlhabGJpNTBiblZ0WldsbmFIUXVkRzUxYlc1cGJtVXVkRzUxYldoNWNHaGxiaTVqWVhObGNHRnlaVzVzWldaMExtTmhjMlZ3WVhKbGJuSnBaMmgwTG1OaGMyVmljbUZqYTJWMGJHVm1kQzVqWVhObFluSmhZMnRsZEhKcFoyaDBMbU5oYzJWaWNtRmpaV3hsWm5RdVkyRnpaV0p5WVdObGNtbG5hSFF1WTJGelpXRjBMbU5oYzJWbmRXbHNiR1Z0YjNSc1pXWjBMbU5oYzJWbmRXbHNiR1Z0YjNSeWFXZG9kQzVqWVhObFozVnBiSE5wYm1kc2JHVm1kQzVqWVhObFozVnBiSE5wYm1kc2NtbG5hSFF1WTJGelpXVnVaR0Z6YUM1allYTmxaVzFrWVhOb0xtTmhjMlZ3WlhKcGIyUmpaVzUwWlhKbFpDNWpZWE5sY1hWbGMzUnBiMjVrYjNkdUxtTmhjMlZsZUdOc1lXMWtiM2R1TG1OaGMyVmlkV3hzWlhRdVkyRnpaWHBsY204dWNGOXZjMlp2Ym1VdWNGOXZjMlowZDI4dWNGOXZjMlowYUhKbFpTNXdYMjl6Wm1admRYSXVjRjl2YzJabWFYWmxMbkJmYjNObWMybDRMbkJmYjNObWMyVjJaVzR1Y0Y5dmMyWmxhV2RvZEM1d1gyOXpabTVwYm1VdWNGOXZjMlo2WlhKdkxuUmZiM05tYjI1bExuUmZiM05tZEhkdkxuUmZiM05tZEdoeVpXVXVkRjl2YzJabWIzVnlMblJmYjNObVptbDJaUzUwWDI5elpuTnBlQzUwWDI5elpuTmxkbVZ1TG5SZmIzTm1aV2xuYUhRdWRGOXZjMlp1YVc1bExuUmZiM05tWkc5c2JHRnlMbTl6Wm1ObGJuUXViM05tYzNSbGNteHBibWN1YjNObWVXVnVMbTl6Wm1ac2IzSnBiaTV2YzJaRmRYSnZMbTl6Wm5wbGNtOHViblZ0WlhKaGRHOXliMjVsTG01MWJXVnlZWFJ2Y25SM2J5NXVkVzFsY21GMGIzSjBhSEpsWlM1dWRXMWxjbUYwYjNKbWIzVnlMbTUxYldWeVlYUnZjbVpwZG1VdWJuVnRaWEpoZEc5eWMybDRMbTUxYldWeVlYUnZjbk5sZG1WdUxtNTFiV1Z5WVhSdmNtVnBaMmgwTG01MWJXVnlZWFJ2Y201cGJtVXViblZ0WlhKaGRHOXllbVZ5Ynk1a1pXNXZiV2x1WVhSdmNtOXVaUzVrWlc1dmJXbHVZWFJ2Y25SM2J5NWtaVzV2YldsdVlYUnZjblJvY21WbExtUmxibTl0YVc1aGRHOXlabTkxY2k1a1pXNXZiV2x1WVhSdmNtWnBkbVV1WkdWdWIyMXBibUYwYjNKemFYZ3VaR1Z1YjIxcGJtRjBiM0p6WlhabGJpNWtaVzV2YldsdVlYUnZjbVZwWjJoMExtUmxibTl0YVc1aGRHOXlibWx1WlM1a1pXNXZiV2x1WVhSdmNuUm9hVzV6Y0dGalpYVnVhVEF3UVVSMWJta3dNRUV3UTI5d2VYSnBaMmgwSUNoaktTQXlNREE0SUdKNUlFcHZjeUJDZFdsMlpXNW5ZUzRnUVd4c0lISnBaMmgwY3lCeVpYTmxjblpsWkM1VGNHRmpaV1FnWVc1a0lHdGxjbTVsWkNCM2FYUm9JR2xMWlhKdUxrMTFjMlZ2SUZOaGJuTWdNekF3QU5JQ0FBRUFOZ0JsQUhFQWZnQ0RBSm9Bb3dFRkFTVUJOQUYxQVlRQmtnR2pBYk1CeHdIMUFnb0NWUUpzQW5FQ3BBTE9BdDhDNGdMbkF2d0RBZ01OQXhrRElRTWxBeW9EV2dPQUE0UURzZ1BBQTlBRDhRUDJBL29FQndRTEJIa0Vmd1RxQlB3RkV3VWpCVFVGUUFXU0JhZ0Z1UVhEQmMwRjN3WXhCb0lHMGdiakJ1a0hOQWRBQjBRSFR3ZVJCOUVIM3dnZUNDSUlaQWh1Q0hzSWdRaUtDSTRJbndpckNPSUk2d2p2Q1BnSkFRa0tDUllKSUFrdkNUVUpYZ21QQ1pNSm1nbWpDYWNKc3duQUNjc0owQW5ZQ2Q0SjdnbnlDZ1VLRndvZkNrUUtSd3B1Q29BS2pRcVRDcGdLcEFxcENyY0t4UXJVQ3RrSzNRcmxDdklLOXdyL0N3UUxIUXNuQ3k0TFN3dFpDMThMYXd0dkMzWUxrUXVhQzZNTHFndXZDN1FMdWd1L0M5SUw1d3ZzQy9FTDlndjhEQkFNRmd3ZERDTU1LQXdzRERVTU93eEFERVFNU2d4WURHY01iQXgyREg0TWpReWNES0VNcUF5dURMTU13UXpFRE1nTTFRemRET0VNNlF6dERQa05CUTBQRFJVTkd3MGZEU29OTlExQURVUU5TdzFRRFZVTldRMWNEV1lOY0ExNkRZUU5pUTJORFpNTm5BMmdEYVFOcWcydkRiUU51UTI5RGNEQnVoMzdZdmN6K3piM1czTWQ5MTc3TS9jeCsxdjdXL3N6YVFyM0UvY1Q5elAzTXZjVSt4UDdQSFFkK3pQN0UvY1k5MEFlQzdqM2toWDdMUGNMK3diM0ozSUs5eW43Qy9jRSt5ZHpDaDUxSGZjQTR6YjdCdnNKTXpQN0FQc0FNK1AzQ1I0TGszV09lSG9hY1QwZHFVd0tGYzA3Q3MwR04vY0xCVUFHRGhQZ0lnb0w2UGVKRmZzdzl3SW05elQzTS9jQjhQY3dIak1kQnd1cUhSUE1JQjBUTUFzVk05aGQxOTNOd2RLOGJxZGxvUjZUazd5N3h4cllSckZISGhQWVIwaGxRV0NoYjZwMkh4UG9kMzVYWWt3YTk0bURGVjVjYkY1YVc2dkJ1ckNybjVrZXlXM1JlRlVhRTlqN1AvZHJGYmV6bjdLMHRYVmVYbXhvZm40ZVVhUlBucjhhRHEwZEU3TzB6UW9uNGxyZjl4SzE5d0dMdUIxeUdoTnpJd29UczJrZEV3d0w5N1oveS9qcnk4VjI5d3QzSmgwTGkycmYreG43R3pnayt5djdLK1FnOXh2WnZxdkRxYmdkZUJwZEIvc0VQVjBwUVUydWl4NzNPUGRHRlNkSzJmY005d3pFMHUzazBWNzdKL3NvUlZvOEh3dkN5UXIzS040SzkwSHIzeDB1Q2d2amY4ajRLTW5sZHZjTGR5Y0tDOTBkRTZZeEhSTm1jUW9UcGtZZEV4Z0x0TWdWaTh0Qzl3N3cwc2JkSGpBS0M3cjNqeFg3TVBjSElQY3A5eFRQMm9zZU5oMEx3dmNHekwxSzk2TlVCdnRvKzY4RlpmZG9CL3NrdlJXTkIvY0Y5eWNGbTZHYnBvc2FaeDJJYUhBYSt4d0hDOWIzU3hYN0Y3MUw5d3IzQTgzWnZKK0ZIWFVhQzgwZDk3ejNSUWIzTS91OEJkb0creTMzcndXQW5vU1VpeHFOQjlxaHdkVHFHdUJqemttb0hwZHZhNUpERy90a0J0RDc3Ulgzci9jaUI4R2toWUNnSDdSMW9tQlJHak5WVkRZZUMvaGVSdnhiQi9zUFBFTDdEZnNOUGRUM0RSNzRYVVVMRThnckhRdjNxcjM3Y2dhUjl3YjNaSkwzSnhyVFY4STNOMkJLaXg2dmFBV0xyN3pBdkt4b1lSNzdCUHR0Zy9zNkdvS01nSTJBSGc1c3dBV0xVRVFsK3dNMDMvY0s5d3poM2ZjQzVzTk9peDZ1dmdXTFR0UDdEL3NvK3dqN0Fmc3ZIZ3YzQk5XWnNwbVZZZ3BTK3dsMit6b2VDenNkRGhQSUx4MEwrNWI1VTY0Sys1YjlVd1hVQnR2M2RBWDNyd1lMa0FyaFRnb0w5MWF5Q3NMVE5CMFRNQXVFY245dEhzTUdtcXlUcGd2eEZrTUsvQ0FHQ3pjZGVRdDI5d3QzQzdZVytJbkovQUFHYVhtSml4K05CNHVqcGFXeEh2Zi8rS1FGdlB4elRmZnFCNjJjWVIxMGNIRm1IdnYvL0tRRkN4VzBycWkxdFdpb1ltSnBibUZoclc2MEg3RUVlSDZabnArWW1aNmZtSDEzZUg1OWR4OE9GVEFkRGhYM0I3RHU5eFgzRkdidSt3ZjdCMllvK3hUN0ZiQW85d2NmdndSQWR0anU3YURZMXRXaFBpa29kVDVCSHc0VnllRk5CdnNyTlJYSTRVNEdDL3NCUkNiN0J5cC8wZG9lOThKSEJ3djNEUHNHRlhGVEJYSzh4WHpGRy9jUDl3cko5elFmK0g5SlZBZUFqSVhSQ2d0V0NsOEtDMEFkRWdzUzhkRDRMOUFUekRVS0V6QUwvWklrQ3ZkZUZmc1o5d002OXhQM0hPem85d0xVWDdoUnJCNFQwcE9UMmQzdkd2Y0NOOVQ3Ri9zaVJUUXdTTEJndldvZUUrSjdnU2hHK3dVYStDU0JGVGc4VWpnMk9jWHE1ZHJEb1pnZTgxbjNFR3d3R2hQTSs4TDM3QlhLdjcvbDRNZGNRRGRQVEg1L0hpYTMrd1dxNWhvTzJQY0xTUW9MOTFFVit4SDNBVC8zRVBjWjYrUHkwVjYxVWFvZUU5S1VsTmpXNlJyeE9OSDdFL3NkUlRrMVM3Qmp2bXdlRStKeGV6RkxKeHI0SElFVlBqMVdPamc3d2VUZTJyNmptQjd3WGZjS2JqWWFFOHo3dlBmWUZjZkF1dURleDJCRlBVMVFmb0FlS2JUN0FLamZHZzdDSGRGQUhSTHgwUGZHMGhQbU1oMFRHQXZDOS9RVisyWDNMUHN2OTFUM0tOenFod3FLZkh3YUMzRWRueDdmUFFyN0JrZytXM2pHQ2d0bWtWRi9IV25IYzY0ZSsvdjRqZ1ZJQmdzZStCYm5IYUtYR3ZjUkMvZFBGdFVHOXcvMytnV1RwSktvaXhwbkhaSnVsSEllOXcvNytnWFZCdmMrK0l2bUN2c08vQXNGZzNLRWJuVUtoS21Eb3g3N0VQZ0pCVWdHK3hEOENRV0RjNFJ0ZFFxRXFZT2pIdnNPK0F2bUNnc1Z4d2JpOXdzRlBnYjdZUHNMRmN3R3ovY0xCZkVkRmRVRzl6ajNZZnM0eWgzM09QdGlCUXZIdzYvU0g1cFVmZ2NMWDIxNWJHeHVuYmNlQy9EM1N4WDdQUGNKZU1XZGxvMkxIbllkQzE4VmNGSUZpNzl3MmZkcjV2ZHA5enozUXlmM0Uvc3MrdzhxTi9zZCt4SGxOZmNVMDlLb3Y2OGVqUWI3R0g4Lyt4LzdKaHRRWUtLTEgvYzU5M1lWSzB6STUrZkR6ZXIzQU5IN0F6UldQMDh0SHc1L0ZmZHU1dmR4OTBUM1VpYjNJUHN0K3c4cU12c20reG5sTGZjVTFOS3J2YTRmalFiN0hYNUIreVg3S0J0Ulg2U0xIM0ZPQll1L2J0Z2V5L2ZiRlN0TXplL3N3OVBxOU5UN0RTMVNRRXdzSHc1L0ZmY1A3ZVQzSnZjWk1PbjdGRUpFYTFscEg0a0c5eDJYMXZjbDl5Y2J4YmR5aXgrbHlBV0xXS2c5KzIwdiszSDdSUHRTOFBzZzl5MGVpc3dWSWtMM0RlbkUxOHJwNjhwSkp5cFRReXdmRHNhZ2R2aFh5MzkzOXc1Mjl3dDNSd29MaXgrSkI0c0x4UVBIOS9RVisyRDNNdnMwOTFmM1cvY3o5elQzWVBkZSt6UDNOZnRiKzFmN012czErMTRleGhiM1FmY1U5eHozT3ZjKzl4YjdIUHRCKzBQN0Z2c2Irejc3T3ZzVTl4djNReDRMZlgvRmNuYjNrOFAzSThnTGpWNGRDL3NDMVg2MW1KZU5vQW9MM3hXTDRDdjNIdmNaN2UvM0RQY3MreGU5TXBBZTkyYjNoZ1c1L0M5Tjk1d0hzSitPWGgxNWVuaDFIdnRFKzJLY1lnVzdCdWZnV0NneFBrMDMrd0JEM3VFZFpSV0wwekgzR3ZjVzc5LzNEL2NuK3htMU00OGU5MmYzZVFXMS9CUlA5M3dIc0o5aEhYaDhlSFllK3ozN1VweGhCYndHNCtOZ0t6TStWRGdpVDlqaEhjaUx5ZmpYckFvVHdFRWRFekFMNHhXTHpTZjNJUGNkOXZEM0Z2Y1RKdkg3SVV4ZmNIOGRqNXFPcEI2ZjkwZ0Y5NnpKKytnR1pmdnB0M3NGaThDeDF1L1pSaXNyUFVZcUlGZmRpeDRPalFhTEMvZGtIc2NIK3ovN0VmY2M5ejczUFBjVDl5RDNPUGNLdjFSTmpSLzdGZ2I3Q0RjeUpDUGdNL2NISC9laHcwVDN6d2JzUytmN1NmdFkrelQ3Ti90Z0h2ZWxDelJSSnl0QVpydTZIZ3V6c1IzM2tORVR5RVlLRXpBTHJRcWFoQjBMRmZDYjFNRGZHOVlMbm5RS0M4OFRwSUF4SFJOa2dIRUtFNlNBUmgwTEZkU0NIVUlHK3pqN1lnVU9GdmcyeC91UUJtWjNpSXNmalFmM1V2Y042T2IzQ1JyZlNkNzdGdnNUUGk2TEhySmNCWXZQMmVUVHlXZzlLdnNGTFB0bCt4OGVEcy8zaFFhamphS1JDNHVEQ2d2M1cvY3o5emIzWWd2N1FQc1UreGo3TWd2UkZ2Y0c0K0QzQUF1cEhacjNDaDczam53S0J3dUxnNHFDY1cyVnpSNEwrNW1nZHZsVGQrVjI5d3QzamdvTEhvbm5IWjBMOFJiM2R3YjNaL2NpOXhUM2RQZHkreUwzRmZ0bkgvdDNCdEQ5RlJYNDEvY3JCL2RBOXdpakNnc1ZVd2VMa1lxVnN2Y0JtZmM2SHVvSDgrQ1ZpeDdKQjRzMmxmUWEzUWYzT2ZzQm1XU0JoWXVMSGxNSGk0K0xrUjRMb0lVS0MvaUxSL3VGQnd0V0hmdnMrMkZXSFE3UkNvc0xIbmc2QlVnZEU3eVR0Z1VMVnN2MzVQdE9UZmNNK3dzSEN3YjdPUGRoOXpqM1lnVUwrNWw4SFF2REJZdE5rTGdhQ3g1bkhZbDVDNzMzOTcwU3M4Tm13dmMvd3hQb3N3dC9seDBMVnMzNVUwZjdpUWQyalhwL0hXSHFpaDBlQy9RV3ovaE05eFhFK3hXakJqY2RjK3dLQzdNS0h0RVdwd29MRnZmOXgvc2YrSGROQnZ0Sit3U3JXL1RLQmFLWm01aUxHbWNkaW5Gd0d2djgrekFIRGs0S0R0MFd6L2VRM0FiM1BQdVFCZHdHKzFUM3JnV05CL2REOTI4Rk9RYjdLL3RVQlR2NEhFY0dDL3N3My9zQTl4djNHTFR3aHdxSmZYVWFDM2IzQnIzM28rMEt3Z1AzZ0F1NlhQY09FZ3Zkb0p3ZEMxUUtFd21BV0IwVEJZQlRDbmI0aTNjTHYvZnp2d0d5dy9kVXd3UDNVd3UvOTFPODhyMEI5NjNFQS9kS0N4WFp5c25ZMTdjZFB6N0pUZGtmQzhqNEtNa0xGYVVLRHBvS1hXbXd1UjRMdmZmc3ZnRzl4dmN5d3dQQUMzWUs4M1lMZHZkMHgvZzNkd3ZMK092TEN4YlRCdmZhK1NNRnUveGRUZmZkQjY2ZFlSMTNjSGhsSGc3TGJIYjNwc24zejhzTHhxQjIrRmZMQzZQT2d2c0lIeWtIS2R0dTRBb0hpenR5SlJyN0FnZjdCMGlCY3g0TDkxajRTWllkK3hyOFNSWFRCZ3Y1RmFnS0JndjdJenhQTnkxSzJ2Y1FIZ3Vna3gwTDk1Z1cwS01kQzMvRGRIYjNac1AzUDhQM09zTi9keExEeHZjM3hzVEg5emJHQzczNEZlMGR3Z1BWQzhnSGk0S0pmV1ZBQ3hMQjAvalEwd3ZRK1ZOR0MvZTJmd29MNXdyM25zOEx3dmNOd2d2TkhmZlYrQ3o3MWFzZCs5VDhMUGZVUmdZTEZhZW50YWUyMHF4RjZSdkh3YStzcXg5cXR3VUxmQjFiQ2d1SEhWc0tDMXNLdXRFTDZOSDRJOUFMRmZzNjl3RjlzNVNSaklzZXd3ZUxoNHVHSGdzVjJOcytCZzVNeWowOVRVd0xIbWNkaVhvTGR1QjNFZ3YzK0JVTCt3VVZOdmNDc1FvTCt3VVZheDBMOXpLckNndGhIWHNMZHZkQWR3RUwzZnRjRmMvM2hBYWxpWjJIQ2d2N0Yvc2dHdnNxWnZzblAvc2JIZzdwb05BS0MvdkMrMkxJK1J6b0hRc1Y5N0RKKzdBR0R0Rmh0V0hQOTYzUFZzQlcwUlBoQzhiSzJoNzNEdnVuK3hBR1BsRElDNkFkZjNjTGR2Z1Z2UUhNQzR2SitSVjNDL2RpcmdvTDl3eTI5eTczTWhyM0pHTDNHQXVqQ2c3eEZ0QUwrek5kZHRsMitWNTMxM2NTQzMvSWIzYjRXc2dMeUZzS0N4WFRCckwzUUFVTEZjSUdDK3J6OXpQM01EZjNBUHNiQ3hWUEI0dW9oYS9FOXdtZkN3ZjdHUHRIZlBzNUdnNzdUSGIzVlF2RCtWM0RFZ3ZJNWNrTDl5UGF4OS9wekR6N0R3djdDOGozeE1iM1JzY0JDL3NVeVBldXhQZG54d0VMNmgwQkN4TFd6L2U3end1ZGxvMkxDL2NCaXg0TCtWTUZDNHNmRG4vTjk4TEc5M2JKQVF2M3o4VUI5dzczenhVTGY4ejM0OG4zWE13QkMvakpkdmM5ZHdIUXhndmEyendHRGdhTGpRdDM5M0RySFF2VCt6YkYrUHQzQVF1Zzdnb0wzd29EQ3hYUzRFUUdDM2NCOXowTCsyRzZ6d3ZKK1JsM0M5SUtFZ3RIQmc0QkFBRUdBR2dBQUFrM0FId0FBRUlnQUdRQUFHWUFBSU1BQUtvQUFJc0FBR29BQUpjQUFLVUFBSUFBQUtFQUFKd0FBS1FBQUtrQUFIMEFBSmdBQUhNQUFISUFBSVVBQUpZQUFJOEFBSGdBQUo0QUFKc0FBS01BQUhzQUFLNEFBS3NCQUxBQUFLMEFBSzhBQUlvQUFMRUFBTFVBQUxJQ0FMa0FBTFlDQUpvQUFMb0FBTDRBQUxzQkFMOEFBTDBBQUtnQUFJMEFBTVFBQU1FQ0FNVUFBSjBBQUpVQUFNc0FBTWdCQU0wQUFNb0FBTXdBQUpBQUFNNEFBTklBQU04Q0FOWUFBTk1DQUtjQUFOY0FBTnNBQU5nQkFOd0FBTm9BQUo4QUFKTUFBT0VBQU40Q0FPSUFBS0lBQU9NQUFZY3dBSkVBQWJnT0FJd0FBSklBQWNjT0FJNEFBSlFBQWRZTEFNQUFBTjBBQWVJVkFNWUFBZmdEQU1jQUFPUUFBZndBQUdVQUFmMERBSDRBQUlnQUFJRUJBSVFBQUljQUFIOEFBSVlBQWdFQUFHOEFBSWtBQUVFQUFBZ0FBSFVBQUdrQUFIY0FBSFlBQUhBQkFIUUFBSGtCQUdzQkFHTUFBZ0lBQUprQUFLWUFBZ01GQUcwQkFnbEVBVVlRQWs0TUFjZ0NBQUVBU3dCT0FIa0FtZ0VVQVk4Q0lRS2lBcllDN0FNZ0EyUURpUU9mQTdNRHdnUFpCQ2NFV1FTZkJQUUZPd1dNQmU0R0hBYWlCd1VISUFkQUIyZ0hpd2UzQ0FBSWRnakFDU0FKYmdtdUNkSUo4Z3BjQ29NS2xnckxDd0VMRnd0OUM4b01JUXhjRE1rTkpRMXlEWTBOeGczOURtb092ZzczRHpZUFVBOW9ENFFQcGcrMkQ4OFFPaENaRU40UlFSR1dFYzBTVEJLU0VySVM2eE1pRTBzVHVoUUJGRThVc0JVVkZWa1ZvaFhaRmgwV1ZCYkdGeUVYYnhldUdCSVlKaGlNR01RWTZ4bFVHWlVaOGhwV0duTWJBQnRrRzV3YnRCeFNIR2djb1J6VEhSa2RieDJJSGRVZUJ4NFpIbE1laFI3S0h3RWZqU0FWSUxzaEJpRmZJYmdpSENLWUl2WWpiaU9vSkRFa1pDU1hKTk1sRFNVdUpVOGxlaVdsSmZrbWZTYmtKMHNudkNoTEtMb283Q2x3S2JncUFDcFNLcUFxNkNzdks0NHNDU3lFTFE0dHN5NDZMdGd2aERBQU1HVXd5akZBTWFveHpqSHlNaVF5VkRMS00wa3pwelFGTkhNMDlEVllOWVUyRGpaaE5yUTNGamR4Tjg4NExEaVFPT3M1WmpuVU9uVTY1anR6TzlFOEpqeU9QUFE5VUQyalBncytjVDdLUDFBL3BFQWNRRkZBdUVFRlFaeEJ6VUl3UW5aQzdFTXBRNTlFSTBUQ1JWZEdCMFovUnd0SG5VaENTSUpJNEVrdVNZMUoxVW9lU2p4S1hrcVlTdUJMRzB0alM0bExuRXZQVEI5TWJreThUUmhOZEUyb1RjeE9BMDQvVG85T3hVOE9Uek5QYWsrZFQrQlFQRkNTVVFWUmNsSFlVajVTcWxNRlUyZFR6MVFyVktwVkoxV2JWZ1pXZEZjTVYzZFh5VmhLV0xSWktWbUxXZWhhUVZxbld4QmJsRndYWEg1YzZGMDRYYVJkMkY0N1htcGVzVjhmWDV4ZjQyQTRZSlpoREdGMllleGlRV0toWXdKamFHUHZaSUJrMG1WQVpaSmw0V1l3Wm5wbXhXY2VaMzVucjJnVWFJZG85R2sxYVpOcHRtblphZ1pxR1dwUWFubHFzbXJZYXo5clZHdHBhNEZybVd1dmE5VnIrMndmYkVSc2VteWNiTUp0Z20yamJjTnQzMjVlYnNwdTNtNy9iMnB2cVcvZGNCUndjWEMrY1J4eGozSVZjajl6Vm5PK2RBeDBQblNFZE5sMUlIVnhkZE4yQW5hSWR1dDNBWGMxZDJwM2huZWplQWg0Ym5qa2VSeDVWWGw0ZVpwNXNYbkllZHg2Sm5wUmVuSjZ3WHJ6ZXpaN2kzdkhmQmw4ZTN5a2ZTSjloMzNXZmdsK1RINmhmdDEvTDMrUmY3dUFPWUNlZ1FTQlZZR1NnZk9DV29MWWd4bURVSU9XZyt5RU5JU0doUFdGSklXcGhnT0dSSWFIaHRtSE00ZGloOStJT1loNmlLeUk4b2xJaVlxSjNJbzJpbVdLNFlzN2kzcUxxWXZzakVDTWg0elhqUytOWG8zYWpqcU9QWTVSamxSemk3MzQ3TDBCa0wzNEpMMERrQmI0aVBsUS9JZ0c5NDc3eFJYN1B2ZVRCZmZvQnZzZys4QVY5ejcza3dYOGtnZjhKQmI0a2dmM1B2dVRCZnNnKzhBVjl6NzNrL2MrKzVNRkR2dWREdnQzaTlqNUJuY1M5d2pZLy8rMmdBRE9FOUQzRGZkTUZjc0dqdmliQlVVR0UrQ0ovVk1WMk5nK0JnNzdiUGkwOXowQjBNYkp4Z1AzVXZpMEZjYjNQVkFHK3czN1BSWEc5ejFRQmc3M1VxQjI5MWZEOTFqRDkxeDNBYnI1Q3dQM0x4YklCcTMzVndYM1FRWnArMWNGeUFhdDkxY0Y5eUFHbE1NRit4OEdyZmRZQmZjZ0JwWERCZnNnQnE3M1hBVk9CbWo3WEFYN1FRYXU5MXdGVGdabysxd0YreUlHZ2xNRjl5RUdhUHRZQmZzaEJvRlRCZmNpQnRMREZhMzNXQVgzUVFabysxZ0ZEcUlrOXpGTHkvam55a3ozTWl4M29YY1MxTkwzQmNQM0J0RVRSNERJMlJXTDBEMzNFNEVlRTRlQUxzTUhFMk9BNkFmM0I1YlEyK3dhOTNmNzlXWDNOUnJKeE1ibTVzcFBpeDRUUjRDdHhRV0xVTWo3QUpFZUUxT0E2Rk1IRTB1QUxBZjdBMzFDT3k4YSsycjM5cTc3UHhvL1RGMCsrd05DMklzZUR2ZFlmOE4wZHZkbXcvYy93L2M2dzM5M0VzUEc5emZHeE1mM05zWVR1OEQzV1BoSkZkbkt5ZGpYVE1vOVBVMU1QejdKVGRrZkUzZkEreHI4U1JYVEJ2aXIrVk1GUkFiOEp2dG1GVjFvc0xrZkU3dkF1SzZ4dWJtdlpWNGVFM2ZBWFdkbVhSNFR1OEQzV3Z3REZUL0pUZG5aeXNuWDJFektQVDFOVEQ0ZXg0d1Z1SzJ4dWJtdlpWNWRaMlpkWFdtd3VSNE85eUIvelBlM3lVMzNOZmNweUlGM0VzZlNZdFAzdjlBVDFjZjNWaFg3Q2VzeTl5SDNJZWZnOXp3ZTh1ckpMQWNUdGU1R0J4UFRLUHNvQi9zWGQ5dTYxOG00MnFTc2hJc2ZFODJmeFFVVDA0dGRsV243RkRoRit3RDdFZTFzaXg2SkJ4UFZPWEpkUERvYTBvOFY0OGZGOXc0ZTl5Z21CdnNiU2xRb0kwM00yeDRPKytYNHRQYzlBZERHQTlENHRCWEc5ejFRQmc3N2lDejV6UUhieWdQM1ZTd1Z5Z1pBOXh0bDl5ZjNLaHIzSUxUM0Y5UDNEaDVNQmtQN0NXTDdHUHNrR3ZzeXR2c3UwZnNNSGc3N2lTejV6UUgzSjhvRDdDd1YwZmNNdHZjdTl6SWE5eVJpOXhoRDl3a2VUQWJUK3c2MCt4ZjdJQnI3S21iN0p6LzdHeDRPVFBsVGR3SDNZUDhBUFlBQUEvY3A5K1VWNFBjU0JZMEc0ZnNUdjdJdDl3d0ZqUWYzS0xaM3lQc21WNUwzTGdWSEJwSDdMdnNrd0hkTTl5ZGhCWWtITGZzTUJRNzNMcUIyOTVQRkFmZk95QVBlOTVNVjkzdjdrOGozay9kNnhmdDY5NU5PKzVQN2V3WU8rN1lxOTBjQnIvY1lBNjhxRmNVRzFmZEhCVUFHRG1IM2tja0I4L2V3QS9QM2tSWDNzTW43c0FZTys3T0wyd0hmMmdQZkZ0cmJQQVlPK3lKaCthUUJ0UGZSQTdSaEZjc0c5NUg1cEFWTUJnN21mOHo0NmN3QjBkUDM2ZE1EOTgxL0ZmZEx4dmMwOTJEM1hsRDNOZnRMKzB0UCt6WDdYdnRneC9zMDkwc2Z6QVQ3R21iM0YvYzg5enV3OXhmM0d2Y1pzUHNYK3p2N1BHYjdGL3NaSHc1SGk4bjVGWGNCOTJyUEE4TVcrQkhKK3kvNUZVc0crelA3TXJkZTF0WUZwNmFTbW9zYWpRYUxpbmgzSC95WSt6SUhEcXFMeWZqZnpRSEgxL2V3MHdQTEZ2aEx5ZndEQm96M1QvZjNyUGVBR3ZjQ08rTDdHdnNwUy9zVGl4Ni9hQVdMd2V2eTQ4VlJQaDc3VXZ2OGEvdUxHbjJNZkk1N0hnNm5mODMzd3NiM2Rza0IrRURTQTdqZkZZdmdLL2NlOXhudDcvY005eXo3RjcweWtCNzNadmVHQmJuOEwwMzNuQWV3bjQ2TEg0a0hpM2w2ZUhVZSswVDdZcHhpQmJzRzUrQllLREUrVFRmN0FFUGVpeDhPeXFCMjkxZkk5L3ppaTNjU3JkLzNvTkFUM0szM1Z4WDM5UHRYMFBkWDc4Z24rRk5BQnZ2dS9HTUYzNXNWalFjVDdQZCs5OFVGbnFTYnA0c2FqUWFMaUdkdEgvdTZCdzZqZjgzMzNzdjNWY2tCK0VUVEE4SGpGWXZOSi9jZzl4MzI4UGNXOXhNbThmc2hURjl3aXg2SkJvdVBtbzZrSHAvM1NBWDNyTW43NkFabCsrbTNld1dMd0xIVzc5bEdLeXM5UmlvZ1Y5MkxIZzdJZjh6MzQ4bjNYTXdCek5iMzNkSUQ5OU4vRmZjUDdlVDNKdmNaTU9uN0ZFSkVhMWxwSDRrRzl4MlgxdmNsOXljYnhiZHlpeCtseUFXTFdLZzkrMjB2KzNIN1JQdFM4UHNnOXkwZWlzd1ZJa0wzRGVuRTE4cnA2OHBKSnlwVFF5d2ZEbjJnZHZrVnlSS3grRjFBMWhQZzdCYlRCaFBROTlyNUl3VzcvRjFOOTkwSHJwMk5peCtKQjR0M2NIaGxIZzdQZjh2NDY4c1N5OUpnMGZlejBWVFNFK2pMOTE0Vit4bjNBenIzRXg0VDVQY2M3T2ozQXRSZnVGR3NIeFBZazVQWjNlOGE5d0kzMVBzWCt5SkZOREJJc0dDOWFoNFQ2SHVCS0ViN0JSb1Q1UGdrZ1JVNFBGSTROam5GNnVYYXc2R1lIdk5aOXhCc01Cb1QyUHZDOSt3VnlyKy81ZURIWEVBM1QweCtmeDRtdC9zRnF1WWFEc2QvelBkY3lmZmp6QUhDMGZmZDFnUDNjSDhWOTI3bTkzSDNSUGRTSnZjZyt5MzdEeW95K3liN0dlVXQ5eFRVMHF1OXJoK05CdnNkZmtIN0pmc29HMUZmcElzZmNVNEZpNzl1MkI3TDk5c1ZLMHpONyt6RDArcjAxUHNOTFZKQVRDd2ZEdnVGaTl2MzY5c0I5dG9EOXZnN0ZkcmJQQWI4aXdUYTJ6d0dEdnVGS3ZkSDkrbmJBZmNEMmdQSktoWEZCczMzUndWQUJ2ZnBCTnJiUEFZT3JQaVRkeEs5NEJQQXZmZVhGZmhZKzE0RnpnZjhBL2N6QlkwSCtBUDNNd1hPQi94WSsxNEZEdmNxOXp6Rjl3akZBZmNCK0dZRDl3SDM2aFg0WnNYOFpnYjdmQVQ0WnNYOFpnWU9yUGlUZHhMTStGZzI0QlBBek1RVkU2RDRXUGRlQmIwSC9GajNYZ1ZJQi9nRCt6TUZpUWY4QS9zekJRNVdpOWo0MHN3Uzl5cllRcy8yMHhQWTl5NzNUQlhQdGdiM0dQZEhtZmM2R3ZNMTFQc0dLRTFTaXg2d1dBV0x3TGJQMk1GWVN4NzdGZnREZVBzekdoUG9oL3Q1RmRqWVBnWU85NlA3RU1mM0JjUDNwOEQzQ2NZQnpOSDNHZEgzbU04RHpQZUdGZnRmOXpMN04vZGtIc2NIK3ovN0VmY2M5ejczUFBjVDl5RDNPUGNLdjFSTmpSLzdGZ2I3Q0RjeUpDUGdNL2NISC9laHcwVDN6d2JzUytmN1NmdFkrelQ3Ti90Z0h2ZWxGdGJHeXRvZTl3NzdwL3NRQmo1UXlOY2ZEdDJnZHZkMHgvZnUxSXQzRXBqNDRoUFkrS1lXMUFiN2x2bFRCVUVHKzViOVV3WFVCdHYzZEFYM3J3WVQ2UHNnK0NvVmk1cFJsMm9lNS91VEJmdUdCdW4za3dXWHJKckZpeG9PNTR2Sjk2akg5NGZKRXZIUTk3YlNZTk1UOVBFVzk0d0c5d3JvMC9jUjRGM1FRNThmalFjVCtNR21yc0RVR3ZjQ1BNNzdBeDc3aEFiUSs4VVY5NGYzUGdmV3VGdERRbHRaUkIvN1AvdmtGZmVvOTBjSEUvVGR4RlEzTjFaV05oOE85MVoveS9qcnl3SEMwd1BDOS9nVisySDNLUHMzOTJUM1FldjNBWXNlWTd3Rml6VXQreUw3Ty9zSzl4MzNQUGM2OXdyM0ZQYzU5eGpkUFlzZXNMNEZpemJtK3p6N1hmc3MreS83WUI0TzkyS0x5ZmpYeVFIeDBQaEwwd1B4RnZkM0J2ZG45eUwzRlBkMDkzTDdJdmNWKzJjZiszY0cwUDBWRmZqWDl5c0g5MEQzQ0NYN1QvdFErd2NsKzBFZkRyQ0x5ZmVaeWZlVXlRSHgwQVB4RnZneXlmdnQ5NW4zbjhuN24vZVU5OXZKL0NBR0RuZWdkdmZQeWZlY3lRSHgwQVB4RnREM3ovZVd5ZnVXOTV6M3djbjhCZ1lPOTNSL3kyeDI5NmJKOTgvTEVzTFQrSWpORTd6QzkvUVYrMlgzTFBzdjkxVDNLTnpxaXg2TkJoTjhpNHA4ZkI5V3kvZmsrMDVOOXd6N0N3Y1R2SXMzSlBzZCt6VDdDL2NVOTBIM08vY0g5eGYzUHZjVTNVV0xIckMvQllzMDNmczMrMTc3TFBzMCsxOGVEdmRzb0hiMzFjbjMxSGNCOGRENExOQUQ4UmJROTlYNExQdlYwUGxUUnZ2VS9DejMxRVlHRHZ1Wm9IYjVVM2NCOGRBRDhSYlErVk5HQmc2QmY4djQ0Y2tCcnREM2xkQURydmRaRmZzcjhGSHI3UERFOXl3ZStJNzdoVTMzUVB4UUIvc0JTV2ROUzBxeTl3QWVwVVlIRHM2Z2R2Zmt5ZmZGZHdIeDBBUHhGdEQzNVBjTEJ2ZGQrK1FGM0FiN2RQZ0ZCWTBIOTJiMzRBVThCdnRSKzhVRit3djN4VVlHRG51THlma1Zkd0h4MEFQeEZ2Z2Z5ZnZhK1JWR0JnNzMxS0IyOXhmVStJZDNBZHY1U2dQYkZ0QUdzdmlBQlk2eGlzbUxHbzBHaTZGS20yZ2U5em43L1FYTUJ2YzU5LzBGbTYrZ3lZc2FqUWFMaWsrT1pSNnkvSUFGMEFaVCtWTUZSQWI3VFB3eEJYdG5lRm1MR29rR2kzbTllNjhlKzB6NE1RVkRCZzczYjR2eE9uYjQ3ZkdMZHhMeDBQZ3YwQk5jOFJiUUJoTnMrSTRIc0lYRml4Nk5Cb3V0VDZOb0h2ZjcvSTRGenZsVFJnWVRuUHlPQjJhUlVZc2VpUWFMYWNkenJoNzcrL2lPQlVnR0R2ZTJmOHY0NjhzQndkUDQwTk1Ed2ZmNEZmdGk5elA3TnZkYjkxdjNNL2MyOTJMM1h2c3o5ekg3Vy90Yit6UDdNZnRlSHRNVzl6ejNFL2NUOXpQM012Y1UreFA3UFB0QSt4VDdHUHN5K3pQN0UvY1k5MEFlRHN1Z2R2ZW95ZmZEeVFIeDBQZlUwZ1B4RnREM3FQZENCdmNTNXQvM0YvY1dNTjM3RWgvN2h3YlEvQUVWOThQM09nZm95RlFzSzA1U0xSOE85OEYveS9qcnl3SEIwL2pRMHdQQjkvZ1YrMkgzTWZzMzkxdmsyNm5BeVI3aE5MVzJOT0lGd2NxdDRlZ2E5MTc3TXZjeCsxNzdXL3N4K3pIN1hoN1RGdmM4OXhEM0UvYzA5emIzRXZzVCt6eENja1ZqV0I0MjRtRmc0VE1GWWx0RmNrc2IrelQ3RVBjWjl6OGZEdW1nZHZlOHlmZXZ5UUh4MFBmRzBnUHhGdEQzdlBkRkJ2Y3orN3dGMmdiN0xmZXZCWUNlaEpTTEdvMEgycUhCMU9vYTRHUE9TYWdlbDI5cmtrTWIrMlFHMFB2dEZmZXY5eUlId2FTRmdLQWZ0SFdpWUZFYU0xVlVOaDRPajMvTitPZk5BY3ZTOTZ6U0E3M1pGWXZhTWZjazl4amM0UFFlOTN2NzgxdjNPeHJKeGNibDU4bFBpeDZ0eFFXTFNjLzdEdnNXTWpNbUh2dHU5L080KzBVYVAweGRQdnNEUXRpTEhnN0JvSGI1RmNrQjk1alFBL2VZRnRENUZmZVF5ZnpTVGZlUkJnNzNVbi9MK1I5M0FlalIrQ1BRQStqM2lSWDdNUGNDSnZjMDl6UDNBZkQzTUI3NFhrYjhXd2Y3RHp4Qyt3MzdEVDNVOXcwZStGMUZCdzdmaTlsU2R2bFRkeEtYK09ZVGNQZWxGdE1HOTVuNVV3VkJCaE93KzFmOHFnVitaMzFVaXhxSkJvdDl3bjZ2SHZ0WCtLb0ZRUVlPK0IyTDNmaWE4aEt5K2VjVDRQaGorT3dWaTVaUGwxNGU5eHI4Z3dYZUJ2ZFArVk1GUXdiN0lmeTJCWUpuaEdTTEdva0dpb2F5cjRFZit5ajR0Z1ZKQnZzby9MWUZaNEdHWklvYmlRYUxoTEtDcng3N0hQaTJCVU1HOTByOVV3WGVCdmNhK0lNRmw3aVd4NHNhRHNXZ2R2bFRkd0dsK0s4RHBSYmJCdmNrOTRZRm9iQ2d0WXNhalFhTG9XR2haeDczSnZ1SEJkc0crM1g0QS9kaTkrUUZPUWI3RVB0a0JYVm5kMTZMR29rR2kzSzRkcThlK3cvM1pBVTZCdmRnKytRRkRyT2dkdmxUZHdIM2tORUQ5NUFXMGZmQ0J2ZUErQ1VGUFFiN0tmdVRCWFZtZGx5TEdva0dpM1c3ZHE4ZSt5bjNrd1U4QnZlQi9DVUZEc2lMeWZqWHlRRzIrSWtEdGhiNGljbjhBQVpwZVltTEg0MEhpNk9scGJFZTkvLzRwQVc4L0hOTjkrb0hyWnlOaXgrSkI0dDBjSEZtSHZ2Ly9LUUZEdnVRTE1QNVhjTUI5c29EOWl3Vjl4dkRRL2xkMDhQN0d3WU8reUZoK2FRQnJmZlJBL2UwWVJYS0J2dVIrYVFGU3dZTys1QXN3L2xkd3dIM0JNb0RzMlFWVS9jYitjMzdHMVBUL1YwSER0UDVVM2NCMVBoUEE5VDNqaFhOQnZjdytBYjNNUHdHQmN3RysxcjRXUVZjQmc2OVVjVUJyZmlZQTYwV1VmaVl4UWNPYmZtRTl3c0I5MGIzS0FQM25QbUVGY2tHUnZjTEJUd0dEbjEveFhKMjk1UEQ5eVBJRXJUUjk1N1BFN3kwOXgwVkorSmEzL2NTdGZjQml4Nk5CaE44aTRsNmNoOVV6UGZXQi9jU1NNNzdEZnNGU1ZLTEhxdFhCWXZHdTk3VHdHb3FIbjV2QnhPOE5QdHhoL3MrSDlHUEZmY0Q5ektPMmg2b2RRWTBVU2NyUUdhN3VoNE93bi9IY0hiNFdjbjNVSGNTM2MvMzFORVRmTjBXelFZVHZMZ0hvNG1jaXg2TkJvdTRLZmNNOXhqcTgvY3o5ekEzOXdEN0cvc1ZZU3FMSG9rR2k0MmRvaC8zaUVjSHpmeFpGZmNqMnNmZjZjdzgrdy83RkVKQU12c0FWL0R3SGc2YWY4ajRLTWtCdXRFRHV2ZVBGZnN3OXdjZzl5bjNGTS9haXg1c3dBV0xVRVFsK3dNMDMvY0s5d3poM2ZjQzVzTk9peDZ1dmdXTFR0UDdEL3NvK3dqN0Fmc3ZIZzdDZjhodmR2aGF5UGRRZHhLODBmZlV6eE84dlBlUUZmc3czL3NBOXh2M0dMVHdpeDZOQmhOOGk0bDlkUjlXemZsVFIvdUpCM2FOZW9zZWlRYUxZZXI3RGg0VHZQc1lMU1A3TXgvUkZ2Y1QxTmJrOXdDL0p5WDdJenhQTnkxSzJ2Y1FIZzZlZjhqM1c4UDNMc1FCdXRIMzA5QUR1dmVQRmZzdjl3WDdBUGNxOXdYVTBZc2ViTDhGaTA1T0x5TXowZmNWaUI3NEZnYUxqYUtYOXhGRTl2c2YreHo3QkNqN09SL1V3Qlh3bTlUQTN4dld5MW9pang4TysycWdkdmhNeFBjcXlBSDB6d1AwRnMvNFRQY1Z4UHNWb3diM0JOV1pzcG1WaVlzZXlBZUxmNDE0VXZzSmR2czZIbk5NVXNvSERydjdac2ozTE1qNEE5Tlp5Uks4MGZmTnp4UGM5d3o3QmhWeFV3Vnl2TVY4eFJ2M0QvY0t5ZmMwSHhQcytIOUpWQWVBaklXTEhva0dFOXlMYXQvN0dmc2JPQ1Q3Sy9zcjVDRDNHOW0rcThPcEhvMEdpNGw2ZUI5ZEIvc0VQVjBwUVUydWl4NzNPUGRHRlNkSzJmY005d3pFMHUzazBWNzdKL3NvUlZvOEh3N0dvSGI0Vjh2M1VIY0IzYy8zd004RDNSYlA5NFVHbzQyaWtaOGUzNkxWeHVFYjdKZEZQQi83d3MvMzFBZjNFRi9TK3hEN0JrZytXM2dlaVFhTGpaMmlIL2VrUndjTys4S2dkdmlMZC9jYjRBSGR6d1BiK1A0VjB1QkVCbzM5VXhYUCtJdEhCZzc3d3Z0aXlQa2NkL2NiNEFIZHp3UGMrUDRWMGVCRkJvejdYQlg4bXdmN0J6OTlaSDZDaklzZVVBZUxsNGlkdy9jTG4vYzdIdmllQnc1cm9IYjNrTWIzVkhmM2NIY0IzYzhEM1JiUDk1RGNCdmM4KzVBRjNBYjdWUGV1QlkwSDkwUDNid1U1QnZzcisxUUZPL2djUndZTys3T0h5ZmtaZHdIWXp3UFk5d3NWK3dMVmZyV1lsNDJMSHNnSGk0T0tnbkZ0bGMwZStNMUhCdzc0RXFCMitGbkpmM2NTM2MvM3FzLzNxYzhUM04wV3ovZUNCcUtOb3BDZ0h0aWd5ZExkRytxV1FUOGYrOFBQOTRJSHBvMmprcUVlMVo3S3o5Z2I1NXhIT1IvN3c4LzMxQWYzRUY3Uyt3NDJRbEZIY0I2SkJ0NThXN1l1R3owN1VFZHpINGtHRTd5TGpaMmhIOVpJQnc3R29IYjRWOHQvZHhMZHovZkF6eFBZM1JiUDk0VUdvNDJpa2FBZTNxTFZ4dUViN0pkRlBCLzd3cy8zMUFmM0VGL1MreEQ3QzBzNlhYa2VpUVlUdUl1Tm5hRWYxa2dIRHVOL3lQZ295UUc0MGZnYzBRTzQ5NUlWK3l6M0Mvc0c5eWYzSi9jTDl3YjNMUGNwK3d2M0JQc24reWY3Qy9zRSt5a2UwUmIzQnVQZzl3RDNBT00yK3diN0NUTXord0Q3QURQajl3a2VEc0oveC9nRDQxbkpFdDNQOTlUUkU3amQrMXdWei9lRUJxV0puWXNlalFhTHR5djNEZmNXNnZQM00vY3dOL2NBK3h2N0dXSW5peDZKQmhQWWk0MmNvUis4U2dmTis1RVZFN2ozSTlySDMrbk1QUHNQK3hSQ1FESWVFOWdqVS9Ed0h3N0NmOGo0QmVCYXlIOTNFcnpSOTlUUEU2eTg5NUFWK3pEZit3RDNHL2NWdGUyTEhvMEdpNGw1Y1IvN2hzOEhFNXo1VTBrSEU4eGNCM1dNZTRzZWlRWVRySXRnN1BzTyt4Z3RJL3N6SHRFVzl4UFUxdVQzQUw4bkpmc2pQRTgzTFVyYTl4QWVEdnRHb0hiNFRNK0dkNkYzRXQzUEU4amRGcy8zYUFhcmo2MlZxeDdWb2NERDBodVlsNG1MSHhPWXpnY1R5SXQram4wOFUxRS9jeDZKQmhPb2k0MmRvUi9rU0FjT01IL0krQ25JQWNYUjkxM1JBN1RJRll2TFF2Y084TkxHM1I3M092dWpiZmNER3NPOG9iN2V0bDJMSHFxL0JZdGF3aUV3T2xveEh2czQ5Nk9tK3dJYVZseHdWUzFUeUlzZUR2dGJoOGo0RThRQjhNOEQ4UGRMRmZzODl3bDR4WjJXallzZXlBZUxnb2w5WlVDYTl3b2U5NDczRXNUN0V2Y2xTUHNsU0ZMTkJ3N0JmOHRzZHZpTGR4TFd6L2U3enhPNDF2ZExGZnNYdlV2M0N2Y0R6ZG04bng2TkJoTjRpNGw1ZFI5QXpmaUxSL3VGQnhPNCt3RkVKdnNIS24vUjJoNzN3a2NIRGxxTDFWWjIrSXQzRXBqNFh4Tnc5MklXMVFiM1ZQaUxCVVFHRTdEN0gvd0ZCWUZ4ZzJtTEdva0dpNE91Z3FRZSt5RDRCUVZEQmc3M240dlY5K2JralhjU25QbVRFN0QzVHhiVkJoUFE5dy8zK2dXVHBKS29peHFOQm91U2JwUnlIdmNQKy9vRjFRWVRzUGMrK0lzRlF3YjdEdndMQllOeWhHNkxHb2tHaTRTcGc2TWVFOUQ3RVBnSkJVZ0creEQ4Q1FXRGM0UnRpeHFKQm91RXFZT2pIaE93K3c3NEN3VkRCZzVnb0hiNGkzY0JwUGhOQS9lSjkyMFZqUWFMazN5VWZoNzNEdnRSQmRzRyswWDNtdmMyOTRVRk93YjdBUHM5QllOK2dudUxHb29HaTRLYmc1Z2Urd0QzUFFVN0J2YzIrNFg3UmZ1YUJkc0c5dzczVVFXVW1KT2FpeG9PYVB0bXlQa2dkd0dTK0hVRGt2dElGWXV2YmIvT3Y3VExwUjczalBqMEJVRUcreVg4QXdXQmNvUnZpeHFKQm91RHA0R2tIdnNvK0FNRlFBYjNadnlIYkVRRlhYZHNaMThiYTIraWl4OE9jb3ZIK0JQSEFiWDRPd08xRnZnN3gvdXRCbXA1aVlzZmpRZUxvYUdlb3g3M3JmZjBCYmo4SlUvM2x3ZXNuSTJMSDRrSGkzWjFlSE1lKzYzNzlRVU8rMW9xeFBsZXd4TEF6NXpLRTlEM0h0NFYrenIzQVgyemxKR01peDdEQjR1SGk0WnlTSlgzQng3M0FnZnhPNlNMSG8wSGk5dW83Ui90Qi9jSXpwU2trSStMaXg3REI0dUZpNEpqK3dGOSt6a2VPUWNpTm9HTEhoUHdUUWNUMEl2Z2dTTWZEdnVYK3pINlJRSDF5Z1AxK3pFVnl2cEZUQVlPKzFvcXhQbGV3eEwzRzhxY3p4UGdyV01WVXdlTGtZcVZzdmNCbWZjNkh1b0g4K0NWaXg0VDhNa0hFK0NMTnBYMEg5MEg5em43QVpsa2dZV0xpeDVUQjR1UGk1R2p6b0w3Q0I0cEJ5bmJib3NlaVFlTE8zSWxIL3NDQi9zSFNJRnpoWWVMaXg0T3ovZGh3cnpDQWRYRzkrYkdBOVgzWlJYR0JyQ1d5c2NlNEk4ajl3SWIxcis0OXdJZlVBWm1nRXhQSGphSDgvc0NHMEJYWHZzQ0h3NzdtUGcrMkJMdDJQLy91SUFBemhQQTdmZytGZGpZUGdZVG9JLzlVeFhSQm9qNG13VkxCZzZ4ZnZjcVNzejRRc3RMOXlnU3g5TDNIOE1UblBlaWZoWERCaE5jNEFmbGs4bktydGhMcEJnVG5FdHVYRjlERy9zSlZ1ajNEdmNNd2VyM0NOTzZYa3lvSDh1akJST3NaOXhNeERPVkNCT2MzMU1IRTJ3M0Ivc2NmRUg3Qy9zbEd2c20xZnNMOXh4OEhnN0NpOG4zbk1MM29jd0I5dzdSQTluMzJoVzMrNXhNVGZoc3lmdm45NXozVk1MN1ZQY2xCczY4eE9QTXZHR0xIclc5Qll0TnhDMzdEVFU3SWg3N0tWOEhEczZnZHZkbnYrSys5OEozQWZlZTBRUHk5L0lWOXhzR3Axc0ZaUHMzVi9jMysyZlI5MmYzTkwvN05MSUhwcnNGOXhtK0lnYjNSUGZDQlR3Ryt5VDdqUVYwWTNkWml4cUpCb3QzdlhTekh2c2o5NDBGUEFiM1EvdkNCU0VHRHZzT1RjZjVKY2NCejhuM0s4b0Q5eURnRmNjR1NmaEVCWWlXaXBXVkdzKzhzc2k2clc2TEhxNjZCWXRjdFVZalIwWXZnSXgvam44ZWV2eXZGWXU2WWREejBNL29sb21XaVpnZVIvaEdCVThHelB4QkJZNkFqSUNCR2taYlkwNWNhS21MSGc1dCthWGhBZmNteU9YSkEvZTkrYVVWeWVGTkJ2c3JOUlhJNFU0R0R2ZTlmOEh6d3ZmQXd2VEJBY2ZHN2NiNFNjVUR4L2YwRmZ0Zzl6TDdOUGRYOTF2M00vYzA5MkQzWHZzejl6WDdXL3RYK3pMN05mdGVIc1lXOTBIM0ZQY2M5enIzUHZjVyt4ejdRZnREK3hiN0cvcysrenI3RlBjYjkwTWU3WWtWSXRVbzl4ajNBY0hvaXg1ZHFnV0xZMFpBS1ZqVTJOaS8xT3pWdEVhTEhybXFCWXRXNlBzQyt4aEJKaUllRGlEM25MclN1L2NHdDltNkFkN0Q5eXEvQS9kVitCSVZ6S2pDaXgrTldyLzNYZ2JiWWJZOVJGOW1peDZsWkFXTHNhaTV0S2w0VkI2SGZnZFUreHlISUV2RGJNRWZrN3NWWW5hanA4Zm9qYlVmbDRJR1dtdFRWaDc3RFBzNkZmZWN1dnVjQmc2QTJQZ3ZBYjM0TlFQM2VmZXVGZmM0KzJFRjFRYjdPUGRoOXpqM1lnVkJCdnRIL0M4VjFBYjdPUGRoOXpqM1lnVkNCdnM0KzJJRkR1VDM2c1VCK0hMSUE5VDM2aFg0S2Z0TXlQZUcvR1lHRHZlOWY4SDNwYmYzSWJyM0JzRUJ4OGIzUk1QM0lzWDNOc1VEeC9mMEZmdGc5ekw3TlBkWDkxdjNNL2MwOTJEM1h2c3o5elg3Vy90WCt6TDdOZnRlSHNZVzkwSDNGUGNjOXpyM1B2Y1creHo3UWZ0RCt4YjdHL3MrK3pyN0ZQY2I5ME1lOTBUN1Z4WEQ5ekxXQnRuN01nWEpCa0QzSndXQ25JZVFpeHFOQjYrVXNLL0ZHdEZidVVZZSt4OEd3L3RRRmZjaDFBZTFwbkpmWG5Cd1lSOE9iZm1sd2dIM0ZmZUtBL2NWK2FVVjk0ckMrNG9HRHZzdCtFakQ5enJEQWIzSDl6YkdBL2RTK0VnVjJjckoyTmRNeWowOVRVdy9Qc2xOMlIvREJGMXBzTG00cmJHNXVhOWxYbDFuWmwwZkR2Y3UremJGOXhGMjk1UEZBZmZPeUFQZTk1TVY5M3Y3azhqM2svZDZ4ZnQ2OTVOTys1UDdld2FkL0RVVlVmaDZ4UWNPK3l6NE83MzM3TDRCdmNiM01zTUR3UGc3RmZlcXZmdHlCcEgzQnZka2t2Y25HdE5Yd2pjM1lFcUxIcTlvQll1dnZNQzhyR2hoSHZzRSsyMkQrem9hZ295QWpZQWVEdnNzK0RHLzkwRzU5eEM5QWZlcXd3UDNUZmd4RmVETHk5ampTSzVTa2gvM0MvY2VCYS83bTFuM0xnZWRubzZMSDRrSGkzeCtnWDhlS1BzSG1Xd0ZyQWE3dlcxVlYxdG1YVWRsdjRzZmFHVUZpN2xKNng0T2JmbUU5d3NCOTBiM0tBUDNSdm1FRmNrRzRmY0xCVHdHRHRaL3kyeDIrSXQzRXVUUDk3dlBFN2prKzF3Vnl2Y3VCcVNFdm9zZWpRYUxwbUhmOXlhOTl4T0xIbzBHRTNpTGlYbDJIei9OK0l0SCs0VUhFN2o3QVVRbSt3WXFmdEhhSHZmQ1J3Y09zdmtWeVFIM3RNVEp4UVAzdEZrVnhQbEg5MG5KKzRNRyt4WDdBU2Y3RnZzVzl3SWw5eFVmOXd2N3R4WEYrUXRSQmc3N20vZU0yd0hzMkFQczk0d1YyTnMrQmc1dCsyRzZ6NjRCOTZUQUEvZDJueFZ4K3dNRmk1S01rNjZoZjNWd2NvUnhkSGlSaXg1YkI0dWZocW04dXFERnMyMmtZNUVlbHNjRmt3Y08reXo0TzczM3pkTUI5ejNDQTlYNE94WDNoNzB1K0JWWEJpZ3BybWF6c1FXY25JK1RpeHFNQm91S2dINGYrN1VzQnc1UDk1eTYwNzczZXIwQjBNTDNkTUlEOTRENEV4WG4xdFBxNkVEU0x5OUFSQzRzMWtQbkg3NEVUVm04enMyOXU4bkp2VnRKU0ZsYVRSLzdLdnMrRmZmRHV2dkRCZzZCMlBndkFjUDROZ1AzZ05nVjFRYjNPUGRoK3pqM1lnVkJCdmM0KzJJRisrejdZUlhWQnZjNDkySDdPUGRpQlVFRzl6ajdZZ1VPK0M2TDl6aFp2Zk85dDlUM1dOT0xkeEwzTXNMMzc4LzNKTUlUdDREMzBSYjM0L2xUQlZFRysrVDlVd1g3Vi9lZ0ZmZUh2Uzc0RlZjR0U3dUFLQ211WnJPeEJaeWNqNU9MR293R2k0cUFmaC83dFN3SCtWbjcwaFhDQmhOM2dQY0d6TDFLOTZOVUIvdG8rNjhGWmZkb0Ivc2t2UldOQi9jRjl5Y0ZtNkdicG9zYWpRYUxpR2h3SC9zY0J3NzRMSXU5OTI2OTE3NzNUdE9MZHhMM01zTDRETWIzTXNNVDdmZlNGdmZqK1ZNRlVRYjc1UDFUQmZ0WTk2QVY5NGU5THZnVlZ3WVQ5eWdwcm1henNRV2NuSStUaXhxTUJvdUtnSDRmKzdVc0IvaWwrOUlWOTZxOSszSUdrZmNHOTJTUzl5Y2EwMWZDTnpkZ1Nvc2VyMmdGaTYrOHdMeXNhR0VlK3dUN2JZUDdPaHFDaklDTmdCNE8rRDZMOXpoWnZlbS92OVM3dWZjUXZSTDNyc1AzZ3MvM0pNSVRwNEQzNFJiMzQvbFRCVkVHKytUOVV3WDRsaGJDQmhOL2dQY0d6TDFLOTZOVUIvdG8rNjhGWmZkb0Ivc2t2UldOQi9jRjl5Y0ZtNkdicG9zYWpRYUxpR2h3SC9zY0IvenI2UlhneTh2WTQwaXVVcElmOXd2M0hnV3YrNXRaOXk0SG5aNk9peCtKQjR0OGZvRi9IaWo3QjVsc0Jhd0d1NzF0VlZkYlpsMUhaYitMSDJobEJZdTVTZXNlRGkzN1pzejR6OWdTdU5QeDJFUE9FL0QzYi9nK0ZkallQZ1lUNlB0Qy9Ld1ZJK0ZDOXdidXljU0xIbWE5Qll0V1lVYytWYjdMSHZjUzkwS2s5eThhdGtoakIvc1krMGQ4K3prYUR0MmdkdmQweC9mdTFJdDMwUGNMRXBqNDRoUGMrS1lXMUFiN2x2bFRCVUVHKzViOVV3WFVCdHYzZEFYM3J3WVQ3UHNnK0NvVmk1cFJsMm9lNS91VEJmdUdCdW4za3dXWHJKckZpeHB1OXc0VnlRWkc5d3NGUEFZTzNhQjI5M1RIOSs3VWkzZlE5d3NTbVBqaUU5ejRwaGJVQnZ1VytWTUZRUWI3bHYxVEJkUUcyL2QwQmZldkJoUHMreUQ0S2hXTG1sR1hhaDduKzVNRis0WUc2ZmVUQlplc21zV0xHbXozRGhYSkJ1SDNDd1U4Qmc3ZG9IYjNkTWYzN3RTTGQ5RDNDeEtZK09JVDNQaW1GdFFHKzViNVV3VkJCdnVXL1ZNRjFBYmI5M1FGOTY4R0UrejdJUGdxRll1YVVaZHFIdWY3a3dYN2hnYnA5NU1GbDZ5YXhZc2Erd3ozRGhYTkJzSGNCWTBHd1RvRnpRWTM5d3NGUUFZTzNhQjI5M1RIOSs3VWkzZlF1Nks4RXZjc3d2ZGZ3UlBiK0tZVzFBYjdsdmxUQlVFRys1YjlVd1hVQnR2M2RBWDNyd1lUNy9zZytDb1ZpNXBSbDJvZTUvdVRCZnVHQnVuM2t3V1hySnJGaXhyN0wvY1JGY0lHcFpHMXJCNjRtVVRPR3hQYnlLcXoyQjlWQm5HRVlHb2VYbjNUU0JzVDcwNXNZejRmRHQyZ2R2ZDB4L2Z1MUl0MzhlRVM5MTdJNWNrVDN2aW1GdFFHKzViNVV3VkJCdnVXL1ZNRjFBYmI5M1FGOTY4R0UrNzdJUGdxRll1YVVaZHFIdWY3a3dYN2hnYnA5NU1GbDZ5YXhZc2F1ZmN2RmNuaFRRYjdLelVWeU9GT0JnN2RvSGIzZE1mMzd0U0xkOFd4enJBUzkzMjJ6TFlUMy9pbUZ0UUcrNWI1VXdWQkJ2dVcvVk1GMUFiYjkzUUY5NjhHRSsvN0lQZ3FGWXVhVVpkcUh1Zjdrd1g3aGdicDk1TUZsNnlheFlzYWpQY0RGYlN1cUxXMWFLaGlZbWx1WVdHdGJyUWZzUVI0ZnBtZW41aVpucCtZZlhkNGZuMTNIdzczMDR2Sjk1bko5NVRKQWZnVTBBT1ZGdFFHOXhmMzJBWDNQdnZZK0RMSisrMzNtZmVmeWZ1Zjk1VDMyOG44ZFFhM1RSVzArNVg3SlFZTzkxZjdZYnJQOXlKTHkwM0orT3ZMRXNQVDk4UEFFNTdEOS9nVisxYjNHUHN3OTFKN0hoUE9lRG9GaTVLTWs2NmhmM1Z3Y29SeGRIaVJpeDViQjR1ZmhxbTh1cURGczIya1k1RWVFNjZUdGdVVG52YzZqK2owaXhwanZBV0xOUzM3SXZzNyt3cjNIZmM4OXpyM0N2Y1U5em4zR04wOWl4Nnd2Z1dMTnViN1BQdGQreXo3TC90Z0hnNndpOG4zbWNuM2xNbTg5d3NCOGRBRDhSYjRNc243N2ZlWjk1L0orNS8zbFBmYnlmd2dCdmRIdkJYSkJrYjNDd1U4Qmc2d2k4bjNtY24zbE1tODl3c0I4ZEFEOFJiNE1zbjc3ZmVaOTUvSis1LzNsUGZieWZ3Z0J2ZEZ2QlhKQnVIM0N3VThCZzZ3aThuM21jbjNsTW04OXdzQjhkQUQ4UmI0TXNuNzdmZVo5NS9KKzUvM2xQZmJ5ZndnQnVTOEZjMEd3ZHdGalFiQk9nWE5CamYzQ3dWQUJnNndpOG4zbWNuM2xNbmQ0UUh4MEs3STVja0Q4UmI0TXNuNzdmZVo5NS9KKzUvM2xQZmJ5ZndnQnZlVDNSWEo0VTBHK3lzMUZjamhUZ1lPKzVtZ2R2bFRkOUQzQ3dIeDBBUHhGdEQ1VTBZR2tMd1Z5UVpHOXdzRlBBWU8rNW1nZHZsVGQ5RDNDd0h4MEFQeEZ0RDVVMFlHamJ3VnlRYmg5d3NGUEFZTys1bWdkdmxUZDlEM0N3SHgwQVB4RnRENVUwWUdOYndWelFiQjNBV05Cc0U2QmMwR04vY0xCVUFHRHZ1Wm9IYjVVM2Z4NFJLcXlKWFFsc2tUNlBFVzBQbFRSZ1lUL052ZEZjbmhUUWI3S3pVVnlPRk9CZzczY0l2Sjk1bkg5NWJKQWZjSzBQaEswd1BGOTljVngvdlg5M1lHOTJqM0lmY1U5M1QzY3ZzaDl4WDdhQi83ZHZ2VVR3YjNGZnZWRmZlWjl6dkgrenYzbHZjcUIvZEI5d2NsKzAvN1VQc0hKZnRCSHc3M2I0dnhPbmI0N2ZHTGQ5QzdvcndTOGRDOXd2ZGZ3YnpRRTFwQThSYlFCaE5xUVBpT0I3Q0Z4WXNlalFhTHJVK2phQjczKy95T0JjNzVVMFlHRTUvQS9JNEhacEZSaXg2SkJvdHB4M091SHZ2NytJNEZTQWIzQzc4VndnYWxrYldzSHJpWlJNNGJFMXZBeUtxejJCOVZCbkdFWUdvZVhuM1RTQnNUbjhCT2JHTStIdzczdG4vTCtPdkxzUGNMQWNIVCtORFRBOEgzK0JYN1l2Y3oremIzVy9kYjl6UDNOdmRpOTE3N00vY3grMXY3Vy9zeit6SDdYaDdURnZjODl4UDNFL2N6OXpMM0ZQc1Qreno3UVBzVSt4ajdNdnN6K3hQM0dQZEFIdmVUK0NBVnlRWkc5d3NGUEFZTzk3Wi95L2pyeTdEM0N3SEIwL2pRMHdQQjkvZ1YrMkwzTS9zMjkxdjNXL2N6OXpiM1l2ZGUrelAzTWZ0YisxdjdNL3N4KzE0ZTB4YjNQUGNUOXhQM00vY3k5eFQ3RS9zOCswRDdGUHNZK3pMN00vc1Q5eGozUUI3M2tmZ2dGY2tHNGZjTEJUd0dEdmUyZjh2NDY4dXc5d3NCd2RQNDBOTUR3ZmY0RmZ0aTl6UDdOdmRiOTF2M00vYzI5MkwzWHZzejl6SDdXL3RiK3pQN01mdGVIdE1XOXp6M0UvY1Q5elAzTXZjVSt4UDdQUHRBK3hUN0dQc3krelA3RS9jWTkwQWU5em40SUJYTkJzSGNCWTBHd1RvRnpRWTM5d3NGUUFZTzk3Wi95L2pyeTdDN29yd1N3ZFAzRnNMM1g4SDNGdE1UNmNIMytCWDdZdmN6K3piM1cvZGI5elAzTnZkaTkxNzdNL2N4KzF2N1cvc3orekg3WGg3VEZ2Yzg5eFAzRS9jejl6TDNGUHNUK3p6N1FQc1UreGo3TXZzeit4UDNHUGRBSGhQLzl4YjRJeFhDQnFXUnRhd2V1SmxFemhzVDc4aXFzOWdmVlFaeGhHQnFIbDU5MDBnYkUvOU9iR00rSHc3M3RuL0wrT3ZMMGVFQndkUDNTTWpseWZkSDB3UEI5L2dWKzJMM00vczI5MXYzVy9jejl6YjNZdmRlK3pQM01mdGIrMXY3TS9zeCsxNGUweGIzUFBjVDl4UDNNL2N5OXhUN0UvczgrMEQ3RlBzWSt6TDdNL3NUOXhqM1FCNzMzL2hCRmNuaFRRYjdLelVWeU9GT0JnNzNEYUIyQWRQNGtnUFR0QlcwWXZkcTk0WDNhdnVGdExUN2JmZUg5MjMzaDJLMCsycjdoZnRxOTRWaVl2ZHMrNGNGRHZlNWY4djQ2OHNCdzlQNDBOTUR3L2Y0RmZzR3V5YllTQjVhUnJWdXU4OEZaOFBNZDlJYjkxdjNNL2MyOTJMM0JGbnVQY3dmdXMxaXFWeEpCYXhVU3A5R0cvdGIrelA3TWZ0ZUgva1lGdnRBK3hUN0dQc3lVbGVjcUY4ZTkrejRjd1hGVnJBOU1ScjgwQmIzUFBjVDl4UDNNOEsrZTNDM0h2dnIvSElGVXNKbjIrWWFEdmRTZjh2NUgzZlE5d3NCNk5INEk5QUQ2UGVKRmZzdzl3SW05elQzTS9jQjhQY3dIdmhlUnZ4YkIvc1BQRUw3RGZzTlBkVDNEUjc0WFVVSDk0TzhGY2tHUnZjTEJUd0dEdmRTZjh2NUgzZlE5d3NCNk5INEk5QUQ2UGVKRmZzdzl3SW05elQzTS9jQjhQY3dIdmhlUnZ4YkIvc1BQRUw3RGZzTlBkVDNEUjc0WFVVSDk0RzhGY2tHNGZjTEJUd0dEdmRTZjh2NUgzZlE5d3NCNk5INEk5QUQ2UGVKRmZzdzl3SW05elQzTS9jQjhQY3dIdmhlUnZ4YkIvc1BQRUw3RGZzTlBkVDNEUjc0WFVVSDl5aThGYzBHd2R3RmpRYkJPZ1hOQmpmM0N3VkFCZzczVW4vTCtSOTM4ZUVCNk5Ib3lPWEo2TkFENlBlSkZmc3c5d0ltOXpUM00vY0I4UGN3SHZoZVJ2eGJCL3NQUEVMN0Rmc05QZFQzRFI3NFhVVUg5ODdkRmNuaFRRYjdLelVWeU9GT0JnNnpvSGI1VTNmUTl3c0I5NURSQS9lUUZ0SDN3Z2IzZ1BnbEJUMEcreW43a3dWMVpuWmNpeHFKQm90MXUzYXZIdnNwOTVNRlBBYjNnZndsQlkzNFZoWEpCdUgzQ3dVOEJnN01vSGIzSzhuM3c4bE45MDhTOGREMzA5TVQ3UEVXMFBjcjkwQUc5eFBuMy9jVzl4Y3YzZnNSSC90Q0JoUGM5eEZHQjlEOGZoVVQ3UGZEOXpvSDZNZFVLeXhQVWkwZkRyS0V5R3AyK1NISkV0M1A5eFBSdE5HYTBCTiszUmJQK0tJRzNzeTN6Tk92WFdFZU92c0RiVFFhRTdvaDkxaHVMUnBSWEhGWU9FK3ZpeDVLQjR2QWErcmYyYnJySHZjVCsxZXh6eG9UdnNyM0E2cnlHdGxIMGlBbkprdjdEQjRPZlgvRmNuYjNrOFAzSThqUTl3c1N0TkgzbnM4VHZyVDNIUlVuNGxyZjl4SzE5d0dMSG8wR0UzNkxpWHB5SDFUTTk5WUg5eEpJenZzTit3VkpVb3NlcTFjRmk4YTczdFBBYWlvZWZtOEhFNzQwKzNHSCt6NGYwWThWOXdQM01vN2FIcWgxQmpSUkp5dEFacnU2SHZjSitFOFZ5UVpHOXdzRlBBWU9mWC9GY25iM2s4UDNJOGpROXdzU3ROSDNuczhUdnJUM0hSVW40bHJmOXhLMTl3R0xIbzBHRTM2TGlYcHlIMVRNOTlZSDl4Skl6dnNOK3dWSlVvc2VxMWNGaThhNzN0UEFhaW9lZm04SEU3NDArM0dIK3o0ZjBZOFY5d1AzTW83YUhxaDFCalJSSnl0QVpydTZIdmNHK0U4VnlRYmg5d3NGUEFZT2ZYL0ZjbmIzazhQM0k4alE5d3Rsc1JLMDBmZWV6eE83dFBjZEZTZmlXdC8zRXJYM0FZc2VqUVlUZTR1SmVuSWZWTXozMWdmM0Vrak8rdzM3QlVsU2l4NnJWd1dMeHJ2ZTA4QnFLaDUrYndjVHV6VDdjWWY3UGgvUmp4WDNBL2N5anRvZXFIVUdORkVuSzBCbXU3b2VwdmhQRmMwR0U3ZkIzQVdOQmhPN3dUb0Z6UVkzOXdzRlFBWU9mWC9GY25iM2s4UDNJOGpRdTZLOEVyVFJnOEwzWDhGbHp4TzJRTFQzSFJVbjRscmY5eEsxOXdHTEhvMEdFM1pBaTRsNmNoOVV6UGZXQi9jU1NNNzdEZnNGU1ZLTEhxdFhCWXZHdTk3VHdHb3FIbjV2QnhPMlFEVDdjWWY3UGgvUmp4WDNBL2N5anRvZXFIVUdORkVuSzBCbXU3b2VFN1dBZy9oU0ZjSUdwWkcxckI2NG1VVE9HeE85Z01pcXM5Z2ZWUVp4aEdCcUhsNTkwMGdiRTdXQVRteGpQaDhPZlgvRmNuYjNrOFAzSThqeDRSSzAwYlhJNWNtV3p4TytnTFQzSFJVbjRscmY5eEsxOXdHTEhvMEdFMzZBaTRsNmNoOVV6UGZXQi9jU1NNNzdEZnNGU1ZLTEhxdFhCWXZHdTk3VHdHb3FIbjV2QnhPK2dEVDdjWWY3UGgvUmp4WDNBL2N5anRvZXFIVUdORkVuSzBCbXU3b2VFNytBOTFYNGNCWEo0VTBHK3lzMUZjamhUZ1lPZlgvRmNuYjNrOFAzSThqRnNjNndFclRSMDdiTXRyYlBFNy9BdFBjZEZTZmlXdC8zRXJYM0FZc2VqUVlUZjhDTGlYcHlIMVRNOTlZSDl4Skl6dnNOK3dWSlVvc2VxMWNGaThhNzN0UEFhaW9lZm04SEU3L0FOUHR4aC9zK0g5R1BGZmNEOXpLTzJoNm9kUVkwVVNjclFHYTd1aDczSi9oRUZiU3VxTFcxYUtoaVltbHVZV0d0YnJRZnNRUjRmcG1lbjVpWm5wK1lmWGQ0Zm4xM0h3NzM1SC9GVWNqM1hzUDNKOGhSeFJLMDBmZWV6UGZMMEJPdnRQY2RGU3JjVitmM0dydjNCcVdUSG8wR05MRGNWdkliOXdiVDBZc2ZFMjlzdndXTFRrNHdJanZROXhtSUh2Z09Cb3VOb3ByM0RFTDEreHM1U0doR1loK0pCc3AzV2JRbkcvc0NTMUdMSHhPM3FsZ0ZpOGE3MjllL2Fpb2VlbW9IRTYvN0JQdFNodnM1SC9ncDl6NFY4SnZOdk40YjBzNWVJbzhmL1JiN09oWHk5dzZTNEI3R2VnWXpVaWNyUUdXNXZCNE9tL3RodXMvM0gxREcrQ2pKRXJ2UjkyakFFN3k3OTQ4Vit5VHNKZmNZZkI0VDNIZzZCWXVTakpPdW9YOTFjSEtFY1hSNGtZc2VXd2VMbjRhcHZMcWd4Yk50cEdPUkhoTzhrN1lGOXc2UHpOYUxHbXpBQll0UVJDWDdBelRmOXdyM0RPSGQ5d0xtdzA2TEhxNitCWXRPMC9zUCt5ajdDUHNCK3k4ZURwNS95UGRidy9jdXhORDNDd0c2MGZmVDBBTzY5NDhWK3kvM0Jmc0E5eXIzQmRUUml4NXN2d1dMVGs0dkl6UFI5eFdJSHZnV0JvdU5vcGYzRVVUMit4LzdIUHNFS1BzNUg5VEFGZkNiMU1EZkc5YkxXaUtQSC9zKzk2d1Z5UVpHOXdzRlBBWU9ubi9JOTF2RDl5N0UwUGNMQWJyUjk5UFFBN3IzanhYN0wvY0Yrd0QzS3ZjRjFOR0xIbXkvQll0T1RpOGpNOUgzRllnZStCWUdpNDJpbC9jUlJQYjdIL3NjK3dRbyt6a2YxTUFWOEp2VXdOOGIxc3RhSW84ZiswSDNyQlhKQnVIM0N3VThCZzZlZjhqM1c4UDNMc1RROXd0bHNSSzYwZmZUMEJQMnV2ZVBGZnN2OXdYN0FQY3E5d1hVMFlzZWJMOEZpMDVPTHlNejBmY1ZpQjc0RmdhTGphS1g5eEZFOXZzZit4ejdCQ2o3T1IvVXdCWHdtOVRBM3h2V3kxb2lqeC83bWZlc0ZjMEdFKzdCM0FXTkJoUDJ3VG9GelFZMzl3c0ZRQVlPbm4vSTkxdkQ5eTdFOGVFQnV0SFV5T1hKck5BRHV2ZVBGZnN2OXdYN0FQY3E5d1hVMFlzZWJMOEZpMDVPTHlNejBmY1ZpQjc0RmdhTGphS1g5eEZFOXZzZit4ejdCQ2o3T1IvVXdCWHdtOVRBM3h2V3kxb2lqeDhzOTgwVnllRk5CdnNyTlJYSTRVNEdEdnZDb0hiNGkzZnc5d3NCM2M4RDRmamNGY2tHUnZjTEJUd0czZjFURmMvNGkwY0dEdnZDb0hiNGkzZnc5d3NCM2M4RDMvamNGY2tHNGZjTEJUd0dSUDFURmMvNGkwY0dEdnZDb0hiNGkzZnc5d3Rsc1JMZHp4UG8zUmJQK0l0SEJqWGNGYzBHRTlqQjNBV05CaFBvd1RvRnpRWTM5d3NGUUFZTys4S2dkdmlMZC9jYTRSS1d5SlhQbDhrVC9QYzIrUDBWeWVGTkJ2c3JOUlhJNFU0R0UralMvVk1Wei9pTFJ3WU93WC9JOS96Rjk0bDNBYnpSOStmUkE3ejNmQlg3RDkvN0RmY245MFBVOXl2M0d2Y3NTL2NBTk04ZTdMaCt1L3NYVUUyd1JhTkxteGwzVWI1L3UzcTJkUm43RzB5WVcvZEUyOFJrdGxpalJobUpCb3Rid1N2N01UbjdDUHNMSHRHS0ZlVEQ1UGNNN2N4TU5TdFgrd2Y3RUNKUjVlY2VEc2FnZHZoWHkzOTM4THVpdkJMZHo1REM5MS9CZXM4VHpJRGRGcy8zaFFhamphS1JvQjdlb3RYRzRSdnNsMFU4SC92Q3ovZlVCL2NRWDlMN0VQc0xTenBkZVI2SkJoT3NnSXVObmFFZjFrZ0hFOHNBMU44VndnYWxrYldzSHJpWlJNNGJFOXNBeUtxejJCOVZCbkdFWUdvZVhuM1RTQnNUeXdCT2JHTStIdzdqZjhqNEtNblE5d3NCdU5INEhORUR1UGVTRmZzczl3djdCdmNuOXlmM0MvY0c5eXozS2ZzTDl3VDdKL3NuK3d2N0JQc3BIdEVXOXdiajRQY0E5d0RqTnZzRyt3a3pNL3NBK3dBejQvY0pIdmM2OTk0VnlRWkc5d3NGUEFZTzQzL0krQ2pKMFBjTEFialIrQnpSQTdqM2toWDdMUGNMK3diM0ovY245d3YzQnZjczl5bjdDL2NFK3lmN0ovc0wrd1Q3S1I3UkZ2Y0c0K0QzQVBjQTR6YjdCdnNKTXpQN0FQc0FNK1AzQ1I3M09QZmVGY2tHNGZjTEJUd0dEdU4veVBnb3lkRDNDMld4RXJqUitCelJFK3k0OTVJVit5ejNDL3NHOXlmM0ovY0w5d2IzTFBjcCt3djNCUHNuK3lmN0Mvc0UreWtlMFJiM0J1UGc5d0QzQU9NMit3YjdDVE16K3dEN0FEUGo5d2tlMXZmZUZjMEdFOXpCM0FXTkJoUHN3VG9GelFZMzl3c0ZRQVlPNDMvSStDakowTHVpdkJLNDBiUEM5MS9CczlFVDM3ajNraFg3TFBjTCt3YjNKL2NuOXd2M0J2Y3M5eW43Qy9jRSt5ZjdKL3NMK3dUN0tSN1JGdmNHNCtEM0FQY0E0emI3QnZzSk16UDdBUHNBTStQM0NSNno5K0VWd2dhbGtiV3NIcmlaUk00YkUvL0lxclBZSDFVR2NZUmdhaDVlZmROSUd4UGZUbXhqUGg4TzQzL0krQ2pKOGVFQnVOSGx5T1hKNU5FRHVQZVNGZnNzOXd2N0J2Y245eWYzQy9jRzl5ejNLZnNMOXdUN0ovc24rd3Y3QlBzcEh0RVc5d2JqNFBjQTl3RGpOdnNHK3drek0vc0Erd0F6NC9jSkh2ZUY5LzhWeWVGTkJ2c3JOUlhJNFU0R0R2Y0V5TlgzRE1YM0ROVUI5N0hXQS9leCtFVVYxdFZBQnZ0ais1QVYrSDdGL0g0RzkyUDdrQlhXMVVBR0R1Vi95R3gyK0Z6SmYzY1N1ZEg0SE5FVHJMbjNraFVUYkRhd1FzVmJIbVpZQlJPY3RHMnh3QVYzc2JkL3VodjNKL2NMOXdiM0xOcHAwRlc2SDdIQkJST3NZcWxrVlFXaVkxMllXUnY3Si9zTCt3VDdLUi9SRnZjRzQrRDNBSyt0Z1hxb0h2dDgrOWdGWkxCendNa2ErQndXK3drek0vc0FhbXVUbW5BZTkzdjMxd1d1YUtGWlV4b093WC9MYkhiNGkzZnc5d3NTMXMvM3U4OFR2TmIzU3hYN0Y3MUw5d3IzQTgzWnZKOGVqUVlUZkl1SmVYVWZRTTM0aTBmN2hRY1R2UHNCUkNiN0J5cC8wZG9lOThKSEIvZE8zQlhKQmtiM0N3VThCZzdCZjh0c2R2aUxkL0QzQ3hMV3ovZTd6eE84MXZkTEZmc1h2VXYzQ3ZjRHpkbThueDZOQmhOOGk0bDVkUjlBemZpTFIvdUZCeE84K3dGRUp2c0hLbi9SMmg3M3drY0g5MHZjRmNrRzRmY0xCVHdHRHNGL3kyeDIrSXQzOFBjTFpiRVMxcy8zdTg4VHR0YjNTeFg3RjcxTDl3cjNBODNadko4ZWpRWVRkb3VKZVhVZlFNMzRpMGY3aFFjVHR2c0JSQ2I3QnlwLzBkb2U5OEpIQityY0ZjMEdFNjdCM0FXTkJoTzJ3VG9GelFZMzl3c0ZRQVlPd1gvTGJIYjRpM2YzR3VFUzFzKzF5T1hKczg4VHY5YjNTeFg3RjcxTDl3cjNBODNadko4ZWpRWVRmNHVKZVhVZlFNMzRpMGY3aFFjVHYvc0JSQ2I3QnlwLzBkb2U5OEpIQi9lWjl3WVZ5ZUZOQnZzck5SWEk0VTRHRG1qN1pzajVJSGZ3OXdzQmt2aDFBNUw3U0JXTHIyMi96cisweTZVZTk0ejQ5QVZCQnZzbC9BTUZnWEtFYjRzYWlRYUxnNmVCcEI3N0tQZ0RCVUFHOTJiOGgyeEVCVjEzYkdkZkcydHZvb3NmOTAzNVdoWEpCdUgzQ3dVOEJnN0NmOGo0S01uM1VIY0IzYy8zMU5FRDNmdGNGYy8zaEFhbGlaMkxIbzBHaTdVcjl3LzNHT2oxOXpMM0xqZjNBZnNjK3c5ak1ZV0ZIb2tHaTR5Y294LzNoMGNIemZ4WUZmY2syY1hoNk13Nyt3MzdFa1ErTVNWUTZmY0FIZzVvKzJiSStTQjM5eHJoQWZjbHlPWEpBNUw3U0JXTHIyMi96cisweTZVZTk0ejQ5QVZCQnZzbC9BTUZnWEtFYjRzYWlRYUxnNmVCcEI3N0tQZ0RCVUFHOTJiOGgyeEVCVjEzYkdkZkcydHZvb3NmOTV2NWV4WEo0VTBHK3lzMUZjamhUZ1lPM2FCMjkzVEg5KzdVaTNmeHdoS1krT0w4TnZlS0U5ejRwaGJVQnZ1VytWTUZRUWI3bHYxVEJkUUcyL2QwQmZldkJoUHEreUQ0S2hXTG1sR1hhaDduKzVNRis0WUc2ZmVUQlplc21zV0xHdnNPOXk4Vjk0ckMrNG9HRG4xL3hYSjI5NVBEOXlQSThjSVN0TkdrOTRxR3p4Tzl0UGNkRlNmaVd0LzNFclgzQVlzZWpRWVRmWXVKZW5JZlZNejMxZ2YzRWtqTyt3MzdCVWxTaXg2clZ3V0x4cnZlMDhCcUtoNStid2NUdlRUN2NZZjdQaC9SanhYM0EvY3lqdG9lcUhVR05GRW5LMEJtdTdvZUU3NmsrSEFWOTRyQys0b0dEdDJnZHZkMHgvZnUxSXQzemJvUzkxWEM5dzNDRTk3NHBoYlVCdnVXK1ZNRlFRYjdsdjFUQmRRRzIvZDBCZmV2QmhQdSt5RDRLaFdMbWxHWGFoN24rNU1GKzRZRzZmZVRCWmVzbXNXTEdvejNDeFhIdzYvU0g1cFVmZ2RmYlhsc2JHNmR0eDZZVkh3SFJNTm54aDRPZlgvRmNuYjNrOFAzSThqTnVsejNEaEswMGF2Qzl3M0NqczhUdDBDMDl4MFZKK0phMy9jU3RmY0JpeDZOQmhOM1FJdUplbklmVk16MzFnZjNFa2pPK3czN0JVbFNpeDZyVndXTHhydmUwOEJxS2g1K2J3Y1R0MEEwKzNHSCt6NGYwWThWOXdQM01vN2FIcWgxQmpSUkp5dEFacnU2SHZjbitFd1ZFN2VBeDhPdjBoK2FWQWNUdTRCK0IxOXRlV3hzYnAyM0hoTzNRSmhVZkFkRXcyZkdIZzdkKzJIRDl6cDJwSGIzZE1mMzd0U0xkeEw0WjhvVHR2aG4rd1VWTnZjQ2hJc2Vtc01GaTAyUXVMTyt0YUdjSC91VytWTUZRUWI3bHYxVEJkUUcyL2QwQmZldkJoUFczZnQ0QlJPMmNuZGtZMW9hRTdyN012bDdGWXVhVVpkcUh1Zjdrd1g3aGdicDk1TUZsNnlheFlzYURuMzdZY1AzSGNWeWR2ZVR3L2NqeUJLMDBmZGF5cERQRTEyMDl4MFZKK0phMy9jU3RmY0JpeDZOQm91SmVuSWZWUWNUM25ONVhHQldHamIzQW9TTEhwckRCWXROa0xnZkV6Mnp2cldobkI3MzFnZjNFa2pPK3czN0JVbFNpeDZyVndXTHhydmUwOEJxS2g1K2J3Y1RYVFQ3Y1liN1BSL1JqeFgzQS9jeWp0b2VxSFVHTkZFbkswQm11N29lRHZkV2Y4djQ2OHV3OXdzQnd0TUR3dmY0RmZ0aDl5ajdOL2RrOTBIcjl3R0xIbU84QllzMUxmc2krenY3Q3ZjZDl6ejNPdmNLOXhUM09mY1kzVDJMSHJDK0JZczI1dnM4KzEzN0xQc3YrMkFlOTg3NElCWEpCdUgzQ3dVOEJnNmFmOGo0S01uUTl3c0J1dEVEdXZlUEZmc3c5d2NnOXluM0ZNL2FpeDVzd0FXTFVFUWwrd00wMy9jSzl3emgzZmNDNXNOT2l4NnV2Z1dMVHRQN0Qvc28rd2o3QWZzdkh2ZHE5K0VWeVFiaDl3c0ZQQVlPOTFaL3kvanJ5N0QzQ3dIQzB3UEM5L2dWKzJIM0tQczM5MlQzUWV2M0FZc2VZN3dGaXpVdCt5TDdPL3NLOXgzM1BQYzY5d3IzRlBjNTl4amRQWXNlc0w0Rml6Ym0reno3WGZzcyt5LzdZQjczZHZnZ0ZjMEd3ZHdGalFiQk9nWE5CamYzQ3dWQUJnNmFmOGo0S01uUTl3dGxzUks2MFJQb3V2ZVBGZnN3OXdjZzl5bjNGTS9haXg1c3dBV0xVRVFsK3dNMDMvY0s5d3poM2ZjQzVzTk9peDZ1dmdXTFR0UDdEL3NvK3dqN0Fmc3ZIdmNTOStFVnpRWVQyTUhjQlkwR0UrakJPZ1hOQmpmM0N3VkFCZzczVm4vTCtPdkwwdUFCd3RQM2hzd0R3dmY0RmZ0aDl5ajdOL2RrOTBIcjl3R0xIbU84QllzMUxmc2krenY3Q3ZjZDl6ejNPdmNLOXhUM09mY1kzVDJMSHJDK0JZczI1dnM4KzEzN0xQc3YrMkFlOTg3NFFoWE00RW9HRHBwL3lQZ295ZkxnQWJyUjl5VE1BN3IzanhYN01QY0hJUGNwOXhUUDJvc2ViTUFGaTFCRUpmc0ROTi8zQ3ZjTTRkMzNBdWJEVG9zZXJyNEZpMDdUK3cvN0tQc0krd0g3THg3M2F2Z0RGY3pnU2dZTzkxWi95L2pyeTdEM0N3SEMwd1BDOS9nVisySDNLUHMzOTJUM1FldjNBWXNlWTd3Rml6VXQreUw3Ty9zSzl4MzNQUGM2OXdyM0ZQYzU5eGpkUFlzZXNMNEZpemJtK3p6N1hmc3MreS83WUI3M3lmZ2dGZFlHMy9jTEJVa0dWVHNGaVFaVjJ3VkpCZzZhZjhqNEtNblFzbVQzQ3hLNjBSUFl1dmVQRmZzdzl3Y2c5eW4zRk0vYWl4NXN3QVdMVUVRbCt3TTAzL2NLOXd6aDNmY0M1c05PaXg2dXZnV0xUdFA3RC9zbyt3ajdBZnN2SHZkbDkrRVYxZ2JmOXdzRlNRWVQ2RlU3QllrR0U5aFYyd1ZKQmc3M1lvdkorTmZKdlBjTEFmSFErRXZUQS9FVzkzY0c5MmYzSXZjVTkzVDNjdnNpOXhYN1p4Lzdkd2JRL1JVVitOZjNLd2YzUVBjSUpmdFArMUQ3QnlYN1FSOTYrVVlWMWdiZjl3c0ZTUVpWT3dXSkJsWGJCVWtHRHVCL3lHOTIrRnJJdlBjZkVyelI5OVRQMWNjVHZMejNrQlg3TU4vN0FQY2I5eGkwOElzZWpRWVRmSXVKZlhVZlZzMzVVMGY3aVFkMmpYcUxIb2tHaTJIcSt3NGVFN3o3R0Mwait6TWYwUmIzRTlUVzVQY0F2eWNsK3lNOFR6Y3RTdHIzRUI0VHZ2aFgrRmNWazNXT2VIb2FjWVJ5ZjIwZXd3YWFySk9tcVJxYmladUhuQjRPOTNDTHlmZVp4L2VXeVFIM0N0RDRTdE1EeGZmWEZjZjcxL2QyQnZkbzl5SDNGUGQwOTNMN0lmY1YrMmdmKzNiNzFFOEc5eFg3MVJYM21mYzd4L3M3OTViM0tnZjNRZmNISmZ0UCsxRDdCeVg3UVI4T3duL0liM2I0V3NpK3ZsajNIUks4MGZmVXp4T3U5OGY0eWhYM0dQc0FCbmFOZW9zZWlRYUxZZXI3RHZzWUxTUDdNL3N3My9zQTl4djNHTFR3aXg2TkJoTnVpNGw5ZFI5V3pmaksyd2NUdHI0N0J4T3U0VWNIRTdZMSt4Z0grMUQ4QVJYM0U5VFc1UGNBdnljbCt5TThUemN0U3RyM0VCNE9zSXZKOTVuSjk1VEozY0lTOGRDZDk0b1QrUEVXK0RMSisrMzNtZmVmeWZ1Zjk1VDMyOG44SUFZVC9PTGRGZmVLd3Z1S0JnNmVmOGozVzhQM0xzVHh3aEs2MGNQM2lwelFFL3E2OTQ4Vit5LzNCZnNBOXlyM0JkVFJpeDVzdndXTFRrNHZJelBSOXhXSUh2Z1dCb3VOb3BmM0VVVDIreC83SFBzRUtQczVIOVRBRmZDYjFNRGZHOWJMV2lLUEh4UCsrNXYzelJYM2lzTDdpZ1lPc0l2Sjk1bko5NVRKdWJvUzhkQ2t3dmNOd2hQNjhSYjRNc243N2ZlWjk1L0orNS8zbFBmYnlmd2dCaFArOTJXNUZjZkRyOUlmbWxSK0IxOXRlV3hzYnAyM0hwaFVmQWRFdzJmR0hnNmVmOGozVzhQM0xzVE51bHozRGhLNjBjckM5dzNDcE5BVDd3QzY5NDhWK3kvM0Jmc0E5eXIzQmRUUml4NXN2d1dMVGs0dkl6UFI5eFdJSGhQdmdQZ1dCb3VOb3BmM0VVVDIreDhmRSs4QSt4ejdCQ2o3T1IvVXdCWHdtOVRBM3hzVDc0RFd5MW9pangvN0lmZXBGUlB2QU1mRHI5SWZtbFFIRS9jQWZnZGZiWGxzYkc2ZHR4NFQ3d0NZVkh3SEUrK0FSTU5ueGg0T3NJdko5NW5KOTVUSjN1QUI4ZEQzQU13RDhSYjRNc243N2ZlWjk1L0orNS8zbFBmYnlmd2dCdmRGM2hYTTRFb0dEcDUveVBkYncvY3V4UExnQWJyUjl5Yk05d0RRQTdyM2p4WDdML2NGK3dEM0t2Y0YxTkdMSG15L0JZdE9UaThqTTlIM0ZZZ2UrQllHaTQyaWwvY1JSUGI3SC9zYyt3UW8remtmMU1BVjhKdlV3TjhiMXN0YUlvOGYrMEgzemhYTTRFb0dEckQ3WWNQM0tjbjNtY24zbE1rQjhkRDNaY29EOFJiMzhJa0djM2xkWTFZYU52Y0NoSXNlbXNNRmkwMlF1TE8rdGFHY0g4bjc3ZmVaOTUvSis1LzNsUGZieWZ3Z0J3NmYrMkhEOXgzSTkxdkQ5eTdFQWJyUjl6L0s0TkFEdXZlUEZmc3Y5d1g3QVBjcWw1V01qWlVlaVFkeGMyOXBYeG8yOXdLRWl4NmF3d1dMVFpDNDBmSzZ0Yk1mYkw4RmkwNU9MeU16MGZjVmlCNzRGZ2FMamFLWDl4RkU5dnNmK3h6N0JDajdPUi9Vd0JYd205VEEzeHZXeTFvaWp4OE9zSXZKOTVuSjk1VEp2UGNMQWZIUUEvRVcrRExKKyszM21mZWZ5ZnVmOTVUMzI4bjhJQWIzUUx3VjFnYmY5d3NGU1FaVk93V0pCbFhiQlVrR0RwNS95UGRidy9jdXhOQ3laUGNMRXJyUjk5UFFFKzY2OTQ4Vit5LzNCZnNBOXlyM0JkVFJpeDVzdndXTFRrNHZJelBSOXhXSUh2Z1dCb3VOb3BmM0VVVDIreC83SFBzRUtQczVIOVRBRmZDYjFNRGZHOWJMV2lLUEgvdEc5NndWMWdiZjl3c0ZTUVlUOWxVN0JZa0dFKzVWMndWSkJnNzNkSC9MYkhiM3BzbjN6OHV3OXdzU3d0UDRpTTBUdnNMMzlCWDdaZmNzK3kvM1ZQY28zT3FMSG8wR0UzNkxpbng4SDFiTDkrVDdUazMzRFBzTEJ4TytpemNrK3gzN05Qc0w5eFQzUWZjNzl3ZjNGL2MrOXhUZFJZc2VzTDhGaXpUZCt6ZjdYdnNzK3pUN1h4NzNjdmdrRmMwR3dkd0ZqUWJCT2dYTkJqZjNDd1ZBQmc2NysyYkk5eXpJK0FQVFdjblE5d3Rsc1JLODBmZk56eFBiOXd6N0JoVnhVd1Z5dk1WOHhSdjNEL2NLeWZjMEh4UHIrSDlKVkFlQWpJV0xIb2tHRTl1TGF0LzdHZnNiT0NUN0svc3I1Q0QzRzltK3E4T3BIbzBHaTRsNmVCOWRCL3NFUFYwcFFVMnVpeDczT1BkR0ZTZEsyZmNNOXd6RTB1M2swVjc3Si9zb1JWbzhIL3NNK0p3VnpRWVQxOEhjQlkwR0U5dkJPZ1hOQmpmM0N3VkFCZzczZEgvTGJIYjNwc24zejh1dHVoTEMwL2N3d3ZjTnd2Y0Z6Uk8vZ01MMzlCWDdaZmNzK3kvM1ZQY28zT3FMSG8wR0UzK0FpNHA4ZkI5V3kvZmsrMDVOOXd6N0N3Y1R2NENMTnlUN0hmczArd3YzRlBkQjl6djNCL2NYOXo3M0ZOMUZpeDZ3dndXTE5OMzdOL3RlK3l6N05QdGZIdmZyK0NFVng4T3YwaCthVkg0SFgyMTViR3h1bmJjZW1GUjhCMFREWjhZZURydjdac2ozTE1qNEE5Tlp5YzI2WFBjT0VyelJ2Y0wzRGNLcnp4UFh3UGNNK3dZVmNWTUZjcnpGZk1VYjl3LzNDc24zTkI4VDU4RDRmMGxVQjRDTWhZc2VpUVlUMThDTGF0LzdHZnNiT0NUN0svc3I1Q0QzRzltK3E4T3BIbzBHaTRsNmVCOWRCL3NFUFYwcFFVMnVpeDczT1BkR0ZTZEsyZmNNOXd6RTB1M2swVjc3Si9zb1JWbzhIL2laQk1mRHI5SWZtbFFIRTl2QWZnZGZiWGxzYkc2ZHR4NFQxOENZVkh3SFJNTm54aDRPOTNSL3kyeDI5NmJKOTgvTDB1QVN3dFAzZzh6M1dNMFR2OEwzOUJYN1pmY3MreS8zVlBjbzNPcUxIbzBHRTMrTGlueDhIMWJMOStUN1RrMzNEUHNMQnhPL2l6Y2sreDM3TlBzTDl4VDNRZmM3OXdmM0YvYys5eFRkUllzZXNMOEZpelRkK3pmN1h2c3MrelQ3WHg3M3kvaEdGY3pnU2dZT3UvdG15UGNzeVBnRDAxbko4dUFTdk5IM0djejNCODhUMy9jTSt3WVZjVk1GY3J6RmZNVWI5dy8zQ3NuM05COFQ3L2gvU1ZRSGdJeUZpeDZKQmhQZmkycmYreG43R3pnayt5djdLK1FnOXh2WnZxdkRxUjZOQm91SmVuZ2ZYUWY3QkQxZEtVRk5yb3NlOXpqM1JoVW5TdG4zRFBjTXhOTHQ1TkZlK3lmN0tFVmFQQjlyK0w0VnpPQktCZzczZFB0ZTl4Kyt5MngyOTZiSjk4L0xFc0xUOTQ3SDkxTE5FMTNDOS9RVisyWDNMUHN2OTFUM0tOenFpeDZOQmhNOWk0cDhmQjlXeS9mayswNU45d3o3Q3djVFhZczNKUHNkK3pUN0MvY1U5MEgzTy9jSDl4ZjNQdmNVM1VXTEhyQy9CWXMwM2ZzMysxNzdMUHMwKzE4ZUU5LzN5L3d6RlpOMWpuaDZHbkdFY245dEhzTUdtcXlUcHFrYW00bWJoNXdlRHJ2N1pzajNMTWo0QTlOWnliNzNIaEs4MGZjVngvY1F6eFBkOXd6N0JoVnhVd1Z5dk1WOHhSdjNEL2NLeWZjMEh4UHQrSDlKVkFlQWpJV0xIb2tHRTkyTGF0LzdHZnNiT0NUN0svc3I1Q0QzRzltK3E4T3BIbzBHaTRsNmVCOWRCL3NFUFYwcFFVMnVpeDczT1BkR0ZTZEsyZmNNOXd6RTB1M2swVjc3Si9zb1JWbzhIeFBmcnZpS0ZZT2dpSjZjR3FXU3BKZXBIbE1HZkdxRGNHMGFlNDE3ajNzZUR2ZHNvSGIzMWNuMzFIZlE5d3NCOGRENExOQUQ4UmJROTlYNExQdlYwUGxUUnZ2VS9DejMxRVlHOXl5OEZjMEd3ZHdGalFiQk9nWE5CamYzQ3dWQUJnN0dvSGI0Vjh2M1VIZlE5d3NCM2MvM3dNOEQzUmJQOTRVR280MmlrWjhlMzZMVnh1RWI3SmRGUEIvN3dzLzMxQWYzRUYvUyt4RDdCa2crVzNnZWlRYUxqWjJpSC9la1J3YzF2QlhOQnNIY0JZMEd3VG9GelFZMzl3c0ZRQVlPOTVpZ2R2ZlZ5ZmNWd1ZYM1V4TDNFZEg0S05FVDdQY1JGdEgzMWZnbys5WFIrSlRNd1VvR0U5ejNIVVVIRSt6N0hmd29CeFBjOXgxRkJ4UHMreDFKVmMwSDBmc1ZGZmNWK0NqN0ZRY094cUIyK0ZmTHZyNVk5eDBTM2MvM3dNOFQzSkg0eWhYWC9NclA5NFVHbzQyaWtaOGUzNkxWeHVFYjdKZEZQQi83d3MvMzFBZjNFRi9TK3hEN0JrZytXM2dlaVFhTGpaMmlIL2NiOXhrSEUreSsreGtIRTl6aFJ3Y1Q3RFUvQnc3N21hQjIrVk4zMEx1aXZCSjR3czNRejhFVDVQRVcwUGxUUmdZVC92c052eFhDQnFXUnRhd2V1SmxFemhzVDdzaXFzOWdmVlFaeGhHQnFIbDU5MDBnYkUvNU9iR00rSHc3N3dxQjIrSXQzOEx1aXZCSmt3czNQME1FVDNtVDQzeFhDQnFXUnRhd2V1SmxFemhzVC9zaXFzOWdmVlFaeGhHQnFIbDU5MDBnYkU5NU9iR00rSC9jTi9OOFZ6L2lMUndZTys1bWdkdmxUZC9IQ0FmSFFBL0VXMFBsVFJnWXozUlgzaXNMN2lnWU8rOEtnZHZpTGQvY2F3Z0hkendPRitQMFY5NHJDKzRvRzQvMDBGYy80aTBjR0R2dVpvSGI1VTNmTnVoS2h3cVRRcHNJVDZQRVcwUGxUUmdZVC9LNjVGY2ZEcjlJZm1sUitCMTl0ZVd4c2JwMjNIcGhVZkFkRXcyZkdIZzc3d3FCMitJdDM3YnBjOXc0U2pNS2x6NmJDRTk3M0NQalpGY2ZEcjlJZm1sUUhFKzUrQjE5dGVXeHNicDIzSGhQY21GUjhCeFBlUk1ObnhoNFQxR244MlJYUCtJdEhCZzc3bWZ0aHcvYytkdmxUZHhLMnk0YlFFL0MyK3dVVk52Y0NoSXNlbThNRmkwMlF1QjhUNkxPM3RaK2NIdmxUUnYxVUJ4UHdkbmhsWUZrYUR2dkMrMkhEOXo1MitJdDM5eHZnRXFITGg4OFQrS0g3QlJVMjl3S0VpeDZid3dXTFRaQzRIeFAwczdlMW41d2UrSXRIL0l3SEUvaDFkMlZoV1JvVDlNWDVieFhTNEVRR0R2dVpvSGI1VTNmeTRCTHgwRW5NRS9EeEZ0RDVVMFlHRStpTzNoVVQ4TXpnQmhQb1NnWU8rOEtnZHZpTGR3SGR6d1BkRnMvNGkwY0dEcnVHekdSMitWTjNFdkhROTR2UkU3ajNwSVlWN3ZjSnNmZFhIL2h2UmZ4dkIvc2xPWFJMSGhONCt6NVBGZEQ1VTBZR0RrWDdZc2ozT25iNGkzZjNHK0FCM2MvM09NOEQyL2orRmRMZ1JBYU4vVk1Wei9pTFJ3YjNlL2NIRmRIZ1JRYU0rMXdWL0pzSCt3Yy9mV1IrZ295TEhsQUhpNWVJbmNQM0M1LzNPeDc0bmdjT2dYL0wrT0hKdlBjTEFhN1E5NVhRQTY3M1dSWDdLL0JSNit6d3hQY3NIdmlPKzRWTjkwRDhVQWY3QVVsblRVdEtzdmNBSHFWR0IvY3QrS01WelFiQjNBV05Cc0U2QmMwR04vY0xCVUFHRHZ2QysyTEkrUngzOFBjTFpiRVMzYzhUNk4zNGl4WDhtd2Y3Qno5OVpINkNqSXNlVUFlTGw0aWR3L2NMbi9jN0h2aWVCL3N4M0JYTUJoUFl3ZHdGalFZVDZNRTZCY3dHTi9jTEJVTUdEczc3WHZjZjMzYjM1TW4zeFhjQjhkRDNDY2NEOFJiUTkrVDNDd2IzWGZ2a0Jkd0crM1Q0QlFXTkIvZG05K0FGUEFiN1VmdkZCZnNMOThWR0J2ZEQvWklWazNXT2VIb2FjWVJ5ZjIwZXd3YWFySk9tcVJxYmladUhuQjRPYS90ZTl4L2ZkdmVReHZkVWQvZHdkd0hkeitUSEE5MFd6L2VRM0FiM1BQdVFCZHdHKzFUM3JnV05CL2REOTI4Rk9RYjdLL3RVQlR2NEhFY0c5eWI5a2hXVGRZNTRlaHB4aEhKL2JSN0RCcHFzazZhcEdwdUptNGVjSGc1dG9IYjNnc2IzWW5jQjNjOEQzUmJQOTRMYkJ2Y3grNElGM3diN1MvZWdCWTBIOTB2M2ZRVTRCdnN6KzJJRlBQZGlSd1lPZTR2SitSVjMwUGNMQWZIUUEvRVcrQi9KKzlyNUZVWUdqYndWeVFiaDl3c0ZQQVlPKzdPSHlma1pkOUQzQ3dIWXp3UFk5d3NWK3dMVmZyV1lsNDJMSHNnSGk0T0tnbkZ0bGMwZStNMUhCNDY4RmNrRzRmY0xCVHdHRG52N1h2Y2Z5c241RlhjQjhkRDNCTWNEOFJiNEg4bjcydmtWUmdiM1B2MlNGWk4xam5oNkduR0Vjbjl0SHNNR21xeVRwcWthbTRtYmg1d2VEdnV6KzE3M0g4YkorUmwzRXRqUGRjY1Q4TmozQ3hYN0F0Vit0WmlYallzZXlBZUxnNHFDY1cyVnpSNzR6VWNIRStpdS9aSVZrM1dPZUhvYWNZUnlmMjBld3dhYXJKT21xUnFiaVp1SG5CNE9lNHZKK0lyM0h3SHgwUExIQS9FVytCL0orOXI1RlVZRzl6VVdrM1dPZUhvYWNZUnlmMjBld3dhYXJKT21xUnFiaVp1SG5CNE8rNVdIeWZpTzl4OEIyTS9WeHdQWTl3c1Yrd0xWZnJXWWw0MkxIc2dIaTRPS2duRnRsYzBlK00xSEIvY1hGcE4xam5oNkduR0Vjbjl0SHNNR21xeVRwcWthbTRtYmg1d2VEbnVMeWZlaTIvZTNkd0h4MFBjVDJBUHhGdmdmeWZ2YStSVkdCdmRZL0FjVjJOcytCZzc3ZjRmSjk2YmI5N2QzQWRqUHo5Z0QyUGNMRmZzQzFYNjFtSmVOaXg3SUI0dURpb0p4YlpYTkh2ak5Sd2YzSFB3SEZkamJQZ1lPbFl2SitGZDM5MlozQWZjVTBBUE05OElWeXE4RisrYjRIOG43MnZmUEIvY0V5d1hUQi9zRVNnWDNrMGI3dXdkTVp3VU8rM2FIeWZoYmQvZG1kd0gzQ3M4RHIvZkdGZDI1QmZ0OUIvc0MxWDYxbUplTml4N0lCNHVEaW9KeGJaWE5IdmVWQitLOUJkTUhORmtGOTRSSCs2d0hPVndGRHZkdmkvRTZkdmp0OFl0MzBQY0xFdkhRK0MvUUUxN3hGdEFHRTI3NGpnZXdoY1dMSG8wR2k2MVBvMmdlOS92OGpnWE8rVk5HQmhPZS9JNEhacEZSaXg2SkJvdHB4M091SHZ2NytJNEZTQWIzaHJ3VnlRYmg5d3NGUEFZT3hxQjIrRmZMZjNmdzl3c1MzYy8zd004VDNOMFd6L2VGQnFPTm9wR2dIdDZpMWNiaEcreVhSVHdmKzhMUDk5UUg5eEJmMHZzUSt3dExPbDE1SG9rR0U3eUxqWjJoSDlaSUIvZFkzQlhKQnVIM0N3VThCZzczYi90ZTl4L0s4VHAyK08zeGkzY1M4ZEQzUzhmM1BOQVRyZkVXMEFZVHRmaU9CN0NGeFlzZWpRYUxyVStqYUI3MysveU9CYzc1VTBZR0U4LzhqZ2Rta1ZHTEhva0dpMm5IYzY0ZSsvdjRqZ1ZJQnZlRi9aSVZrM1dPZUhvYWNZUnlmMjBld3dhYXJKT21xUnFiaVp1SG5CNE94dnRlOXgvZmR2aFh5MzkzRXQzUDl4UEg5d1hQRStyZEZzLzNoUWFqamFLUm9CN2VvdFhHNFJ2c2wwVThIL3ZDei9mVUIvY1FYOUw3RVBzTFN6cGRlUjZKQmhQZWk0MmRvUi9XU0FmM1RQektGWk4xam5oNkduR0Vjbjl0SHNNR21xeVRwcWthbTRtYmg1d2VEdmR2aS9FNmR2anQ4WXQzMFBjTEV2SFErQy9RRTE3eEZ0QUdFMjc0amdld2hjV0xIbzBHaTYxUG8yZ2U5L3Y4amdYTytWTkdCaE9lL0k0SFpwRlJpeDZKQm90cHgzT3VIdnY3K0k0RlNBYjNnYndWMWdiZjl3c0ZTUVpWT3dXSkJsWGJCVWtHRHNhZ2R2aFh5MzkzOExKazl3c1MzYy8zd004VHp0MFd6L2VGQnFPTm9wR2dIdDZpMWNiaEcreVhSVHdmKzhMUDk5UUg5eEJmMHZzUSt3dExPbDE1SG9rR0U2NkxqWjJoSDlaSUIvZFMzQlhXQnQvM0N3VkpCaFBXVlRzRmlRWVR6bFhiQlVrR0RzYWdkdmhYeTM5MzNQY2ZFcW5IZzgvM3dNOFQxdDBXei9lRkJxT05vcEdnSHQ2aTFjYmhHK3lYUlR3Zis4TFA5OVFIOXhCZjB2c1Erd3RMT2wxNUhva0dFN2FMaloyaEg5WklCeFBhVFBkY0ZaTjFqbmg2R25HRWNuOXRIc01HbXF5VHBxa2FtNG1iaDV3ZUR2ZHYrMkhNOXpWMitPM3hpM2NTOGRENEw5QVQzUEVXMEFZVDdQaU9CN0NGeFlzZWpRYUxyVStqYUI3MytQeUpCZnNCaUVGblRodEtCKzczQWI3M09oLzVSMGI4amdkbWtWR0xIb2tHaTJuSGM2NGUrL3Y0amdWSUJnN0crMmJJOXo1MitGZkxmM2NTM2MvM3dNOFQ3TjBXei9lRkJxT05vcEdnSHQ2aTFjYmhHK3lYUlR3Zis5WUgrd2RBZldSK2dveUxIbEFIaTVhSW5jVDNDcC8zT3g3MzZ3ZjNFRi9TK3hEN0MwczZYWGtlaVFZVDNJdU5tNThmMmtnSER2ZTJmOHY0Njh2UndnSEIwL2MzOTRyM045TUR3ZmY0RmZ0aTl6UDdOdmRiOTF2M00vYzI5MkwzWHZzejl6SDdXL3RiK3pQN01mdGVIdE1XOXp6M0UvY1Q5elAzTXZjVSt4UDdQUHRBK3hUN0dQc3krelA3RS9jWTkwQWU5emY0UVJYM2lzTDdpZ1lPNDMvSStDako4Y0lCdU5IVTk0clUwUU80OTVJVit5ejNDL3NHOXlmM0ovY0w5d2IzTFBjcCt3djNCUHNuK3lmN0Mvc0UreWtlMFJiM0J1UGc5d0QzQU9NMit3YjdDVE16K3dEN0FEUGo5d2tlMVBmL0ZmZUt3dnVLQmc3M3RuL0wrT3ZMcmJvQndkUDNQc0wzRGNMM1A5TUR3ZmY0RmZ0aTl6UDdOdmRiOTF2M00vYzI5MkwzWHZzejl6SDdXL3RiK3pQN01mdGVIdE1XOXp6M0UvY1Q5elAzTXZjVSt4UDdQUHRBK3hUN0dQc3krelA3RS9jWTkwQWU5N0g0SFJYSHc2L1NINXBVZmdkZmJYbHNiRzZkdHg2WVZId0hSTU5ueGg0TzQzL0krQ2pKemJwYzl3NFN1Tkhjd3ZjTnd0dlJFOSs0OTVJVit5ejNDL3NHOXlmM0ovY0w5d2IzTFBjcCt3djNCUHNuK3lmN0Mvc0UreWtlMFJiM0J1UGc5d0QzQU9NMit3YjdDVE16K3dEN0FEUGo5d2tlOTFqMzJ4WEh3Ni9TSDVwVUJ4UHZmZ2RmYlhsc2JHNmR0eDRUMzVoVWZBZEV3MmZHSGc3M3RuL0wrT3ZMc1BjTEFjSFQrTkRUQThIMytCWDdZdmN6K3piM1cvZGI5elAzTnZkaTkxNzdNL2N4KzF2N1cvc3orekg3WGg3VEZ2Yzg5eFAzRS9jejl6TDNGUHNUK3p6N1FQc1UreGo3TXZzeit4UDNHUGRBSHZmSCtDQVZ4d2JpOXdzRlBnYjdZUHNMRmN3R3ovY0xCVWNHRHVOL3lQZ295ZEQzQ3dHNDBmZ2MwUU80OTVJVit5ejNDL3NHOXlmM0ovY0w5d2IzTFBjcCt3djNCUHNuK3lmN0Mvc0UreWtlMFJiM0J1UGc5d0QzQU9NMit3YjdDVE16K3dEN0FEUGo5d2tlOTIzMzNoWEhCdUwzQ3dVK0J2dGcrd3NWekFiUDl3c0ZSd1lPK0RlQnlsYko5NW5KOTVUSlZzb1N3dFAzK05FVHJzTDM5Qlg3WVBjcSt6TDNaQjRUZHJTN2xhb2IrQURKKyt6M21mZWV5ZnVlOTVUMzJzbjc3d1pyWFpWaUd4T3UrMlQ3S3ZzeisxNGYweGIzUFBjSDl4YjNQN0dyZzRzZS9Ob0hpMnVFWmZzLyt3ZjNGdmM5SGc3NGMzL0k5MXZEOXluSlVzUVN1ZEg0R3RMMzB0RVQ3cm4zamhYN00vY05KUGNqOGQrLzRMVWVqUVkzdE41VzlCdjNCdFRSaXg5cnZ3V0xUMDR2SmpQTzl4aUZIdmdXQm91Tm9wZjNFVVAyK3g4cVBGbzFaQitKQnQ1Z09MOG1HL3NqK3cwaSt6UWYrS3JCRlJQZThKdlV3TjhiMXNwYUlvOGYvWjlWRlJQdTl3N2ozUGJ6NWo3N0R2c1JNanNoSGhQZUlEUGI5dzBmRHVtZ2R2ZTh5ZmV2eWJ6M0N3SHgwUGZHMGdQeEZ0RDN2UGRGQnZjeis3d0YyZ2I3TGZldkJZQ2VoSlNMR28wSDJxSEIxT29hNEdQT1NhZ2VsMjlya2tNYisyUUcwUHZ0RmZldjl5SUh3YVNGZ0tBZnRIV2lZRkVhTTFWVU5oNUgrQjRWeVFiaDl3c0ZQQVlPKzBhZ2R2aE16NFozb1hmdTl3c1MzYzhUek4wV3ovZG9CcXVQclpXckh0V2h3TVBTRzVpWGlZc2ZFNXpPQnhQTWkzNk9mVHhUVVQ5ekhva0dFNnlMaloyaEgrUklCKzdjRmNrRzRmY0xCVHdHRHVuN1h2Y2YzM2Izdk1uM3I4a0I4ZEQzRmNmM0NkSUQ4UmJROTd6M1JRYjNNL3U4QmRvRyt5MzNyd1dBbm9TVWl4cU5COXFod2RUcUd1Qmp6a21vSHBkdmE1SkRHL3RrQnRENzdSWDNyL2NpQjhHa2hZQ2dIN1Ixb21CUkdqTlZWRFllV3Z3NUZaTjFqbmg2R25HRWNuOXRIc01HbXF5VHBxa2FtNG1iaDV3ZUR2dEcrMTczSDk5MitFelBobmVoZHhMZHoxVEhFK1RkRnMvM2FBYXJqNjJWcXg3Vm9jREQwaHVZbDRtTEh4UE16Z2NUNUl0K2puMDhVMUUvY3g2SkJoUFVpNDJkb1Iva1NBY1Q0bzM4eWhXVGRZNTRlaHB4aEhKL2JSN0RCcHFzazZhcEdwdUptNGVjSGc3cG9IYjN2TW4zcjhtODl3c0I4ZEQzeHRJRDhSYlE5N3ozUlFiM00vdThCZG9HK3kzM3J3V0Fub1NVaXhxTkI5cWh3ZFRxR3VCanprbW9IcGR2YTVKREcvdGtCdEQ3N1JYM3IvY2lCOEdraFlDZ0g3UjFvbUJSR2pOVlZEWWVRZmdlRmRZRzMvY0xCVWtHVlRzRmlRWlYyd1ZKQmc3N1JxQjIrRXpQaG5laGQrNnlaUGNMRXQzUEU4YmRGcy8zYUFhcmo2MlZxeDdWb2NERDBodVlsNG1MSHhPV3pnY1R4b3Qram4wOFUxRS9jeDZKQmhPbWk0MmRvUi9rU0FmcTNCWFdCdC8zQ3dWSkJoUEtWVHNGaVFZVHhsWGJCVWtHRG85L3pmam56YkQzQ3dITDB2ZXMwZ085MlJXTDJqSDNKUGNZM09EMEh2ZDcrL05iOXpzYXljWEc1ZWZKVDRzZXJjVUZpMG5QK3c3N0ZqSXpKaDc3YnZmenVQdEZHajlNWFQ3N0EwTFlpeDczS1BrQkZja0c0ZmNMQlR3R0RqQi95UGdweU5EM0N3SEYwZmRkMFFPMHlCV0x5MEwzRHZEU3h0MGU5enI3bzIzM0F4ckR2S0crM3JaZGl4NnF2d1dMV3NJaE1EcGFNUjc3T1BlanB2c0NHbFpjY0ZVdFU4aUxIdmNJK0c0VnlRYmg5d3NGUEFZT2ozL04rT2ZOc1BjTEFjdlM5NnpTQTczWkZZdmFNZmNrOXhqYzRQUWU5M3Y3ODF2M094ckp4Y2JsNThsUGl4NnR4UVdMU2MvN0R2c1dNak1tSHZ0dTkvTzQrMFVhUDB4ZFB2c0RRdGlMSHNmNUFSWE5Cc0hjQlkwR3dUb0Z6UVkzOXdzRlFBWU9NSC9JK0NuSTBQY0xaYkVTeGRIM1hkRVQ3TFRJRll2TFF2Y084TkxHM1I3M092dWpiZmNER3NPOG9iN2V0bDJMSHFxL0JZdGF3aUV3T2xveEh2czQ5Nk9tK3dJYVZseHdWUzFUeUlzZXFQaHVGYzBHRTl6QjNBV05CaFBzd1RvRnpRWTM5d3NGUUFZT2ovdGh1cy8zSkVyTStPZk5Fc3ZTOXp2QXg5SVR2cjNaRll2UlBQY1VnUjRUM25rN0JZdVNqSk91b1g5MWNIS0VjWFI0a1lzZVd3ZUxuNGFwdkxxZ3hiTnRwR09SSGhPK2s3Y0Y5d3lUMU56dkd2ZDcrL05iOXpzYXljWEc1ZWZKVDRzZXJjVUZpMG5QK3c3N0ZqSXpKaDc3YnZmenVQdEZHajlNWFQ3N0EwTFlpeDRPTVB0aHVzLzNIMC9IK0NuSUVzWFI5eExBb2RFVHVyVElGUk8raThGTjlJRWVFOTU1T3dXTGtveVRycUYvZFhCeWhIRjBlSkdMSGxzSGk1K0dxYnk2b01XemJhUmprUjRUdnBPM0JSTzY1cEhLeE5nYTl6cjdvMjMzQXhyRHZLRyszclpkaXg2cXZ3V0xXc0loTURwYU1SNzdPUGVqcHZzQ0dsWmNjRlV0VThpTEhnNlBmODM0NTgydzl3c0J5OUwzck5JRHZka1ZpOW94OXlUM0dOemc5QjczZS92elcvYzdHc25GeHVYbnlVK0xIcTNGQll0Snovc08reFl5TXlZZSsyNzM4N2o3UlJvL1RGMCsrd05DMklzZTl5UDVBUlhXQnQvM0N3VkpCbFU3QllrR1Zkc0ZTUVlPTUgvSStDbkkwTEprOXdzU3hkSDNYZEVUM0xUSUZZdkxRdmNPOE5MRzNSNzNPdnVqYmZjREdzTzhvYjdldGwyTEhxcS9CWXRhd2lFd09sb3hIdnM0OTZPbSt3SWFWbHh3VlMxVHlJc2U5d1Q0YmhYV0J0LzNDd1ZKQmhQc1ZUc0ZpUVlUM0ZYYkJVa0dEc0g3WWJyUHJ0ZDIrUlhKRXZlWTBJVEFFN2ozbUJhV0JoUDBkakFGaTVLTWs2NmhmM1Z3Y29SeGRIaVJpeDViQjR1ZmhxbTh1cURGczIya1k1RWVFN2lWd2dXWitSWDNrTW44MGszM2tRWU8rMXI3WWJyUHJyN0krQlBFQWZIUHhjQUQ4ZmRMRlN5d1hMVjBIbkw3QVFXTGtveVRycUYvZFhCeWhIRjBlSkdMSGxzSGk1K0dxYnk2b01XemJhUmprUjZWeEFXSG9KNkpteHVkbG8yTEg4Z0hpNEtKZldWQW12Y0tIdmVPOXhMRSt4TDNKVWo3SlVoU3pRY093YUIyK1JYSnZQY0xBZmVZMEFQM21CYlErUlgza01uODBrMzNrUWFIOXdNVjFnYmY5d3NGU1FaVk93V0pCbFhiQlVrR0R2dGJoOGo0RThUUDJENzNIaEx3ejluSEU5anc5MHNWK3p6M0NYakZuWmFOaXg3SUI0dUNpWDFsUUpyM0NoNzNqdmNTeFBzU0J4UG85eVZJK3lWSVVzMEhFOXozRy9lYkZaTjFqbmg2R25LRWNuOXRIc01HbXF5VHBxZ2FtNG1iaDV3ZUR0aWdkdmZZeFBlWXlRSDNvOUFEOXdIMzJCWDNOdnZZMFBmWTl6ckUrenIzbVBlUXlmelNUZmVSKzVqN05nWU8rMEtIeVBkeHdQY0J4QUgzQmM4RHVQZXFGYzhzQnZzODl3bDR4WjJXallzZXlBZUxnb2w5WlVDYjl3Y2U1ZmNRd1BzUTl3SDNFc1Q3RXZjbFNQc2xTRkxOK3dGSEJ3NzNVbi9MK1I5MzBMdWl2QkxvMGJiQzkxL0J0OUFUNmVqM2lSWDdNUGNDSnZjMDl6UDNBZkQzTUI3NFhrYjhXd2Y3RHp4Qyt3MzdEVDNVOXcwZStGMUZCeFAvOXdXL0ZjSUdwWkcxckI2NG1VVE9HeFB2eUtxejJCOVZCbkdFWUdvZVhuM1RTQnNULzA1c1l6NGZEc0YveTJ4MitJdDM4THVpdkJMV3o0UEM5MS9CZ3M4VHJJRFc5MHNWK3hlOVMvY0s5d1BOMmJ5ZkhvMEdFMnlBaTRsNWRSOUF6ZmlMUi91RkJ4T3NnUHNCUkNiN0J5cC8wZG9lOThKSEJ4T3JBTWZmRmNJR3BaRzFyQjY0bVVUT0d4TzdBTWlxczlnZlZRWnhoR0JxSGw1OTAwZ2JFNnNBVG14alBoOE85MUoveS9rZmQvSENBZWpSMS9lSzJOQUQ2UGVKRmZzdzl3SW05elQzTS9jQjhQY3dIdmhlUnZ4YkIvc1BQRUw3RGZzTlBkVDNEUjc0WFVVSDl5YmRGZmVLd3Z1S0JnN0JmOHRzZHZpTGQvY2F3aExXejZUM2lxUFBFN3JXOTBzVit4ZTlTL2NLOXdQTjJieWZIbzBHRTNxTGlYbDFIMEROK0l0SCs0VUhFN3I3QVVRbSt3Y3FmOUhhSHZmQ1J3Y1R2dWozQmhYM2lzTDdpZ1lPOTFKL3kva2ZkODI2QWVqUjM4TDNEY0xmMEFQbzk0a1YrekQzQWliM05QY3o5d0h3OXpBZStGNUcvRnNIK3c4OFF2c04rdzA5MVBjTkh2aGRSUWYzb2JrVng4T3YwaCthVkg0SFgyMTViR3h1bmJjZW1GUjhCMFREWjhZZURzRi95MngyK0l0MzdicGM5dzRTMXMrcnd2Y053cXZQRTYrQTF2ZExGZnNYdlV2M0N2Y0R6ZG04bng2TkJoTnZnSXVKZVhVZlFNMzRpMGY3aFFjVHI0RDdBVVFtK3djcWY5SGFIdmZDUndmM2E5a1Z4OE92MGgrYVZBY1R0NEIrQjE5dGVXeHNicDIzSGhPdmdKaFVmQWRFdzJmR0hnNzNVbi9MK1I5M3hiSE9zQUhvMGZjUXRzeTI5eERRQStqM2lSWDdNUGNDSnZjMDl6UDNBZkQzTUI3NFhrYjhXd2Y3RHp4Qyt3MzdEVDNVOXcwZStGMUZCL2Voc1JXMHJxaTF0V2lvWW1KcGJtRmhyVzYwSDdFRWVINlpucCtZbVo2Zm1IMTNlSDU5ZHg4T3dYL0xiSGI0aTNmbHNjNndFdGJQMDdiTXR0UFBFNytBMXZkTEZmc1h2VXYzQ3ZjRHpkbThueDZOQmhOL2dJdUplWFVmUU0zNGkwZjdoUWNUdjREN0FVUW0rd2NxZjlIYUh2ZkNSd2YzYTlFVnRLNm90YlZvcUdKaWFXNWhZYTF1dEIreEJIaCttWjZmbUptZW41aDlkM2grZlhjZkR2ZFNmOHY1SDNmUTl3c0I2Tkg0STlBRDZQZUpGZnN3OXdJbTl6VDNNL2NCOFBjd0h2aGVSdnhiQi9zUFBFTDdEZnNOUGRUM0RSNzRYVVVIOTdhOEZjY0c0dmNMQlQ0RysyRDdDeFhNQnMvM0N3VkhCZzdCZjh0c2R2aUxkL0QzQ3hMV3ovZTd6eE84MXZkTEZmc1h2VXYzQ3ZjRHpkbThueDZOQmhOOGk0bDVkUjlBemZpTFIvdUZCeE84K3dGRUp2c0hLbi9SMmg3M3drY0g5NEhjRmNjRzR2Y0xCVDRHKzJEN0N4WE1Ccy8zQ3dWSEJnNzNVdnRody9jZHkva2Zkd0hvMGZjNnl2YyswQVAzM2ZzRkZUYjNBb1NMSHByREJZdE5rTGk1djY3Q3JoL0x0TS9GOXhVYStGNUcvRnNIK3c4OFF2c04rdzA5MVBjTkh2aGRSZnhlQi9zdzl3SW05elNSa1l1TWtSNXljM0JvWUJvT3dmdGh3L2NkeTJ4MitJdDNFdGJQOTNqS2o4OFQydGIzU3hYN0Y3MUw5d3IzQTgzWnZKOGVqUWFMaVhsMUgwQUhFOXh6ZUY1aFZ4bzI5d0dFaXg2Ynd3V0xUWkM0SHhPNnM3NjFvSndlK0l0SCs0VUhFOXI3QVVRbSt3Y3FmOUhhSHZmQ1J3Y08rQjJMM2ZpYThyejNDeEt5K2VjVDhQaGorT3dWaTVaUGwxNGU5eHI4Z3dYZUJ2ZFArVk1GUXdiN0lmeTJCWUpuaEdTTEdva0dpb2F5cjRFZit5ajR0Z1ZKQnZzby9MWUZaNEdHWklvYmlRYUxoTEtDcng3N0hQaTJCVU1HOTByOVV3WGVCdmNhK0lNRmw3aVd4NHNhK3dmM0xCWE5Cc0hjQlkwR3dUb0Z6UVkzOXdzRlFBWU85NStMMWZmbTVJMTM4UGNMWmJFU25QbVRFN1QzVHhiVkJoUFU5dy8zK2dXVHBKS29peHFOQm91U2JwUnlIdmNQKy9vRjFRWVR0UGMrK0lzRlF3YjdEdndMQllOeWhHNkxHb2tHaTRTcGc2TWVFOVQ3RVBnSkJVZ0creEQ4Q1FXRGM0UnRpeHFKQm91RXFZT2pIaE8wK3c3NEN3VkRCdmVhM0JYTkJoT3N3ZHdGalFZVHRNRTZCYzBHTi9jTEJVQUdEck9nZHZsVGQ5RDNDd0gza05FRDk1QVcwZmZDQnZlQStDVUZQUWI3S2Z1VEJYVm1kbHlMR29rR2kzVzdkcThlK3luM2t3VThCdmVCL0NVRk5maFdGYzBHd2R3RmpRYkJPZ1hOQmpmM0N3VkFCZzVvKzJiSStTQjM4UGNMWmJFU2t2aDFFK2lTKzBnVmk2OXR2ODYvdE11bEh2ZU0rUFFGUVFiN0pmd0RCWUZ5aEcrTEdva0dpNE9uZ2FRZSt5ajRBd1ZBQnZkbS9JZHNSQVZkZDJ4blh4dHJiNktMSCt6NVdoWE5CaFBZd2R3RmpRWVQ2TUU2QmMwR04vY0xCVUFHRHJPZ2R2bFRkL0hoRXZkRXlKclJrTWtUNlBlUUZ0SDN3Z2IzZ1BnbEJUMEcreW43a3dWMVpuWmNpeHFKQm90MXUzYXZIdnNwOTVNRlBBYjNnZndsQlJQMDF2aDNGY25oVFFiN0t6VVZ5T0ZPQmc3SWk4bjQxOG04OXdzQnR2aUpBN1lXK0luSi9BQUdhWG1KaXgrTkI0dWpwYVd4SHZmLytLUUZ2UHh6VGZmcUI2MmNqWXNmaVFlTGRIQnhaaDc3Ly95a0JmZDgrVk1WeVFiaDl3c0ZQQVlPY292SCtCUEgzUGNMQWJYNE93TzFGdmc3eC91dEJtcDVpWXNmalFlTG9hR2VveDczcmZmMEJiajhKVS8zbHdlc25JMkxINGtIaTNaMWVITWUrNjM3OVFYM1JmaXdGY2tHNGZjTEJUd0dEc2lMeWZqWHlkN2dBZmVvekFPMkZ2aUp5ZndBQm1sNWlZc2ZqUWVMbzZXbHNSNzMvL2lrQmJ6OGMwMzM2Z2V0bkkyTEg0a0hpM1J3Y1dZZSsvLzhwQVgzZmZsMUZjemdTZ1lPY292SCtCUEg5d2ZnQWZkd3pBTzFGdmc3eC91dEJtcDVpWXNmalFlTG9hR2VveDczcmZmMEJiajhKVS8zbHdlc25JMkxINGtIaTNaMWVITWUrNjM3OVFYM1J2alNGY3pnU2dZT3lJdkorTmZKdlBjTEFiYjRpUU8yRnZpSnlmd0FCbWw1aVlzZmpRZUxvNldsc1I3My8vaWtCYno4YzAzMzZnZXRuSTJMSDRrSGkzUndjV1llKy8vOHBBWDNkL2xURmRZRzMvY0xCVWtHVlRzRmlRWlYyd1ZKQmc1eWk4ZjRFOGZjc21UM0N4SzErRHNUMkxVVytEdkgrNjBHYW5tSml4K05CNHVob1o2akh2ZXQ5L1FGdVB3bFQvZVhCNnljallzZmlRZUxkblY0Y3g3N3JmdjFCZmRBK0xBVjFnYmY5d3NGU1FZVDZGVTdCWWtHRTloVjJ3VkpCZzc3cTZCMitFekU5eXJJQWZUUEEvUVd6L2lkQnZjRTFabXhtcFNKaXg3SUI0dC9qWGhUK3dsMit6b2VjMHhTeWdjT3JDSEkrQzNGOTN6SWhIY1M5NVRPRStpdFl4VlBCNHVvaGEvRTl3bWY5enFhSHFUM3NBWDNGOFg3RWdhVjh3WDNCcGJVbWJNYnJybUVpeDhUMk1nSEUraUxZSkpqVXZzSmR2czVmQjZCSUFVc1VlUUdjL3V0QmZzR2dVQjlaUnRyYTVDTEh3NlArMTczSDc3TitPZk5BY3ZTOXdQSDl3SFNBNzNaRll2YU1mY2s5eGpjNFBRZTkzdjc4MXYzT3hySnhjYmw1OGxQaXg2dHhRV0xTYy83RHZzV01qTW1IdnR1OS9PNCswVWFQMHhkUHZzRFF0aUxIdmNrKzFZVmszV09lSG9hY1lSeWYyMGV3d2FhckpPbXFScWJpWnVIbkI0T01QdGU5eCsreVBncHlBSEYwZGJIemRFRHRNZ1ZpOHRDOXc3dzBzYmRIdmM2KzZOdDl3TWF3N3lodnQ2MlhZc2VxcjhGaTFyQ0lUQTZXakVlK3pqM282YjdBaHBXWEhCVkxWUElpeDczQnZ0QkZaTjFqbmg2R25HRWNuOXRIc01HbXF5VHBxa2FtNG1iaDV3ZURzSDdYdmNmMzNiNUZja1M5NWpRVWNjVDhQZVlGdEQ1RmZlUXlmelNUZmVSQnYxVUJCUG9rM1dPZUhvYWNZUnlmMjBld3dhYXJKT21xUnFiaVp1SG5CNE8rMXY3WHZjZnhzajRFOFFTOE0raHh4Tnc4UGRMRmZzODl3bDR4WjJXallzZXlBZUxnb2w5WlVDYTl3b2U5NDczRXNUN0V2Y2xTUHNsU0ZMTkJ4UDQydnlMRlpOMWpuaDZHbkdFY245dEhzTUdtcXlUcHFrYW00bWJoNXdlRG0zNWhQY0xBZmNYOTRZRDl4ZjVoQlhOQnNIY0JZMEd3VG9GelFZMzl3c0ZRQVlPYmZtRTl3c0I5eGYzaGdQM2F2bUVGZFlHMy9jTEJVa0dWVHNGaVFaVjJ3VkpCZzV1K1lHNkFmY2R3dmNOd2dQM2tQbUJGY2ZEcjlJZm1sUitCMTl0ZVd4c2JwMjNIcGhVZkFkRXcyZkdIZzV1K2FiZ0FmZHd6QVAzY1BtbUZjemdTZ1lPYnZsNXNjNndBZmRGdHN5MkEvZVErWGtWdEs2b3RiVm9xR0ppYVc1aFlhMXV0Qit4QkhoK21aNmZtSm1lbjVoOWQzaCtmWGNmRG0zN1ljTUI5MGZLQS9kSCt3VVZOdmNDaElzZW1zTUZpMDJRdUw3Znc0c2ZXWmtGaXlwVU94OE9iZm1FdTZLOEV1dkM5MS9CRS9EcitZY1Z3Z2Fsa2JXc0hyaVpSTTRiRTdESXFyUFlIMVVHY1lSZ2FoNWVmZE5JR3hQd1RteGpQaDhPYmZtRTl3c0I5d1QzclFQM2l2bUVGY2NHNHZjTEJUNEcrMkQ3Q3hYTUJzLzNDd1ZIQmc3M0pJdko5NmZGOTRySkFlblIrQlhUQStrVzBmaVpCdEM5d3RRZTkwVUdyNUtOaXgrSkI0dCtmR3hmSHZzYysxZ0ZXdHdINHNGTlFFRlZTendmK3lGTjl5VUc5d1BsNWZjQzhUN28rd1lmZG8wR2k1V1htNkllOXpIM2N3VzcrOG9ISURvNklSOE85MEwzazhVQjgvaUlBL1Aza3hYNGlNWDhpQVlPK0FyM2s4VUI4L2xRQS9QM2t4WDVVTVg5VUFZTys5UDRzUGRBQWNQM0F3UEQrTEFWMHdheTkwQUZWUVlPKzluNHNmZEFBY1QzQXdQRStMRVZ3Z2JEOTBBRlF3WU8rN3d4OTBBQnZ2Y0NBNzR4RmNFR3cvZEFCVVFHRHZ0YitMRDNRQUhEOTNzRDkwVDRzQlhUQnJMM1FBVlVCdnRFKzBBVjB3YXk5MEFGVlFZTysySDRzZmRBQWNUM2V3UDNSZml4RmNJR3cvZEFCVU1HK3pQN1FCWENCc1AzUUFWREJnNzdSakgzUUFHKzkzZ0Q5ejB4RmNFR3cvZEFCVVFHK3pIN1FCWEJCc1AzUUFWRUJnNzdIL2hSeGZkY2R3SDNOczREOXpaWkZjNzRnL2NOeGZzTjkxeEkrMXo3Q1ZIM0NRWU9KdmRIeGZka3hmZGNkd0gzU2M0RHkvZEhGZmNKKzNuTzkzbjNEY1g3RGZkazl3M0YrdzMzWEVqN1hQc0pVZmNKKzJUN0NRWU8reG4zS1BleUFjWDNzUVAzWGZjb0Zkckt5OXJhVE1zOFBFdExQRHpMUzlvZkR2ZEppOXNCMzlqM010ajNNdGdEK0w0VzJOcytCdnQvT3hYWTJ6NEcrMzg3RmRqYlBnWU8rS1YvdzNSMjkyYkQ5ei9EOXpyRGYzY1N3OGIzTjhiRXgvYzJ4c0xIOXpiR0U3dnc5MWo0U1JYWnlzblkxMHpLUFQxTlREOCt5VTNaSHhOWEFQc2EvRWtWMHdiNHEvbFRCVVFHL0NiN1poVmRhTEM1SHhNTEFMaXVzYm01cjJWZUhoTlhBRjFuWmwwZUU2RHcrS3I4QXhVL3lrM1kyY3JKMTloTXlqMCtURXcrSHZ2a0ZqL0pUZG5aeXNuWDJFektQVDFOVEQ0ZStDQ01GYml0c2JtNXIyVmVYV2RtWFYxcHNMa2UrK1FXdUsyeHVibXZaVjVkWjJaZFhXbXd1UjRPKzFQWStDOEJ2ZmVCQS9kcTJCWFVCdnM0OTJIM09QZGlCVUlHK3pqN1lnVU8rMUxZK0M4QncvZUNBOFBZRmRVRzl6ajNZZnM0OTJJRlFRYjNPUHRpQlE3OERLQjIrVk4zQWZzSytCNERVQmIzNC9sVEJWRUcrK1Q5VXdVT3czL045MmkrM0w3M1hNMS9keExyMGhQMHRQZWVGY2tHK3pldTl4bjdCL2MrRzhlNW1vc2ZlOHdGaTJSOVdmc1hKZUwzRVd3ZTk2UUdsYjRGKzdrR2lLV0xxWStrQ1BmSEJwVytCZnZHQnZjTHJlN2M5eFFidGJDQWl4OFQ3SnpNQlJQMGkyS1hWZnM1K3hqN0Evc3ZaQjVMV01JR2lIT0xaSTU1Q0ZRR0R2Z2k5Ky9MOTRTL0FmZEx4QVA0UmZlZEZjTUdwUGU5Qll5YWlabUxHbzBHOXdUN2lBVzVCdmNFOTRnRmpRYUxpWDJNZkI2ays3MEZ3Z1pwK0VvRlZ3YjdCL3VQQllKNGhuV0xHb2tHaTRhaGdwNGUrd2YzandWWEJ2dXgvRW9WeFBnVzl6Ry8vQVpYOXpBR0R0UDNrOFVCdmZpT0E3MzNreFg0anNYOGpnWU9hUGRFOSswQjJQZnRBL2VPOTBRVjY5Zlo2dXMvMXlzc1BUOHJMTms5Nmg4TzAvY1p4SmpFdXNTWXhCTEYrSDRUdU9iMzFSV25wN1dudGhzVHFOS3NSZWtieDhHdnJLc2ZhcmNGYm5CZ2NHQWJFL2hFYXRFdEcxQlZaMnBxSDZ6N2JoV25wN1dudGhzVHFOS3NSZWtieDhHdnJLc2ZhcmNGYjNCZ2IyQWJFK2hFYXRFdEcxQlZaMnBxSHc3VDl6ekY5d2pGQWRINFpnUDNFdDRWdFc3Zjl3WUY5N0RGKzRnRzRmY0lCZmN5eGZzS0JzemlZYWsxK3drRis3RlI5NGtHTmZzSUJmc3pVZmNLQmc3VCt6YkYrUHQzRXREZ0UrRFE5NWNWK0ZqN1hnWE9CL3dEOXpNRmpRZjRBL2N6QmM0SC9GajdYZ1dNL0RFVlVmaFh4UWNPMC9zMnhmajdkeExnK0ZnMzN4UGc0TVFWRTlENFdQZGVCYjBIL0ZqM1hnVklCL2dFK3pNRmlRZjhCUHN6QmZ0NEJGSDRWOFVIRHZXZ2R2aFN4UGNreUFIMHovZVF6d1A0UFJiUCtGTDNGY1Q3RlowRzl3VFZtYktabFltTEhzZ0hpMytOZUZMN0NYYjdPaDU1KzVDZEIvY0UxWm15bVpXSml4N0lCNHQvalhoUyt3bDIrem9lZVV4U3l2eFN6L2hTOTVBSERwMmdkdmhTeFBjSDRGUElFdlRQOTNuUEUrejRKaGJQK0l2N3ZaMEdFOXozQk5XWnNwbVZpWXNleUFlTGY0MTRVdnNKZHZzNkhubE1Vc3I4VXMvNFV2ZDVCeFBzaWZkQUZkTGdSQVlPcklmSlpuYjRUTVQzS3NpR2R4TDB6L2QwenhOMjlCYlArRXozRmNUN0ZhTUc5d1RWbWJLWmxZbUxIc2dIaTMrTmVGTDdDWGI3T2g1elRGTEtCL2U0KzlVVkU2NzdBdFYrdFppWGpZc2V5QWVMZzRxQ2NXMlZ6Ujc0elVjSER2Zm1vSGI0VXNUM0IrQlR5Qkwwei9lUXovZDV6eFBlK0QwV3ovaFM5M244VXMvNGkvdTluUWIzQk5XWnNwbVZpWXNleUFlTGY0MTRVdnNKZHZzNkhubjdrSjBIOXdUVm1iS1psWW1MSHNnSGkzK05lRkw3Q1hiN09oNTVURkxLL0ZMUCtGTDNrQWNUN3ZlNzkwQVYwdUJFQmc3MzlZZkpabmI0VXNUM0pNaUdkeEwwei9lUXovZDB6eE4zK0QwV3ovaFM5eFhFK3hXZEJ2Y0UxWm15bVpXSml4N0lCNHQvalhoUyt3bDIrem9lZWZ1UW5RZjNCTldac3BtVmlZc2V5QWVMZjQxNFV2c0pkdnM2SG5sTVVzcjhVcy80VXZlUUIvZTQrOXNWRTYvN0F0Vit0WmlYallzZXlBZUxnNHFDY1cyVnpSNzR6VWNIRHZ0YisxNzNId0gzSnNjRDl4dE1GWk4xam5oNkduR0Vjbjl0SHNNR21xeVRwcWthbTRtYmg1d2VEdmpvbTNiNEF2ZEh3ZmNFaTNjU3RiL1ZzNjMzWGNmM1g1cjNPL3NTOXhLdXROUytFKzl3OXp5R0ZmZWQreUgzR3RMM0dFVDNuZmNoQmZjc0IvY1Ewd1gzcWdmN0VOSUY5eXNIKzUzM0l2c1lSUHNhMHZ1ZCt5SUYreXNIK3hKRUJmdXFCL2NTUXdXeit3a1Y5eDhIK3diTEJmZU5CL2NHelFVVDM3RDNIQWYzZ3ZjUzl3MUw5d3JMOTRMN0VnWDdIQWYzQmtrRis0MEgrd1pMQmZzZkIvdUMreEw3Q3MzN0RVa0YrMkQzTkJYM2Evc0c5d0xGOWxIM2F2Y0dCZmNOQisvSEJmZDFCeFB2Y0NmRkJmY1BCL3RxOXdZZ1VQc0N4dnRyK3dZRit3OEhLRkVGKzNVSDdrOEY5MTB0RmZoVlRjSDMyUWUxbVhwbEgwdFRzUWVmaHBKMUh2dEUrMGNHRSsrdzkyNVdCaFB2Y1B0dSsyMEdEcDM3WXNqM09uYjRVc1QzQitCVHlCTDB6L2Q1enhQMjlCYlArRkwzZWZ4aUJ2c0hQMzFrZm9LTWl4NVFCNHVYaUozRDl3dWY5enNlK0o3N3ZaMEhFKzczQk5XWnNwbVZpWXNleUFlTGY0MTRVdnNKZHZzNkhubE1Vc29IRS9iM3ZQZEFGZEhnUlFZT3FuL00rT25NQWJUVDkrblRBL2V3ZnhYM1M4YjNOUGRnOTE1UTl6WDdTL3RMVC9zMSsxNzdZTWY3TlBkTEg4d0UreHBtOXhmM1BQYzdzUGNYOXhyM0diRDdGL3M3K3p4bSt4ZjdHUjhPcW92SitSVjNBZmVaendQeUZ2Z1J5ZnN2K1JWTEJ2c3orekszWHRiV0JhZW1rcHFMR28wR2k0cDRkeC84bVBzeUJ3NnFpOG40MzgwQjBOZjNzTk1EMUJiNFM4bjhBd2FNOTAvMzk2ejNnQnIzQWp2aSt4cjdLVXY3RTRzZXYyZ0ZpOEhyOHVQRlVUNGUrMUw3L0d2N2l4cDlqSHlPZXg0T3FuL045OExHOTNiSkFmaEgwZ08vM3hXTDRDdjNIdmNaN2UvM0RQY3MreGU5TXBBZTkyYjNoZ1c1L0M5Tjk1d0hzSitPaXgrSkI0dDVlbmgxSHZ0RSsyS2NZZ1c3QnVmZ1dDZ3hQazAzK3dCRDNvc2ZEcXFnZHZkWHlQZjg0b3QzRXFQZjk2RFFFOXlqOTFjVjkvVDdWOUQzVisvSUovaFRRQWI3N3Z4akJkK2JGWTBIRSt6M2Z2ZkZCWjZrbTZlTEdvMEdpNGhuYlIvN3VnY09xbi9OOTk3TDkxWEpBZmhJMHdQRjR4V0x6U2YzSVBjZDl2RDNGdmNUSnZIN0lVeGZjSXNlaVFhTGo1cU9wQjZmOTBnRjk2ekorK2dHWmZ2cHQzc0ZpOEN4MXUvWlJpc3JQVVlxSUZmZGl4NE9xbi9NOStQSjkxek1BYnZXOTkzU0EvZkNmeFgzRCszazl5YjNHVERwK3hSQ1JHdFphUitKQnZjZGw5YjNKZmNuRzhXM2Nvc2ZwY2dGaTFpb1BmdHRML3R4KzBUN1V2RDdJUGN0SG9yTUZTSkM5dzNweE5mSzZldktTU2NxVTBNc0h3NnFvSGI1RmNrU3l2aGRRTllUNFBjT0Z0TUdFOUQzMnZrakJidjhYVTMzM1FldW5ZMkxINGtIaTNkd2VHVWVEcXAveS9qcnl4SzYwbURSOTdQUlZOSVQ2THIzWGhYN0dmY0RPdmNUSGhQazl4enM2UGNDMUYrNFVhd2ZFOWlUazluZDd4cjNBamZVK3hmN0lrVTBNRWl3WUwxcUhoUG9lNEVvUnZzRkdoUGsrQ1NCRlRnOFVqZzJPY1hxNWRyRG9aZ2U4MW4zRUd3d0doUFkrOEwzN0JYS3Y3L2w0TWRjUURkUFRINS9IaWEzK3dXcTVob09xbi9NOTF6SjkrUE1BYmZSOTkzV0EvZGxmeFgzYnViM2NmZEU5MUltOXlEN0xmc1BLakw3SnZzWjVTMzNGTlRTcTcydUg0MEcreDErUWZzbCt5Z2JVVitraXg5eFRnV0x2MjdZSHN2MzJ4VXJUTTN2N01QVDZ2VFUrdzB0VWtCTUxCOE9oZmZTeVFIM0R2ZXdBL2NPOTlJVjk3REorN0FHRHZ0alN2bk5BZTNLQS9lbVNoVS85eHRtOXlmM0tocjNJTFAzRjlUM0RoNUxCa1Q3Q1dMN0dQc2tHdnN5dHZzdTBQc01IZzc3WTByNXpRSDNPc29EOXdsS0ZkRDNETGIzTHZjeUd2Y2tZdmNZUlBjSkhrc0cxUHNPcy9zWCt5QWEreXBtK3ljLyt4c2VEdnRzU3NQNVhjTUI5eExLQS9jU1NoWDNHOE5EK1YzVHcvc2JCZzc3YkVyRCtWM0RBZmNWeWdQM1ZQbU1GZnNiVTlQOVhVTlQ5eHNHRHZzelNNVDVYc01TMDgrY3loUFE5ekgzQlJYN092Y0JmYk9Va1l5TEhzTUhpNGVMaG5KSWxmY0hIdmNDQi9FN3BJc2VqUWVMMjZqdEgrMEg5d2pPbEtTUWo0dUxIc01IaTRXTGdtUDdBWDM3T1I0NUJ5STJnWXNlRS9CTkJ4UFFpK0NCSXg4Tyt6Tkl4UGxld3hMM0w4cWN6eFBnd1lFVlV3ZUxrWXFWc3ZjQm1mYzZIdW9IOCtDVml4NFQ4TWtIRStDTE5wWDBIOTBIOXpuN0FabGtnWVdMaXg1VEI0dVBpNUdqem9MN0NCNHBCeW5iYm9zZWlRZUxPM0lsSC9zQ0Ivc0hTSUZ6aFllTGl4NE85N044eC9jRncvZW53UGNKeGdIYjBmY1owZmVZendQYjkvTVYrMkQzTXZzMjkyUWV4d2Y3UC9zUjl4ejNQdmM4OXhQM0lQYzQ5d3EvVkUyTkgvc1dCdnNJTnpJa0krQXo5d2NmOTZIRFJQZlBCdXhMNS90SisxajdOUHMzKzJBZTk2V0tGZGZHeXRvZTl3NzdwL3NRQmo1UXlOWWZEcVgzSGZndkFkRDROUVA0TVBjZEZkVUcremozWWZjNDkySUZRUWI3T1B0aUJYejdZUlhVQnZzNDkySDNPUGRpQlVJRyt6ajdZZ1VPcHZjZCtDOEIxZmcyQS9lUzl4MFYxUWIzT1BkaCt6ajNZZ1ZCQnZjNCsySUYrK3o3WVJYVkJ2YzQ5Mkg3T1BkaUJVRUc5emo3WWdVTyt5NzNIZmd2QWREM2dRUDNmZmNkRmRRRyt6ajNZZmM0OTJJRlFnYjdPUHRpQlE3N0xmY2QrQzhCMWZlQ0E5WDNIUlhWQnZjNDkySDdPUGRpQlVFRzl6ajdZZ1VPOTJiM3o4VUI5dzc0aUFQM0R2ZlBGZmlJeGZ5SUJnNzRMdmZQeFFIM0R2bFFBL2NPOTg4VitWREYvVkFHRHZ0MTk4YmJBZmNJMkFQM0NQZkdGZGpiUGdZT2EzL00rTkhZRXRqVDhkaER6aFB3OTQvNUJoWFkyRDRHRStqN1F2eXVGU1BoUXZjRzdzbkVpeDVtdlFXTFZtRkhQbFcreXg3M0V2ZENwUGN2R3JoSVlRZjdHUHRIZlBzNUdnNzdWS0IyK1FiWUV2Y1kyUC8vdUlBQXpoUGc5eGo1QmhYWTJENEdFOUNQL1ZNVjBRYUkrSnNGU3dZT0xQZGw5N0lCMlBleEEvZHc5MlVWMnNyTDJ0cE15enc4UzBzOFBNdEwyaDhPdjMvSStGREpBY1hSOTkvUUE4WDNvaFg3SWRiN0lmYzA5elRXOXlEM0l2Y2lQL2NqK3pQN016LzdJL3NpSHRHTkZmY0N3UGNEOXdUM0JNSDdBL3NEK3dKVit3VDdCUHNFVnZjRTl3TWVEa0NMeC9neDBRSDNkTTBEenhiMy9jZjdIL2gzVFFiN1Nmc0VxMXYweWdXaW1adVlpeHFOQm91S2NYQWYrL3o3TUFjT2hJdkgrRVhKQWZnUjBRUEdGdmcyeC91UUJtWjNpSXNmalFmM1V2Y042T2IzQ1JyZlNkNzdGdnNUUGk2TEhySmNCWXZQMmVUVHlXZzlLdnNGTFB0bCt4OGVEblA3Rk1qM3JzVDNaOGNCK0JUUkE1MWxGWXZUTWZjYTl4YnYzL2NQOXlmN0diVXpqeDczWi9kNUJiWDhGRS8zZkFld240MkxINGtIaTNoOGVIWWUrejM3VXB4aEJid0c0K05nS3pNK1ZEZ2lUOWlMSHc2N3NNajMvT0FCK0FQUEE2bXdGZmZsK3kzUDl5MzNBTWo3QVBoUlFBYjczdnhoQmQyYkZmZHk5OElGbmFTY3JJc2FqUWFMaDJkdEgvdTZCdzZDK3d2STk4VEc5MGJIQWZncDBRT3RieFdMeXpEM0hmY2E5ZDMzRy9jWklOWDdEMHRlYzRzZWlRYUxqcHFPb2g2Zjl6Z0Y5NkhIKzl3R1pmdlJ0bndGaThLdTFPTGZWeWduTkZZMEpsYlZpeDRPdkgvSTk4ekc5MUhKQWMzVTk5M1JBODMzdGhYN1ErLzdFL2NzOXc3dDMvY2Q5eEV3NGZzVFFrUnVWMmdlaVFiM0dKZlc5eDczSnh2RnQzV0xINlhFQll0WHBqNzdiREg3YWZzOEh0UmhGY0RYeCtucnlrNHZMMU5JTENCRTl3VGlIZzV0K0hmSEFhdjRVQVBuK3dnVjFBYjN5L2o2QmJqOFVFLzN6Z2V1bkkyTEg0a0hpM3R6ZVdjZURybC95UGpGeVJMRjBXSFA5NjNQVnRFVDVNWDNVUlg3RWZjQlAvY1E5eG5yNC9MUlhyVlJxaDRUMkpTVTJOYnBHdkU0MGZzVCt4MUZPVFZMc0dPK2JCNFQ1SEY3TVVzbkd2Z2NnUlUrUFZZNk9EdkI1TjdhdnFPWUh2QmQ5d3B1TmhvVDJQdTg5OWdWeDhDNjRON0hZRVU5VFZCK2dCNHB0UHNBcU44YURyejdGTWozVXNiM3k4a0J1TkQzM2RVRDl3QmZGWEJTQll1L2NObjNhK2IzYWZjODkwTW45eFA3TFBzUEtqZjdIZnNSNVRYM0ZOUFNxTCt2SG8wRyt4aC9QL3NmK3lZYlVHQ2lpeC8zT2ZkMkZTdE15T2ZudzgzcTl3RFIrd00wVmo5UExSOE9xbi9JK0ZESkFidlI5OS9RQTd2M29oWDdJZGI3SWZjMDl6VFc5eUQzSXZjaVAvY2orelA3TXovN0kvc2lIdEdORmZjQ3dQY0Q5d1QzQk1IN0Evc0Qrd0pWK3dUN0JQc0VWdmNFOXdNZURxcUx4L2d4MFFIM3NzMEQ5eFlXOS8zSCt4LzRkMDBHKzBuN0JLdGI5TW9Gb3BtYm1Jc2FqUWFMaW5Gd0gvdjgrekFIRHFxTHgvaEZ5UUg0SzlFRDRCYjROc2Y3a0FabWQ0aUxINDBIOTFMM0Rlam05d2thMzBuZSt4YjdFejR1aXg2eVhBV0x6OW5rMDhsb1BTcjdCU3o3WmZzZkhnNnEreFRJOTY3RTkyZkhBZmc1MFFQQ1pSV0wwekgzR3ZjVzc5LzNEL2NuK3htMU00OGU5MmYzZVFXMS9CUlA5M3dIc0orTml4K0pCNHQ0ZkhoMkh2czkrMUtjWVFXOEJ1UGpZQ3N6UGxRNElrL1lpeDhPcXJESTkvemdBZmdFendPcXNCWDM1ZnN0ei9jdDl3REkrd0Q0VVVBRys5NzhZUVhkbXhYM2N2ZkNCWjJrbkt5TEdvMEdpNGRuYlIvN3VnY09xdnNMeVBmRXh2ZEd4d0g0Uk5FRHlHOFZpOHN3OXgzM0d2WGQ5eHYzR1NEVit3OUxYbk9MSG9rR2k0NmFqcUllbi9jNEJmZWh4L3ZjQm1YNzBiWjhCWXZDcnRUaTMxY29KelJXTkNaVzFZc2VEcXAveVBmTXh2ZFJ5UUc2MVBmZDBRTzY5N1lWKzBQdit4UDNMUGNPN2QvM0hmY1JNT0g3RTBKRWJsZG9Ib2tHOXhpWDF2Y2U5eWNieGJkMWl4K2x4QVdMVjZZKysyd3grMm43UEI3VVlSWEExOGZwNjhwT0x5OVRTQ3dnUlBjRTRoNE9xdmgzeHdISitGQUQ5dzc3Q0JYVUJ2ZkwrUG9GdVB4UVQvZk9CNjZjallzZmlRZUxlM041Wng0T3FuL0krTVhKRXIvUlljLzNyYzlXMFJQa3YvZFJGZnNSOXdFLzl4RDNHZXZqOHRGZXRWR3FIaFBZbEpUWTF1a2E4VGpSK3hQN0hVVTVOVXV3WTc1c0hoUGtjWHN4U3ljYStCeUJGVDQ5VmpvNE84SGszdHErbzVnZThGMzNDbTQyR2hQWSs3ejMyQlhId0xyZzNzZGdSVDFOVUg2QUhpbTArd0NvM3hvT3F2c1V5UGRTeHZmTHlRRzUwUGZkMVFQM0FWOFZjRklGaTc5dzJmZHI1dmRwOXp6M1F5ZjNFL3NzK3c4cU4vc2QreEhsTmZjVTA5S292NjhlalFiN0dIOC8reC83Smh0UVlLS0xIL2M1OTNZVkswekk1K2ZEemVyM0FOSDdBelJXUDA4dEh3NStKUGN1VHNqNGJmY25FdHpTM3NOZHcrVFNFM3JCNEJXTHlqbjNDbjRlRTdvdXd3Y1RldWdINzVMUnkrSWE5MC83eVdqM0ZoclB4YVhLNUw1V2l4NnR3UVVUZG90Y3Z5aVVIdUJUTlFjd2drSldMUnI3Uy9mSnF2c1ZHa3hUYVVraFNkNkxIZzZ1Y2ZjazkvMzNKZ0hHMGZjbXhBUEc5NzRWK3hmbkxmY1FleDQ0eE53SDl3R1R4OUdMR21uQUJZdFdSeWtoT3RYMjlkelY5ZTNBUjRzZXJjQUZpMURSK3dLU0h0OVNOUWY3RUhzdkx2c1lHZzdkaThmM1RiLzNkOG9COXhIUUE4Z1crR3ZIKytiM1RmZDZ2L3Q2OFFiT3Y4WG0wOEppaXg2d3Z3V0xTcjhvK3c4eU95TWVJVjVYdVB0TlN3Y08wSXYzWUZpKzE3NFM5NS9SRTNEdzk2d1Y5eG9HcTFZRmRQczZXUGM2QnhPdyt5M1JCeE53OXkzM09yNzdPcUlIcXNBRjl4dStJd2IzS2ZlS0JUd0crdy83WlFWMVpuWmRpeHFKQm90MXVuYXZIdnNROTJVRlBBYjNLdnVLQlNNR0RxNzdGTWo0RmNUM2dNZ0Ivd0Q5Z0FEL0FFS0FBQU90VFJWUEI0dW9oYS9FOXdtZjl6dWFIcUwzbHdYM0ZzVDdFZ2FWOWdYM0I1YlZtYklicjdpRWl4L0lCNHRoa21OUyt3eDIrenArSG9MN0FnVXNVdVFHZGZ1VUJmc0hnVUI5WkJ0c2E1Q0xIdzdpZjhuM0xielB2UGN4eUFIM0Q5SUR5UGRmRmRVRyt3cXM4U3IzUEJ2R3Q1cUxIM3pIQll0bWZsbjdFVDNQNEcwZTk0b0dsYndGKzZBR2lwZUtsNHVYaTVXTGxwWU1KZmVyQnBhOEJmdXJCdUduMTlMM0ZCdTBzWUdMSDV2R0JZdGhsMWY3UlNnbSt3bHVIa05heWdhS2dZdUJnaHArakg2TWZoNUxCZzc3TFBlV3YvZnp2d0d5dy9kVXd3UDNVL2VXRmZjSHNPNzNGZmNVWnU3N0Ivc0haaWo3RlBzVnNDajNCeCsvQkVCMjJPN3RvTmpXMWFFK0tTaDFQa0VmRHZzczk2Qzk5ODNUaTNjUzl6M0NFN0RWOTZBVjk0ZTlMdmdWVndZVDBDZ3BybWF6c1FXY25JK1RpeHFNQm91S2dINGYrN1VzQnc3N0xQZWd2ZmZzdmdHOXh2Y3l3d1BBOTZBVjk2cTkrM0lHa2ZjRzkyU1M5eWNhMDFmQ056ZGdTb3NlcjJnRmk2Kzh3THlzYUdFZSt3VDdiWVA3T2hxQ2pJQ05nQjRPK3l6M2xyLzNRYm4zRUwwQjk2ckRBL2ROOTVZVjRNdkwyT05JcmxLU0gvY0w5eDRGci91YldmY3VCNTJlam9zZmlRZUxmSDZCZng0byt3ZVpiQVdzQnJ1OWJWVlhXMlpkUjJXL2l4OW9aUVdMdVVuckhnNzdMUGdTdmZkYTFJdDNFcVBQOXlUQ0U3ajNnUGVnRmNMM0JzeTlTdmVqVkFiN2FQdXZCV1gzYUFmN0pMMFZqUWNUMlBjRjl5Y0ZtNkdicG9zYWpRYUxpR2h3SC9zY0J3NzdMUGVXdi9kVHZQSzlBZmV0eEFQM1N2ZVdGZVRPenR2YVM4MHphSEovaXgrSkJvdU9tWTZpSHBQWkJmZEF2ZnR1Qm5QN2FheCtCWXVzbzdqRXVHRlZWVjFpVkV0cnY0c2VaV2dGaTdsRzVSNE8reXozbHIvM1ZMbGtkL2RBdjNlZkVyZkY5MDdERTdiM1h2ZVdGZHJLd3VrZkU5YmZVY1EzSGhPMmFtRjdkSGNmaVFiYmxyalQxaHV0cW51TEh4T3VvYnNGRTdhTFpaOVoreHhVK3lMN0JQc0p5VGZySHI4RVRtVFN3aDhUMXFxM3JyN0JzR1ZTSGhPMlZteGZWQjRPK3l6NUliMFN1dmUyU3N3VHdNejNvQlhKQmhPZzkyYjRJZ1d3KzdaWjkwTUhxcDZOaXgrSkI0dDdjbnBySGc3N0xQZVd2ZmRYZDZWMzkwSzlFclBEWnNMM05zSmR3eE82cy9nY0ZUUFlYZGNlRTluZHpjSFN2RzZuWmFFZkU5YVRrN3k3eHhyWVJyRkhSMGhsUVI0VHRtQ2hiNnAySGhPNmQzNVhZa3dhRTduM2lZTVZYbHhzWGxwYnE4RzZzS3VmbVI3SmJkRjRWUm9UMXZzLzkyc1Z0N09mc3JTMWRWNWViR2grZmg1UnBFK2V2eG9PK3l6M2xyLzNCYm4zVmI0QnNjUDNUc1VEc2ZqSkZUZkZVZCtzdEp5aW9CNk5CanVBWGtKQUcybHNtNHNmZFZ3Rmk3RjJ2ZmNjd3Zjajl3UDNDVTNmS3p4TVZDNGV3NG9Wd2FxM3dzaXlSRlJyWDJoWVZXYXl3eDRPK3l6NE1iLzM4NzhCc3NQM1ZNTUQ5MVA0TVJYM0I3RHU5eFgzRkdidSt3ZjdCMllvK3hUN0ZiQW85d2NmdndSQWR0anU3YURZMXRXaFBpa29kVDVCSHc3N0xQaXR2ZmRhMUFHanovY2t3Z1AzZ1BnN0ZjTDNCc3k5U3ZlalZBYjdhUHV2QldYM2FBZjdKTDBWalFmM0JmY25CWnVobTZhTEdvMEdpNGhvY0IvN0hBY08reXo0TWIvM1U3enl2UUgzcmNRRDkwcjRNUlhrenM3YjJrdk5NMmh5ZjRzZmlRYUxqcG1Pb2g2VDJRWDNRTDM3YmdaeisybXNmZ1dMcktPNHhMaGhWVlZkWWxSTGE3K0xIbVZvQll1NVJ1VWVEdnNzK0RHLzkxUzU5d1cvQWJmRjkwN0RBL2RlK0RFVjJzckM2ZDlSeERkcVlYdDBkeCtKQnR1V3VOUFdHNjJxZTRzZm9ic0ZpMldmV2ZzY1ZQc2krd1Q3Q2NrMzZ4Ni9CRTVrMHNLcXQ2Nit3YkJsVWxac1gxUWZEdnNzK2J5OUVycjN0a3JNRThETStEc1Z5UVlUb1BkbStDSUZzUHUyV2ZkREI2cWVqWXNmaVFlTGUzSjZheDRPK3l6NE1iMzM5NzBTczhObXd2YzJ3bDNERStpeitMY1ZNOWhkMXg0VDVOM053ZEs4YnFkbG9SOFQySk9Udkx2SEd0aEdzVWRIU0dWQllLRnZxblllRStoM2ZsZGlUQm9UNVBlSmd4VmVYR3hlV2x1cndicXdxNStaSHNsdDBYaFZHaFBZK3ovM2F4VzNzNSt5dExWMVhsNXNhSDUrSGxHa1Q1Ni9HZzc3TFBneHYvY0Z1ZmRWdmdHeHcvZE94UU94K1dRVk44VlIzNnkwbktLZ0hvMEdPNEJlUWtBYmFXeWJpeDkxWEFXTHNYYTk5eHpDOXlQM0EvY0pUZDhyUEV4VUxoN0RpaFhCcXJmQ3lMSkVWR3RmYUZoVlpyTERIZzc3TFBzN3YvZnp2d0d5dy9kVXd3UDNVL3M3RmZjSHNPNzNGZmNVWnU3N0Ivc0haaWo3RlBzVnNDajNCeCsvQkVCMjJPN3RvTmpXMWFFK0tTaDFQa0VmRHZzcyt6Rzk5ODNUQWZjOXdnUFYrekVWOTRlOUx2Z1ZWd1lvS2E1bXM3RUZuSnlQazRzYWpBYUxpb0IrSC91MUxBY08reXo3TWIzMzdMNEJ2Y2IzTXNNRHdQc3hGZmVxdmZ0eUJwSDNCdmRra3Zjbkd0Tlh3amMzWUVxTEhxOW9CWXV2dk1DOHJHaGhIdnNFKzIyRCt6b2Fnb3lBallBZUR2c3MrenUvOTBHNTl4QzlBZmVxd3dQM1RmczdGZURMeTlqalNLNVNraC8zQy9jZUJhLzdtMW4zTGdlZG5vNkxINGtIaTN4K2dYOGVLUHNIbVd3RnJBYTd2VzFWVjF0bVhVZGx2NHNmYUdVRmk3bEo2eDRPK3l4Z3ZmZGExQUdqei9ja3dnUDNnUHN4RmNMM0JzeTlTdmVqVkFiN2FQdXZCV1gzYUFmN0pMMFZqUWYzQmZjbkJadWhtNmFMR28wR2k0aG9jQi83SEFjTyt5ejdPNy8zVTd6eXZRSDNyY1FEOTByN094WGt6czdiMmt2Tk0yaHlmNHNmaVFhTGpwbU9vaDZUMlFYM1FMMzdiZ1p6KzJtc2ZnV0xyS080eExoaFZWVmRZbFJMYTcrTEhtVm9CWXU1UnVVZUR2c3MrenUvOTFTNTl3Vy9BYmZGOTA3REEvZGUrenNWMnNyQzZkOVJ4RGRxWVh0MGR4K0pCdHVXdU5QV0c2MnFlNHNmb2JzRmkyV2ZXZnNjVlBzaSt3VDdDY2szNng2L0JFNWswc0txdDY2K3diQmxVbFpzWDFRZkR2c3M5M2k5RXJyM3Rrck1FOERNK3pFVnlRWVRvUGRtK0NJRnNQdTJXZmREQjZxZWpZc2ZpUWVMZTNKNmF4NE8reXo3TzczMzk3MFNzOE5td3ZjMndsM0RFK2l6YWhVejJGM1hIaFBrM2MzQjByeHVwMldoSHhQWWs1Tzh1OGNhMkVheFIwZElaVUZnb1crcWRoNFQ2SGQrVjJKTUdoUGs5NG1ERlY1Y2JGNWFXNnZCdXJDcm41a2V5VzNSZUZVYUU5ajdQL2RyRmJlem43SzB0WFZlWG14b2ZuNGVVYVJQbnI4YUR2c3MrenUvOXdXNTkxVytBYkhEOTA3RkE3SDNJQlUzeFZIZnJMU2NvcUFlalFZN2dGNUNRQnRwYkp1TEgzVmNCWXV4ZHIzM0hNTDNJL2NEOXdsTjN5czhURlF1SHNPS0ZjR3F0OExJc2tSVWExOW9XRlZtc3NNZUR2c3NnYi8zODc4QnNzUDNWTU1EOTFPQkZmY0hzTzczRmZjVVp1NzdCL3NIWmlqN0ZQc1ZzQ2ozQngrL0JFQjIyTzd0b05qVzFhRStLU2gxUGtFZkR2c3NpNzMzemRNQjl6M0NBOVVXOTRlOUx2Z1ZWd1lvS2E1bXM3RUZuSnlQazRzYWpBYUxpb0IrSC91MUxBY08reXlMdmZmc3ZnRzl4dmN5d3dQQUZ2ZXF2ZnR5QnBIM0J2ZGtrdmNuR3ROWHdqYzNZRXFMSHE5b0JZdXZ2TUM4ckdoaEh2c0UrMjJEK3pvYWdveUFqWUFlRHZzc2diLzNRYm4zRUwwQjk2ckRBL2ROZ1JYZ3k4dlk0MGl1VXBJZjl3djNIZ1d2KzV0Wjl5NEhuWjZPaXgrSkI0dDhmb0YvSGlqN0I1bHNCYXdHdTcxdFZWZGJabDFIWmIrTEgyaGxCWXU1U2VzZUR2c3NpL2M0V2IzM1d0UVNvOC8zSk1JVG1QZUFGc0lHRTNqM0JzeTlTdmVqVkFmN2FQdXZCV1gzYUFmN0pMMFZqUWYzQmZjbkJadWhtNmFMR28wR2k0aG9jQi83SEFjTyt5eUJ2L2RUdlBLOUFmZXR4QVAzU29FVjVNN08yOXBMelROb2NuK0xINGtHaTQ2WmpxSWVrOWtGOTBDOSsyNEdjL3Rwckg0Rmk2eWp1TVM0WVZWVlhXSlVTMnUvaXg1bGFBV0x1VWJsSGc3N0xJRy85MVM1OXdXL0FiZkY5MDdEQS9kZWdSWGF5c0xwMzFIRU4ycGhlM1IzSDRrRzI1YTQwOVlicmFwN2l4K2h1d1dMWlo5Wit4eFUreUw3QlBzSnlUZnJIcjhFVG1UU3dxcTNycjdCc0dWU1ZteGZWQjhPK3l5Z2R2Z1Z2Uks2OTdaS3pCUGd6QmJKQmhQUTkyYjRJZ1d3KzdaWjkwTUhxcDZOaXgrSkI0dDdjbnBySGc3N0xJRzk5L2U5RXJQRFpzTDNOc0pkd3hQb3MvY1FGVFBZWGRjZUUrVGR6Y0hTdkc2blphRWZFOWlUazd5N3h4cllSckZIUjBobFFXQ2hiNnAySGhQb2QzNVhZa3dhRStUM2lZTVZYbHhzWGxwYnE4RzZzS3VmbVI3SmJkRjRWUm9UMlBzLzkyc1Z0N09mc3JTMWRWNWViR2grZmg1UnBFK2V2eG9PK3l5QnYyeDI5em01OTFXK0VySEQ5MDdGRTd5eDk3MFZOOFZSMzZ5MG5LS2dIbzBHTzRCZVFrQWJhV3liaXg4VGZIVmNCUk84aTdGMnZmY2N3dmNqOXdQM0NVM2ZLenhNVkM0ZXc0b1Z3YXEzd3NpeVJGUnJYMmhZVldheXd4NE8vSjRPSmZlUnlRSFY5N0FEMWZlUkZmZXd5ZnV3Qmc3N25RNS9sL2lMbC9kUWx3YkpDczhMejR3TURmZ1NGUGlxRmFRVEFORUNBQUVBQ3dBeEFEOEFTUUJNQUc4QWNnQjhBSjBBcXdEcUFQd0JEUUUyQVdZQmJnR2RBYWdCc2dIMkFnOENJQUplQW1nQ3BnS3NBdGtDNHdMNEF3WURHUU02QTBRRGRBTitBNE1EaGdPV0E4RUQ0UVB3QS9nRC9RUU1CQlFFSXdRcEJJVUVwUVN0QkxvRXZRVEJCTkVFMndUbEJTOEZRUVdTQlpZRnJRV3pCYmdGeHdYU0JlRUY2QVg2QmdBR0RBWkxCb3dHbGdhZ0J0OEc3QWIwQnZnSE1BYzRCMFFIU1FkU0Ixc0haQWRwQjI0SG1RZWVCNklIekFmUEI5MEg3QWY5Q0FFSURnZ1pDQjhJSndnc0NERUlRUWhHQ0c0SWVRaWhDTVlJekFqVkNOOEk2d2p2Q1BzSklBa2tDVEVKVWdsZENXSUpmQW1DQ1ljSmpBbVFDYkFKdVFtOUNjSUo0QW4rQ2dvS0Znb2NDaUlLTFFvMkNqc0tQd3BGQ2tvS1VRcFZDbWdLZXdxQ0NvZ0trUXFYQ3FZS3JRcXhDcmdLdkFyS0N0c0s0UXJuQ3UwSzh3c0VDd3NMRWdzaUN6RUxQQXRCQzBVTFRBdFJDMVlMWkF0b0Myd0xlUXVCQzRrTGpRdVJDNTBMcVF1dkM3VUx1UXU5QzhnTDB3dmJDK0lMNWd2ckMvQUw5QXYrREFnTUVnd2NEQ1lNS2d3dUREY01RQXhFREVnTVRReFNERmNNWEF4Z1VncjNCZFRSaXlFS0N4NXN2d1dMVGs0dkl6UFI5eFdJVXgxRTl2c2YreHo3QkNqN09SN1V3R3dkeTFvaWp4OEwrS1lXMUFZNkhmc2crQ28wQ2d0VXpDZ0toL3MrVFFvTEZTSWQwaDJsa2JXc0hyaVpSTTRieUtxejJCOVZCbkdFWUdvZVhuM1RTQnRPYkdNK0h3c2xDZzRTdEFvVHpDRWRFekFMOTlZSDl4Skl6dnNOK3dWSjF3cXJWd1dMeHJ2ZTA4QnFLaDUrYndjMCszRUxiUjJ6SGZmVDBCUG1JQW9UR0FzVjRNdkwyT05JcmxLU0gvY0w5eDRGci91YldmY3VCNTJlamw0ZGZINkJmeDRvK3dlWmJBV3NCcnU5YlZWWFcyWmRSMlcvaXg5b1pRV0x1VW5ySGc0VjFnYmY5d3U1Q2xVN0JZa0dWZHU1Q2c2OTJSV0wyakgzSlBjWTNPRDBIaTBLQy9kNysvTmI5enNheWNYRzVlZkpUNHNlcmNVRmkwblArdzc3RmpJekpoNzdidmZ6dVB0RmNBb0xZN3dGaXpVdCt5TDdPL3NLOXgzM1BQYzY5d3IzRlBjNTl4amRQWXNlc0w0Rml6Ym0reno3WGZzcyt5LzdZQjRMWUIzbFFCMG9IUXYzT3Z1amJmY0RHc084b2I3ZXRsMkxIcXEvQll0YXdpRXdPbG94SHZzNDk2T20rd0lhVmx4d1ZTMVR5SXNlQzVzSzl3NTI5d3QzTFIwTEVyUWRFOHdsSFJNd0N4WGF5c0xwMzFIRU4ycGhlM1IzSDRrRzI1YTQwOVlicmFwN2l4K2h1d1dMWlo5Wit4eFUreUw3QlBzSnlUZnJIcjhFVG1UU3dxcTNycjdCc0dWU1ZteGZWQjhPRll1YVVaZHFIdWY3a3dYN2hnYnA5NU1GbDZ5YXhZc2FDMVVLOS92OGpnWE8rVk5HL0k0R1VoMExrdnRJRll1dmJiL092N1RMcFI3M2pQajByZ3I3SmZ3REJZRnloRzkxQ29PbmdhUWUreWo0QXdWQUJ2ZG0vSWRzUkFWZGQyeG5YeHRyYjZLTEh3dW1DdVYyOXd0M01nb0xGZVRPenR2YVM4MHphSEovaXg5NUNvNlpqcUllazlrRjkwQzkrMjRHYy90cHJINEZpNnlqdU1TNFlWVlZYV0pVUzJ1L2l4NWxhQVdMdVVibEhnNFNKQjBUR0F1TE55VDdIZnMwK3d2M0ZQZEI5enYzQi9jWDl6NzNGTjFGaXg2d3Z3V0xOTjM3Ti90ZSt5ejdOUHRmSGdzR3dkd0ZqUWJCT2dVTGozL04rT2ZOeFVrZHk5TDNyTklUekN3S0V6QUxZQXI3d3N3S0IvY1FYOUw3RUFzd2Y4ajRLZEFkeGRIM1hkRVR6QzRkRXpBTDk0ZTlMdmdWVndZb0thNW1zN0VGbkp5UGs0c2FqQWFMaW9CK0d2dTFMQWNMbXJJZHV0RTVIUk13QzdVVytEdkgrNjBHYW5tSml4K05CNHVob1o2akh2ZXQ5L1FGdVB3bFQvZVhCNnljWVIxMmRYaHpIdnV0Ky9VRkM1RWQ1WGIzQzNjNUNndjRNa1VLQzBVZERzbjc3ZmVaOTUvSis1LzNsUGZieVF2M2tCYlI5OElHOTRENEpRVTlCdnNwKzVNRmRXWjJYSFVLZGJ0MnJ4NzdLZmVUQlR3Rzk0SDhKUVVMRXQzUDJBb1R4bmdLb0I3ZVBRcjdDMHM2WFhsNUhhRWFFNmJXU0FjVEdBdHRDdEZBSFJMeDBCUGtQaDBUR0FzVlNncjR6VWNIQzJJZGR4MEx6aFBTZ0VjZEUrS0FLaDBURFFBTEdwdUptNGVjSGc0ZjBZOFY5d1AzTW83YUhxaDFCZ3YzQ3dVOEJndjRZL2pzRll1V1Q1ZGVIdmNhL0lNRjNnYjNUL2xUNWdyN0lmeTJCWUpuaEdTTEdva0dpb2F5cjRFZit5ajR0cmtLK3lqOHRnVm5nWVpraWh0NUNvU3lncThlK3h6NHR1WUs5MHI5VXdYZUJ2Y2ErSU1GbDdpV3g0c2FDODhUc2tDMHpRb240bHJmOXhLMTl3R0x1QjF5R2hOeVFDTUtFN0pBYVIwTFhRcjhVcy80VWd1Njk0OFYreS8zQmZzQTl5b0xWd29PRlZjZEM4MGQrSTRHc0lYRmh3cXRUNk5vSGd1TGtveVRhd29lV3djTG1GUjhCMFREWjhZZUMvZHdpOG4zbWNmM2xza0I5d3JRK0VyVEE4WDMxeFhIKzlmM2RnYjNhUGNoOXhUM2RQZHkreUgzRmZ0b0gvdDIrOVJQQnZjVis5VVY5NW4zTzhmN08vZVc5eW9IOTBIM0I4d2RhUHRteVBrZ2QvY09TUjBUd0RZS0V6QUw5N1lWKzBQdit4UDNMUGNPN2QvM0hmY1JNT0g3RTBKRWJsZG9Ib2tHOXhpWDF2Y2U5eWNieGJkMWl4K2x4QVdMVjZZKysyd3grMm43UEI3VVlSWEExOGZwNjhwT0x5OVRTQ3dnUlBjRTRoNE81VWtkQzhrRzkyYjRJZ1d3KzdaWjkwTUhxcDYrSFhKNmF4NE9QeDFNVXNvTGtBcEdqQjJMbjRhcHZMcWd4Yk50cEdPUkhndWkxY2JoRyt5WFJUd2ZDL2R2b0hiNVUzZmxkdmNMZDBvZEM0bWNDbitOZUF2N0J6K1dDcGVJbmNQM0M1LzNPeDc0bmd2M29CVS9DZ3ZJQ3ZGSkhSUEFRUW9UTUF0dkZZdkxNUGNkOXhyMTNmY2I5eGtnMWZzUFMxNXpmeDJPbW82aUhwLzNPQVgzb2NmNzNBWmwrOUcyZkFXTHdxN1U0dDlYS0NjMFZqUW1WdFdMSGc3M29oWDdJZGI3SWZjMDl6VFc5eUQzSXZjaVAvY2orelA3TXovN0kvc2lIdEdORmZjQ3dQY0Q5d1QzQk1IN0Evc0Qrd0pWK3dUN0JQc0VWdmNFOXdNZURsUUtFeVpZSFJNV1V3cjdNZnRlSHRNVzl6d0xmeFgzUzhiM05QZGc5MTVROXpYN1MvdExUL3MxKzE3N1lNZjdOUGRMSDh3RSt4cG05eGYzUFBjN3NQY1g5eHIzR2JEN0YvczcrenhtK3hmN0dSOE9ycUYvZFhCeWhIRjBlSkdMQ3hYOG13ZGpDZ2NMc0hJZEN4YjRTOG44QXdhTTkwLzM5NnozZ0JyM0FqdmkreHI3S1V2N0U0c2V2MmdGaThIcjh1UEZVVDRlKzFMNy9HdjdpeHA5akh5T2V4NE9GZmVLd3Z1S0JnNGFQMHhkUHZzRFF0aUxIZ3RBelgwZEMvY245d3YzQnZjc0Mvc24rd3Y3QlBzcEMzL0k5MXZEOXk3RUM0c2FlUW9MKzBtWENndjNWeFgzOVB0WDBQZFg3OGduK0ZOQUJ2dnUvR01GMzVzVmpRZjNmdmZGQlo2a202ZUxHbWNkaUxZSzNSWnhIUXVKQm9zTHNCWDM1ZnN0ei9jdDl3REkrd0Q0VVVBRys5NzhZUVhkbXhYM2N2ZkNCWjJrbkt5TEdtY2RoN1lLdkRnZDl4TEUreEwzSlVqN0pVaFN6UXVCSG5rN0JSUGVTQjBUdnBPM0JRdS85MVM1OXdXL0FiZkY5MDdEQS9kZUMzK2RIUXU3KzJiSTl5ekkrQm5KZjNjTHNibTVyMlZlWFdkbVhRdnhGcXNkQmd2Sjk1bko5NVRKQy92Q3BSMExkdmxUZHd1Lzl3VzU5MVcrQWJIRDkwN0ZBN0VMaXg1bkhRdk5IZmZrOXdzRzkxMzc1QVhjQnZ0MCtBVUZqUWYzWnZmZ0JUd0crMUg3eFFYN0MvZkZSZ1lMRmRIZ1JRYU0rMXhzQ2c2dTkxa1YreXZ3VWV2czhNVDNMQjc0anZ1RlRmZEEvRkFIK3dGSlowMUxTckwzQUI2bFJnY0xGdmdSeWZzditSVkxCdnN6K3pLM1h0YldCYWVta3BxTEdtY2RpbmgzR3Z5WSt6SUhEaFhNNEVvR0Rtc2RzNzYxb1p3ZUN4THgwQlBJZ2dvVE1BdnhGdmdmeWZ2YStSVkdCZ3NWeVFZTFZBb1RFd0JZSFJNTEFGTUtkdmVUeGZlVGR3SDN6c2dEM3ZlVEZmZDcrNVBJOTVQM2VzWDdldmVUVHZ1VCszc0dDeFUvQ2c0VzkrUGdIVkVHKytUOVV3VUxrSStMaXgvREI0dUZpNEpqK3dGOSt6a2VPUWNpTm9HTEhrMEhpK0NCSXhvT2ZXUitnb3lMSGxBSGl3dDI5eDkzQy9zSUZkUUc5OHY0K2dXNC9GQlA5ODRIcnB5K0hYTjVaeDRPOTNSL254MEx1SzJCQ2d2QmY2a0tDNkFLaXdzVkkrRkM5d2J1eWNTTEhtYTlCWXRXWVVjK1ZiN0xIdmNTOTBLazl5OGFDL3ZDb0hiNGk5c0tDM3dkQVF1TEhzZ0hDM0pJbGZjSEgvY0NCL0U3cElzZWpRZUwyNmp0R3UwSDl3ak9sS1FlQy9lWEZmaFkrMTRGemdmOEEvY3pCWTBIK0FQM013WE9CL3hZKzE0RkN5WDdUL3RRK3djbCswRWZDNy8zNjcwQjk2ckRBL2ROQzgvNGkwY0dDL2RTZjhvS0MvY1QxTmJrOXdDL0p5VUw5NURKL05KTjk1RUx5MnlUSFF2OVU1Z2Rkdmd2ZHdFTHlkRkpIUXMyOXdLRWl4NExCVUVHQ3hYM0c4TUdFK0JEK1YwR0U5RFR3L3NiQmc0VjJzckwydHBNeXp3OFMwczhQTXRMMmg4T2hJc2VtNFFkQzM4S3hVa2RDL3NPK3hndEkvc3pDN2pSK0J6UkM3NEtqLzFURmRFR2lQaWJCVXNHRG1kdEd2dTZCdzdqaHgwTHlJWjNFdlRQQ3dWSkJncy95VTNaMmNySjE5aTNIVDRlQy9pcjRCMUVCdndtKzJZVlhXaXd1UjhMeFFyM2VjOEwzUXIzMU04TEZkallQZ1lMQnNQM1FBVUx4Qlg0V1BkZUJiMEgvRmozWGdWSUJ3c1Z3cjhLUXdZTEZjRy9Da1FHQy9jTnhmc045MXhJKzF6N0NWSDNDUXZTWUxaZzBmZXowVlRDVk5JVDRRdDIrRkxFOXdmbFRyZ0tDM2tkb2hvTHBSMEJDM0tMeC9nVHh3dTZIZnRoQzh2NUgzY0wrd2xpK3hqN0pCcjdNcmI3TGd2UDk5UUw5eDBWQzJCRWF0RXRHMUJWWjJwcUh3dkkrQlBFOXlWM0MzYjN2TW4zcjhrTDRBb0dDN3VpdkF2SDl3WEQ5NmZBOXduR0FRc0dydmRjQlU0R2FQdGNCUXQyK2MxM0FRdjdSM2IzVUF0U2l4NEw5OERQQy9zVXlQZFN4dmZMeVFFTDkyeWdkdmZWeWZmVWR3dDM5dzVKSGQzUEN4WEc5ejFRQmd0MzhBb0wremYzWkF0M0FkM1BDNHNlaVF1Z2R2ZFh5UGhUZHdFTExIYjNMY2o0VVhjQkMzL045OTdMOTFYSkFRdC96UGRjeWZmanpBRUxmOGozek1iM1Vja0JDd1ZEQmdzU3RORUwrMW8vZHZuUGR4SUwwZmNaMGZlWXp3TUwwUEFkQzVjS0VndE1Vc29IQzNjQjk0QUxkdmtWeVF2SkFmSFFDeEs4MFFzQUFRQUFBQW9BSGdBc0FBRnNZWFJ1QUFnQUJBQUFBQUQvL3dBQkFBQUFBV3RsY200QUNBQUFBQUVBQUFBQkFBUUFBZ0FBQUFJQUNnZ29BQUViaEFBRUFBQUFWZ0MyQU1BQXlnRGtBUllCVEFGU0FWd0JaZ0ZzQVhZQmdBR0tBWlFCb2dHc0FiWUJ5QUgyQWdBQ0RnSWdBaVlDWEFLeUFzQUN5Z0x3QXZZREVBTW1BemdEU2dPSUE1b0R0QVBHQStBRDhnUU1CQjRFS0FRNkJGd0VjZ1NFQkpvRXJBVEdCTXdFMWdUOEJRNEZGQVVtQlRnRlFnV0FCWVlGckFXK0JkQUY2Z1ljQmxJR2lBYU9CdXdHK2djZ0IwWUhUQWRTQjFnSFhnZVVCNm9IdEFlK0I5UUgzZ2ZrQi9ZSUFBZ0tDQmdBQWdEbEFCY0JJZ0FCQUFJQTVRQVhBU0lBQVFBR0FEY0FDd0NvQUJJQXF3QU1BT1VBR1FEbkFBMEE2UUFVQUF3QUVmL3FBQlgveFFBWC8rZ0FHUC92QUJuLzlBQWEvL01BTHYvNUFEZi94d0JYLyt3QlNmLzFBWTMvN0FHUC8rSUFEUUFSLytnQUZmL0RBQmYvNXdBWS8vSUFHZi96QUJyLzlnQXUvL29BTi8vSEFGZi82Z0ZKLy9ZQmpQLzdBWTMvN3dHUC8rSUFBUUFZQUFnQUFnQU4vK2dBRC8vb0FBSUFFQUFJQUJYLzd3QUJBQlgvNndBQ0FBMy84UUFQLy9JQUFnQU4vK2dBRC8vbEFBSUFEZi95QUEvLzh3QUNBQTMvOUFBUC8vVUFBd0FOLzdjQUQvKzNBQlgvNlFBQ0FBMy84Z0FQLy9NQUFnQU4vOXdBRC8vY0FBUUFEZi95QUJ2LytBQWMvL2NBTi8vOUFBc0FEZit3QUJ2LzNRQWMvOXdBVWYvNUFGZi8vUUJaLzk4QVhnQUdBS3ovL1FEbEFCTUE3Zi81QVVuLy9RQUNBSFAvclFHQy82d0FBd0FOLy9zQUcvLzdBRGYvL1FBRUFBMy9uQUE1Ly9vQXJQLzhBT1VBRVFBQkFEZi8rUUFOQUovL3pnQ29BQklBcXdBSUFPTUFEZ0RsQURZQTV3QVpBT2tBRWdEdC81WUJCUUFCQVJYLzBBRVovNjBCSGYvRUFTSUFDd0FWQUFvQUN3QU4vOGNBRy8veEFCei84QUFnQUFzQUx2LzlBRDRBRWdCUi8vRUFXZi85QUY0QUVnQ29BQXdBclAvN0FPVUFJQURuQUE4QTZRQU5BTzMvOFFFRkFBRUJJZ0FHQVVuLy9BRjRBQThCZWdBUUFBTUE1UUFLQU8zLzh3RUZBQUVBQWdCWC8vTUFyUC83QUFrQW0vLzNBS2dBQ0FDcC8vb0E1UUFiQU9jQURRRHBBQWtBN2YvZUFRWC85Z0VpQUFJQUFRRGxBQVlBQmdBM0FCSUFxQUFOQU9VQUtBRG5BQlVBNlFBT0FQRUFFQUFGQURYL2x3QTIvLzBBTi8vbEFEai84QUE2LzhnQUJBQTEvNllBTi8vMUFEai8rQUE2LytZQUJBQTEvNlFBTi8vcUFEai84Z0E2LzlNQUR3QUtBQTBBRGYvNkFDQUFDZ0FpLy9vQUsvL3ZBRFVBRUFBM0FBc0FPZ0FIQUQ0QUVnQmVBQkVBcUFBTEFPTUFCd0RsQUN3QTV3QVRBT2tBREFBRUFEWC9sZ0EzLy9FQU9QL3pBRHIvM2dBR0FDdi8vUUExLzZ3QU52LzlBRGYvL0FBNC8vMEFPdi8zQUFRQU52LzdBRGovL0FBNi8vd0FjLy9EQUFZQU5mK2dBRGYvNGdBNC8rNEFPZi81QURyL3hRQTcvL3NBQkFBMS81WUFOLy94QURqLzh3QTYvOTRBQmdBaS8rd0FLLy9YQURYL3JRQTUvL0FBT3YvOUFEdi96d0FFQURYL3BnQTMvL1VBT1AvNEFEci80QUFDQURYLzJ3QTYvL2tBQkFBMS81WUFOLy94QURqLzh3QTYvOTRBQ0FBTi8ra0FJdi8zQUN2Lyt3QTEvNjBBT2YvekFEci8vUUE3LzlvQXJQLzlBQVVBSXYvN0FEWC9xd0E1Ly9VQU92LzlBRHYvM3dBRUFEWC9xUUEzLy8wQU92LzNBS3ovK1FBRkFDTC85d0FyLy9zQU5mK3VBRG4vOUFBNy85a0FCQUExLzZZQU4vLzdBRGovL0FBNi8vTUFCZ0EzQUJJQXFBQVdBS3NBRFFEbEFDY0E1d0FkQU9rQUZ3QUJBRTMvd3dBQ0FFc0FLd0R4QUNzQUNRQ2IvL2NBcUFBSUFLbi8rZ0RsQUJzQTV3QU5BT2tBQ1FEdC85NEJCZi8yQVNJQUFnQUVBQTMvc0FBYy8vc0FOLy85QURuLzZBQUJBRmYvK3dBRUFBb0FFZ0FnQUFrQVBnQU5BRjRBRmdBRUFBb0FEZ0FnQUFrQVBnQUhBRjRBRUFBQ0FBMy8rd0JaLy9zQUR3QURBQWNBQ0FBSEFBb0FJQUFnQUNnQVBnQWxBRjRBTGdDb0FDQUFxZ0FkQUtzQUhBRGpBQjBBNVFCSEFPY0FMQURwQUNRQThRQWZBUVVBRGdBQkFDQUFCZ0FKQUFNQUdRQUlBQmtBQ2dBb0FDQUFLZ0ErQUM4QVhnQXZBUVVBSmdGTkFBb0JVQUFLQUFRQUNnQU9BQ0FBR1FBK0FCY0FYZ0FlQUFRQUNnQVdBQ0FBRHdBK0FBOEFYZ0FZQUFZQVIvLzZBRlgvK2dFZi8vb0JJZi82QVNQLytnRkEvL29BREFBS0FCVUFJQUFhQUQ0QUZ3QmVBQ0FBcUFBU0FLb0FEd0NyQUE0QTR3QVBBT1VBT2dEbkFCOEE2UUFXQVBFQUVRQU5BSi8vemdDb0FCSUFxd0FJQU9NQURnRGxBRFlBNXdBWkFPa0FFZ0R0LzVZQkJRQUJBUlgvMEFFWi82MEJIZi9FQVNJQUN3QU5BSi8vemdDb0FCSUFxd0FJQU9NQURnRGxBRFlBNXdBWkFPa0FFZ0R0LzVZQkJRQUJBUlgvMEFFWi82MEJIZi9FQVNJQUN3QUJBT1VBSGdBWEFBTUFBUUFJQUFFQU5RQUtBRGNBQlFBNkFBSUFtUUFDQUovL3hBQ29BQVlBNVFBcUFPY0FEUURwQUFZQTdmL3hBUVgvOUFFVi84a0JHZitxQVIzL3ZRRWVBQW9CSUFBS0FTSUFBUUV5QUFJQk5BQUNBVDhBQ2dGNEFBd0FBd0RsQUFvQTdmL3pBUVVBQVFBSkFKdi85d0NvQUFnQXFmLzZBT1VBR3dEbkFBMEE2UUFKQU8zLzNnRUYvL1lCSWdBQ0FBa0FtLy8zQUtnQUNBQ3AvL29BNVFBYkFPY0FEUURwQUFrQTdmL2VBUVgvOWdFaUFBSUFBUURsQUFZQUFRRGxBQVlBQVFEbEFBWUFBUUVGQURNQURRQ2YvODRBcUFBU0FLc0FDQURqQUE0QTVRQTJBT2NBR1FEcEFCSUE3ZitXQVFVQUFRRVYvOUFCR2YrdEFSMy94QUVpQUFzQUJRQU4vL01BRy8vMEFCei85QUJYLy93QVdmLzhBQUlBNVFBWkFPY0FCZ0FDQU9VQUdRRG5BQVlBQlFDb0FBc0E0d0FIQU9VQUxBRG5BQk1BNlFBTUFBSUFOd0FQQVNJQURRQUJBRGNBRUFBRUFCQUFCd0dNLy9zQmpmL3dBWS8vN3dBQ0FZMy85Z0dQLy9rQUFnR0ovL3NCamYva0FBTUFEZi9ZQUEvLzJRR0svK1FBQVFHTi8vb0FBaFFXQUFRQUFCV2dHSm9BTndBdEFBRC8xLy80Lzl2LzlBQUsvL3IvK3YvNUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC96Ly9zQUFQL0QvK0lBQUFBQS84TC8zUC9ULy92Lzh2L29BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC81Ly9yLy9mLzdmKysvKzcvOWYvdS83My8rUC9jQUFBQUFBQUEvOGIvMS8vUy85SC85Zi9uQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC96Ly9zQUFQL0UvK0lBQUFBQS84TC8zUC9ULy9yLzhmL21BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL1QvL2tBQUFBQS85SC8rLy9xLy8zLysvLzNBQUQvNFFBQUFBQUFBQUFBLzlmLzUvLzMvOXovM3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vY0FBUC84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9uLzh3QUEvL3YvN1AvekFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8rZ0FBLy8zLzh2L3BBQUFBQUFBQUFBQUFBQUFBQUFEL3NmL3RBQUQvbS8vNy8vdi8rUC80Ly8wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vQUFBQUFBQUFQL3lBQUFBQUFBQS8rNEFBUC84QUFBQUFBQUFBQUQvL1AvMC8vUUFBQUFBQUFELzl3QUFBQUQvK2YvZC85ei8rdi82QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8rZ0FBLy92Lzl2L3lBQUFBQUFBQUFBQUFBQUFBQUFELzJ2L3pBQUQvM1FBQUFBRC8rd0FBLy8zLy9mLzkvLzBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC80d0FBLzlRQUFBQUFBQUQvOFFBQUFBQUFBQUFBLy8wQUFBQUFBQUFBQUFBQUFBQUFBUCsvQUFELzdRQUFBQUQvOFArdkFBQUFBQUFBLy9zQUFBQUFBQUQvK2YvNy8vc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9uLzlRQUEvL2ovOWdBQUFBRC8rdi83QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9qLzZ3QUEvL3IvN2Yvei8vWC8rUC80QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9yLzdnQUFBQUQvNy8vcS8rci85Ly8yQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC84d0FBLy9yLzlQL3pBQUFBQUFBQUFBQUFBQUFBQUFELzBmL3lBQUQveWdBQUFBQUFBQUFBLy96LytQLzQvL29BQUFBQS8vdi8rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQKzcvL0FBQUFBQS84Ly80Ly9YLy96LzdmL2RBQUQveGdBQUFBQUFBQUFBLzdML3FmL2gvN1QvcVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vY0FBUC82QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9ULzdRQUEvL2YvN1AvNkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8rd0FBQUFBQUFQL3hBQUFBQUFBQS8rNEFBUC85QUFBQUFBQUFBQUQvL1Avei8vTUFBQUFBQUFELytBQUFBQUQvK3YvYy85di8rdi82QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC81QUFBLzlJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vd0FBQUFBQUFELzVRQUFBQUQvOWYrYkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3NBQUFBQUFBQS8ra0FBUC83QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9yLzlRQUFBQUQvOS8vN0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzJnQUFBQUQvNWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8zLy9QLzNBQUFBQUFBQUFBQUFBQUFBQUFELzgvLzRBQUQvNS8vNC8vai85di8yLy8wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8wd0FBLzk0QUFBQVdBQUQvcGYvOUFBNy84Z0FBQUFEL3JQK3hBQUFBRVFBQUFBRC9xdityQUFyL3Z2K3ZBQUQvdi8vRS84WC95UC9JLy9uL29QK2gvL3YvbC8ray81bi9vUUFRQUJBQUZmK1hBQllBRlFBVEFBRC8rUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9yLzdnQUFBQUQvNy8vaS8rSC85di8xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC80UUFBLytnQUFBQVJBQUQvNmdBQUFBai8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC85QUFELzF3QUFBQUQvM2YvSEFBQUFBQUFBQUFELzV2L2lBQUQvOGYvdS8vVC81Z0FBQUFBQUFBQUFBQUFBQUFBQUFBRC82UUFBLys3LytnQUFBQUQvOFAvN0FBRC8vUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzNBQUFBQUQvNGYvUy85UC84di94QUFELzcvL3QvL24vOC8vei8vYi83d0FBQUFBQUFQL3pBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLzBBQUFBQUFBRC84d0FBLy9yLzlQL3pBQUFBQUFBQUFBQUFBQUFBQUFELzBRQUFBQUQveWdBQUFBQUFBQUFBLy96LytQLzVBQUFBQUFBQS8vdi8rd0FBQUFBQUFBQUFBQUFBQUFBQUFBRC8wUUFBLytQLzlnQU5BQUQvMlAvMEFBVC83Z0FBQUFELy9RQUFBQUFBQndBQUFBRC85Ly80QUFEL3ZmLzlBQUQveC8vQy84VC8zdi9lLy9uL3pQL0YvL24vM3YvWC85Ly95Z0FMQUF3QUV2L2VBQk1BREFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC84Z0FBLy8zLzkvLzNBQUFBQUFBQUFBQUFBQUFBQUFEL3QvLzJBQUQvd2dBQUFBRC8rd0FBLy8zLytmLzQvL3dBQUFBQS8vei8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZBQUFBQUFBQUFCSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzlBQUFBQUFBQUFBQUFBQUFBLy8wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK2dBQUFBQUFBQS84d0FBUC93QUFBQUFBQUFBQUQvNXYvNy8vei8vUC85QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzZRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLzBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvNkFBQUFBQUFBQUFBQUFQLzgvLzBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvL1FBQUFBRC8vUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELyt3QUFBQUFBQUFBQUFBQUFBQUFBQUFELytmLzQvL2tBQVAvOS8vMy8rZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK1gvLzBBQUFBQS84MEFBUC93QUFBQUFBQUFBQUQvNWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8rZi83QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzZnQUFBQUFBQVAvZC85MEFBQUFBQUFELy9mLzYvL1lBQUFBQUFBRC8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAveC8rOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzlRQUFBQUFBQUFBQUFBQUFBQUFBQUFELyt2LzVBQUFBQUFBQUFBRC8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvby8rWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzd3QUFBQUFBQUFBQUFBQUFBQUFBQUFELy9QLzcvL3NBQUFBQUFBRC8vUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVdBQUFBQUFBQUFCTUFBQUFIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC94QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8rZ0FBQUFBQUFQL09BQUFBQUFBQS8rNEFBQUFBQUFBQUFBQUFBQUFBQUFBQS85d0FBQUFBQUFELytnQUFBQUFBQVAreUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8zLy9mLzhBQUFBQUFBQUFBQUFBQUFBLy9vQUFBQUEvL3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC85QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy93QUFQLzhBQUFBQUFBQUFBQUFBUC84Ly92LzlRQUEvL3IvN3YvMEFBQUFBQUFBLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8xLy81Lzl6Lzh3QVQvL3YvK1AvNEFBai8rZ0FBQUFBQUFBQUFBQUFBQ2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELysvLzVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC96Ly92Lyt2L0QvK0lBQVAvMS84TC8zUC9ULy9yLzh2L29BQUQveHdBQUFBQUFBQUFBQUFBQUFQL3JBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8zLy90LzhiLzdQKy8vKzhBQVAvdi84Zi8rdi9pQUFBQUFBQUEvOXovM2YvSy84Y0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZBQUFBQUFBQUFBMEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVRBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC94QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFWZ0FEQUFnQUNRQU5BQThBRUFBUkFCSUFFd0FVQUJVQUZnQVhBQmdBR1FBYUFDTUFKd0F0QUM0QU1RQXlBRFVBTndBNEFEa0FPZ0E3QUR3QVFnQkVBRVlBUndCSUFFd0FUUUJRQUZJQVV3QlVBRlVBVmdCWEFGZ0FXUUJhQUZzQVhBQnpBSHNBbVFDYUFKc0FxUUNyQUt3QXl3RE5BT1VBNXdEcEFQUUErZ0VlQVNBQklRRWlBVEFCTWdFMEFUVUJOd0U1QVRzQlB3RkpBVXdCVHdGaUFYY0JlUUdIQVlvQmpBR05BWThBQWdCQkFBTUFBd0FBQUFnQUNRQUJBQTBBRHdBREFDSUFQQUFHQUVJQVJBQWhBRWNBUndBa0FFa0FTUUFsQUV3QVRBQW1BRTRBVVFBbkFGTUFVd0FyQUZjQVhBQXNBSE1BY3dBeUFId0FrZ0F6QUpRQW9RQktBS01Bb3dCWUFLd0FzZ0JaQUxRQXRBQmdBTGtBeWdCaEFNd0F6QUJ6QU00QXpnQjBBTkFBMEFCMUFOSUEwZ0IyQU5RQTFBQjNBTllBMWdCNEFOZ0EyQUI1QU5vQTJnQjZBTndBM0FCN0FONEEzZ0I4QU9BQTVBQjlBT1lBNWdDQ0FPZ0E2QUNEQU9vQTZnQ0VBT3dBN0FDRkFPNEE3Z0NHQVBBQThBQ0hBUElBOVFDSUFQY0E5d0NNQVBrQStRQ05BUHNBK3dDT0FQMEEvUUNQQVA4QkRnQ1FBUkFCRmdDZ0FSZ0JHQUNuQVJvQkdnQ29BUndCSEFDcEFSNEJIZ0NxQVNBQklBQ3JBU0lCSWdDc0FTUUJKQUN0QVNZQkpnQ3VBU2dCS0FDdkFTb0JLZ0N3QVN3QkxBQ3hBUzRCTGdDeUFUQUJPZ0N6QVQwQlBRQytBVDhCUHdDL0FVa0JUQURBQVU0QlR3REVBVkVCVVFER0FXSUJZZ0RIQVhRQmRBRElBWGNCZHdESkFYa0JlUURLQVlBQmdnRExBQUVBQ1FGNkFBRUFBQUFBQUFBQUFnQURBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBR0FBY0FDQUFKQUFvQUN3QU1BQXdBRFFBT0FBOEFFQUFNQUJFQUVnQVRBQlFBRlFBV0FCY0FHQUFaQUJvQUd3QWNBQjBBQUFBQUFBQUFBQUFBQUI0QUh3QWdBQUFBQUFBaEFBQUFJd0FBQUFBQUlnQUFBQ01BSXdBa0FCOEFBQUFsQUFBQUFBQUFBQ1lBSndBb0FDa0FLZ0FyQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCUUFGQUFVQUNRQUhBQWtBQ1FBSkFBa0FEQUFNQUF3QURBQUlBQXdBRVFBUkFCRUFFUUFSQUFBQUVRQVhBQmNBRndBWEFCc0FMUUF1QUI0QUhnQWVBQjRBSGdBZUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFMd0FqQUNRQUpBQWtBQ1FBSkFBQUFDUUFBQUFBQUFBQUFBQXBBQjhBS1FBRkFCNEFCUUFlQUFVQUhnQUhBQ0FBQndBZ0FBY0FJQUFIQUNBQUNBQUFBQWdBQUFBSkFBQUFDUUFBQUFrQUFBQUpBQUFBQ1FBQUFBc0FBQUFMQUFBQUN3QUFBQXNBQUFBTUFDTUFEQUFqQUF3QUFBQU1BQUFBREFBQUFBd0FBQUFNQUFBQURRQUFBQTBBQUFBT0FDSUFJZ0FQQUFBQUR3QUFBQThBQUFBUEFBQUFEd0FBQUF3QUl3QU1BQ01BREFBakFDTUFEQUFqQUJFQUpBQVJBQ1FBRVFBa0FBa0FBQUFVQUNVQUZBQWxBQlFBSlFBVkFBQUFGUUFBQUJVQUFBQVZBQUFBRmdBQUFCWUFBQUFXQUFBQUZ3QUFBQmNBQUFBWEFBQUFGd0FBQUJjQUFBQVhBQUFBR1FBbkFCc0FLUUFiQUJ3QUtnQWNBQ29BSEFBcUFBQUFBQUFWQUFBQUZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQU1BQXdBeEFBQUFNZ0F4QUFBQU1nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURNQUFBQUFBRFFBQUFBMUFBQUFBQUFBQUFBQUFBQUFBRE1BTXdBMkFBRUFBd0YvQUJVQUFBQUFBQUFBQUFBVkFBQUFKZ0FBQUFBQUd3QVdBQm9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCd0FIUUFBQUFBQUFBQW5BQUFBQVFBQ0FBb0FBZ0FDQUFJQUNnQUNBQUlBQXdBQ0FBSUFCQUFDQUFvQUFnQUtBQUlBRHdBRkFBWUFFQUFMQUJFQUNRQVNBQUFBQUFBb0FBQUFBQUFBQUFjQUFBQWdBQ1VBSUFBZUFCOEFBQUFBQUFBQUFBQUFBQ0lBSWdBZ0FDa0FKUUFpQUNNQURBQWtBQmNBRFFBVEFBNEFGQUFBQUFBQUtnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQkFBRUFBUUFCQUFFQUFRQUtBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQ2dBS0FBb0FDZ0FLQUFBQUNnQUdBQVlBQmdBR0FBa0FBZ0FBQUFjQUJ3QUhBQWNBQndBSEFBY0FJQUFnQUNBQUlBQWdBQUFBQUFBQUFBQUFJUUFpQUNBQUlBQWdBQ0FBSUFBQUFDQUFKQUFrQUNRQUpBQU9BQUFBRGdBQkFBY0FBUUFIQUFFQUJ3QUtBQ0FBQ2dBZ0FBb0FJQUFLQUNBQUFnQWxBQUlBSlFBQ0FDQUFBZ0FnQUFJQUlBQUNBQ0FBQWdBZ0FBb0FId0FLQUI4QUNnQWZBQW9BSHdBQ0FBQUFBZ0FBQUFJQUFBQUNBQUFBQWdBQUFBSUFBQUFDQUFBQUFnQUFBQU1BQUFBQ0FBQUFJZ0FDQUFBQUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQUFJQUlnQUNBQ0lBQWdBaUFDSUFBZ0FpQUFvQUlBQUtBQ0FBQ2dBZ0FBb0FJQUFDQUNJQUFnQWlBQUlBSWdBUEFDTUFEd0FqQUE4QUl3QVBBQ01BQlFBTUFBVUFEQUFGQUF3QUJnQWtBQVlBSkFBR0FDUUFCZ0FrQUFZQUpBQUdBQ1FBQ3dBTkFBa0FEZ0FKQUJJQUZBQVNBQlFBRWdBVUFCNEFBQUFQQUNNQUJRQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQllBRmdBQUFCZ0FBQUFBQUJnQUFBQUFBQUFBQUFBYUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0QUhnQWVBQjRBSGdBQUFBQUFIZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJrQUFBQUFBQUFBS3dBQUFDd0FBQUFBQUFBQUFBQUFBQmtBR1FBQUFBRUFBQUFLQURJQTBBQUJiR0YwYmdBSUFBUUFBQUFBLy84QUN3QUFBQUVBQWdBREFBUUFCUUFHQUFjQUNBQUpBQW9BQzJOaGMyVUFSR1J1YjIwQVNtWnlZV01BVUd4cFoyRUFibXh1ZFcwQWRHNTFiWElBZW05dWRXMEFnSEJ1ZFcwQWhuTnBibVlBakhOMWNITUFrblJ1ZFcwQW1BQUFBQUVBQUFBQUFBRUFGQUFBQUEwQUFnQURBQVFBQlFBR0FBY0FDQUFKQUFvQUN3QU1BQTBBRGdBQUFBRUFBUUFBQUFFQUVBQUFBQUVBRXdBQUFBRUFEd0FBQUFFQUVRQUFBQUVBRmdBQUFBRUFGUUFBQUFFQUVnQVpBRFFBUEFCRUFFd0FWQUJjQUdRQWJBQjBBSHdBaEFDTUFKUUFuQUNrQUt3QXRBQzhBTVFBekFEVUFOd0E1QURzQVBRQUFRQUFBQUVBeUFBRUFBQUFBUURxQUFZQUFBQUJBU0FBQmdBQUFBRUJMQUFHQUFBQUFRRTJBQVlBQUFBQkFVSUFCZ0FBQUFFQlVBQUdBQUFBQVFGZ0FBWUFBQUFCQVhJQUJnQUFBQUVCaGdBR0FBQUFBUUdjQUFZQUFBQUJBYlFBQmdBQUFBRUJ6Z0FHQUFBQUFRSHFBQVlBQUFBQkFmUUFBUUFBQUFFQ0FBQUJBQUFBQVFJeUFBRUFBQUFCQW1RQUFRQUFBQUVDaWdBQkFBQUFBUUt3QUFFQUFBQUJBdjRBQVFBQUFBRURUQUFCQUFBQUFRT2FBQUVBQUFBQkErZ0FBUUFBQUFFRC9nQUNBL3dBRWdGMUFYWUJkQUY3QVhjQmVBRjVBWG9CaEFGOEFZSUJmUUdEQVlBQmdRR0ZBWDRCZndBQkEvb0FBUUFJQUFZQURnQVdBQjRBSkFBcUFEQUJaUUFEQUVjQVNnRm1BQU1BUndCTkFXSUFBZ0JIQVdNQUFnQktBV2tBQWdCTEFXUUFBZ0JOQUFNQUFRUENBQUVEekFBQkE4SUFBUUFBQUJjQUF3QUFBQUVEcmdBQkE3NEFBUUFBQUJjQUF3QUFBQUVEbkFBQ0E3SURyQUFCQUFBQUZ3QURBQUFBQVFPSUFBTURuZ09lQTVnQUFRQUFBQmNBQXdBQUFBRURjZ0FFQTRnRGlBT0lBNElBQVFBQUFCY0FBd0FBQUFFRFdnQUZBM0FEY0FOd0EzQURhZ0FCQUFBQUZ3QURBQUFBQVFOQUFBWURWZ05XQTFZRFZnTldBMUFBQVFBQUFCY0FBd0FBQUFFREpBQUhBem9ET2dNNkF6b0RPZ002QXpRQUFRQUFBQmNBQXdBQUFBRURCZ0FJQXh3REhBTWNBeHdESEFNY0F4d0RGZ0FCQUFBQUZ3QURBQUFBQVFMbUFBa0MvQUw4QXZ3Qy9BTDhBdndDL0FMOEF2WUFBUUFBQUJjQUF3QUFBQUVDeEFBS0F0b0MyZ0xhQXRvQzJnTGFBdG9DMmdMYUF0UUFBUUFBQUJjQUF3QUJBc0FBQVFLZ0FBQUFBUUFBQUJnQUF3QUJBbzRBQVFLK0FBRUNwQUFCQUFBQUZ3QUNBckFBR2dHYUFZWUJod0dJQVlrQmlnR0xBWXdCalFHT0FZOEJtd0djQVowQm5nR2ZBWkFCa1FHU0FaTUJsQUdWQVpZQmx3R1lBWmtBQWdLZUFCb0FFUUFTQUJNQUZBQVZBQllBRndBWUFCa0FHZ0ZxQVdzQmJBRnRBVzRCYndGd0FYRUJjZ0Z6QUFVQVlRQmlBR01CUEFGYUFBSUNiZ0FVQUJFQUVnQVRBQlFBRlFBV0FCY0FHQUFaQUJvQmhnR0hBWWdCaVFHS0FZc0JqQUdOQVk0Qmp3QUNBbEFBRkFGcUFXc0JiQUZ0QVc0QmJ3RndBWEVCY2dGekFaQUJrUUdTQVpNQmxBR1ZBWllCbHdHWUFaa0FBZ0l5QUNnQm9BR2hBYUlCb3dHa0FhVUJwZ0duQWFnQnFRR2dBYUVCb2dHakFhUUJwUUdtQWFjQnFBR3BBYUFCb1FHaUFhTUJwQUdsQWFZQnB3R29BYWtCb0FHaEFhSUJvd0drQWFVQnBnR25BYWdCcVFBQ0Fkd0FLQUc3QWJ3QnZRRytBYjhCd0FIQkFjSUJ3d0hFQWJzQnZBRzlBYjRCdndIQUFjRUJ3Z0hEQWNRQnV3RzhBYjBCdmdHL0FjQUJ3UUhDQWNNQnhBRzdBYndCdlFHK0FiOEJ3QUhCQWNJQnd3SEVBQUlCaGdBb0Fhb0FkUUJ1QUc4QnF3R3NBYTBCcmdHdkFiQUJxZ0IxQUc0QWJ3R3JBYXdCclFHdUFhOEJzQUdxQUhVQWJnQnZBYXNCckFHdEFhNEJyd0d3QWFvQWRRQnVBRzhCcXdHc0FhMEJyZ0d2QWJBQUFnRXdBQ2dCc1FHeUFiTUJ0QUcxQWJZQnR3RzRBYmtCdWdHeEFiSUJzd0cwQWJVQnRnRzNBYmdCdVFHNkFiRUJzZ0d6QWJRQnRRRzJBYmNCdUFHNUFib0JzUUd5QWJNQnRBRzFBYllCdHdHNEFia0J1Z0FDQVBBQURBSEZBVmtCb0FHaEFhSUJvd0drQWFVQnBnR25BYWdCcVFBQkFEUUJxZ0FCQUJJQUNRQUtBQTRBSVFBOEFENEFYQUJlQUdBQWFBQnpBSGNBZXdGS0FVc0JWQUZYQVZnQUFRQUJBRWNBQWdBQkFCRUFHZ0FBQUFFQUFRQVFBQUVBQVFGWkFBSUFBUUdnQWFrQUFBQUNBQUlCV1FGWkFBQUJ1d0hFQUFFQUFRQUJBQUVBQWdBR0FBVUFCUUFBQUJFQUdnQUJBR0VBWXdBTEFUd0JQQUFPQVZvQldnQVBBV29CY3dBUUFBSUFBUUdHQVo4QUFBQUNBQUlCYWdGekFBQUJrQUdaQUFvQUFnQUNBQkVBR2dBQUFZWUJqd0FLQUFJQUF3QVJBQm9BQUFGcUFYTUFDZ0dHQVprQUZBQUNBQUlBQVFBQkFBQUFFQUFhQUFFQi9nQUZBUTBBQUFFekFIUUJQZ0JGQXRRQUx3SXRBRDBDMmdBNEFxSUFQQURGQUVVQklnQlFBU0VBSWdIWEFDc0NzQUJUQVBRQUpBSHNBR2dBOXdCVUFZZ0FLUUp4QUVZQjBnQTRBalVBUEFJeUFDMENWUUFpQWk0QU5nSlRBRUVDQ0FBbUFsb0FRQUpTQURjQkpRQnJBU1VBUGdJM0FESUNyQUJ0QWpjQVFRSGhBQ2dESlFCQkFtZ0FEUUp5QUdZQzJBQTNBdVFBWmdJN0FHWUNBZ0JtQXZZQU53THVBR1lCRVFCbUFnd0FJd0paQUdZQ0JnQm1BMVlBVUFMeEFHWURPQUEyQWxZQVpnTkRBRFlDZEFCbUFob0FNZ0pNQUFjQzFBQmRBbW9BREFPZkFDY0NVQUFhQWo0QUR3SlRBQ3NCR2dCckFZa0FJZ0VhQUNnQ1hnQkpBa2dBSWdINEFMSUNDQUFwQWswQVVnSWxBQzhDVFFBeEFpa0FMd0ZBQUNvQ1JnQXhBbEVBVWdEb0FGQUE2UC9KQWZZQVVnRDNBRTBEbEFCU0FsRUFVZ0p1QUMwQ1RRQlNBazBBTVFGa0FGSUJ1d0FwQVU4QUl3Sk1BRXNCNVFBTkF5RUFFUUhyQUJrQjh3QUhBZjBBS2dGUUFEVUJFd0JxQVZBQUlnSmFBRW9CRWdCaUFqd0FQQUpOQURzQ1dRQWlBWndBTndINEFKSURQd0E4QWFzQVVRSUxBRElDYndCSkF6OEFQQUg0QUlFQmZRQXlBckFBVXdGK0FESUJmZ0FyQWZnQXNnSmhBRmtDUFFBeEFROEFZUUg0QUxNQmZnQkpBZG9BUlFJTUFEZ0RzQUErQTY0QVBnUEFBQzhCdUFBdEFtZ0FEUUpvQUEwQ2FBQU5BbWdBRFFKb0FBMENhQUFOQTFVQUNnTFpBRGdDT3dCbUFqc0FaZ0k3QUdZQ093Qm1BUkVBRlFFUkFHWUJFUUFRQVJFQUh3THlBRG9DOFFCbUF6Z0FOZ000QURZRE9BQTJBemdBTmdNNEFEWUNqd0JJQXpzQU9BTFVBRjBDMUFCZEF0UUFYUUxVQUYwQ1BnQVBBbGNBWmdJOUFGSUNDQUFwQWdnQUtRSUlBQ2tDQ0FBcEFnZ0FLUUlJQUNrRFpnQXBBaVlBTUFJcEFDOENLUUF2QWlrQUx3SXBBQzhBNkFBQUFPZ0FVZ0RvLy93QTZBQUxBa3dBTVFKUkFGSUNiZ0F0QW00QUxRSnVBQzBDYmdBdEFtNEFMUUtHQUU0Q2NBQXVBa3dBU3dKTUFFc0NUQUJMQWt3QVN3SHpBQWNDVFFCU0FmTUFCd0pvQUEwQ0NBQXBBbWdBRFFJSUFDa0NhQUFOQWdnQUtRTFlBRGNDSlFBdkF0Z0FOd0lsQUM4QzJBQTNBaVVBTHdMWUFEY0NKUUF2QXVRQVpnSnJBREVDOGdBNkFrMEFNUUk3QUdZQ0tRQXZBanNBWmdJcEFDOENPd0JtQWlrQUx3STdBR1lDS2dBdkFqc0FaZ0lwQUM4QzlnQTNBa1lBTVFMMkFEY0NSZ0F4QXZZQU53SkdBREVDOWdBM0FrWUFNUUx1QUdZQ1VmLzhBeG9BT3dKUkFBWUJFZi90QU9qLzJRRVJBQTRBNlAvNkFSRUFGZ0RvQUFFQkVRQXJBT2dBRmdFUkFHWUE2QUJTQWtZQVpnSFFBRkFDREFBakFPai95UUpaQUdZQjlnQlNBZmdBVWdJR0FHWUE5d0JOQWdZQVpnRDNBRTBDQmdCbUFSVUFUUUlHQUdZQkt3Qk5BaUFBUVFFMEFDUUM4UUJtQWxFQVVnTHhBR1lDVVFCU0F2RUFaZ0pSQUZJQ1VRQUxBdkVBWmdKUkFGSURPQUEyQW00QUxRTTRBRFlDYmdBdEF6Z0FOZ0p1QUMwRHVRQTNBL1VBTGdKMEFHWUJaQUJTQW5RQVpnRmtBRXdDZEFCbUFXUUFVZ0lhQURJQnV3QXBBaG9BTWdHN0FDa0NHZ0F5QWJzQUtRSWFBRElCdXdBcEFrd0FCd0ZRQUNRQ1RBQUhBVThBSXdKakFCSUJhQUF0QXRRQVhRSk1BRXNDMUFCZEFrd0FTd0xVQUYwQ1RBQkxBdFFBWFFKTUFFc0MxQUJkQWt3QVN3TFVBRjBDVEFCTEE1OEFKd01oQUJFQ1BnQVBBZk1BQndJK0FBOENVd0FyQWYwQUtnSlRBQ3NCL1FBcUFsTUFLd0g5QUNvQS93QXFBamNBSWdJYUFESUJ1d0FwQWt3QUJ3RlBBQ01CK0FDREFmZ0Fnd0g1QUlrQitRRGNBZmtBc1FINEFMTUIrQUJnQWZnQWNBS21BRjRDeEFCb0E0d0FhQURYQURnQTBRQTVBTzRBTXdGUEFEZ0JTUUE1QVdRQU13R0xBQzBCc1FCQUFaRUFPZ0xMQUZRRUp3QTRBVmNBTWdGWUFEZ0FuditLQWs0QUtRT2tBQnNDWGdBeUFmTUFUUUplQURvQ1hnQkdBbDRBUlFKZUFGVUNnQUFxQWlnQUtnSTNBQ29EYUFBcUEzY0FLZ0ZQQUg4RWFnQXFBaWdBS2dJMUFDa0NOUUJuQWpVQVJRSTFBRFFDTlFBWUFqVUFPZ0kxQURBQ05RQS9BalVBTHdJMUFDd0NFQUI2QVVjQVlnRkhBRFVCUGdCK0FUNEFPUUYzQUVnQmR3QTJBelVBVUFJd0FFVUNNUUJLQVh3QVJRRjlBRW9DNkFCNkE3QUFlZ0UxQUhRQjlnQk5BVllBaEFHM0FFMENTZ0E2QWNzQUx3SVBBRE1CL2dBU0FrWUFIZ0lOQUNJQ1J3QkNBZmdBSUFKRUFEb0NSd0F0QWpVQU1BSTFBRzBDTlFCTkFqVUFOd0kxQUI4Q05RQTlBalVBTHdJMUFENENOUUEwQWpVQUxnSUpBRFlDT1FBN0FtZ0FQUUpiQURjQ09RQWlBbTBBUFFGK0FDY0JmZ0JKQVg0QU1nRitBQ3NCZmdBWUFYNEFMZ0YrQUN3QmZnQXZBWDRBS0FGK0FDWUJmZ0FuQVg0QUdBRitBQzRCZmdBc0FYNEFMd0YrQUNnQmZnQW1BWDRBSndGK0FFa0JmZ0F5QVg0QUt3RitBQmdCZmdBdUFYNEFMQUYrQUM4QmZnQW9BWDRBSmdGK0FDY0JmZ0JKQVg0QU1nRitBQ3NCZmdBWUFYNEFMZ0YrQUN3QmZnQXZBWDRBS0FGK0FDWUFEQUFBQWJBQVNnRU5BQUE9IiwgImVuY29kaW5nIjogImJhc2U2NCJ9LCAiaGVhZGVyc1NpemUiOiAzMTcsICJib2R5U2l6ZSI6IDYyOTk2LCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiA2MzMxM30sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDg0My45MDIsICJyZWNlaXZlIjogMTU4LjMwOX0sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIjE4LjE3Mi41Mi40OSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiQ049Ki50cnVzdGFyYy5jb20iLCAidmFsaWRGcm9tIjogMTcxMDU0NzIwMCwgInZhbGlkVG8iOiAxNzQ0Njc1MTk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMDU6NTQ6MTAuMjk5WiIsICJ0aW1lIjogNzI0LjI5NTk5OTk5OTk5OTksICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2lhYi92Mj9kb21haW49Z29kYWRkeV9wYXJraW5nX2lhYi5jb20mbG9jYWxlPWVuJmlhYjIyPXRydWUiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiT3JpZ2luIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mciJ9LCB7Im5hbWUiOiAiQWNjZXB0IiwgInZhbHVlIjogIiovKiJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwOi8vYmFwc21hbmRpcmRlcGFyaXMuZnIvIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTdfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTcuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJBY2NlcHQtTGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImVtcHR5In0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJjb3JzIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtU2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImNvbnNlbnQudHJ1c3RhcmMuY29tIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImRvbWFpbiIsICJ2YWx1ZSI6ICJnb2RhZGR5X3BhcmtpbmdfaWFiLmNvbSJ9LCB7Im5hbWUiOiAibG9jYWxlIiwgInZhbHVlIjogImVuIn0sIHsibmFtZSI6ICJpYWIyMiIsICJ2YWx1ZSI6ICJ0cnVlIn1dLCAiaGVhZGVyc1NpemUiOiA0MjEsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtOCJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MTAgR01UIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9NjA0ODAwIn0sIHsibmFtZSI6ICJWaWEiLCAidmFsdWUiOiAiMS4xIDUxOWUyYmZlZjRjNjY1YmNmMmQ2YmMzYTM3NGM1ZjgyLmNsb3VkZnJvbnQubmV0IChDbG91ZEZyb250KSJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiTWlzcyBmcm9tIGNsb3VkZnJvbnQifSwgeyJuYW1lIjogIngtYW16LWNmLXBvcCIsICJ2YWx1ZSI6ICJOUlQyMC1QMiJ9LCB7Im5hbWUiOiAieC1hbXotY2YtaWQiLCAidmFsdWUiOiAidm1VUjVFdkExSE92ZnhCeXRsTWFFWnZiT1BJa2NSUHQ2bU1zUGxWSGpzSlVsdzA4bUpsVzdBPT0ifSwgeyJuYW1lIjogInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCAidmFsdWUiOiAibWF4LWFnZT0zMTUzNjAwMDsgaW5jbHVkZVN1YkRvbWFpbnMifV0sICJjb250ZW50IjogeyJzaXplIjogMjUyNTYsICJtaW1lVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTgiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICJ7XCJ2ZW5kb3JMaXN0VmVyc2lvblwiOjU2LFwiZ3ZsU3BlY2lmaWNhdGlvblZlcnNpb25cIjozLFwidGNmUG9saWN5VmVyc2lvblwiOjQsXCJtYXhWZW5kb3JJZFwiOlwiMTMxNFwiLFwibGFzdFVwZGF0ZWRcIjpcIjIwMjQtMDYtMDZUMTY6MDc6MzVaXCIsXCJmZWF0dXJlc1wiOntcIjFcIjp7XCJpZFwiOjEsXCJuYW1lXCI6XCJNYXRjaCBhbmQgY29tYmluZSBkYXRhIGZyb20gb3RoZXIgZGF0YSBzb3VyY2VzXCIsXCJkZXNjcmlwdGlvblwiOlwiSW5mb3JtYXRpb24gYWJvdXQgeW91ciBhY3Rpdml0eSBvbiB0aGlzIHNlcnZpY2UgbWF5IGJlIG1hdGNoZWQgYW5kIGNvbWJpbmVkIHdpdGggb3RoZXIgaW5mb3JtYXRpb24gcmVsYXRpbmcgdG8geW91IGFuZCBvcmlnaW5hdGluZyBmcm9tIHZhcmlvdXMgc291cmNlcyAoZm9yIGluc3RhbmNlIHlvdXIgYWN0aXZpdHkgb24gYSBzZXBhcmF0ZSBvbmxpbmUgc2VydmljZSwgeW91ciB1c2Ugb2YgYSBsb3lhbHR5IGNhcmQgaW4tc3RvcmUsIG9yIHlvdXIgYW5zd2VycyB0byBhIHN1cnZleSksIGluIHN1cHBvcnQgb2YgdGhlIHB1cnBvc2VzIGV4cGxhaW5lZCBpbiB0aGlzIG5vdGljZS5cIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltdfSxcIjJcIjp7XCJpZFwiOjIsXCJuYW1lXCI6XCJMaW5rIGRpZmZlcmVudCBkZXZpY2VzXCIsXCJkZXNjcmlwdGlvblwiOlwiSW4gc3VwcG9ydCBvZiB0aGUgcHVycG9zZXMgZXhwbGFpbmVkIGluIHRoaXMgbm90aWNlLCB5b3VyIGRldmljZSBtaWdodCBiZSBjb25zaWRlcmVkIGFzIGxpa2VseSBsaW5rZWQgdG8gb3RoZXIgZGV2aWNlcyB0aGF0IGJlbG9uZyB0byB5b3Ugb3IgeW91ciBob3VzZWhvbGQgKGZvciBpbnN0YW5jZSBiZWNhdXNlIHlvdSBhcmUgbG9nZ2VkIGluIHRvIHRoZSBzYW1lIHNlcnZpY2Ugb24gYm90aCB5b3VyIHBob25lIGFuZCB5b3VyIGNvbXB1dGVyLCBvciBiZWNhdXNlIHlvdSBtYXkgdXNlIHRoZSBzYW1lIEludGVybmV0IGNvbm5lY3Rpb24gb24gYm90aCBkZXZpY2VzKS5cIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltdfSxcIjNcIjp7XCJpZFwiOjMsXCJuYW1lXCI6XCJJZGVudGlmeSBkZXZpY2VzIGJhc2VkIG9uIGluZm9ybWF0aW9uIHRyYW5zbWl0dGVkIGF1dG9tYXRpY2FsbHlcIixcImRlc2NyaXB0aW9uXCI6XCJZb3VyIGRldmljZSBtaWdodCBiZSBkaXN0aW5ndWlzaGVkIGZyb20gb3RoZXIgZGV2aWNlcyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBpdCBhdXRvbWF0aWNhbGx5IHNlbmRzIHdoZW4gYWNjZXNzaW5nIHRoZSBJbnRlcm5ldCAoZm9yIGluc3RhbmNlLCB0aGUgSVAgYWRkcmVzcyBvZiB5b3VyIEludGVybmV0IGNvbm5lY3Rpb24gb3IgdGhlIHR5cGUgb2YgYnJvd3NlciB5b3UgYXJlIHVzaW5nKSBpbiBzdXBwb3J0IG9mIHRoZSBwdXJwb3NlcyBleHBvc2VkIGluIHRoaXMgbm90aWNlLlwiLFwiZGVzY3JpcHRpb25MZWdhbFwiOm51bGwsXCJpbGx1c3RyYXRpb25zXCI6W119fSxcInB1cnBvc2VzXCI6e1wiMVwiOntcImlkXCI6MSxcIm5hbWVcIjpcIlN0b3JlIGFuZC9vciBhY2Nlc3MgaW5mb3JtYXRpb24gb24gYSBkZXZpY2VcIixcImRlc2NyaXB0aW9uXCI6XCJDb29raWVzLCBkZXZpY2Ugb3Igc2ltaWxhciBvbmxpbmUgaWRlbnRpZmllcnMgKGUuZy4gbG9naW4tYmFzZWQgaWRlbnRpZmllcnMsIHJhbmRvbWx5IGFzc2lnbmVkIGlkZW50aWZpZXJzLCBuZXR3b3JrIGJhc2VkIGlkZW50aWZpZXJzKSB0b2dldGhlciB3aXRoIG90aGVyIGluZm9ybWF0aW9uIChlLmcuIGJyb3dzZXIgdHlwZSBhbmQgaW5mb3JtYXRpb24sIGxhbmd1YWdlLCBzY3JlZW4gc2l6ZSwgc3VwcG9ydGVkIHRlY2hub2xvZ2llcyBldGMuKSBjYW4gYmUgc3RvcmVkIG9yIHJlYWQgb24geW91ciBkZXZpY2UgdG8gcmVjb2duaXNlIGl0IGVhY2ggdGltZSBpdCBjb25uZWN0cyB0byBhbiBhcHAgb3IgdG8gYSB3ZWJzaXRlLCBmb3Igb25lIG9yIHNldmVyYWwgb2YgdGhlIHB1cnBvc2VzIHByZXNlbnRlZCBoZXJlLlwiLFwiZGVzY3JpcHRpb25MZWdhbFwiOm51bGwsXCJpbGx1c3RyYXRpb25zXCI6W1wiTW9zdCBwdXJwb3NlcyBleHBsYWluZWQgaW4gdGhpcyBub3RpY2UgcmVseSBvbiB0aGUgc3RvcmFnZSBvciBhY2Nlc3Npbmcgb2YgaW5mb3JtYXRpb24gZnJvbSB5b3VyIGRldmljZSB3aGVuIHlvdSB1c2UgYW4gYXBwIG9yIHZpc2l0IGEgd2Vic2l0ZS4gRm9yIGV4YW1wbGUsIGEgdmVuZG9yIG9yIHB1Ymxpc2hlciBtaWdodCBuZWVkIHRvIHN0b3JlIGEgY29va2llIG9uIHlvdXIgZGV2aWNlIGR1cmluZyB5b3VyIGZpcnN0IHZpc2l0IG9uIGEgd2Vic2l0ZSwgdG8gYmUgYWJsZSB0byByZWNvZ25pc2UgeW91ciBkZXZpY2UgZHVyaW5nIHlvdXIgbmV4dCB2aXNpdHMgKGJ5IGFjY2Vzc2luZyB0aGlzIGNvb2tpZSBlYWNoIHRpbWUpLlwiXX0sXCIyXCI6e1wiaWRcIjoyLFwibmFtZVwiOlwiVXNlIGxpbWl0ZWQgZGF0YSB0byBzZWxlY3QgYWR2ZXJ0aXNpbmdcIixcImRlc2NyaXB0aW9uXCI6XCJBZHZlcnRpc2luZyBwcmVzZW50ZWQgdG8geW91IG9uIHRoaXMgc2VydmljZSBjYW4gYmUgYmFzZWQgb24gbGltaXRlZCBkYXRhLCBzdWNoIGFzIHRoZSB3ZWJzaXRlIG9yIGFwcCB5b3UgYXJlIHVzaW5nLCB5b3VyIG5vbi1wcmVjaXNlIGxvY2F0aW9uLCB5b3VyIGRldmljZSB0eXBlIG9yIHdoaWNoIGNvbnRlbnQgeW91IGFyZSAob3IgaGF2ZSBiZWVuKSBpbnRlcmFjdGluZyB3aXRoIChmb3IgZXhhbXBsZSwgdG8gbGltaXQgdGhlIG51bWJlciBvZiB0aW1lcyBhbiBhZCBpcyBwcmVzZW50ZWQgdG8geW91KS5cIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltcIkEgY2FyIG1hbnVmYWN0dXJlciB3YW50cyB0byBwcm9tb3RlIGl0cyBlbGVjdHJpYyB2ZWhpY2xlcyB0byBlbnZpcm9ubWVudGFsbHkgY29uc2Npb3VzIHVzZXJzIGxpdmluZyBpbiB0aGUgY2l0eSBhZnRlciBvZmZpY2UgaG91cnMuIFRoZSBhZHZlcnRpc2luZyBpcyBwcmVzZW50ZWQgb24gYSBwYWdlIHdpdGggcmVsYXRlZCBjb250ZW50IChzdWNoIGFzIGFuIGFydGljbGUgb24gY2xpbWF0ZSBjaGFuZ2UgYWN0aW9ucykgYWZ0ZXIgNjozMCBwLm0uIHRvIHVzZXJzIHdob3NlIG5vbi1wcmVjaXNlIGxvY2F0aW9uIHN1Z2dlc3RzIHRoYXQgdGhleSBhcmUgaW4gYW4gdXJiYW4gem9uZS5cIixcIkEgbGFyZ2UgcHJvZHVjZXIgb2Ygd2F0ZXJjb2xvdXIgcGFpbnRzIHdhbnRzIHRvIGNhcnJ5IG91dCBhbiBvbmxpbmUgYWR2ZXJ0aXNpbmcgY2FtcGFpZ24gZm9yIGl0cyBsYXRlc3Qgd2F0ZXJjb2xvdXIgcmFuZ2UsIGRpdmVyc2lmeWluZyBpdHMgYXVkaWVuY2UgdG8gcmVhY2ggYXMgbWFueSBhbWF0ZXVyIGFuZCBwcm9mZXNzaW9uYWwgYXJ0aXN0cyBhcyBwb3NzaWJsZSBhbmQgYXZvaWRpbmcgc2hvd2luZyB0aGUgYWQgbmV4dCB0byBtaXNtYXRjaGVkIGNvbnRlbnQgKGZvciBpbnN0YW5jZSwgYXJ0aWNsZXMgYWJvdXQgaG93IHRvIHBhaW50IHlvdXIgaG91c2UpLiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgdGhlIGFkIGhhcyBiZWVuIHByZXNlbnRlZCB0byB5b3UgaXMgZGV0ZWN0ZWQgYW5kIGxpbWl0ZWQsIHRvIGF2b2lkIHByZXNlbnRpbmcgaXQgdG9vIG9mdGVuLlwiXX0sXCIzXCI6e1wiaWRcIjozLFwibmFtZVwiOlwiQ3JlYXRlIHByb2ZpbGVzIGZvciBwZXJzb25hbGlzZWQgYWR2ZXJ0aXNpbmdcIixcImRlc2NyaXB0aW9uXCI6XCJJbmZvcm1hdGlvbiBhYm91dCB5b3VyIGFjdGl2aXR5IG9uIHRoaXMgc2VydmljZSAoc3VjaCBhcyBmb3JtcyB5b3Ugc3VibWl0LCBjb250ZW50IHlvdSBsb29rIGF0KSBjYW4gYmUgc3RvcmVkIGFuZCBjb21iaW5lZCB3aXRoIG90aGVyIGluZm9ybWF0aW9uIGFib3V0IHlvdSAoZm9yIGV4YW1wbGUsIGluZm9ybWF0aW9uIGZyb20geW91ciBwcmV2aW91cyBhY3Rpdml0eSBvbiB0aGlzIHNlcnZpY2UgYW5kIG90aGVyIHdlYnNpdGVzIG9yIGFwcHMpIG9yIHNpbWlsYXIgdXNlcnMuIFRoaXMgaXMgdGhlbiB1c2VkIHRvIGJ1aWxkIG9yIGltcHJvdmUgYSBwcm9maWxlIGFib3V0IHlvdSAodGhhdCBtaWdodCBpbmNsdWRlIHBvc3NpYmxlIGludGVyZXN0cyBhbmQgcGVyc29uYWwgYXNwZWN0cykuIFlvdXIgcHJvZmlsZSBjYW4gYmUgdXNlZCAoYWxzbyBsYXRlcikgdG8gcHJlc2VudCBhZHZlcnRpc2luZyB0aGF0IGFwcGVhcnMgbW9yZSByZWxldmFudCBiYXNlZCBvbiB5b3VyIHBvc3NpYmxlIGludGVyZXN0cyBieSB0aGlzIGFuZCBvdGhlciBlbnRpdGllcy5cIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltcIklmIHlvdSByZWFkIHNldmVyYWwgYXJ0aWNsZXMgYWJvdXQgdGhlIGJlc3QgYmlrZSBhY2Nlc3NvcmllcyB0byBidXksIHRoaXMgaW5mb3JtYXRpb24gY291bGQgYmUgdXNlZCB0byBjcmVhdGUgYSBwcm9maWxlIGFib3V0IHlvdXIgaW50ZXJlc3QgaW4gYmlrZSBhY2Nlc3Nvcmllcy4gU3VjaCBhIHByb2ZpbGUgbWF5IGJlIHVzZWQgb3IgaW1wcm92ZWQgbGF0ZXIgb24sIG9uIHRoZSBzYW1lIG9yIGEgZGlmZmVyZW50IHdlYnNpdGUgb3IgYXBwIHRvIHByZXNlbnQgeW91IHdpdGggYWR2ZXJ0aXNpbmcgZm9yIGEgcGFydGljdWxhciBiaWtlIGFjY2Vzc29yeSBicmFuZC4gSWYgeW91IGFsc28gbG9vayBhdCBhIGNvbmZpZ3VyYXRvciBmb3IgYSB2ZWhpY2xlIG9uIGEgbHV4dXJ5IGNhciBtYW51ZmFjdHVyZXIgd2Vic2l0ZSwgdGhpcyBpbmZvcm1hdGlvbiBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHlvdXIgaW50ZXJlc3QgaW4gYmlrZXMgdG8gcmVmaW5lIHlvdXIgcHJvZmlsZSBhbmQgbWFrZSBhbiBhc3N1bXB0aW9uIHRoYXQgeW91IGFyZSBpbnRlcmVzdGVkIGluIGx1eHVyeSBjeWNsaW5nIGdlYXIuXCIsXCJBbiBhcHBhcmVsIGNvbXBhbnkgd2lzaGVzIHRvIHByb21vdGUgaXRzIG5ldyBsaW5lIG9mIGhpZ2gtZW5kIGJhYnkgY2xvdGhlcy4gSXQgZ2V0cyBpbiB0b3VjaCB3aXRoIGFuIGFnZW5jeSB0aGF0IGhhcyBhIG5ldHdvcmsgb2YgY2xpZW50cyB3aXRoIGhpZ2ggaW5jb21lIGN1c3RvbWVycyAoc3VjaCBhcyBoaWdoLWVuZCBzdXBlcm1hcmtldHMpIGFuZCBhc2tzIHRoZSBhZ2VuY3kgdG8gY3JlYXRlIHByb2ZpbGVzIG9mIHlvdW5nIHBhcmVudHMgb3IgY291cGxlcyB3aG8gY2FuIGJlIGFzc3VtZWQgdG8gYmUgd2VhbHRoeSBhbmQgdG8gaGF2ZSBhIG5ldyBjaGlsZCwgc28gdGhhdCB0aGVzZSBjYW4gbGF0ZXIgYmUgdXNlZCB0byBwcmVzZW50IGFkdmVydGlzaW5nIHdpdGhpbiBwYXJ0bmVyIGFwcHMgYmFzZWQgb24gdGhvc2UgcHJvZmlsZXMuXCJdfSxcIjRcIjp7XCJpZFwiOjQsXCJuYW1lXCI6XCJVc2UgcHJvZmlsZXMgdG8gc2VsZWN0IHBlcnNvbmFsaXNlZCBhZHZlcnRpc2luZ1wiLFwiZGVzY3JpcHRpb25cIjpcIkFkdmVydGlzaW5nIHByZXNlbnRlZCB0byB5b3Ugb24gdGhpcyBzZXJ2aWNlIGNhbiBiZSBiYXNlZCBvbiB5b3VyIGFkdmVydGlzaW5nIHByb2ZpbGVzLCB3aGljaCBjYW4gcmVmbGVjdCB5b3VyIGFjdGl2aXR5IG9uIHRoaXMgc2VydmljZSBvciBvdGhlciB3ZWJzaXRlcyBvciBhcHBzIChsaWtlIHRoZSBmb3JtcyB5b3Ugc3VibWl0LCBjb250ZW50IHlvdSBsb29rIGF0KSwgcG9zc2libGUgaW50ZXJlc3RzIGFuZCBwZXJzb25hbCBhc3BlY3RzLlwiLFwiZGVzY3JpcHRpb25MZWdhbFwiOm51bGwsXCJpbGx1c3RyYXRpb25zXCI6W1wiQW4gb25saW5lIHJldGFpbGVyIHdhbnRzIHRvIGFkdmVydGlzZSBhIGxpbWl0ZWQgc2FsZSBvbiBydW5uaW5nIHNob2VzLiBJdCB3YW50cyB0byB0YXJnZXQgYWR2ZXJ0aXNpbmcgdG8gdXNlcnMgd2hvIHByZXZpb3VzbHkgbG9va2VkIGF0IHJ1bm5pbmcgc2hvZXMgb24gaXRzIG1vYmlsZSBhcHAuIFRyYWNraW5nIHRlY2hub2xvZ2llcyBtaWdodCBiZSB1c2VkIHRvIHJlY29nbmlzZSB0aGF0IHlvdSBoYXZlIHByZXZpb3VzbHkgdXNlZCB0aGUgbW9iaWxlIGFwcCB0byBjb25zdWx0IHJ1bm5pbmcgc2hvZXMsIGluIG9yZGVyIHRvIHByZXNlbnQgeW91IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgYXBwLlwiLFwiQSBwcm9maWxlIGNyZWF0ZWQgZm9yIHBlcnNvbmFsaXNlZCBhZHZlcnRpc2luZyBpbiByZWxhdGlvbiB0byBhIHBlcnNvbiBoYXZpbmcgc2VhcmNoZWQgZm9yIGJpa2UgYWNjZXNzb3JpZXMgb24gYSB3ZWJzaXRlIGNhbiBiZSB1c2VkIHRvIHByZXNlbnQgdGhlIHJlbGV2YW50IGFkdmVydGlzZW1lbnQgZm9yIGJpa2UgYWNjZXNzb3JpZXMgb24gYSBtb2JpbGUgYXBwIG9mIGFub3RoZXIgb3JnYW5pc2F0aW9uLlwiXX0sXCI1XCI6e1wiaWRcIjo1LFwibmFtZVwiOlwiQ3JlYXRlIHByb2ZpbGVzIHRvIHBlcnNvbmFsaXNlIGNvbnRlbnRcIixcImRlc2NyaXB0aW9uXCI6XCJJbmZvcm1hdGlvbiBhYm91dCB5b3VyIGFjdGl2aXR5IG9uIHRoaXMgc2VydmljZSAoZm9yIGluc3RhbmNlLCBmb3JtcyB5b3Ugc3VibWl0LCBub24tYWR2ZXJ0aXNpbmcgY29udGVudCB5b3UgbG9vayBhdCkgY2FuIGJlIHN0b3JlZCBhbmQgY29tYmluZWQgd2l0aCBvdGhlciBpbmZvcm1hdGlvbiBhYm91dCB5b3UgKHN1Y2ggYXMgeW91ciBwcmV2aW91cyBhY3Rpdml0eSBvbiB0aGlzIHNlcnZpY2Ugb3Igb3RoZXIgd2Vic2l0ZXMgb3IgYXBwcykgb3Igc2ltaWxhciB1c2Vycy4gVGhpcyBpcyB0aGVuIHVzZWQgdG8gYnVpbGQgb3IgaW1wcm92ZSBhIHByb2ZpbGUgYWJvdXQgeW91ICh3aGljaCBtaWdodCBmb3IgZXhhbXBsZSBpbmNsdWRlIHBvc3NpYmxlIGludGVyZXN0cyBhbmQgcGVyc29uYWwgYXNwZWN0cykuIFlvdXIgcHJvZmlsZSBjYW4gYmUgdXNlZCAoYWxzbyBsYXRlcikgdG8gcHJlc2VudCBjb250ZW50IHRoYXQgYXBwZWFycyBtb3JlIHJlbGV2YW50IGJhc2VkIG9uIHlvdXIgcG9zc2libGUgaW50ZXJlc3RzLCBzdWNoIGFzIGJ5IGFkYXB0aW5nIHRoZSBvcmRlciBpbiB3aGljaCBjb250ZW50IGlzIHNob3duIHRvIHlvdSwgc28gdGhhdCBpdCBpcyBldmVuIGVhc2llciBmb3IgeW91IHRvIGZpbmQgY29udGVudCB0aGF0IG1hdGNoZXMgeW91ciBpbnRlcmVzdHMuXCIsXCJkZXNjcmlwdGlvbkxlZ2FsXCI6bnVsbCxcImlsbHVzdHJhdGlvbnNcIjpbXCJZb3UgcmVhZCBzZXZlcmFsIGFydGljbGVzIG9uIGhvdyB0byBidWlsZCBhIHRyZWVob3VzZSBvbiBhIHNvY2lhbCBtZWRpYSBwbGF0Zm9ybS4gVGhpcyBpbmZvcm1hdGlvbiBtaWdodCBiZSBhZGRlZCB0byBhIHByb2ZpbGUgdG8gbWFyayB5b3VyIGludGVyZXN0IGluIGNvbnRlbnQgcmVsYXRlZCB0byBvdXRkb29ycyBhcyB3ZWxsIGFzIGRvLWl0LXlvdXJzZWxmIGd1aWRlcyAod2l0aCB0aGUgb2JqZWN0aXZlIG9mIGFsbG93aW5nIHRoZSBwZXJzb25hbGlzYXRpb24gb2YgY29udGVudCwgc28gdGhhdCBmb3IgZXhhbXBsZSB5b3UgYXJlIHByZXNlbnRlZCB3aXRoIG1vcmUgYmxvZyBwb3N0cyBhbmQgYXJ0aWNsZXMgb24gdHJlZWhvdXNlcyBhbmQgd29vZCBjYWJpbnMgaW4gdGhlIGZ1dHVyZSkuXCIsXCJZb3UgaGF2ZSB2aWV3ZWQgdGhyZWUgdmlkZW9zIG9uIHNwYWNlIGV4cGxvcmF0aW9uIGFjcm9zcyBkaWZmZXJlbnQgVFYgYXBwcy4gQW4gdW5yZWxhdGVkIG5ld3MgcGxhdGZvcm0gd2l0aCB3aGljaCB5b3UgaGF2ZSBoYWQgbm8gY29udGFjdCBidWlsZHMgYSBwcm9maWxlIGJhc2VkIG9uIHRoYXQgdmlld2luZyBiZWhhdmlvdXIsIG1hcmtpbmcgc3BhY2UgZXhwbG9yYXRpb24gYXMgYSB0b3BpYyBvZiBwb3NzaWJsZSBpbnRlcmVzdCBmb3Igb3RoZXIgdmlkZW9zLlwiXX0sXCI2XCI6e1wiaWRcIjo2LFwibmFtZVwiOlwiVXNlIHByb2ZpbGVzIHRvIHNlbGVjdCBwZXJzb25hbGlzZWQgY29udGVudFwiLFwiZGVzY3JpcHRpb25cIjpcIkNvbnRlbnQgcHJlc2VudGVkIHRvIHlvdSBvbiB0aGlzIHNlcnZpY2UgY2FuIGJlIGJhc2VkIG9uIHlvdXIgY29udGVudCBwZXJzb25hbGlzYXRpb24gcHJvZmlsZXMsIHdoaWNoIGNhbiByZWZsZWN0IHlvdXIgYWN0aXZpdHkgb24gdGhpcyBvciBvdGhlciBzZXJ2aWNlcyAoZm9yIGluc3RhbmNlLCB0aGUgZm9ybXMgeW91IHN1Ym1pdCwgY29udGVudCB5b3UgbG9vayBhdCksIHBvc3NpYmxlIGludGVyZXN0cyBhbmQgcGVyc29uYWwgYXNwZWN0cy4gVGhpcyBjYW4gZm9yIGV4YW1wbGUgYmUgdXNlZCB0byBhZGFwdCB0aGUgb3JkZXIgaW4gd2hpY2ggY29udGVudCBpcyBzaG93biB0byB5b3UsIHNvIHRoYXQgaXQgaXMgZXZlbiBlYXNpZXIgZm9yIHlvdSB0byBmaW5kIChub24tYWR2ZXJ0aXNpbmcpIGNvbnRlbnQgdGhhdCBtYXRjaGVzIHlvdXIgaW50ZXJlc3RzLlwiLFwiZGVzY3JpcHRpb25MZWdhbFwiOm51bGwsXCJpbGx1c3RyYXRpb25zXCI6W1wiWW91IHJlYWQgYXJ0aWNsZXMgb24gdmVnZXRhcmlhbiBmb29kIG9uIGEgc29jaWFsIG1lZGlhIHBsYXRmb3JtIGFuZCB0aGVuIHVzZSB0aGUgY29va2luZyBhcHAgb2YgYW4gdW5yZWxhdGVkIGNvbXBhbnkuIFRoZSBwcm9maWxlIGJ1aWx0IGFib3V0IHlvdSBvbiB0aGUgc29jaWFsIG1lZGlhIHBsYXRmb3JtIHdpbGwgYmUgdXNlZCB0byBwcmVzZW50IHlvdSB2ZWdldGFyaWFuIHJlY2lwZXMgb24gdGhlIHdlbGNvbWUgc2NyZWVuIG9mIHRoZSBjb29raW5nIGFwcC5cIixcIllvdSBoYXZlIHZpZXdlZCB0aHJlZSB2aWRlb3MgYWJvdXQgcm93aW5nIGFjcm9zcyBkaWZmZXJlbnQgd2Vic2l0ZXMuIEFuIHVucmVsYXRlZCB2aWRlbyBzaGFyaW5nIHBsYXRmb3JtIHdpbGwgcmVjb21tZW5kIGZpdmUgb3RoZXIgdmlkZW9zIG9uIHJvd2luZyB0aGF0IG1heSBiZSBvZiBpbnRlcmVzdCB0byB5b3Ugd2hlbiB5b3UgdXNlIHlvdXIgVFYgYXBwLCBiYXNlZCBvbiBhIHByb2ZpbGUgYnVpbHQgYWJvdXQgeW91IHdoZW4geW91IHZpc2l0ZWQgdGhvc2UgZGlmZmVyZW50IHdlYnNpdGVzIHRvIHdhdGNoIG9ubGluZSB2aWRlb3MuXCJdfSxcIjdcIjp7XCJpZFwiOjcsXCJuYW1lXCI6XCJNZWFzdXJlIGFkdmVydGlzaW5nIHBlcmZvcm1hbmNlXCIsXCJkZXNjcmlwdGlvblwiOlwiSW5mb3JtYXRpb24gcmVnYXJkaW5nIHdoaWNoIGFkdmVydGlzaW5nIGlzIHByZXNlbnRlZCB0byB5b3UgYW5kIGhvdyB5b3UgaW50ZXJhY3Qgd2l0aCBpdCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgaG93IHdlbGwgYW4gYWR2ZXJ0IGhhcyB3b3JrZWQgZm9yIHlvdSBvciBvdGhlciB1c2VycyBhbmQgd2hldGhlciB0aGUgZ29hbHMgb2YgdGhlIGFkdmVydGlzaW5nIHdlcmUgcmVhY2hlZC4gRm9yIGluc3RhbmNlLCB3aGV0aGVyIHlvdSBzYXcgYW4gYWQsIHdoZXRoZXIgeW91IGNsaWNrZWQgb24gaXQsIHdoZXRoZXIgaXQgbGVkIHlvdSB0byBidXkgYSBwcm9kdWN0IG9yIHZpc2l0IGEgd2Vic2l0ZSwgZXRjLiBUaGlzIGlzIHZlcnkgaGVscGZ1bCB0byB1bmRlcnN0YW5kIHRoZSByZWxldmFuY2Ugb2YgYWR2ZXJ0aXNpbmcgY2FtcGFpZ25zLlwiLFwiZGVzY3JpcHRpb25MZWdhbFwiOm51bGwsXCJpbGx1c3RyYXRpb25zXCI6W1wiWW91IGhhdmUgY2xpY2tlZCBvbiBhbiBhZHZlcnRpc2VtZW50IGFib3V0IGEgXHUyMDFjYmxhY2sgRnJpZGF5XHUyMDFkIGRpc2NvdW50IGJ5IGFuIG9ubGluZSBzaG9wIG9uIHRoZSB3ZWJzaXRlIG9mIGEgcHVibGlzaGVyIGFuZCBwdXJjaGFzZWQgYSBwcm9kdWN0LiBZb3VyIGNsaWNrIHdpbGwgYmUgbGlua2VkIHRvIHRoaXMgcHVyY2hhc2UuIFlvdXIgaW50ZXJhY3Rpb24gYW5kIHRoYXQgb2Ygb3RoZXIgdXNlcnMgd2lsbCBiZSBtZWFzdXJlZCB0byBrbm93IGhvdyBtYW55IGNsaWNrcyBvbiB0aGUgYWQgbGVkIHRvIGEgcHVyY2hhc2UuXCIsXCJZb3UgYXJlIG9uZSBvZiB2ZXJ5IGZldyB0byBoYXZlIGNsaWNrZWQgb24gYW4gYWR2ZXJ0aXNlbWVudCBhYm91dCBhbiBcdTIwMWNpbnRlcm5hdGlvbmFsIGFwcHJlY2lhdGlvbiBkYXlcdTIwMWQgZGlzY291bnQgYnkgYW4gb25saW5lIGdpZnQgc2hvcCB3aXRoaW4gdGhlIGFwcCBvZiBhIHB1Ymxpc2hlci4gVGhlIHB1Ymxpc2hlciB3YW50cyB0byBoYXZlIHJlcG9ydHMgdG8gdW5kZXJzdGFuZCBob3cgb2Z0ZW4gYSBzcGVjaWZpYyBhZCBwbGFjZW1lbnQgd2l0aGluIHRoZSBhcHAsIGFuZCBub3RhYmx5IHRoZSBcdTIwMWNpbnRlcm5hdGlvbmFsIGFwcHJlY2lhdGlvbiBkYXlcdTIwMWQgYWQsIGhhcyBiZWVuIHZpZXdlZCBvciBjbGlja2VkIGJ5IHlvdSBhbmQgb3RoZXIgdXNlcnMsIGluIG9yZGVyIHRvIGhlbHAgdGhlIHB1Ymxpc2hlciBhbmQgaXRzIHBhcnRuZXJzIChzdWNoIGFzIGFnZW5jaWVzKSBvcHRpbWlzZSBhZCBwbGFjZW1lbnRzLlwiXX0sXCI4XCI6e1wiaWRcIjo4LFwibmFtZVwiOlwiTWVhc3VyZSBjb250ZW50IHBlcmZvcm1hbmNlXCIsXCJkZXNjcmlwdGlvblwiOlwiSW5mb3JtYXRpb24gcmVnYXJkaW5nIHdoaWNoIGNvbnRlbnQgaXMgcHJlc2VudGVkIHRvIHlvdSBhbmQgaG93IHlvdSBpbnRlcmFjdCB3aXRoIGl0IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSAobm9uLWFkdmVydGlzaW5nKSBjb250ZW50IGUuZy4gcmVhY2hlZCBpdHMgaW50ZW5kZWQgYXVkaWVuY2UgYW5kIG1hdGNoZWQgeW91ciBpbnRlcmVzdHMuIEZvciBpbnN0YW5jZSwgd2hldGhlciB5b3UgcmVhZCBhbiBhcnRpY2xlLCB3YXRjaCBhIHZpZGVvLCBsaXN0ZW4gdG8gYSBwb2RjYXN0IG9yIGxvb2sgYXQgYSBwcm9kdWN0IGRlc2NyaXB0aW9uLCBob3cgbG9uZyB5b3Ugc3BlbnQgb24gdGhpcyBzZXJ2aWNlIGFuZCB0aGUgd2ViIHBhZ2VzIHlvdSB2aXNpdCBldGMuIFRoaXMgaXMgdmVyeSBoZWxwZnVsIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGV2YW5jZSBvZiAobm9uLWFkdmVydGlzaW5nKSBjb250ZW50IHRoYXQgaXMgc2hvd24gdG8geW91LiBcIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltcIllvdSBoYXZlIHJlYWQgYSBibG9nIHBvc3QgYWJvdXQgaGlraW5nIG9uIGEgbW9iaWxlIGFwcCBvZiBhIHB1Ymxpc2hlciBhbmQgZm9sbG93ZWQgYSBsaW5rIHRvIGEgcmVjb21tZW5kZWQgYW5kIHJlbGF0ZWQgcG9zdC4gWW91ciBpbnRlcmFjdGlvbnMgd2lsbCBiZSByZWNvcmRlZCBhcyBzaG93aW5nIHRoYXQgdGhlIGluaXRpYWwgaGlraW5nIHBvc3Qgd2FzIHVzZWZ1bCB0byB5b3UgYW5kIHRoYXQgaXQgd2FzIHN1Y2Nlc3NmdWwgaW4gaW50ZXJlc3RpbmcgeW91IGluIHRoZSByZWxhdGVkIHBvc3QuIFRoaXMgd2lsbCBiZSBtZWFzdXJlZCB0byBrbm93IHdoZXRoZXIgdG8gcHJvZHVjZSBtb3JlIHBvc3RzIG9uIGhpa2luZyBpbiB0aGUgZnV0dXJlIGFuZCB3aGVyZSB0byBwbGFjZSB0aGVtIG9uIHRoZSBob21lIHNjcmVlbiBvZiB0aGUgbW9iaWxlIGFwcC5cIixcIllvdSB3ZXJlIHByZXNlbnRlZCBhIHZpZGVvIG9uIGZhc2hpb24gdHJlbmRzLCBidXQgeW91IGFuZCBzZXZlcmFsIG90aGVyIHVzZXJzIHN0b3BwZWQgd2F0Y2hpbmcgYWZ0ZXIgMzAgc2Vjb25kcy4gVGhpcyBpbmZvcm1hdGlvbiBpcyB0aGVuIHVzZWQgdG8gZXZhbHVhdGUgdGhlIHJpZ2h0IGxlbmd0aCBvZiBmdXR1cmUgdmlkZW9zIG9uIGZhc2hpb24gdHJlbmRzLlwiXX0sXCI5XCI6e1wiaWRcIjo5LFwibmFtZVwiOlwiVW5kZXJzdGFuZCBhdWRpZW5jZXMgdGhyb3VnaCBzdGF0aXN0aWNzIG9yIGNvbWJpbmF0aW9ucyBvZiBkYXRhIGZyb20gZGlmZmVyZW50IHNvdXJjZXNcIixcImRlc2NyaXB0aW9uXCI6XCJSZXBvcnRzIGNhbiBiZSBnZW5lcmF0ZWQgYmFzZWQgb24gdGhlIGNvbWJpbmF0aW9uIG9mIGRhdGEgc2V0cyAobGlrZSB1c2VyIHByb2ZpbGVzLCBzdGF0aXN0aWNzLCBtYXJrZXQgcmVzZWFyY2gsIGFuYWx5dGljcyBkYXRhKSByZWdhcmRpbmcgeW91ciBpbnRlcmFjdGlvbnMgYW5kIHRob3NlIG9mIG90aGVyIHVzZXJzIHdpdGggYWR2ZXJ0aXNpbmcgb3IgKG5vbi1hZHZlcnRpc2luZykgY29udGVudCB0byBpZGVudGlmeSBjb21tb24gY2hhcmFjdGVyaXN0aWNzIChmb3IgaW5zdGFuY2UsIHRvIGRldGVybWluZSB3aGljaCB0YXJnZXQgYXVkaWVuY2VzIGFyZSBtb3JlIHJlY2VwdGl2ZSB0byBhbiBhZCBjYW1wYWlnbiBvciB0byBjZXJ0YWluIGNvbnRlbnRzKS5cIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltcIlRoZSBvd25lciBvZiBhbiBvbmxpbmUgYm9va3N0b3JlIHdhbnRzIGNvbW1lcmNpYWwgcmVwb3J0aW5nIHNob3dpbmcgdGhlIHByb3BvcnRpb24gb2YgdmlzaXRvcnMgd2hvIGNvbnN1bHRlZCBhbmQgbGVmdCBpdHMgc2l0ZSB3aXRob3V0IGJ1eWluZywgb3IgY29uc3VsdGVkIGFuZCBib3VnaHQgdGhlIGxhc3QgY2VsZWJyaXR5IGF1dG9iaW9ncmFwaHkgb2YgdGhlIG1vbnRoLCBhcyB3ZWxsIGFzIHRoZSBhdmVyYWdlIGFnZSBhbmQgdGhlIG1hbGUvZmVtYWxlIGRpc3RyaWJ1dGlvbiBvZiBlYWNoIGNhdGVnb3J5LiBEYXRhIHJlbGF0aW5nIHRvIHlvdXIgbmF2aWdhdGlvbiBvbiBpdHMgc2l0ZSBhbmQgdG8geW91ciBwZXJzb25hbCBjaGFyYWN0ZXJpc3RpY3MgaXMgdGhlbiB1c2VkIGFuZCBjb21iaW5lZCB3aXRoIG90aGVyIHN1Y2ggZGF0YSB0byBwcm9kdWNlIHRoZXNlIHN0YXRpc3RpY3MuXCIsXCJBbiBhZHZlcnRpc2VyIHdhbnRzIHRvIGJldHRlciB1bmRlcnN0YW5kIHRoZSB0eXBlIG9mIGF1ZGllbmNlIGludGVyYWN0aW5nIHdpdGggaXRzIGFkdmVydHMuIEl0IGNhbGxzIHVwb24gYSByZXNlYXJjaCBpbnN0aXR1dGUgdG8gY29tcGFyZSB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHVzZXJzIHdobyBpbnRlcmFjdGVkIHdpdGggdGhlIGFkIHdpdGggdHlwaWNhbCBhdHRyaWJ1dGVzIG9mIHVzZXJzIG9mIHNpbWlsYXIgcGxhdGZvcm1zLCBhY3Jvc3MgZGlmZmVyZW50IGRldmljZXMuIFRoaXMgY29tcGFyaXNvbiByZXZlYWxzIHRvIHRoZSBhZHZlcnRpc2VyIHRoYXQgaXRzIGFkIGF1ZGllbmNlIGlzIG1haW5seSBhY2Nlc3NpbmcgdGhlIGFkdmVydHMgdGhyb3VnaCBtb2JpbGUgZGV2aWNlcyBhbmQgaXMgbGlrZWx5IGluIHRoZSA0NS02MCBhZ2UgcmFuZ2UuXCJdfSxcIjEwXCI6e1wiaWRcIjoxMCxcIm5hbWVcIjpcIkRldmVsb3AgYW5kIGltcHJvdmUgc2VydmljZXNcIixcImRlc2NyaXB0aW9uXCI6XCJJbmZvcm1hdGlvbiBhYm91dCB5b3VyIGFjdGl2aXR5IG9uIHRoaXMgc2VydmljZSwgc3VjaCBhcyB5b3VyIGludGVyYWN0aW9uIHdpdGggYWRzIG9yIGNvbnRlbnQsIGNhbiBiZSB2ZXJ5IGhlbHBmdWwgdG8gaW1wcm92ZSBwcm9kdWN0cyBhbmQgc2VydmljZXMgYW5kIHRvIGJ1aWxkIG5ldyBwcm9kdWN0cyBhbmQgc2VydmljZXMgYmFzZWQgb24gdXNlciBpbnRlcmFjdGlvbnMsIHRoZSB0eXBlIG9mIGF1ZGllbmNlLCBldGMuIFRoaXMgc3BlY2lmaWMgcHVycG9zZSBkb2VzIG5vdCBpbmNsdWRlIHRoZSBkZXZlbG9wbWVudCBvciBpbXByb3ZlbWVudCBvZiB1c2VyIHByb2ZpbGVzIGFuZCBpZGVudGlmaWVycy5cIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltcIkEgdGVjaG5vbG9neSBwbGF0Zm9ybSB3b3JraW5nIHdpdGggYSBzb2NpYWwgbWVkaWEgcHJvdmlkZXIgbm90aWNlcyBhIGdyb3d0aCBpbiBtb2JpbGUgYXBwIHVzZXJzLCBhbmQgc2VlcyBiYXNlZCBvbiB0aGVpciBwcm9maWxlcyB0aGF0IG1hbnkgb2YgdGhlbSBhcmUgY29ubmVjdGluZyB0aHJvdWdoIG1vYmlsZSBjb25uZWN0aW9ucy4gSXQgdXNlcyBhIG5ldyB0ZWNobm9sb2d5IHRvIGRlbGl2ZXIgYWRzIHRoYXQgYXJlIGZvcm1hdHRlZCBmb3IgbW9iaWxlIGRldmljZXMgYW5kIHRoYXQgYXJlIGxvdy1iYW5kd2lkdGgsIHRvIGltcHJvdmUgdGhlaXIgcGVyZm9ybWFuY2UuXCIsXCJBbiBhZHZlcnRpc2VyIGlzIGxvb2tpbmcgZm9yIGEgd2F5IHRvIGRpc3BsYXkgYWRzIG9uIGEgbmV3IHR5cGUgb2YgY29uc3VtZXIgZGV2aWNlLiBJdCBjb2xsZWN0cyBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIHdheSB1c2VycyBpbnRlcmFjdCB3aXRoIHRoaXMgbmV3IGtpbmQgb2YgZGV2aWNlIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IGNhbiBidWlsZCBhIG5ldyBtZWNoYW5pc20gZm9yIGRpc3BsYXlpbmcgYWR2ZXJ0aXNpbmcgb24gdGhpcyB0eXBlIG9mIGRldmljZS5cIl19LFwiMTFcIjp7XCJpZFwiOjExLFwibmFtZVwiOlwiVXNlIGxpbWl0ZWQgZGF0YSB0byBzZWxlY3QgY29udGVudFwiLFwiZGVzY3JpcHRpb25cIjpcIkNvbnRlbnQgcHJlc2VudGVkIHRvIHlvdSBvbiB0aGlzIHNlcnZpY2UgY2FuIGJlIGJhc2VkIG9uIGxpbWl0ZWQgZGF0YSwgc3VjaCBhcyB0aGUgd2Vic2l0ZSBvciBhcHAgeW91IGFyZSB1c2luZywgeW91ciBub24tcHJlY2lzZSBsb2NhdGlvbiwgeW91ciBkZXZpY2UgdHlwZSwgb3Igd2hpY2ggY29udGVudCB5b3UgYXJlIChvciBoYXZlIGJlZW4pIGludGVyYWN0aW5nIHdpdGggKGZvciBleGFtcGxlLCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIHRpbWVzIGEgdmlkZW8gb3IgYW4gYXJ0aWNsZSBpcyBwcmVzZW50ZWQgdG8geW91KS5cIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltcIkEgdHJhdmVsIG1hZ2F6aW5lIGhhcyBwdWJsaXNoZWQgYW4gYXJ0aWNsZSBvbiBpdHMgd2Vic2l0ZSBhYm91dCB0aGUgbmV3IG9ubGluZSBjb3Vyc2VzIHByb3Bvc2VkIGJ5IGEgbGFuZ3VhZ2Ugc2Nob29sLCB0byBpbXByb3ZlIHRyYXZlbGxpbmcgZXhwZXJpZW5jZXMgYWJyb2FkLiBUaGUgc2Nob29sXHUyMDE5cyBibG9nIHBvc3RzIGFyZSBpbnNlcnRlZCBkaXJlY3RseSBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlLCBhbmQgc2VsZWN0ZWQgb24gdGhlIGJhc2lzIG9mIHlvdXIgbm9uLXByZWNpc2UgbG9jYXRpb24gKGZvciBpbnN0YW5jZSwgYmxvZyBwb3N0cyBleHBsYWluaW5nIHRoZSBjb3Vyc2UgY3VycmljdWx1bSBmb3IgZGlmZmVyZW50IGxhbmd1YWdlcyB0aGFuIHRoZSBsYW5ndWFnZSBvZiB0aGUgY291bnRyeSB5b3UgYXJlIHNpdHVhdGVkIGluKS5cIixcIkEgc3BvcnRzIG5ld3MgbW9iaWxlIGFwcCBoYXMgc3RhcnRlZCBhIG5ldyBzZWN0aW9uIG9mIGFydGljbGVzIGNvdmVyaW5nIHRoZSBtb3N0IHJlY2VudCBmb290YmFsbCBnYW1lcy4gRWFjaCBhcnRpY2xlIGluY2x1ZGVzIHZpZGVvcyBob3N0ZWQgYnkgYSBzZXBhcmF0ZSBzdHJlYW1pbmcgcGxhdGZvcm0gc2hvd2Nhc2luZyB0aGUgaGlnaGxpZ2h0cyBvZiBlYWNoIG1hdGNoLiBJZiB5b3UgZmFzdC1mb3J3YXJkIGEgdmlkZW8sIHRoaXMgaW5mb3JtYXRpb24gbWF5IGJlIHVzZWQgdG8gc2VsZWN0IGEgc2hvcnRlciB2aWRlbyB0byBwbGF5IG5leHQuXCJdfX0sXCJzcGVjaWFsRmVhdHVyZXNcIjp7XCIxXCI6e1wiaWRcIjoxLFwibmFtZVwiOlwiVXNlIHByZWNpc2UgZ2VvbG9jYXRpb24gZGF0YVwiLFwiZGVzY3JpcHRpb25cIjpcIldpdGggeW91ciBhY2NlcHRhbmNlLCB5b3VyIHByZWNpc2UgbG9jYXRpb24gKHdpdGhpbiBhIHJhZGl1cyBvZiBsZXNzIHRoYW4gNTAwIG1ldHJlcykgbWF5IGJlIHVzZWQgaW4gc3VwcG9ydCBvZiB0aGUgcHVycG9zZXMgZXhwbGFpbmVkIGluIHRoaXMgbm90aWNlLlwiLFwiZGVzY3JpcHRpb25MZWdhbFwiOm51bGwsXCJpbGx1c3RyYXRpb25zXCI6W119LFwiMlwiOntcImlkXCI6MixcIm5hbWVcIjpcIkFjdGl2ZWx5IHNjYW4gZGV2aWNlIGNoYXJhY3RlcmlzdGljcyBmb3IgaWRlbnRpZmljYXRpb25cIixcImRlc2NyaXB0aW9uXCI6XCJXaXRoIHlvdXIgYWNjZXB0YW5jZSwgY2VydGFpbiBjaGFyYWN0ZXJpc3RpY3Mgc3BlY2lmaWMgdG8geW91ciBkZXZpY2UgbWlnaHQgYmUgcmVxdWVzdGVkIGFuZCB1c2VkIHRvIGRpc3Rpbmd1aXNoIGl0IGZyb20gb3RoZXIgZGV2aWNlcyAoc3VjaCBhcyB0aGUgaW5zdGFsbGVkIGZvbnRzIG9yIHBsdWdpbnMsIHRoZSByZXNvbHV0aW9uIG9mIHlvdXIgc2NyZWVuKSBpbiBzdXBwb3J0IG9mIHRoZSBwdXJwb3NlcyBleHBsYWluZWQgaW4gdGhpcyBub3RpY2UuXCIsXCJkZXNjcmlwdGlvbkxlZ2FsXCI6bnVsbCxcImlsbHVzdHJhdGlvbnNcIjpbXX19LFwic3BlY2lhbFB1cnBvc2VzXCI6e1wiMVwiOntcImlkXCI6MSxcIm5hbWVcIjpcIkVuc3VyZSBzZWN1cml0eSwgcHJldmVudCBhbmQgZGV0ZWN0IGZyYXVkLCBhbmQgZml4IGVycm9yc1xcblwiLFwiZGVzY3JpcHRpb25cIjpcIllvdXIgZGF0YSBjYW4gYmUgdXNlZCB0byBtb25pdG9yIGZvciBhbmQgcHJldmVudCB1bnVzdWFsIGFuZCBwb3NzaWJseSBmcmF1ZHVsZW50IGFjdGl2aXR5IChmb3IgZXhhbXBsZSwgcmVnYXJkaW5nIGFkdmVydGlzaW5nLCBhZCBjbGlja3MgYnkgYm90cyksIGFuZCBlbnN1cmUgc3lzdGVtcyBhbmQgcHJvY2Vzc2VzIHdvcmsgcHJvcGVybHkgYW5kIHNlY3VyZWx5LiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGNvcnJlY3QgYW55IHByb2JsZW1zIHlvdSwgdGhlIHB1Ymxpc2hlciBvciB0aGUgYWR2ZXJ0aXNlciBtYXkgZW5jb3VudGVyIGluIHRoZSBkZWxpdmVyeSBvZiBjb250ZW50IGFuZCBhZHMgYW5kIGluIHlvdXIgaW50ZXJhY3Rpb24gd2l0aCB0aGVtLlwiLFwiZGVzY3JpcHRpb25MZWdhbFwiOm51bGwsXCJpbGx1c3RyYXRpb25zXCI6W1wiQW4gYWR2ZXJ0aXNpbmcgaW50ZXJtZWRpYXJ5IGRlbGl2ZXJzIGFkcyBmcm9tIHZhcmlvdXMgYWR2ZXJ0aXNlcnMgdG8gaXRzIG5ldHdvcmsgb2YgcGFydG5lcmluZyB3ZWJzaXRlcy4gSXQgbm90aWNlcyBhIGxhcmdlIGluY3JlYXNlIGluIGNsaWNrcyBvbiBhZHMgcmVsYXRpbmcgdG8gb25lIGFkdmVydGlzZXIsIGFuZCB1c2VzIGRhdGEgcmVnYXJkaW5nIHRoZSBzb3VyY2Ugb2YgdGhlIGNsaWNrcyB0byBkZXRlcm1pbmUgdGhhdCA4MCUgb2YgdGhlIGNsaWNrcyBjb21lIGZyb20gYm90cyByYXRoZXIgdGhhbiBodW1hbnMuXCJdfSxcIjJcIjp7XCJpZFwiOjIsXCJuYW1lXCI6XCJEZWxpdmVyIGFuZCBwcmVzZW50IGFkdmVydGlzaW5nIGFuZCBjb250ZW50XCIsXCJkZXNjcmlwdGlvblwiOlwiQ2VydGFpbiBpbmZvcm1hdGlvbiAobGlrZSBhbiBJUCBhZGRyZXNzIG9yIGRldmljZSBjYXBhYmlsaXRpZXMpIGlzIHVzZWQgdG8gZW5zdXJlIHRoZSB0ZWNobmljYWwgY29tcGF0aWJpbGl0eSBvZiB0aGUgY29udGVudCBvciBhZHZlcnRpc2luZywgYW5kIHRvIGZhY2lsaXRhdGUgdGhlIHRyYW5zbWlzc2lvbiBvZiB0aGUgY29udGVudCBvciBhZCB0byB5b3VyIGRldmljZS5cIixcImRlc2NyaXB0aW9uTGVnYWxcIjpudWxsLFwiaWxsdXN0cmF0aW9uc1wiOltcIkNsaWNraW5nIG9uIGEgbGluayBpbiBhbiBhcnRpY2xlIG1pZ2h0IG5vcm1hbGx5IHNlbmQgeW91IHRvIGFub3RoZXIgcGFnZSBvciBwYXJ0IG9mIHRoZSBhcnRpY2xlLiBUbyBhY2hpZXZlIHRoaXMsIDFcdTAwYjApIHlvdXIgYnJvd3NlciBzZW5kcyBhIHJlcXVlc3QgdG8gYSBzZXJ2ZXIgbGlua2VkIHRvIHRoZSB3ZWJzaXRlLCAyXHUwMGIwKSB0aGUgc2VydmVyIGFuc3dlcnMgYmFjayAoXHUyMDFjaGVyZSBpcyB0aGUgYXJ0aWNsZSB5b3UgYXNrZWQgZm9yXHUyMDFkKSwgdXNpbmcgdGVjaG5pY2FsIGluZm9ybWF0aW9uIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3Qgc2VudCBieSB5b3VyIGRldmljZSwgdG8gcHJvcGVybHkgZGlzcGxheSB0aGUgaW5mb3JtYXRpb24gLyBpbWFnZXMgdGhhdCBhcmUgcGFydCBvZiB0aGUgYXJ0aWNsZSB5b3UgYXNrZWQgZm9yLiBUZWNobmljYWxseSwgc3VjaCBleGNoYW5nZSBvZiBpbmZvcm1hdGlvbiBpcyBuZWNlc3NhcnkgdG8gZGVsaXZlciB0aGUgY29udGVudCB0aGF0IGFwcGVhcnMgb24geW91ciBzY3JlZW4uXCJdfX0sXCJzdGFja3NcIjp7XCJTMTBcIjp7XCJpZFwiOjEwLFwibmFtZVwiOlwiUGVyc29uYWxpc2VkIGFkdmVydGlzaW5nXCIsXCJkZXNjcmlwdGlvblwiOlwiQWR2ZXJ0aXNpbmcgY2FuIGJlIHBlcnNvbmFsaXNlZCBiYXNlZCBvbiB5b3VyIHByb2ZpbGUuIFlvdXIgYWN0aXZpdHkgb24gdGhpcyBzZXJ2aWNlIGNhbiBiZSB1c2VkIHRvIGJ1aWxkIG9yIGltcHJvdmUgYSBwcm9maWxlIGFib3V0IHlvdSBmb3IgcGVyc29uYWxpc2VkIGFkdmVydGlzaW5nLlwiLFwicHVycG9zZXNcIjpbMyw0XSxcInNwZWNpYWxGZWF0dXJlc1wiOltdfX0sXCJ2ZW5kb3JzXCI6e1wiNzU1XCI6e1wiaWRcIjo3NTUsXCJuYW1lXCI6XCJHb29nbGUgQWR2ZXJ0aXNpbmcgUHJvZHVjdHNcIixcInBvbGljeVVybFwiOm51bGwsXCJwdXJwb3Nlc1wiOlsxLDMsNF0sXCJsZWdJbnRQdXJwb3Nlc1wiOlsyLDcsOSwxMF0sXCJzcGVjaWFsUHVycG9zZXNcIjpbMSwyXSxcInNwZWNpYWxGZWF0dXJlc1wiOltdLFwiZmxleGlibGVQdXJwb3Nlc1wiOlsyLDcsOSwxMF0sXCJmZWF0dXJlc1wiOlsxLDJdLFwiY29va2llTWF4QWdlU2Vjb25kc1wiOjMuNDE5RTcsXCJjb29raWVSZWZyZXNoXCI6ZmFsc2UsXCJkYXRhUmV0ZW50aW9uXCI6e1wic3RkUmV0ZW50aW9uXCI6NTQ4LFwicHVycG9zZXNcIjp7XCIzXCI6MTgwLFwiNFwiOjE4MH0sXCJzcGVjaWFsUHVycG9zZXNcIjp7XCIxXCI6MTA5Nn19LFwidXJsc1wiOlt7XCJsYW5nSWRcIjpcImVuXCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvcHJpdmFjeS9cIixcImxlZ0ludENsYWltXCI6XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeSNldXJvcGVhbnJlcXVpcmVtZW50c1wifSx7XCJsYW5nSWRcIjpcImJnXCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvaW50bC9iZy9wcml2YWN5L1wiLFwibGVnSW50Q2xhaW1cIjpcImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5P2hsPWJnI2V1cm9wZWFucmVxdWlyZW1lbnRzXCJ9LHtcImxhbmdJZFwiOlwiY3NcIixcInByaXZhY3lcIjpcImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9pbnRsL2NzL3ByaXZhY3kvXCIsXCJsZWdJbnRDbGFpbVwiOlwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3ByaXZhY3k/aGw9Y3MjZXVyb3BlYW5yZXF1aXJlbWVudHNcIn0se1wibGFuZ0lkXCI6XCJkYVwiLFwicHJpdmFjeVwiOlwiaHR0cHM6Ly9idXNpbmVzcy5zYWZldHkuZ29vZ2xlL2ludGwvZGEvcHJpdmFjeS9cIixcImxlZ0ludENsYWltXCI6XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeT9obD1kYSNldXJvcGVhbnJlcXVpcmVtZW50c1wifSx7XCJsYW5nSWRcIjpcImRlXCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvaW50bC9kZS9wcml2YWN5L1wiLFwibGVnSW50Q2xhaW1cIjpcImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5P2hsPWRlI2V1cm9wZWFucmVxdWlyZW1lbnRzXCJ9LHtcImxhbmdJZFwiOlwiZWxcIixcInByaXZhY3lcIjpcImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9pbnRsL2VsL3ByaXZhY3kvXCIsXCJsZWdJbnRDbGFpbVwiOlwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3ByaXZhY3k/aGw9ZWwjZXVyb3BlYW5yZXF1aXJlbWVudHNcIn0se1wibGFuZ0lkXCI6XCJlc1wiLFwicHJpdmFjeVwiOlwiaHR0cHM6Ly9idXNpbmVzcy5zYWZldHkuZ29vZ2xlL2ludGwvZXMvcHJpdmFjeS9cIixcImxlZ0ludENsYWltXCI6XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeT9obD1lcyNldXJvcGVhbnJlcXVpcmVtZW50c1wifSx7XCJsYW5nSWRcIjpcImV0XCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvaW50bC9ldC9wcml2YWN5L1wiLFwibGVnSW50Q2xhaW1cIjpcImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5P2hsPWV0I2V1cm9wZWFucmVxdWlyZW1lbnRzXCJ9LHtcImxhbmdJZFwiOlwiZmlcIixcInByaXZhY3lcIjpcImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9pbnRsL2ZpL3ByaXZhY3kvXCIsXCJsZWdJbnRDbGFpbVwiOlwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3ByaXZhY3k/aGw9ZmkjZXVyb3BlYW5yZXF1aXJlbWVudHNcIn0se1wibGFuZ0lkXCI6XCJmclwiLFwicHJpdmFjeVwiOlwiaHR0cHM6Ly9idXNpbmVzcy5zYWZldHkuZ29vZ2xlL2ludGwvZnIvcHJpdmFjeS9cIixcImxlZ0ludENsYWltXCI6XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeT9obD1mciNldXJvcGVhbnJlcXVpcmVtZW50c1wifSx7XCJsYW5nSWRcIjpcImhyXCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvaW50bC9oci9wcml2YWN5L1wiLFwibGVnSW50Q2xhaW1cIjpcImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5P2hsPWhyI2V1cm9wZWFucmVxdWlyZW1lbnRzXCJ9LHtcImxhbmdJZFwiOlwiaHVcIixcInByaXZhY3lcIjpcImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9pbnRsL2h1L3ByaXZhY3kvXCIsXCJsZWdJbnRDbGFpbVwiOlwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3ByaXZhY3k/aGw9aHUjZXVyb3BlYW5yZXF1aXJlbWVudHNcIn0se1wibGFuZ0lkXCI6XCJpdFwiLFwicHJpdmFjeVwiOlwiaHR0cHM6Ly9idXNpbmVzcy5zYWZldHkuZ29vZ2xlL2ludGwvaXQvcHJpdmFjeS9cIixcImxlZ0ludENsYWltXCI6XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeT9obD1pdCNldXJvcGVhbnJlcXVpcmVtZW50c1wifSx7XCJsYW5nSWRcIjpcImx0XCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvaW50bC9sdC9wcml2YWN5L1wiLFwibGVnSW50Q2xhaW1cIjpcImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5P2hsPWx0I2V1cm9wZWFucmVxdWlyZW1lbnRzXCJ9LHtcImxhbmdJZFwiOlwibHZcIixcInByaXZhY3lcIjpcImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9pbnRsL2x2L3ByaXZhY3kvXCIsXCJsZWdJbnRDbGFpbVwiOlwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3ByaXZhY3k/aGw9bHYjZXVyb3BlYW5yZXF1aXJlbWVudHNcIn0se1wibGFuZ0lkXCI6XCJubFwiLFwicHJpdmFjeVwiOlwiaHR0cHM6Ly9idXNpbmVzcy5zYWZldHkuZ29vZ2xlL2ludGwvbmwvcHJpdmFjeS9cIixcImxlZ0ludENsYWltXCI6XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeT9obD1ubCNldXJvcGVhbnJlcXVpcmVtZW50c1wifSx7XCJsYW5nSWRcIjpcIm5vXCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvaW50bC9uby9wcml2YWN5L1wiLFwibGVnSW50Q2xhaW1cIjpcImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5P2hsPW5vI2V1cm9wZWFucmVxdWlyZW1lbnRzXCJ9LHtcImxhbmdJZFwiOlwicGxcIixcInByaXZhY3lcIjpcImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9pbnRsL3BsL3ByaXZhY3kvXCIsXCJsZWdJbnRDbGFpbVwiOlwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3ByaXZhY3k/aGw9cGwjZXVyb3BlYW5yZXF1aXJlbWVudHNcIn0se1wibGFuZ0lkXCI6XCJwdFwiLFwicHJpdmFjeVwiOlwiaHR0cHM6Ly9idXNpbmVzcy5zYWZldHkuZ29vZ2xlL2ludGwvcHQtUFQvcHJpdmFjeS9cIixcImxlZ0ludENsYWltXCI6XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeT9obD1wdC1QVCNldXJvcGVhbnJlcXVpcmVtZW50c1wifSx7XCJsYW5nSWRcIjpcInJvXCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvaW50bC9yby9wcml2YWN5L1wiLFwibGVnSW50Q2xhaW1cIjpcImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5P2hsPXJvI2V1cm9wZWFucmVxdWlyZW1lbnRzXCJ9LHtcImxhbmdJZFwiOlwic2tcIixcInByaXZhY3lcIjpcImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9pbnRsL3NrL3ByaXZhY3kvXCIsXCJsZWdJbnRDbGFpbVwiOlwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3ByaXZhY3k/aGw9c2sjZXVyb3BlYW5yZXF1aXJlbWVudHNcIn0se1wibGFuZ0lkXCI6XCJzbFwiLFwicHJpdmFjeVwiOlwiaHR0cHM6Ly9idXNpbmVzcy5zYWZldHkuZ29vZ2xlL2ludGwvc2wvcHJpdmFjeS9cIixcImxlZ0ludENsYWltXCI6XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeT9obD1zbCNldXJvcGVhbnJlcXVpcmVtZW50c1wifSx7XCJsYW5nSWRcIjpcInN2XCIsXCJwcml2YWN5XCI6XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvaW50bC9zdi9wcml2YWN5L1wiLFwibGVnSW50Q2xhaW1cIjpcImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5P2hsPXN2I2V1cm9wZWFucmVxdWlyZW1lbnRzXCJ9XSxcImRhdGFEZWNsYXJhdGlvblwiOlsxLDIsMyw1LDYsNyw4LDEwLDExXX19LFwiZGF0YUNhdGVnb3JpZXNcIjp7XCIxXCI6e1wiaWRcIjoxLFwibmFtZVwiOlwiSVAgYWRkcmVzc2VzXCIsXCJkZXNjcmlwdGlvblwiOlwiWW91ciBJUCBhZGRyZXNzIGlzIGEgbnVtYmVyIGFzc2lnbmVkIGJ5IHlvdXIgSW50ZXJuZXQgU2VydmljZSBQcm92aWRlciB0byBhbnkgSW50ZXJuZXQgY29ubmVjdGlvbi4gSXQgaXMgbm90IGFsd2F5cyBzcGVjaWZpYyB0byB5b3VyIGRldmljZSBhbmQgaXMgbm90IGFsd2F5cyBhIHN0YWJsZSBpZGVudGlmaWVyLlxcbkl0IGlzIHVzZWQgdG8gcm91dGUgaW5mb3JtYXRpb24gb24gdGhlIEludGVybmV0IGFuZCBkaXNwbGF5IG9ubGluZSBjb250ZW50IChpbmNsdWRpbmcgYWRzKSBvbiB5b3VyIGNvbm5lY3RlZCBkZXZpY2UuXCJ9LFwiMlwiOntcImlkXCI6MixcIm5hbWVcIjpcIkRldmljZSBjaGFyYWN0ZXJpc3RpY3NcIixcImRlc2NyaXB0aW9uXCI6XCJUZWNobmljYWwgY2hhcmFjdGVyaXN0aWNzIGFib3V0IHRoZSBkZXZpY2UgeW91IGFyZSB1c2luZyB0aGF0IGFyZSBub3QgdW5pcXVlIHRvIHlvdSwgc3VjaCBhcyB0aGUgbGFuZ3VhZ2UsIHRoZSB0aW1lIHpvbmUgb3IgdGhlIG9wZXJhdGluZyBzeXN0ZW0uXCJ9LFwiM1wiOntcImlkXCI6MyxcIm5hbWVcIjpcIkRldmljZSBpZGVudGlmaWVyc1wiLFwiZGVzY3JpcHRpb25cIjpcIkEgZGV2aWNlIGlkZW50aWZpZXIgaXMgYSB1bmlxdWUgc3RyaW5nIG9mIGNoYXJhY3RlcnMgYXNzaWduZWQgdG8geW91ciBkZXZpY2Ugb3IgYnJvd3NlciBieSBtZWFucyBvZiBhIGNvb2tpZSBvciBvdGhlciBzdG9yYWdlIHRlY2hub2xvZ2llcy4gXFxuSXQgbWF5IGJlIGNyZWF0ZWQgb3IgYWNjZXNzZWQgdG8gcmVjb2duaXNlIHlvdXIgZGV2aWNlIGUuZy4gYWNyb3NzIHdlYiBwYWdlcyBmcm9tIHRoZSBzYW1lIHNpdGUgb3IgYWNyb3NzIG11bHRpcGxlIHNpdGVzIG9yIGFwcHMuXCJ9LFwiNFwiOntcImlkXCI6NCxcIm5hbWVcIjpcIlByb2JhYmlsaXN0aWMgaWRlbnRpZmllcnNcIixcImRlc2NyaXB0aW9uXCI6XCJBIHByb2JhYmlsaXN0aWMgaWRlbnRpZmllciBjYW4gYmUgY3JlYXRlZCBieSBjb21iaW5pbmcgY2hhcmFjdGVyaXN0aWNzIGFzc29jaWF0ZWQgd2l0aCB5b3VyIGRldmljZSAodGhlIHR5cGUgb2YgYnJvd3NlciBvciBvcGVyYXRpbmcgc3lzdGVtIHVzZWQpIGFuZCB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgSW50ZXJuZXQgY29ubmVjdGlvbi4gSWYgeW91IGdpdmUgeW91ciBhZ3JlZW1lbnQsIGFkZGl0aW9uYWwgY2hhcmFjdGVyaXN0aWNzIChlLmcuIHRoZSBpbnN0YWxsZWQgZm9udCBvciBzY3JlZW4gcmVzb2x1dGlvbikgY2FuIGFsc28gYmUgY29tYmluZWQgdG8gaW1wcm92ZSBwcmVjaXNpb24gb2YgdGhlIHByb2JhYmlsaXN0aWMgaWRlbnRpZmllci5cXG5TdWNoIGFuIGlkZW50aWZpZXIgaXMgY29uc2lkZXJlZCBcXFwicHJvYmFiaWxpc3RpY1xcXCIgYmVjYXVzZSBzZXZlcmFsIGRldmljZXMgY2FuIHNoYXJlIHRoZSBzYW1lIGNoYXJhY3RlcmlzdGljcyBhbmQgSW50ZXJuZXQgY29ubmVjdGlvbi4gSXQgbWF5IGJlIHVzZWQgdG8gcmVjb2duaXNlIHlvdXIgZGV2aWNlIGFjcm9zcyBlLmcuIHdlYiBwYWdlcyBmcm9tIHRoZSBzYW1lIHNpdGUgb3IgYWNyb3NzIG11bHRpcGxlIHNpdGVzIG9yIGFwcHMuXCJ9LFwiNVwiOntcImlkXCI6NSxcIm5hbWVcIjpcIkF1dGhlbnRpY2F0aW9uLWRlcml2ZWQgaWRlbnRpZmllcnNcIixcImRlc2NyaXB0aW9uXCI6XCJXaGVyZSBhbiBpZGVudGlmaWVyIGlzIGNyZWF0ZWQgb24gdGhlIGJhc2lzIG9mIGF1dGhlbnRpY2F0aW9uIGRhdGEsIHN1Y2ggYXMgY29udGFjdCBkZXRhaWxzIGFzc29jaWF0ZWQgd2l0aCBvbmxpbmUgYWNjb3VudHMgeW91IGhhdmUgY3JlYXRlZCBvbiB3ZWJzaXRlcyBvciBhcHBzIChlLmcuIGUtbWFpbCBhZGRyZXNzLCBwaG9uZSBudW1iZXIpIG9yIGN1c3RvbWVyIGlkZW50aWZpZXJzIChlLmcuIGlkZW50aWZpZXIgcHJvdmlkZWQgYnkgeW91ciB0ZWxlY29tIG9wZXJhdG9yKSwgdGhhdCBpZGVudGlmaWVyIG1heSBiZSB1c2VkIHRvIHJlY29nbmlzZSB5b3UgYWNyb3NzIHdlYnNpdGVzLCBhcHBzIGFuZCBkZXZpY2VzIHdoZW4geW91IGFyZSBsb2dnZWQtaW4gd2l0aCB0aGUgc2FtZSBjb250YWN0IGRldGFpbHMuXCJ9LFwiNlwiOntcImlkXCI6NixcIm5hbWVcIjpcIkJyb3dzaW5nIGFuZCBpbnRlcmFjdGlvbiBkYXRhXCIsXCJkZXNjcmlwdGlvblwiOlwiWW91ciBvbmxpbmUgYWN0aXZpdHkgc3VjaCBhcyB0aGUgd2Vic2l0ZXMgeW91IHZpc2l0LCBhcHBzIHlvdSBhcmUgdXNpbmcsIHRoZSBjb250ZW50IHlvdSBzZWFyY2ggZm9yIG9uIHRoaXMgc2VydmljZSwgIG9yIHlvdXIgaW50ZXJhY3Rpb25zIHdpdGggY29udGVudCBvciBhZHMsIHN1Y2ggYXMgdGhlIG51bWJlciBvZiB0aW1lcyB5b3UgaGF2ZSBzZWVuIGEgc3BlY2lmaWMgY29udGVudCBvciBhZCBvciB3aGV0aGVyIHlvdSBjbGlja2VkIG9uIGl0LlxcblwifSxcIjdcIjp7XCJpZFwiOjcsXCJuYW1lXCI6XCJVc2VyLXByb3ZpZGVkIGRhdGFcIixcImRlc2NyaXB0aW9uXCI6XCJUaGUgaW5mb3JtYXRpb24geW91IG1heSBoYXZlIHByb3ZpZGVkIGJ5IHdheSBvZiBkZWNsYXJhdGlvbiB2aWEgYSBmb3JtIChlLmcuIGZlZWRiYWNrLCBhIGNvbW1lbnQpIG9yIHdoZW4gY3JlYXRpbmcgYW4gYWNjb3VudCAoZS5nLiB5b3VyIGFnZSwgeW91ciBvY2N1cGF0aW9uKS5cIn0sXCI4XCI6e1wiaWRcIjo4LFwibmFtZVwiOlwiTm9uLXByZWNpc2UgbG9jYXRpb24gZGF0YVwiLFwiZGVzY3JpcHRpb25cIjpcIkFuIGFwcHJveGltYXRpb24gb2YgeW91ciBsb2NhdGlvbiwgZXhwcmVzc2VkIGFzIGFuIGFyZWEgd2l0aCBhIHJhZGl1cyBvZiBhdCBsZWFzdCA1MDAgbWV0ZXJzLiBZb3VyIGFwcHJveGltYXRlIGxvY2F0aW9uIGNhbiBiZSBkZWR1Y2VkIGZyb20gZS5nLiB0aGUgSVAgYWRkcmVzcyBvZiB5b3VyIGNvbm5lY3Rpb24uXCJ9LFwiOVwiOntcImlkXCI6OSxcIm5hbWVcIjpcIlByZWNpc2UgbG9jYXRpb24gZGF0YVwiLFwiZGVzY3JpcHRpb25cIjpcIllvdXIgcHJlY2lzZSBsb2NhdGlvbiB3aXRoaW4gYSByYWRpdXMgb2YgbGVzcyB0aGFuIDUwMCBtZXRlcnMgYmFzZWQgb24geW91ciBHUFMgY29vcmRpbmF0ZXMuIEl0IG1heSBiZSB1c2VkIG9ubHkgd2l0aCB5b3VyIGFjY2VwdGFuY2UuXCJ9LFwiMTBcIjp7XCJpZFwiOjEwLFwibmFtZVwiOlwiVXNlcnNcdTIwMTkgcHJvZmlsZXNcIixcImRlc2NyaXB0aW9uXCI6XCJDZXJ0YWluIGNoYXJhY3RlcmlzdGljcyAoZS5nLiB5b3VyIHBvc3NpYmxlIGludGVyZXN0cywgeW91ciBwdXJjaGFzZSBpbnRlbnRpb25zLCB5b3VyIGNvbnN1bWVyIHByb2ZpbGUpIG1heSBiZSBpbmZlcnJlZCBvciBtb2RlbGVkIGZyb20geW91ciBwcmV2aW91cyBvbmxpbmUgYWN0aXZpdHkgKGUuZy4gdGhlIGNvbnRlbnQgeW91IHZpZXdlZCBvciB0aGUgc2VydmljZSB5b3UgdXNlZCwgeW91ciB0aW1lIHNwZW50IG9uIHZhcmlvdXMgb25saW5lIGNvbnRlbnQgYW5kIHNlcnZpY2VzKSBvciB0aGUgaW5mb3JtYXRpb24geW91IGhhdmUgcHJvdmlkZWQgKGUuZy4geW91ciBhZ2UsIHlvdXIgb2NjdXBhdGlvbikuXCJ9LFwiMTFcIjp7XCJpZFwiOjExLFwibmFtZVwiOlwiUHJpdmFjeSBjaG9pY2VzXCIsXCJkZXNjcmlwdGlvblwiOlwiWW91ciBwcmVmZXJlbmNlcyByZWdhcmRpbmcgdGhlIHByb2Nlc3Npbmcgb2YgeW91ciBkYXRhLCBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24geW91IGhhdmUgcmVjZWl2ZWQuXCJ9fSxcImF0cHNcIjp7fSxcImlhYkNvbWJpbmF0aW9uXCI6XCJTMTBcIixcImF0cElkc1wiOlwiXCJ9In0sICJoZWFkZXJzU2l6ZSI6IDMyOCwgImJvZHlTaXplIjogMjUzMDEsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDI1NjI5fSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogNzAyLjYyNywgInJlY2VpdmUiOiAyMS42Njl9LCAicGFnZXJlZiI6ICJwYWdlQDVjMDkxYzdlZDE4MDg5NmVhYjNiMjBmYmE5ZmU5NGE5IiwgInNlcnZlcklQQWRkcmVzcyI6ICIxOC4xNzIuNTIuNDkiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIkNOPSoudHJ1c3RhcmMuY29tIiwgInZhbGlkRnJvbSI6IDE3MTA1NDcyMDAsICJ2YWxpZFRvIjogMTc0NDY3NTE5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDA1OjU0OjEwLjM0MVoiLCAidGltZSI6IDcwMy44MDQsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2Jhbm5lcm1zZz9hY3Rpb249dmlld3MmZG9tYWluPWdvZGFkZHlfcGFya2luZ19pYWIuY29tJmJlaGF2aW9yPWltcGxpZWQmY291bnRyeT1sdSZsYW5ndWFnZT1lbiZyYW5kPTAuMDM1NjU4ODM5MzYyMzM3Mjcmc2Vzc2lvbj0zZDg2OWMxOS05NDIzLTQ3ODMtOGY5Zi04YzYzNTFkODc1ODEmdXNlclR5cGU9TkVXIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkFjY2VwdCIsICJ2YWx1ZSI6ICJpbWFnZS93ZWJwLGltYWdlL2p4bCx2aWRlby8qO3E9MC44LGltYWdlL3BuZyxpbWFnZS9zdmcreG1sLGltYWdlLyo7cT0wLjgsKi8qO3E9MC41In0sIHsibmFtZSI6ICJSZWZlcmVyIiwgInZhbHVlIjogImh0dHA6Ly9iYXBzbWFuZGlyZGVwYXJpcy5mci8ifSwgeyJuYW1lIjogIlVzZXItQWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxN18zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNy4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xIn0sIHsibmFtZSI6ICJBY2NlcHQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogIkFjY2VwdC1MYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLURlc3QiLCAidmFsdWUiOiAiaW1hZ2UifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1Nb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1TaXRlIiwgInZhbHVlIjogImNyb3NzLXNpdGUifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAiY29uc2VudC50cnVzdGFyYy5jb20ifV0sICJxdWVyeVN0cmluZyI6IFt7Im5hbWUiOiAiYWN0aW9uIiwgInZhbHVlIjogInZpZXdzIn0sIHsibmFtZSI6ICJkb21haW4iLCAidmFsdWUiOiAiZ29kYWRkeV9wYXJraW5nX2lhYi5jb20ifSwgeyJuYW1lIjogImJlaGF2aW9yIiwgInZhbHVlIjogImltcGxpZWQifSwgeyJuYW1lIjogImNvdW50cnkiLCAidmFsdWUiOiAibHUifSwgeyJuYW1lIjogImxhbmd1YWdlIiwgInZhbHVlIjogImVuIn0sIHsibmFtZSI6ICJyYW5kIiwgInZhbHVlIjogIjAuMDM1NjU4ODM5MzYyMzM3MjcifSwgeyJuYW1lIjogInNlc3Npb24iLCAidmFsdWUiOiAiM2Q4NjljMTktOTQyMy00NzgzLThmOWYtOGM2MzUxZDg3NTgxIn0sIHsibmFtZSI6ICJ1c2VyVHlwZSIsICJ2YWx1ZSI6ICJORVcifV0sICJoZWFkZXJzU2l6ZSI6IDQ2OSwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJDb250ZW50LVR5cGUiLCAidmFsdWUiOiAiaW1hZ2UvZ2lmIn0sIHsibmFtZSI6ICJDb250ZW50LUxlbmd0aCIsICJ2YWx1ZSI6ICI0MyJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJUdWUifSwgeyJuYW1lIjogIkRhdGUiLCAidmFsdWUiOiAiMTggSnVuIDIwMjQgMDU6NTQ6MTAgR01UIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogInByaXZhdGUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibm8tc3RvcmUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibm8tY2FjaGUifSwgeyJuYW1lIjogIkNhY2hlLUNvbnRyb2wiLCAidmFsdWUiOiAibXVzdC1yZXZhbGlkYXRlIn0sIHsibmFtZSI6ICJDYWNoZS1Db250cm9sIiwgInZhbHVlIjogInBvc3QtY2hlY2s9MCJ9LCB7Im5hbWUiOiAiQ2FjaGUtQ29udHJvbCIsICJ2YWx1ZSI6ICJwcmUtY2hlY2s9MCJ9LCB7Im5hbWUiOiAiUHJhZ21hIiwgInZhbHVlIjogIm5vLWNhY2hlIn0sIHsibmFtZSI6ICJFeHBpcmVzIiwgInZhbHVlIjogIk1vbiJ9LCB7Im5hbWUiOiAiRXhwaXJlcyIsICJ2YWx1ZSI6ICIyNiBKdWwgMTk5NyAwNTowMDowMCBHTVQifSwgeyJuYW1lIjogIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiwgInZhbHVlIjogIm9iamVjdC1zcmMgJ25vbmUnOyBmcmFtZS1hbmNlc3RvcnMgaHR0cHM6Ly8qLnRydXN0YXJjLmNvbSBodHRwczovLyoucHJvZC5pbnRlcm5hbC50cnVzdGFyYy5jb20gaHR0cHM6Ly8qLnRydXN0YXJjLmV1IGh0dHBzOi8vKi5wcm9kLmludGVybmFsLnRydXN0YXJjLmV1IGh0dHBzOi8vKi5zdGFnaW5nLmludGVybmFsLnRydXN0YXJjLmNvbSBodHRwczovLyoudHJ1c3RhcmMtc3ZjLm5ldCBodHRwczovLyoudHJ1c3RlLXN2Yy5uZXQgaHR0cHM6Ly8qLnFhLnRydXN0ZS1zdmMubmV0IGh0dHBzOi8vKi5kZXYudHJ1c3RlLXN2Yy5uZXQgIGh0dHA6Ly9sb2NhbGhvc3Q6KiBodHRwczovLyoubnltaXR5LmNvbSBodHRwczovLyoucWFueW07OyB1cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzOyBibG9jay1hbGwtbWl4ZWQtY29udGVudDsgcmVwb3J0LXVyaSBodHRwczovL2NzcC1yZXBvcnRlci50b29scy50cnVzdGFyYy1zdmMubmV0L3JlcG9ydCJ9LCB7Im5hbWUiOiAiQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSIsICJ2YWx1ZSI6ICJjcm9zcy1vcmlnaW4ifSwgeyJuYW1lIjogIlJlZmVycmVyLVBvbGljeSIsICJ2YWx1ZSI6ICJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIn0sIHsibmFtZSI6ICJYLUZyYW1lLU9wdGlvbnMiLCAidmFsdWUiOiAiU0FNRU9SSUdJTiJ9LCB7Im5hbWUiOiAiWC1YU1MtUHJvdGVjdGlvbiIsICJ2YWx1ZSI6ICIxOyBtb2RlPWJsb2NrIn0sIHsibmFtZSI6ICJYLUNvbnRlbnQtVHlwZS1PcHRpb25zIiwgInZhbHVlIjogIm5vc25pZmYifSwgeyJuYW1lIjogIlZpYSIsICJ2YWx1ZSI6ICIxLjEgNTE5ZTJiZmVmNGM2NjViY2YyZDZiYzNhMzc0YzVmODIuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIk9yaWdpbiJ9LCB7Im5hbWUiOiAiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSIsICJ2YWx1ZSI6ICJ1bnNhZmUtbm9uZSJ9LCB7Im5hbWUiOiAiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiLCAidmFsdWUiOiAiY3Jvc3Mtb3JpZ2luIn0sIHsibmFtZSI6ICJleHBlY3QtY3QiLCAidmFsdWUiOiAiZW5mb3JjZSJ9LCB7Im5hbWUiOiAiZXhwZWN0LWN0IiwgInZhbHVlIjogIm1heC1hZ2U9NjAifSwgeyJuYW1lIjogInBlcm1pc3Npb25zLXBvbGljeSIsICJ2YWx1ZSI6ICJnZW9sb2NhdGlvbj0oKSJ9LCB7Im5hbWUiOiAicGVybWlzc2lvbnMtcG9saWN5IiwgInZhbHVlIjogImNhbWVyYT0oKSJ9LCB7Im5hbWUiOiAicGVybWlzc2lvbnMtcG9saWN5IiwgInZhbHVlIjogInNwZWFrZXI9KCkifSwgeyJuYW1lIjogInBlcm1pc3Npb25zLXBvbGljeSIsICJ2YWx1ZSI6ICJtaWNyb3Bob25lPSgpIn0sIHsibmFtZSI6ICJwZXJtaXNzaW9ucy1wb2xpY3kiLCAidmFsdWUiOiAidmlicmF0ZT0oKSJ9LCB7Im5hbWUiOiAic3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwOyBpbmNsdWRlU3ViRG9tYWlucyJ9LCB7Im5hbWUiOiAieC1wZXJtaXR0ZWQtY3Jvc3MtZG9tYWluLXBvbGljaWVzIiwgInZhbHVlIjogIm5vbmUifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiTWlzcyBmcm9tIGNsb3VkZnJvbnQifSwgeyJuYW1lIjogIngtYW16LWNmLXBvcCIsICJ2YWx1ZSI6ICJOUlQyMC1QMiJ9LCB7Im5hbWUiOiAieC1hbXotY2YtaWQiLCAidmFsdWUiOiAiNVVtb1dzcmZvdTlzVkh0VUJmN0RhaUVQX2xBbUR5VnBTa0x5NmdyMWthUUhDNzR1Mmg4VTVRPT0ifV0sICJjb250ZW50IjogeyJzaXplIjogNDMsICJtaW1lVHlwZSI6ICJpbWFnZS9naWYiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICJSMGxHT0RsaEFRQUJBSUFBQU52Zjd3QUFBQ0g1QkFFQUFBQUFMQUFBQUFBQkFBRUFBQUlDUkFFQU93PT0iLCAiZW5jb2RpbmciOiAiYmFzZTY0In0sICJoZWFkZXJzU2l6ZSI6IDEwNTAsICJib2R5U2l6ZSI6IDYxLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAxMTExfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogNzAyLjM4NSwgInJlY2VpdmUiOiAxLjQxOX0sICJwYWdlcmVmIjogInBhZ2VANWMwOTFjN2VkMTgwODk2ZWFiM2IyMGZiYTlmZTk0YTkiLCAic2VydmVySVBBZGRyZXNzIjogIjE4LjE3Mi41Mi40OSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiQ049Ki50cnVzdGFyYy5jb20iLCAidmFsaWRGcm9tIjogMTcxMDU0NzIwMCwgInZhbGlkVG8iOiAxNzQ0Njc1MTk5fX1dfX0=","disable_correlation":true,"to_ids":false,"type":"attachment","uuid":"8c6eff87-5e2a-4fad-bbc9-7015991206ee","value":"har.json"},{"category":"External analysis","comment":"The rendered page at the end of the capture","data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnRydXN0ZV9jdXJzb3JfcG9pbnRlciB7Y3Vyc29yOiBwb2ludGVyO30udHJ1c3RlX2JvcmRlcl9ub25lIHtib3JkZXI6IG5vbmU7fTwvc3R5bGU+PG1ldGEgY2hhcnNldD0iVVRGLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj48bGluayByZWw9Imljb24iIGhyZWY9ImRhdGE6LCI+PHNjcmlwdCBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYWRzZW5zZS9kb21haW5zL2NhZi5qcz9hYnA9MSZhbXA7Z2RhYnA9dHJ1ZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vYnRsb2FkZXIuY29tL3RhZz9vPTUwOTc5MjY3ODI2MTU1NTImYW1wO3VwYXBpPXRydWUiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQ+d2luZG93LkxBTkRFUl9TWVNURU09IlBXIjwvc2NyaXB0PjxzY3JpcHQgZGVmZXI9ImRlZmVyIiBzcmM9Imh0dHBzOi8vaW1nMS53c2ltZy5jb20vcGFya2luZy1sYW5kZXIvc3RhdGljL2pzL21haW4uMzhhZGZjZmEuanMiPjwvc2NyaXB0PjxsaW5rIGhyZWY9Imh0dHBzOi8vaW1nMS53c2ltZy5jb20vcGFya2luZy1sYW5kZXIvc3RhdGljL2Nzcy9tYWluLjExY2UyZWQ5LmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij48L2hlYWQ+PGJvZHk+PGRpdiBpZD0icm9vdCI+PGRpdiBpZD0iY29udGVudE1haW4iPjxkaXYgZGF0YS10ZXN0aWQ9InBhcmt3ZWJMYXlvdXQiIGlkPSJjb250ZW50TGF5b3V0Ij48c3R5bGU+Ym9keSB7IG1hcmdpbjogMDsKCXBhZGRpbmc6IDA7IH0KI2NvbnRlbnRNYWluIHsgaGVpZ2h0OjEwMHZoOyB9CiNjb250ZW50TGF5b3V0IHsgY29sb3I6ICMxMTExMTE7Cglmb250LWZhbWlseTogR0QgU2hlcnBhLGFyaWFsOwoJbWluLWhlaWdodDogMTAwJTsKCWRpc3BsYXk6IGdyaWQ7CglncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIGF1dG87IH0KI2RvbWFpbkJhbm5lciB7IGJhY2tncm91bmQtY29sb3I6ICNEOEVFRUY7IH0KI2dkTG9nbyB7IHBhZGRpbmctbGVmdDogMTAlOwoJcGFkZGluZy10b3A6IDIwcHg7IH0KI2RvbWFpbiB7IGZvbnQtc2l6ZTogNDhweDsKCWZvbnQtd2VpZ2h0OiA2MDA7CglsaW5lLWhlaWdodDogNjBweDsKCXRleHQtYWxpZ246IGNlbnRlcjsKCXBhZGRpbmctYm90dG9tOiA1cHg7IH0KI2RvbWFpbkluZm8geyBmb250LXNpemU6IDIwcHg7Cglmb250LXdlaWdodDogNjAwOwoJbGluZS1oZWlnaHQ6IDI4cHg7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7CglwYWRkaW5nLWJvdHRvbTogNXB4OyB9CiNnZXRCdXR0b24geyBwYWRkaW5nLXRvcDogMTBweDsKCXBhZGRpbmctYm90dG9tOiAyMHB4OyB9CiNnZXRCdXR0b25Cb3ggeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExMTExOwoJY29sb3I6IHdoaXRlOwoJZm9udC1zaXplOiAxNnB4OwoJd2lkdGg6IDI0OHB4OwoJbWFyZ2luOiBhdXRvOwoJdGV4dC1hbGlnbjogY2VudGVyOyB9CiNnZXRCdXR0b25Cb3hMaW5rIHsgZGlzcGxheTogYmxvY2s7CglsaW5lLWhlaWdodDogNTBweDsKCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKCWZvbnQtd2VpZ2h0OiBib2xkOwoJY29sb3I6IHdoaXRlOyB9CiNyZWxhdGVkTGlua3MsICNhZHMgeyBib3JkZXI6IHNvbGlkICNENkQ2RDYgMXB4OwoJYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgfQojcHJpdmFjeSBhIHsgY29sb3I6ICMxMTE7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KI3ByaXZhY3kgYTpob3ZlciB7IGNvbG9yOiAjMTExOwoJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KLmNlbnRlciB7IHdpZHRoOiAxMDAlOwoJZGlzcGxheTogZmxleDsKCWp1c3RpZnktY29udGVudDogY2VudGVyOwoJYWxpZ24taXRlbXM6IGNlbnRlcjsgfQojdmVyaXpvbi1mZWVkIHsgd2lkdGg6IDEwMCU7CgltYXgtd2lkdGg6IDgwMHB4OwoJcGFkZGluZzogMXB4LDsgfQojdmVyaXpvbi1mZWVkIHNwYW4geyBjb2xvcjogIzkyOTI5MjsgfQojdmVyaXpvbi1mZWVkIGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cgljb2xvcjogICMxMTExMTE7IH0KI3Zlcml6b24tZmVlZCAudmVyaXpvbi1ycyB1bCB7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9CiN2ZXJpem9uLWZlZWQgLnZlcml6b24tYWRzIHsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CglwYWRkaW5nOiA4cHg7IH0KI3Zlcml6b24tZmVlZCAudmVyaXpvbi1hZHMgLmFkTGluayB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwoJY29sb3I6ICMwMDAwRUU7IH0KI2FkVGlsZSB7IGJvcmRlcjogMXB4IHNvbGlkICNENkQ2RDY7CglwYWRkaW5nOiAxNnB4IDE0cHg7CgltYXgtd2lkdGg6IDUxMnB4OyB9CiNhZFRpbGUgaDEgeyBmb250LXNpemU6IDM2cHg7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cglmb250LXdlaWdodDogNjAwOyB9CiNhZFRpbGUgcCB7IGZvbnQtc2l6ZTogMjBweDsKCXRleHQtYWxpZ246IGNlbnRlcjsKCWNvbG9yOiAjNzY3Njc2OyB9Ci52ZXJ0aWNhbFRhYmxlIHsgZGlzcGxheTogZmxleDsKCWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KLmFkVGlsZVJvdyB7IGRpc3BsYXk6IGZsZXg7CglmbGV4LWRpcmVjdGlvbjogcm93OwoJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRDZENkQ2OwoJYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0Q2RDZENjsKCWJvcmRlci10b3A6IDFweCBzb2xpZCAjRDZENkQ2OwoJcGFkZGluZzogMTJweDsKCWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKCWFsaWduLWl0ZW1zOiBjZW50ZXI7Cglmb250LXNpemU6IDE4cHg7Cgljb2xvcjogIzc2NzY3NjsgfQouYWRUaWxlUm93Omxhc3Qtb2YtdHlwZSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDZENkQ2OyB9Ci5hZFRpbGVEb21haW5MYWJlbCB7IGZsZXgtc2hyaW5rOiAyOwoJZGlzcGxheTogZmxleDsKCWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CglqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKCW1hcmdpbi1yaWdodDogNHB4OwoJbWluLXdpZHRoOiAwcHg7CgltYXgtd2lkdGg6IDUwJTsKCWhlaWdodDogNDBweDsgfQouYWRUaWxlRG9tYWluIHsgbWF4LXdpZHRoOiAxMDAlOwoJb3ZlcmZsb3cteDogaGlkZGVuOwoJdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cgl3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5hZFRpbGVQcm9tb3RlZCB7IGZvbnQtc2l6ZTogMTJweDsgfQouYWRUaWxlUHJpY2VzIHsgZGlzcGxheTogZmxleDsKCWZsZXgtZGlyZWN0aW9uOiByb3c7CglhbGlnbi1pdGVtczogYmFzZWxpbmU7IH0KLmNyb3NzZWRQcmljZSB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwoJZm9udC1zaXplOiAxNHB4OwoJbWFyZ2luLXJpZ2h0OiA4cHg7IH0KLnNhbGVQcmljZSB7IGNvbG9yOiAjMDBBNEE2OwoJZm9udC13ZWlnaHQ6IGJvbGQ7Cglmb250LXNpemU6IDE2cHg7CgltYXJnaW4tcmlnaHQ6IDEycHg7IH0KI2dkTG9nbyB7IHBhZGRpbmctbGVmdDogMDsKCXBhZGRpbmctdG9wOiAxN3B4OwoJdGV4dC1hbGlnbjogY2VudGVyOyB9I2RvbWFpbkJhbm5lciB7IHBhZGRpbmctYm90dG9tOiAxMHB4OyB9I2RvbWFpbiB7IGZvbnQtc2l6ZTogMjRweDsKCWZvbnQtd2VpZ2h0OiA1MDA7CglsaW5lLWhlaWdodDogMjhweDsKCW1hcmdpbi10b3A6IDEycHg7IH0jZG9tYWluSW5mbyB7IHBhZGRpbmctbGVmdDogNXB4OwoJcGFkZGluZy1yaWdodDogNXB4OwoJbWFyZ2luLXRvcDogN3B4OyB9I2dldEJ1dHRvbiB7IHBhZGRpbmctYm90dG9tOiAxMHB4OyB9I2dldEJ1dHRvbkJveCB7IHdpZHRoOiAzNDBweDsgfSNnZXRCdXR0b25Cb3hMaW5rIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfSNyZWxhdGVkTGlua3MsICNhZHMgeyB3aWR0aDogMzYwcHg7Cglib3JkZXI6IHNvbGlkICNENkQ2RDYgMXB4OwoJcGFkZGluZzogMDsgfS5hZFJvdyB7IHdpZHRoOiAxMDAlOwoJZGlzcGxheTogZmxleDsKCWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CglqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OwoJYWxpZ24taXRlbXM6IGNlbnRlcjsgfSNhZFRpbGUgeyBtYXgtd2lkdGg6IDEwMCU7IH08L3N0eWxlPjxkaXYgaWQ9ImRvbWFpbkJhbm5lciI+PGRpdiBpZD0iZ2RMb2dvIiBzdHlsZT0iYWxpZ24tc2VsZjogY2VudGVyOyBtYXJnaW4tbGVmdDogMC41cmVtOyI+PHN2ZyB3aWR0aD0iMTUwIiB2aWV3Qm94PSIwIDAgMTI2IDI3IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjQuOTU2OCAxLjQ1MDgyQzIxLjk1MzcgLTAuNDI1NDc4IDE4LjAwMDMgMC4wMjE1NTE2IDE0LjQ3NDMgMi4yMzcxQzEwLjk1OTMgMC4wMjE1NTE2IDcuMDAzMzcgLTAuNDI1NDc4IDQuMDAzOTkgMS40NTA4MkMtMC43NDA2NDkgNC40MTU5MSAtMS4zMTc1IDEyLjA1MjIgMi43MTY3OSAxOC41MDc3QzUuNjkwNDUgMjMuMjY3MSAxMC4zNDA4IDI2LjA1NTggMTQuNDgwNCAyNi4wMDQ0QzE4LjYyIDI2LjA1NTggMjMuMjcwMyAyMy4yNjcxIDI2LjI0NCAxOC41MDc3QzMwLjI3MzQgMTIuMDUyMiAyOS43MDE0IDQuNDE1OTEgMjQuOTU2OCAxLjQ1MDgyWk00Ljg5ODAxIDE3LjE0NDZDNC4wNjYxNSAxNS44MjU5IDMuNDM4NTIgMTQuMzg5IDMuMDM2NCAxMi44ODI2QzIuNjc5MTQgMTEuNTc0OSAyLjU0MjU1IDEwLjIxNjggMi42MzIyNCA4Ljg2NDE5QzIuODEyMjggNi40Nzg0IDMuNzgzNDkgNC42MjA0OCA1LjM2NTg2IDMuNjMyMTFDNi45NDgyMiAyLjY0Mzc1IDkuMDQwMDcgMi41ODM3NCAxMS4yNjc5IDMuNDY4QzExLjYwMjIgMy42MDE0OSAxMS45MzI5IDMuNzU1ODEgMTIuMjYxMSAzLjkyNjA1QzExLjAyMzEgNS4wNTQ4NiA5Ljk0NjY4IDYuMzQ4OTMgOS4wNjIxMSA3Ljc3MTczQzYuNjEyNjQgMTEuNjkwOSA1Ljg2NTU1IDE2LjA1MjIgNi43MjA0MiAxOS41MjkyQzYuMDM4NzcgMTguNzkzOSA1LjQyODU2IDE3Ljk5NTQgNC44OTgwMSAxNy4xNDQ2Wk0yNC4wNjM5IDE3LjE0MzVDMjQuODk1MyAxNS44MjQ1IDI1LjUyMjkgMTQuMzg3NiAyNS45MjU1IDEyLjg4MTRDMjYuMjgwNyAxMS41NzMgMjYuNDE1NiAxMC4yMTQ1IDI2LjMyNDggOC44NjE4QzI2LjE0NDcgNi40NzYwMSAyNS4xNzQ3IDQuNjE5MzEgMjMuNTkxMiAzLjYyOTcyQzIyLjAwNzYgMi42NDAxMyAxOS45MTIgMi41ODEzNSAxNy42OTA0IDMuNDY1NjFDMTYuNDM3NSAzLjk3ODUyIDE1LjI3ODYgNC42OTYyMSAxNC4yNjExIDUuNTg5M0MxMS45MDE3IDcuNjUzNTEgMTAuMjA1IDEwLjM2OSA5LjM4NDIgMTMuMzk0NkM5LjAyNzQ4IDE0LjcwMjMgOC44OTA4OSAxNi4wNjAzIDguOTgwMDMgMTcuNDEyOUM5LjE2MDA3IDE5Ljc5NzUgMTAuMTMxMyAyMS42NTU0IDExLjcxNDkgMjIuNjQ1QzEyLjUzMDkgMjMuMTQ0MyAxMy40NjYyIDIzLjQxNSAxNC40MjI4IDIzLjQyODhIMTQuNDgwM0gxNC41NDRDMTUuNTAwNSAyMy40MTQ3IDE2LjQzNTcgMjMuMTQ0IDE3LjI1MTkgMjIuNjQ1QzE4LjgzNDMgMjEuNjU1NCAxOS44MDU1IDE5Ljc5NzUgMTkuOTg1NSAxNy40MTI5QzIwLjA3NDMgMTYuMDYxOSAxOS45MzczIDE0LjcwNTUgMTkuNTgwMSAxMy4zOTk1QzE5LjQ4ODMgMTMuMDMyMSAxOS4zNjU4IDEyLjY2NDcgMTkuMjQzNCAxMi4yOTczTDE5LjI0MzMgMTIuMjk3MkwxNS40NTY0IDE0LjY2MzRDMTUuMzQ5MiAxNC43MzA3IDE1LjIxOTUgMTQuNzUyNSAxNS4wOTYxIDE0LjcyNEMxNC45NzI3IDE0LjY5NTUgMTQuODY1NyAxNC42MTkxIDE0Ljc5ODggMTQuNTExNUwxMy45NDE0IDEzLjE0MUMxMy44NzQxIDEzLjAzMzYgMTMuODUyMiAxMi45MDM3IDEzLjg4MDcgMTIuNzgwMUMxMy45MDkyIDEyLjY1NjUgMTMuOTg1NyAxMi41NDkzIDE0LjA5MzMgMTIuNDgyMUwxOS45MzUzIDguODMyNDFDMjAuMDQ3OCA4Ljc2MDA3IDIwLjE4NTcgOC43Mzg3NiAyMC4zMTQ4IDguNzczNzhDMjAuNDQzOSA4LjgwODc5IDIwLjU1MjEgOC44OTY4NSAyMC42MTI2IDkuMDE2MTJDMjIuNDg2NCAxMi41OTczIDIzLjAwNTcgMTYuNDE2IDIyLjI0MTUgMTkuNTMyOUMyMi45MjI3IDE4Ljc5NTUgMjMuNTMyOSAxNy45OTU1IDI0LjA2MzkgMTcuMTQzNVpNNTYuMDgxIDEwLjAzMTRDNTMuMDA5NCAxMC4wMzE0IDUwLjUyNjggMTIuNDI5NCA1MC41MjY4IDE1LjQ4MDNDNTAuNTI2OCAxOC41MTAzIDUzLjAwOTQgMjAuODY5MSA1Ni4wODEgMjAuODY5MUM1OS4xNzM1IDIwLjg2OTEgNjEuNjU2IDE4LjUxMzkgNjEuNjU2IDE1LjQ4MDNDNjEuNjU2IDEyLjQzMDcgNTkuMTc3MSAxMC4wMzI2IDU2LjA4MSAxMC4wMzI2VjEwLjAzMTRaTTUzLjU4NzUgMTUuNDU5NEM1My41ODc1IDE2Ljg3NTIgNTQuNjY1MyAxOC4wMjAzIDU2LjA4MTEgMTguMDIwM1YxOC4wMjUyQzU3LjUxNzcgMTguMDI1MiA1OC41OTU0IDE2Ljg3ODkgNTguNTk1NCAxNS40NjMxQzU4LjU5NTQgMTQuMDQ3MyA1Ny41MTc3IDEyLjg4MTMgNTYuMDgxMSAxMi44ODEzQzU0LjY2NTMgMTIuODgxMyA1My41ODc1IDE0LjA0MzYgNTMuNTg3NSAxNS40NTk0Wk02OC41ODE5IDUuODQ2NEg2Mi45Mjk4QzYyLjgwNjQgNS44NDQwMyA2Mi42ODc0IDUuODkyMDkgNjIuNjAwMiA1Ljk3OTQ2QzYyLjUxMzEgNi4wNjY4NCA2Mi40NjU0IDYuMTg1OTcgNjIuNDY4MSA2LjMwOTM1VjIwLjA4ODlDNjIuNDU5MiAyMC4yMTY0IDYyLjUwNCAyMC4zNDE5IDYyLjU5MTcgMjAuNDM0OUM2Mi42Nzk0IDIwLjUyNzkgNjIuODAxOSAyMC41ODAxIDYyLjkyOTggMjAuNTc4OEg2OC41ODE5QzczLjEwNDkgMjAuNTc4OCA3Ni4yNDc2IDE3LjU3MDggNzYuMjQ3NiAxMy4xOTQ4Qzc2LjI0NzYgOC43OTE4OSA3My4xMDQ5IDUuODQ2NCA2OC41ODE5IDUuODQ2NFpNNjUuNjIzIDE3LjY2ODlINjguNzE1NUM3MS4yMTg4IDE3LjY2ODkgNzIuOTQ0NSAxNS43MTMgNzIuOTQ0NSAxMy4xODg4QzcyLjk0NDUgMTAuNjIxOCA3MS4yMTg4IDguNzQ5MTMgNjguNzE1NSA4Ljc0OTEzSDY1LjYyM1YxNy42Njg5Wk04Ny40OTggMTAuMzI3OEg4NS4zNzMxQzg1LjEyOTUgMTAuMzQ3MSA4NC45Mzk1IDEwLjU0NjYgODQuOTMyMiAxMC43OTA3VjExLjQyMTVDODQuNDQ4NCAxMC42MjE3IDgzLjM1NDcgMTAuMDMyNiA4MS45OTI4IDEwLjAzMjZDNzkuMzQyNSAxMC4wMzI2IDc2Ljg1OTkgMTIuMTE0NyA3Ni44NTk5IDE1LjQzOTlDNzYuODU5OSAxOC43NDY2IDc5LjMyMDQgMjAuODY2NyA4MS45NzIgMjAuODY2N0M4My4zMzg4IDIwLjg2NjcgODQuNDU0NSAyMC4yNzg4IDg0LjkzODMgMTkuNDc5VjIwLjEzMDZDODQuOTM5NiAyMC4zNzM4IDg1LjEzNjEgMjAuNTcwNyA4NS4zNzkyIDIwLjU3MjdIODcuNTA0MUM4Ny42MjIyIDIwLjU3NTQgODcuNzM2MiAyMC41Mjk3IDg3LjgxOTcgMjAuNDQ2MkM4Ny45MDMzIDIwLjM2MjcgODcuOTQ5IDIwLjI0ODcgODcuOTQ2MyAyMC4xMzA2VjEwLjc5MDdDODcuOTQ5OSAxMC42Njk0IDg3LjkwNDMgMTAuNTUxOCA4Ny44MTk5IDEwLjQ2NDZDODcuNzM1NSAxMC4zNzc0IDg3LjYxOTQgMTAuMzI4MSA4Ny40OTggMTAuMzI3OFpNODAuMDkwOCAxNS40NjE5QzgwLjA5MDggMTYuOTYyMiA4MS4xNDc4IDE4LjA0MzYgODIuNTU1IDE4LjA0MzZWMTguMDQyNEM4My45NjM0IDE4LjA0MjQgODUuMDE5MiAxNi45NjA5IDg1LjAxOTIgMTUuNDYwNkM4NS4wMTkyIDEzLjk2MDMgODMuOTYyMiAxMi44ODEzIDgyLjU1NSAxMi44ODEzQzgxLjE0NzggMTIuODgxMyA4MC4wOTA4IDEzLjk2MTYgODAuMDkwOCAxNS40NjE5Wk05OS40MjU4IDUuODQ2NTJIOTcuMzAwOEM5Ny4xODA3IDUuODQyOSA5Ny4wNjQxIDUuODg3NjggOTYuOTc3MyA1Ljk3MDgxQzk2Ljg5MDUgNi4wNTM5NCA5Ni44NDA3IDYuMTY4NDYgOTYuODM5MSA2LjI4ODY1VjExLjM3OTlDOTYuMzQ5MiAxMC42MjE4IDk1LjIzOTYgMTAuMDMyNyA5My44NTIgMTAuMDMyN0M5MS4yMjEyIDEwLjAzMjcgODguNzgxNiAxMi4xMTQ3IDg4Ljc4MTYgMTUuNDM5OUM4OC43ODE2IDE4Ljc0NjcgOTEuMjQyMSAyMC44NjY3IDkzLjg5MzYgMjAuODY2N0M5NS4yNjA0IDIwLjg2NjcgOTYuMjkxNiAyMC4yNzg4IDk2Ljg1OTkgMTkuNDc5MVYyMC4xMzA2Qzk2Ljg2MDYgMjAuMzc0MSA5Ny4wNTc0IDIwLjU3MTQgOTcuMzAwOCAyMC41NzI4SDk5LjQyNThDOTkuNTQzOSAyMC41NzU4IDk5LjY1ODIgMjAuNTMwMiA5OS43NDE4IDIwLjQ0NjZDOTkuODI1MyAyMC4zNjMxIDk5Ljg3MDkgMjAuMjQ4OCA5OS44Njc5IDIwLjEzMDZWNi4yOTExQzk5Ljg3MTYgNi4xNzI1MSA5OS44MjYzIDYuMDU3NjEgOTkuNzQyNyA1Ljk3MzQ4Qzk5LjY1OSA1Ljg4OTM1IDk5LjU0NDQgNS44NDM0MyA5OS40MjU4IDUuODQ2NTJaTTkyLjAzMzIgMTUuNDYwNkM5Mi4wMzMyIDE2Ljk3NjggOTMuMDgxNiAxOC4wNjkzIDk0LjQ4MjcgMTguMDY5M0M5NS44ODUgMTguMDY5MyA5Ni45MzIyIDE2Ljk3NjggOTYuOTMyMiAxNS40NjA2Qzk2LjkzMjIgMTMuOTQ0NCA5NS44ODAxIDEyLjg1MTkgOTQuNDgyNyAxMi44NTE5QzkzLjA4NTMgMTIuODUxOSA5Mi4wMzMyIDEzLjk0NDQgOTIuMDMzMiAxNS40NjA2Wk0xMTEuMzUxIDUuODQ2NTJIMTA5LjIzQzEwOS4xMDkgNS44NDI5IDEwOC45OTMgNS44ODc2NCAxMDguOTA2IDUuOTcwNzRDMTA4LjgxOSA2LjA1Mzg0IDEwOC43NjkgNi4xNjgzNSAxMDguNzY3IDYuMjg4NjVWMTEuMzc5OUMxMDguMjgzIDEwLjYyMTggMTA3LjE2NyAxMC4wMzI3IDEwNS43OCAxMC4wMzI3QzEwMy4xNDkgMTAuMDMyNyAxMDAuNzA5IDEyLjExNDcgMTAwLjcwOSAxNS40Mzk5QzEwMC43MDkgMTguNzQ2NyAxMDMuMTcxIDIwLjg2NjcgMTA1LjgyMSAyMC44NjY3QzEwNy4xODkgMjAuODY2NyAxMDguMjE5IDIwLjI3ODggMTA4Ljc4OCAxOS40NzkxVjIwLjEzMDZDMTA4Ljc4OSAyMC4zNzQzIDEwOC45ODYgMjAuNTcxNCAxMDkuMjMgMjAuNTcyOEgxMTEuMzUxQzExMS40NjkgMjAuNTc1OCAxMTEuNTgzIDIwLjUzMDIgMTExLjY2NyAyMC40NDY2QzExMS43NSAyMC4zNjMgMTExLjc5NSAyMC4yNDg3IDExMS43OTIgMjAuMTMwNlY2LjI5MTFDMTExLjc5NiA2LjE3MjYyIDExMS43NTEgNi4wNTc3MiAxMTEuNjY4IDUuOTczNTRDMTExLjU4NCA1Ljg4OTM3IDExMS40NyA1Ljg0MzQxIDExMS4zNTEgNS44NDY1MlpNMTAzLjk1OCAxNS40NjA2QzEwMy45NTggMTYuOTc2OCAxMDUuMDA2IDE4LjA2OTMgMTA2LjQwOCAxOC4wNjkzSDEwNi40MTJDMTA3LjgxMyAxOC4wNjkzIDEwOC44NTcgMTYuOTc2OCAxMDguODU3IDE1LjQ2MDZDMTA4Ljg1NyAxMy45NDQ0IDEwNy44MDUgMTIuODUxOSAxMDYuNDA4IDEyLjg1MTlDMTA1LjAxMSAxMi44NTE5IDEwMy45NTggMTMuOTQ0NCAxMDMuOTU4IDE1LjQ2MDZaTTEyMi45ODYgMTEuMDQ0MkwxMTkuODE1IDIxLjkxODdDMTE5LjIwMyAyMy44NTM3IDExNy44MzcgMjUuMDExMSAxMTUuNzEyIDI1LjAxMTFDMTE0Ljc0NiAyNS4wMTExIDExMy44NjcgMjQuODEzOSAxMTMuMTc3IDI0LjQxOTZDMTEyLjc3NSAyNC4xOTA2IDExMi40NDIgMjMuOTgxMSAxMTIuNDQyIDIzLjY0NTVDMTEyLjQ0MiAyMy40MzczIDExMi41MSAyMy4zMjk2IDExMi42MzIgMjMuMTM0OEwxMTMuMjYyIDIyLjE5MThDMTEzLjQzOSAyMS45Mjg1IDExMy41NyAyMS44NDI3IDExMy43NjEgMjEuODQyN0MxMTMuOTEzIDIxLjg0NjQgMTE0LjA1OSAyMS44OTc0IDExNC4xOCAyMS45ODg1QzExNC41NzYgMjIuMjQ0NCAxMTQuOTQzIDIyLjQ2NDkgMTE1LjUwMyAyMi40NjQ5QzExNi4xNTcgMjIuNDY0OSAxMTYuNjU3IDIyLjI1NTUgMTE2LjkyNiAyMS40NzY1TDExNy4xOTggMjAuNTczOUgxMTUuOTE0QzExNS41OTggMjAuNTczOSAxMTUuNDI0IDIwLjM4NTMgMTE1LjM0NiAyMC4xMzE4TDExMi41MDggMTEuMDQ0MkMxMTIuNDAzIDEwLjY4NjYgMTEyLjUgMTAuMzI5IDExMy4wMjUgMTAuMzI5SDExNS4yNkMxMTUuNTMzIDEwLjMyOSAxMTUuNzI1IDEwLjQyMiAxMTUuODQ1IDEwLjgxMjdMMTE3Ljk0IDE4LjEzMDVMMTE5LjkgMTAuODEyN0MxMTkuOTYyIDEwLjU2MDQgMTIwLjEzMSAxMC4zMjkgMTIwLjQ2OCAxMC4zMjlIMTIyLjU4OEMxMjMuMDA2IDEwLjMyNzcgMTIzLjEzMiAxMC42MjE3IDEyMi45ODYgMTEuMDQ0MlpNNDkuNzI1OSAyMC4wODc3VjE0LjI3ODdDNDkuNzI2NyAxNC4xNTMgNDkuNjc1NyAxNC4wMzI1IDQ5LjU4NDggMTMuOTQ1NkM0OS40OTQgMTMuODU4NyA0OS4zNzEzIDEzLjgxMyA0OS4yNDU4IDEzLjgxOTVINDMuODI2M0M0My42OTg0IDEzLjgxNzQgNDMuNTc1MSAxMy44Njc0IDQzLjQ4NDYgMTMuOTU3OUM0My4zOTQxIDE0LjA0ODMgNDMuMzQ0MiAxNC4xNzE2IDQzLjM0NjIgMTQuMjk5NVYxNS44NzgyQzQzLjM0NDIgMTYuMDA2MiA0My4zOTQxIDE2LjEyOTUgNDMuNDg0NiAxNi4yMTk5QzQzLjU3NTEgMTYuMzEwNCA0My42OTg0IDE2LjM2MDMgNDMuODI2MyAxNi4zNTgzSDQ1LjY3NTZDNDUuMDk2MyAxNy4xNjU0IDQzLjg1MzIgMTcuOTAwMyA0Mi4yOTQxIDE3LjkwMDNDMzkuMzMwMyAxNy45MDAzIDM3LjczODEgMTUuNzkyNSAzNy43MzgxIDEzLjIyOTFDMzcuNzM4MSAxMC41ODQ5IDM5LjYwODMgOC41NDU3MyA0Mi4yMTk0IDguNTQ1NzNDNDQuMjMyOSA4LjU0NTczIDQ1LjU0MDkgOS40OTQ5IDQ2LjI3NTggMTAuODkyM0M0Ni4zMjUyIDExLjAwOTcgNDYuNDExMSAxMS4xMDggNDYuNTIwNyAxMS4xNzI4QzQ2LjY0NTggMTEuMjIwMSA0Ni43ODQyIDExLjIxNzkgNDYuOTA3NyAxMS4xNjY3TDQ4Ljk1NTUgMTAuMzc3OUM0OS4yMzYgMTAuMjgxMiA0OS4zMjI5IDEwLjE4MDggNDkuMzIyOSAxMC4wNDg1QzQ5LjMyMDMgOS45Njc4OCA0OS4zMDI0IDkuODg4NSA0OS4yNzAyIDkuODE0NTZDNDguMTIxNCA3LjAxNjAzIDQ1LjUzNDggNS42MjQ3MyA0Mi4yOTkgNS42MjQ3M0MzNy45MTU3IDUuNjI0NzMgMzQuNDQ2IDguNzc5NjUgMzQuNDQ2IDEzLjM1NjVDMzQuNDQ2IDE3Ljc2MDcgMzcuNjU5NyAyMC44NTQzIDQxLjc3MjQgMjAuODU0M0M0My45NjIyIDIwLjg1NDMgNDUuODk4NSAxOS45Njg5IDQ3LjAxMTggMTguNTYyOVYyMC4wODc3QzQ3LjAwOTUgMjAuMjE1NyA0Ny4wNTkzIDIwLjMzOTIgNDcuMTQ5OSAyMC40Mjk3QzQ3LjI0MDQgMjAuNTIwMyA0Ny4zNjM5IDIwLjU3MDEgNDcuNDkxOSAyMC41Njc4SDQ5LjI0NThDNDkuMzczNyAyMC41Njk4IDQ5LjQ5NyAyMC41MTk4IDQ5LjU4NzQgMjAuNDI5M0M0OS42Nzc5IDIwLjMzODkgNDkuNzI3OSAyMC4yMTU2IDQ5LjcyNTkgMjAuMDg3N1pNMTIzLjA0NCA4LjE3NzE5VjguMDM2MzVDMTIzLjA0MyA4LjAyNjQ3IDEyMy4wNDcgOC4wMTY4OSAxMjMuMDUzIDguMDA5NDFDMTIzLjA2IDguMDAzMTQgMTIzLjA3IDcuOTk5NjYgMTIzLjA3OSA3Ljk5OTYxSDEyMy45NzRDMTIzLjk4NCA3Ljk5OTI4IDEyMy45OTMgOC4wMDI4MSAxMjQgOC4wMDk0MUMxMjQuMDA3IDguMDE2ODkgMTI0LjAxIDguMDI2NDcgMTI0LjAxIDguMDM2MzVWOC4xNzcxOUMxMjQuMDEgOC4xODY2NyAxMjQuMDA2IDguMTk1ODEgMTI0IDguMjAyOTFDMTIzLjk5MyA4LjIwOTUgMTIzLjk4NCA4LjIxMzAzIDEyMy45NzQgOC4yMTI3MUgxMjMuNjQ3VjkuMDk1NzVDMTIzLjY0NyA5LjExNTc3IDEyMy42MzEgOS4xMzE4NSAxMjMuNjExIDkuMTMyNDlIMTIzLjQ0MkMxMjMuNDMyIDkuMTMyNDUgMTIzLjQyMyA5LjEyODQ0IDEyMy40MTcgOS4xMjE0N0MxMjMuNDEgOS4xMTQ3NiAxMjMuNDA2IDkuMTA1NDcgMTIzLjQwNiA5LjA5NTc1VjguMjEyNzFIMTIzLjA3OUMxMjMuMDY5IDguMjEzNDYgMTIzLjA2IDguMjA5OTUgMTIzLjA1MyA4LjIwMzEyQzEyMy4wNDYgOC4xOTYzIDEyMy4wNDMgOC4xODY4MiAxMjMuMDQ0IDguMTc3MTlaTTEyNC44NTQgOC41OTg0TDEyNC42MDkgOC4wMzEzNUMxMjQuNjA3IDguMDIyMDcgMTI0LjYwMiA4LjAxMzU4IDEyNC41OTUgOC4wMDY4NUMxMjQuNTg2IDguMDAxNzMgMTI0LjU3NSA3Ljk5OTIgMTI0LjU2MyA3Ljk5OTVIMTI0LjI4OEMxMjQuMjc5IDcuOTk4OCAxMjQuMjY5IDguMDAyMTQgMTI0LjI2MiA4LjAwODY5QzEyNC4yNTYgOC4wMTUyNCAxMjQuMjUyIDguMDI0MzcgMTI0LjI1MiA4LjAzMzhWOS4wOTY4N0MxMjQuMjUyIDkuMTA2NDggMTI0LjI1NSA5LjExNTk0IDEyNC4yNjIgOS4xMjI1OUMxMjQuMjY4IDkuMTI4OTIgMTI0LjI3NyA5LjEzMjQ3IDEyNC4yODUgOS4xMzIzOUgxMjQuNDQ4QzEyNC40NTcgOS4xMzIwNSAxMjQuNDY2IDkuMTI4NTkgMTI0LjQ3MyA5LjEyMjU5QzEyNC40NzkgOS4xMTU0OCAxMjQuNDgzIDkuMTA2MzQgMTI0LjQ4MyA5LjA5Njg3VjguMjk0NjdMMTI0Ljc0NSA4Ljg3NzY0QzEyNC43NDggOC44ODg4OCAxMjQuNzU1IDguODk4NzQgMTI0Ljc2NCA4LjkwNTgxQzEyNC43NzQgOC45MTEyMiAxMjQuNzg1IDguOTEzNzcgMTI0Ljc5NiA4LjkxMzE2SDEyNC45MjZDMTI0LjkzNyA4LjkxMzkzIDEyNC45NDkgOC45MTEzOCAxMjQuOTU5IDguOTA1ODFDMTI0Ljk2OCA4Ljg5ODM5IDEyNC45NzUgOC44ODg2NSAxMjQuOTc5IDguODc3NjRMMTI1LjI0MiA4LjI5NDY3VjkuMDk2ODdDMTI1LjI0MSA5LjEwNjQ4IDEyNS4yNDUgOS4xMTU5NCAxMjUuMjUyIDkuMTIyNTlDMTI1LjI1OSA5LjEyOTE4IDEyNS4yNjggOS4xMzI3MSAxMjUuMjc3IDkuMTMyMzlIMTI1LjQzN0MxMjUuNDQ2IDkuMTMyNzYgMTI1LjQ1NSA5LjEyOTEgMTI1LjQ2MiA5LjEyMjMxQzEyNS40NjggOS4xMTU1MyAxMjUuNDcyIDkuMTA2MjcgMTI1LjQ3MSA5LjA5Njg3VjguMDMzOEMxMjUuNDcxIDguMDI0MzcgMTI1LjQ2OCA4LjAxNTI0IDEyNS40NjEgOC4wMDg2OUMxMjUuNDU0IDguMDAyMTQgMTI1LjQ0NSA3Ljk5ODggMTI1LjQzNSA3Ljk5OTVIMTI1LjE1MUMxMjUuMTQgNy45OTkwNCAxMjUuMTI4IDguMDAxNTcgMTI1LjExOCA4LjAwNjg1QzEyNS4xMDkgOC4wMTI3MSAxMjUuMTAyIDguMDIxMyAxMjUuMDk5IDguMDMxMzVMMTI0Ljg1NCA4LjU5ODRaIiBmaWxsPSIjMTExMTExIj48L3BhdGg+PC9zdmc+PC9kaXY+PGRpdj48ZGl2IGlkPSJkb21haW4iPmJhcHNtYW5kaXJkZXBhcmlzLmZyPC9kaXY+PGRpdiBpZD0iZG9tYWluSW5mbyI+aXMgcGFya2VkIGZyZWUsIGNvdXJ0ZXN5IG9mIEdvRGFkZHkuY29tLjwvZGl2PjxkaXYgaWQ9ImdldEJ1dHRvbiI+PGRpdiBpZD0iZ2V0QnV0dG9uQm94Ij48YSBpZD0iZ2V0QnV0dG9uQm94TGluayIgaHJlZj0iaHR0cHM6Ly93d3cuZ29kYWRkeS5jb20vZG9tYWluZmluZC92MS9yZWRpcmVjdD9rZXk9cGFya3dlYiZhbXA7dXRtX3NvdXJjZT1nb2RhZGR5JmFtcDt1dG1fbWVkaXVtPXBhcmtlZHBhZ2VzJmFtcDt1dG1fY2FtcGFpZ249eF9kb20tYnJva2VyX3BhcmtlZHBhZ2VzX3hfeF9pbnZlc3RfMDAxJmFtcDt0bXNrZXk9ZHBwX2RicyZhbXA7ZG9tYWluVG9DaGVjaz1iYXBzbWFuZGlyZGVwYXJpcy5mciZhbXA7aXNjPUdQUFRDT00mYW1wO2l0Yz1wYXJrZWRwYWdlX2xhbmRlcnMiPkdldCBUaGlzIERvbWFpbjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2PjxkaXYgaWQ9ImNvbnNlbnRfYmxhY2tiYXIiIGNsYXNzPSJ0cnVzdEFyY19wYXJraW5nVHJ1c3RBcmNCYW5uZXJfX0lqd28wIj48c3R5bGU+QGZvbnQtZmFjZXsgICAgZm9udC1mYW1pbHk6Ik11c2VvU2FuczMwMCI7ICAgIHNyYzp1cmwoaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9nZXQ/bmFtZT1NdXNlb1NhbnMtMzAwLm90ZikgZm9ybWF0KCJvcGVudHlwZSIpO31AZm9udC1mYWNleyAgICBmb250LWZhbWlseToiTXVzZW9TYW5zNTAwIjsgICAgc3JjOnVybChodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2dldD9uYW1lPU11c2VvU2Fuc181MDAub3RmKSBmb3JtYXQoIm9wZW50eXBlIik7fUBmb250LWZhY2V7ICAgIGZvbnQtZmFtaWx5OiJNdXNlb1NhbnM3MDAiOyAgICBzcmM6dXJsKGh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vZ2V0P25hbWU9TXVzZW9TYW5zXzcwMC5vdGYpIGZvcm1hdCgib3BlbnR5cGUiKTt9ICAgIC50cnVzdGFyYy1iYW5uZXItY29udGVudCB7ICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7ICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5OyAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAgICB9ICAgIC50cnVzdGFyYy1iYW5uZXItd3JhcHBlciAgeyAgICAgICAgbWF4LXdpZHRoOiAxMDgwcHg7ICAgICAgICBtYXJnaW46IDJweCBhdXRvOyAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTsgICAgfSAgICAudHJ1c3RhcmMtYmFubmVyLWNvbnRhaW5lciB7ICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47ICAgICAgICB3aWR0aDogMTAwJTsgICAgfSAgICAuZGVzY3JpcHRpb24tZ3JvdXAgeyAvKkFkZGVkIENTUyovICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgIGdhcDogMjRweDsgICAgICAgIHdpZHRoOiAxMDAlOyAgICB9ICAgIC50cnVzdGFyYy1iYW5uZXItd3JhcHBlciB7ICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7ICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyAgICAgICAgZm9udC1zaXplOiAxMDAlOyAgICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAgICAgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7ICAgICAgICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7ICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgICAgICAgIHRleHQtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMDEpIDAgMCAxcHg7ICAgICAgICBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub25lOyAgICAgICAgLXdlYmtpdC1mb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub25lOyAgICAgICAgd2lkdGg6IDEwMCU7ICAgICAgICBkaXNwbGF5OiBibG9jazsgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDBweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpOyAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpOyAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgICAgICAgIGZvbnQtZmFtaWx5OiAiTXVzZW9TYW5zMzAwIiwgc2Fucy1zZXJpZjsgICAgfSAgICAudHJ1c3RhcmMtYmFubmVyLXdyYXBwZXIgKiB7ICAgICAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7ICAgIH0gICAgLnRydXN0YXJjLWNsaWVudC1sb2dvIHsgICAgICAgIHBhZGRpbmc6IDMwcHg7ICAgIH0gICAgLnRydXN0YXJjLWNsaWVudC1sb2dvIGltZyB7ICAgICAgICAtby1vYmplY3QtZml0OmNvbnRhaW47ICAgICAgICBvYmplY3QtZml0OiBjb250YWluOyAgICB9ICAgIC50cnVzdGFyYy1jb25zZW50LWJ1dHRvbnN7ICAgICAgICBwYWRkaW5nOiAxNXB4IDAgMzBweDsgICAgICAgIG1heC13aWR0aDogMTAwJTsgICAgICAgIG1hcmdpbjogMCAzMHB4OyAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47ICAgIH0vKiAgICAudHJ1c3RhcmMtY29uc2VudC1idXR0b25zID4gZGl2IHsgICAgICAgIG1heC13aWR0aDogMjYwcHg7ICAgIH0qLyAgICAudHJ1c3RhcmMtYm9keS10ZXh0LCAudHJ1c3RhcmMtd2FybmluZy10ZXh0IHsgICAgICAgIGZvbnQtc2l6ZTogMTFweDsgICAgfSAgICAudHJ1c3RhcmMtYmFubmVyLWJvZHkgeyAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgZm9udC1zaXplOiAxMXB4OyAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7ICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsgICAgfSAgICAudHJ1c3RhcmMtc2Vjb25kYXJ5LWJ0biwgLnRydXN0YXJjLXByaW1hcnktYnRuLCAudHJ1c3RhcmMtYWNjZXB0YWxsLWJ0biwgLnRydXN0YXJjLWRlY2xpbmVhbGwtYnRuICAgIHsgICAgICAgIHBhZGRpbmc6IHVuc2V0OyAgICB9ICAgIC50cnVzdGFyYy1wcmltYXJ5LWJ0bjpob3ZlciwgICAgLnRydXN0YXJjLXNlY29uZGFyeS1idG46aG92ZXIsICAgIC50cnVzdGFyYy1hY2NlcHRhbGwtYnRuOmhvdmVyLCAgICAudHJ1c3RhcmMtZGVjbGluZWFsbC1idG46aG92ZXIgICAgeyAgICAgICAgb3BhY2l0eTogMC44OyAgICB9ICAgIC50cnVzdGFyYy1iYW5uZXItZGV0YWlscyB7ICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAxOyAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7ICAgICAgICBmbGV4LWdyb3c6IDE7ICAgICAgICB3aWR0aDogNTAlOyAgICB9ICAgIC50cnVzdGFyYy1pbmZvLXNob3cgeyAgICAgICAgY29sb3I6ICNmZmY7ICAgICAgICBmb250LXNpemU6IDE2cHg7ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGE3YmU5OyAgICAgICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTsgICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7ICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47ICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXM7ICAgIH0gICAgLnRydXN0YXJjLWluZm8taGlkZSB7ICAgICAgICBvcGFjaXR5OiAwOyAgICAgICAgZGlzcGxheTogbm9uZTsgICAgfSAgICAudHJ1c3RhcmMtaW5mby1pbWcgeyAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyOyAgICAgICAgLW1zLWdyaWQtcm93LWFsaWduOiBjZW50ZXI7ICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7ICAgIH0gICAgLnRydXN0YXJjLWJhbm5lci1mb290ZXIgeyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgICAgICAgIGhlaWdodDogNDBweDsgICAgICAgIGZvbnQtc2l6ZTogMTBweDsgICAgICAgIGJvcmRlcjogbm9uZTsgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7ICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5OyAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTsgICAgICAgIGp1c3RpZnktY29udGVudDogbm9ybWFsOyAgICAgICAgYm90dG9tOiAwOyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7ICAgIH0gICAgLmJhbm5lci1kZXRhaWxzLWNvbnRhaW5lciB7IC8qQURERUQgQ1NTKi8gICAgICAgIG1hcmdpbjogMzBweCAzMHB4IDEwcHggMzBweDsvKiAgICAgICAgd2lkdGg6IDEwMCU7Ki8gICAgfSAgICAudHJ1c3RhcmMtYmFubmVyLXJpZ2h0IHsgICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7ICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kOyAgICAgIC8qICBwb3NpdGlvbjogcmVsYXRpdmU7Ki8gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7ICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiB1bnNldDsgICAgICAgIGJveC1zaXppbmc6IHVuc2V0OyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgICAgICByaWdodDogMDsgIH0gICAgLnRydXN0YXJjLWJhbm5lci1sZWZ0IHsgICAgICAgIGNvbG9yOiAjMDA2MWU0OyAgICAgICAgY3Vyc29yOiBwb2ludGVyOyAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyOyAgICAgICAgLW1zLWdyaWQtcm93LWFsaWduOiBjZW50ZXI7ICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7ICAgICAgICBtYXJnaW4tbGVmdDogMjBweDsgICAgfSAgICAudHJ1c3RhcmMtYmFubmVyLWxvZ28geyAgICAgICAgaGVpZ2h0OiAxMzZweDsgICAgICAgIG1heC13aWR0aDogMTM2cHg7ICAgIH0gICAgLnRydXN0YXJjLWJ0bi1kaXNhYmxlZCB7ICAgICAgICBvcGFjaXR5OjAuNjsgICAgICAgIGZpbHRlcjphbHBoYShvcGFjaXR5PTYwKTsgICAgICAgIGN1cnNvcjogZGVmYXVsdDsgICAgfSAgICAudHJ1c3RhcmMtYnRuLWRpc2FibGVkOmhvdmVyIHsgICAgICAgIG9wYWNpdHk6MC42OyAgICAgICAgZmlsdGVyOmFscGhhKG9wYWNpdHk9NjApOyAgICAgICAgY3Vyc29yOiBkZWZhdWx0OyAgICB9ICAgIC50cnVzdGFyYy1iYW5uZXItaGVhZGVyIHsgICAgICAgIGZvbnQtc2l6ZTogMThweDsgICAgfSAgICAudHJ1c3RhcmMtYmFubmVyLWhlYWRlciBzcGFuIHsgICAgZm9udC1mYW1pbHk6ICJNdXNlb1NhbnM1MDAiLCBzYW5zLXNlcmlmO30gICAgLnRydXN0YXJjLWRlY2xpbmVhbGwtYnRuLCAudHJ1c3RhcmMtbWFuYWdlLWJ0biB7ICAgICAgICBtYXJnaW4tdG9wOjEwcHg7ICAgICAgICBtaW4taGVpZ2h0OjMycHg7ICAgICAgICB3aWR0aDoxNTBweDsgICAgICAgIGZvbnQtc2l6ZToxMnB4OyAgICAgICAgYm9yZGVyOiBub25lOyAgICAgICAgcGFkZGluZzogMHB4OyAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7ICAgICAgICBib3JkZXItcmFkaXVzOjJweDsgICAgICAgIGN1cnNvcjpwb2ludGVyOyAgICAgICAgY29sb3I6IzAwMDsgICAgICAgIGZvbnQtZmFtaWx5OiAiTXVzZW9TYW5zMzAwIiwgc2Fucy1zZXJpZjsgICAgfSAgICAudHJ1c3RhcmMtZGVjbGluZWFsbC1idG46aG92ZXIsIC50cnVzdGFyYy1tYW5hZ2UtYnRuOmhvdmVyIHsgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsgICAgfSAgICAudHJ1c3RhcmMtYWdyZWUtYnRuIHsgICAgICAgIG1hcmdpbi10b3A6MTBweDsgICAgICAgIG1pbi1oZWlnaHQ6MzJweDsgICAgICAgIHdpZHRoOjEwMCU7ICAgICAgICBmb250LXNpemU6MTJweDsgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwODFlNzY7ICAgICAgICBwYWRkaW5nOjBweCA7ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwODFlNzY7ICAgICAgICBib3JkZXItcmFkaXVzOjJweDsgICAgICAgIGN1cnNvcjpwb2ludGVyOyAgICAgICAgY29sb3I6I2ZmZjsgICAgICAgIGZvbnQtZmFtaWx5OiAiTXVzZW9TYW5zMzAwIiwgc2Fucy1zZXJpZjsgICAgfS8qICAgIC5wYXJ0bmVycy1jb250YWluZXIgeyAgICAgICAgcGFkZGluZy1sZWZ0OjI0cHg7ICAgIH0qLyAgICAuaWFiLWxpbmsgeyAgICAgICAgY29sb3I6ICMwMDYxZTQ7ICAgIAljdXJzb3I6cG9pbnRlcjsgICAgfWEjdHJ1c3RlLXByaXZhY3ktYnV0dG9uIHsgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O31hI3RydXN0ZS1jb29raWUtYnV0dG9uIHsgICAgbWFyZ2luLWxlZnQ6IDEwcHg7fSAgICAuYnRuLWNsYXNzIHsgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyAgICB9ICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7LyogICAgICAgIC50cnVzdGFyYy1hZ3JlZS1idG4sIC50cnVzdGFyYy1kZWNsaW5lYWxsLWJ0biwgLnRydXN0YXJjLW1hbmFnZS1idG4geyAgICAgICAgICAgIHdpZHRoOjExNHB4OyAgICAgICAgfSovICAgICAgICAudHJ1c3RhcmMtYmFubmVyLWhlYWRlciB7ICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7ICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OyAgICAgICAgfSAgICB9ICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMXB4KSBhbmQgKG1heC13aWR0aDogNzY4cHgpIHsgICAgICAgIC50cnVzdGFyYy1iYW5uZXItbG9nbyB7ICAgICAgICAgICAgaGVpZ2h0OiA2NHB4OyAgICAgICAgICAgIHdpZHRoOiA2NHB4OyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLW1hbmFnZS1idG4sIC50cnVzdGFyYy1hZ3JlZS1idG4sIC50cnVzdGFyYy1kZWNsaW5lYWxsLWJ0biB7ICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLWNsaWVudC1sb2dvIHsgICAgICAgICAgICBwYWRkaW5nOiAxNnB4IDEwcHg7ICAgICAgICB9ICAgIH0gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxcHgpIGFuZCAobWF4LXdpZHRoOiA2NDBweCkgeyAgICAgICAgLnRydXN0YXJjLWJhbm5lci1jb250YWluZXIgeyAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7ICAgICAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7ICAgICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47ICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLWJhbm5lci1oZWFkZXIgeyAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDsgICAgICAgIH0gICAgICAgIC50cnVzdGFyYy1iYW5uZXItY29udGVudCB7ICAgICAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcDsgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7ICAgICAgICB9ICAgICAgICAudHJ1c3RhcmMtYmFubmVyLWRldGFpbHMgeyAgICAgICAgICAgIHBhZGRpbmc6IDVweDsgICAgICAgICAgICB3aWR0aDogMTAwJTsgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsgICAgICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsgICAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLWNvbnNlbnQtYnV0dG9ucyB7IC8qQWRqdXN0IGJ1dHRvbiBzaXplIG9yIGdhcCovICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OyAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgICAgICAgICAgICBtaW4taGVpZ2h0OiAzOHB4OyAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOyAgICAgICAgICAgIG1hcmdpbjogMHB4IDVweDsgICAgICAgIH0gICAgICAgIC50cnVzdGFyYy1tYW5hZ2UtYnRuLCAudHJ1c3RhcmMtYWdyZWUtYnRuLCAudHJ1c3RhcmMtZGVjbGluZWFsbC1idG4geyAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsgICAgICAgICAgICBtYXJnaW46NXB4OyAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgfSAgICAgICAgLmJhbm5lci1kZXRhaWxzLWNvbnRhaW5lciB7IC8qQURERUQgQ1NTKi8gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsgICAgICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsgICAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAgICAgICAgICAgIHdpZHRoOiBhdXRvOyAgICAgICAgfSAgICAgICAgLmRlc2NyaXB0aW9uLWdyb3VwIHsgLypBRERFRCBDU1MqLyAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICAgICAgZ2FwOiA1cHg7ICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsgICAgICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsgICAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLWJhbm5lci1ib2R5IHsgICAgICAgICAgICBwYWRkaW5nLXRvcDogMHB4OyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLWJhbm5lci1oZWFkZXIgeyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OyAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7ICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OyAgICAgICAgfSAgICB9ICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMXB4KSBhbmQgKG1heC13aWR0aDogNDI1cHgpIHsgICAgICAgIC50cnVzdGFyYy1jb25zZW50LWJ1dHRvbnMgeyAvKkFkanVzdCBidXR0b24gc2l6ZSBvciBnYXAqLyAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICAgICAgICAgbWluLWhlaWdodDogMzhweDsgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsgICAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgICAgIG1hcmdpbjogMHB4IDVweDsgICAgICAgIH0gICAgICAgIC5iYW5uZXItZGV0YWlscy1jb250YWluZXIgeyAgICAgICAgICAgIG1hcmdpbjogMTBweCAxMHB4IDBweCAxMHB4OyAgICAgICAgfSAgICB9ICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMXB4KSBhbmQgKG1heC13aWR0aDogMzIwcHgpIHsgICAgICAgIC50cnVzdGFyYy1jb25zZW50LWJ1dHRvbnMgeyAvKkFkanVzdCBidXR0b24gc2l6ZSBvciBnYXAqLyAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICAgICAgICAgbWluLWhlaWdodDogMzhweDsgICAgICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwIDsgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXAgOyAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICAgICAgbWFyZ2luOiAwcHggNXB4OyAgICAgICAgfSAgICAgICAgLnRydXN0YXJjLW1hbmFnZS1idG4sIC50cnVzdGFyYy1hZ3JlZS1idG4sIC50cnVzdGFyYy1kZWNsaW5lYWxsLWJ0biB7ICAgICAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsgICAgICAgICAgICAtbXMtZmxleDogMSAwIDQwJTsgICAgICAgICAgICBmbGV4OiAxIDAgNDAlOyAgICAgICAgfSAgICB9ICAgIHtDc3N9PC9zdHlsZT48ZGl2IGlkPSJ0cnVzdGUtY29uc2VudC10cmFjayIgY2xhc3M9InRydXN0YXJjLWJhbm5lci13cmFwcGVyIHRydXN0YXJjLWJhbm5lci1iYWNrZ3JvdW5kIHRydXN0YXJjLWJhY2tncm91bmQiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBvcGFjaXR5OiAxOyIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIj4gICAgPGRpdiBpZD0idHJ1c3RhcmMtaW5mbyIgY2xhc3M9InRydXN0YXJjLWluZm8taGlkZSI+ICAgICAgICA8ZGl2IGNsYXNzPSJ0cnVzdGFyYy1pbmZvLWltZyIgc3R5bGU9Im1hcmdpbjogMTRweCA2cHggMTRweCAyNnB4OyIgYXJpYS1oaWRkZW49InRydWUiPiAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2Fzc2V0L2ljLWVycm9yLnN2ZyIgYWx0PSJhbGVydCBpY29uIj4gICAgICAgIDwvZGl2PiAgICAgICAgPGRpdiB0YWJpbmRleD0iMCIgaWQ9InRydXN0ZS1yZXBvcC1tc2ciIGNsYXNzPSJ0cnVzdGFyYy13YXJuaW5nLXRleHQiIHN0eWxlPSJtYXJnaW46IDE0cHg7Ij48L2Rpdj4gICAgICAgIDxkaXYgY2xhc3M9InRydXN0YXJjLWluZm8taW1nIiBzdHlsZT0ibWFyZ2luOiAxNHB4IDI2cHggMTRweCA2cHg7Ij4gICAgICAgICAgICA8YSBpZD0idHJ1c3RlLXJlcG9wLW1zZy1jbG9zZSIgcm9sZT0iYnV0dG9uIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgdGFiaW5kZXg9IjAiPiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9hc3NldC9pYy1jbG9zZS13aGl0ZS5zdmciIGFsdD0iYWxlcnQgbWVzc2FnZSBjbG9zZSIgc3R5bGU9IndpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7Ij4gICAgICAgICAgICA8L2E+ICAgICAgICA8L2Rpdj4gICAgPC9kaXY+ICAgIDxkaXYgaWQ9InRydXN0YXJjLWNsZWFyLWNvb2tpZS1pbmZvIiBjbGFzcz0idHJ1c3RhcmMtaW5mby1oaWRlIj4gICAgICAgIDxkaXYgY2xhc3M9InRydXN0YXJjLWluZm8taW1nIiBzdHlsZT0ibWFyZ2luOiAxNHB4IDZweCAxNHB4IDI2cHg7IiBhcmlhLWhpZGRlbj0idHJ1ZSI+ICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vYXNzZXQvaWMtZXJyb3Iuc3ZnIiBhbHQ9ImFsZXJ0IGljb24iPiAgICAgICAgPC9kaXY+ICAgICAgICA8ZGl2IHRhYmluZGV4PSIwIiBpZD0idHJ1c3RlLWNsZWFyLWNvb2tpZS1tc2ciIGNsYXNzPSJ0cnVzdGFyYy13YXJuaW5nLXRleHQiIHN0eWxlPSJtYXJnaW46IDE0cHg7Ij48L2Rpdj4gICAgICAgIDxkaXYgY2xhc3M9InRydXN0YXJjLWluZm8taW1nIiBzdHlsZT0ibWFyZ2luOiAxNHB4IDI2cHggMTRweCA2cHg7Ij4gICAgICAgICAgICA8YSBpZD0idHJ1c3RlLWNsZWFyLWNvb2tpZS1tc2ctY2xvc2UiIHJvbGU9ImJ1dHRvbiIgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIHRhYmluZGV4PSIwIj4gICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vY29uc2VudC50cnVzdGFyYy5jb20vYXNzZXQvaWMtY2xvc2Utd2hpdGUuc3ZnIiBhbHQ9ImFsZXJ0IG1lc3NhZ2UgY2xvc2UiIHN0eWxlPSJ3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyI+ICAgICAgICAgICAgPC9hPiAgICAgICAgPC9kaXY+ICAgIDwvZGl2PiAgICA8ZGl2IGNsYXNzPSJ0cnVzdGFyYy1iYW5uZXItY29udGFpbmVyIj4gICAgICAgIDxkaXYgY2xhc3M9ImJhbm5lci1kZXRhaWxzLWNvbnRhaW5lciI+ICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24tZ3JvdXAiPiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cnVzdGFyYy1iYW5uZXItZGV0YWlscyI+ICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0cnVzdGUtYmFubmVyLWhlYWRlci10ZXh0IiBjbGFzcz0idHJ1c3RhcmMtYmFubmVyLWhlYWRlciIgc3R5bGU9ImZvbnQta2VybmluZzpub3JtYWw7IiBhcmlhLXJlYWRvbmx5PSJ0cnVlIj4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZGVyOyIgcm9sZT0iaGVhZGluZyIgd2FpLWFyaWE9IiIgYXJpYS1sZXZlbD0iMSIgdGFiaW5kZXg9IjAiPllPVVIgQ0hPSUNFUyBSRUdBUkRJTkcgQ09PS0lFUyBPTiBUSElTIFNJVEU8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD0iMCIgaWQ9InRydXN0ZS1iYW5uZXItYm9keS10ZXh0IiBjbGFzcz0idHJ1c3RhcmMtYmFubmVyLWJvZHkiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2UgY2hvb3NlIHdoZXRoZXIgdGhpcyBzaXRlIG1heSB1c2UgY29va2llcyBvciByZWxhdGVkIHRlY2hub2xvZ2llcyBzdWNoIGFzIHdlYiBiZWFjb25zLCBwaXhlbCB0YWdzLCBhbmQgRmxhc2ggb2JqZWN0cyAoIkNvb2tpZXMiKSBhcyBkZXNjcmliZWQgYmVsb3cuIFlvdSBjYW4gbGVhcm4gbW9yZSBhYm91dCBob3cgdGhpcyBzaXRlIHVzZXMgY29va2llcyBhbmQgcmVsYXRlZCB0ZWNobm9sb2dpZXMgYnkgcmVhZGluZyBvdXIgcHJpdmFjeSBwb2xpY3kgbGlua2VkIHRvIGJlbG93LiBZb3VyIGNob2ljZXMgb24gdGhpcyBzaXRlIHdpbGwgYmUgYXBwbGllZCBnbG9iYWxseS4gVGhpcyBtZWFucyB0aGF0IHlvdXIgc2V0dGluZ3Mgd2lsbCBiZSBhdmFpbGFibGUgb24gb3RoZXIgc2l0ZXMgdGhhdCBzZXQgeW91ciBjaG9pY2VzIGdsb2JhbGx5LiBZb3UgY2FuIGNoYW5nZSB5b3VyIG1pbmQgYW5kIHJldmlzaXQgeW91ciBwcmVmZXJlbmNlcyBhdCBhbnkgdGltZSBieSBhY2Nlc3NpbmcgdGhlICJDb29raWUgUHJlZmVyZW5jZXMiIGxpbmsgaW4gdGhlIGZvb3RlciBvZiB0aGlzIHNpdGUuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0YXJjLWJhbm5lci1kZXRhaWxzIHBhcnRuZXJzLWNvbnRhaW5lciI+ICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0cnVzdGUtcGFydG5lci1oZWFkZXItdGV4dCIgY2xhc3M9InRydXN0YXJjLWJhbm5lci1oZWFkZXIiIHN0eWxlPSJmb250LWtlcm5pbmc6bm9ybWFsOyIgYXJpYS1yZWFkb25seT0idHJ1ZSI+ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGRlcjsiIHRhYmluZGV4PSIwIj5XRSBBTkQgT1VSIFBBUlRORVJTICgxKTwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRhYmluZGV4PSIwIiBpZD0idHJ1c3RlLXBhcnRuZXItYm9keS10ZXh0IiBjbGFzcz0idHJ1c3RhcmMtYmFubmVyLWJvZHkiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwcHgiPldlIGFuZCA8YSBpZD0iaWFiLXBhcnRuZXJzLWxpbmsiIGNsYXNzPSJpYWItbGluayIgdGFiaW5kZXg9IjAiPiBvdXIgcGFydG5lcnM6ICgxKTwvYT4gcHJvY2VzcyBwZXJzb25hbCBkYXRhIHN1Y2ggYXMgSVAgQWRkcmVzcywgVW5pcXVlIElELCBicm93c2luZyBkYXRhIGZvcjogIFN0b3JlIGFuZC9vciBhY2Nlc3MgaW5mb3JtYXRpb24gb24gYSBkZXZpY2UgfCBQZXJzb25hbGlzZWQgYWR2ZXJ0aXNpbmcuPC9wPiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwcHg7IHBhZGRpbmctdG9wOjhweDsiPlNvbWUgcGFydG5lcnMgZG8gbm90IGFzayBmb3IgeW91ciBjb25zZW50IHRvIHByb2Nlc3MgeW91ciBkYXRhLCBpbnN0ZWFkLCB0aGV5IHJlbHkgb24gdGhlaXIgbGVnaXRpbWF0ZSBidXNpbmVzcyBpbnRlcmVzdC4gVmlldyBvdXIgPGEgaWQ9ImlhYi1zZWNvbmQtcGFydG5lcnMtbGluayIgY2xhc3M9ImlhYi1saW5rIiB0YWJpbmRleD0iMCI+bGlzdCBvZiBwYXJ0bmVyczwvYT4gdG8gc2VlIHRoZSBwdXJwb3NlcyB0aGV5IGJlbGlldmUgdGhleSBoYXZlIGEgbGVnaXRpbWF0ZSBpbnRlcmVzdCBmb3IgYW5kIGhvdyB5b3UgY2FuIG9iamVjdCB0byBpdC48L3A+ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgPC9kaXY+ICAgICAgICA8L2Rpdj4gICAgICAgIDxkaXYgaWQ9InRydXN0ZS1jb25zZW50LWJ1dHRvbnMiIGNsYXNzPSJ0cnVzdGFyYy1jb25zZW50LWJ1dHRvbnMiPiAgICAgICAgICAgIDxkaXYgaWQ9ImJ0bi1nMSIgY2xhc3M9ImJ0bi1jbGFzcyI+PGJ1dHRvbiB0YWJpbmRleD0iMCIgY2xhc3M9InRydXN0YXJjLWFncmVlLWJ0biIgaWQ9InRydXN0ZS1jb25zZW50LWJ1dHRvbiI+QWNjZXB0IEFsbDwvYnV0dG9uPjwvZGl2PiAgICAgICAgICA8ZGl2IGlkPSJidG4tZzIiIGNsYXNzPSJidG4tY2xhc3MiPiAgICAgICAgICAgIDxidXR0b24gdGFiaW5kZXg9IjAiIGNsYXNzPSJ0cnVzdGFyYy1kZWNsaW5lYWxsLWJ0biIgaWQ9InRydXN0ZS1jb25zZW50LXJlcXVpcmVkIj5EZWNsaW5lIEFsbDwvYnV0dG9uPiAgICAgICAgICAgIDxidXR0b24gdGFiaW5kZXg9IjAiIGNsYXNzPSJ0cnVzdGFyYy1tYW5hZ2UtYnRuIiBpZD0idHJ1c3RlLXNob3ctY29uc2VudCIgYXJpYS1oYXNwb3B1cD0idHJ1ZSI+TWFuYWdlIFNldHRpbmdzPC9idXR0b24+ICAgICAgICAgIDwvZGl2PiAgICAgICAgPC9kaXY+ICAgIDwvZGl2PiAgICA8ZGl2IGNsYXNzPSJ0cnVzdGFyYy1iYW5uZXItZm9vdGVyIj4gICAgICA8YSBocmVmPSJodHRwczovL3d3dy5nb2RhZGR5LmNvbS9hZ3JlZW1lbnRzL3Nob3dkb2M/cGFnZWlkPVBSSVZBQ1kiIHRhYmluZGV4PSIwIiBjbGFzcz0idHJ1c3RhcmMtYmFubmVyLWxlZnQiIGlkPSJ0cnVzdGUtcHJpdmFjeS1idXR0b24iIHRhcmdldD0iX2JsYW5rIj5Qcml2YWN5IFBvbGljeTwvYT4gICAgICAgIDxkaXYgY2xhc3M9InRydXN0YXJjLWJhbm5lci1yaWdodCI+ICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImFsaWduLXNlbGY6IGNlbnRlcjsiPlBvd2VyZWQgYnk6PC9zcGFuPiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHJ1c3RhcmMuY29tIiB0YXJnZXQ9Il9ibGFuayIgaWQ9InRydXN0ZS1wb3dlcmVkLWJ5IiB0YWJpbmRleD0iMCI+ICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2dldD9uYW1lPVBvd2VyZWQtQnktVHJ1c3RBcmMucG5nIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTo3cHg7cGFkZGluZy1sZWZ0OjVweDtwYWRkaW5nLXRvcDoxMHB4O2ltYWdlLXJlbmRlcmluZzphdXRvO2ltYWdlLXJlbmRlcmluZzpjcmlzcC1lZGdlcztpbWFnZS1yZW5kZXJpbmc6aW5oZXJpdDtoZWlnaHQ6MTZweDsiIGFsdD0iY29va2llIG5vdGljZSBwcm92aWRlciBsb2dvIj4gICAgICAgICAgICA8L2E+ICAgICAgICA8L2Rpdj4gICAgPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZm9vdGVyX3Bhcmt3ZWJGb290ZXJfX0ZFbjM5Ij48ZGl2IGNsYXNzPSJmb290ZXJfc3BhY2VCZXR3ZWVuX18xeXRnYyI+PHNwYW4gY2xhc3M9ImZvb3Rlcl9jZW50ZXJUZXh0X19iR2V0MSI+Q29weXJpZ2h0IMKpIDE5OTktMjAyNCBHb0RhZGR5LCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9zcGFuPjxzcGFuIGlkPSJwcml2YWN5Ij48YSBocmVmPSIjISIgcmVsPSJub2ZvbGxvdyI+UHJpdmFjeSBQb2xpY3k8L2E+PC9zcGFuPjxzcGFuIGlkPSJ0ZWNvbnNlbnQiIGNvbnNlbnQ9InVuZGVmaW5lZCIgYXJpYS1sYWJlbD0iT3BlbiBDb29raWUgUHJlZmVyZW5jZXMgTW9kYWwiIHJvbGU9ImNvbXBsZW1lbnRhcnkiPjxzY3JpcHQgYXN5bmM9ImFzeW5jIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNyb3Nzb3JpZ2luPSIiIGltcG9ydGFuY2U9ImhpZ2giIHNyYz0iaHR0cHM6Ly9jb25zZW50LnRydXN0YXJjLmNvbS9hc3NldC90Y2ZhcGkyLjIuanMiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL2NvbnNlbnQudHJ1c3RhcmMuY29tL2Fzc2V0L25vdGljZS5qcy92L3YxLjctNTE4IiBhc3luYz0iYXN5bmMiIGNyb3Nzb3JpZ2luPSIiIGltcG9ydGFuY2U9ImhpZ2giPjwvc2NyaXB0PjxhIHJvbGU9ImxpbmsiIGlkPSJpY29uLWlkMDA1MDMxMTUzMzA2MTAzNDMxIiB0YWJpbmRleD0iMCIgbGFuZz0iZW4iIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIgYXJpYS1sYWJlbD0iQ29va2llIFByZWZlcmVuY2VzLCBvcGVucyBhIGRlZGljYXRlZCBwb3B1cCBtb2RhbCB3aW5kb3ciIGNsYXNzPSJ0cnVzdGVfY3Vyc29yX3BvaW50ZXIiPkNvb2tpZSBQcmVmZXJlbmNlczwvYT48L3NwYW4+PC9kaXY+PHAgY2xhc3M9ImZvb3Rlcl9wYXJrd2ViRGlzY2xhaW1lclRleHRfX1BFV2ltIj5EaXNjbGFpbWVyOiBSZWZlcmVuY2VzIHRvIGFueSBzcGVjaWZpYyBjb21wYW55LCBwcm9kdWN0IG9yIHNlcnZpY2VzIG9uIHRoaXMgU2l0ZSBhcmUgbm90IGNvbnRyb2xsZWQgYnkgR29EYWRkeS5jb20gTExDIGFuZCBkbyBub3QgY29uc3RpdHV0ZSBvciBpbXBseSBpdHMgYXNzb2NpYXRpb24gd2l0aCBvciBlbmRvcnNlbWVudCBvZiB0aGlyZCBwYXJ0eSBhZHZlcnRpc2Vycy48L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+CjxpbWcgc3JjPSJodHRwczovL2FkLWRlbGl2ZXJ5Lm5ldC9weC5naWY/Y2g9MiIgc3R5bGU9ImRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgd2lkdGg6IDFweCAhaW1wb3J0YW50OyBoZWlnaHQ6IDFweCAhaW1wb3J0YW50OyI+PGltZyBzcmM9Imh0dHBzOi8vYWQuZG91YmxlY2xpY2submV0L2Zhdmljb24uaWNvP2FkPTMwMHgyNTAmYW1wO2FkX2JveF89MSZhbXA7YWRuZXQ9MSZhbXA7c2hvd2FkPTEmYW1wO3NpemU9MjUweDI1MCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgd2lkdGg6IDFweCAhaW1wb3J0YW50OyBoZWlnaHQ6IDFweCAhaW1wb3J0YW50OyI+PGltZyBzcmM9Imh0dHBzOi8vYWQtZGVsaXZlcnkubmV0L3B4LmdpZj9jaD0xJmFtcDtlPTAuMjU1MjE1NzEzNjI5MTM0MSIgc3R5bGU9ImRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgd2lkdGg6IDFweCAhaW1wb3J0YW50OyBoZWlnaHQ6IDFweCAhaW1wb3J0YW50OyI+PGlmcmFtZSBuYW1lPSJfX3RjZmFwaUxvY2F0b3IiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PC9pZnJhbWU+PHNjcmlwdCBzcmM9Ii8vY29uc2VudC50cnVzdGUuY29tL25vdGljZT9kb21haW49Z29kYWRkeV9wYXJraW5nX2lhYi5jb20mYW1wO2M9dGVjb25zZW50JmFtcDtqcz1uaiZhbXA7bm90aWNlVHlwZT1iYiZhbXA7dGV4dD10cnVlJmFtcDtwcml2YWN5cG9saWN5bGluaz1odHRwcyUzQSUyRiUyRnd3dy5nb2RhZGR5LmNvbSUyRmFncmVlbWVudHMlMkZzaG93ZG9jJTNGcGFnZWlkJTNEUFJJVkFDWSZhbXA7Z3RtPTEiIGNsYXNzPSJ0cnVzdGFyYy1zY3JpcHQiIGFzeW5jPSIiIGNyb3Nzb3JpZ2luPSIiIGlkPSJ0cnVzdGVfMC42ODQ1MjAxODU1MzA0NTg2Ij48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==","disable_correlation":true,"to_ids":false,"type":"attachment","uuid":"008afad0-f5c1-457f-a233-7b82401a453b","value":"rendered_page.html"},{"category":"Network activity","comment":"The address in the browser address bar at the end of the capture.","disable_correlation":false,"to_ids":true,"type":"url","uuid":"b857c0e5-cfe9-404d-a747-20c2cfd33a67","value":"http://bapsmandirdeparis.fr/lander"}],"Object":[{"Attribute":[{"category":"Network activity","disable_correlation":false,"object_relation":"url","to_ids":true,"type":"url","uuid":"c2e703f0-dca5-4fab-a4c5-9164611a15bc","value":"http://bapsmandirdeparis.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"host","to_ids":true,"type":"hostname","uuid":"5f9d9089-5b8b-4d12-ba3f-18bc51833048","value":"bapsmandirdeparis.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"domain","to_ids":true,"type":"domain","uuid":"41e31f3a-3006-4607-a334-14eeb04f5ef2","value":"bapsmandirdeparis.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"5bf202ce-3b09-4dc4-aede-d28ffc2ef326","value":"3.33.251.168"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"c9e05bc0-be87-45ac-801b-4276fd6c2723","value":"15.197.225.128"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"632bd977-57f7-43b5-982c-7aac79ba8273","value":"15.197.148.33"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"48325752-bf91-4048-8092-20b24115b073","value":"3.33.130.190"}],"ObjectReference":[{"comment":"Capture on lookyloo","object_uuid":"06a41733-f24f-47d0-9bc4-fa2920808a1a","referenced_uuid":"0469fff9-bb39-4f88-aba9-3f3be481cfb7","relationship_type":"captured-by","uuid":"60ed44a9-7d62-4436-826d-852b3297352e"},{"object_uuid":"06a41733-f24f-47d0-9bc4-fa2920808a1a","referenced_uuid":"b3356ead-14cd-4a5f-be1c-0374fd57d2f3","relationship_type":"redirects-to","uuid":"82206630-16e3-409f-bcd8-6c98abc2bb66"}],"comment":"Submitted URL","description":"url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.","distribution":"5","first_seen":"2024-06-18T05:54:02.801000+00:00","meta-category":"network","name":"url","parsed_url":null,"sharing_group_id":"0","template_uuid":"60efb77b-40b5-4c46-871b-ed1ed999fce5","template_version":"10","uuid":"06a41733-f24f-47d0-9bc4-fa2920808a1a"},{"Attribute":[{"category":"Network activity","disable_correlation":false,"object_relation":"url","to_ids":true,"type":"url","uuid":"5cf2cc56-9ffd-4a3c-bfc9-a4bc000f41a0","value":"http://bapsmandirdeparis.fr/"},{"category":"Network activity","disable_correlation":false,"object_relation":"host","to_ids":true,"type":"hostname","uuid":"19472b52-367b-469f-bf1a-3507e839bfec","value":"bapsmandirdeparis.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"domain","to_ids":true,"type":"domain","uuid":"4646103d-8f7d-4b60-bd4b-856b102c0661","value":"bapsmandirdeparis.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"f5080381-ca36-4e6c-b6b5-6815cc51827c","value":"3.33.251.168"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"26bc7c40-3ae6-4ca1-91f0-c0b5fd3e0715","value":"15.197.225.128"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"70ce2b4b-abaf-4be2-9096-2bb34116f4c3","value":"15.197.148.33"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"64c854b9-e80f-4c29-97e1-6d2d21a82eaa","value":"3.33.130.190"}],"ObjectReference":[{"object_uuid":"b3356ead-14cd-4a5f-be1c-0374fd57d2f3","referenced_uuid":"c930eedc-b1de-4ee5-a8fb-f25abecf9628","relationship_type":"redirects-to","uuid":"1f4952ec-b39a-488b-bc04-0aa079f88f82"}],"comment":"Redirect 0","description":"url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.","distribution":"5","first_seen":"2024-06-18T05:54:02.801000+00:00","meta-category":"network","name":"url","parsed_url":null,"sharing_group_id":"0","template_uuid":"60efb77b-40b5-4c46-871b-ed1ed999fce5","template_version":"10","uuid":"b3356ead-14cd-4a5f-be1c-0374fd57d2f3"},{"Attribute":[{"category":"Network activity","disable_correlation":false,"object_relation":"url","to_ids":true,"type":"url","uuid":"9b0ffbb9-ab83-41d9-a804-79f3a25d8cbe","value":"http://bapsmandirdeparis.fr/lander"},{"category":"Network activity","disable_correlation":false,"object_relation":"host","to_ids":true,"type":"hostname","uuid":"a11e3601-baf3-4619-a75b-177e7756b1fe","value":"bapsmandirdeparis.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"domain","to_ids":true,"type":"domain","uuid":"3ec2aee1-7b03-4c83-bdd5-be99183701cb","value":"bapsmandirdeparis.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"1875deb0-2a4a-458f-88d3-8aee7cf3665b","value":"3.33.251.168"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"186a6dae-fb6a-4f20-89c8-a841b11001f2","value":"15.197.225.128"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"a877d3dd-59e8-45f2-895b-1ab8e0548496","value":"15.197.148.33"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"084959ff-cbdb-4435-80df-632f87643fbc","value":"3.33.130.190"},{"category":"Network activity","disable_correlation":false,"object_relation":"dom-hash","to_ids":true,"type":"dom-hash","uuid":"2015c5f2-0d00-4a8f-bb23-275c65ffd3da","value":"968a9047cd7c5edeeb71a83910d0cd69"}],"comment":"Last redirect (1)","description":"url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.","distribution":"5","first_seen":"2024-06-18T05:54:02.801000+00:00","meta-category":"network","name":"url","parsed_url":null,"sharing_group_id":"0","template_uuid":"60efb77b-40b5-4c46-871b-ed1ed999fce5","template_version":"10","uuid":"c930eedc-b1de-4ee5-a8fb-f25abecf9628"},{"Attribute":[{"category":"Payload delivery","disable_correlation":true,"object_relation":"filename","to_ids":true,"type":"filename","uuid":"07e8a881-1efa-4f2d-8408-cd9a67ce7736","value":"lander"},{"category":"Other","disable_correlation":true,"object_relation":"size-in-bytes","to_ids":false,"type":"size-in-bytes","uuid":"7c9f852e-12f5-490f-9652-25258a162182","value":"620"},{"category":"Other","disable_correlation":true,"object_relation":"entropy","to_ids":false,"type":"float","uuid":"15430625-dde0-43e8-8fb4-e5c2c70d60f6","value":5.118318890672108},{"category":"Payload delivery","disable_correlation":false,"object_relation":"md5","to_ids":true,"type":"md5","uuid":"5edaea5c-175b-419b-adae-f0852b8504a8","value":"a65ca73acd47117a7151c42bd9a44349"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha1","to_ids":true,"type":"sha1","uuid":"5d5a1d67-bf78-428a-87e5-401a5cee77ba","value":"88ccae0dda2e9adbcadf3154a6a4f68d4470fb6f"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha256","to_ids":true,"type":"sha256","uuid":"0303af64-9a15-45f9-ad56-66b5fdacca18","value":"80dfdb5804586fa0cce739ce343816d92cba24c6376414921533016a94ab90e2"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha512","to_ids":true,"type":"sha512","uuid":"52f30cf7-442c-4653-aa99-40f9cdb200b9","value":"91e7ebbbbbad4b93e3dd09eb9c7ad633de235c97d03c13d511d88a4518a849f0e4c2b1bd4b4db0f4241aef5f59539310011c92dcfca46bfb0d50090d5481d1fd"},{"category":"Payload delivery","data":"PCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9IlVURi04Ii8+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiLz48bGluayByZWw9Imljb24iIGhyZWY9ImRhdGE6LCIvPjxzY3JpcHQgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2Fkc2Vuc2UvZG9tYWlucy9jYWYuanM/YWJwPTEmZ2RhYnA9dHJ1ZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vYnRsb2FkZXIuY29tL3RhZz9vPTUwOTc5MjY3ODI2MTU1NTImdXBhcGk9dHJ1ZSIgYXN5bmM+PC9zY3JpcHQ+PHNjcmlwdD53aW5kb3cuTEFOREVSX1NZU1RFTT0iUFciPC9zY3JpcHQ+PHNjcmlwdCBkZWZlcj0iZGVmZXIiIHNyYz0iaHR0cHM6Ly9pbWcxLndzaW1nLmNvbS9wYXJraW5nLWxhbmRlci9zdGF0aWMvanMvbWFpbi4zOGFkZmNmYS5qcyI+PC9zY3JpcHQ+PGxpbmsgaHJlZj0iaHR0cHM6Ly9pbWcxLndzaW1nLmNvbS9wYXJraW5nLWxhbmRlci9zdGF0aWMvY3NzL21haW4uMTFjZTJlZDkuY3NzIiByZWw9InN0eWxlc2hlZXQiPjwvaGVhZD48Ym9keT48ZGl2IGlkPSJyb290Ij48L2Rpdj48L2JvZHk+PC9odG1sPgo=","disable_correlation":true,"encrypt":true,"malware_filename":"lander","object_relation":"malware-sample","to_ids":true,"type":"malware-sample","uuid":"2c87ae36-91d1-49a5-acce-2327a0cfa253","value":"lander"},{"category":"Artifacts dropped","disable_correlation":true,"object_relation":"mimetype","to_ids":false,"type":"mime-type","uuid":"7927e806-2088-425a-a967-b31ab95a74f5","value":"text/html"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"ssdeep","to_ids":true,"type":"ssdeep","uuid":"54a79564-a210-4d59-976d-577051ba7942","value":"12:qTE0L26zFtAiSTFzU1UgYTJ5HSQQ9WSPD3LxVe2KPD3LqR8F5Tbk:0E0LRzKTFjpn49WS5VpKSK5/k"},{"category":"Network activity","disable_correlation":false,"object_relation":"dom-hash","to_ids":true,"type":"dom-hash","uuid":"92e801b7-d19a-4b99-808c-4b1052395582","value":"968a9047cd7c5edeeb71a83910d0cd69"}],"ObjectReference":[{"comment":"URL loading that content","object_uuid":"ab300136-b88c-4b9a-b2da-7c0499c8f9d1","referenced_uuid":"c930eedc-b1de-4ee5-a8fb-f25abecf9628","relationship_type":"loaded-by","uuid":"2345c87e-4bd2-48eb-b60d-2810ff638ca2"},{"comment":"Screenshot of the page","object_uuid":"ab300136-b88c-4b9a-b2da-7c0499c8f9d1","referenced_uuid":"c634c872-7f66-4228-8b31-d0160fbcdd7f","relationship_type":"rendered-as","uuid":"d13386a5-bf76-4382-b0b9-dfed012b04f0"},{"comment":"Rendered HTML at the end of the capture","object_uuid":"ab300136-b88c-4b9a-b2da-7c0499c8f9d1","referenced_uuid":"008afad0-f5c1-457f-a233-7b82401a453b","relationship_type":"rendered-as","uuid":"6a914524-5847-4ca3-b648-c0b3390c99fa"}],"comment":"Content received for the final redirect (before rendering)","description":"File object describing a file with meta-information","distribution":"5","first_seen":"2024-06-18T05:54:03.123000+00:00","magic_db":null,"meta-category":"file","name":"file","sharing_group_id":"0","template_uuid":"688c46fb-5edb-40a3-8273-1af7923e2215","template_version":"25","uuid":"ab300136-b88c-4b9a-b2da-7c0499c8f9d1"}],"info":"Lookyloo Capture (http://bapsmandirdeparis.fr)","uuid":"aae66f86-f11d-41ba-ba50-675fc22d1901"}]
