#!/bin/bash
export STANDALONE=yes
export ENVIRON_DEFAULT=yes
export HOST=$(uname -m | sed -e 's/i.86/i386/;s/arm.*/arm/;s/ppc64.*/ppc64/')
export PRETTY_PRINT_STACKS=no
export ARCH=arm64
export ARCH_NAME=aarch64
export PROCESSOR=cortex-a57
echo BUILD_HEAD=
trap 'rm -f $cleanup' EXIT
bin=`mktemp`
cleanup="$bin $cleanup"
base64 -d << 'BIN_EOF' | zcat > $bin || exit 2
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
3ZKMuzLmdNDT7zC+/JfEZu4l/xTPOFdzjOZVMyI6fm/KCTQI/zTjquHE5iuZj+3nuw3hl8o9pGLP
One24dOzuSdjjy73Dmcbojfb+MSwGTeW74rEPLJgWOqCHO9j8R8MfuWJHwz+rXw/VvdgzShshsQ3
B1fe8dShmV/70aHHe548VPXGw4eeuGvo0LEbXz20QMswXB/rP/Rdo//Q/SX7Dv307NcO6TK3ucBw
W+W4N+k1vdNEpVuT66x9bowFbn5n6fHEhfK8+z7B3B/GrnNEk7tCj5SmnBHEsy3KrH3rl0IOfJ74
8sw5/OeZAJhbjH0X6vEKPOvPHtjiEY6gR5y1e/hCM8defUl9YCnmfOEIbMF8NiY6lAfUiz51/Ha0
s3qyfsjX8eoDvpOLhur3r4Zvr+6ud2pBLVfb3XrSN9Ta8bsH+D17hh5/mDabnFtLwwHwwFz/UZTr
z961RXlJeaDWKkN0aA/8tXRvcf5+i2wfjfXKNRbh/8vRxOaah4RRqxWPKUfNPCgh95ucfk6jHu2C
fvXyHCeevfkg37UgQm0YJ3gP9tXBaCKxQ0QrDM9Li+W9ZdxLpjHvCu3Vm2P0ocxRuWcY/6NZxo6o
mWv9ugnbIXqdxo8sGPdUoi/vqJO5pjxbUzG2XyRj9XLfwDbgPYVxo23EzOGcuqauqWvqmrqmrqnr
o3Vd8qrpR35Yn9oPufxrP+Ty//ZDLv/WD7n8FR9y+YEPufxvf8jlb/mQyw99yOU/8SGX/8sPufxX
PuTyX/uQyz/yIZev/YeZ1zZ1TV1T19Q1dU1dU9fUNXVNXVPX1DV1TV1T19Q1dU1dU9fUNXVNXVPX
1DV1TV1T19Q1dU1dU9fUNXVNXVPX1DV1TV1T19Q1dU1dU9fUNXVNXVPX1DV1TV1T19Q1dU1dU9fU
NXVNXVPX1DV1TV1T19Q1dU1dU9fUNXVNXVPX1DV1TV1T19Q1dU1dU9f/f68XFiryW3NY/xeY//ek
wV+14K+mwfdb8GgaPGbB96fBndb/g2nwEut/LA0+1/ovqifDqy24Mw2+xILnpcFvtuAlafDlFtyd
Bl9pweemwddb8IvS4Pdb8Oo0+KMWXE+DP2HBl6TB/VXm/xvS+bTg/jT4nRZ8eTr/FvzONHjAgq9M
r5cFD6TBN1jw9WnwXgv+aHp9LfgTafAdFnxPuhws+ME0eL8Fd9ak6acFX5IG32PLLQ0eteA3p8EP
2nJLgwtLb+9Mg+dZ8JVpcLcFX58Gv8iCP5oG1y14fxr8Bgv+Qhr8Zrs/psGX2/0xDb7S7o9p8PV2
f0yD32/BD6bBH7Xgzk+ktZcFn5sG77f5vDyNT+t/NA1+p/V/fxp8pfX/YBo8YP13XpFWLwuelwbf
YMFL0uD3W3B3GrzXgs9Ngz9qwS9Kg++w4NVp8CcsuJ4G77fg6xenjWPLLX7T4K9a8PvT4ActeG8a
PGbBH02D591u8ZsG32DBn0iDP3GHxW86/aXm9wtp8Pu/aH7vSYM7/VY90uD+vzO/o2nwXovO/dek
tfs91v00+Av3mt/u69LG/3Xm99w0+AYLflEaPGbBV6bB3fOt9kqDvyosftLgcy38HWnw/Rb+C2nw
agv/1TS4MP+Kg+n1svDF30yGl1jgkjT4DRa+Ow3+QqbFbxrcmWF+62nwmy06S9Lgj1r4N7wPneVp
cL9F5850uN3v0+BPaOb3hjT4covO/Wnwg6r53ZteX0s+j6bBdwirnDR43u3W+JwG39Nijc9p8Fit
dT8NLq4wv6JpcL3O/N6fBt+gW89dn1bfL1nyX5o27rWb3/40uI23PA3ut/Tpgy5NnB5HE9Mm+kf6
pcj7p4fbn//JlWfTWdUgHCvPVs7KLZOwEnzeenc8kZeCdz4++wGbmwLT8TkJWG4KrAmfGGCFKbDl
Fl5JCqyDP44m8fi9AR8HYNUELJqe9wPomxs/H8VnNuCfI7xuunuTo0er/4Ha8Nuh/5puP/sSPn7g
PEFAq/ks4fv4/9h44s7/h7KrCWoq29YhRISgNt3t7av96L7H28BFL2ps0Wf7sK/JSQKRAJFE/O8Q
yEGigeQmkcYuXxUDBw4cUCUIKPeUAwcOGDBw4MCBgx44cNBV7Q/afbscOHDgoAcMfK+sPu9b++f8
pKF9pgpO9lrf2j9rr73W2vuwC3r2cXo99Qc/x0D/ntdZd9WtV6S8v/y4weWvJX49KfXNb8ZtG/+0
4FOf2sC/LPlB3ie/7h6QfaI6+oFZ9z+/GTdtdZwUddAYJ8C/Aj5ry7/Bd7Vqak2nXqF6WSX+2sC1
ymmPf8ad9T557H8aEFT4NcDvQSb/v78Zik32kF4RlrKqkB1mskFTlvTwhtqdNAylksn2X103VevX
K9uv1Ux71dm1M9X+62vmqvw3PO4rTx4Hlp76nz/z/ySa5+hp77WamerZtXNV19fc8OiV8cdPni49
e/7TISdDzC3pKwu9x9Ya9E/r7XMYk/oim5gE5hIwP9jkboF2sNow+u1y01Bk/NGPjyHaAPIDYC4C
4yNMgOu5XejZTw98yG7Jf10CrtVt6cw/7blGHXEHSHOPn5AM1VMP3Ux6gbXpN0jYgO4+akFHxDfW
1xhkpmoNoyRk9KqzXqb2Dv4gTAmYV+sM45VLYkY48xDXQwd+ZoFZWG8Yb9cwTP7qhqn17dPrrtXO
eGdr9Krw9bVz1cefP2tH20+XWD84RkLmqq+v1av4On6Juvo/Rp94exPuiK70oinqiwsTdA88sa4m
6sJXJ9y6UdEj5oQwDcC8AeYWx7z48PDVebd+w91nW3sdwFzcaPC1kOZrjNqmuLPuT4bRwGX79XXt
TIitf/A2gWf3J5OgtYDWaqPdAi0GWr2Ndhe0U6B12GgPQZsELWijvQDt+7I2lkFbAm3eRqN4mv4E
68FGqwctX0bzgXYRtH02WhC0m6ClbbRjoC1/IuxR0LKg1f1Z6EjQJkC7Bdq4oFHfp0Cr3mQYCxXM
lpV/YXUF1n92wfvLv+Gd/bXd8kuH/KLKL2H5hebkZ+r/ZoP7Zj+fE9LDMujDm+kfGVp2rZJdB3X3
acuu2fwpsKHXm8X8BTYsVuifhH8Rtt4G3pvNYj13baj7F9acuv6zIOuCS8w/MC2fivn0M/lOkqd+
XASv41PTrhzry94Pwt4G9ntg83xdxa56p2qC09XX1qozVbNr5jzXKwM30DzzuY+Ara43jGHeZ4w7
SutLrXVxn7wMfqxe9JvxO0w+zcnGtfDrki9ozaA9rHfaURtoL+qd9hED7XW9Zav0TIP2pt5cf3Xk
PdBeQLZ3CfzYZ5YM1TcL2inQolyG+bwQBiJ9Jc3HPeonMBfL9QdgQqiPxT/qJ3Ayzso23gr6MSKo
vI0g+dVu7lepb0o19PG5ZdtURytow5+LeRu0YnQU9Def0z/PdNn9+xkZjyh/yAPz/V8M454Nw9qM
e3mj/toj/Asf403gE4ph3LHXSfhvTDzr0wPgXgJ3hXCnLf/zAvRTWwwe+2NED29w/SLifzX9k9nf
8+hDfa2vwa+/muvEavu02Xa77Cvho8BPAL/ud/FiBkKkhqfSpLn/A77/C8PI2uxnErR7X4g5FbRb
oDU3OO3xLmjZBmHjgvYQtPsNTt/5ArSXZbLLVF+jk1btRX1ltHrQFhstf0r69IH2slG0EaTY1cHG
T7woeK6mlXnD4NU3Cb/JYl7U5F0Cb1+T8JWqU+4meNFVePfA628SazJAvHaTt0TjWUVuGbyJVXh1
mJupFXhkLy3g3V6hPamvKPiLTdY6I132g3YHtBi3iYNXq6fWqtfWTFchUQzPVs54TiI3W5KJHedP
V11boyMZefJYFSsn4iWoWhuhB59/1LvwN8Pw2Np/CNpN0GTOTuvnBWjzfyvLnfSKwLS7W9SOftP8
I0g8Am6C95NleGF7Jhe84Zmv1N1naTH/9POz5yLrqD1eThDxD/V5thpGm+iLgp8saD5JE30J0Hrq
tPzNJDDRrZYOSe4WaDHQYlzv1jrssuV/wFzcauYxVkyDL+wSvpDlf8Dd2Wr6KIYLEE53n7OFHG7/
67Ff3mYY1TYd+0DLbjPM/Q7VGQRteJuI4aLOdlryIUrAu9g0PhXjywN7Z5s1b9T3S6Dd3mbGB2t8
3ZaPI9wCcG+AC1Y4xqhXpi0ci3/AbWpBGxyn6J6MV6T+TJ/L4Lu2C78vfbAtDyfMJnxrBWbSiTks
fTnNTxswN4HZxDEs56Z+JgT9EW9/0X21aaoxqDe4j3vNPQjJXwQutlP4vwT32aSjKdBv73T6otug
vd5p2ROLf6Bt8iE2VTrmUq90T5oKofl5uYHOV0Q79jlHcOouy3fqPsB6AbZFjEl3R6z1D96ijUfj
jYi9BfGj4N9fhc/yP/B/2G3ZNo1hArRHu517Ir4mrDll4wfO02rJUhv3QKtuNe1uJbs5ZI9Pr4GP
tTrnFCrokrPSbk0Pj39oeLFVxEfhm4LknGAIKnmi6NJTVaiP+T/8+rVV+BphR/2gte0x+J7c3seM
tXYv1dF7BRFnVK63kNi7tQv9UV0LVD9wN502GZHdJp/9AzDZvYbxwjnGoxLTYRsjfShWeT6k92Ki
3qDcg7tNqJ+WcZg20bVB6ZNJrg1yE+8pR3oqfUjv6yxbpn5fBm3jPjPP4XUJG+2xbFS6Mtb+PcjM
voeMtMNlGu9XTr9W/RH2aV9ZOSitm/qPOM5uX0FRNdOlcBi0bjqATX9l+nasm0PmPi/9Eb23Mcyz
H3qOg3ZlBTy1PwXe4ldif2ZfEyiSz7oDvm8/4vCKe4GAsGgZj9TrlXOek97nzwI2YjvK2C3Zibzt
uo+RF+63j1mv7Ba2SPPkAz/xX6YNWjme7v7GUrlqqpzsOw2Z+5CZKh/PUaffvgKcr03k2sJ/HBZt
03wsgD8O/iVb2zLGRW1+jHS0BOwjYPfZdBSibRLSjmtrp6v9s2tmqs54WfJBvX32nERDdIYTkkUu
RYqVeyzdTf1s3UjvZZx+PyjWKc1nYiO9z0Esdlt+I0x+Y8Yzy85Zjtvnp2CbAeH/If/gH9b6YP4P
tOV/iP2Qi8ePe/jlO2jlzxL7CPTLBw3HmeQr0C4dtHIjyiXegjYBWoz382bF1Y1THwemP7r2YWCm
bvaDwNwGfb07gb4+MzsbcZRCjhKz69ifENcCv48fxMuCNxkwc2Dal5pr5DJ4CwErdyf5edB+CDj3
Sh02f3fE5svIzh4C36+a9mE7AwvUBtlTZXF7Gbj7qjg7iVrnpOs+gX9dgd4AuhL8Pb0N9NgK9ATo
E2V0spss6IugN5BNsrPdYTMvYfYP/t0QYiHxVeIXTD7paIH6F3ae29wH7WK74ThXfkTttzv92yvQ
SjYc2/+BNg7ahDkf3WZ7NI76P9N7NRGbe6zxtYK+qUPMccgaXxR0X4fpG0A/4bXH0yz4i+C/sOVv
fsoT2SJ2D9k3iNTneeD7D1njoNx2EbQEaPds6zrAFjT5iieP5QlxgLyeegNxGuv8nFce4FqAGDus
7SC2n7D+G26FdAUF3ek082i2DwjpXjM3JF20AvMrMFHbniZIa1uvCNPW5ojYuTxdYr5wzn0KzQpP
69jkcJmOOZH3XUG9r6IiLxVzcBO0li7DOGibA5rDu/iV6BI5Q4zTXWIdPAJvokvUI86CO8vyCcK9
3UTvEa0YZD8zDgkcrceGzfReUdilc8+gWW73iH37wOb71GZ6/2TI9wvWWXNQr4jNuGNPD1mRmXR/
BfiJHuf+iJ2NRHiYIMwiMPM9Zi4r3zl0S1fAxk/t9ph5GxvXsbKzcNL3W+B8MXG25+Ixv+5TLM2Y
OMNQzfzpFKtelGWe3gZs82HLz1L/YqA1HHb2L2DLMVn+A0z+sNM/XwYta6PRHM+DNnxYnK+xc7oQ
M0KKw3cFXuiW76vJpjp0T9KaiaD9bP41ZFy9Ym9v12+Y65fmrO4/4AeBoXdDtP+nOUOVI+Y7FZvP
JZs8CPzPvUJfAX4Gr9IhfFCvtsXk4GzNjPeEl2/0ZSjBomT6uIQ6bsed/moWtPm4Fa+o/wugzcZX
7z/Lf4G5FTdzfEeOcGQVvXjIeSXMvIPHa73qsFzzFK+agQkC4+JrgI0zQONU6U1DiF45BG9Uza/R
PXnHeQD5izRkq48gLnHZiYqrdVMfBKY3XFuvzqybhaZqjs55s8/C9qwgbHuxwQUIT/A5r14Teka2
eg/17usz9808F9M9vXKKgmIANMZXwF7qE+eDAhuyYWmdr/sMfq3PzCstm1J1T87SXci+0El1Qci9
OGrFdVpvUdu+JQ3+m6Nm/ifb/kbql8ZyGZjsMUO+awRGX9Mn1mxEPKVt3AH21THnOd8D0NYdF/Pu
4mc6P4N2+bj5/oqNx8/Pnira2YHSnFuDET7z2wJHBzH8c+4Q4kNYfBdttHyOdXvCcLwTPgha9oS1
52Pvf0G7e0KMV9CGQWs76Tyvugia76Tzfc0kaOky2i3QZk9a5+x05nkXtFugrXOzdTdZ4b9RPb82
RIaiSktR57zXawJ6lTvuNS3yx0dskI6yCnGnhV2vodro/Rn5xoa/YH9z2p6/65UxMSdhkVcRLgrc
3dPm+S9is14zKnAB8WT+D7ib3xjGkm2Ml0FLJ4V9CruZB+0FaIqZL6V4PtHJH2R794H5ud+KGbqn
05FTvQD/7Sr8ZtFQfUr0hfEHveIw4BcxPnN/0gLsg5Tlf3RPh1kXO/8Ffykl8j7Gj5n+ehg8z4CZ
azne9cRX8EvU3jxkYgPijDvI11Vc6JGdf4A/O2DGOe7rdE/3Sr6adPya+jcg8jYXn1vXFuTDoG10
nqmxPfR/2842moF7OWgYl4UsjakNtGNp86yB5WIqbZcCfB/qOWf3aHxO85DxaKavsHx4h+XDp4DZ
pDn3mKrQ1SFLV31SV+z8EzKXNHE2LXxQuCzmE+7X/ydu01857rKtn+zc5ri1ZyWbOgjcS+CqbT4m
wHwmJXeBOUjknDsoq8DOvyC/MGTajGUX0H9EDJBs6zZwD4fE+YTfygVIp9+D98OQ+R5MnlMct78r
ewVMyxnzzNPRjjwgId3XfYG8DbgFGy6sexLSlA6ZxsVrJ1sKQmbpjPOMPcTOp01dqfZzuBLw1cNm
LLWdR9JmQHO8J6Lx3aL6h8viPvbxcnw07gfAvATmru38PkDn9yod4Af0ykP09xzqDc8F2geEbNF1
xT/miHjl33vIeQswCoyEMTiOfedj6oCS68+ae1WHHeiV3zjGxM5/gF84a+6T4Sv4Ppnscgq8+2dN
fcp42SlVHxIDJ33cB3b5rHm+yPdD5lmQSi7KsQZJZhky4+ec56B+55mr9TbSJfKfRuTV55zvzIX/
qgjOuI95bZkd/1sb2/kPZDuyIqaJ+BGVcUGsOdLDFeCGs2aOYq25drM3fdKOMoV/JgvaoJYZ01ja
liqM7BzJDBZy2we00cHhHYPCTzUW9zem9yupYlErlJShVCaroQiq+K6UcoqoR4nFIkpmVCllRrQW
ZeB8STLSSmNaKZ4fHNSKxaHz2ewFr1e0n0pfeEc7Xpu//OP+HBlFfYPDqYGs5n2/fkffo9/vU2/k
Peptj6hju/crvUdjDJ87X9rCht6dAzKfzxVKEDuTGVTyBa2ojZZalOK5TD6fGT2jlLRiqbhjxw6G
95eUrJYqlpTStzllMH++iEb/eT5T0NIrSyTQWEEJEwjzfoF61vGd0txzvpRHh9F7ZhRFbTA3mi5u
9bpSY2eU0SJ8UK6UyrJv/DOaGtHo6W3cvttXbNy1Dz+7zSf0JgyKNX0yc3oHCShNTYpJ0Ma1QZo3
RuF91dJy+l2i2j3Z9I7G7fSwfwdqeIw3MDKSyTHDSp7HDNnLY9Cey6Xl+B9UZ/LmMzn8LXJQUSbl
F5K7fCNiZJHRsVQ2k1a00bFMITc6AtUrY6lChszMbp+Dyt+VXcp2pQkzd9J3WjlwQAlEuuOJ3mT8
BPGzmYGd+UJmtDTEl1ajqN+368vdrXv2/ue+r1IDg2ltqCae8Kud+13KwcYsnSEr/OHqDalHeuOR
vpDCAMpRf7Rzy5Ytpn7yg8p+5WRbo2/X3uz416eVbMFZzhdLqRL12LcvOw6pYl6hAnFZHeON279M
SwqCxmiuRKHDdWR0ODWaJsMe0wZLuQIZSHMjWQL/tAM3kJLcA41yxiw5bXxQy5cyuVFFGzzQ+MW4
Q9yU5zyvq4/Vs7+8GVco3psMRXeBAYvy7RtvKast7Jd8PgKQ2cTJGkJmL4YKZHkF7UymWNIKxf0c
cKS7s7vnaLfraDjCymps157k7i/5c28rPVuTXb38GY27wrGkP94VkdsMovuSKDI+8JFoNBmJx13x
PhW1uOi5l/Zb8eNx9oz4Awl0WLo1Wd4lyzE16Y9G2rtlOViGD5bh4zEnHv0LHeNN28p7W018qLe3
pxdbn96QvzNmVW2VedXxnnAinoiZfKvM+Uf9CbXDJm+VOT+AyqgXgd5O1riW3VVKFi+MyvjCyggG
Lnt5KOMsa4VCrmCWh8vkh8vkh8vkh53yPiaeFKqgMsUiqRkqQ9xRZuKCYsoL1Up5qWkpby9zeU6R
9/bkPT15L0/ew5P37uQ9O3mvTt6jk/fm5D05eS9O3oOT997kPTd5r03eY5P31uQ9NfmR99PkfTR5
/0zeN5P3y26WyZV/bpfxF1fB331HPfdX4T94h9y7PvL+mbxv9mt5fWIe5D0yeW9Mfnx7/7j9g6vw
5b0xeU9M3guT98DkvS95z+v2KvXcfUf799/Bb4ZXVJqU9kgingz44QWSMX97KBmPnAglu/zxzq0U
uVbk7m3tdPE4hlxxb+tOhNPtY7u3Z5BJYDFuwTM5kELMTWZzuXPn8822ShLHY6FkMNQXUUMtShMh
06lSakdaG8sMalxqq+jfu+tRe6LRkJqI9HTb6xrMZbP2mkzGaCHJ2ykqbXxgXf5jojNxJ47qQPhB
kHBgrQaBB3G/0uWPBRWqNX2AMrnMd5pyQPGNN44rmVLpAL4gALHoY4+H2ngelWviDyGHUtmitoo+
tw+OpGUCvnq+SZmSlSmiS6qCASR5n0qpwhmtlEyl0wXetfIeAZ+I0BiEgDaGzEZ83/61kh++UOSl
FqtWEox0J1aWEuPs6ulbqVp0AiVbTZHuPn806qzbxerv+8P6g5G46u8NropRoyF/7x/UED/era6k
Hdk+9Z/3g//1EKtPyAm9BcVTlhMR/hRyfXIcGB+rjz1Fv811KO9byo+8ZynvVU4cWHkdy3uU8t6k
vCcp70XKe5Dy3qO85yjvNTafHy1mzowiL8vmRs9sVUa0EaVRMVc5rX4WyJldZrO5wWQ+dUYzt4N/
YI9UE2WNhFdgatQIOHmuWbZIVmho9fqYxAoVfvEdy1/ZokMdysWLSvN5JNb5UiFZ2kq9AHk74/+e
9Xde7ddl9HeNS4jlxrTCUDb3LQ0LNNEV9skV0thHtTFcbqhcy9sU+ff++RR/kn7HRpiGmXIzxWQ+
9y28Xm4o+WUzGy3tNaRbdPG5yOWLypYDSpOQpLLgk+sjVimXp2GTzpIckxnNlDKo8Dst3bzVVdBK
ytdCbfSddBUOIl/r7U129yTCPUe6g+b8F0Z2ZnJ87vG9JZ/17ZIJ52hx1949e3wp2b//a+dqdts2
grB6zRP0uErglkpFR7ZbwzASA0HiNAYi1bWrBkUQELRIWoTFn/BHti4993H6OH2EvkX7zSxnSdFS
naK3gos40nJnZ3fnf5b2VLgexEsUfZVEqVuEyKBU6YLaxOQgKWOPs+W5r7TBVkXmI3F2r5D8ImvV
+aqsI+u+f3kxOZt8f6x8N1usFKdYkjGryF0x8tsku9lVb3gJXtEtwEGdk+t5TL4wx1OdRvdmAC7A
z71DvQ5NGzEtq/NnyCqvc0jSyPCT6JX7RZmCZNhI5GarXR9L9hv77VuQp10kY9jFV+rX87e/XFZ+
F7lw3+JRmmOrvcE6gJ6PlB67mlw4r86nl/+oP5MyuoJI8h0A5WC+l4Mgd2FURo0rBWvHG9CRib/4
WR7ZnAEj//N8Iyjc2cxRkBvhbZkWlSCmGQQQR1n4Mc2wvoXsH+BH9OJgf8AnCbziYN8pEgf7s8gB
fzj4yLFHJWD3xw/Xxh0H+XhBAOSqrDzlwTwVOgs/oqhkAd5Op5dF4UdpwfciifLCnFJ7NR5P1W1Y
zHH22A49qGJYrEA/upRQYN/sRstJHws4fkxzoF5ErNbOyMnw3ugL6HPtOeyIraf4OuilhW/6hT/o
1bdIVwkkF1ze0UyqDI1+UPKCBMVGQyVBoCxOM9jRArgN5yUqXyHhjTbAGrz4VM9fnCjprPWhla4H
g3KDLwUiGe1PjdxHKdO5D345SbwIY9/CV2O/ttNfI3cXfBuoT53EM/9RLe/9SgzxfeTMYNUoNFn4
D+B974bMVKT8WGI0VLfzcDYnJS+xvRsfWg+6EKJddRbA7mCE/kGgY4+YDEvTWvHFnrmPkHMjauNz
k/7MSKXubHfvO5vvmlg+8iKbRak1MzZvqB7fB34shKIhHQk+MF8DmXn1eBsPRZTabjbtEMYQ70ZR
EpMTsU+0CCNUDtxygQnr46TR7Rl8qRa62SZ8m+ABSplynH0m/G0WQjf8JMw+E38aOjlY5+TgupDh
38yL3PyG7qXJ6o/2R5vm13UgpO6D1HmQug5Sx8HUbajqNEhdBqnDIHUXpM6C1FXQ9v2oKV/2cr+O
v6r9HUo/82GxyFFR/gJTv0E+IQP1fMBA28bnZ68vjt0gGLHTg4WBqd87HNT3iZi3PHA0ds6rLC1p
JjLR/qrRVY0Oea9BvQ8dR8Ia1vtgh/ucwhUndwO/xwkHAx7zjbUPW4Wg/Qld5TFe/j4Yqtivnmv3
HSBG4O4u4aoGBCt39ZFMnNBcaJLwfARp1wrbzkI/R7rjxjD6HLjBstIQQ7ucF8o1e2O/KkJUQE7V
HJ+CVFl3enmq4x6+lrSr28kPO/lHPf7m4vTU0LVBU0PPipY1bcGpypkuEyRWTzly2Bo+GvpXpK/j
SMwyHfsEcQfPEv6II+1HMAeOBL4WsEZXQ96A5u8Tcmt+jpzVh5VEn4akw/J5zZ+Yl2SrXq/K+YtV
qjX0WSW0+Kj68wTa2CM/gCzNyHNeeMh0bdi4eSVXcXk3bD+V5xSnZZ7NYdaG59B2oyeIU/pbYlWR
X71nikZr+X1WfUrdE6lzsuPpq8cwTktaOuEXKTjfPLPpxQZwabhceylI29eQ4hAhn6socAgTewZB
SxbaA67D0f4ZCgoCFXnEeJ0KbyM6hX6VAZ1rMn33zpxDo9dnqM5t/MHyEwkEo23B2/QKxRycrP7C
WkZ0qWKfsBZ/o34+u/jp7AdnPMZ/P05Pp6fOZDqmu5MBSWtc6vyq3rhqOHwOmPscgL+QZJH2w2sP
aW3d5xXrI6HPM52lprfUk5H6MVIvJtWvISr+Sw/8g7RjSSNf7fefwcJlWkp9GWl/9NrtC34Nb7Xg
/twCd9SCu194Q8O9bcF9uQVO6sdIvRip69KGk/owUg9mG5zUf5F6L1LfpQ0n9V2knovUb/m9cS56
JHVapC6L1GGRuitCAKm3Yuqr1IShv6I19VX+6lrXuta1rnWta13rWte61rWuda1r/9v2337rq75N
+O3T+nNVfUo91nb91b8BQXH9YXhfAQA=
BIN_EOF
chmod +x $bin
RUNTIME_arch_run=`mktemp`
cleanup="$RUNTIME_arch_run $cleanup"
base64 -d << 'BIN_EOF' | zcat > $RUNTIME_arch_run || exit 2
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
AaJdQPN3KwAA
BIN_EOF
chmod +x $RUNTIME_arch_run
exec {stdout}>&1
RUNTIME_log_stdout () { cat >&$stdout; }
RUNTIME_log_stderr () { cat >&2; }
: "${RUNTIME_arch_run?}"
: ${MAX_SMP:=$(getconf _NPROCESSORS_ONLN)}
: ${TIMEOUT:=90s}

PASS() { echo -ne "\e[32mPASS\e[0m"; }
SKIP() { echo -ne "\e[33mSKIP\e[0m"; }
FAIL() { echo -ne "\e[31mFAIL\e[0m"; }

extract_summary()
{
    local cr=$'\r'
    tail -3 | grep '^SUMMARY: ' | sed 's/^SUMMARY: /(/;s/'"$cr"'\{0,1\}$/)/'
}

# We assume that QEMU is going to work if it tried to load the kernel
premature_failure()
{
    local log="$(eval $(get_cmdline _NO_FILE_4Uhere_) 2>&1)"

    echo "$log" | grep "_NO_FILE_4Uhere_" |
        grep -q -e "could not \(load\|open\) kernel" -e "error loading" &&
        return 1

    RUNTIME_log_stderr <<< "$log"

    echo "$log"
    return 0
}

get_cmdline()
{
    local kernel=$1
    echo "TESTNAME=$testname TIMEOUT=$timeout ACCEL=$accel $RUNTIME_arch_run $kernel -smp $smp $opts"
}

skip_nodefault()
{
    [ "$run_all_tests" = "yes" ] && return 1
    [ "$STANDALONE" != "yes" ] && return 0

    while true; do
        read -r -p "Test marked not to be run by default, are you sure (y/N)? " yn
        case $yn in
            "Y" | "y" | "Yes" | "yes")
                return 1
                ;;
            "" | "N" | "n" | "No" | "no" | "q" | "quit" | "exit")
                return 0
                ;;
        esac
    done
}

function print_result()
{
    local status="$1"
    local testname="$2"
    local summary="$3"
    local reason="$4"

    if [ -z "$reason" ]; then
        echo "`$status` $testname $summary"
    else
        echo "`$status` $testname ($reason)"
    fi
}

function find_word()
{
    grep -Fq " $1 " <<< " $2 "
}

function run()
{
    local testname="$1"
    local groups="$2"
    local smp="$3"
    local kernel="$4"
    local opts="$5"
    local arch="$6"
    local check="${CHECK:-$7}"
    local accel="$8"
    local timeout="${9:-$TIMEOUT}" # unittests.cfg overrides the default

    if [ -z "$testname" ]; then
        return
    fi

    if [ -n "$only_tests" ] && ! find_word "$testname" "$only_tests"; then
        return
    fi

    if [ -n "$only_group" ] && ! find_word "$only_group" "$groups"; then
        return
    fi

    if [ -z "$only_group" ] && find_word nodefault "$groups" &&
            skip_nodefault; then
        print_result "SKIP" $testname "" "test marked as manual run only"
        return;
    fi

    if [ -n "$arch" ] && [ "$arch" != "$ARCH" ]; then
        print_result "SKIP" $testname "" "$arch only"
        return 2
    fi

    if [ -n "$accel" ] && [ -n "$ACCEL" ] && [ "$accel" != "$ACCEL" ]; then
        print_result "SKIP" $testname "" "$accel only, but ACCEL=$ACCEL"
        return 2
    elif [ -n "$ACCEL" ]; then
        accel="$ACCEL"
    fi

    # check a file for a particular value before running a test
    # the check line can contain multiple files to check separated by a space
    # but each check parameter needs to be of the form <path>=<value>
    for check_param in "${check[@]}"; do
        path=${check_param%%=*}
        value=${check_param#*=}
        if [ -f "$path" ] && [ "$(cat $path)" != "$value" ]; then
            print_result "SKIP" $testname "" "$path not equal to $value"
            return 2
        fi
    done

    last_line=$(premature_failure > >(tail -1)) && {
        print_result "SKIP" $testname "" "$last_line"
        return 77
    }

    cmdline=$(get_cmdline $kernel)
    if grep -qw "migration" <<<$groups ; then
        cmdline="MIGRATION=yes $cmdline"
    fi
    if [ "$verbose" = "yes" ]; then
        echo $cmdline
    fi

    # extra_params in the config file may contain backticks that need to be
    # expanded, so use eval to start qemu.  Use "> >(foo)" instead of a pipe to
    # preserve the exit status.
    summary=$(eval $cmdline 2> >(RUNTIME_log_stderr $testname) \
                             > >(tee >(RUNTIME_log_stdout $testname $kernel) | extract_summary))
    ret=$?
    [ "$STANDALONE" != "yes" ] && echo > >(RUNTIME_log_stdout $testname $kernel)

    if [ $ret -eq 0 ]; then
        print_result "PASS" $testname "$summary"
    elif [ $ret -eq 77 ]; then
        print_result "SKIP" $testname "$summary"
    elif [ $ret -eq 124 ]; then
        print_result "FAIL" $testname "" "timeout; duration=$timeout"
    elif [ $ret -gt 127 ]; then
        print_result "FAIL" $testname "" "terminated on SIG$(kill -l $(($ret - 128)))"
    else
        print_result "FAIL" $testname "$summary"
    fi

    return $ret
}

#
# Probe for MAX_SMP, in case it's less than the number of host cpus.
#
# This probing currently only works for ARM, as x86 bails on another
# error first. Also, this probing isn't necessary for any ARM hosts
# running kernels later than v4.3, i.e. those including ef748917b52
# "arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS'". So, at some
# point when maintaining the while loop gets too tiresome, we can
# just remove it...
while $RUNTIME_arch_run _NO_FILE_4Uhere_ -smp $MAX_SMP \
		|& grep -qi 'exceeds max CPUs'; do
	MAX_SMP=$((MAX_SMP >> 1))
done
run micro-bench nodefault\,micro-bench 2 $bin '' arm64 '' kvm ''
