Introduction
This note is compiled based on an online post of Professor Claus
Wilke (at UT Austin) that provides a quick visual overview of the
various plots and charts that are commonly used to visualize data. Wilke
defined various functions based on ggplot2 and used them to make many
aesthetically pleasant plots particularly the beautiful ridge plots.
Since the graphs generated in this note involves significant coding,
the source code are not included in this note.
Amounts
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAAGACAMAAABcJ1kPAAAArlBMVEVAKwBBKzRBK15BUzRBU15BU4NBdqdkKwBkUwBkUzRkU15kdoNkdqdkmKdkmMl/awCEKwCEUwCEUzSEdjSEdl6EdoOEmKeEucmEueqkUwCkdjSkmKekuaekucmk1+q2qHzBdgDBdjTBmDTBmF7BmIPBuV7B18nB1+rB9uremDTemF7euV7euYPeuafe16fe18ne1+re9ur7uV7714P716f718n79qf79sn79ur///+PjlU5AAAACXBIWXMAAB2HAAAdhwGP5fFlAAAcTUlEQVR4nO3dfWOcx1WGcYUE0jjA0kJbN1AwNKSYlhTSBIfv/8XQynrZteTomtXMfZ6Z5/r9lVjOyex9pLnl1Uq++j9J0i5dVR9AklTDApCknbIAJGmnLABJ2ikLQJJ2ygKQpJ2yACRppywASdopC0CSdsoCkKSdsgAkaacsAEnaKQtAknbKApCknbIAJGmnLABJ2ikLQJJ2ygKQpJ16qgB+1BhwJ9XHXJb514L5K8gCCII7qT7mssy/FsxfQRZAENxJ9TGXZf61YP4KsgCC4E6qj7ks868F81eQBRAEd1J9zGWZfy2Yv4IsgCC4k+pjLsv8a8H8FWQBBMGdVB9zWeZfC+avIAsgCO6k+pjLMv9aMH8FWQBBcCfVx1yW+deC+SvIAgiCO6k+5rLMvxbMX0EWQBDcSfUxl2X+tWD+CrIAguBOqo+5LPOvBfNXkAUQBHdSfcxlmX8tmL+CLIAguJPqYy7L/GvB/BVkAQTBnVQfc1nmXwvmryALIAjupPqYyzL/WjB/BVkAQXAn1cdclvnXgvkryAIIgjupPuayzL8WzF9BFkAQ3En1MZdl/rVg/gqyAILgTqqPuSzzrwXzV5AFEAR3Un3MZZl/LZi/giyAILiT6mMuy/xrwfwVZAEEwZ1UH3NZ5l8L5q+g7RfAd1cnvvjl76vP8wJwJ9XHPGf+tf73707y//TVP/7P8//Jf210STB/BU1WANe+BB8BGwV3Un3Mc+Zf66wAjv76mQV8/9Un/5w5WiuYv4LmK4Crz/6j+kiXgjupPuY586/1qACuPvvJT/D//PmVBSBqigL4i7sr54c//vz6A+CvSs/zAnAn1cc8Z/61jgXw+vaf3337u8+vTvbxFAtADeYqgGtvrjb7/v0suJPqY54z/1qnBXDt3W+eqWALQA2mK4Djx8Pf1p3mReBOqo95zvxrfVAA7xvg9Ud+848WgJpMVwDH9/9Zn4OAO6k+5jnzr/VhARxv+Ku//PgXgi0ANZiuAI7PQdxfQO++/sXxOdFPv/zm9hfeXn+wvPu36w+BV8cvlH3/1c+Ob/3Vf0cP/HFwJ9XHPGf+tR4VwPmzcO8z/uIu4zd3Xyl+/fDGzSwA5q+gKQvg7imI//z8/pURt58SHS+gm4+B64+Qd/+KXzkXAndSfcxz5l/rcQEc/whwu4Lvv/og49MC2NwCYP4Kmq4Arj8e7j79uX9nv7r/utj1BfQPd//65tFbq8GdVB/znPnXelwAx195H+ifPz/J+KaDTwtgcwuA+StougJ4c//OfHyB+mffXL/Xvzu+OPH9rfT29tOd73///qnS41MT3/58Ky9cgTupPuY586/1uACOX4a5ue1vvkXg1Te3G3gohfdpb28BMH8FzVUAN69Dv/u3Nw9fC7t/acrbh0923t6/+eEzpmJwJ9XHPGf+tR4XwH3yx7Rvnwt6eG3QfQFsbwEwfwVNUQBnvjy5dF7f/aY3JxfQ6/tfununf/uTL5vIgTupPuY586/1dAEcW/jsXr//l/sC2N4CYP4Kmq8APv31E7/p7e07+9uHT1Cv//GTp35rIbiT6mOeM/9aHy+A786e2bmL/vRPABtbAMxfQfMVwONPZr79+hdXDxfQ3Vtv/rtPfvnNh/MKwZ1UH/Oc+df6eAGcf15/d/HfF8D2FgDzV9AUBfDwRcg//e5npzfQD1///Rdnr3M4/Zh4c/uGz367gT/93oA7qT7mOfOv9fGvAbw5e2b/7vc9fCPY5hYA81fQZAXw44/v3tw/zfz9z08/L310AZ28DPrVNn5AOtxJ9THPmX+tj78K6LwAjr96/H0PBbC5BcD8FTRdAZx9teu9L375zdsnLqDrT1B/d/866dfRM38E3En1Mc+Zf62Pfx/AcwWwuQXA/BU0XwHcPQN688K3V//0p5v75ukL6MfjkxS/uHn/n+l10NXHPGf+tR4XwHe39/lzTwHd2NICYP4KmrcAjh8Gvz75tacvoKPjN8Js4idYwp1UH/Oc+dd68mcB3WzkmS8CP9jKAmD+CpqvAO6eAT17uvk3jy6gs79HYyM/wRLupPqY58y/1pM/DfQmzZ9+GegGFwDzV9B8BXD3/n/6B+DvHn8R8ux9/s0m3v/nvIDMv9ZTfx/A+3v/0TeC3UR/VwAbXADMX0HTFcD997yffM/RzZcjP3wK4u3D50fHt7+OHfjj4E6qj3nO/Gv9xN8I9uyPgtjYAmD+CpqsAH74w/3r0I/v1J/99vofvv3qyZchHj9wPjn+JPR3f/j8mb9GNQXupPqY58y/1mkB/PDtV59fnUf86IfBHX/xb+5+VNy2FgDzV9AUBfCB2/flN+e/evfjse6fmD77D19XHf8U3En1Mc+Zf62bW/7MZ/d3+eMfB33/+/92gwuA+StowgK4+2lkN3/qvf2lf3/qhRF/uP/w2MJr4H6c9AIy/1ofFsAnvzp5mdX3Dzu4/ztfbn4k980fB7a2AJi/giYrgE9fnf71dn88vsT5k1fXHxF3f04+f2Xcu6/f/4bJvhW++pjnzL/WWQF88eVvP3jzt7d/JeRJxDdP093U9MYWAPNX0PYLYCFwJ9XHXJb514L5K8gCCII7qT7mssy/FsxfQRZAENxJ9TGXZf61YP4KsgCC4E6qj7ks868F81eQBRAEd1J9zGWZfy2Yv4IsgCC4k+pjLsv8a8H8FWQBBMGdVB9zWeZfC+avIAsgCO6k+pjLMv9aMH8FWQBBcCfVx1yW+deC+SvIAgiCO6k+5rLMvxbMX0EWQBDcSfUxl2X+tWD+CrIAguBOqo+5LPOvBfNXkAUQBHdSfcxlmX8tmL+CLIAguJPqYy7L/GvB/BXUoQCuroa8tywI7qT6mMsy/1owfwVZAEFwJ9XHXJb514L5K8gCCII7qT7mssy/FsxfQRZAENxJ9TGXZf61YP4KsgCC4E6qj7ks868F81eQBRAEd1J9zGWZfy2Yv4IsgCC4k+pjLsv8a8H8FWQBBMGdVB9zWeZfC+avIAsgCO6k+pjLMv9aMH8FWQBBcCfVx1yW+deC+SvIAgiCO6k+5rLMvxbMX0EWQBDcSfUxl2X+tWD+CrIAguBOqo+5LPOvBfNXkAUQBHdSfcxlmX8tmL+CLIAguJPqYy7L/GvB/BVkAQTBnVQfc1nmXwvmryALIAjupPqYyzL/WjB/BVkAQXAnzXP/ZU3T5C8G5q8gCyAI7qR5bvVNPcg0+YuB+SvIAgiCO2meW31TDzJN/mJg/gqyAILgTprnVt/Ug0yTvxiYv4IsgCC4k+a51Tf1INPkLwbmr6CLC+DqxOD3m2XAnTTPrb6pB5kmfzEwfwVZAEFwJ81zq2/qQabJXwzMX0E+BRQEd9I8t/qmHmSa/MXA/BVkAQTBnTTPrb6pB5kmfzEwfwVZAEFwJ81zq2/qQabJXwzMX0EWQBDcSfPc6pt6kGnyFwPzV5AFEAR30jy3+qYeZJr8xcD8FWQBBMGdNM+tvqkHmSZ/MTB/BVkAQXAnzXOrb+pBpslfDMxfQRZAENxJ89zqm3qQafIXA/NXkAUQBHfSPLf6ph5kmvzFwPwVZAEEwZ00z62+qQeZJn8xMH8FWQBBcCfNc6tv6kGmyV8MzF9BFkAQ3Enz3OqbepBp8hcD81eQBRAEd9I8t/qmHmSa/MXA/BVkAQTBnTTPrb6pB5kmfzEwfwVZAEFwJ81zq2/qQabJXwzMX0EWQBDcSfPc6pt6kGnyFwPzV5AFEAR30jy3+qYeZJr813Q46joR5q8gCyAI7qR5bvVNPcg0+S/pcOjeADB/BQ0pgK194G8F3Enz3C7X7fZMk/+KDof+DQDzV5AFEAR30jy3y3W7PdPkv6DDYUADwPwVZAEEwZ00z+1y3W7PNPmv53AY0QAwfwVZAEFwJ81zu1y32zNN/uuxAPbCAgiCO2me2+W63Z5p8l+PBbAXFkAQ3Enz3C7X7fZMk/96LIC9sACC4E6a53a5brdnmvzXYwHshQUQBHfSPLfLdbs90+S/IF8FtBMWQBDcSfPcLtft9kyT/4r8PoB9sACC4E6a53a5brdnmvyX5HcC74IFEAR30jy3y3W7PdPkvyZ/FtAeWABBcCfNc7tct9szTf5iYP4KsgCC4E6a53a5brdnmvzFwPwVZAEEwZ00z+1y3W7PNPmLgfkryAIIgjtpntvlut2eafIXA/NXkAUQBHfSPLfLdbs90+QvBuavIAsgCO6keW6X63Z7pslfDMxfQRZAENxJ89wu1+32TJO/GJi/giyAILiT5rldrtvtmSZ/MTB/BVkAQXAnzXO7XLfbM03+YmD+CrIAguBOmud2uW63Z5r8xcD8FWQBBMGdNM/tct1uzzT5i4H5K8gCCII7aZ7b5brdnmnyFwPzV5AFEAR30jy3y3W7PdPkLwbmryALIAjupHlul+t2e6bJXwzMX0EWQBDcSfPcLtft9kyTvxiYv4IsgCC4k+a5Xa7b7ZkmfzEwfwVZAEFwJ81zu1y32zNN/mJg/gqyAILgTprndrlut2ea/MXA/BVkAQTBnTTP7XLdbs80+YuB+SvIAgiCO2me2+W63Z5p8hcD81eQBRAEd9I8t8t1uz3T5C8G5q8gCyAI7qR5bpfrdnumyV8MzF9BFkAQ3Enz3C7X7fZMk78YmL+CLIAguJPqYy7L/GvB/BVkAQTBnVQfc1nmXwvmryALIAjupPqYyzL/WjB/BVkAQXAn1cdclvnXgvkryAIIgjupPuayzL8WzF9BFkAQ3En1MZdl/rVg/gqyAILgTqqPuSzzrwXzV5AFEAR3Un3MZZl/LZi/giyAILiT6mMuy/xrwfwVZAEEwZ1UH3NZ5l8L5q8gCyAI7qT6mMsy/1owfwVZAEFwJ9XHXJb514L5K8gCCII7qT7mssy/FsxfQRZAENxJ9TGXZf61YP4KsgCC4E6qj7ks868F81eQBRAEd1J9zGWZfy2Yv4IsgCC4k+pjLsv8a8H8FWQBBMGdNM99Yd67WdKo/MXA/BVkAQTBnTTP7XKj72BJo/IXA/NXkAUQBHfSPLfLjb6DJY3KXwzMX0EXF8DViQ/ftsO7BYE7aZ7b5UbfwZJG5S8G5q8gCyAI7qR5bpcbfQdLGpW/GJi/gnwKKAjupHlulxt9B0salb8YmL+CLIAguJPmuV1u9B0saVT+YmD+CrIAguBOmud2udF3sKRR+YuB+SvIAgiCO2me2+VG38GSRuUvBuavIAsgCO6keW6XG30HSxqVvxiYv4IsgCC4k+a5XW70HSxpVP5iYP4KsgCC4E6a53a50XewpFH5i4H5K8gCCII7aZ7b5UbfwZJG5S8G5q8gCyAI7qR5bpcbfQdLGpW/GJi/giyAILiT5rldbvQdLGlU/mJg/gqyAILgTprndrnRd7CkUfmLgfkryAIIgjtpntvlRt/BkkblLwbmryALIAjupHlulxt9B0salb8YmL+CLIAguJPmuV1u9B0saVT+YmD+CrIAguBOmud2udF3sKRR+YuB+SvIAgiCO2me2+VG38GSRuUvBuavIAsgCO6keW6XG30HSxqVvxiYv4IsgCC4k+a5XW70HSxpVP5iYP4KsgCC4E6a53a50XewpFH5FzgcVR+iFcxfQRZAENxJ89wuN/oOljQq/7zDYcYGgPkryAIIgjtpntvlRt/BkkblH3c4TNkAMH8FWQBBcCfNc7vc6DtY0qj80w6HORsA5q8gCyAI7qR5bpcbfQdLGpV/2OEwaQPA/BVkAQTBnTTP7XKj72BJo/IPswDUjQUQBHfSPLfLjb6DJY3KP8wCUDcWQBDcSfPcLjf6DpY0Kv8wC0DdWABBcCfNc7vc6DtY0qj8wywAdWMBBMGdNM/tcqPvYEmj8k+b9P63ADbIAgiCO2me2+VG38GSRuUfN+f9bwFskAUQBHfSPLfLjb6DJY3KP2/K+98C2CALIAjupHlulxt9B0salX+BGe9/C2CDLIAguJPmuV1u9B0saVT+YmD+CrIAguBOmud2udF3sKRR+YuB+SvIAgiCO2me2+VG38GSRuUvBuavIAsgCO6keW6XG30HSxqVvxiYv4IsgCC4k+a5XW70HSxpVP5iYP4KsgCC4E6a53a50XewpFH5i4H5K2iOAljksoI7aZ77wnimzrTFqPzFwPwVZAEEwZ00z31hPFNn2mJU/mJg/gqyAILgTprnvjCeqTNtMSp/MTB/BVkAQXAnzXNfGM/UmbYYlb8YmL+CLIAguJPmuS+MZ+pMW4zKXwzMX0EWQBDcSfPcF8YzdaYtRuUvBuavIAsgCO6kee4L45k60xaj8hcD81eQBRAEd9I894XxTJ1pi1H5i4H5K8gCCII7aZ77wnimzrTFqPzFwPwVZAEEwZ00z31hPFNn2mJU/mJg/gqyAILgTprnvjCeqTNtMSp/MTB/BVkAQXAnzXNfGM/UmbYYlb8YmL+CLIAguJPmuS+MZ+pMW4zKXwzMX0EWQBDcSfPcF8YzdaYtRuUvBuavIAsgCO6kee4L45k60xaj8hcD81eQBRAEd9I894XxTJ1pi1H5i4H5K8gCCII7aZ77wnimzrTFqPzFwPwVZAEEwZ1UH3NZ5l8L5q8gCyAI7qT6mMsy/1owfwVZAEFwJ9XHXJb514L5K8gCCII7qT7mssy/FsxfQRZAENxJ9TGXZf61YP4KsgCC4E6qj7ks868F81eQBRAEd1J9zGWZfy2Yv4IsgCC4k+pjLsv8a8H8FWQBBMGdVB9zWeZfC+avIAsgCO6k+pjLMv9aMH8FWQBBcCfVx1yW+deC+SvIAgiCO6k+5rLMvxbMX0EWQBDcSfUxl2X+tWD+CrIAguBOqo+5LPOvBfNXkAUQBHdSfcxlmX8tmL+CLIAguJPqYy7L/GvB/BVkAQTBnVQfc1nmXwvmr6CLC+DqxIdvswCeBnfSPHf6YEJG5S8G5q8gCyAI7qR57vTBhIzKXwzMX0E+BRQEd9I8d/pgQkblLwbmryALIAjupHnu9MGEjMpfDMxfQRZAENxJ89zpgwkZlb8YmL+CLIAguJPmudMHEzIqfzEwfwVZAEFwJ81zpw8mZFT+YmD+CrIAguBOmudOH0zIqPzFwPwVZAEEwZ00z50+mJBR+YuB+SvIAgiCO2meO30wIaPyFwPzV5AFEAR30jx3+mBCRuUvBuavIAsgCO6kee70wYSMyl8MzF9BFkAQ3Enz3OmDCRmVvxiYv4IsgCC4k+a50wcTMip/MTB/BVkAQXAnzXOnDyZkVP5iYP4KsgCC4E6a504fTMio/MXA/BVkAQTBnTTPnT6YkFH5i4H5K8gCCII7aZ47fTAho/IXA/NXkAUQBHfSPHf6YEJG5S8G5q8gCyAI7qR57vTBhIzKXwzMX0EWQBDcSfPc6YMJGZW/GJi/gvZaAP0nAnAnzXPDD2Nao/IXA/NXkAXQayIAd9I8N/wwpjUqfzEwfwVZAL0mAnAnzXPDD2Nao/IXA/NXkAXQayIAd9I8N/wwpjUq/0sdjmL/t3owfwVZAL0mAnAnzXPDD2Nao/K/0OGwswaA+SvIAug1EYA7aZ4bfhjTGpX/ZQ6HvTUAzF9BFkCviQDcSfPc8MOY1qj8L3I47K4BYP4KsgB6TQTgTprnhh/GtEblf4nDYX8NAPNXkAXQayIAd9I8N/wwpjUq/0tYANoCC6DXRADupHlu+GFMa1T+l7AAtAUWQK+JANxJ89zww5jWqPwvYQFoCyyAXhMBuJPmueGHMa1R+V/CAtAWWAC9JgJwJ81zww9jWqPyv8j+7n8LYIMsgF4TAbiT5rnhhzGtUflfZnf3vwWwQRZAr4kA3Enz3PDDmNao/C+0t/vfAtggC6DXRADupHlu+GFMa1T+l9rZ/W8BbJAF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHfSPDf8MKY1Kn8xMH8FWQC9JgJwJ81zww9jWqPyFwPzV5AF0GsiAHdy2XA9y/xrwfwVZAH0mgjAnVw2XM8y/1owfwVZAL0mAnAnlw3Xs8y/FsxfQRZAr4kA3Mllw/Us868F81eQBdBrIgB3ctlwPcv8a8H8FWQB9JoIwJ1cNlzPMv9aMH8FWQC9JgJwJ5cN17PMvxbMX0EWQK+JANzJZcP1LPOvBfNXkAXQayIAd3LZcD3L/GvB/BVkAfSaCMCdXDZczzL/WjB/BVkAvSYCcCeXDdezzL8WzF9BFkCviQDcyWXD9SzzrwXzV5AF0GsiAHdy2XA9y/xrwfwVZAH0mgjAnVw2XM8y/1owfwVZAL0mAnAnlw3Xs8y/FsxfQRcXwNWJwe83y4A7aZx6pSv2Pmj+43TMX0EWQBDcSePUqg/5bTH/Wh3zV1CHp4BEwZ00Tu1bwJ3rfFPjzL92HMxfQRZAENxJ41QvIMr8a8fB/BVkAQTBnTRO9QKizL92HMxfQRZAENxJ41QvIMr8a8fB/BVkAQTBnTRO9QKizL92HMxfQRZAENxJ41QvIMr8a8fB/BVkAQTBnTRO9QKizL92HMxfQRZAENxJ41QvIMr8a8fB/BVkAQTBnTRO9QKizL92HMxfQRZAENxJ41QvIMr8a8fB/BVkAQTBnVQfc1nmXwvmryALIAjupPqYyzL/WjB/BVkAQXAn1cdclvnXgvkryAIIgjupPuayzL8WzF9BFkAQ3En1MZdl/rVg/gqyAILgTqqPuSzzrwXzV5AFEAR3Un3MZZl/LZi/giyAILiT6mMuy/xrwfwVZAEEwZ1UH3NZ5l8L5q8gCyAI7qT6mMsy/1owfwVZAEFwJ9XHXJb514L5K8gCCII7qT7mssy/FsxfQRZAENxJ9TGXZf61YP4KsgCC4E6qj7ks868F81eQBRAEd1J9zGWZfy2Yv4IsgCC4k+pjLsv8a8H8FWQBBMGdVB9zWeZfC+avIAsgCO6k+pjLMv9aMH8FWQBBcCfVx1yW+deC+SvIAgiCO6k+5rLMvxbMX0EWQBDcSfUxl2X+tWD+CrIAguBOqo+5LPOvBfNXkAUQBHdSfcxlmX8tmL+CLIAguJPqYy7L/GvB/BVkAQTBnVQfc1nmXwvmryALIAjupPqYyzL/WjB/BT1VAJKkHbAAJGmnLABJ2ikLQJJ2ygKQpJ2yACRppywASdopC0CSdsoCkKSdsgAkaacsAEnaKQtAknbKApCknbIAJGmnLABJ2ikLQJJ2ygKQpJ2yACRppywASdopC0CSdur/AR+IqcfD/2R3AAAAAElFTkSuQmCC)
The most common approach to visualizing amounts (i.e., numerical
values shown for some set of categories) is using bars, either
vertically or horizontally arranged. However, instead of using bars, we
can also place dots at the location where the corresponding bar would
end.
![](data:image/png;base64,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)
If there are two or more sets of categories for which we want to show
amounts, we can group or stack the bars. We can also map the categories
onto the x and y axes and show amounts by color, via a
heatmap.
Distributions
![](data:image/png;base64,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)
Histograms and density plots provide the most intuitive
visualizations of a distribution, but both require arbitrary parameter
choices and can be misleading. Cumulative densities and
quantile-quantile (q-q) plots always represent the data faithfully but
can be more difficult to interpret.
![](data:image/png;base64,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)
Box-plots, violins, strip charts, and sina plots are useful when we
want to visualize many distributions at once and/or if we are primarily
interested in overall shifts among the distributions. Stacked histograms
and overlapping densities allow a more in-depth comparison of a smaller
number of distributions, though stacked histograms can be difficult to
interpret and are best avoided. Ridgeline plots can be a useful
alternative to violin plots and are often useful when visualizing very
large numbers of distributions or changes in distributions over
time.
Proportions
![](data:image/png;base64,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)
Proportions can be visualized as pie charts, side-by-side bars, or
stacked bars, and as in the case for amounts, bars can be arranged
either vertically or horizontally. Pie charts emphasize that the
individual parts add up to a whole and highlight simple fractions.
However, the individual pieces are more easily compared in side-by-side
bars. Stacked bars look awkward for a single set of proportions, but can
be useful when comparing multiple sets of proportions (see below).
![](data:image/png;base64,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)
When visualizing multiple sets of proportions or changes in
proportions across conditions, pie charts tend to be space-inefficient
and often obscure relationships. Grouped bars work well as long as the
number of conditions compared is moderate, and stacked bars can work for
large numbers of conditions. Stacked densities are appropriate when the
proportions change along a continuous variable.
![](data:image/png;base64,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)
When proportions are specified according to multiple grouping
variables, then mosaic plots, treemaps, or parallel sets are useful
visualization approaches.
Mosaic plots assume that every level of one grouping variable can be
combined with every level of another grouping variable, whereas treemaps
do not make such an assumption. Treemaps work well even if the
subdivisions of one group are entirely distinct from the subdivisions of
another. Parallel sets work better than either mosaic plots or treemaps
when there are more than two grouping variables.
Relationships
There are different ways to visualize the relationship between two
variables. This section focused primarily two numerical variables.
Scatter Plots
![](data:image/png;base64,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)
Scatterplots represent the archetypical visualization when we want to
show one quantitative variable relative to another. If we have three
quantitative variables, we can map one onto the dot size, creating a
variant of the scatterplot called bubble chart. For paired data, where
the variables along the x and the y axes are measured
in the same units, it is generally helpful to add a line indicating
x = y. Paired data can also be shown as a slope graph
of paired points connected by straight lines.
Density-based
Plots
![](data:image/png;base64,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)
For large numbers of points, regular scatter-plots can become
uninformative due to overplotting. In this case, contour lines, 2D bins,
or hex bins may provide an alternative. When we want to visualize more
than two quantities, on the other hand, we may choose to plot
correlation coefficients in the form of a correlogram instead of the
underlying raw data.
Serial Line Plots
(for Trends)
![](data:image/png;base64,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)
When the x axis represents time or a strictly increasing
quantity such as a treatment dose, we commonly draw line graphs. If we
have a temporal sequence of two response variables, we can draw a
connected scatterplot where we first plot the two response variables in
a scatterplot and then connect dots corresponding to adjacent time
points. We can use smooth lines to represent trends in a larger
dataset.
Uncertainty
![](data:image/png;base64,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)
Error bars are meant to indicate the range of likely values for some
estimate or measurement. They extend horizontally and/or vertically from
some reference point representing the estimate or measurement. Reference
points can be shown in various ways, such as by dots or by bars. Graded
error bars show multiple ranges at the same time, where each range
corresponds to a different degree of confidence. They are in effect
multiple error bars with different line thicknesses plotted on top of
each other.
![](data:image/png;base64,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)
To achieve a more detailed visualization than is possible with error
bars or graded error bars, we can visualize the actual confidence or
posterior distributions. Confidence strips provide a clear visual sense
of uncertainty but are difficult to read accurately. Eyes and half-eyes
combine error bars with approaches to visualize distributions (violins
and ridgelines, respectively), and thus show both precise ranges for
some confidence levels and the overall uncertainty distribution. A
quantile dot plot can serve as an alternative visualization of an
uncertainty distribution. By showing the distribution in discrete units,
the quantile dot plot is not as precise but can be easier to read than
the continuous distribution shown by a violin or ridgeline plot.
![](data:image/png;base64,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)
For smooth line graphs, the equivalent of an error bar is a
confidence band. It shows a range of values the line might pass through
at a given confidence level. As in the case of error bars, we can draw
graded confidence bands that show multiple confidence levels at once. We
can also show individual fitted draws in lieu of or in addition to the
confidence bands.
LS0tDQp0aXRsZTogIkRpcmVjdG9yeSBvZiBWaXN1YWxpemF0aW9uIg0KYXV0aG9yOiAiQ29tcGlsZWQgZnJvbSBQcm9mLiBXaWxrZSdzIE5vdGUiDQpkYXRlOiAiICINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDogDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6IDQNCiAgICB0b2NfZmxvYXQ6IHllcw0KICAgIGZpZ193aWR0aDogNg0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgdG9jX2NvbGxhcHNlZDogeWVzDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgc21vb3RoX3Njcm9sbDogdHJ1ZQ0KICAgIHRoZW1lOiBsdW1lbg0KICAgIGZpZ19oZWlnaHQ6IDQNCiAgcGRmX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIGZpZ193aWR0aDogNQ0KICAgIGZpZ19oZWlnaHQ6IDQNCi0tLQ0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCg0KZGl2I1RPQyBsaSB7DQogICAgbGlzdC1zdHlsZTpub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6bGlnaHRncmF5Ow0KICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpub25lOw0KICAgIGJhY2tncm91bmQtcG9zaXRpb246MDsNCiAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCiAgICBjb2xvcjogIzc4MGMwYzsNCn0NCg0KLyogbW91c2Ugb3ZlciBsaW5rICovDQpkaXYjVE9DIGE6aG92ZXIgew0KICBjb2xvcjogcmVkOw0KfQ0KDQovKiB1bnZpc2l0ZWQgbGluayAqLw0KZGl2I1RPQyBhOmxpbmsgew0KICBjb2xvcjogYmx1ZTsNCn0NCg0KDQoNCmgxLnRpdGxlIHsNCiAgZm9udC1zaXplOiAyNHB4Ow0KICBjb2xvcjogRGFya2JsdWU7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQogIGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7DQp9DQpoNC5hdXRob3IgeyANCiAgICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBjb2xvcjogRGFya1JlZDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KaDQuZGF0ZSB7IA0KICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBjb2xvcjogRGFya0JsdWU7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KaDEgew0KICAgIGZvbnQtc2l6ZTogMjJweDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogZGFya3JlZDsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQpoMiB7IA0KICAgIGZvbnQtc2l6ZTogMThweDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogbmF2eTsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQpoMyB7IA0KICAgIGZvbnQtc2l6ZTogMTVweDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogbmF2eTsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQpoNCB7IA0KICAgIGZvbnQtc2l6ZTogMThweDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogZGFya3JlZDsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQovKiB1bnZpc2l0ZWQgbGluayAqLw0KYTpsaW5rIHsNCiAgY29sb3I6IGdyZWVuOw0KfQ0KDQovKiB2aXNpdGVkIGxpbmsgKi8NCmE6dmlzaXRlZCB7DQogIGNvbG9yOiBncmVlbjsNCn0NCg0KLyogbW91c2Ugb3ZlciBsaW5rICovDQphOmhvdmVyIHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KLyogc2VsZWN0ZWQgbGluayAqLw0KYTphY3RpdmUgew0KICBjb2xvcjogeWVsbG93Ow0KfQ0KDQo8L3N0eWxlPg0KDQoNCmBgYHtyIHNldHVwLCBlY2hvID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgaW5jbHVkZSA9IEZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBydW4gc2V0dXAgc2NyaXB0DQojaW5zdGFsbC5wYWNrYWdlcygicmVtb3RlcyIpDQojbGlicmFyeShyZW1vdGVzKQ0KI3JlbW90ZXM6Omluc3RhbGxfZ2l0aHViKCJjbGF1c3dpbGtlL2R2aXouc3VwcCIpDQojZGV2dG9vbHM6Omluc3RhbGxfZ2l0aHViKCJjbGF1c3dpbGtlL2R2aXouc3VwcCIpDQoNCmxpYnJhcnkoY29sb3JzcGFjZSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZ2dmb3JjZSkNCmxpYnJhcnkoZ2dyaWRnZXMpDQpsaWJyYXJ5KHRyZWVtYXBpZnkpDQpsaWJyYXJ5KGZvcmNhdHMpDQpsaWJyYXJ5KHN0YXRlYmlucykNCmxpYnJhcnkoc2YpDQpsaWJyYXJ5KGNvd3Bsb3QpDQoNCg0Kb3B0aW9ucyhkaWdpdHMgPSAzKQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICAgICAgICAgICAgICAgICBlY2hvID0gRkFMU0UsDQogICAgICAgICAgICAgIG1lc3NhZ2UgPSBGQUxTRSwNCiAgICAgICAgICAgICAgd2FybmluZyA9IEZBTFNFLA0KICAgICAgICAgICAgICAgY2FjaGUgPSBGQUxTRSwNCiAgICAgICAgICAgICAgICNkcGkgPSAxMDUsICMgbm90IHN1cmUgd2h5LCBidXQgbmVlZCB0byBkaXZpZGUgdGhpcyBieSAyIHRvIGdldCAyMTAgYXQgNmluLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2hpY2ggaXMgMzAwIGF0IDQuMmluDQogICAgICAgICAgIGZpZy5hbGlnbiA9ICdjZW50ZXInLA0KICAgICAgICAgICBmaWcud2lkdGggPSA2LA0KICAgICAgICAgICAgIGZpZy5hc3AgPSAwLjYxOCwgICMgMSAvIHBoaQ0KICAgICAgICAgICAgZmlnLnNob3cgPSAiaG9sZCINCiAgICAgICAgICAgICkNCm9wdGlvbnMoZHBseXIucHJpbnRfbWluID0gNiwgZHBseXIucHJpbnRfbWF4ID0gNikNCmBgYA0KDQoNCg0KIyBJbnRyb2R1Y3Rpb24NCg0KVGhpcyBub3RlIGlzIGNvbXBpbGVkIGJhc2VkIG9uIGFuIG9ubGluZSBwb3N0IG9mIFByb2Zlc3NvciBDbGF1cyBXaWxrZSAoYXQgVVQgQXVzdGluKSB0aGF0IHByb3ZpZGVzIGEgcXVpY2sgdmlzdWFsIG92ZXJ2aWV3IG9mIHRoZSB2YXJpb3VzIHBsb3RzIGFuZCBjaGFydHMgdGhhdCBhcmUgY29tbW9ubHkgdXNlZCB0byB2aXN1YWxpemUgZGF0YS4gV2lsa2UgZGVmaW5lZCB2YXJpb3VzIGZ1bmN0aW9ucyBiYXNlZCBvbiBnZ3Bsb3QyIGFuZCB1c2VkIHRoZW0gdG8gbWFrZSBtYW55IGFlc3RoZXRpY2FsbHkgcGxlYXNhbnQgcGxvdHMgcGFydGljdWxhcmx5IHRoZSBiZWF1dGlmdWwgcmlkZ2UgcGxvdHMuDQoNClNpbmNlIHRoZSBncmFwaHMgZ2VuZXJhdGVkIGluIHRoaXMgbm90ZSBpbnZvbHZlcyBzaWduaWZpY2FudCBjb2RpbmcsIHRoZSBzb3VyY2UgY29kZSBhcmUgbm90IGluY2x1ZGVkIGluIHRoaXMgbm90ZS4gDQoNCmBgYHtyfQ0KIyMgZ2VuZXJhbCBzZXR1cCBjb2RlDQojIGxpbmVfc2l6ZSA9IDAuNg0KIyB0aGVtZQ0KdGhlbWVfcGxvdF9pY29uIDwtIGZ1bmN0aW9uKGJnX2NvbG9yID0gIiNGNUY4RUEiLCBsaW5lX2NvbG9yID0gIiMyNDM0MDAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfc2l6ZSA9IC41LCBmb250X3NpemUgPSAxNCkgew0KICB0aGVtZV9kdml6X29wZW4oKSAlK3JlcGxhY2UlIHRoZW1lKA0KICAgIGF4aXMudGV4dC54ICAgICAgID0gZWxlbWVudF9ibGFuaygpLA0KICAgIGF4aXMudGV4dC55ICAgICAgID0gZWxlbWVudF9ibGFuaygpLA0KICAgIGF4aXMudGl0bGUueCAgICAgID0gZWxlbWVudF9ibGFuaygpLA0KICAgIGF4aXMudGl0bGUueSAgICAgID0gZWxlbWVudF9ibGFuaygpLA0KICAgICNheGlzLmxpbmUueCAgICAgICA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAjYXhpcy5saW5lLnkgICAgICAgPSBlbGVtZW50X2JsYW5rKCksDQogICAgI2F4aXMudGlja3MgICAgICAgID0gZWxlbWVudF9ibGFuaygpLA0KICAgIGF4aXMubGluZS54ICAgICAgID0gZWxlbWVudF9saW5lKHNpemUgPSBsaW5lX3NpemUsIGNvbG9yID0gbGluZV9jb2xvciksDQogICAgYXhpcy5saW5lLnkgICAgICAgPSBlbGVtZW50X2xpbmUoc2l6ZSA9IGxpbmVfc2l6ZSwgY29sb3IgPSBsaW5lX2NvbG9yKSwNCiAgICBheGlzLnRpY2tzICAgICAgICA9IGVsZW1lbnRfbGluZShzaXplID0gbGluZV9zaXplLCBjb2xvciA9IGxpbmVfY29sb3IpLA0KICAgIGF4aXMudGlja3MubGVuZ3RoID0gZ3JpZDo6dW5pdCg0LCAicHQiKSwNCiAgICBsZWdlbmQucG9zaXRpb24gICA9ICJub25lIiwNCiAgICBwbG90Lm1hcmdpbiAgICAgICA9IG1hcmdpbigNCiAgICAgIGZvbnRfc2l6ZSo4LzE0LCBmb250X3NpemUsIGZvbnRfc2l6ZSoxMC8xNCwgZm9udF9zaXplDQogICAgKSwNCiAgICBwbG90LnRpdGxlICAgICAgICA9IGVsZW1lbnRfdGV4dCgNCiAgICAgIGhqdXN0ID0gMC41LA0KICAgICAgI2ZhbWlseSA9IGR2aXpfZm9udF9mYW1pbHlfYm9sZCwNCiAgICAgIGZhbWlseSA9IGR2aXpfZm9udF9mYW1pbHlfY29uZGVuc2VkLA0KICAgICAgY29sb3IgPSBsaW5lX2NvbG9yLA0KICAgICAgc2l6ZSA9IGZvbnRfc2l6ZSwNCiAgICAgIG1hcmdpbiA9IG1hcmdpbigwLCAwLCBmb250X3NpemUqNi8xNCwgMCkNCiAgICApLA0KICAgIHBsb3QuYmFja2dyb3VuZCAgID0gZWxlbWVudF9yZWN0KGZpbGwgPSBiZ19jb2xvcikNCiAgKQ0KfQ0KDQoNCg0KDQoNCg0KdGhlbWVfcGxvdF9pY29uX2hncmlkIDwtIGZ1bmN0aW9uKGJnX2NvbG9yID0gIiNGNUY4RUEiLCBsaW5lX2NvbG9yID0gIiMyNDM0MDAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfc2l6ZSA9IC41LCBmb250X3NpemUgPSAxNCkgew0KICB0aGVtZV9wbG90X2ljb24oYmdfY29sb3IsIGxpbmVfY29sb3IsIGxpbmVfc2l6ZSwgZm9udF9zaXplKSAlK3JlcGxhY2UlIHRoZW1lKA0KICAgICAgIyBtYWtlIGdyaWQgbGluZXMNCiAgICAgICNwYW5lbC5ncmlkLm1ham9yLnkgICA9IGVsZW1lbnRfbGluZShjb2xvdXIgPSBwYXN0ZTAobGluZV9jb2xvciwgIjMwIiksDQogICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDAuNSksDQogICAgICAjIHJlbW92ZSB4IGF4aXMNCiAgICAgIGF4aXMudGlja3MueCAgICAgICAgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICBheGlzLmxpbmUueCAgICAgICAgID0gZWxlbWVudF9ibGFuaygpDQogICkNCn0NCg0KdGhlbWVfcGxvdF9pY29uX3ZncmlkIDwtIGZ1bmN0aW9uKGJnX2NvbG9yID0gIiNGNUY4RUEiLCBsaW5lX2NvbG9yID0gIiMyNDM0MDAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfc2l6ZSA9IC41LCBmb250X3NpemUgPSAxNCkgew0KICB0aGVtZV9wbG90X2ljb24oYmdfY29sb3IsIGxpbmVfY29sb3IsIGxpbmVfc2l6ZSwgZm9udF9zaXplKSAlK3JlcGxhY2UlIHRoZW1lKA0KICAgICAgIyBtYWtlIGdyaWQgbGluZXMNCiAgICAgICNwYW5lbC5ncmlkLm1ham9yLnggICA9IGVsZW1lbnRfbGluZShjb2xvdXIgPSBwYXN0ZTAobGluZV9jb2xvciwgIjMwIiksDQogICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDAuNSksDQogICAgICAjIHJlbW92ZSB5IGF4aXMNCiAgICAgIGF4aXMudGlja3MueSAgICAgICAgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICBheGlzLmxpbmUueSAgICAgICAgID0gZWxlbWVudF9ibGFuaygpDQogICkNCn0NCg0KdGhlbWVfcGxvdF9pY29uX2JsYW5rIDwtIGZ1bmN0aW9uKGJnX2NvbG9yID0gIiNGNUY4RUEiLCBsaW5lX2NvbG9yID0gIiMyNDM0MDAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfc2l6ZSA9IC41LCBmb250X3NpemUgPSAxNCkgew0KICB0aGVtZV9wbG90X2ljb24oYmdfY29sb3IsIGxpbmVfY29sb3IsIGxpbmVfc2l6ZSwgZm9udF9zaXplKSAlK3JlcGxhY2UlIHRoZW1lKA0KICAgICAgYXhpcy50aWNrcyAgICAgICAgICA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgIGF4aXMubGluZS54ICAgICAgICAgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICBheGlzLmxpbmUueSAgICAgICAgID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgYXhpcy50aWNrcy5sZW5ndGggICAgPSBncmlkOjp1bml0KDAsICJwdCIpDQogICkNCn0NCg0KIyBkYXRhIHNldHMNCnNldC5zZWVkKDUxNDIpDQpuIDwtIDE1DQp4IDwtIHJub3JtKG4pDQp5IDwtIC40KnggKyAuNipybm9ybShuKQ0KZGZfc2NhdHRlcl94eSA8LSBkYXRhLmZyYW1lKHgsIHkpDQpkZl9vbmVfZGlzdCA8LSBkYXRhLmZyYW1lKHggPSBjKHJub3JtKDEwMDAsIDEuLCAxLjYpLCBybm9ybSgzMDAsIDQsIC40KSkpDQpkZl9vbmVfbm9ybWFsIDwtIGRhdGEuZnJhbWUoeCA9IHJub3JtKDIwKSkNCmRmX2ZyYWN0aW9ucyA8LSBkYXRhLmZyYW1lKHkgPSBjKC4zLCAuMzksIC40OCwgLjYsIC4yNSwgLjEzLCAuMjIsIC4yNCwgLjQ1LCAuNDgsIC4zLCAuMTYpLA0KICAgICAgICAgICAgICAgICB4ID0gZmFjdG9yKHJlcCgxOjQsIDMpKSwNCiAgICAgICAgICAgICAgICAgdHlwZSA9IHJlcChjKCJBIiwgIkIiLCAiQyIpLCBlYWNoID0gNCkpDQpzZXQuc2VlZCgyNDc0KQ0KbiA8LSA4DQp4IDwtIHJub3JtKG4pDQp5IDwtIC40KnggKyAuNipybm9ybShuKQ0KeiA8LSAuNSp4ICsgLjMqcm5vcm0obikNCnogPC0gKHogLSBtaW4oeikgKyAwLjEpXjINCmRmX3NjYXR0ZXJfeHl6IDwtIGRhdGEuZnJhbWUoeCwgeSwgeikNCnNldC5zZWVkKDUwMTIpDQpkZl9tdWx0aV9hbW91bnRzIDwtIG11dGF0ZShkZl9mcmFjdGlvbnMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gYygxLjAsIDEuMSwgMS40LCAxLjIpW3hdKnkpDQpuIDwtIDcwDQpkZl9tdWx0aV9kaXN0IDwtIGRhdGEuZnJhbWUoeSA9IGMocm5vcm0obiwgMSwgLjgpLCBybm9ybShuLCAyLCAuNyksIHJub3JtKG4sIDAsIC41KSksDQogICAgICAgICAgICAgICAgIHR5cGUgPSByZXAoYygiQSIsICJCIiwgIkMiKSwgZWFjaCA9IG4pLA0KICAgICAgICAgICAgICAgICBudW1iZXIgPSByZXAoYygyLCAxLCAzKSwgZWFjaCA9IG4pKQ0KZGZfcHJvcHMgPSBkYXRhLmZyYW1lKHZhbHVlID0gYyg1NSwgMzAsIDE1KSwNCiAgICAgICAgICAgICAgICAgICAgICBncm91cCA9IGMoIkEiLCAiQiIsICJDIikpDQpkZl9tdWx0aV9wcm9wcyA8LSBkYXRhLmZyYW1lKA0KICB2YXIxID0gcmVwKGMoIkMiLCAiQiIsICJBIiksIDMpLA0KICB2YXIyID0gcmVwKGMoIkEiLCAiQiIsICJDIiksIGVhY2ggPSAzKSwNCiAgY291bnQgPSBjKDQsIDEsIDIsIDEyLCA5LCA1LCA0LCA1LCA0KQ0KKSAlPiUgZ3JvdXBfYnkodmFyMikgJT4lDQogIG11dGF0ZShncm91cF9jb3VudCA9IHN1bShjb3VudCkpDQpkZl9tdWx0aV9wcm9wczIgPC0gZGF0YS5mcmFtZSgNCiAgdmFyMSA9IHJlcChjKCJCIiwgIkEiKSwgOSksDQogIHZhcjIgPSByZXAoYygiRSIsICJFIiwgIkQiLCAiRCIsICJDIiwgIkMiKSwgMyksDQogIHZhcjMgPSByZXAoYygiSCIsICJHIiwgIkYiKSwgZWFjaCA9IDYpLA0KICBjb3VudCA9IGMoNSwgOCwgMCwgMCwgMCwgMCwgMCwgMywgMiwgNywgMCwgMCwgNCwgMCwgNCwgMiwgNywgNCkNCikNCmRmX3NldHMgPC0gZ2F0aGVyX3NldF9kYXRhKGRmX211bHRpX3Byb3BzMiwgMTozKQ0KZGZfb25lX2xpbmUgPC0gZGF0YS5mcmFtZSgNCiAgeCA9IDE6NSwNCiAgeSA9IGMoMy4xLCAzLjMsIDQuMCwgMy44LCA0LjQpDQopDQpzZXQuc2VlZCg5NjgxKQ0KbjEgPC0gMTUwMC81DQpuMiA8LSA4MDAvNQ0KeDEgPC0gcm5vcm0objEsIDAsIC43KQ0KeTEgPC0gMiAqIHgxICsgcm5vcm0objEsIDAsIC44KQ0KeDIgPC0gcm5vcm0objIsIDAsIDAuNCkNCnkyIDwtIDEuNSAqIHgyICsgcm5vcm0objIsIC41LCAuOCkNCmRmX2RlbnNlX3NjYXR0ZXIgPC0gbmEub21pdCgNCiAgZGF0YS5mcmFtZSgNCiAgICB4ID0gc2NhbGVzOjpjZW5zb3IoYyh4MSwgeDIgKyAyLjIpLCBjKC0yLCA0KSksDQogICAgeSA9IHNjYWxlczo6Y2Vuc29yKGMoeTEsIHkyICsgMS41KSwgYygtMy41LCA0LjUpKQ0KICApDQopDQp5MSA8LSAyICogeDEgKyBybm9ybShuMSwgMCwgMS42KQ0KeTIgPC0gMS41ICogeDIgKyBybm9ybShuMiwgLjUsIDEuNikNCmRmX2RlbnNlX3NjYXR0ZXJfc2FtcGxlIDwtIG5hLm9taXQoDQogIGRhdGEuZnJhbWUoDQogICAgeCA9IHNjYWxlczo6Y2Vuc29yKGMoeDEsIHgyICsgMi4yKSwgYygtMiwgNCkpLA0KICAgIHkgPSBzY2FsZXM6OmNlbnNvcihjKHkxLCB5MiArIDEuNSksIGMoLTMuNSwgNC41KSkNCiAgKQ0KKSAlPiUgc2FtcGxlX24oNTApDQpkZl9jb25uZWN0ZWRfc2NhdHRlciA8LSBkYXRhLmZyYW1lKA0KICB4ID0gYygxLjksIDEuNSwgMi4yLCAzLCAzLjMsIDIuNywgMS43LCAxKSwNCiAgeSA9IGMoMC4zLCAtMSwgLTIuMCwgLTAuOSwgLjYsIDEuOCwgMiwgMC43KSwNCiAgdCA9IDE6OA0KKQ0KZGZfcGFpcmVkIDwtIGRhdGEuZnJhbWUoDQogIHkgPSBjKDYsIDUuMywgMy44LCAyLjgsIDIsDQogICAgICAgIDQuMywgNi4xLCA1LjEsIDMuMywgMi40KSwNCiAgeCA9IHJlcChjKCJBIiwgIkIiKSwgZWFjaCA9IDUpLA0KICBncm91cCA9IHJlcCgxOjUsIDIpDQopDQpkZl91bmNlcnRhaW4gPC0gZGF0YS5mcmFtZSgNCiAgdHlwZSA9IGMoIkEiLCAiQiIsICJDIiksDQogIHggPSBjKDEuNSwgMi4yLCAzLjQpLA0KICB5ID0gYygzLjIsIDUuMSwgMy45KSwNCiAgZHggPSBjKC4yNSwgLjMsIC4zNSksDQogIGR5ID0gYyguNSwgLjQsIC42KQ0KKQ0KIyBwYWxldHRlcw0KbnBhbCA8LSA1DQojIGVhcnRoLWJyb3duIChBbW91bnRzKQ0KcGFsX2VhcnRoX2Jyb3duIDwtIHNlcXVlbnRpYWxfaGNsKG4gPSBucGFsLCBoMSA9IDcxLCBjMSA9IDgwLCBjMiA9IDEwLCBsMSA9IDE4LCBsMiA9IDk3LCBwMSA9IDEuNSkNCiMgYnJvd24tZ3JlZW4gKFByb3BvcnRpb25zKQ0KcGFsX2Jyb3duX2dyZWVuIDwtIHNlcXVlbnRpYWxfaGNsKG4gPSBucGFsLCBoMSA9IDg2LCBjMSA9IDgwLCBjMiA9IDEwLCBsMSA9IDE4LCBsMiA9IDk3LCBwMSA9IDEuNSkNCiMgZ3JlZW4tYnJvd24gKEdlb3NwYXRpYWwgZGF0YSkNCnBhbF9ncmVlbl9icm93biA8LSBzZXF1ZW50aWFsX2hjbChuID0gbnBhbCwgaDEgPSAtMjY1LCBjMSA9IDgwLCBjMiA9IDEwLCBsMSA9IDE4LCBsMiA9IDk3LCBwMSA9IDEuNSkNCiMgYnVyZ3VuZHktcmVkIA0KcGFsX3JlZF9icm93biA8LSBzZXF1ZW50aWFsX2hjbChuID0gbnBhbCwgaDEgPSAyOCwgYzEgPSA4MCwgYzIgPSAxMCwgbDEgPSAxOCwgbDIgPSA5NywgcDEgPSAxLjUpDQojIGJyb3duLXJlZCAoVW5jZXJ0YWludHkpDQpwYWxfYnJvd25fcmVkIDwtIHNlcXVlbnRpYWxfaGNsKG4gPSBucGFsLCBoMSA9IDQxLCBjMSA9IDgwLCBjMiA9IDEwLCBsMSA9IDE4LCBsMiA9IDk3LCBwMSA9IDEuNSkNCiMgb2NlYW4tYmx1ZSAoRGlzdHJpYnV0aW9ucykNCnBhbF9vY2Vhbl9ibHVlIDwtIHNlcXVlbnRpYWxfaGNsKG4gPSBucGFsLCBoMSA9IDI0MSwgYzEgPSA4MCwgYzIgPSAxMCwgbDEgPSAxOCwgbDIgPSA5NywgcDEgPSAxLjUpDQojIHN0ZWVsLWJsdWUgKHgteSByZWxhdGlvbnNoaXBzKQ0KcGFsX3N0ZWVsX2JsdWUgPC0gc2VxdWVudGlhbF9oY2wobiA9IG5wYWwsIGgxID0gMjU3LCBjMSA9IDgwLCBjMiA9IDEwLCBsMSA9IDE4LCBsMiA9IDk3LCBwMSA9IDEuNSkNCnBhbF9zdGVlbF9ibHVlX2ludiA8LSBzZXF1ZW50aWFsX2hjbChuID0gbnBhbCwgaDEgPSAyNTctMTgwLCBjMSA9IDgwLCBjMiA9IDEwLCBsMSA9IDE4LCBsMiA9IDk3LCBwMSA9IDEuNSkNCmBgYA0KDQoNCg0KYGBge3J9DQoNCiMnIGR2aXouc3VwcA0KIycNCiMnIFN1cHBvcnRpbmcgbWF0ZXJpYWxzIGZvciBDbGF1cyBXaWxrZSdzIGRhdGEgdmlzdWFsaXphdGlvbiBib29rLg0KIycgQG5hbWUgZHZpei5zdXBwDQojJyBAZG9jVHlwZSBwYWNrYWdlDQojJyBAaW1wb3J0IGRwbHlyDQojJyBAaW1wb3J0IGNvd3Bsb3QNCiMnIEBpbXBvcnQgY29sb3JzcGFjZQ0KIycgQGltcG9ydCBjb2xvcmJsaW5kcg0KIA0KDQojICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiMgICAgICAgICAgICAgICAgICAgICBTZXR1cA0KIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQoNCi5vbkF0dGFjaCA8LSBmdW5jdGlvbihsaWJuYW1lLCBwa2duYW1lKSB7DQogICMgc3dpdGNoIHRoZSBjb3dwbG90IG51bGwgZGV2aWNlDQogIGNvd3Bsb3Q6OnNldF9udWxsX2RldmljZSgicG5nIikNCn0NCg0KIycgQG5vUmQNCiMnIEB1c2FnZSBOVUxMDQojJyBAZXhwb3J0DQpkdml6X2ZvbnRfZmFtaWx5IDwtICJNeXJpYWQgUHJvIg0KDQojJyBAbm9SZA0KIycgQHVzYWdlIE5VTEwNCiMnIEBleHBvcnQNCmR2aXpfZm9udF9mYW1pbHlfYm9sZCA8LSAiTXlyaWFkIFBybyBTZW1pYm9sZCINCg0KIycgQG5vUmQNCiMnIEB1c2FnZSBOVUxMDQojJyBAZXhwb3J0DQpkdml6X2ZvbnRfZmFtaWx5X2NvbmRlbnNlZCA8LSAiTXlyaWFkIFBybyBDb25kZW5zZWQiDQoNCiMnIEBub1JkDQojJyBAdXNhZ2UgTlVMTA0KIycgQGV4cG9ydA0KZHZpel9mb250X2ZhbWlseV9ib2xkX2NvbmRlbnNlZCA8LSAiTXlyaWFkIFBybyBCb2xkIENvbmRlbnNlZCINCmBgYA0KDQoNCg0KDQoNCmBgYHtyfQ0KIycgVGhlbWVzIGZvciBkYXRhIHZpeiBib29rDQojJw0KIycgVGhlIHRoZW1lcyB1c2VkIGluIHRoZSBkYXRhIHZpc3VhbGl6YXRpb24gYm9vay4gVGhlIGRlZmF1bHQgZm9udCBmb3IgdGhlc2UNCiMnIHRoZW1lcyBpcyBNeXJpYWQgUHJvLCB3aGljaCBuZWVkcyB0byBiZSBpbnN0YWxsZWQgb24gdGhlIHRhcmdldCBzeXN0ZW0gZm9yDQojJyB0aGVzZSB0aGVtZXMgdG8gd29yay4NCiMnDQojJyBAcGFyYW0gZm9udF9zaXplIE92ZXJhbGwgZm9udCBzaXplDQojJyBAcGFyYW0gZm9udF9mYW1pbHkgRm9udCBmYW1pbHkgZm9yIHBsb3QgdGl0bGUsIGF4aXMgdGl0bGVzIGFuZCBsYWJlbHMsIGxlZ2VuZCB0ZXh0cywgZXRjLg0KIycgQHBhcmFtIGxpbmVfc2l6ZSBMaW5lIHNpemUgZm9yIGF4aXMgbGluZXMNCiMnIEBwYXJhbSByZWxfc21hbGwgUmVsYXRpdmUgc2l6ZSBvZiBzbWFsbCB0ZXh0IChlLmcuLCBheGlzIHRpY2sgbGFiZWxzKQ0KIycgQHBhcmFtIHJlbF90aW55IFJlbGF0aXZlIHNpemUgb2YgdGlueSB0ZXh0IChlLmcuLCBjYXB0aW9uKQ0KIycgQHBhcmFtIHJlbF9sYXJnZSBSZWxhdGl2ZSBzaXplIG9mIGxhcmdlIHRleHQgKGUuZy4sIHRpdGxlKQ0KIycgQGV4cG9ydA0KdGhlbWVfZHZpel9vcGVuIDwtIGZ1bmN0aW9uKGZvbnRfc2l6ZSA9IDE0LCBmb250X2ZhbWlseSA9IGR2aXpfZm9udF9mYW1pbHksIGxpbmVfc2l6ZSA9IC41LA0KICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfc21hbGwgPSAxMi8xNCwgcmVsX3RpbnkgPSAxMS8xNCwgcmVsX2xhcmdlID0gMTYvMTQpIHsNCiAgaGFsZl9saW5lIDwtIGZvbnRfc2l6ZSAvIDINCiAgDQogIGNvd3Bsb3Q6OnRoZW1lX2hhbGZfb3Blbihmb250X3NpemUgPSBmb250X3NpemUsIGZvbnRfZmFtaWx5ID0gZm9udF9mYW1pbHksIGxpbmVfc2l6ZSA9IGxpbmVfc2l6ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbF9zbWFsbCA9IHJlbF9zbWFsbCwgcmVsX3RpbnkgPSByZWxfdGlueSwgcmVsX2xhcmdlID0gcmVsX2xhcmdlKSAgJStyZXBsYWNlJQ0KICAgIHRoZW1lKA0KICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oaGFsZl9saW5lLzIsIDEuNSwgaGFsZl9saW5lLzIsIDEuNSksDQogICAgICBjb21wbGV0ZSA9IFRSVUUNCiAgICApDQp9DQoNCiMnIEByZG5hbWUgdGhlbWVfZHZpel9vcGVuDQojJyBAcGFyYW0gY29sb3VyIENvbG9yIG9mIGdyaWQgbGluZXMNCiMnIEBleHBvcnQNCnRoZW1lX2R2aXpfZ3JpZCA8LSBmdW5jdGlvbihmb250X3NpemUgPSAxNCwgZm9udF9mYW1pbHkgPSBkdml6X2ZvbnRfZmFtaWx5LCBsaW5lX3NpemUgPSAuNSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfc21hbGwgPSAxMi8xNCwgcmVsX3RpbnkgPSAxMS8xNCwgcmVsX2xhcmdlID0gMTYvMTQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3VyID0gImdyZXk5MCIpIHsNCiAgaGFsZl9saW5lIDwtIGZvbnRfc2l6ZSAvIDINCiAgDQogIGNvd3Bsb3Q6OnRoZW1lX21pbmltYWxfZ3JpZChmb250X3NpemUgPSBmb250X3NpemUsIGZvbnRfZmFtaWx5ID0gZm9udF9mYW1pbHksIGxpbmVfc2l6ZSA9IGxpbmVfc2l6ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbF9zbWFsbCA9IHJlbF9zbWFsbCwgcmVsX3RpbnkgPSByZWxfdGlueSwgcmVsX2xhcmdlID0gcmVsX2xhcmdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3VyID0gY29sb3VyKSAgJStyZXBsYWNlJQ0KICAgIHRoZW1lKA0KICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oaGFsZl9saW5lLzIsIDEuNSwgaGFsZl9saW5lLzIsIDEuNSksDQogICAgICBjb21wbGV0ZSA9IFRSVUUNCiAgICApDQp9DQoNCiMnIEByZG5hbWUgdGhlbWVfZHZpel9vcGVuDQojJyBAZXhwb3J0DQp0aGVtZV9kdml6X2hncmlkIDwtIGZ1bmN0aW9uKGZvbnRfc2l6ZSA9IDE0LCBmb250X2ZhbWlseSA9IGR2aXpfZm9udF9mYW1pbHksIGxpbmVfc2l6ZSA9IC41LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbF9zbWFsbCA9IDEyLzE0LCByZWxfdGlueSA9IDExLzE0LCByZWxfbGFyZ2UgPSAxNi8xNCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvdXIgPSAiZ3JleTkwIikgew0KICBoYWxmX2xpbmUgPC0gZm9udF9zaXplIC8gMg0KICANCiAgY293cGxvdDo6dGhlbWVfbWluaW1hbF9oZ3JpZChmb250X3NpemUgPSBmb250X3NpemUsIGZvbnRfZmFtaWx5ID0gZm9udF9mYW1pbHksIGxpbmVfc2l6ZSA9IGxpbmVfc2l6ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbF9zbWFsbCA9IHJlbF9zbWFsbCwgcmVsX3RpbnkgPSByZWxfdGlueSwgcmVsX2xhcmdlID0gcmVsX2xhcmdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3VyID0gY29sb3VyKSAgJStyZXBsYWNlJQ0KICAgIHRoZW1lKA0KICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oaGFsZl9saW5lLzIsIDEuNSwgaGFsZl9saW5lLzIsIDEuNSksDQogICAgICBjb21wbGV0ZSA9IFRSVUUNCiAgICApDQp9DQoNCiMnIEByZG5hbWUgdGhlbWVfZHZpel9vcGVuDQojJyBAZXhwb3J0DQp0aGVtZV9kdml6X3ZncmlkIDwtIGZ1bmN0aW9uKGZvbnRfc2l6ZSA9IDE0LCBmb250X2ZhbWlseSA9IGR2aXpfZm9udF9mYW1pbHksIGxpbmVfc2l6ZSA9IC41LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbF9zbWFsbCA9IDEyLzE0LCByZWxfdGlueSA9IDExLzE0LCByZWxfbGFyZ2UgPSAxNi8xNCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvdXIgPSAiZ3JleTkwIikgew0KICBoYWxmX2xpbmUgPC0gZm9udF9zaXplIC8gMg0KICANCiAgY293cGxvdDo6dGhlbWVfbWluaW1hbF92Z3JpZChmb250X3NpemUgPSBmb250X3NpemUsIGZvbnRfZmFtaWx5ID0gZm9udF9mYW1pbHksIGxpbmVfc2l6ZSA9IGxpbmVfc2l6ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbF9zbWFsbCA9IHJlbF9zbWFsbCwgcmVsX3RpbnkgPSByZWxfdGlueSwgcmVsX2xhcmdlID0gcmVsX2xhcmdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3VyID0gY29sb3VyKSAgJStyZXBsYWNlJQ0KICAgIHRoZW1lKA0KICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oaGFsZl9saW5lLzIsIDEuNSwgaGFsZl9saW5lLzIsIDEuNSksDQogICAgICBjb21wbGV0ZSA9IFRSVUUNCiAgICApDQp9DQoNCiMnIEByZG5hbWUgdGhlbWVfZHZpel9vcGVuDQojJyBAZXhwb3J0DQp0aGVtZV9kdml6X21hcCA8LSBmdW5jdGlvbihmb250X3NpemUgPSAxNCwgZm9udF9mYW1pbHkgPSBkdml6X2ZvbnRfZmFtaWx5LCBsaW5lX3NpemUgPSAuNSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfc21hbGwgPSAxMi8xNCwgcmVsX3RpbnkgPSAxMS8xNCwgcmVsX2xhcmdlID0gMTYvMTQpIHsNCiAgaGFsZl9saW5lIDwtIGZvbnRfc2l6ZSAvIDINCiAgDQogIGNvd3Bsb3Q6OnRoZW1lX21hcChmb250X3NpemUgPSBmb250X3NpemUsIGZvbnRfZmFtaWx5ID0gZm9udF9mYW1pbHksIGxpbmVfc2l6ZSA9IGxpbmVfc2l6ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbF9zbWFsbCA9IHJlbF9zbWFsbCwgcmVsX3RpbnkgPSByZWxfdGlueSwgcmVsX2xhcmdlID0gcmVsX2xhcmdlKSAgJStyZXBsYWNlJQ0KICAgIHRoZW1lKA0KICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oaGFsZl9saW5lLzIsIDEuNSwgaGFsZl9saW5lLzIsIDEuNSksDQogICAgICBjb21wbGV0ZSA9IFRSVUUNCiAgICApDQp9DQpgYGANCg0KDQoNCiMgQW1vdW50cw0KDQpgYGB7ciBhbW91bnRzLCBmaWcud2lkdGggPSA4LCBmaWcuYXNwID0gMS80fQ0KcGFsZXR0ZSA8LSBwYWxfZWFydGhfYnJvd24NCg0KcDEgPC0gZ2dwbG90KGRmX3Byb3BzLCBhZXMoeCA9IGdyb3VwLCB5ID0gdmFsdWUpKSArIA0KICBnZW9tX2NvbCgNCiAgICBwb3NpdGlvbj0iaWRlbnRpdHkiLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0sDQogICAgZmlsbCA9IHBhbGV0dGVbM10sIHdpZHRoID0gMC44DQogICkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCA2NiksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gcGFsZXR0ZVsyOjRdKSArDQogIGxhYnModGl0bGUgPSAiQmFycyIpICsNCiAgdGhlbWVfcGxvdF9pY29uX2hncmlkKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQoNCg0KcDIgPC0gZ2dwbG90KGRmX3Byb3BzLCBhZXMoeCA9IGZjdF9yZXYoZ3JvdXApLCB5ID0gdmFsdWUpKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbj0iaWRlbnRpdHkiLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0sIGZpbGwgPSBwYWxldHRlWzNdLA0KICAgICAgICAgICB3aWR0aCA9IC44KSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDY2KSwgZXhwYW5kID0gYygwLCAwKSkgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBwYWxldHRlWzI6NF0pICsNCiAgY29vcmRfZmxpcCgpICsNCiAgbGFicyh0aXRsZSA9ICJCYXJzIikgKw0KICB0aGVtZV9wbG90X2ljb25fdmdyaWQocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnAzIDwtIGdncGxvdChmaWx0ZXIoZGZfbXVsdGlfYW1vdW50cywgeCE9NCksIGFlcyh4LCB5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPWZhY3Rvcih0eXBlLCBsZXZlbHMgPSBjKCJBIiwgIkMiLCAiQiIpKSkpICsgDQogIGdlb21fY29sKHBvc2l0aW9uPSJkb2RnZSIsIGNvbG9yID0gcGFsZXR0ZVtucGFsXSwNCiAgICAgICAgICAgd2lkdGggPSAuNykgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoZXhwYW5kID0gYygwLCAwKSwNCiAgICAgICAgICAgICAgICAgICAgIGxpbWl0cyA9IGMoMCwgLjcpKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGVbMjo0XSkgKw0KICBsYWJzKHRpdGxlID0gIkdyb3VwZWQgQmFycyIpICsNCiAgdGhlbWVfcGxvdF9pY29uX2hncmlkKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNCA8LSBnZ3Bsb3QoZmlsdGVyKGRmX211bHRpX2Ftb3VudHMsIHghPTQpLCBhZXMoeCwgeSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1mYWN0b3IodHlwZSwgbGV2ZWxzID0gYygiQiIsICJDIiwgIkEiKSkpKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbj0iZG9kZ2UiLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0sDQogICAgICAgICAgIHdpZHRoID0gLjcpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGV4cGFuZCA9IGMoMCwgMCksDQogICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKDAsIC43KSkgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSByZXYocGFsZXR0ZVsyOjRdKSkgKw0KICBjb29yZF9mbGlwKCkgKw0KICBsYWJzKHRpdGxlID0gIkdyb3VwZWQgQmFycyIpICsNCiAgdGhlbWVfcGxvdF9pY29uX3ZncmlkKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNSA8LSBnZ3Bsb3QoZGZfbXVsdGlfYW1vdW50cywgYWVzKHgsIHksIGZpbGw9ZmFjdG9yKHR5cGUsIGxldmVscyA9IGMoIkIiLCAiQyIsICJBIikpKSkgKyANCiAgZ2VvbV9jb2wocG9zaXRpb249InN0YWNrIiwgY29sb3IgPSBwYWxldHRlW25wYWxdKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDEuNTUpLA0KICAgICAgICAgICAgICAgICAgICAgZXhwYW5kID0gYygwLCAwKSkgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSByZXYocGFsZXR0ZVsyOjRdKSkgKw0KICBsYWJzKHRpdGxlID0gIlN0YWNrZWQgQmFycyIpICsNCiAgdGhlbWVfcGxvdF9pY29uX2hncmlkKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNiA8LSBwNSArIGNvb3JkX2ZsaXAoKSArIHRoZW1lX3Bsb3RfaWNvbl92Z3JpZChwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcDcgPC0gZ2dwbG90KGRmX3Byb3BzLCBhZXMoeCA9IGZjdF9yZXYoZ3JvdXApLCB5ID0gdmFsdWUpKSArIA0KICBnZW9tX3BvaW50KGNvbG9yID0gcGFsZXR0ZVsyXSwgc2l6ZSA9IDIpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgNjYpLCBleHBhbmQgPSBjKDAsIDApKSArDQogIGNvb3JkX2ZsaXAoKSArIA0KICBsYWJzKHRpdGxlID0gIkRvdHMiKSArDQogIHRoZW1lX3Bsb3RfaWNvbl92Z3JpZChwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcDggPC0gZ2dwbG90KGZpbHRlcihkZl9tdWx0aV9hbW91bnRzLCB4ICE9IDEpLCBhZXMoeCwgeSA9IGZhY3Rvcih0eXBlLCBsZXZlbHMgPSBjKCJBIiwgIkMiLCAiQiIpKSwgZmlsbCA9IHkpKSArIA0KICBnZW9tX3RpbGUoY29sb3IgPSBwYWxldHRlWzVdLCBzaXplID0gMS41KSArDQogIHNjYWxlX2ZpbGxfY29udGludW91c19zZXF1ZW50aWFsKA0KICAgIGgxID0gNzEsIGMxID0gODAsIGMyID0gMTAsIGwxID0gMTgsIGwyID0gOTcsIHAxID0gMS41LA0KICAgIGJlZ2luID0gMC4yLCBlbmQgPSAwLjc1LA0KICAgIHJldiA9IEZBTFNFDQogICkgKw0KICBsYWJzKHRpdGxlID0gIkhlYXRtYXAiKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcGxvdF9ncmlkKHAxLCBwMiwgcDcsIG5jb2wgPSA0LCBzY2FsZSA9IC45KQ0KYGBgDQoNClRoZSBtb3N0IGNvbW1vbiBhcHByb2FjaCB0byB2aXN1YWxpemluZyBhbW91bnRzIChpLmUuLCBudW1lcmljYWwgdmFsdWVzIHNob3duIGZvciBzb21lIHNldCBvZiBjYXRlZ29yaWVzKSBpcyB1c2luZyBiYXJzLCBlaXRoZXIgdmVydGljYWxseSBvciBob3Jpem9udGFsbHkgYXJyYW5nZWQuIEhvd2V2ZXIsIGluc3RlYWQgb2YgdXNpbmcgYmFycywgd2UgY2FuIGFsc28gcGxhY2UgZG90cyBhdCB0aGUgbG9jYXRpb24gd2hlcmUgdGhlIGNvcnJlc3BvbmRpbmcgYmFyIHdvdWxkIGVuZC4NCg0KDQpgYGB7ciBhbW91bnRzX211bHRpLCBmaWcud2lkdGggPSA1KjYvNC4yLCBmaWcuYXNwID0gMS8yfQ0KcGxvdF9ncmlkKHAzLCBwNCwgcDUsIHA2LCANCiAgICAgICAgICBwOCwgbmNvbCA9IDQsIHNjYWxlID0gLjkpDQpgYGANCg0KSWYgdGhlcmUgYXJlIHR3byBvciBtb3JlIHNldHMgb2YgY2F0ZWdvcmllcyBmb3Igd2hpY2ggd2Ugd2FudCB0byBzaG93IGFtb3VudHMsIHdlIGNhbiBncm91cCBvciBzdGFjayB0aGUgYmFycy4gV2UgY2FuIGFsc28gbWFwIHRoZSBjYXRlZ29yaWVzIG9udG8gdGhlICp4KiBhbmQgKnkqIGF4ZXMgYW5kIHNob3cgYW1vdW50cyBieSBjb2xvciwgdmlhIGEgaGVhdG1hcC4gDQoNCg0KDQojIERpc3RyaWJ1dGlvbnMNCg0KYGBge3Igc2luZ2xlLWRpc3RyaWJ1dGlvbnMsIGZpZy53aWR0aCA9IDgsIGZpZy5hc3AgPSAxLzR9DQpwYWxldHRlIDwtIHBhbF9vY2Vhbl9ibHVlDQpwMSA8LSBnZ3Bsb3QoZGZfb25lX2Rpc3QsIGFlcyh4KSkgKw0KICBnZW9tX2hpc3RvZ3JhbShmaWxsID0gcGFsZXR0ZVszXSwgY29sb3IgPSBwYWxldHRlW25wYWxdLCBiaW53aWR0aCA9IDEsIGNlbnRlciA9IDApICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTQuOCwgNi44KSwgZXhwYW5kID0gYygwLCAwKSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAzNTApLCANCiAgICAgICAgICAgICAgICAgICAgIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgbGFicyh0aXRsZSA9ICJIaXN0b2dyYW0iKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcDIgPC0gZ2dwbG90KGRmX29uZV9kaXN0LCBhZXMoeCkpICsNCiAgZ2VvbV9kZW5zaXR5KGZpbGwgPSBwYWxldHRlWzNdLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0sIGJ3ID0gLjM1KSArDQogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC00LjgsIDYuOCksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgLjI3KSwgZXhwYW5kID0gYygwLCAwKSkgKw0KICBsYWJzKHRpdGxlID0gIkRlbnNpdHkgUGxvdCIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwMyA8LSBnZ3Bsb3QoZGZfb25lX25vcm1hbCwgYWVzKHgpKSArDQogIHN0YXRfZWNkZihjb2xvciA9IHBhbGV0dGVbMl0sIHNpemUgPSAuNykgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoZXhwYW5kID0gYygwLjA1LCAwKSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAxLjA4KSwgZXhwYW5kID0gYygwLCAwKSkgKw0KICBsYWJzKHRpdGxlID0gIkN1bXVsYXRpdmUgRGVuc2l0eSIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNCA8LSBnZ3Bsb3QoZGZfb25lX25vcm1hbCwgYWVzKHNhbXBsZSA9IHgpKSArDQogIGdlb21fYWJsaW5lKGludGVyY2VwdCA9IDAsIHNsb3BlID0gMSwgY29sb3IgPSBwYWxldHRlWzNdKSArDQogIGdlb21fcXEoY29sb3IgPSBwYWxldHRlWzFdLCBzaXplID0gMC44KSArDQogIGxhYnModGl0bGUgPSAiUXVhbnRpbGUtUXVhbnRpbGUgUGxvdCIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwbG90X2dyaWQocDEsIHAyLCBwMywgcDQsIG5jb2wgPSA0LCBzY2FsZSA9IC45KQ0KYGBgDQoNCkhpc3RvZ3JhbXMgYW5kIGRlbnNpdHkgcGxvdHMgcHJvdmlkZSB0aGUgbW9zdCBpbnR1aXRpdmUgdmlzdWFsaXphdGlvbnMgb2YgYSBkaXN0cmlidXRpb24sIGJ1dCBib3RoIHJlcXVpcmUgYXJiaXRyYXJ5IHBhcmFtZXRlciBjaG9pY2VzIGFuZCBjYW4gYmUgbWlzbGVhZGluZy4gQ3VtdWxhdGl2ZSBkZW5zaXRpZXMgYW5kIHF1YW50aWxlLXF1YW50aWxlIChxLXEpIHBsb3RzIGFsd2F5cyByZXByZXNlbnQgdGhlIGRhdGEgZmFpdGhmdWxseSBidXQgY2FuIGJlIG1vcmUgZGlmZmljdWx0IHRvIGludGVycHJldC4NCg0KDQpgYGB7cn0NCiMnIGdncGxvdDIgc3RhdCB0aGF0IGNyZWF0ZXMgc2luYSBwbG90cw0KIycgDQojJyBUaGlzIHN0YXQgY2xvc2VseSBtaXJyb3JzIFtgc3RhdF95ZGVuc2l0eSgpYF0gZnJvbSBnZ3Bsb3QyLiBUaGlzIGVuYWJsZXMgdGhlDQojJyB1c2VyIHRvIHBsb3Qgc2luYSBwbG90cyBvbiB0b3Agb2YgdmlvbGluIHBsb3RzIGFuZCBoYXZlIHRoZW0gbWF0Y2ggcGVyZmVjdGx5Lg0KIycgDQojJyBAaW5oZXJpdFBhcmFtcyBnZ3Bsb3QyOjpsYXllcg0KIycgQGluaGVyaXRQYXJhbXMgZ2dwbG90Mjo6Z2VvbV9wb2ludA0KIycgQGluaGVyaXRQYXJhbXMgZ2dwbG90Mjo6c3RhdF9kZW5zaXR5DQojJyBAcGFyYW0gc2NhbGUgaWYgImFyZWEiIChkZWZhdWx0KSwgYWxsIHZpb2xpbnMgaGF2ZSB0aGUgc2FtZSBhcmVhIChiZWZvcmUgdHJpbW1pbmcNCiMnICAgdGhlIHRhaWxzKS4gSWYgImNvdW50IiwgYXJlYXMgYXJlIHNjYWxlZCBwcm9wb3J0aW9uYWxseSB0byB0aGUgbnVtYmVyIG9mDQojJyAgIG9ic2VydmF0aW9ucy4gSWYgIndpZHRoIiwgYWxsIHZpb2xpbnMgaGF2ZSB0aGUgc2FtZSBtYXhpbXVtIHdpZHRoLg0KIycgQHNlZWFsc28gW2dlb21fdmlvbGluKCldDQojJyBAZXhhbXBsZXMNCiMnIGdncGxvdChpcmlzLCBhZXMoU3BlY2llcywgU2VwYWwuTGVuZ3RoKSkgKw0KIycgICBnZW9tX3Zpb2xpbihjb2xvciA9IE5BKSArDQojJyAgIHN0YXRfc2luYSgpDQojJyBAZXhwb3J0DQpzdGF0X3NpbmEgPC0gZnVuY3Rpb24obWFwcGluZyA9IE5VTEwsIGRhdGEgPSBOVUxMLA0KICAgICAgICAgICAgICAgICAgICAgIGdlb20gPSAicG9pbnQiLCBwb3NpdGlvbiA9ICJpZGVudGl0eSIsDQogICAgICAgICAgICAgICAgICAgICAgLi4uLA0KICAgICAgICAgICAgICAgICAgICAgIGJ3ID0gIm5yZDAiLA0KICAgICAgICAgICAgICAgICAgICAgIGFkanVzdCA9IDEsDQogICAgICAgICAgICAgICAgICAgICAga2VybmVsID0gImdhdXNzaWFuIiwNCiAgICAgICAgICAgICAgICAgICAgICB0cmltID0gVFJVRSwNCiAgICAgICAgICAgICAgICAgICAgICBzY2FsZSA9ICJhcmVhIiwNCiAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgICAgIHNob3cubGVnZW5kID0gTkEsDQogICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdC5hZXMgPSBUUlVFKSB7DQogIHNjYWxlIDwtIG1hdGNoLmFyZyhzY2FsZSwgYygiYXJlYSIsICJjb3VudCIsICJ3aWR0aCIpKQ0KICANCiAgbGF5ZXIoDQogICAgZGF0YSA9IGRhdGEsDQogICAgbWFwcGluZyA9IG1hcHBpbmcsDQogICAgc3RhdCA9IFN0YXRTaW5hLA0KICAgIGdlb20gPSBnZW9tLA0KICAgIHBvc2l0aW9uID0gcG9zaXRpb24sDQogICAgc2hvdy5sZWdlbmQgPSBzaG93LmxlZ2VuZCwNCiAgICBpbmhlcml0LmFlcyA9IGluaGVyaXQuYWVzLA0KICAgIHBhcmFtcyA9IGxpc3QoDQogICAgICBidyA9IGJ3LA0KICAgICAgYWRqdXN0ID0gYWRqdXN0LA0KICAgICAga2VybmVsID0ga2VybmVsLA0KICAgICAgdHJpbSA9IHRyaW0sDQogICAgICBzY2FsZSA9IHNjYWxlLA0KICAgICAgbmEucm0gPSBuYS5ybSwNCiAgICAgIC4uLg0KICAgICkNCiAgKQ0KfQ0KDQoNCiMnIEByZG5hbWUgc3RhdF9zaW5hDQojJyBAZm9ybWF0IE5VTEwNCiMnIEB1c2FnZSBOVUxMDQojJyBAZXhwb3J0DQpTdGF0U2luYSA8LSBnZ3Byb3RvKCJTdGF0U2luYSIsIFN0YXQsDQogIHJlcXVpcmVkX2FlcyA9IGMoIngiLCAieSIpLA0KICBub25fbWlzc2luZ19hZXMgPSAid2VpZ2h0IiwNCiAgDQogIGNvbXB1dGVfZ3JvdXAgPSBmdW5jdGlvbihkYXRhLCBzY2FsZXMsIHdpZHRoID0gTlVMTCwgYncgPSAibnJkMCIsIGFkanVzdCA9IDEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICBrZXJuZWwgPSAiZ2F1c3NpYW4iLCB0cmltID0gVFJVRSwgbmEucm0gPSBGQUxTRSkgew0KICAgIGlmIChucm93KGRhdGEpIDwgMykgcmV0dXJuKGRhdGEuZnJhbWUoKSkNCiAgICByYW5nZSA8LSByYW5nZShkYXRhJHksIG5hLnJtID0gVFJVRSkNCiAgICBtb2RpZmllciA8LSBpZiAodHJpbSkgMCBlbHNlIDMNCiAgICBidyA8LSBjYWxjX2J3KGRhdGEkeSwgYncpDQogICAgZGVucyA8LSBnZ3Bsb3QyOjo6Y29tcHV0ZV9kZW5zaXR5KGRhdGEkeSwgZGF0YSR3LCBmcm9tID0gcmFuZ2VbMV0gLSBtb2RpZmllcipidywgdG8gPSByYW5nZVsyXSArIG1vZGlmaWVyKmJ3LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ3ID0gYncsIGFkanVzdCA9IGFkanVzdCwga2VybmVsID0ga2VybmVsKQ0KICAgIA0KICAgIGRlbnNmIDwtIGFwcHJveGZ1bihkZW5zJHgsIGRlbnMkZGVuc2l0eSwgcnVsZSA9IDIpDQogIA0KICAgICMgQ29tcHV0ZSB3aWR0aCBpZiB4IGhhcyBtdWx0aXBsZSB2YWx1ZXMNCiAgICBpZiAobGVuZ3RoKHVuaXF1ZShkYXRhJHgpKSA+IDEpIHsNCiAgICAgIHdpZHRoIDwtIGRpZmYocmFuZ2UoZGF0YSR4KSkgKiAwLjkNCiAgICB9DQogICAgZGF0YSR3aWR0aCA8LSB3aWR0aA0KICAgIA0KICAgIGRhdGEkZGVuc2l0eSA8LSBkZW5zZihkYXRhJHkpDQogICAgZGF0YSR4IDwtIG1lYW4ocmFuZ2UoZGF0YSR4KSkNCiAgICANCiAgICBkYXRhDQogIH0sDQogIA0KICBjb21wdXRlX3BhbmVsID0gZnVuY3Rpb24oc2VsZiwgZGF0YSwgc2NhbGVzLCB3aWR0aCA9IE5VTEwsIGJ3ID0gIm5yZDAiLCBhZGp1c3QgPSAxLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAga2VybmVsID0gImdhdXNzaWFuIiwgdHJpbSA9IFRSVUUsIG5hLnJtID0gRkFMU0UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZSA9ICJhcmVhIikgew0KICAgIGRhdGEgPC0gZ2dwcm90b19wYXJlbnQoU3RhdCwgc2VsZikkY29tcHV0ZV9wYW5lbCgNCiAgICAgIGRhdGEsIHNjYWxlcywgd2lkdGggPSB3aWR0aCwgYncgPSBidywgYWRqdXN0ID0gYWRqdXN0LCBrZXJuZWwgPSBrZXJuZWwsDQogICAgICB0cmltID0gdHJpbSwgbmEucm0gPSBuYS5ybQ0KICAgICkNCiAgICANCiAgICAjIGNob29zZSBob3cgdmlvbGlucyBhcmUgc2NhbGVkIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXINCiAgICBkYXRhJHZpb2xpbndpZHRoIDwtIHN3aXRjaChzY2FsZSwNCiAgICAgICMgYXJlYSA6IGtlZXAgdGhlIG9yaWdpbmFsIGRlbnNpdGllcyBidXQgc2NhbGUgdGhlbSB0byBhIG1heCB3aWR0aCBvZiAxDQogICAgICAjICAgICAgICBmb3IgcGxvdHRpbmcgcHVycG9zZXMgb25seQ0KICAgICAgYXJlYSA9IGRhdGEkZGVuc2l0eSAvIG1heChkYXRhJGRlbnNpdHkpLA0KICAgICAgIyBjb3VudDogdXNlIHRoZSBvcmlnaW5hbCBkZW5zaXRpZXMgc2NhbGVkIHRvIGEgbWF4aW11bSBvZiAxIChhcyBhYm92ZSkNCiAgICAgICMgICAgICAgIGFuZCB0aGVuIHNjYWxlIHRoZW0gYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2Ygb2JzZXJ2YXRpb25zDQogICAgICBjb3VudCA9IGRhdGEkZGVuc2l0eSAvIG1heChkYXRhJGRlbnNpdHkpICogZGF0YSRuIC8gbWF4KGRhdGEkbiksDQogICAgICAjIHdpZHRoOiBjb25zdGFudCB3aWR0aCAoZGVuc2l0eSBzY2FsZWQgdG8gYSBtYXhpbXVtIG9mIDEpDQogICAgICB3aWR0aCA9IGRhdGEkc2NhbGVkDQogICAgKQ0KICAgIA0KICAgIGRhdGEkeCA8LSBkYXRhJHggKyBydW5pZihucm93KGRhdGEpLCBtaW4gPSAtMSwgbWF4ID0gMSkgKg0KICAgICAgMC45KmRhdGEkdmlvbGlud2lkdGgvMg0KICAgIA0KICAgIGRhdGENCiAgfQ0KICANCikNCg0KY2FsY19idyA8LSBmdW5jdGlvbih4LCBidykgew0KICBpZiAoaXMuY2hhcmFjdGVyKGJ3KSkgew0KICAgIGlmIChsZW5ndGgoeCkgPCAyKQ0KICAgICAgc3RvcCgibmVlZCBhdCBsZWFzdCAyIHBvaW50cyB0byBzZWxlY3QgYSBiYW5kd2lkdGggYXV0b21hdGljYWxseSIsIGNhbGwuID0gRkFMU0UpDQogICAgYncgPC0gc3dpdGNoKA0KICAgICAgdG9sb3dlcihidyksDQogICAgICBucmQwID0gc3RhdHM6OmJ3Lm5yZDAoeCksDQogICAgICBucmQgPSBzdGF0czo6YncubnJkKHgpLA0KICAgICAgdWN2ID0gc3RhdHM6OmJ3LnVjdih4KSwNCiAgICAgIGJjdiA9IHN0YXRzOjpidy5iY3YoeCksDQogICAgICBzaiA9ICwNCiAgICAgIGBzai1zdGVgID0gc3RhdHM6OmJ3LlNKKHgsIG1ldGhvZCA9ICJzdGUiKSwNCiAgICAgIGBzai1kcGlgID0gc3RhdHM6OmJ3LlNKKHgsIG1ldGhvZCA9ICJkcGkiKSwNCiAgICAgIHN0b3AoInVua25vd24gYmFuZHdpZHRoIHJ1bGUiKQ0KICAgICkNCiAgfQ0KICBidw0KfQ0KYGBgDQoNCg0KDQpgYGB7ciBtdWx0aXBsZS1kaXN0cmlidXRpb25zLCBmaWcud2lkdGggPSA4LCBmaWcuYXNwID0gMS8yfQ0KcGFsZXR0ZSA8LSBwYWxfb2NlYW5fYmx1ZQ0KcDEgPC0gZ2dwbG90KGRmX211bHRpX2Rpc3QsIGFlcyh4ID0gdHlwZSwgeSA9IHkpKSArIA0KICBnZW9tX2JveHBsb3QoY29sb3IgPSBwYWxldHRlWzFdLCBmaWxsID0gcGFsZXR0ZVs0XSkgKw0KICBsYWJzKHRpdGxlID0gIkJveHBsb3RzIikgKw0KICB0aGVtZV9wbG90X2ljb25faGdyaWQocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnAyIDwtIGdncGxvdChkZl9tdWx0aV9kaXN0LCBhZXMoeCA9IHR5cGUsIHkgPSB5KSkgKyANCiAgZ2VvbV92aW9saW4oY29sb3IgPSBwYWxldHRlW25wYWxdLCBmaWxsID0gcGFsZXR0ZVsyXSwgc2l6ZSA9IDApICsNCiAgbGFicyh0aXRsZSA9ICJWaW9saW5zIikgKw0KICB0aGVtZV9wbG90X2ljb25faGdyaWQocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCmRmX211bHRpX2Rpc3Rfc21hbGwgPC0gZ3JvdXBfYnkoZGZfbXVsdGlfZGlzdCwgdHlwZSkgJT4lDQogIHNhbXBsZV9uKDUwKQ0KcDMgPC0gZ2dwbG90KGRmX211bHRpX2Rpc3Rfc21hbGwsIGFlcyh4ID0gdHlwZSwgeSA9IHkpKSArIA0KICBnZW9tX2ppdHRlcihjb2xvciA9IHBhbGV0dGVbMV0sIHdpZHRoID0gMC4xNSwgaGVpZ2h0ID0gMCwgc2l6ZSA9IC4zKSArDQogIGxhYnModGl0bGUgPSAiU3RyaXAgQ2hhcnRzIikgKw0KICB0aGVtZV9wbG90X2ljb25faGdyaWQocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnA0IDwtIGdncGxvdChkZl9tdWx0aV9kaXN0X3NtYWxsLCBhZXMoeCA9IHR5cGUsIHkgPSB5KSkgKyANCiAgIHN0YXRfc2luYShjb2xvciA9IHBhbGV0dGVbMV0sIHNpemUgPSAwLjMpICsNCiAgbGFicyh0aXRsZSA9ICJTaW5hIFBsb3RzIikgKw0KICB0aGVtZV9wbG90X2ljb25faGdyaWQocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnA1IDwtIGdncGxvdChkZl9tdWx0aV9kaXN0LCBhZXMoeCA9IHksIGZpbGwgPSBmYWN0b3IodHlwZSwgbGV2ZWxzID0gYygiQyIsICJBIiwgIkIiKSkpKSArIA0KICBnZW9tX2hpc3RvZ3JhbShjb2xvciA9IHBhbGV0dGVbbnBhbF0sIGJpbndpZHRoID0gMC41LCBjZW50ZXIgPSAwKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGVbMjo0XSkgKw0KICBsYWJzKHRpdGxlID0gIlN0YWNrZWQgSGlzdG9ncmFtcyIpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKCkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCA0OSksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNiA8LSBnZ3Bsb3QoZGZfbXVsdGlfZGlzdCwgYWVzKHggPSB5LCBmaWxsID0gZmFjdG9yKHR5cGUsIGxldmVscyA9IGMoIkMiLCAiQSIsICJCIikpKSkgKyANCiAgZ2VvbV9kZW5zaXR5KGFscGhhID0gMC43LCBjb2xvciA9IHBhbGV0dGVbbnBhbF0pICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gcGFsZXR0ZVsxOjNdKSArDQogIGxhYnModGl0bGUgPSAiT3ZlcmxhcHBpbmcgRGVuc2l0aWVzIikgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDEuMSksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNyA8LSBnZ3Bsb3QoZGZfbXVsdGlfZGlzdCwgYWVzKHggPSB5LCB5ID0gbnVtYmVyLCBncm91cCA9IG51bWJlcikpICsgDQogIGdlb21fZGVuc2l0eV9yaWRnZXMoYWxwaGEgPSAwLjcsIGNvbG9yID0gcGFsZXR0ZVtucGFsXSwgZmlsbCA9IHBhbGV0dGVbMl0sIHNjYWxlID0gMi41KSArDQogIGxhYnModGl0bGUgPSAiUmlkZ2VsaW5lIFBsb3QiKSArDQogIHNjYWxlX3hfY29udGludW91cyhleHBhbmQgPSBjKDAsIDApKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDEsIDYuNSksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwbG90X2dyaWQocDEsIHAyLCBwMywgcDQsIA0KICAgICAgICAgIHA1LCBwNiwgcDcsIG5jb2wgPSA0LCBzY2FsZSA9IC45KQ0KYGBgDQoNCg0KQm94LXBsb3RzLCB2aW9saW5zLCBzdHJpcCBjaGFydHMsIGFuZCBzaW5hIHBsb3RzIGFyZSB1c2VmdWwgd2hlbiB3ZSB3YW50IHRvIHZpc3VhbGl6ZSBtYW55IGRpc3RyaWJ1dGlvbnMgYXQgb25jZSBhbmQvb3IgaWYgd2UgYXJlIHByaW1hcmlseSBpbnRlcmVzdGVkIGluIG92ZXJhbGwgc2hpZnRzIGFtb25nIHRoZSBkaXN0cmlidXRpb25zLiBTdGFja2VkIGhpc3RvZ3JhbXMgYW5kIG92ZXJsYXBwaW5nIGRlbnNpdGllcyBhbGxvdyBhIG1vcmUgaW4tZGVwdGggY29tcGFyaXNvbiBvZiBhIHNtYWxsZXIgbnVtYmVyIG9mIGRpc3RyaWJ1dGlvbnMsIHRob3VnaCBzdGFja2VkIGhpc3RvZ3JhbXMgY2FuIGJlIGRpZmZpY3VsdCB0byBpbnRlcnByZXQgYW5kIGFyZSBiZXN0IGF2b2lkZWQuIFJpZGdlbGluZSBwbG90cyBjYW4gYmUgYSB1c2VmdWwgYWx0ZXJuYXRpdmUgdG8gdmlvbGluIHBsb3RzIGFuZCBhcmUgb2Z0ZW4gdXNlZnVsIHdoZW4gdmlzdWFsaXppbmcgdmVyeSBsYXJnZSBudW1iZXJzIG9mIGRpc3RyaWJ1dGlvbnMgb3IgY2hhbmdlcyBpbiBkaXN0cmlidXRpb25zIG92ZXIgdGltZS4NCg0KDQoNCiMgUHJvcG9ydGlvbnMNCg0KYGBge3IgcHJvcG9ydGlvbnMsIGZpZy53aWR0aCA9IDgsIGZpZy5hc3AgPSAxLzR9DQpwYWxldHRlIDwtIHBhbF9icm93bl9ncmVlbg0KcDFfbWFpbiA8LSBnZ3Bsb3QoZGZfcHJvcHMsIGFlcyh4ID0gMSwgeSA9IHZhbHVlLCBmaWxsID0gZ3JvdXApKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbiA9ICJzdGFjayIsIGNvbG9yID0gcGFsZXR0ZVtucGFsXSkgKyANCiAgY29vcmRfcG9sYXIodGhldGEgPSAieSIpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IE5VTEwsIG5hbWUgPSAiIikgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gTlVMTCwgbmFtZSA9ICIiKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGVbMjo0XSkgKw0KICB0aGVtZV9wbG90X2ljb25fYmxhbmsocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkgKw0KICB0aGVtZShwbG90Lm1hcmdpbiA9IG1hcmdpbigwLCAwLCAwLCAwKSkNCiMgbWFrZSBzdXJlIHBsb3QgYmFja2dyb3VuZCBpcyBmdWxseSBmaWxsZWQsIGFzIGluIHRoZSBvdGhlciBwbG90cw0KcDEgPC0gZ2dkcmF3KHAxX21haW4pICsNCiAgbGFicyh0aXRsZSA9ICJQaWUgQ2hhcnQiKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcDIgPC0gZ2dwbG90KGRmX3Byb3BzLCBhZXMoeCA9IGZhY3RvcigxKSwgeSA9IHZhbHVlLCBmaWxsID0gZ3JvdXApKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHJldmVyc2UgPSBUUlVFKSwgd2lkdGggPSAuNDUsIGNvbG9yID0gcGFsZXR0ZVtucGFsXSkgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgMTA4KSwgZXhwYW5kID0gYygwLCAwKSkgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBwYWxldHRlWzI6NF0pICsNCiAgbGFicyh0aXRsZSA9ICJTdGFja2VkIEJhcnMiKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9oZ3JpZChwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcDMgPC0gZ2dwbG90KGRmX3Byb3BzLCBhZXMoeCA9IGZhY3RvcigxKSwgeSA9IHZhbHVlLCBmaWxsID0gZ3JvdXApKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHJldmVyc2UgPSBUUlVFKSwgd2lkdGggPSAuNDUsIGNvbG9yID0gcGFsZXR0ZVtucGFsXSkgKyANCiAgI3NjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDExMCksIGV4cGFuZCA9IGMoMCwgMCksIHBvc2l0aW9uID0gInJpZ2h0IikgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAxMTApLCBleHBhbmQgPSBjKDAsIDApKSArDQogIGNvb3JkX2ZsaXAoKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGVbMjo0XSkgKw0KICBsYWJzKHRpdGxlID0gIlN0YWNrZWQgQmFycyIpICsNCiAgdGhlbWVfcGxvdF9pY29uX3ZncmlkKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNCA8LSBnZ3Bsb3QoZGZfcHJvcHMsIGFlcyh4ID0gZ3JvdXAsIHkgPSB2YWx1ZSwgZmlsbCA9IGdyb3VwKSkgKyANCiAgZ2VvbV9jb2wocG9zaXRpb249ImlkZW50aXR5IiwgY29sb3IgPSBwYWxldHRlW25wYWxdLA0KICAgICAgICAgICB3aWR0aCA9IC44KSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDY2KSwgZXhwYW5kID0gYygwLCAwKSkgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBwYWxldHRlWzI6NF0pICsNCiAgbGFicyh0aXRsZSA9ICJCYXJzIikgKw0KICB0aGVtZV9wbG90X2ljb25faGdyaWQocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnA1IDwtIGdncGxvdChkZl9wcm9wcywgYWVzKHggPSBmY3RfcmV2KGdyb3VwKSwgeSA9IHZhbHVlLCBmaWxsID0gZ3JvdXApKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbj0iaWRlbnRpdHkiLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0sDQogICAgICAgICAgIHdpZHRoID0gLjgpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgNjYpLCBleHBhbmQgPSBjKDAsIDApKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGVbMjo0XSkgKw0KICBjb29yZF9mbGlwKCkgKw0KICBsYWJzKHRpdGxlID0gIkJhcnMiKSArDQogIHRoZW1lX3Bsb3RfaWNvbl92Z3JpZChwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcGxvdF9ncmlkKHAxLCBwNCwgcDUsIHAyLCBuY29sID0gNCwgc2NhbGUgPSAuOSkNCmBgYA0KDQpQcm9wb3J0aW9ucyBjYW4gYmUgdmlzdWFsaXplZCBhcyBwaWUgY2hhcnRzLCBzaWRlLWJ5LXNpZGUgYmFycywgb3Igc3RhY2tlZCBiYXJzLCBhbmQgYXMgaW4gdGhlIGNhc2UgZm9yIGFtb3VudHMsIGJhcnMgY2FuIGJlIGFycmFuZ2VkIGVpdGhlciB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseS4gUGllIGNoYXJ0cyBlbXBoYXNpemUgdGhhdCB0aGUgaW5kaXZpZHVhbCBwYXJ0cyBhZGQgdXAgdG8gYSB3aG9sZSBhbmQgaGlnaGxpZ2h0IHNpbXBsZSBmcmFjdGlvbnMuIEhvd2V2ZXIsIHRoZSBpbmRpdmlkdWFsIHBpZWNlcyBhcmUgbW9yZSBlYXNpbHkgY29tcGFyZWQgaW4gc2lkZS1ieS1zaWRlIGJhcnMuIFN0YWNrZWQgYmFycyBsb29rIGF3a3dhcmQgZm9yIGEgc2luZ2xlIHNldCBvZiBwcm9wb3J0aW9ucywgYnV0IGNhbiBiZSB1c2VmdWwgd2hlbiBjb21wYXJpbmcgbXVsdGlwbGUgc2V0cyBvZiBwcm9wb3J0aW9ucyAoc2VlIGJlbG93KS4NCg0KDQpgYGB7ciBwcm9wb3J0aW9ucy1jb21wLCBmaWcud2lkdGggPSA4LCBmaWcuYXNwID0gMS80fQ0KcDUgPC0gZ2dwbG90KGZpbHRlcihkZl9mcmFjdGlvbnMsIHghPTQpLCBhZXMoeCwgeSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1mYWN0b3IodHlwZSwgbGV2ZWxzID0gYygiQSIsICJDIiwgIkIiKSkpKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbj0iZG9kZ2UiLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0sDQogICAgICAgICAgIHdpZHRoID0gLjcpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGV4cGFuZCA9IGMoMCwgMCksDQogICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKDAsIC41OCkpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gcGFsZXR0ZVsyOjRdKSArDQogIGxhYnModGl0bGUgPSAiR3JvdXBlZCBCYXJzIikgKw0KICB0aGVtZV9wbG90X2ljb25faGdyaWQocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnA2IDwtIGdncGxvdChkZl9mcmFjdGlvbnMsIGFlcyh4LCB5LCBmaWxsPXR5cGUpKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbj0ic3RhY2siLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0pICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgMS4wOCksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gcGFsZXR0ZVsyOjRdKSArDQogIGxhYnModGl0bGUgPSAiU3RhY2tlZCBCYXJzIikgKw0KICB0aGVtZV9wbG90X2ljb25faGdyaWQocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnA3IDwtIGdncGxvdChkZl9tdWx0aV9kaXN0LCBhZXMoeCA9IHksIGZpbGwgPSBmYWN0b3IodHlwZSwgbGV2ZWxzID0gYygiQyIsICJBIiwgIkIiKSkpKSArIA0KICBnZW9tX2RlbnNpdHkoY29sb3IgPSBwYWxldHRlW25wYWxdLCBwb3NpdGlvbiA9ICJmaWxsIikgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBwYWxldHRlWzI6NF0pICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGV4cGFuZCA9IGMoMC4wNCwgMCkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgMS4wOCksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgbGFicyh0aXRsZSA9ICJTdGFja2VkIERlbnNpdGllcyIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwOF9hIDwtIGdncGxvdChmaWx0ZXIoZGZfZnJhY3Rpb25zLCB4PT0xKSwgYWVzKHggPSAxLCB5ID0geSwgZmlsbCA9IHR5cGUpKSArIA0KICBnZW9tX2NvbChwb3NpdGlvbiA9ICJzdGFjayIsIGNvbG9yID0gcGFsZXR0ZVtucGFsXSkgKyANCiAgY29vcmRfcG9sYXIodGhldGEgPSAieSIpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IE5VTEwsIG5hbWUgPSAiIikgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gTlVMTCwgbmFtZSA9ICIiKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGVbYygyLCAxLCAzKV0pICsNCiAgdGhlbWVfcGxvdF9pY29uX2JsYW5rKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0sIGZvbnRfc2l6ZSA9IDUpICsNCiAgdGhlbWUoDQogICAgcGxvdC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLA0KICAgIHBsb3QubWFyZ2luID0gbWFyZ2luKDAsIDAsIDAsIDApDQogICkNCnA4X2IgPC0gZ2dwbG90KGZpbHRlcihkZl9mcmFjdGlvbnMsIHg9PTIpLCBhZXMoeCA9IDEsIHkgPSB5LCBmaWxsID0gdHlwZSkpICsgDQogIGdlb21fY29sKHBvc2l0aW9uID0gInN0YWNrIiwgY29sb3IgPSBwYWxldHRlW25wYWxdKSArIA0KICBjb29yZF9wb2xhcih0aGV0YSA9ICJ5IikgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gTlVMTCwgbmFtZSA9ICIiKSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBOVUxMLCBuYW1lID0gIiIpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gcGFsZXR0ZVtjKDIsIDEsIDMpXSkgKw0KICB0aGVtZV9wbG90X2ljb25fYmxhbmsocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSwgZm9udF9zaXplID0gNSkgKw0KICB0aGVtZSgNCiAgICBwbG90LmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksDQogICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oMCwgMCwgMCwgMCkNCiAgKQ0KcDhfYyA8LSBnZ3Bsb3QoZmlsdGVyKGRmX2ZyYWN0aW9ucywgeD09MyksIGFlcyh4ID0gMSwgeSA9IHksIGZpbGwgPSB0eXBlKSkgKyANCiAgZ2VvbV9jb2wocG9zaXRpb24gPSAic3RhY2siLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0pICsgDQogIGNvb3JkX3BvbGFyKHRoZXRhID0gInkiKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBOVUxMLCBuYW1lID0gIiIpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IE5VTEwsIG5hbWUgPSAiIikgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBwYWxldHRlW2MoMiwgMSwgMyldKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdLCBmb250X3NpemUgPSA1KSArDQogIHRoZW1lKA0KICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICBwbG90Lm1hcmdpbiA9IG1hcmdpbigwLCAwLCAwLCAwKQ0KICApDQojIGNvbWJpbmUNCnA4IDwtIHBsb3RfZ3JpZChwOF9hLCBwOF9iLCBwOF9jLCBuY29sID0gMywgc2NhbGUgPSAxLjEpICsNCiAgICAgIGxhYnModGl0bGUgPSAiTXVsdGlwbGUgUGllIENoYXJ0cyIpICsNCiAgICAgIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcGxvdF9ncmlkKHA4LCBwNSwgcDYsIHA3LCBuY29sID0gNCwgc2NhbGUgPSAuOSkNCmBgYA0KDQoNCldoZW4gdmlzdWFsaXppbmcgbXVsdGlwbGUgc2V0cyBvZiBwcm9wb3J0aW9ucyBvciBjaGFuZ2VzIGluIHByb3BvcnRpb25zIGFjcm9zcyBjb25kaXRpb25zLCBwaWUgY2hhcnRzIHRlbmQgdG8gYmUgc3BhY2UtaW5lZmZpY2llbnQgYW5kIG9mdGVuIG9ic2N1cmUgcmVsYXRpb25zaGlwcy4gR3JvdXBlZCBiYXJzIHdvcmsgd2VsbCBhcyBsb25nIGFzIHRoZSBudW1iZXIgb2YgY29uZGl0aW9ucyBjb21wYXJlZCBpcyBtb2RlcmF0ZSwgYW5kIHN0YWNrZWQgYmFycyBjYW4gd29yayBmb3IgbGFyZ2UgbnVtYmVycyBvZiBjb25kaXRpb25zLiBTdGFja2VkIGRlbnNpdGllcyBhcmUgYXBwcm9wcmlhdGUgd2hlbiB0aGUgcHJvcG9ydGlvbnMgY2hhbmdlIGFsb25nIGEgY29udGludW91cyB2YXJpYWJsZS4NCg0KDQpgYGB7ciBwcm9wb3J0aW9ucy1tdWx0aSwgZmlnLndpZHRoID0gOCwgZmlnLmFzcCA9IDEvNH0NCnAxIDwtIGdncGxvdChkZl9tdWx0aV9wcm9wcywgYWVzKHggPSB2YXIyLCB5ID0gY291bnQsIGZpbGwgPSB2YXIxLCB3aWR0aCA9IGdyb3VwX2NvdW50KSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IiwgcG9zaXRpb24gPSAiZmlsbCIsIGNvbG91ciA9IHBhbGV0dGVbbnBhbF0sIHNpemUgPSAwLjUpICsNCiAgZmFjZXRfZ3JpZCh+dmFyMiwgc2NhbGVzID0gImZyZWVfeCIsIHNwYWNlID0gImZyZWVfeCIpICsNCiAgc2NhbGVfeF9kaXNjcmV0ZShuYW1lID0gTlVMTCwgYnJlYWtzID0gTlVMTCkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobmFtZSA9IE5VTEwsIGJyZWFrcyA9IE5VTEwsIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gcGFsZXR0ZVs0OjJdLCBndWlkZSA9ICJub25lIikgKw0KICBjb29yZF9jYXJ0ZXNpYW4oY2xpcCA9ICJvZmYiKSArDQogIGxhYnModGl0bGUgPSAiTW9zYWljIFBsb3QiKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKSArDQogIHRoZW1lKA0KICAgIHN0cmlwLnRleHQgPSBlbGVtZW50X2JsYW5rKCksDQogICAgcGFuZWwuc3BhY2luZy54ID0gdW5pdCgwLCAicHQiKQ0KICApDQogIA0KcDIgPC0gZ2dwbG90KGRmX211bHRpX3Byb3BzLCBhZXMoYXJlYSA9IGNvdW50LCBzdWJncm91cCA9IHZhcjIsIGZpbGwgPSB2YXIyKSkgKw0KICBnZW9tX3RyZWVtYXAoY29sb3IgPSBwYWxldHRlW25wYWxdLCBzaXplID0gMC41Ki5wdCwgYWxwaGEgPSBOQSkgKyANCiAgZ2VvbV90cmVlbWFwX3N1Ymdyb3VwX2JvcmRlcihjb2xvciA9IHBhbGV0dGVbbnBhbF0sIHNpemUgPSAxLjUqLnB0KSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGVbNDoyXSwgZ3VpZGUgPSAibm9uZSIpICsNCiAgY29vcmRfY2FydGVzaWFuKGNsaXAgPSAib2ZmIikgKw0KICBsYWJzKHRpdGxlID0gIlRyZWVtYXAiKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKSANCnAzIDwtIGdncGxvdChkZl9zZXRzLCBhZXMoeCwgaWQgPSBpZCwgc3BsaXQgPSB5LCB2YWx1ZSA9IGNvdW50KSkgKw0KICBnZW9tX3BhcmFsbGVsX3NldHMoYWVzKGZpbGwgPSB2YXIxKSwgYWxwaGEgPSAwLjcsIGF4aXMud2lkdGggPSAwLjE1KSArDQogIGdlb21fcGFyYWxsZWxfc2V0c19heGVzKGF4aXMud2lkdGggPSAwLjA2LCBmaWxsID0gcGFsZXR0ZVsyXSwgY29sb3IgPSBwYWxldHRlWzJdKSArDQogIHNjYWxlX3hfZGlzY3JldGUoDQogICAgbmFtZSA9IE5VTEwsDQogICAgYnJlYWtzID0gTlVMTCwNCiAgICBleHBhbmQgPSBjKDAsIDAuMTUvMikNCiAgKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBOVUxMLCBleHBhbmQgPSBjKDAsIDApKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMocGFsZXR0ZVszXSwgcGFsZXR0ZVsyXSksIGd1aWRlID0gIm5vbmUiKSArDQogIGxhYnModGl0bGUgPSAiUGFyYWxsZWwgU2V0cyIpICsNCiAgdGhlbWVfcGxvdF9pY29uX2JsYW5rKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwbG90X2dyaWQocDEsIHAyLCBwMywgbmNvbCA9IDMsIHNjYWxlID0gLjkpDQpgYGANCg0KV2hlbiBwcm9wb3J0aW9ucyBhcmUgc3BlY2lmaWVkIGFjY29yZGluZyB0byBtdWx0aXBsZSBncm91cGluZyB2YXJpYWJsZXMsIHRoZW4gbW9zYWljIHBsb3RzLCB0cmVlbWFwcywgb3IgcGFyYWxsZWwgc2V0cyBhcmUgdXNlZnVsIHZpc3VhbGl6YXRpb24gYXBwcm9hY2hlcy4NCg0KTW9zYWljIHBsb3RzIGFzc3VtZSB0aGF0IGV2ZXJ5IGxldmVsIG9mIG9uZSBncm91cGluZyB2YXJpYWJsZSBjYW4gYmUgY29tYmluZWQgd2l0aCBldmVyeSBsZXZlbCBvZiBhbm90aGVyIGdyb3VwaW5nIHZhcmlhYmxlLCB3aGVyZWFzIHRyZWVtYXBzIGRvIG5vdCBtYWtlIHN1Y2ggYW4gYXNzdW1wdGlvbi4gVHJlZW1hcHMgd29yayB3ZWxsIGV2ZW4gaWYgdGhlIHN1YmRpdmlzaW9ucyBvZiBvbmUgZ3JvdXAgYXJlIGVudGlyZWx5IGRpc3RpbmN0IGZyb20gdGhlIHN1YmRpdmlzaW9ucyBvZiBhbm90aGVyLiBQYXJhbGxlbCBzZXRzIHdvcmsgYmV0dGVyIHRoYW4gZWl0aGVyIG1vc2FpYyBwbG90cyBvciB0cmVlbWFwcyB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gdHdvIGdyb3VwaW5nIHZhcmlhYmxlcy4NCg0KDQojIFJlbGF0aW9uc2hpcHMgDQoNClRoZXJlIGFyZSBkaWZmZXJlbnQgd2F5cyB0byB2aXN1YWxpemUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byB2YXJpYWJsZXMuIFRoaXMgc2VjdGlvbiBmb2N1c2VkIHByaW1hcmlseSB0d28gbnVtZXJpY2FsIHZhcmlhYmxlcy4NCg0KIyMgU2NhdHRlciBQbG90cw0KDQpgYGB7ciBiYXNpYy1zY2F0dGVyLCBmaWcud2lkdGggPSA4LCBmaWcuYXNwID0gMS80fQ0KcGFsZXR0ZSA8LSBwYWxfc3RlZWxfYmx1ZQ0KcDEgPC0gZ2dwbG90KGRmX3NjYXR0ZXJfeHksIGFlcyh4LCB5KSkgKyANCiAgZ2VvbV9wb2ludChmaWxsID0gcGFsZXR0ZVsyXSwgY29sb3IgPSBwYWxldHRlW25wYWxdLCBwY2ggPSAyMSwgc2l6ZSA9IDIuNCkgKyANCiAgc2NhbGVfeF9jb250aW51b3VzKGV4cGFuZCA9IGMoLjIsIDApKSArDQogIHNjYWxlX3lfY29udGludW91cyhleHBhbmQgPSBjKC4yLCAwKSkgKw0KICBsYWJzKHRpdGxlID0gIlNjYXR0ZXJwbG90IikgKw0KICB0aGVtZV9wbG90X2ljb24ocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnAyIDwtIGdncGxvdChkZl9zY2F0dGVyX3h5eiwgYWVzKHgsIHksIHNpemUgPSB6KSkgKyANCiAgZ2VvbV9wb2ludChmaWxsID0gcGFsZXR0ZVsyXSwgY29sb3IgPSBwYWxldHRlW25wYWxdLCBwY2ggPSAyMSwgYWxwaGEgPSAwLjcpICsgDQogIHNjYWxlX3hfY29udGludW91cyhleHBhbmQgPSBjKC4yLCAwKSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoZXhwYW5kID0gYyguMiwgMCkpICsNCiAgc2NhbGVfcmFkaXVzKHJhbmdlID0gYygyLCA4KSkgKw0KICBsYWJzKHRpdGxlID0gIkJ1YmJsZSBDaGFydCIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwMyA8LSBnZ3Bsb3Qoc3ByZWFkKGRmX3BhaXJlZCwgeCwgeSksIGFlcyhBLCBCKSkgKyANCiAgZ2VvbV9hYmxpbmUoc2xvcGUgPSAxLCBpbnRlcmNlcHQgPSAwLCBjb2xvciA9IHBhbGV0dGVbM10sIHNpemUgPSAwLjMpICsgDQogIGdlb21fcG9pbnQoDQogICAgc2hhcGUgPSAyMSwgc2l6ZSA9IDIuNCwgc3Ryb2tlID0gMSwNCiAgICBmaWxsID0gcGFsZXR0ZVsyXSwgY29sb3IgPSBwYWxldHRlW25wYWxdDQogICkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygxLjUsIDYuNSkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMS41LCA2LjUpKSArDQogIGxhYnModGl0bGUgPSAiUGFpcmVkIFNjYXR0ZXJwbG90IikgKw0KICB0aGVtZV9wbG90X2ljb24ocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnA0IDwtIGdncGxvdChkZl9wYWlyZWQsIGFlcyh4LCB5LCBncm91cCA9IGdyb3VwKSkgKyANCiAgZ2VvbV9saW5lKGNvbG9yID0gcGFsZXR0ZVsxXSkgKyANCiAgZ2VvbV9wb2ludCgNCiAgICBzaGFwZSA9IDIxLCBzaXplID0gMi40LCBzdHJva2UgPSAxLA0KICAgIGZpbGwgPSBwYWxldHRlWzJdLCBjb2xvciA9IHBhbGV0dGVbbnBhbF0NCiAgKSArDQogIHNjYWxlX3hfZGlzY3JldGUoZXhwYW5kID0gYygwLCAwLjQpKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDEuNSwgNi41KSkgKw0KICBsYWJzKHRpdGxlID0gIlNsb3BlZ3JhcGgiKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKSArDQogIHRoZW1lKA0KICAgIGF4aXMubGluZS54ID0gZWxlbWVudF9ibGFuaygpLA0KICAgIGF4aXMudGlja3MueCA9IGVsZW1lbnRfYmxhbmsoKQ0KICApDQpwbG90X2dyaWQocDEsIHAyLCBwMywgcDQsIG5jb2wgPSA0LCBzY2FsZSA9IC45KQ0KYGBgDQoNCg0KDQpTY2F0dGVycGxvdHMgcmVwcmVzZW50IHRoZSBhcmNoZXR5cGljYWwgdmlzdWFsaXphdGlvbiB3aGVuIHdlIHdhbnQgdG8gc2hvdyBvbmUgcXVhbnRpdGF0aXZlIHZhcmlhYmxlIHJlbGF0aXZlIHRvIGFub3RoZXIuIElmIHdlIGhhdmUgdGhyZWUgcXVhbnRpdGF0aXZlIHZhcmlhYmxlcywgd2UgY2FuIG1hcCBvbmUgb250byB0aGUgZG90IHNpemUsIGNyZWF0aW5nIGEgdmFyaWFudCBvZiB0aGUgc2NhdHRlcnBsb3QgY2FsbGVkIGJ1YmJsZSBjaGFydC4gRm9yIHBhaXJlZCBkYXRhLCB3aGVyZSB0aGUgdmFyaWFibGVzIGFsb25nIHRoZSAqeCogYW5kIHRoZSAqeSogYXhlcyBhcmUgbWVhc3VyZWQgaW4gdGhlIHNhbWUgdW5pdHMsIGl0IGlzIGdlbmVyYWxseSBoZWxwZnVsIHRvIGFkZCBhIGxpbmUgaW5kaWNhdGluZyAqeCogPSAqeSouIFBhaXJlZCBkYXRhIGNhbiBhbHNvIGJlIHNob3duIGFzIGEgc2xvcGUgZ3JhcGggb2YgcGFpcmVkIHBvaW50cyBjb25uZWN0ZWQgYnkgc3RyYWlnaHQgbGluZXMuDQoNCiMjIERlbnNpdHktYmFzZWQgUGxvdHMNCg0KDQpgYGB7ciB4eS1iaW5uaW5nLCBmaWcud2lkdGggPSA4LCBmaWcuYXNwID0gMS80fQ0KcDUgPC0gZ2dwbG90KGRmX2RlbnNlX3NjYXR0ZXIsIGFlcyh4LCB5KSkgKyANCiAgZ2VvbV9kZW5zaXR5MmQoYmlud2lkdGggPSAwLjAyLCBjb2xvciA9IHBhbGV0dGVbMV0pICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTIsIDMuNiksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTQsIDUpLCBleHBhbmQgPSBjKDAsIDApKSArDQogIGxhYnModGl0bGUgPSAiRGVuc2l0eSBDb250b3VycyIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNiA8LSBnZ3Bsb3QoZGZfZGVuc2Vfc2NhdHRlciwgYWVzKHgsIHkpKSArIA0KICBnZW9tX2JpbjJkKGJpbnMgPSAxMiwgY29sb3IgPSBwYWxldHRlW25wYWxdLCBzaXplID0gMC41KSArDQogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC0yLCAzLjYpLCBleHBhbmQgPSBjKDAsIDApKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC00LCA1KSwgZXhwYW5kID0gYygwLCAwKSkgKw0KICBzY2FsZV9maWxsX2dyYWRpZW50bihjb2xvcnMgPSBwYWxldHRlWzE6KG5wYWwtMSldKSArDQogIGxhYnModGl0bGUgPSAiMkQgQmlucyIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pDQpwNyA8LSBnZ3Bsb3QoZGZfZGVuc2Vfc2NhdHRlciwgYWVzKHgsIHkpKSArIA0KICBnZW9tX2hleChiaW5zID0gMTIsIGNvbG9yID0gcGFsZXR0ZVtucGFsXSwgc2l6ZSA9IDAuNSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygtMiwgMy42KSwgZXhwYW5kID0gYygwLCAwKSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtNCwgNSksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgc2NhbGVfZmlsbF9ncmFkaWVudG4oY29sb3JzID0gcGFsZXR0ZVsxOihucGFsLTEpXSkgKw0KICBsYWJzKHRpdGxlID0gIkhleCBCaW5zIikgKw0KICB0aGVtZV9wbG90X2ljb24ocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCmNtIDwtIGNvcihzZWxlY3QobXRjYXJzLCBtcGcsIGhwLCBkcmF0LCB3dCwgcXNlYykpDQpkZl93aWRlIDwtIGFzLmRhdGEuZnJhbWUoY20pDQpkZl9sb25nIDwtIHN0YWNrKGRmX3dpZGUpDQpuYW1lcyhkZl9sb25nKSA8LSBjKCJjb3IiLCAidmFyMSIpDQpkZl9sb25nIDwtIGNiaW5kKGRmX2xvbmcsIHZhcjIgPSByZXAocm93bmFtZXMoY20pLCBsZW5ndGgocm93bmFtZXMoY20pKSkpDQpjbHVzdCA8LSBoY2x1c3QoYXMuZGlzdCgxLWNtKSwgbWV0aG9kPSJhdmVyYWdlIikgDQpsZXZlbHMgPC0gY2x1c3QkbGFiZWxzW2NsdXN0JG9yZGVyXQ0KZGZfbG9uZyR2YXIxIDwtIGZhY3RvcihkZl9sb25nJHZhcjEsIGxldmVscyA9IGxldmVscykNCmRmX2xvbmckdmFyMiA8LSBmYWN0b3IoZGZfbG9uZyR2YXIyLCBsZXZlbHMgPSBsZXZlbHMpDQpwOCA8LSBnZ3Bsb3QoZmlsdGVyKGRmX2xvbmcsIGFzLmludGVnZXIodmFyMSkgPCBhcy5pbnRlZ2VyKHZhcjIpKSwNCiAgICAgICBhZXModmFyMSwgdmFyMiwgZmlsbD1jb3IsIHNpemUgPSBhYnMoY29yKSkpICsgDQogIGdlb21fcG9pbnQoc2hhcGUgPSAyMSwgc3Ryb2tlID0gMCkgKyANCiAgc2NhbGVfeF9kaXNjcmV0ZShwb3NpdGlvbiA9ICJ0b3AiLCBuYW1lID0gTlVMTCwgZXhwYW5kID0gYygwLCAwLjUpKSArDQogIHNjYWxlX3lfZGlzY3JldGUobmFtZSA9IE5VTEwsIGV4cGFuZCA9IGMoMCwgMC41KSkgKw0KICBzY2FsZV9zaXplX2FyZWEobWF4X3NpemUgPSA4LCBsaW1pdHMgPSBjKDAsIDAuOSksIGd1aWRlID0gIm5vbmUiKSArDQogIHNjYWxlX2ZpbGxfZ3JhZGllbnQyKGhpZ2ggPSBwYWxldHRlWzJdLCBtaWQgPSBwYWxldHRlW25wYWxdLCBsb3cgPSBwYWxfc3RlZWxfYmx1ZV9pbnZbMl0sIGd1aWRlID0gIm5vbmUiKSArDQogIGxhYnModGl0bGUgPSAiQ29ycmVsb2dyYW0iKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcGxvdF9ncmlkKHA1LCBwNiwgcDcsIHA4LCBuY29sID0gNCwgc2NhbGUgPSAuOSkNCmBgYA0KDQpGb3IgbGFyZ2UgbnVtYmVycyBvZiBwb2ludHMsIHJlZ3VsYXIgc2NhdHRlci1wbG90cyBjYW4gYmVjb21lIHVuaW5mb3JtYXRpdmUgZHVlIHRvIG92ZXJwbG90dGluZy4gSW4gdGhpcyBjYXNlLCBjb250b3VyIGxpbmVzLCAyRCBiaW5zLCBvciBoZXggYmlucyBtYXkgcHJvdmlkZSBhbiBhbHRlcm5hdGl2ZS4gV2hlbiB3ZSB3YW50IHRvIHZpc3VhbGl6ZSBtb3JlIHRoYW4gdHdvIHF1YW50aXRpZXMsIG9uIHRoZSBvdGhlciBoYW5kLCB3ZSBtYXkgY2hvb3NlIHRvIHBsb3QgY29ycmVsYXRpb24gY29lZmZpY2llbnRzIGluIHRoZSBmb3JtIG9mIGEgY29ycmVsb2dyYW0gaW5zdGVhZCBvZiB0aGUgdW5kZXJseWluZyByYXcgZGF0YS4NCg0KDQojIyBTZXJpYWwgTGluZSBQbG90cyAoZm9yIFRyZW5kcykNCg0KYGBge3IgeHktbGluZXMsIGZpZy53aWR0aCA9IDUqNi80LjIsIGZpZy5hc3AgPSAxLzR9DQpwMSA8LSBnZ3Bsb3QoZGZfb25lX2xpbmUsIGFlcyh4LCB5KSkgKw0KICBnZW9tX2xpbmUoY29sb3IgPSBwYWxldHRlWzFdKSArIA0KICBnZW9tX3BvaW50KA0KICAgIHNoYXBlID0gMjEsIHNpemUgPSAyLjQsIHN0cm9rZSA9IDEsDQogICAgZmlsbCA9IHBhbGV0dGVbMl0sIGNvbG9yID0gcGFsZXR0ZVtucGFsXQ0KICApICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoMC41LCA1LjUpLCBicmVha3MgPSBjKDEsIDMsIDUpKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDIuOCwgNC44KSkgKw0KICBsYWJzKHRpdGxlID0gIkxpbmUgR3JhcGgiKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcDIgPC0gZ2dwbG90KGRmX2Nvbm5lY3RlZF9zY2F0dGVyLCBhZXMoeCwgeSwgY29sb3IgPSB0LCBmaWxsID0gdCkpICsNCiAgZ2VvbV9wYXRoKCkgKw0KICBnZW9tX3BvaW50KA0KICAgIHNoYXBlID0gMjEsIHNpemUgPSAyLjQsIHN0cm9rZSA9IDEsDQogICAgY29sb3IgPSBwYWxldHRlW25wYWxdDQogICkgKw0KICBzY2FsZV9jb2xvcl9ncmFkaWVudG4oDQogICAgYWVzdGhldGljcyA9IGMoImNvbG91ciIsICJmaWxsIiksDQogICAgY29sb3JzID0gcGFsZXR0ZVsobnBhbC0yKToxXQ0KICApICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoMC4zLCAzLjcpKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC0yLjUsIDIuNSkpICsNCiAgbGFicyh0aXRsZSA9ICJDb25uZWN0ZWQgU2NhdHRlcnBsb3QiKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcDMgPC0gZ2dwbG90KGRmX2RlbnNlX3NjYXR0ZXJfc2FtcGxlLCBhZXMoeCwgeSkpICsNCiAgZ2VvbV9wb2ludChjb2xvciA9IHBhbGV0dGVbMl0sIHNpemUgPSAwLjMsIGFscGhhID0gMS8yKSArDQogIGdlb21fc21vb3RoKA0KICAgIGNvbG9yID0gcGFsZXR0ZVsxXSwNCiAgICBmaWxsID0gcGFsZXR0ZVtucGFsLTJdLA0KICAgIHNpemUgPSAwLjUsDQogICAgc2UgPSBGQUxTRQ0KICApICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTUsIDUpKSArDQogIGxhYnModGl0bGUgPSAiU21vb3RoIExpbmUgR3JhcGgiKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcGxvdF9ncmlkKHAxLCBwMiwgcDMsIG5jb2wgPSAzLCBzY2FsZSA9IC45KQ0KYGBgDQoNCldoZW4gdGhlICp4KiBheGlzIHJlcHJlc2VudHMgdGltZSBvciBhIHN0cmljdGx5IGluY3JlYXNpbmcgcXVhbnRpdHkgc3VjaCBhcyBhIHRyZWF0bWVudCBkb3NlLCB3ZSBjb21tb25seSBkcmF3IGxpbmUgZ3JhcGhzLiBJZiB3ZSBoYXZlIGEgdGVtcG9yYWwgc2VxdWVuY2Ugb2YgdHdvIHJlc3BvbnNlIHZhcmlhYmxlcywgd2UgY2FuIGRyYXcgYSBjb25uZWN0ZWQgc2NhdHRlcnBsb3Qgd2hlcmUgd2UgZmlyc3QgcGxvdCB0aGUgdHdvIHJlc3BvbnNlIHZhcmlhYmxlcyBpbiBhIHNjYXR0ZXJwbG90IGFuZCB0aGVuIGNvbm5lY3QgZG90cyBjb3JyZXNwb25kaW5nIHRvIGFkamFjZW50IHRpbWUgcG9pbnRzLiBXZSBjYW4gdXNlIHNtb290aCBsaW5lcyB0byByZXByZXNlbnQgdHJlbmRzIGluIGEgbGFyZ2VyIGRhdGFzZXQuIA0KDQoNCg0KIyBHZW9zcGF0aWFsIEluZm9ybWF0aW9uIA0KDQoNCmBgYHtyIGdlb3NwYXRpYWwsIGZpZy53aWR0aCA9IDgsIGZpZy5hc3AgPSAxLzR9DQpsb2FkKGZpbGUgPSAiVVNfaW5jb21lLnJkYSIpDQpsb2FkKGZpbGUgPSAiVVNfaW5jb21lX2NhcnRvZ3JhbS5yZGEiKQ0KcGFsZXR0ZSA8LSBwYWxfZ3JlZW5fYnJvd24NCmxvd2VyNDggPC0gbXV0YXRlKA0KICBVU19pbmNvbWUsDQogIGluY29tZV9iaW5zID0gY3V0KA0KICAgIGlmZWxzZShpcy5uYShtZWRpYW5faW5jb21lKSwgMjUwMDAsIG1lZGlhbl9pbmNvbWUpLCAjIGhpZGUgbWlzc2luZyB2YWx1ZQ0KICAgIGJyZWFrcyA9IGMoMCwgNDAwMDAsIDUwMDAwLCA2MDAwMCwgNzAwMDAsIDgwMDAwKQ0KICApDQopICU+JSBmaWx0ZXIoIW5hbWUgJWluJSBjKCJBbGFza2EiLCAiSGF3YWlpIiwgIkRpc3RyaWN0IG9mIENvbHVtYmlhIikpDQpwMV9tYWluIDwtIGdncGxvdChsb3dlcjQ4KSArDQogIGdlb21fc2YoY29sb3IgPSBwYWxldHRlWzFdLCBmaWxsID0gcGFsZXR0ZVs0XSwgc2l6ZSA9IDAuMykgKw0KICBjb29yZF9zZihkYXR1bSA9IE5BLCBleHBhbmQgPSBGQUxTRSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygtMjUwMDAwMCwgMTAwMDAwKSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtOTAwMDAwLCAxNTU4OTM1KSkgKw0KICB0aGVtZV9wbG90X2ljb25fYmxhbmsocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkgKw0KICB0aGVtZSgNCiAgICBwbG90Lm1hcmdpbiA9IG1hcmdpbigyLCA1LCAzLCA1KQ0KICApDQojIG1ha2Ugc3VyZSBwbG90IGJhY2tncm91bmQgaXMgZnVsbHkgZmlsbGVkLCBhcyBpbiB0aGUgb3RoZXIgcGxvdHMNCnAxIDwtIGdnZHJhdyhwMV9tYWluKSArDQogIGxhYnModGl0bGUgPSAiTWFwIikgKw0KICB0aGVtZV9wbG90X2ljb25fYmxhbmsocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnAyX21haW4gPC0gZ2dwbG90KGxvd2VyNDgsIGFlcyhmaWxsID0gaW5jb21lX2JpbnMpKSArDQogIGdlb21fc2YoY29sb3IgPSBwYWxldHRlWzFdLCBzaXplID0gMC4yKSArDQogIGNvb3JkX3NmKGRhdHVtID0gTkEsIGV4cGFuZCA9IEZBTFNFKSArDQogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC0yNTAwMDAwLCAxMDAwMDApKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC05MDAwMDAsIDE1NTg5MzUpKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGUpICsNCiAgdGhlbWVfcGxvdF9pY29uX2JsYW5rKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pICsNCiAgdGhlbWUoDQogICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oMiwgNSwgMywgNSkNCiAgKQ0KcDIgPC0gZ2dkcmF3KHAyX21haW4pICsNCiAgbGFicyh0aXRsZSA9ICJDaG9yb3BsZXRoIikgKw0KICB0aGVtZV9wbG90X2ljb25fYmxhbmsocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCmxvd2VyNDhfY2FydG8gPC0gbXV0YXRlKA0KICBVU19pbmNvbWVfY2FydG9ncmFtLA0KICBpbmNvbWVfYmlucyA9IGN1dCgNCiAgICBpZmVsc2UoaXMubmEobWVkaWFuX2luY29tZSksIDI1MDAwLCBtZWRpYW5faW5jb21lKSwgIyBoaWRlIG1pc3NpbmcgdmFsdWUNCiAgICBicmVha3MgPSBjKDAsIDQwMDAwLCA1MDAwMCwgNjAwMDAsIDcwMDAwLCA4MDAwMCkNCiAgKQ0KKSAlPiUgZmlsdGVyKCFuYW1lICVpbiUgYygiQWxhc2thIiwgIkhhd2FpaSIsICJEaXN0cmljdCBvZiBDb2x1bWJpYSIpKQ0KcDNfbWFpbiA8LSBnZ3Bsb3QobG93ZXI0OF9jYXJ0bywgYWVzKGZpbGwgPSBpbmNvbWVfYmlucykpICsNCiAgZ2VvbV9zZihjb2xvciA9IHBhbGV0dGVbMV0sIHNpemUgPSAwLjIpICsNCiAgY29vcmRfc2YoZGF0dW0gPSBOQSwgZXhwYW5kID0gRkFMU0UpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTI1MDAwMDAsIDEwMDAwMCkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEwMDAwMDAsIDE0NTg5MzUpKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbGV0dGUpICsNCiAgdGhlbWVfcGxvdF9pY29uX2JsYW5rKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pICsNCiAgdGhlbWUoDQogICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oMiwgNSwgMywgNSkNCiAgKQ0KcDMgPC0gZ2dkcmF3KHAzX21haW4pICsNCiAgbGFicyh0aXRsZSA9ICJDYXJ0b2dyYW0iKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KbG93ZXI0OF9zbWFsbCA8LSBmaWx0ZXIobG93ZXI0OCwgR0VPSUQgJWluJSBjKA0KICAiMDQiLCAiMDYiLCAiMDgiLCAiMTYiLCAiMjAiLCAiMzAiLCAiMzEiLCAiMzIiLCAiMzUiLCAiMzgiLCAiNDEiLCAiNDYiLCAiNDkiLCAiNTMiLCAiNTYiKSkNCnA0X21haW4gPC0gZ2dwbG90KGxvd2VyNDhfc21hbGwsIGFlcyhzdGF0ZSA9IG5hbWUsIGZpbGwgPSBpbmNvbWVfYmlucykpICsNCiAgZ2VvbV9zdGF0ZWJpbnMoDQogICAgZmFtaWx5ID0gZHZpel9mb250X2ZhbWlseSwNCiAgICBsYmxfc2l6ZSA9IDgvLnB0LA0KICAgIGJvcmRlcl9zaXplID0gMS4sDQogICAgYm9yZGVyX2NvbCA9IHBhbGV0dGVbbnBhbF0NCiAgKSArDQogIGNvb3JkX2VxdWFsKHhsaW0gPSBjKDEuNSwgNS41KSwgeWxpbSA9IGMoLTIuNSwgLTYuNSksIGV4cGFuZCA9IEZBTFNFLCBjbGlwID0gIm9mZiIpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gcGFsZXR0ZVsyOjVdKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKSArDQogIHRoZW1lKA0KICAgIHBsb3QubWFyZ2luID0gbWFyZ2luKDIsIDAsIDAsIDcpDQogICkNCnA0IDwtIGdnZHJhdyhwNF9tYWluKSArIGxhYnModGl0bGUgPSAiQ2FydG9ncmFtIEhlYXRtYXAiKSArDQogIHRoZW1lX3Bsb3RfaWNvbl9ibGFuayhwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcGxvdF9ncmlkKHAxLCBwMiwgcDMsIHA0LCBzY2FsZSA9IDAuOSwgbnJvdyA9IDEpDQpgYGANCg0KDQpUaGUgcHJpbWFyeSBtb2RlIG9mIHNob3dpbmcgZ2Vvc3BhdGlhbCBkYXRhIGlzIGluIHRoZSBmb3JtIG9mIGEgbWFwLiBBIG1hcCB0YWtlcyBjb29yZGluYXRlcyBvbiB0aGUgZ2xvYmUgYW5kIHByb2plY3RzIHRoZW0gb250byBhIGZsYXQgc3VyZmFjZSwgc3VjaCB0aGF0IHNoYXBlcyBhbmQgZGlzdGFuY2VzIG9uIHRoZSBnbG9iZSBhcmUgYXBwcm94aW1hdGVseSByZXByZXNlbnRlZCBieSBzaGFwZXMgYW5kIGRpc3RhbmNlcyBpbiB0aGUgMkQgcmVwcmVzZW50YXRpb24uIEluIGFkZGl0aW9uLCB3ZSBjYW4gc2hvdyBkYXRhIHZhbHVlcyBpbiBkaWZmZXJlbnQgcmVnaW9ucyBieSBjb2xvcmluZyB0aG9zZSByZWdpb25zIGluIHRoZSBtYXAgYWNjb3JkaW5nIHRvIHRoZSBkYXRhLiBTdWNoIGEgbWFwIGlzIGNhbGxlZCBhIGNob3JvcGxldGguIEluIHNvbWUgY2FzZXMsIGl0IG1heSBiZSBoZWxwZnVsIHRvIGRpc3RvcnQgdGhlIGRpZmZlcmVudCByZWdpb25zIGFjY29yZGluZyB0byBzb21lIG90aGVyIHF1YW50aXR5IChlLmcuLCBwb3B1bGF0aW9uIG51bWJlcikgb3Igc2ltcGxpZnkgZWFjaCByZWdpb24gaW50byBhIHNxdWFyZS4gU3VjaCB2aXN1YWxpemF0aW9ucyBhcmUgY2FsbGVkIGNhcnRvZ3JhbXMuDQoNCg0KIyBVbmNlcnRhaW50eQ0KDQpgYGB7ciBlcnJvcmJhcnMsIGZpZy53aWR0aCA9IDgsIGZpZy5hc3AgPSAxLzR9DQpwYWxldHRlIDwtIHBhbF9icm93bl9yZWQNCnAxIDwtIGdncGxvdChkZl91bmNlcnRhaW4sIGFlcyh5LCB0eXBlKSkgKw0KICBnZW9tX2Vycm9yYmFyaCgNCiAgICBhZXMoeG1pbiA9IHktZHksIHhtYXggPSB5K2R5KSwNCiAgICBjb2xvciA9IHBhbGV0dGVbMV0sIGhlaWdodCA9IDAuMiwgc2l6ZSA9IDAuNQ0KICApICsNCiAgZ2VvbV9wb2ludCgNCiAgICBjb2xvciA9IHBhbGV0dGVbMV0sDQogICAgc2l6ZSA9IDINCiAgKSArDQogIGxhYnModGl0bGUgPSAiRXJyb3IgQmFycyIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pICsNCiAgdGhlbWUoDQogICAgYXhpcy5saW5lLnkgPSBlbGVtZW50X2JsYW5rKCksDQogICAgYXhpcy50aWNrcy55ID0gZWxlbWVudF9ibGFuaygpDQogICkNCnAyIDwtIGdncGxvdChkZl91bmNlcnRhaW4sIGFlcyh0eXBlLCB5KSkgKw0KICBnZW9tX2NvbChmaWxsID0gcGFsZXR0ZVszXSwgd2lkdGggPSAwLjgpICsNCiAgZ2VvbV9zZWdtZW50KA0KICAgIGFlcyh4ZW5kID0gdHlwZSwgeSA9IHktZHksIHllbmQgPSB5K2R5KSwNCiAgICBjb2xvciA9IHBhbGV0dGVbMV0sDQogICAgc2l6ZSA9IDAuNw0KICApICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgNiksIGV4cGFuZCA9IGMoMCwgMCkpICsNCiAgbGFicyh0aXRsZSA9ICJFcnJvciBCYXJzIikgKw0KICB0aGVtZV9wbG90X2ljb24ocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkgKw0KICB0aGVtZSgNCiAgICBheGlzLmxpbmUueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICBheGlzLnRpY2tzLnggPSBlbGVtZW50X2JsYW5rKCkNCiAgKQ0KcDMgPC0gZ2dwbG90KGRmX3VuY2VydGFpbiwgYWVzKHksIHR5cGUpKSArDQogIGdlb21fZXJyb3JiYXJoKA0KICAgIGFlcyh4bWluID0geS0yLjU4KmR5LCB4bWF4ID0geSsyLjU4KmR5KSwgIyA5OSUgQ0kNCiAgICBjb2xvciA9IHBhbGV0dGVbM10sIGhlaWdodCA9IDAsIHNpemUgPSAwLjUNCiAgKSArDQogIGdlb21fZXJyb3JiYXJoKA0KICAgIGFlcyh4bWluID0geS0xLjk2KmR5LCB4bWF4ID0geSsxLjk2KmR5KSwgIyA5NSUgQ0kNCiAgICBjb2xvciA9IHBhbGV0dGVbMl0sIGhlaWdodCA9IDAsIHNpemUgPSAxDQogICkgKw0KICBnZW9tX2Vycm9yYmFyaCgNCiAgICBhZXMoeG1pbiA9IHktMS4yOCpkeSwgeG1heCA9IHkrMS4yOCpkeSksICMgODAlIENJDQogICAgY29sb3IgPSBwYWxldHRlWzFdLCBoZWlnaHQgPSAwLCBzaXplID0gMS41DQogICkgKw0KICAjZ2VvbV9lcnJvcmJhcmgoDQogICMgIGFlcyh4bWluID0geS1keSwgeG1heCA9IHkrZHkpLA0KICAjICBjb2xvciA9IHBhbGV0dGVbMV0sIGhlaWdodCA9IDAuMSwgc2l6ZSA9IDAuNQ0KICAjKSArDQogIGdlb21fcG9pbnQoDQogICAgY29sb3IgPSBwYWxldHRlWzFdLA0KICAgIHNpemUgPSAyDQogICkgKw0KICBsYWJzKHRpdGxlID0gIkdyYWRlZCBFcnJvciBCYXJzIikgKw0KICB0aGVtZV9wbG90X2ljb24ocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkgKw0KICB0aGVtZSgNCiAgICBheGlzLmxpbmUueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICBheGlzLnRpY2tzLnkgPSBlbGVtZW50X2JsYW5rKCkNCiAgKQ0KcDQgPC0gZ2dwbG90KGRmX3VuY2VydGFpbiwgYWVzKHgsIHkpKSArDQogIGdlb21fcG9pbnQoY29sb3IgPSBwYWxldHRlWzFdLCBzaXplID0gMikgKw0KICBnZW9tX3NlZ21lbnQoDQogICAgYWVzKHhlbmQgPSB4LCB5ID0geS1keSwgeWVuZCA9IHkrZHkpLA0KICAgIGNvbG9yID0gcGFsZXR0ZVsxXSwNCiAgICBzaXplID0gMC43DQogICkgKw0KICBnZW9tX3NlZ21lbnQoDQogICAgYWVzKHllbmQgPSB5LCB4ID0geC1keCwgeGVuZCA9IHgrZHgpLA0KICAgIGNvbG9yID0gcGFsZXR0ZVsxXSwNCiAgICBzaXplID0gMC43DQogICkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygxLCA0KSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygyLCA2KSkgKw0KICBsYWJzKHRpdGxlID0gIjJEIEVycm9yIEJhcnMiKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KICANCnBsb3RfZ3JpZChwMSwgcDIsIHA0LCBwMywgbmNvbCA9IDQsIHNjYWxlID0gLjkpDQogIA0KYGBgDQoNCkVycm9yIGJhcnMgYXJlIG1lYW50IHRvIGluZGljYXRlIHRoZSByYW5nZSBvZiBsaWtlbHkgdmFsdWVzIGZvciBzb21lIGVzdGltYXRlIG9yIG1lYXN1cmVtZW50LiBUaGV5IGV4dGVuZCBob3Jpem9udGFsbHkgYW5kL29yIHZlcnRpY2FsbHkgZnJvbSBzb21lIHJlZmVyZW5jZSBwb2ludCByZXByZXNlbnRpbmcgdGhlIGVzdGltYXRlIG9yIG1lYXN1cmVtZW50LiBSZWZlcmVuY2UgcG9pbnRzIGNhbiBiZSBzaG93biBpbiB2YXJpb3VzIHdheXMsIHN1Y2ggYXMgYnkgZG90cyBvciBieSBiYXJzLiBHcmFkZWQgDQplcnJvciBiYXJzIHNob3cgbXVsdGlwbGUgcmFuZ2VzIGF0IHRoZSBzYW1lIHRpbWUsIHdoZXJlIGVhY2ggcmFuZ2UgY29ycmVzcG9uZHMgdG8gYSBkaWZmZXJlbnQgZGVncmVlIG9mIGNvbmZpZGVuY2UuIFRoZXkgYXJlIGluIGVmZmVjdCBtdWx0aXBsZSBlcnJvciBiYXJzIHdpdGggZGlmZmVyZW50IGxpbmUgdGhpY2tuZXNzZXMgcGxvdHRlZCBvbiB0b3Agb2YgZWFjaCBvdGhlci4NCg0KYGBge3J9DQojJyBDb25maWRlbmNlIGRlbnNpdHkgZGlzdHJpYnV0aW9ucyBnZW5lcmF0ZWQgZnJvbSBlc3RpbWF0ZSBhbmQgbWFyZ2luIG9mIGVycm9yDQojJw0KIycgVGhpcyBzdGF0IGdlbmVyYXRlcyBub3JtYWwgZGVuc2l0aWVzIGZyb20gcHJvdmlkZWQgZXN0aW1hdGVzIHBsdXMgbWFyZ2lucw0KIycgb2YgZXJyb3IgKGF0IGEgc3BlY2lmaWVkIGNvbmZpZGVuY2UgbGV2ZWwpLiBJdCBjYW4gYmUgdXNlZCB0byBlc3RpbWF0ZQ0KIycgdGhlIGNvbmZpZGVuY2UgZGVuc2l0eSB0aGF0IHVuZGVybGllcyBhIGdpdmVuIHBhcmFtZXRlciBlc3RpbWF0ZSB3aXRoDQojJyBnaXZlbiBtYXJnaW4gb2YgZXJyb3IuDQojJw0KIycgQGluaGVyaXRQYXJhbXMgZ2dwbG90Mjo6bGF5ZXINCiMnIEBwYXJhbSAuLi4gT3RoZXIgYXJndW1lbnRzIHBhc3NlZCBvbiB0byBbYGxheWVyKClgXS4gVGhlc2UgYXJlDQojJyAgIG9mdGVuIGFlc3RoZXRpY3MsIHVzZWQgdG8gc2V0IGFuIGFlc3RoZXRpYyB0byBhIGZpeGVkIHZhbHVlLCBsaWtlDQojJyAgIGBjb2xvdXIgPSAicmVkImAgb3IgYHNpemUgPSAzYC4gVGhleSBtYXkgYWxzbyBiZSBwYXJhbWV0ZXJzDQojJyAgIHRvIHRoZSBwYWlyZWQgZ2VvbS9zdGF0Lg0KIycgQHBhcmFtIGNvbmZpZGVuY2UgVGhlIGNvbmZpZGVuY2UgbGV2ZWwgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGBtb2VgIHN0YXRpc3RpYy4NCiMnICAgIFRoaXMgZGVmYXVsdHMgdG8gMC45NSAoYG1vZWAgY29ycmVzcG9uZHMgdG8gOTVcJSBjb25maWRlbmNlIGludGVydmFsKS4NCiMnIEBwYXJhbSB4bGltIE51bWVyaWMgdmVjdG9yIG9mIHR3byBudW1iZXJzIHNldHRpbmcgdGhlIHJhbmdlIG9mIHggdmFsdWVzIHRvIGJlDQojJyAgIGNvdmVyZWQgYnkgdGhlIGNvbmZpZGVuY2UgZGVuc2l0eS4gSWYgbm90IHN1cHBsaWVkLCBpcyB0YWtlbiBmcm9tIHRoZSB4IHNjYWxlLg0KIycgQHBhcmFtIG4gTnVtYmVyIG9mIGVxdWFsbHkgc3BhY2VkIHBvaW50cyBhdCB3aGljaCB0aGUgZGVuc2l0eSBpcyBjYWxjdWxhdGVkLg0KIycgQHBhcmFtIG5hLnJtIElmIGBGQUxTRWAsIHRoZSBkZWZhdWx0LCBtaXNzaW5nIHZhbHVlcyBhcmUgcmVtb3ZlZCB3aXRoDQojJyAgIGEgd2FybmluZy4gSWYgYFRSVUVgLCBtaXNzaW5nIHZhbHVlcyBhcmUgc2lsZW50bHkgcmVtb3ZlZC4NCiMnDQojJyBAc2VjdGlvbiBEZXRhaWxzOg0KIycNCiMnIFRoZSBmb2xsb3dpbmcgYWVzdGhldGljcyBhcmUgdW5kZXJzdG9vZCBieSB0aGlzIHN0YXQgKHJlcXVpcmVkIGFlc3RoZXRpY3MNCiMnIGFyZSBpbiBib2xkKToNCiMnICAqICoqYHhgKio6IFRoZSBlc3RpbWF0ZSB3aG9zZSB1bmNlcnRhaW50eSBpcyB0byBiZSBkaXNwbGF5ZWQNCiMnICAqICoqYG1vZWAqKjogTWFyZ2luIG9mIGVycm9yDQojJyAgKiBgY29uZmlkZW5jZWA6IENvbmZpZGVuY2UgbGV2ZWwgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGBtb2VgIHN0YXRpc3RpYy4NCiMnICAgIFRoaXMgZGVmYXVsdHMgdG8gMC45NSAoYG1vZWAgY29ycmVzcG9uZHMgdG8gOTVcJSBjb25maWRlbmNlIGludGVydmFsKS4NCiMnDQojJyBAc291cmNlDQojJyBBZHJpYW4gVy4gQm93bWFuLiBHcmFwaHMgZm9yIFVuY2VydGFpbnR5LiBKLiBSLiBTdGF0aXN0LiBTb2MuIEEgMTgyOjEtMTYsIDIwMTguDQojJyBcdXJse2h0dHA6Ly93d3cucnNzLm9yZy51ay9JbWFnZXMvUERGL2V2ZW50cy8yMDE4L0Jvd21hbi01LVNlcHQtMjAxOC5wZGZ9DQojJyBAZXhhbXBsZXMNCiMnIGxpYnJhcnkoZ2dwbG90MikNCiMnIGxpYnJhcnkoZHBseXIpDQojJw0KIycgY2FjYW9fc21hbGwgPC0gY2FjYW8gJT4lDQojJyAgIGZpbHRlcihsb2NhdGlvbiAlaW4lIGMoIlN3aXR6ZXJsYW5kIiwgIkNhbmFkYSIsICJVLlMuQS4iLCAiQmVsZ2l1bSIpKQ0KIycNCiMnIGNhY2FvX3N1bW1hcnkgPC0gY2FjYW9fc21hbGwgJT4lDQojJyAgIGdyb3VwX2J5KGxvY2F0aW9uKSAlPiUNCiMnICAgc3VtbWFyaXplKA0KIycgICAgIHNkID0gc2QocmF0aW5nKSwNCiMnICAgICBtb2UgPSBzZCoxLjk2LA0KIycgICAgIHJhdGluZyA9IG1lYW4ocmF0aW5nKQ0KIycgICApDQojJw0KIycgZ2dwbG90KGNhY2FvX3N1bW1hcnksIGFlcyh4ID0gcmF0aW5nLCB5ID0gbG9jYXRpb24pKSArDQojJyAgIHN0YXRfY29uZmlkZW5jZV9kZW5zaXR5KGFlcyhtb2UgPSBtb2UsIGZpbGwgPSBzdGF0KG5kZW5zaXR5KSksIGhlaWdodCA9IDAuOCkgKw0KIycgICBnZW9tX3BvaW50KGRhdGEgPSBjYWNhb19zbWFsbCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLjA1KSwgc2l6ZSA9IDAuMykgKw0KIycgICBnZW9tX2Vycm9yYmFyaCgNCiMnICAgICBhZXMoeG1pbiA9IHJhdGluZyAtIHNkLCB4bWF4ID0gcmF0aW5nICsgc2QpLA0KIycgICAgIGhlaWdodCA9IDAuMywgY29sb3IgPSAiZGFya3JlZCIsIHNpemUgPSAxDQojJyAgICkgKw0KIycgICBnZW9tX3BvaW50KHNpemUgPSAzLCBjb2xvciA9ICJkYXJrcmVkIikgKw0KIycgICB0aGVtZV9taW5pbWFsKCkNCiMnDQojJw0KIycgbGlicmFyeShnZ3JpZGdlcykNCiMnDQojJyBjYWNhb19zZSA8LSBjYWNhb19zbWFsbCAlPiUNCiMnICAgZ3JvdXBfYnkobG9jYXRpb24pICU+JQ0KIycgICBzdW1tYXJpemUoDQojJyAgICAgc2UgPSBzZChyYXRpbmcpL3NxcnQobigpKSwNCiMnICAgICBtb2UgPSBzZSoxLjk2LA0KIycgICAgIHJhdGluZyA9IG1lYW4ocmF0aW5nKQ0KIycgICApDQojJw0KIycgZ2dwbG90KGNhY2FvX3NlLCBhZXMoeCA9IHJhdGluZywgeSA9IGxvY2F0aW9uKSkgKw0KIycgICBzdGF0X2NvbmZpZGVuY2VfZGVuc2l0eSgNCiMnICAgICBnZW9tID0gInJpZGdlbGluZSIsDQojJyAgICAgYWVzKG1vZSA9IG1vZSwgaGVpZ2h0ID0gc3RhdChkZW5zaXR5KSksDQojJyAgICAgYWxwaGEgPSBOQSwgeGxpbSA9IGMoMi41LCAzLjc1KSwgc2NhbGUgPSAwLjA4DQojJyAgICkgKw0KIycgICB0aGVtZV9taW5pbWFsKCkNCiMnIEBleHBvcnQNCnN0YXRfY29uZmlkZW5jZV9kZW5zaXR5IDwtIGZ1bmN0aW9uKG1hcHBpbmcgPSBOVUxMLCBkYXRhID0gTlVMTCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tID0gInRpbGUiLCBwb3NpdGlvbiA9ICJpZGVudGl0eSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAwLjk1LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsaW0gPSBOVUxMLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSA1MDEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBGQUxTRSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93LmxlZ2VuZCA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQuYWVzID0gVFJVRSkgew0KICBsIDwtIGxheWVyKA0KICAgIGRhdGEgPSBkYXRhLA0KICAgIG1hcHBpbmcgPSBtYXBwaW5nLA0KICAgIHN0YXQgPSBTdGF0Q29uZmlkZW5jZURlbnNpdHksDQogICAgZ2VvbSA9IGdlb20sDQogICAgcG9zaXRpb24gPSBwb3NpdGlvbiwNCiAgICBzaG93LmxlZ2VuZCA9IHNob3cubGVnZW5kLA0KICAgIGluaGVyaXQuYWVzID0gaW5oZXJpdC5hZXMsDQogICAgcGFyYW1zID0gbGlzdCgNCiAgICAgIGNvbmZpZGVuY2UgPSBjb25maWRlbmNlLA0KICAgICAgbiA9IG4sDQogICAgICBuYS5ybSA9IG5hLnJtLA0KICAgICAgeGxpbSA9IHhsaW0sDQogICAgICAuLi4NCiAgICApDQogICkNCg0KICBsaXN0KGwsIHNjYWxlX2FscGhhX2lkZW50aXR5KCkpDQp9DQoNCiMnIEByZG5hbWUgc3RhdF9jb25maWRlbmNlX2RlbnNpdHkNCiMnIEB1c2FnZSBOVUxMDQojJyBAZm9ybWF0IE5VTEwNCiMnIEBleHBvcnQNClN0YXRDb25maWRlbmNlRGVuc2l0eSA8LSBnZ3Byb3RvKCJTdGF0Q29uZmlkZW5jZURlbnNpdHkiLCBTdGF0LA0KICByZXF1aXJlZF9hZXMgPSBjKCJ4IiwgIm1vZSIpLA0KICBkZWZhdWx0X2FlcyA9IGFlcygNCiAgICBhbHBoYSA9IHN0YXQobmRlbnNpdHkpLA0KICAgIGNvbmZpZGVuY2UgPSAwLjk1DQogICksDQoNCiAgY29tcHV0ZV9ncm91cCA9IGZ1bmN0aW9uKGRhdGEsIHNjYWxlcywgeGxpbSA9IE5VTEwsIG4gPSA1MDEsIGNvbmZpZGVuY2UgPSAwLjk1KSB7DQogICAgIyBhc3N1bWUgY29uZmlkZW5jZSBsZXZlbCBpcyAwLjk1IGlmIG5vdCBwcm92aWRlZA0KICAgIGlmIChpcy5udWxsKGRhdGEkY29uZmlkZW5jZSkpIHsNCiAgICAgIGRhdGEkY29uZmlkZW5jZSA8LSBjb25maWRlbmNlDQogICAgfQ0KDQogICAgIyBDaGVjayB0aGF0IGNvbmZpZGVuY2UgZGVuc2l0eSBwYXJhbWV0ZXJzIGFyZSBjb25zdGFudCB3aXRoaW4gZ3JvdXANCiAgICBwYXJhbXMgPC0gdW5pcXVlKGRhdGFbYygieCIsICJtb2UiLCAiY29uZmlkZW5jZSIpXSkNCiAgICBpZiAobnJvdyhwYXJhbXMpID4gMSkgew0KICAgICAgc3RvcCgiQ29uZmlkZW5jZSBkZW5zaXR5IHBhcmFtZXRlcnMgY2FuIG5vdCB2YXJ5IHdpdGhpbiBkYXRhIGdyb3VwcyIsIGNhbGwuID0gRkFMU0UpDQogICAgfQ0KICAgIHBhcmFtcyA8LSBhcy5saXN0KHBhcmFtcykNCg0KICAgIHJhbmdlIDwtIHhsaW0gJXx8JSBzY2FsZXMkeCRkaW1lbnNpb24oKQ0KICAgIHhzZXEgPC0gc2VxKHJhbmdlWzFdLCByYW5nZVsyXSwgbGVuZ3RoLm91dCA9IG4pDQoNCiAgICBpZiAoc2NhbGVzJHgkaXNfZGlzY3JldGUoKSkgew0KICAgICAgeF90cmFucyA8LSB4c2VxDQogICAgfSBlbHNlIHsNCiAgICAgICMgRm9yIGNvbnRpbnVvdXMgc2NhbGVzLCBuZWVkIHRvIGJhY2sgdHJhbnNmb3JtIGZyb20gdHJhbnNmb3JtZWQgcmFuZ2UNCiAgICAgICMgdG8gb3JpZ2luYWwgdmFsdWVzDQogICAgICB4X3RyYW5zIDwtIHNjYWxlcyR4JHRyYW5zJGludmVyc2UoeHNlcSkNCiAgICAgIHBhcmFtcyR4IDwtIHNjYWxlcyR4JHRyYW5zJGludmVyc2UocGFyYW1zJHgpDQogICAgICBwYXJhbXMkc3RhdGlzdGljIDwtIHNjYWxlcyR4JHRyYW5zJGludmVyc2UocGFyYW1zJHN0YXRpc3RpYykNCiAgICB9DQoNCiAgICBmdW4gPC0gZG8uY2FsbChmaXRfbm9ybWFsLCBwYXJhbXMpDQogICAgZGVuc2l0eSA8LSBmdW4oeF90cmFucykNCg0KICAgIGRhdGEuZnJhbWUoDQogICAgICB4ID0geHNlcSwNCiAgICAgIGRlbnNpdHkgPSBkZW5zaXR5LA0KICAgICAgbmRlbnNpdHkgPSBkZW5zaXR5L21heChkZW5zaXR5KQ0KICAgICkNCiAgfQ0KKQ0KDQoNCmZpdF9ub3JtYWwgPC0gZnVuY3Rpb24oeCwgbW9lLCBjb25maWRlbmNlKSB7DQogICMgY29udmVydCB0byB0d28tdGFpbGVkIHZhbHVlDQogIGNvbmZpZGVuY2UgPC0gMS0oMS1jb25maWRlbmNlKS8yDQogIGZ1bmN0aW9uKHopIHN0YXRzOjpkbm9ybSh6LCBtZWFuID0geCwgc2QgPSBtb2Uvc3RhdHM6OnFub3JtKGNvbmZpZGVuY2UpKQ0KfQ0KYGBgDQoNCg0KDQoNCmBgYHtyIGNvbmZpZGVuY2UtZGlzdHMsIGZpZy53aWR0aCA9IDgsIGZpZy5hc3AgPSAxLzR9DQpwMSA8LSBnZ3Bsb3QoZGZfdW5jZXJ0YWluLCBhZXMoeSwgdHlwZSkpICsNCiAgc3RhdF9jb25maWRlbmNlX2RlbnNpdHkoYWVzKG1vZSA9IGR5KSwgZmlsbCA9IHBhbGV0dGVbM10sIGhlaWdodCA9IDAuNiwgY29uZmlkZW5jZSA9IDAuNjgpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoMS42LCA2LjQpLCBleHBhbmQgPSBjKDAsIDApKSArDQogIHNjYWxlX3lfZGlzY3JldGUoZXhwYW5kID0gYygwLCAxKSkgKw0KICBsYWJzKHRpdGxlID0gIkNvbmZpZGVuY2UgU3RyaXBzIikgKw0KICB0aGVtZV9wbG90X2ljb24ocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkgKw0KICB0aGVtZSgNCiAgICBheGlzLmxpbmUueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICBheGlzLnRpY2tzLnkgPSBlbGVtZW50X2JsYW5rKCkNCiAgKQ0KcDIgPC0gZ2dwbG90KGRmX3VuY2VydGFpbiwgYWVzKHksIHR5cGUpKSArDQogIGdlb21fcmliYm9uKA0KICAgIGRhdGEgPSBmaWx0ZXIoZGZfdW5jZXJ0YWluLCB0eXBlID09ICJBIiksDQogICAgYWVzKG1vZSA9IGR5LCB5bWluID0gMSAtIC41KnN0YXQoZGVuc2l0eSksIHltYXggPSAxICsgLjUqc3RhdChkZW5zaXR5KSksDQogICAgc3RhdCA9ICJjb25maWRlbmNlX2RlbnNpdHkiLA0KICAgIGZpbGwgPSBwYWxldHRlWzNdLCBjb2xvciA9IE5BLCBhbHBoYSA9IE5BLCBjb25maWRlbmNlID0gMC42OA0KICApICsNCiAgZ2VvbV9yaWJib24oDQogICAgZGF0YSA9IGZpbHRlcihkZl91bmNlcnRhaW4sIHR5cGUgPT0gIkIiKSwNCiAgICBhZXMobW9lID0gZHksIHltaW4gPSAyIC0gLjUqc3RhdChkZW5zaXR5KSwgeW1heCA9IDIgKyAuNSpzdGF0KGRlbnNpdHkpKSwNCiAgICBzdGF0ID0gImNvbmZpZGVuY2VfZGVuc2l0eSIsDQogICAgZmlsbCA9IHBhbGV0dGVbM10sIGNvbG9yID0gTkEsIGFscGhhID0gTkEsIGNvbmZpZGVuY2UgPSAwLjY4DQogICkgKw0KICBnZW9tX3JpYmJvbigNCiAgICBkYXRhID0gZmlsdGVyKGRmX3VuY2VydGFpbiwgdHlwZSA9PSAiQyIpLA0KICAgIGFlcyhtb2UgPSBkeSwgeW1pbiA9IDMgLSAuNSpzdGF0KGRlbnNpdHkpLCB5bWF4ID0gMyArIC41KnN0YXQoZGVuc2l0eSkpLA0KICAgIHN0YXQgPSAiY29uZmlkZW5jZV9kZW5zaXR5IiwNCiAgICBmaWxsID0gcGFsZXR0ZVszXSwgY29sb3IgPSBOQSwgYWxwaGEgPSBOQSwgY29uZmlkZW5jZSA9IDAuNjgNCiAgKSArDQogIGdlb21fZXJyb3JiYXJoKA0KICAgIGFlcyh4bWluID0geS0xLjI4KmR5LCB4bWF4ID0geSsxLjI4KmR5KSwgDQogICAgY29sb3IgPSBwYWxldHRlWzFdLCBoZWlnaHQgPSAwLCBzaXplID0gMC41DQogICkgKw0KICBnZW9tX3BvaW50KA0KICAgIGNvbG9yID0gcGFsZXR0ZVsxXSwNCiAgICBzaXplID0gMg0KICApICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoMS42LCA2LjQpLCBleHBhbmQgPSBjKDAsIDApKSArDQogIHNjYWxlX3lfZGlzY3JldGUoZXhwYW5kID0gZXhwYW5kX3NjYWxlKGFkZCA9IGMoMC44LCAwLjgpKSkgKw0KICBsYWJzKHRpdGxlID0gIkV5ZXMiKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKSArDQogIHRoZW1lKA0KICAgIGF4aXMubGluZS55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgIGF4aXMudGlja3MueSA9IGVsZW1lbnRfYmxhbmsoKQ0KICApDQpwMyA8LSBnZ3Bsb3QoZGZfdW5jZXJ0YWluLCBhZXMoeSwgdHlwZSkpICsNCiAgc3RhdF9jb25maWRlbmNlX2RlbnNpdHkoDQogICAgYWVzKG1vZSA9IGR5LCBoZWlnaHQgPSAuOSpzdGF0KGRlbnNpdHkpKSwNCiAgICBnZW9tID0gInJpZGdlbGluZSIsDQogICAgZmlsbCA9IHBhbGV0dGVbM10sIGNvbG9yID0gTkEsIGFscGhhID0gTkEsIGNvbmZpZGVuY2UgPSAwLjY4DQogICkgKw0KICBnZW9tX2Vycm9yYmFyaCgNCiAgICBhZXMoeG1pbiA9IHktMS4yOCpkeSwgeG1heCA9IHkrMS4yOCpkeSksDQogICAgY29sb3IgPSBwYWxldHRlWzFdLCBoZWlnaHQgPSAwLCBzaXplID0gMC41DQogICkgKw0KICBnZW9tX3BvaW50KA0KICAgIGNvbG9yID0gcGFsZXR0ZVsxXSwNCiAgICBzaXplID0gMg0KICApICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoMS42LCA2LjQpLCBleHBhbmQgPSBjKDAsIDApKSArDQogIHNjYWxlX3lfZGlzY3JldGUoZXhwYW5kID0gZXhwYW5kX3NjYWxlKGFkZCA9IGMoMC4yLCAwLjgpKSkgKw0KICBsYWJzKHRpdGxlID0gIkhhbGYtRXllcyIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pICsNCiAgdGhlbWUoDQogICAgYXhpcy5saW5lLnkgPSBlbGVtZW50X2JsYW5rKCksDQogICAgYXhpcy50aWNrcy55ID0gZWxlbWVudF9ibGFuaygpDQogICkNCmRmX25vcm0gPC0gZGF0YS5mcmFtZSgNCiAgeCA9IHNlcSgtMywgMywgbGVuZ3RoLm91dCA9IDEwMCksDQogIHkgPSBkbm9ybShzZXEoLTMsIDMsIGxlbmd0aC5vdXQgPSAxMDApKQ0KKQ0KZGZfcSA8LSBkYXRhLmZyYW1lKHggPSBxbm9ybShwcG9pbnRzKDIwKSkpDQpwNCA8LSBnZ3Bsb3QoZGZfcSwgYWVzKHgpKSArDQogIGdlb21fbGluZShkYXRhID0gZGZfbm9ybSwgYWVzKHgsIC4zNip5KSwgY29sb3IgPSBwYWxldHRlWzFdLCBuYS5ybSA9IEZBTFNFLCBzaXplID0gMC4yNSkgKyAjIGZhY3RvciAuMzYgbWFudWFsbHkgZGV0ZXJtaW5lZA0KICBnZW9tX2RvdHBsb3QoYmlud2lkdGggPSAuNCwgZmlsbCA9IHBhbGV0dGVbM10sIGNvbG9yID0gcGFsZXR0ZVsxXSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoDQogICAgbGltaXRzID0gYygtMi44LCAyLjgpLA0KICAgIGV4cGFuZCA9IGMoMCwgMCkNCiAgKSArDQogIHNjYWxlX3lfY29udGludW91cygNCiAgICBleHBhbmQgPSBjKDAuMDIsIDApLA0KICAgIGxpbWl0cyA9IGMoMCwgMC40KQ0KICApICsNCiAgbGFicyh0aXRsZSA9ICJRdWFudGlsZSBEb3QgUGxvdCIpICsNCiAgdGhlbWVfcGxvdF9pY29uKHBhbGV0dGVbbnBhbF0sIHBhbGV0dGVbMV0pICsNCiAgdGhlbWUoDQogICAgYXhpcy5saW5lLnkgPSBlbGVtZW50X2JsYW5rKCksDQogICAgYXhpcy50aWNrcy55ID0gZWxlbWVudF9ibGFuaygpDQogICkNCnBsb3RfZ3JpZChwMSwgcDIsIHAzLCBwNCwgbmNvbCA9IDQsIHNjYWxlID0gLjkpDQogIA0KYGBgDQoNClRvIGFjaGlldmUgYSBtb3JlIGRldGFpbGVkIHZpc3VhbGl6YXRpb24gdGhhbiBpcyBwb3NzaWJsZSB3aXRoIGVycm9yIGJhcnMgb3IgZ3JhZGVkIGVycm9yIGJhcnMsIHdlIGNhbiB2aXN1YWxpemUgdGhlIGFjdHVhbCBjb25maWRlbmNlIG9yIHBvc3RlcmlvciBkaXN0cmlidXRpb25zLiBDb25maWRlbmNlIHN0cmlwcyBwcm92aWRlIGEgY2xlYXIgdmlzdWFsIHNlbnNlIG9mIHVuY2VydGFpbnR5IGJ1dCBhcmUgZGlmZmljdWx0IHRvIHJlYWQgYWNjdXJhdGVseS4gRXllcyBhbmQgaGFsZi1leWVzIGNvbWJpbmUgZXJyb3IgYmFycyB3aXRoIGFwcHJvYWNoZXMgdG8gdmlzdWFsaXplIGRpc3RyaWJ1dGlvbnMgKHZpb2xpbnMgYW5kIHJpZGdlbGluZXMsIHJlc3BlY3RpdmVseSksIGFuZCB0aHVzIHNob3cgYm90aCBwcmVjaXNlIHJhbmdlcyBmb3Igc29tZSBjb25maWRlbmNlIGxldmVscyBhbmQgdGhlIG92ZXJhbGwgdW5jZXJ0YWludHkgZGlzdHJpYnV0aW9uLiBBIHF1YW50aWxlIGRvdCBwbG90IGNhbiBzZXJ2ZSBhcyBhbiBhbHRlcm5hdGl2ZSB2aXN1YWxpemF0aW9uIG9mIGFuIHVuY2VydGFpbnR5IGRpc3RyaWJ1dGlvbi4gQnkgc2hvd2luZyB0aGUgZGlzdHJpYnV0aW9uIGluIGRpc2NyZXRlIHVuaXRzLCB0aGUgcXVhbnRpbGUgZG90IHBsb3QgaXMgbm90IGFzIHByZWNpc2UgYnV0IGNhbiBiZSBlYXNpZXIgdG8gcmVhZCB0aGFuIHRoZSBjb250aW51b3VzIGRpc3RyaWJ1dGlvbiBzaG93biBieSBhIHZpb2xpbiBvciByaWRnZWxpbmUgcGxvdC4NCg0KDQpgYGB7cn0NCiMgZmlsZSBiYXNlZCBvbiBzdGF0LXNtb290aC5SIGZyb20gZ2dwbG90Mg0KDQojJyBHZW5lcmF0ZSBvdXRjb21lIGRyYXdzIGZyb20gYSBzbW9vdGggZml0DQojJw0KIycgR2VuZXJhdGUgb3V0Y29tZSBkcmF3cyBmcm9tIGEgc21vb3RoIGZpdC4gVGhpcyBzdGF0IGlzIHNpbWlsYXIgdG8gW2BzdGF0X3Ntb290aCgpYF0sDQojJyBidXQgdGhlcmUgYXJlIGEgZmV3IGltcG9ydGFudCBkaWZmZXJlbmNlcy4gRmlyc3QsIHRoZXJlIGlzIG5vIGBtZXRob2RgIGFyZ3VtZW50Lg0KIycgT25seSBzbW9vdGggZml0cyBmaXR0ZWQgdmlhIFtgbWdjdjo6Z2FtKClgXSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4gSWYgeW91IHdhbnQgYQ0KIycgbGluZWFyIGZpdCwgc2V0IGEgbGluZWFyIGZvcm11bGEgdmlhIGBmb3JtdWxhID0geSB+IHhgLiBTZWNvbmQsIHRoZXJlIGlzIG5vIGBzZWANCiMnIGFyZ3VtZW50LiBUaGlzIHN0YXQgY2Fubm90IGRyYXcgY29uZmlkZW5jZSBiYW5kcy4gU2VlIFtgY29uZmlkZW5jZV9iYW5kKClgXSBmb3IgYQ0KIycgd29ya2Fyb3VuZCBpZiB5b3Ugd2FudCB0byBhZGQgY29uZmlkZW5jZSBiYW5kcy4gSW50ZXJuYWxseSwgdGhlIHN0YXQgdXNlcyB0aGUNCiMnIGZ1bmN0aW9uIFtgc2FtcGxlX291dGNvbWVzKClgXSB0byBjYWxjdWxhdGUgb3V0Y29tZXMuDQojJw0KIycgVGhpcyBzdGF0IGZpdHMgdGhlIGdhbSB3aXRoIFJlc3RyaWN0ZWQgTWF4aW11bSBMaWtlbGlob29kIChSRU1MKSBhbmQgdXNlcyB0aGUNCiMnIHNtb290aGluZyBwYXJhbWV0ZXIgdW5jZXJ0YWludHkgY29ycmVjdGVkIGNvdmFyaWFuY2UgbWF0cml4IHRvIGdlbmVyYXRlIG91dGNvbWVzDQojJyAoYHVuY29uZGl0aW9uYWwgPSBUUlVFYCBpbiBbYHNhbXBsZV9vdXRjb21lcygpYF0pLiBJZiB5b3UgY2hvb3NlIGEgZGlmZmVyZW50IGdhbQ0KIycgZml0dGluZyBtZXRob2QgdGhlIHN0YXQgc2V0cyBgdW5jb25kaXRpb25hbCA9IEZBTFNFYC4NCiMnDQojJyBOb3RlIHRoYXQgZm9yIHN0YXRpYyBwbG90cywgeW91IHdpbGwgZ2VuZXJhbGx5IGhhdmUgdG8gc2V0IHRoZSBgZ3JvdXBgDQojJyBhZXN0aGV0aWMgYXBwcm9wcmlhdGVseSAoZS5nLiwgYGFlcyhncm91cCA9IHN0YXQoLmRyYXcpKWApLiBIb3dldmVyLCBmb3INCiMnIGFuaW1hdGVkIHBsb3RzIHlvdSB3aWxsIG5vcm1hbGx5IG5vdCB3YW50IHRvIHNldCB0aGUgZ3JvdXAgYWVzdGhldGljIGluDQojJyB0aGlzIHdheS4gVG8gZW5hYmxlIGFuaW1hdGlvbnMgYnkgZGVmYXVsdCwgYHN0YXRfc21vb3RoX2RyYXdzKClgIGRvZXMgbm90DQojJyBzZXQgYSBncm91cCBhZXN0aGV0aWMuIFNlZSBleGFtcGxlcyBmb3IgZnVydGhlciBkZXRhaWxzLg0KIycNCiMnIEBpbmhlcml0UGFyYW1zIGdncGxvdDI6OnN0YXRfc21vb3RoDQojJyBAcGFyYW0gdGltZXMgTnVtYmVyIG9mIG91dGNvbWVzIHRvIGRyYXcuDQojJyBAcGFyYW0gZm9ybXVsYSBGb3JtdWxhIHRvIHVzZSBpbiBzbW9vdGhpbmcgZnVuY3Rpb24uIERlZmF1bHQgaXMNCiMnICAgYSBjdWJpYyBzcGxpbmUsIGB5IH4gcyh4LCBicyA9ICJjcyIpYC4gVG8gZ2VuZXJhdGUgYSBsaW5lYXIgZml0LA0KIycgICBzZXQgYGZvcm11bGEgPSB5IH4geGAuDQojJyBAcGFyYW0gZ2FtLmFyZ3MgTGlzdCBvZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBwYXNzZWQgb24gdG8gdGhlDQojJyAgIEdBTSBjYWxsLg0KIycgQGV4YW1wbGVzDQojJyBsaWJyYXJ5KGdncGxvdDIpDQojJw0KIycgIyBzdGF0aWMgcGxvdHMsIG5lZWQgdG8gc2V0IGdyb3VwIGFlc3RoZXRpYyBtYW51YWxseQ0KIycgZ2dwbG90KG10Y2FycywgYWVzKGhwLCBtcGcpKSArDQojJyAgIGdlb21fcG9pbnQoKSArDQojJyAgIHN0YXRfc21vb3RoX2RyYXdzKGFlcyhncm91cCA9IHN0YXQoLmRyYXcpKSwgc2l6ZSA9IDAuNSkgKw0KIycgICB0aGVtZV9idygpDQojJw0KIycgIyBpZiB3ZSB3YW50IHRvIGdyb3VwIGJ5IG11bHRpcGxlIHZhcmlhYmxlcywgd2UgaGF2ZSB0byB1c2UgdGhlaXINCiMnICMgbWFwcGVkIG5hbWUgKGhlcmUsIGBjb2xvdXJgIGluc3RlYWQgb2YgYFNwZWNpZXNgKSBiZWNhdXNlIHdlJ3JlDQojJyAjIGNyZWF0aW5nIHRoZSBncm91cHMgYWZ0ZXIgYWZ0ZXIgaW5pdGlhbCBkYXRhIG1hcHBpbmcNCiMnIGdncGxvdChpcmlzLCBhZXMoU2VwYWwuTGVuZ3RoLCBTZXBhbC5XaWR0aCwgY29sb3VyID0gU3BlY2llcykpICsNCiMnICAgZ2VvbV9wb2ludCgpICsNCiMnICAgc3RhdF9zbW9vdGhfZHJhd3MoDQojJyAgICAgZm9ybXVsYSA9IHkgfiB4LA0KIycgICAgIGFlcyhncm91cCA9IGludGVyYWN0aW9uKHN0YXQoLmRyYXcpLCBjb2xvdXIpKSwNCiMnICAgICBzaXplID0gMC41DQojJyAgICkgKw0KIycgICB0aGVtZV9idygpDQojJw0KIycgXGRvbnRydW57DQojJw0KIycgIyBhbmltYXRlZCBwbG90cw0KIycgbGlicmFyeShnZ2FuaW1hdGUpDQojJw0KIycgZ2dwbG90KG10Y2FycywgYWVzKGhwLCBtcGcpKSArDQojJyAgIGdlb21fcG9pbnQoKSArDQojJyAgIHN0YXRfc21vb3RoX2RyYXdzKHNpemUgPSAwLjUpICsNCiMnICAgdHJhbnNpdGlvbl9zdGF0ZXMoc3RhdCguZHJhdyksIDEsIDIpDQojJw0KIycgZ2dwbG90KGlyaXMsIGFlcyhTZXBhbC5MZW5ndGgsIFNlcGFsLldpZHRoLCBjb2xvdXIgPSBTcGVjaWVzKSkgKw0KIycgICBnZW9tX3BvaW50KCkgKw0KIycgICBzdGF0X3Ntb290aF9kcmF3cyhmb3JtdWxhID0geSB+IHgsIHRpbWVzID0gMjAsIHNpemUgPSAwLjUpICsNCiMnICAgdHJhbnNpdGlvbl9zdGF0ZXMoc3RhdCguZHJhdyksIDEsIDIpDQojJyB9DQojJyBAZXhwb3J0DQpzdGF0X3Ntb290aF9kcmF3cyA8LSBmdW5jdGlvbihtYXBwaW5nID0gTlVMTCwgdGltZXMgPSAxMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBOVUxMLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbSA9ICJzbW9vdGgiLCBwb3NpdGlvbiA9ICJpZGVudGl0eSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtdWxhID0geSB+IHMoeCwgYnMgPSAiY3MiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSA4MCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxyYW5nZSA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FtLmFyZ3MgPSBsaXN0KG1ldGhvZCA9ICJSRU1MIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdy5sZWdlbmQgPSBOQSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQuYWVzID0gVFJVRSkgew0KICBsYXllcigNCiAgICBkYXRhID0gZGF0YSwNCiAgICBtYXBwaW5nID0gbWFwcGluZywNCiAgICBzdGF0ID0gU3RhdFNtb290aGRyYXdzLA0KICAgIGdlb20gPSBnZW9tLA0KICAgIHBvc2l0aW9uID0gcG9zaXRpb24sDQogICAgc2hvdy5sZWdlbmQgPSBzaG93LmxlZ2VuZCwNCiAgICBpbmhlcml0LmFlcyA9IGluaGVyaXQuYWVzLA0KICAgIHBhcmFtcyA9IGxpc3QoDQogICAgICB0aW1lcyA9IHRpbWVzLA0KICAgICAgZm9ybXVsYSA9IGZvcm11bGEsDQogICAgICBuID0gbiwNCiAgICAgIGZ1bGxyYW5nZSA9IGZ1bGxyYW5nZSwNCiAgICAgIG5hLnJtID0gbmEucm0sDQogICAgICBnYW0uYXJncyA9IGdhbS5hcmdzLA0KICAgICAgLi4uDQogICAgKQ0KICApDQp9DQoNCiMnIEByZG5hbWUgc3RhdF9zbW9vdGhfZHJhd3MNCiMnIEBmb3JtYXQgTlVMTA0KIycgQHVzYWdlIE5VTEwNCiMnIEBleHBvcnQNClN0YXRTbW9vdGhkcmF3cyA8LSBnZ3Byb3RvKCJTdGF0U21vb3RoZHJhd3MiLCBTdGF0LA0KICAjIFNldHRpbmcgdGhlIGdyb3VwIGFlc3RoZXRpYyBieSBkZWZhdWx0IGlzIGdvb2QgZm9yIHN0YXRpYyBwbG90cyBidXQNCiAgIyBiYWQgZm9yIGFuaW1hdGlvbnMuIFdlIGtlZXAgaXQgdW5zZXQgYnkgZGVmYXVsdCB0byBtYWtlIGFuaW1hdGlvbnMNCiAgIyBlYXNpZXIuDQogICNkZWZhdWx0X2FlcyA9IGFlcyhncm91cCA9IHN0YXQoLmRyYXcpKSwNCg0KICBjb21wdXRlX2dyb3VwID0gZnVuY3Rpb24oZGF0YSwgc2NhbGVzLCB0aW1lcyA9IDEwLCBmb3JtdWxhID0geSB+IHMoeCwgYnMgPSAiY3MiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlID0gRkFMU0UsIG4gPSA4MCwgZnVsbHJhbmdlID0gRkFMU0UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICB4c2VxID0gTlVMTCwgbGV2ZWwgPSAwLjk1LCBnYW0uYXJncyA9IGxpc3QobWV0aG9kID0gIlJFTUwiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gRkFMU0UpIHsNCiAgICBpZiAobGVuZ3RoKHVuaXF1ZShkYXRhJHgpKSA8IDIpIHsNCiAgICAgICMgTm90IGVub3VnaCBkYXRhIHRvIHBlcmZvcm0gZml0DQogICAgICByZXR1cm4obmV3X2RhdGFfZnJhbWUoKSkNCiAgICB9DQoNCiAgICBpZiAoaXMubnVsbChkYXRhJHdlaWdodCkpIGRhdGEkd2VpZ2h0IDwtIDENCg0KICAgIGlmIChpcy5udWxsKHhzZXEpKSB7DQogICAgICBpZiAoaXMuaW50ZWdlcihkYXRhJHgpKSB7DQogICAgICAgIGlmIChmdWxscmFuZ2UpIHsNCiAgICAgICAgICB4c2VxIDwtIHNjYWxlcyR4JGRpbWVuc2lvbigpDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgeHNlcSA8LSBzb3J0KHVuaXF1ZShkYXRhJHgpKQ0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICBpZiAoZnVsbHJhbmdlKSB7DQogICAgICAgICAgcmFuZ2UgPC0gc2NhbGVzJHgkZGltZW5zaW9uKCkNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICByYW5nZSA8LSByYW5nZShkYXRhJHgsIG5hLnJtID0gVFJVRSkNCiAgICAgICAgfQ0KICAgICAgICB4c2VxIDwtIHNlcShyYW5nZVsxXSwgcmFuZ2VbMl0sIGxlbmd0aC5vdXQgPSBuKQ0KICAgICAgfQ0KICAgIH0NCg0KDQogICAgI2Jhc2UuYXJncyA8LSBsaXN0KHF1b3RlKGZvcm11bGEpLCBkYXRhID0gcXVvdGUoZGF0YSksIHdlaWdodHMgPSBxdW90ZSh3ZWlnaHQpKQ0KICAgIGJhc2UuYXJncyA8LSBsaXN0KHF1b3RlKGZvcm11bGEpLCBkYXRhID0gcXVvdGUoZGF0YSkpDQogICAgbW9kZWwgPC0gZG8uY2FsbChtZ2N2OjpnYW0sIGMoYmFzZS5hcmdzLCBnYW0uYXJncykpDQoNCiAgICB1bmNvbmRpdGlvbmFsIDwtIEZBTFNFDQogICAgaWYgKGdhbS5hcmdzJG1ldGhvZCA9PSAiUkVNTCIpIHsNCiAgICAgIHVuY29uZGl0aW9uYWwgPC0gVFJVRQ0KICAgIH0NCg0KICAgIHNhbXBsZV9vdXRjb21lcyhtb2RlbCwgZGF0YS5mcmFtZSh4ID0geHNlcSksIHRpbWVzID0gdGltZXMsIHVuY29uZGl0aW9uYWwgPSB1bmNvbmRpdGlvbmFsKQ0KICB9LA0KDQogIHJlcXVpcmVkX2FlcyA9IGMoIngiLCAieSIpDQopDQpgYGANCg0KDQoNCg0KYGBge3IgY29uZmlkZW5jZS1iYW5kcywgZmlnLndpZHRoID0gOCwgZmlnLmFzcCA9IDEvNH0NCnAxIDwtIGdncGxvdChkZl9kZW5zZV9zY2F0dGVyX3NhbXBsZSwgYWVzKHgsIHkpKSArDQogIGdlb21fc21vb3RoKA0KICAgIGNvbG9yID0gcGFsZXR0ZVsxXSwNCiAgICBmaWxsID0gcGFsZXR0ZVtucGFsLTJdLA0KICAgIHNpemUgPSAwLjUsDQogICAgbGV2ZWwgPSAwLjk1DQogICkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtNSwgNSkpICsNCiAgbGFicyh0aXRsZSA9ICJDb25maWRlbmNlIEJhbmQiKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcDIgPC0gZ2dwbG90KGRmX2RlbnNlX3NjYXR0ZXJfc2FtcGxlLCBhZXMoeCwgeSkpICsNCiAgZ2VvbV9zbW9vdGgoY29sb3IgPSBOQSwgZmlsbCA9IHBhbGV0dGVbbnBhbC0xXSwgbGV2ZWwgPSAwLjk5KSArDQogIGdlb21fc21vb3RoKGNvbG9yID0gTkEsIGZpbGwgPSBwYWxldHRlW25wYWwtMl0sIGxldmVsID0gMC45NSkgKw0KICBnZW9tX3Ntb290aCgNCiAgICBjb2xvciA9IHBhbGV0dGVbMV0sDQogICAgZmlsbCA9IHBhbGV0dGVbbnBhbC0zXSwNCiAgICBzaXplID0gMC41LA0KICAgIGxldmVsID0gMC44DQogICkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtNSwgNSkpICsNCiAgbGFicyh0aXRsZSA9ICJHcmFkZWQgQ29uZmlkZW5jZSBCYW5kIikgKw0KICB0aGVtZV9wbG90X2ljb24ocGFsZXR0ZVtucGFsXSwgcGFsZXR0ZVsxXSkNCnAzIDwtIGdncGxvdChkZl9kZW5zZV9zY2F0dGVyX3NhbXBsZSwgYWVzKHgsIHkpKSArDQogIHN0YXRfc21vb3RoX2RyYXdzKA0KICAgIHRpbWVzID0gOCwNCiAgICBhZXMoZ3JvdXAgPSBzdGF0KC5kcmF3KSksDQogICAgY29sb3IgPSBwYWxldHRlWzFdLA0KICAgIHNpemUgPSAwLjE1DQogICkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtNSwgNSkpICsNCiAgbGFicyh0aXRsZSA9ICJGaXR0ZWQgRHJhd3MiKSArDQogIHRoZW1lX3Bsb3RfaWNvbihwYWxldHRlW25wYWxdLCBwYWxldHRlWzFdKQ0KcGxvdF9ncmlkKHAxLCBwMiwgcDMsIG5jb2wgPSAzLCBzY2FsZSA9IC45KQ0KYGBgDQoNCkZvciBzbW9vdGggbGluZSBncmFwaHMsIHRoZSBlcXVpdmFsZW50IG9mIGFuIGVycm9yIGJhciBpcyBhIGNvbmZpZGVuY2UgYmFuZC4gSXQgc2hvd3MgYSByYW5nZSBvZiB2YWx1ZXMgdGhlIGxpbmUgbWlnaHQgcGFzcyB0aHJvdWdoIGF0IGEgZ2l2ZW4gY29uZmlkZW5jZSBsZXZlbC4gQXMgaW4gdGhlIGNhc2Ugb2YgZXJyb3IgYmFycywgd2UgY2FuIGRyYXcgZ3JhZGVkIGNvbmZpZGVuY2UgYmFuZHMgdGhhdCBzaG93IG11bHRpcGxlIGNvbmZpZGVuY2UgbGV2ZWxzIGF0IG9uY2UuIFdlIGNhbiBhbHNvIHNob3cgaW5kaXZpZHVhbCBmaXR0ZWQgZHJhd3MgaW4gbGlldSBvZiBvciBpbiBhZGRpdGlvbiB0byB0aGUgY29uZmlkZW5jZSBiYW5kcy4NCg==