#!/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
H4sICHzo6GQAA3NlbGZ0ZXN0LmZsYXQA7L0NeFTVtTe+zzmTyeQDCEy+QDQzSZAwWsVLAkHRnEwC
RECFEL+qlkmClTbtW1JQEagMIbXU2PdyIIqiTQJiLzPtbbk19DWt1QGtpcXeCwkgenvtJEFAohYE
YYaPzPtb++wzczKi7b3/e/++Ps+c54GZWXvtvddee+31sffaJxbG1jUzpn0fny/g8zF8vhHM1l5l
1oE+xmr+ianhbTY1bJMsLWsXjQ+94GFaOBLJKWTebos798BfypQDhyV2oj1QplmsHd2VGbkHhjPW
emIUa71bYq0qYzueHM5aOxjbzvar4c1o3+m4XtuC3+6AVfM4Wet44HokllkJGNFiCejtBpQFB0/N
f8X3yQrJt4OVHggqTHsR9aWXF69f4p6kBZUsfzFTu36B+nkssyEgsZpXr1c4Xq0saQx4DOV5Way1
D7i9SqbrkxXlPi9je0/N37WNsSztjjSWSfi9it1v4NuB/xHGmOdQDgyOyAulZLPWUoyFfh9WmF91
lx5glkfX52Wwk5vR5wvEO3WS9gKTNQl8URjLLAsqJxnK1iyqDeUvuj/kdDBtFZMH1EikhjFvNY1t
dbMaDj7i7V6zUg0z9srHW/DpZOzx1c0sTDiEv3MwUrPGq4a34B/9LsfvDtTLY9JAMKd9DLVDdB0B
XUTroUhk407CJz5nMG2nl4XVwNSpg8nlIcL9J8CPglbCPaJIrt4A+gReb4CF/4C6b0xjo9hYNuov
H0iNFpu6PJjcPibYbP3M+sfQL7XRv1C08xIL96OtX1FbmWxU3lj23UDu3OXSIxgr6JVWs3Bwbaw9
Y37zh4G/wN2Zy2oc7hsO0DzTHG8GP1vBC8Ykv+cN1MUcgsfVD8qyJgPH7UjW2tNZay/m1wG+SKgL
XBf/bZO6aG4dK8EDmWU4wIv8dMlXmCn7rhyr+IoKLT7X1Um+q4utvmumJfsmVtp8/zAnxVdck+qb
fG+ar3Rhuu/6bw3zTVs63HfTMhZ2WJiPZUw7IIMmgw4v+vY0zZi6GjLl9GRpmZK3+p5UyE+6GA/T
x2MeR8dj+jg2y95qPoZAsva/gF+HMfUqctw45P+RcdSOYPuNcRAdt9I4HhPj8GZpLozht2IMJMdE
J43X7bVoDGN0o2wHcEpHslaspxPMMSOcaVHD+yXWSe0ejrR3k1wqGWoXg85YLVtanFhfq9iqj92s
5hzh5k9s2pQZiew4jTGCDn8P2pLY9mrIdgP0RQ2tU9aRpc1GP+9hPTpZB9HrrxhG8820fLR3muSP
1iTa+9DOWpceZOF/FHT3Wj/Ne0OGnBaD9zZthOC9D78n9E7VJkhq+P+veXBIZQeNeSCaPkjDPDxu
yFO2tjuFtf4EY6f1QLJFa6IMv+n7v+ITfFrHFs6AvlDX03pi0MEqdPA/D0Y2Qk9vBA93cN27dGY4
hQk9/NxM6A/oBug5xsoO9mayzFWYqwjpvB/YDrRPUQ6Ue9hdcnLpgXKb58VyR+4BCb+lLbkHmEPX
zVJG6QEne/SXTrYU/9RfShkxnc1QxkKr1jMB430+MYN0/3bnuhlhrvufmxGusLB9jBU87ng0DTyW
W0inPQ/92I46RlvB5J/7+kZIvsM5su9InuI7Nt7iO35tku+DKVbfR2XJvhMzbb6Pb0vxnb4z1Xdm
QZov9EC679x3hvkuPDzcN7iChXvXWLTeVSzsVEsPyPjXm5aBafZ2k/zI1aUH/OB3b9pcn6zmHnDi
3+AKNXzh4VvRxi1oaw7anI22Z6GPm9FXFfqcib5ngIbpoKUSNFWANjdoLPcFk7u3BZX2/xGaHSaa
v/cloVk10Tz3S0Kzx0RzwZeEZq+J5jOpXw6aO0w0/+FLQnPARPNzXxKagyaav/P/IM1SOeiM189S
jGZ3HM29q2CTy//fpd1hot3+JaNdNdF+OOXLRbvHRPuOLxntXhPtj33JaO8w0X7nl4z2gIn2oi8Z
7UET7WHb/xzt2Q9mf8LosaRXRvBB8TrFWxR3DaaxsJ2pU1fJrHHhmFnLKWbbcIVaavzeTL68zKZ6
yf8PXK79UGGtG/CbYrjBNDVMezDG/gXFkFZ2vfYDxD2vOZgmqTPDSYjZXi9a09VnmxFemG5pITwH
+svzskZL7s3LN1NsPVYtNX53oL+AzIqbmlmI8EBPyWjGMtUTeaWE55BYMeH2I5YjfLeFaU7UGcf3
WtjU9xH/eGxMo3KC9WGMBO8HfDpjxX02azgA2kDrHnahYkOgSOki+g18ao/w3wI+8WkDxrREvl6j
/Y0nMS7iW71rTRfxriN1Rrgun2nqsoJQF/hCPGnH52bAZbTjcVV0ORETbU61hpmFjfS4lC7auzJ4
hvjwxKkVr/pOoS2HZ0b4MGI9xIidxEe7mhw+tWLntp8SHfjU91l+6/vkHsmXFXC2nKG5s7OwDB41
YVzE152Yt95IpCSPZQ3kJ7MaBIYnWkF766507VU5e8AOP4IprMZtZcXe5ZNCr8psQAGd2zAHS4jH
tPcG2A+HsRoJ7VId4l9QURA3z1peD9zewUjJAvBniZVphPs+tWfRccsvRmrqFFZcvmzMqAUrpUan
RZrnHMtGOXLvXj4BeAra5POB+etVFNdCMf/lmNcywArF/JcVscYg6C97gjUyG6upAV+o7hqME3zU
aMx9FyIln9xT7hu0kwy+xvkjgQ4az2HQS3JXdpo19iW3jyljrLEyV10uYXyXY5yrqb+4sg6Z1eSD
burbDbq9+O0G7QsWAm8j8DAed0b7mPzBSLEzwPi4CJfaemFi05j49jaDF26W5KI2doHuAoyBeFp7
LsLH8G+YV/pN+IFR6jlfOFJDc7IFcFWM8ff4DllsXJg7a7kjFKlR0Jfxm9bl82cjJa8Cpxzyrs+T
5H8Gv405ewrfGV/vv/VRvdPgOckPydsnwCX5Sce8bJHVqflYc55UteuwkuVvRv8M68wjq2HiZ71M
csamUjlon+dJZV11w9UurJWRdcNZVxNorYNctCrsU3NyB8ZPdL0ts9ZWmc2GLmn80YVIDW9L9CFZ
aK+XhbPj+qhHH61W1gi5G1mPflYPRjitfeciJUcwNto7fk1v96rpok3Z4q2Obzee9lq93eucaLdW
tBtPt75vfHloQJFddRiDM4l1HsE4eiuY9jh04QuAHcXvWTvztPrvqRsIf7fttU1/YcpAyjPKs0cU
m7/qG98oPZbJSt2YqwiTBhzg9auYB8/oucsD+H6cSXsWJLGTsy7Oapl1sXzDtyGf1Ee/he2j9r4B
vr7HlD27aS2y1IE/oK1Fp/NKZ/P2oNMUi+uHkKvB5Aq+D0u0jceYFau3ur9CLyc8rwlnQQBrCv30
K8l+6whvdRJwv17ISt+zsKlHITP/Dr4qNrWrHusYay58P9pLYixch3aS0ssnvAAe0nwkpUsTxkk6
ThLa+TrwrMC734SXZMMcAldJZ13tGPePIMPtNtZYgbXZ3LFmTLONzSP5VdJVjvdJdL/+ctqX9mNt
nKT105DEatJonxafNMa14P/7R+VfvgccG/jve+aZj6ne6yv/8OxxJcnffKGi5wc2S8vvLcl7jigW
v+UbD5RuBe+skciOFqzFrUne6q2gc3oKdBjtwWOtI2DZU4a5mHDx5pYJmItbxFwcRntrTywo/T3m
YDfa+MGFvNJ/YpY9EZYyQPOA+ZxaZOIv6uy5CrQexFiI1nHgiwU8Poz5INzLTbin5nf5IIPzaE2e
rZd9gwUsHJzEwjXoq3fVsAkP56pdD3lU337MxSnYpyzIdrhB8QUrJK0JvgPt5T4C+f+kQpra/hRr
fAQ6WYVcBRv0tRWcpK+BXrSZib45HP0FG1hX8Dtq11KrOvWUMtpPtin4HdZVcxG2A3wMN1T4qG4e
1QEerY2z9W7QR+vj93x9OBV16qRk0jt2fybp2nVS4/V0JpLCaqrSoLs7WaPDymrWWnQ97rHjs5U1
SvJQ+shO9oE+6RL0FSerUw3aloYiJe/Q/vH5SPF/qf6ZSMkfUb/sMGtcCxrLsA52w86Rnu4F/yal
wY8AfhB8Jto357OaML7XygQb7c/H2MIYa1T3F6KddFpHo/21sDtkG+czJY3Kl8ijZxs4EyAj9sCk
lvmYJ6ofvJN1mXlHfFt9JlLTOZIV/5+c0JTATXSOle3PPvG99X0V5VODaySt/04VfoQavh6yQ2PK
PBEp2Uhj2Ss1wleqKZJpPFKjNxWfb8LuYp1MGfb5ba0Y1Nvq/DBS0kxtBaXGDsxX2TGpcadCY7f7
izHmA1T2hNRYezpSszENbV4Ta5P4Hfg4wucBbXbFz4Xgf3Q+jLn4EbW5Hf2cjNRAD4+kvn5DsP2g
HbD9qaz4zjj6+0G/W/JW2xmd9Y32y6DNPBd/OBWpwRpxvYB2qL1z9dJU2nOvSWHFZ9M+3ZYse6vf
q9d5cljwpFnwJPO9SAntzzvQRxDtvCWFpuxE/SDqTxb1yVeketQO7HiY2llq1O+PlFxL6z+fjST7
/qfhrGaXqH9WkVx3oI2/kv1COdZY47eH6eW9vJzx8lZT+TDI2a5rhpbD/udMSQFd18Togj7oIjpo
rmmefy7oaX03UpIG/P9jjceHDQdPk8HTtyyfLqOx9Qu5IV7ReG8QbZ7+90jJmcEYjX9K+vQYNpjG
8JVLlLeZyn9k+XS5auLht5N0Hph5+JaZx5ZPl+82lQ9TPl3eST7Ya1NaqL9Fpu/LTN/zTN8rTd+v
Jt+Kf5dcK03f203ff2H6rsulzOW2Wti5iGLZ977FO+p4haLBEdeOjfCOGrhW8R2HHXi/IGXC8Wsr
fIMKC1Ncd/xaCfGd7AvmeG/svcx7Y1+e98b+Au+Nh8d7b3zvKu+NR6713nh0EmAbhvlg+7X3nh3u
O4p48wHM16CihtGXZvg1EcWx7zBsG/mJhCudg5y/xrRTK5jv+5Dl9xATft+CzxH4tOETfmJzuho+
nMPC89Ee/EcX4Z9IoZjH7jq1QvWhzVj7awr20ZlycE2BNrAmXztu9Y56H2ODT8pt1wDGd3x8yoS+
eyzhPvhJx8ZXYGwSj19pjMfQFtHSe6clTLT1L7CEiU6W4r1RGua9UR7pvVHJ8t5oGe29Mely741W
p/fG5HHeG48pBZoli/msl0u+CQad6O8NM52gyaCTeCBfWNXjDjDttWToA9jXJth4ufC1TW6mric4
Yqupz0t6fNWnKLMXWNSPd8I3gO+iQefP+z7i0nj81+ALt8Ofai6V9rXDv6AYh/okv5rqnMb8I5ZZ
h/hvXb3nCs0ZvIKfxbvHw8ehs0BHngbZ2Qh92fqIxFoHR4wJkS+xHzD65DgdedpPuC8xg/sS5OfT
fDL4DgGKkyjWQ3/lizylOxET6jjebvqk2IJyIIy4sQlxRR9w6AyTfhcsqitdsyi/lGLh50VdgvNy
jI/KlUuUb5FYp0I5JdAnC+AHLwTfyNdMWlRfWoh/ZCNfZZYGB2xiB7PMFjTxPAqK1wh2HryRjTYs
7F8KyJdHGxb0Sf1Sn+1M4W14mcLbsJBviO8Xebyjt0f0kG2gPA7iwxaMlca9gEkNq2mPwcSPIvKz
wQ/4KsXU9xGsU+rHgf4Qj5YE4QNuUVjn88CrgC+WLPh0FDgdix4oDUQoJk4eWAQ7vIXJe94AfCZL
bqF6hxWbC75DN3zjzL8weYDG8jzaLTSNReX+fNKAB3LyPObiY30c3cY4+kEbjcXC5BbMWWctZHQV
swzsFOPoYzrficeWRQWcz8R/Y5w0tjoxN4qYG8hIzVbgO8S8QKY4HeY5gd4coPPdColid2839UP0
fFY/kCFeno9yWS/ftwpzSHMVD+tFzHVK6EEam4yxIc7IXJiplmLNNBB9FMPS2PMoZ0bPueE8MeTc
2DOi/AxqR43bR8ojHxR6P+9nrFHF3JSjjhVjkxR9fZCM0d6D15LU0gv5IH8CMUtLAegpXKluWAW/
IgXt/AX2g1m871Df5fD1aN4In9qiHCOCXSn2jsrhQxt0Yn1vJ96PT58RDpKPIOv8oz0kmgcnxfmI
u/NJLk+zRuLjleB5gOdq6PTVQ/5JbhxCbixCblaJdRR8Qg15L0Z2UH8OwEUM4r+44hUfxUcXFaa9
Dp6+jz4XplG8hnkEX2nuNmNO4EeUlFdCDrexRucHK9fT3EfqnXtoX5L01laMjfbG3lOsfvKHiC7I
xVTE1JlbuRzremAr2nke8lGH+SU4teeBzS6U1KlUpwM83yr0DeEXfqOu9HXUoXyoKuC5EecSbRMk
uYXGTTLSZ+X7PTWF36gvzRdy2s5kPu5XFZI9SwPlI11coe+nHcb6JZ0R5HXqSh2CV3mCV72Ih6H3
XFSXZMxctwzj8EoMaz3FfwG2o0xiPDeLcA0c+k78MX4T7kngEhx68STlWRllm+sRh5MOBv6LfK/H
W90nfMoBfJLO+jexP0O6Pwj7c4eNcjlov+Y3vlVj2XdPI3al2PATsddXDj7RWqGYuA5+7ephrPgp
2IKDskPj+5R118K/sfvfUCi3JttPdqLOSrk7Do3v1VhZ12jQ68mHzUdfTbIa7ruMhXtfYzwPr8mK
33ks3JSKT9jopuH4HM/Cpy/yHJR1TC3STiWzVs+och4T8j3NUZRPY/freye/2/ZbhWWaaXketJCd
c6oOjWjh7Zjo+eSiTs9/JP/99Ow10fNvRE+qiZ7UofQ8A3p22lixmaZHDZo6Lk3TXkHTS/8Jmn5q
osmfzP0Nf2xP6XfbHo7jy30GDd5L0/ALQcPG/wQNj5to+CHxZbiJL8OH8mU+6OGyk+/QGoUepr1o
M43Fij6OWtDH98pAF+1FV6Iux5//Mx/tg5OMPol6O3i9LP+vQDffzwDNQfiovfBR++Cj9sNHPQwf
9b0p8FdvgL9ahrKWDF//hpG+954d5TvazsI5vM9s/58ucv/Nn3dBaST90A//tU9J0nrhSwbhS/al
WX25Dtrfz/T338DC/YqE2GHEBEmxzz6SN8MXcE9qOZwz03ckz+I7nJPke+F8ZGMms6e1DyqN2xDn
9uya1LIR4z8r5/Ox9io5/kHiuYXtkJTM2QF3cUsfYDkXqV4mr7eW9i4wPgtojO6JXEb83M/XvOHT
kY6pDzg0p8OpJTm83bsswq/zOLWpaO9x+HQKfLcYfuYQ/C1WbzX5iIdBV9RPdOTz8r4k0VYwX7sS
bT2Mtk4Mfk5bwO8V89ur+3zrVPiOGj/f0M8TIAcnDvK5y+Z65lcyaw3kq1NhM4sPYC6hlNa1cj7x
/Ft/J/q1w/9lNviasE8EIx7+HHAZMMrDpXI39DvZCmrXvL/aKbNMyu0Mm+Kg40mIfRAHvS/ioPfH
K773ab8VvKR4gXTt8f9iTNQ3YpiP4i6FYvac4b7D8KGP5I3w/SQuNuJ0WC5Fh0yx0v9nOig2o76J
DiM++/6l4rMKxIVWERdW/PfEhb0tw3ySbr+r+zfoPCjgdIzwHf0BC9cbdFTE6Dg1/+dRfXCanynY
+XlhEP30op8+9NOPfg6jn/fQzxH0c3QK9TUca3oE1nSG7+g/snC+zPNLIbMFWr0VegkyBV3SynNd
ki2+4BpF68d4+yhGvIpyYJjWn5Y2gc7T+kZU+vpGyPg3Hf8U37wLMR0316rrJwfa188iu/Vzsjg9
Jhv9s0KNdNldaKMWNmy1zEpqoSN76RM2pFxhJUbbtxEOcMm2QIYb4L/UUB1qj/YTTsHWU7t6XKmf
z+lrvFBTqS7arb0YKdbHXajdQDC0JRkwdZw22TSWSXH9bb4A3w599UB3HJOG9vPfNS8vo10P5f16
x2kXk/R5OZ/0X5uXAehX3hbGcjxJn5dfo/0fQ8/thl4wzqFOKZKrBv6L4dfwOh3jNNI7H6ONVplV
09kz+U29b9F5WuY34a/XANYwDPp3qZXNk+Cb01nSJPh2D/EzTnvLwb5xlEueSeeSm5fXhkjnvIv2
SBetkjN5/EA6iPojPcR9GeiiA+cjOZthXzkdgXHaPtQhH+0wdFM/z8fPCvG9RtoLrKDxs/C/8rh7
dshYJ9C9e+s+mNPlhv9YCLyFH6R3QRcXPwp/uA8+5xWM9IbsWgU41bkI+eT9sSs18s870Sf1QTgX
xRzr5yBZodWy3u9Riv2hg2gfmuQvCP+yHzLoRNzrN9Fj8JnkohZ9EJ8d3iu1B/m4WXhH03htg+Lt
Jr6tHj7Xd9BdpDUtV8MbQMPqRwUf1PHaP+J300OIWaCnNyve6hb8XmVFLIc4pGn5khD46qKy7wM+
SWKTwfd9VE5n8fH6fuV5OqvL9hPOI8A/Y/gb8HPrIQug1dUclQnJT74DnXOcAz/Or7D47lk5Zn62
p/TAqrdY47YUVsPzaK2Bbska/Jg5/n1TDniSx6TjtC+zhNZFfon2yFeXhg7DNrXfxLi971NG87sj
IeUyFx9jcLx2B2ix0X7yD7zVKmOpeWpG41nw9K/63JcQ7hKez5/povq6rE7QqlBv4fJloaUke3VX
av3A61PGuMgO6vPq0sqAE4Ec1+G3OzCe72u6Wesmfb25tCnGemFXacX4Trxcj3m8CD3gQZ/Ut7xs
WagJcXuvQXOgSJsAXDqjGzIWT5FWAPgBDjdgE7QrANsLGPHn19yfkPj9kungZy94q6xc3tO0Ug3X
s6SW+irY65cXr59uUbvcy+pD4zCnWyC/dMcjiDjkBGwgk/Mo9uZ4hJMfiezow3omO9JL52z4bMEY
CtAm9WNZ+XBPPXC/ziwt96Pd16rU8HS0+3y0XQntKrxd8Fsj3GamtKwBHvyjHRZhsx9Cm/r+G3Mx
0K5AFgqwpvL2s8bdmHOsze5+yIPTEdikkEzwNaIcLxf7bjS/bszvAswvxWjmPQ5qt+wC5ZMgFn/6
tuW7UYeBL0SLpDpbnOBL3TKnvtansUYaP+VLEA8Yxkc571IVC+v7anS/gq1zd2RoTnWUJltkn2yx
+GLrOS/0Hj9TZK4j4D/xifp5ALxJBl+o/bVou35OYUu9DWUS20F3FRTg9ClWyFcSdL3F1Q68Yya8
NYKfBi9JB9HZb5Hgm0H3WkG3OsfRgvgvHLPzr/jkUc3dpzGX5HOTn0D2pA7y08FKD1SRbahmExSM
jcZYj/G5Mb76VMVXn5rki88DIv1Tg37ozJLapXV9RuQckO3g7UMXzRLtT0yK3QXxyqyLdO2Sj1au
p/sgqxFzeK2M6yF7ee6ByWrugX4lz6/gk3KbLnVuTzzj98DAV6jDUYZepP2YaL6Nd06XCn1N+LWD
C9ZS3gz1W/soW+vF91dvoHhI18WFVnEPaDBCuqfaAxrN5UabBON5UmgbnyWrBturDBy7aKMW+hG2
rMuAM5GPBd77Nyd7qynPiOzivnORjaCvk9ql/csKbstgL+Ws2fBbwuY8IsjyqAtY37Uy8NEW1clk
UouRs7Rj1ySNxtkh050Yu3+JW9VGg57j+DcynbWSfSS9bW7TyDeC77+3FfV5nAD/YJLKRn7CfQ49
VvgpZGw14lDYr/VuR88mgk9Ss/bMZ/bHN6SycFeEdJvdf6l5MuIPascDWa+H3iKbVe8tw/op0+RU
8JrfS8rTBsKRjdPgo+4gW2lh+xYwdpzyNvoi7d3FWIN8HWJuWgfn9kQq1AF2YW5PL4/XMv1kr0n+
6F5TpprZQvwhvsxKY60brVz2wFfW2bF8RrhP8GdPks4X2qeMt2d8rWcE3lFoLxN09CaTfyDPdlpW
jyG/IToOhz6OvlT9ng/R91PxSTZsW9QO/tZnjMNYfzSOsyvg14P+NtB/luYUNNa+sni9nsMj8TEU
YzzZTNpDc0zzuwu+kDHHm8QYDN8niHj27Aq3zxiDef3Dn9y7hOYZMvMg5ln3K7P8k/T7R9v1vYqJ
Gps7g99b1Pdns/xLU2OyeJM41+BjZ4yPvWl4bA6XYw73wBesPK/rJSFf61qbJhr5dds7qqn9zAGs
4Zre55kWhM+5kHKwFbeP9qMDFlazMlXcaYNd/zfQR7QbuHejLJiDeSKdtdwa7k2jevIA9w0wviX5
jMcEFyFLRl+OJMZ97c5qa3gY2tPHo/OI9GUQc+NgrIV0SjBN9o0lmUG75ZS/g/6OY9x3Cpqc5yM1
UR54dR7kZ8R4MBU8oH0ahWx+spvPu5PfWZX19pNln8XU/ky0+/tL8HXXKH0f0dBrTsxLvoXfGe1U
LKt83F4zZQ/ZA2OeYTNbyi26jgCtJ0+J/E/K4WOUc8Tsx1cr/M7edppnj4XuAapol3Ui1g9nltI+
p30A62VPq6y0tMrS48yxYRP5PSoro/3nzrqbmHZKse+BvW0hHVAnsz3E27rqsiF2wtgjj+1vSBrW
kCanxXj1USiysQy8eulcbH+jXpU5Xr4J7zDwSoD3czNeUMfrM+G9A7yrgLf1nC5/tO7pnsKvo+sQ
dnDlzmeJJ7ugj+wrpWf1ewx2/79ALmhNeLlPb+drdFOYdNvQPNho/0zh/e9KivX/a/Sfhv6bz+nx
EPnxjs7Y/V9+V7J5Rtj8m3wGgg3QfUjy+3Pax8Tu3b5Mut5Fdy/FPs5esrGBx2aEaZ+HfPT+U/DX
vAqPrzpGUFzGOi3paheVGXiP3Tu35/vTqnp+sDJ3PuG/cW/u/MMei+t3apLLHVC0F5nFpaEug/6R
0smmeqtfhA0rQL181CtEvXrUWe2RXHWq7ILcumCjumI683V9v7xM/RTM4Pspno8su+Qkb7duAyV+
N7ccPH4QvofZNjVjnPDXXHqcQz6L7PeCR5RTSuPpfxFjZhaN5rEedHcksc76K9UJyROZ1nett8vD
UtJWP8ouw5pOy7O5B4qw/hWZFS/Kp1w3L9Z6UlpwmeclK8ZnwfhkjI94onqY63XV4sK8uNgj4156
gZ/DJDWshY2oZVLawjqmXSlJaT7KTbqr9iXaMy1j1gYF7choJ0nwqQPtEJ8Qc7i8leylzYP6fXJd
jnS9E7xW7TL/JhsfEnK6ht9976IYz+XBuEXc5DoDPlBcQPuuv8hgrSQbARaa0menvVFJWxrRz8Tp
fJj2E/hcXBbL6SLeE8+DBRLfvw0tqJrQC5ntK6D6WS663xpakDKhA+10KKEpwdlqV56F8RykPBtk
GZ+gcz1+h4O3DS3rhf4NJs+Z4PAyf4D7c3r/sT1UnYZg8iyOw/Nj5qtdH+pnoevprJBoJ/x9VFav
dhn3++m+P+UPkX6UZW+305us/Sak528LufLLSlSu+Nr9Kcb1YDfzmeXKiJsR0xjrabuxnlBnFK0h
aaTO1yALTaZcpHKMj8rPG/yWQlNof16PjzMR86lh0o20dglG7zD45iXyTaPzYYLR+ia69THAd4aN
M3zzFaCfx5YYK+knKutbpfjIHvYb8y587eBVrGuJgAexRnS5Mq+/Lh/l8NGYaV/gYL5Fo/h7kz5+
V1j4eyQTD6P8rNuinV9i8Q1excL9ZyMbQ5RHgnL1BzPCucls5GEl10V758SzceDLBaIH8vKqnNkw
qae45TL09S3Iw0jwj/K/HCjrnaSGKVe3dwo+IR+Eu8TN85BrKKbtWyPBbo91rUD7KsU1FnadE3yk
PnsBpz6JBurXJvr0XohMbk9m13ntrWMMWaPcxvNLKkF7TOZOzX+J/JDtRpzixXzSWM+C5yRTTi90
SR4LHx7OWuH7ulQbeDsfa6JC0trhR3jxO3TbrAnR9VMvaXbMT+i2tAnUFq2dJem6fBDdlBe5jPYO
8ou13ArwGuv1Efye+rxFo1wsr+6nu75rqgNbXEPw/kmS1qfk+qn8anonx2CksxdrrSyDNdJ7JXop
nxN67hdn9fnuqye+2bkurbgYKfkX0MvHYAlN6cf6orJerCXi2yqsU7ofEJDLDho0zDPRIF2I8HP2
MNZrFt+vyoqt4Tzi527Oz0+4nF26rP8BtavWizWFPo5SThTa+sjkB9M8nBJzQHKOWCnM5yBg0ZqH
c1/dpWKNUTnJP9f1QYv2/jDYJ/j3NHZJj9GgYySXWYf2Cp1K8Pg4hPqlfqhd6ov6XjRcH3uH6I/b
U/TH150jSXtTf4eB34F+eT30fY+oQ3w19/2p+p4k7WWj/mBkxynQdirKh5d5PGjs31G8RbqI9A/R
RvrmVYyvHTa2zKAR80lwst/Uj77vlKQ9jz74+07gmwUEDVS2AXac+wYOq7aJeEe+HmALvza3x/No
7vzam6p67B67qxn2qgL2S4X9mg77tVqVXGTDtnhkl0dlrgJmd8F3dU3CJ3yCMHzO2XbKxwFtQ3Wa
rm9OCR+A8ycOvsrKrquFDMfiQCt8qGSt7kruQ+0lH+obZyIbfw3/aRLWlxF3b4WP7MAcUR3yNZ2e
ZC08jPb8Q1PINybbOqnZGjZi7sERV4TWCB2Slgz9Iut55fr+nk3bgjUike2G/aKzR8hScbQ8aNM2
mcuxLhG7FnMZ7UjXcQIpWhnoTCXbWaHLo53iDYmVULns2NzdC9mQxlrDFJvAn6jR9wLTtOtQb5GN
tQ4mu7mPF+VFIFVzemyabIvx4krgPgxenMBaj8WcKRzPbfVWnzHHooFkDm+CP3rC5O8S/0j2W93F
XObJZv2K9iZldaqKcVH9+uBEvn/QfpNyoDZbLa2DTStnbCrlRtfy/KiYD/zb87rdNdrUy1h4s9jv
tI+dEV6CekuuYKPab6S9mkz/dpTNR19eq54j7LWyLtqzSpd4XOYy+9eEYxe+UHRsnnR9zMNjvPnL
J5GNE8Eb39monLg+SGatyRb9LKXkr4DP/2cf7eHKbFv36nxd39DdBBvb2p1iC3TbbIGPy2zMl5wR
6LY6At1NwCnIYF3Es82SnjN5c4fkqyhiXTNzFV+Fyrq+gnnmObtprKYP5ZT/XKUy7YfydZptnqPF
kuLtTuL5YN71qfhMw78UnhumDLiB98a6NZvoTsILjtWbmj2U42IbIJ3slFTQpoYdzNJSsKgwVD5W
9WFttEAOIUP2gTrv/HPHLkZqkjPULnNbRxn7h2TQTG0eh06hdgcUxW+0TXe2jmPtw5fd9wKz+l+d
NvdjJ/qDH729wlOslUt2Hr/NfsIa/ib6uh2xKbN5u+kcj+JtirtX0nfEq72IZRmTWvjeqIiVISd7
nkL5D5KNM7qebUPlepjmdAzT5FGxuVuMudsJv/96s1x7dLy+kXFyHUzncNpnMOSaaHeD9n6MVwU/
aK2Wgwd5oWQuU1w3suug+5jGY2f1Jq3ikCP0mMwyY3QN5+1S/HW4zFu9JVnEcWyEVgX6ngF9o87q
cSS1Ma7oli6620NnVMpz6vqFwG1GH/V/9qxvdrDoO6UwDw0fYr03LaMzKsnlFDl05bHcu1GGXeI6
xaHH9TJsTAGj90exAXmd+9xraCM/Qw07PfycfQdI4PvZDozXbNdOSWwd39ORyS5k+WWL2kX6fD70
eaWIR5qgy5eodjrrgN9mdz0GfcpyKBcqy/9PkOdgFivh67muWFtdzTTyNe8UOvBF96QW0oO7R0KH
jUBcARmAvuR7GbT/zPR3DnUz9WqtfRTregHxb8coVsL57rhRmyCz1nx2wwH3nIz5dI7gtrGRxv4t
6c06x64xTfms606s5fXoc8oF7r9w31K3wxnaWOEXcH0+gtWcglx2pOrzTGPoh/y62UgtmMZa1TTW
2VsAfykAfxw4Uq76uXEsja0WbVrWVkz4wRbMY6Ha9TjwbxYx8wz8K8L3Cfflzi/A91n4fALtzMa/
K8utrunlSa7mWourrlZ22VA2AfCtiKd3wWYq5YrLWSu5+iysC/Gjq9kFe47+NqfT/cvpE8ahXYod
CykGxb8XQFuRoNFK7SAWlWp1WgOIKVejDYope5k0gdbszy7yHOKRFIetpT0u2Nv6k/BXhyMmIZ8l
W+169byeZ9OE76sB/zZke3U29wv9C08O3Qvzgj7vP7AuumPbJHB6c9TwhuEs/CDqUXtLMPerzOtT
Hamvz5zY+l52OrLxD7CN7jNxdovwLo9b3wKe79DXd0wfZHC4O8tbfXyInUvV8VP0M9x4uIz2370E
fNdYb/WhIXpFp7sPdHcP6XeU3m+ut/pN0/3KUyJmnLz1vp5PEG/yWHHZQ6Gd4LNz5eL1dd+d2+NI
l1tKluWH2q9XDiwZnNOzZI3tQPsN+nuS4mM/ikO3JJFfpv7Su3xyaPXyh0Lm99nx/Vjol+hZB2Lg
n0if3iMy8rr4uShsEMWK70g8H6LY4xZ3It2x84hL4Xfo+CUCf2Q8fj/P05H9dce93XVM9r88xL8A
X6B/SsAXadmDoXLBDw/4seQmdT3Jl2OZJ8RW0hjsfsPO0/jrouMvwfgfDH0cy2PiZ0XGO8OOmPrj
OhN8oT5P8VieaQ5V7bod+B6e32n3nxB7eeR7lHwY2fgi4s0OWY3ezaZ7IfT7NHDnUY7EYKSYcF2X
wPWJe+JGv+RDoF+t7pXF66nfGsyLKvrtJp8Ttnon92syXTx/X/g2hR/SGXmmq0TiMR3152ozlY/9
kMvgXvSztz4IGfTYuYzzNdVh154/hTHBHtH6pfhhEsZLZ3D1stJCcvkgy9xD+0Kr5KyBVtm+pw80
nFEsfj3OZf5lQW93kzg7cLNsfn7gZrl+OjOoAh2vyvYBG2wUxXOxfSPdd3eurV8/A/8KmNJyP7Pu
KWNJA27YwTeYtKcI7SbDn+L7z5CBXeQfMAv6sPnlZQV8LeRfmNNTZ1oL5NeQv0L7asb7BXmcxAJ8
DyeLvdRdxrIGStY9uWkD1kENzwFh2r/CJh+Af+d5KJlixr0TYDsLktTwGknPu3aOVLua4btsZrbJ
+eL9cPswNs9DM8MTaplGuP2IxWht9WO+LWO83flPzOB4PxV4/bAntK9Ce96WVG/3CwJeKz7N+0mG
TETPHFWe58llgdbPrfwOc2z9/oohjonQ3Ovl5v1RnmuA9Wjs2XuxFh1Crqahb8TJA6tl/RzD7C/r
78XMjL4X88foIzgYKeH1uZwNLX8S5Z6LkeKPIiZ5Y1lc3upGc3nbTjo8GfJ2F+Rt32mSt1d8hk9F
tNHaonWvYrwdMvTGT+7rWb3cE9qpsMnwZdYvsLCT3Kc19OKyupDDwiaz0CPrHZ+hHz89JjlK8yIa
04VIsRnHibZWL3eEPjSPI6CPI/+y2DgOfBzZeCXG0X6a2yIx3myO1zQ2ZotIr8oX2EjS9e7t3jEL
vXO6+hXWUJ/JRjH8c6+02lnlmq+S3i+GvzPpzfyW1vzApkKK+R5dsBuun9/zqLR7szhbNut6I+/l
jpXqhh9S/DCWfZfugtA6O0m6CLqf6nfADhAsvv6l6KsHfZiHhtZsnT5W2fpVojGevoIofcWP/z30
1X4GfZmo3/kZ9Bm0EV2X4hn8vm432vY4ApuckAXK5THyNAw/ltqwo40lv/SOiR/XkketdhoT0Ulj
euhRdcOkNye10FiJFj3nZk4Xxd+1GKuDZT7uBD9rB+XdTWK8eSyT9xlvh2nchWLMtN9IY8U682/G
WD+v3v8c3cWP/710n7k4lG6E2I//LbrJn5EZ28/36nh+Ht0XkfzM+9LHvYgb6U5DaKi93UvnEE6H
vvYDkcgJpuZok+5aGgqAb32iDf5uXrRB9Y+Jc4gOXRcOie/1XCu7i9s1NVv78CTPHxiCQ/4PxRQq
j6m83XS/hHm3f9yt58hpTp4vw1zkA1E7dDeZBbK1d07qdNP7vRRRh+pSW69hTEa7TBra7suf164n
R3v9pOEHvuIj3UQ2it5vTLmdJcB5EOOk3BIpcMNUe+AGyqN20Tk08eR98KgdNHU++ugGwm/dVdLC
1DItMyOT22LCnYj+A5CBV6ci1pRVn4OVHWyXISPXky+k47wl2jF+0/tGvNDvCwCL7a/+hp+30/5J
65ZizVjXdG4k/AAXvYPAwu9Y212jyKahX69M54VZfvguDUusbOTVIp8g9k6A3/F5eRpt51aU8bOD
Mane6tGyfk+O6lP+5jdhnyKyvYHet1D79eufhW+Buc72S4rU8jaNUebv+ynOEf1/jDHBRpWsEf2v
ukT/tJ9vpqEXbepxRq72tZN6LmdAZlMJr4fnx+myxe9FqLlafBvzTtL7dvi+mIvyTywYwxp+7lym
UbxeOyr/2b5VTIusYlMRs7WQXxBcpU5FmyWnVhgyLOTXm6vdeNJsV0Yjdhit1Q2P2Z8SlD8Gny3y
MdnR35Kfw+eFZI30wGTIz19kPf+YaMoCTQw06Xdqynhu/oNyybOtu0iusl0IprUdstRC/Koe5Pmv
LoLviVCOKctcwGWE5+u7aB/TC3+DcAnHrAsaBiM5nz6P0vlinKPp7/KV/MdhP+ncVRps73ZDviXw
pcajnzuU77f4Prigr+HTg3wPsDgljo5lgg6z7xSz2amcZ1tsMZ4dOxHZOBU8++XHIo8E/hU/dwHv
7LTvRPtVZ0R+5cIZlFs02QMZauLvCr5BKwdt84vUcKpYM2Z/i/hKuM6lM/k51L+A9pNDzyfWEa/5
+WCdrHF+8Lw2PR/qAfS7uk4fu5vkF+tH56/dtZ3nQg3NJWo8w+95uKLj9egyssvw7QOjtZ9hvBfh
nzxkjBfrmHQu5SzSWqMcQlq350AH3TH30PvSWWaD10o2Wn+3CK1N+JAl7LUVUwEvzn3tBo3Vy9oN
oFfiZ0SZrmzQq1pY8UboIjvKzu4qbiHewCdcNxN4O9xl2pmPVvYo+vr0U/xO9apFjlcRfnd886EQ
fNgdZ4FHsM1yTsuvvzklNNUCWaa+Chjvq+eizvvPWsf6u7npPfNXanURPeeVv5eEYmvgncBYCZfy
W6K86xjDeefONPYaLtPuA+9+Dt6N/zi2D6zPg55PX8Djt5ejerFPrD/awyS+8TtSmG+KnShOCqHf
g02ydjt4TDrU0JW/p30tq6Ers4foSqONoJLL61I/QbnsoFH3Jbp3ZGMlTaLuAlNdmm9+Twn1z2Jt
0+8F8CmyIe/0viA7l3u7i+4v/QTtUD1qh/yOg9anxqyS5YY0tONGnL+AZTd8CN1La49wyC40cd0s
8/7+eI7OD7O5rG5AWxSLGOXHw5EaxIANHZRzx88fczjefeAl4dB5PT87Bp3GGI3xedFWwHJp3gzN
AdDjSf2MuUzLha7LE7QSDX88S7mTWQ30nrLar5U+S3bOqTIt96Kh57Jc2qBOD9UzxpV6Jjau++iO
3MUI5zX5Mea+vJxv9oZvn48Mab8IdYyx3EJjofjp7xyLsT9k5DmqNtb5iZ7TuS+PZR3fmcxq9tPe
qnwTPys5Q342dNtjTarvL4wNpNhYjQW4p5SsPc0sq+U1me3ZwOyPv87Ynnpmb6F74FWUv4XY25uK
uHAMxnBBafwReOT9Ln//Ct+7uPMTPX8/KGJEsw5adCGSI69cuWEn7cl6b6Izi5EFTG7xjmFdkxbl
hx7C2v0rf68Y3f/K5neBuS72XKF9/696DlTZJ7TXS77sUJvB8YJ52oq/6rbY+1029c96TEXnrdvr
2eWaM3C5Jo/ka5a/+2AxcHcivrxet506nuMKjrclVY/JzPmjB1C+g/Mvyz+Yw8JW0PKQXm+vbjOc
2sE+p+acMyN8N9ruGKOvjz+BFz0oJ9wlTTdxnLOYI8jE9rO7nBrlRPB9+FTV18/lPdtP+QqUl5AP
/mBN7ZsebS+z4U2sjbN2Ol/O9m95TPUR7fVqPt3p3HfDX/Ucf86fHJ0/H5+O+dFExxKM4bTYLyMZ
6ZQzuf7thv5aepDRmal/FebEsJN9pvr87C6WL8xz+WqlobIVQDvEE+O8btIcK/ep9542zYcnn/M5
3xabj3TQfh/m4+CJmL016K3jub8s7LHS2RQLQzcNqELGtlJ/4M1rwF34OPgB2RoHOaOyr7OkFsqP
WgiZrVs0LtTE5D27IGe1Y/S9xZ+ejr33MEC6fC9/3/3JoXHhy768aXRPWr+DSjqa/l4A2eMywCW6
L21hnaTHiS/Z8EsQW/6UYtc8lj0gY+29hbZDmHsGu0T70n3dM8Onu5PDq92q9hdZGlD5Xp3kp/4o
p4CpBGcDtD9G9/U7m9R9xSyzpYnKCsh2DNUBj2AcAeFv5u1NDpt1A93HiPI9UKg5vQUavb9Ol9lx
PAfrnz+KbByE7XoYvKdz/Ch+MJ/jb1EEfrCA428G/sfAbwC+uGsQq8Ou5HXcRh/qeO1J4B8B/gLg
/8x4H4PKRtI7K8odOzf9k9jfhBzt3QDeDI5gYbsMHQZ5exJ825Gv30meAN5ROX2vldXwavDw+tO6
X5APP5H8s1shR5/w/Au7f3BELJ47Nf/XPoqD8y6wRoqDDZ+FfJuwnq+218g3ugxyUJXCaja+sriH
ywVk6qyV7WMOpsEmdo/Bv1z8G4t/WRQfgoYbxHsXgspl/iWKGh5zPrJxmsJ2RGR2nN5xkI05PQe6
QyifRjoMn+1K5gDlrp0HrfcMRnYYfVE/uaJdsueXzit6g4+L5ITePzHW1Obqi5Gac6BnvoJY2dTm
X7G+DjHWmc996lyet+V2vL1J+uvf7ucgZPG5ZKbROQW1aYecvW/WsWqRPu/psTWdg3lfhHnvpfYj
7d35jLW4L8ztof15ypegd32UZwTeqeA57vJxej8BY9JsZvGOaY17P4mRR0B6C7p4byfkopXLRaaf
9qU7IBe0dl6ETBDM0F+/PKXLm9DTe1nHP2iOudaw2W728Lx00os8p4bvff5vtEn6himssx9+Yh2d
9waLtKXQyxKdy6MP34e6XbrhI54Hxe/veobTnm+mv/9a1tXAWOtpAaN9104WmsLLX2Tav9Lf2IhE
Oqm/H54y9uBN+zorfkv7nZSPvd2N+N/JJmgGnR7iXbLk66d9VMpzxFwnWdQw3bftW6O/E6IcOC/Y
1HAH4vgO9Ev56p7hLHxqhd5HnZg3t2MC5s2l8bXKXJr/Q27DPx/PM0HrAB7te0LX9hSuXNUzHbq2
OYNp9I7GrczS0sysLf2KsmcNUx6Hj90ltzKfkh67D1SFOrNQ931FcSkj6b5TastVSaBdUlreV1Lg
d6S1JEPX17OUx5WVFthG/p7QsMXG6O+BNEo2ZYJcxLqSHIovr4M9Yr0afgm9w8cr8XNwikOTctXw
CxlSSz5swJax7JH2Zc6Qk+fTSg1F9K6XOQUteRN1mkjPc/2ex8Ll3H+SXU1WeicibN1YtSuYxIpJ
X5DtpPMsyqfzXEH5R5n+h2epXbBB4TOPrtwQelTd4GTZLbmTmFaWyx55BPCcc/BLGiaHPGPo7zdl
t2TZWBd9z8b3wBXqI55ZrGvp8tJQ7RWYI5falW9RH6E+GJNTHYWOlhwbaL9JOVB3hcr/3lM5ysmu
lVvYI7W3ivcm3Mq6+NqF7uf2P8/sH3pHnTevVc9ViGGu0vKx3rgOpLGINUvnTyvgE53+yOQXBV0c
XzbhnxZ6nP4Gi3S1Hivpd/ckV8VExBDLCkLE/y0ZcktFrvpIPeJjZaz+Dk7+fpax6iPKWP3dne5p
K3u2wNepBF5lJHmKUqV2VWC+pCrWJY3VxycB19gvpJweSwd4VKR21TnUsM4rS6p6taPF6lUnwEfo
qptzZctOyJc6UQ0vwBzfn0t/UwyygD7coKVurP5uWSfoqEPb/DvoIJxCQUcd6MgHHV8HHbUdhCd4
DXnj79AQNNF4DtE7oPBQjncveEDv4HIzac84i0WrZJZ9dP/RySyajDXp5udT6lQaR9MiZynJZBlT
+P0oo73PaucF+ODUDskDtbVmUW0ptVfB2FS9naQh7UjAIVwnPuVctcuhSnSHucsh7iZuHsaKIxXy
vvNLknzn6fwI/Y2FLDzXP1k7NV/y2bm/LcMuKL6QovjPIjYON1hgMy3+wUnQPTOF7Hiu1IIVjP4u
WWawjPE+a6HT5AxvtTNIvizrMmAFrKPaeYLeDaDDbgvDr4ddoDInkzSav/fKsJ4UPVfsKI8JxriO
KGPha1zmp/rU7l8pb2SmGj79GAvRmSfdy6b7OucQQ5Fdvgv2JWvFktCZCjV8N75PxncpnXLvvd1t
p/TzWeJDmPYJZHbSkqueo/dTGnTmB5j2VdDi3Ms02oel+Sq7IDXebEFsKGg14LWhSHE9YHRHl9YM
6Umn5xrY3a9ot3/A7+nS2h11an459Iwb/KyAna2EnZ3uG5xE70SQNePO6N+DI/avhO29WnMGr9L6
kmO2txR9/hD+lmxexx1Xcbw6E941wFsFvNCHht/9iu+wuBeBeLSLcgvtkB0VvohXZiWUU0h7Vsa4
d13zo2r3//75d8uY3EA+r7E/yW2ng95lJPiDWJbK6L0Dxt+jq9ft2zq+/wa6tmTwO9L8HosNdN0N
urqjdP2G76vUnNLPG+g9vXQ/fSzo6o9ETtR3lGl9zzOtF7BgP9P64UOeuop15ZIPhd/UjzP4Fc1x
Ws/JHIDP5ME/SdHlYQza9cKP74X+pHurTkdszmmdkQ1zT6Q7H2I81B7ml2J32cIo/4vLPK23fJLv
Dl3mT634XfQukvE9Om7KL8G4aS/JGPcfByIbL8O4Wz/k86bjOa7heHKWHpeSnqF3Z279j/bqrdKv
v2vkFo0TeTubzblF9F4qes94Pny9wRf4PNVCfinHKAB5/Ny8JMrzsHv5XEmZfyOHaRprfF/Sc50c
0t9otwrtTtLbZZKei+YQnwr6uR91F6Lu11GX8pFe8yguykOCL+FapbJGH/pBbHzVLsqDK/x8/AVM
aVhL7zqzqV2VwKsQOcbNIr94jarAtwNdAWcL5RWa742R3B2HvqP3mg1QnveIvFA/eNZEee4S6zoQ
4XtOnQrPv/COQhzX9cBINtKDfhahn1r0w9BPAeixqTaXTVJcecNYI+XZr6V3xiWxRkZ3V1JYo36u
nuLvY2mze5U01yu0fwg/+Wg65arZXEeXXjFqJto3cm7o3XR09tKrJLuoHr2zge6PHYVdor3RIu6j
2lzRHJ2R6AtxQd441hi4EKmh8hA/q9Dr05g2o746GOmkNfvAdbC5lBsm7iY5xd2kAvALcul6gCWn
7efnWVeEevNgHyW6CyK56N2V9A78viVM+xc9/7lxNd3jzFO7jHxj+K+jLkbzjD67PtGTl/6363+I
OfoIc5RO75VDW1JSaDLV71XSMbbh/n+kdmyskfzDvEL9/gHRBf7WfIB2CZfwCL9Z4NI97K/AP++Q
9PylDvC+YzAymfDpHYI/gj0RZSOpLIi6Bn2E86YUmvyqxE56U6quf2Jk+1fN5S/S3ILODyjuPBeZ
bC7DGEZ9KPhKdNF4fk9yBh++F+1S7h5j7V818JngBeH/VdgzapveBdkHfNrHHYZxLqDxMp2vQWWE
/5fiXR9BjInaMNrT88yYv3iluiEo7vydMXLNoJuyMN4dj9K7UbL2LJUzf/o82hwu3onSLtsH6mnu
xB4exTbLB/geb8ml7mdfai/vGPzIo/C96e+U0h7QG8Y7ViVW8poF/p5Y6x7IpBsyqWBtVYq1HsFa
V3j/iqtXsaJ/m3/RQGwfntqfL+6xG/ewTvH7Gyzc96J+p4H8DUXInSrkZTXtz1yrdpVjjdOeHtu+
esyQe3Rx9zDonkVeBtb5RX7nbhS9c57uPXye/nFz/SO3mM/16U7ZKfhc+hxILuMdfavpzCeZlTw/
Su3a3D25xeDJ/YInz5t4UlhVH1qL8jUof+w5T88PLizr+T7wmv68uMd23109R4MW/xvPLepRdir+
5pcX9fzOm+SvZ8l+95+X9cBn9aMd/0Jm8TfDf9ky6vPHQPuViE3C4w17hP6uRH9kAwrQ39F77+p5
Iyj5+wKy/wX06UR/bmb1b/Va/PXoj3K2alXJDxvhp3tal8p3OMbfy+mtlkZ+vj2ySVKLrL+XdaSU
pIZt5Uz776BrtXgPJp2PkewY+4IPYb3o59tYK4iPcgf184jIbazrkJWNnG8JTdHzCu2uvkn8LMy/
j85Ob9P3iUnGndvU5Xugm2iN79TPQFy1o0j/Z/qv1+9U+Rn0M51n09nI88f1c4bnv/lQaR9fbzl+
yeat7mes+HWUdVyI7OhAWR6TGsvFvapP34nUfRKy9fYO0lN2Vyhi3GuU/XoOo+w37suy4+LOF3+f
Hb+vGd1r+Y1YV8Z9SOPOKMlsNuwvncfR39ahmKKG/gaNfn/nU3pBb9fu/wbdZxmMTNn5tbk9gZuq
enY9qtuhOzzZLofKXIifXQd2lbQskbNaloxiWudFfT/lrfe5r3rJto08OTq3pn2RXrHnQ/rh/KDp
7+AIvLsugXfSjBe9/ymJM2vZPxt1mBKaUp+qdtVC5jyQuTphQyuwNol2BWuzPlDc4pGVltth5yXL
58vzZpkN+bs+RA/pz9th68+J80VDFh+ELMbyLhGvrVB8uyL8DiW/U3oNo3fj5fK5e0PAHUlkf0mu
dPgfAQ+LO135aWrXmuFq13zQV066V+ibGaBzyddy598v/JxdlOPvllykfyToH8r1L8A4lwQmtWyQ
7fycYfH7lJ+aNSCJd4/ptiLHfwJwz3myE6Nj+5ArKnzGHsbT0L2jMd5s2ORDfG4vjafLn0luue5U
/IYczn1fl9/D/B6nSYZNcvLPIk/npzyXlp2U4Pc7MrybhuQ78/epkH6mfT+F7xl+j+eXsM5W/KO/
b0J/v+br4FUt6Ut8VuKT7ng/AH7tVCVXP/hE/irx0Qk+Ef+eB98Mf3SJLIFviBvR/6Xef/N548wW
46TxGWOlcT4UN6ZP51/o+46GTOv33K/leVf9dCebv5sAfQobR/5rHf/72tdq/dyGZvJ1Qn9fvE+8
84TuRPL3JQGf7qGZbWU50+9L5oM/DvCnQNiwWsi+qpKMx+5Rxt9fj82DxOdBj8mu1cQ6dI1krNUr
6Wu3H3zoE++QtECOisVYiLdx77npjr+vbeTdnxF//4jemfLKMf19KXQO92P9vojLq7ASuq/2sJzT
UvYya9ys8Ht//H3E/DfGXnuFWkrfA5FIjUR7PEn8bN3/0TF9XjIzNm7q5bTaedtrZPvs+8V9Wn7X
UKa/p5JJdqgkev/V9L4Vo713RHv63722+1tHbeTvzWlCey/qvp8f/mAnwci/pHapD2qbcpiehN9y
LGoHJCFnEpfzVcf43Lp6hUwZsvljjv9rn1n3E8/4PX+6Ez6ehasvcL65OmysJC9Z/7sTkXtY1+1p
oSn0Hi7KNeC5XfSJsZwvYOHL+N9dG9PwbXpHn5LV0JEk7mvznJJsf+SCfh/uPNrdvEVd3mJlNf33
wPdVlIZbBnW7V2tl85zQi6f0+1D7mr5ZW7rgZf192F9NZvMIl97DQ/18AN3Ut4TeR3AZ5TVxfe5N
gtwvgA/I7GllLLfhj+fpvJ/5KafUu2tSy0vgSRDlaGsk0Qi5T7PD93jmj47Szeeg6+4hOz+mYRZi
v1VW+OJvtY9ZQn+r6o+TSvl5SwGdWeXEbPP42NkL7VekUpyYwa67E3owJ2PjGDOuUd9c5yxoMeDH
RV4LfX8Y83rE9PtOykcR9oN4o8+brM/bCrIfiv+98yJWkFnJg/BjImWsi96b1gpa7IhzxsKetIk5
ILxazMFVoPdwmdr1qmxp6DvFtNZRq8cQL1fJUgO9i+JOyN5hescVyld3k98hmWT59ei4/Uwft4R5
Iv/7DH8Hg3fUaf0dR6M+NsWB/L2jiG/+RLonT/erVqOOBH/dkdE0xohxDP1J+GY9R7L9ishHJP1G
MZeM2M/QaXSu8qtI3FmN6CM+JhD5U2IdyH7YY5e+DiQX8ZR8xH88L2Ib07sy4v0ywx5Tnuj0CyKn
FT7RIcRgydyO26PlNxrlFyNT9Dv8WX6jfKnuS+n3+Fl2Q7kpx2YkZDcAffIXsd4NX4/+blRZOrtu
G9YdjaX+fDSnVqfXpCcNGmhOUjldjPf7rUHDDul0rGJZDTznFf2PjI1ncnx7L6Kdo1F/Uvezh8Sj
OSx831F+16XhTdBHORU5Fv29YWfBG8r/U47xXKV5mSxzD/zBziVy5uxM+vsQsr0hXaY4Mcev5wdm
+/eirTrUI1r1PD/EgYOREgd/ZwXmBTbSyKng68uun8WYcy10v/EVXwVjJ8g213XAJkIes8gfpHcs
0l4D5GiPboP5HSpjv5T2N4zvpntNenwh/Ep6n1N/lP+Ka6g/GJODdMH/Pp4TmEl/b23oHGBdEd7A
Rf4eqeJfiHn1YB76Oc7QtvVzUj0fkN+54GfK2fx9Fc3wM2hO2qHTbhnLamjfd9X7+tlpOeUvO3K0
cUf5u9FclLtGa6A9lTXSGVJgNKtpHc7meeqYBn2w9y4633QzLXNOccvZphwttz5XuxswPS9CDfcW
SNqtH+j7t/Q3yCgHoGy3o5TK6t7n98nDJM8p6E9FX7TvTeeXwfE6LQ+umxF2duRo7idmhA8iJtsh
y3terdbfwb8M9Wlcmwdreiiv9x38nod/lENN+xrkr/4FY/xKJqsxztkywefoOD2jtYEjWEeZrDgK
6xitHTnC70eWGHmspR9GNlIOq0x7jZGIfm+VpWpvDkQ2DnBeGmd3+vrXx5Tr3492vPCPH6RzhTW5
Go2JxrDFdQvt8fA99Zmovxm/+fw4Rms+/Kb3/8dozNV2HdHnmmWwku+BFjfgtGbdwdFavX5nzaXC
Fj+Esn7w283/Hmmmyx0Yo02gvLZ0yPFs6JB08CKN/t4F+oIP5Qxepv2UaExlJdLQnPnupNPivbLT
2CiizbkyYz5jY7URR/R8LZ22sVoO6F2K8VF94g3zytovP4lsvB9+3QvqJO0FJmneLcXalfzvVqj8
7/3RXWhar/krrfbnD9WF6G860Ptcmpg0e8EF1vgE/U0nx65Nbj3HYIDn6zBpJO2LN0AHUb57k87D
xm+jrXqehz1JKxR/f8XzqNVee8gTKhPtqsw+m3JI6G9aeh2BTZQHRe+Mo/1b+OsjKR+wQbzDUZeB
sVov9NBqY17Y5VoFxvl9zIs+T2O0P73H89qqYXtyytDnH8TfmDlh4Hgu014XODsMmJqjbRQyy4Jj
tJdF+T8b5YFszTir/dH7et6c8fsr74p6nsujOD9D/YeP6u8MSzyJJ/EknsSTeIxn23/ocdYX9W/H
F9z/ri+4/3/7gvv/8xfc//tfcP9nvuD+lXe/2P4zvuD+877g/q/5gvu/8Qvuf84X3P89X3D/3/yC
+3/kXT3vK/EknsSTeBJP4kk8iSfxJJ7Ek3gST+JJPIkn8SSexJN4Ek/iSTyJJ/EknsSTeBJP4kk8
iSfxJJ7Ek3gST+JJPIkn8SSexJN4Ek/iSTyJJ/EknsSTeBJP4kk8iSfxJJ7Ek3gST+JJPIkn8SSe
xJN4Ek/iSTyJJ/EknsSTeBJP4kk8iSfxJJ7Ek3gST+JJPIkn8SSexJN4Ek/iSTyJJ/EknsSTeBJP
4kk8X56n6isS/1Qs4vfV+u+5cfC7BPyuOPgiAffEwZcJ+KI4+FoBXxwHf1rAl8XBtwm4Nw7+koCv
jYPvFvB1cfBDAv50HPyYgHfEwUMCvi0ObhO/t8fBc8Xvl+LgReJ3IA5eKn7vjoMHXfrvvfF0Cngw
Dn5CwI/F0y/gJ+Lg7Cr9dyh+XALOrhkKzxBwWxzcIeBFcfAiAS+Ng08U8Llx8FIBXxwHVwV8bRy8
SsB3x8HnCvjeOLhHwA/FwRcL+LE4uFfAT8TB1xl8i4N3GPy5dih8u8GfOHhAwNU4+F4Br4qDHzL4
Fgc/JuB3xcFDAu6Jg9uM9RgHzzXWYxy8yFhfcfBSY13EwVUBD14Xt05vFPTGwVm5/rHthrh+v61/
bo+DLxbwl+LghwQ8Y1rcurhT/50bB98+T//tiIO/VCr6j4PbBFyNg8+9T/BnTpw81IrPOLiBty0O
ri4SdMXBq76ufwbi4CEx/s97FHZpHIWlRPkU/0i8/NJw499/5ckw2llezSzLrpAuS89jhfidi3+F
5wYjK6mwfLhjg6VVKX9SbpNuT93fc+Dd4cydxjJRpOLfSuCl63gZbbLe5l34txTwVtE+tfct/AsB
VkQAN+HOREN62Vr8s5wfjFB7rILK5kTLtuJfEcrmRsvm8rKx+BfAv3upnhJHJ34uw78g/r38aCRy
TC+fuyG1NWV6m+J+KvlJ2+ynkzZa3c9YvnPorfK37zh4wL2/B+0KpCdtTyVvtD6d9IylTZn31qG3
5aX6rwp8r0qlmuXPWMrT3LGvFeIbH6+D6AIRi1MjkRoTDytAPO9G8N4LnK3A2Sv4RPVaAfOkRSIe
cz0a03yd9TQ/LwHnOeBMFLzcgOKZqe/2gP60cvogntH4qX3gFcu8rYkbrK1J5U9aniJCZDfm8t0D
B6kOtZMOnO3DgCvFcCsJ190m3xlD/bb4xmlVUadzeCSyVNRps34zlZiYVqV/EM5C4NgyMAfMwPm2
XjhL50MVzT9w3gTOhSSOs3jD8NZhM59MfyptY+rTKW3WGZuSn7Hd/c7bM9H3W4c4HTqOgfKMbVNy
m1WXl/1oy5sNmvT+vPLNbY5qdEW0nEDZn1F2ryjLmLHBK7dFpNvEnBBOJmQlNycS2arjBEfO2/Cc
3PasfIfAIbkvBc5zwNlGgIW63FPfcwG/OjcSKdTretrSdRmnuf4WykpRVmRae17A5gBWbIK1ArYY
sLEm2DbAVgJWZYK9DNh2wCpNsL2AHY7r4zBgIcCeM8FCgDWPjkQcJlg6RHddHMwB2HOAlZpgxYAF
AFtoglUBljlGyKOA3QvYxDGCRwK2GLDXAVsmYER7M2BFl0UiP5O4LDt+jCXnHnb5I6nv/ge0UXna
rcaXKuNLhfFlhvGF5uRNon9sZIguIn4dBnwt4Ev1NcCXdwWtb3eb9Rsxua6Pfa29JJTmYyLks/OK
SORq0Qetu5vFeqOxz0X561eIsZQPD8gbilrHu5+88qlxMzYWPl3Qlr88NSbCaTpPmlFHdUQihi6m
uXsasGmANev9xNZtZZt8V4wkLnOvA/dp4K4VMi3PaXPUQOqoLIgyizPaDi+bL8porS2Ola3DOsm/
Q6yTXKylP6PsJb2sQ95Q2FowvS3/AaG8SL6nAWdxfiQSNPHiXqGD7hY8IZ4tBF5RQSTSGdeWMdZm
lAdQvt001gox1vvixroduJWFYn25h2+X2rJnvCt00Zsom1so9O0twzN+DHoqhl1eyUWE6evzBHCa
C8V6K+f1Z1N9oiM9GX5BYXTdD9F/ZjoItxS4Y8dFIoulmExVkkxV6GZik+J+lqwQHz9wPVdGIot0
msm2kf6rSBP8aUb5tisF3by8KlpOMrEV5UGjXMBeAqxw/NB1/iZgpeOHrt8gYJXjY7qEPk8DNnd8
VD9mkHbXLbpeJ9MGekx1qL0iwDoBm6PX4TZpOgZi2DKajznACQJnZTz/gFgj2EfrdCnwSosikUwW
e6j+EwJ+l+ADydNsIU8zhTwRXifwFgFvmknuDNs33YT3Z+B5i4TONNvR2cKHwVzS2CwpmHfgzdX7
jeHdErO3RcB5syhqN2IyirHdIsZGczEXeJYJkcgJE56b8NrkBpMIcT6vBO5u4NpM87UOsJcnCB0m
1sdWwF6aIHSmaHPmRtA3/SnlScstBw9U7O95C3Ry/U/9uyIRw40n2g8DFpoQne/Y+G6N8YHw0lOh
L1G3UhoyxjZlYQyP63/gLbpKrEFBYxVgKwFLp7oVUV/nXi4f4rfhGy4Frufq2BhpDtYCdi9g3zLR
iGV3S6ruk6VRvZ+l0n5DrB7BAoBtNcG4/Qes42qxDvh6ms6FlPTzCYH/ut6PusHWmlzxpPWppKo2
y4LYBFWafZzCNNoPELZN0FZJ/Juhs4VsQRVwKoFzgfHxc96hyW8b9FcYX5juMy/Dl8xrBL/cui9T
Qc5MZZttjomOp1M2pn419dBb7ijoZvzS+fEy2gheM1R+9gK2/5qYLSH6D6dR3P3Z9BPcBgb+GTjr
LiHft38GX6ahTum1wg8QvJzRZp1n6ATyGTzAWQkcpssUH6ebxllBHtt0ct0qn7U+l9RmWYxq//7n
t9/RbSPpuudQV50I+6TX9UobMlpHuJ8c/tSwio3pT4NTKXc+k/qtt2eYLeoMk4OoVyB8Qn8mtS1l
+tskq6fR7uLroutB11NtlmpjiirFAGiMjmHgM3CfMOFON+GSHakETtE/QBdLcTJV0Wb5Tox3083r
n3TrStTLnSR8K6HH5pjs5nMon4hyi96uo83yjVRDhoi2l6l+sdCXxrya4gvCCQJnTnF0Xg2ceQb9
pIMtwH4JOLkmOmhtjxXw/Xr/2+UNV7aOq2wrlO+OCTPVrwTeosli7dbEYsB7AQ9MHmq3FgNmmSJ0
N9P1UzNgEwFbqDCzzmxT5HVRxUPz9jPgLb4+qiNiuhWK5tY4P+EQcDuvj/lpbfLN0ZjxNL7svv7S
PhyVZ45A/c8o5/oP5ceuj9kvGkMVYB9cPzTWc8fZGj5+4I29IVaX+mgGzHFDVL9fSj/P0r/o+J3A
X3TD0DmtMOnKmSZdQ/iHgb8b+ItN67SS5BOCUPG0stEy59BbFYJ93P7jP9s0EX8KOSoCrGZa1B+M
0fiNmI2cA5xj00Q8UqHzbXqc/aa2llL7N0YiHUNl8maDbNJHTwOn+caob2mM8U4Dp8o0RnpoHb6J
OhNvEu1W6vIxm5wpgVpO5nJG6sEDWOLcaAJK9Swj0d9/sh7xaRrqsbKYLHP/H7Cry6K+rt6WkNHb
YjJquAy8/2bU2f6fqGPI4cuoN1GN0/+AFaox343WzWGBZ5avStE056VQGLRuMkZBL6kx36pNnhWN
X69GWYcq9ITAVwHbegl86v9elO1WRdxpXhNM3x9aifKq8qjejPOhDetvaPaKTcozlntS33nbbQLO
xG8ofTNQ7/sQ2s50m8fcptwqZJHmKYTyb7mjMhjzVdvkr8VYXhFlOcn31Xa0izqt8eO5M7bGqe8a
4FVVRO0iXwfzRN80H0tRvq5iaGxn2FqT7ec86gDuB8AtNfFoOoUXbfIM2sMqp02nB0g29TX89jvc
1Bw4+Nah6cbP+A0tqkx0XkDbuyuH6v1KsU5pPsdCSQVQfq8c0xszSG9stDzN94/uNs/Pd00zoMv1
vagfnAGdaPInhS98f2yYt5vNItdXraQcq6I+mjn2leZulOe+NSu2EkifvA78p6uiMhjzb27Wp4Vw
jgGns2qof1kuzAZ1zf3fLPx3c1RPcn7cFbenxvU/8Kpujulw0vlVgM0BbK7ZB3gq6UkrOplBOvYe
PkXGFiMvJ1a2ye5UQ6eQb0eoFWk30wfvqwPtVs6K+fME6wSsdFbMxyPadwNWPCtuz7BNgnjeKloH
ffh3AnjfAp5Xp9OzIb01bcaTqU+lbLQ9nfyMdVNS5bOW5zBB30wd4o4hoI8H6LSo2fBTZsd0IPG6
BrDds4fOh24L9fmgesuAc3h2jIdU7wnAjs2Ori/D1/qa4c/Q2tkOnHvniD0ljtOWdIeYo5vFp8Gn
PwP30Jyhe2snALswR9hOwRNLDui5JbrvyeemXJ87aSafkGfk+2mPuDw1ukmcVkUF5c/I09869PYM
8V30UYP2PLfG5oc+FwF2760xm8rjP8C23RqJ7pHz+A+wq28bOt9bAXPcNnSf7yXAauJgbwK29rZY
/E/7DUHAWgGjvV3EGeuk8mdtzyVPJ8e4wvCMK55J3ZTibrPK81OjM9yznw9yyO8KVB/qUW9KodZo
35XbfyiS0nlm/dimzBVzMoN/VvB1thR42+aJ2Idrp7aU/yXw3OKTxvMc8NZVRyKHTGPcDljNfOGP
C7l5HbC9gDmovUqyQbW6nzxb/yBddww4b9bEZLLNMjvqS1O5bTT07GeUk9wVoTz9dkELL69PFc7W
u2J8Mf0P3Jduj8VbbZaqaFuka5eifPftsX2JNsvcaHy6DmWnUeY1rQFjD2r+JeIw6u911FHvEPtL
lbremi/4yP0/lK+9I6rXdHvTZonqPnNsyv2/MaDvDuH/Mn1uiwA7DFjm0L0B7qN8z+Q7zgXe/jvF
XqQY00LAqu6K+nKm/Vfdzlsahu6J0pw+jTqn74rGRjGdXhWLWV8Gju3uoTa8QvBqVoxXdxi8onGc
QJ2ld4t9M6HjZ8TpeH7+ddnfh6cKvLUmOrlffHfMJyCZWgS8/cCzmXSMm8eIZEzdz6AGhYpvR9lw
c+wH9bMN9Z/7alRmYnIB/t8sBkiytRd4L39V+H/lsb0P4ukHKAt8NTLkTA9+4N3mPbwMVBx7TzSm
HNLP/23nWHbbSI6T7CbA6huSoGWDWtIWaUqyFUWwBFMUZXMlUgwpWvIq9uxwpikONC9Pz1CSschv
BMkuDH9ADnvMYQ855JBDjgH2sEBOOeSYY26bquru4ZCWrENuARu2htX16O7q6uqqUVE6AEXdbwDd
AdD9MUe39/bjI21Kn2XGJaWjLXnA89fT6TuqQe/ZMl3V83nO10D/n9Ps3UEu38OXXxhCfPePvM38
DeX/ZuY9B1y/en247n8Dzd+B5k+5+28H7786XoA7bz/67A8/+f1P6199fAWB5feN3NsEIs3flF+B
e2ti/Pl9PiLdoR4wEkJIOvos1xT9HPzIqx9++NZ43w7efvRqak24n++A/utXWS4KvkLmsWiX3wLu
m1eZPvV9ua9V31ALR338C2j/+SrL3+gM7mSxdh1d1NQZRJ6f/QLs1pzOM2vTOW1vYuXyfU8HeP5i
Tr/LV/7rR7u/+/HJQu5NVu27zI3J97/Au/GFutPU/XGg7wV15ij/BbqTL7J3MpMz9zSbzXNtR/VO
v7DmbLJWp7nb3SpUV6oepQRpIH97JcY2Peth6jnBpwk7S7kQzAqYG4wtz3VYNLoSrm15zHKcGHDS
r0XWgF4fCe4NEy4S5e6MIGQIMhFx2x26XP+OTPAkRf/ru0K4wRlIj1Jk8rkskIBnGF8x4b7hzLcS
e8QF45cgJLESNwyMYQgzZgUvZa0dkudHcrzUH/CYhUMGKxXXslJT/A6RATwGdBiL8jmPA+5N4FTw
GOmt2F+OhO2Wq5VVhDu9epONAWB26EcgeOB6bnLFYv46dWPuLKh1+jwZhbDogQWaA37m8LFrc5bE
nLMgdLgiJJwkZn4KChtwNhrbWowxUvsix+WxgJXA9CsFNVK+H2HaX6l6ILQ8Ty1UrRjmGYVxwh02
sOxzoO8H50F4ETCRDpApG7epdp0HYzcOA58HCRtbsWsNPL7JCkIT2uw+W2FlthSmyWn1JdvaYjvN
du+oa/Y+R7znDh5EsRskwwotpCA2C2CGlgD9JmxouR538vIKyq6qK6trDx+t/3LjV9bAdvjwpFPr
9aB/r9akX7309psdJY/h80QhFJnh8YA9JjMKh8Uo5kP3kouSnI/UwYfns4k2sr3FCm9SmpocxTAW
RRLDv+KSlnkqEitOXi6zTrex1zwxdxsHzVbzqNEtGR+W3yEB7E5B3AFbChLLDQRYief6bgKWfGeT
3YGRm+29Qxy712+1at0XNC3cKKUmYxk70kDaOWwrjpDC8TTy+Guw1C/O3SiSR7O2c9g9goE+6R3V
6vubBntSIAfB5MPoNur9bq/5vMGIgB3XDvYXFxcze4lstslOH4NjWfcut18yL56GI1BTgpZT3fAu
gUtEDAHEkozLQnnV0T0M/UdCGu8HIytwQGlMnkycdrEgSnrgp0CHZ0xit/SxyPHxS5tH6AAYt7cK
dy+n2DN+iVswnpOczdlhjEavazYOVgCxIWANl8sz0vZqGi9XAN10gLSERjaLYWz5HM7hmStgn8Wm
JOi399uHx23jeK9JcL2z8shcW5XP9Yf4fGi2uvJ50DP2Omat12rqtAf7qyaAhAf65sGB2YSj0Hte
X0PHBc91zP96L3r0bNZ2jmDCukxBwysa7tTN2kHzaVvDuzP0uzP0vc40PcyvcSKHzsHrDzP6Rrd7
2IVUrNuo7XcmoiewFN073DvqHXUy/ASW+OPaUf1Zjn8CS/wOCMNZ7HT3aXDurSSmuApsNQ+C3fi1
kYeH7jTM4ziMM3g0wz+a4R/N8I+m+avEbipVIAzsGiQY2KdgYlc9Gb9SrebXmtb8eVjyyx5dN63r
pHVdtK6D1nXPus5Z1zXrOmZdt6zrlHVdsq5D1nXHus5Y1xXrOmJdN6zrhHXT9cG6HljX/+p6X13f
q+t5b2rFGXz1BvqNW+Q8uQH/7Ba+25qu/9X1vtGMPF3Xq+t4383gv7ll/D/fgNd1u7pOV9fl6jpc
XXer62x1Xe1s27ihX7cnt+AjVXeK9/DYh/gktOkidoUZhRc8NsOhuVoEz3lGMUdJ8xGlGUaCLW6x
JcWJsMIPLMERlYQR+/JLFlln3JQ0buAmLgh8w51iycgk4+WuwoNxCIHOvRJbWmI3TgPnO5ltfj7A
lQHlbYhfiStbr3ou+qmXmCFEakMvvCiCVH+wTBOQS7yrouqyzT0PFnUXURqABvcFPWV8bBgynDST
q4hT/wM7SpESHgoehYIHxiAMIT45y+IBkTgQqZUhch2pfQjSy+XZXt2PuoudMoU41/TzQIf1FG+B
+st7u+B7u12zfXi0d9hvZ/cT6k/OGSPginafxgP11PXXut465rRDVdxM/Lx1g2zal9h/4IZSJsXr
XnVFX0yBWFl/9Khq6fGUrFvlYoRWVxG+x1kKCmAYk8j8wQ1YMuL5mH6ZWQMIKiGlqVQqC5Nx9LjH
tW672X66ybgVe1eMQmIIuiOMRCFbuSLhF2F8XmF7NASNaCWsEC2zQZooPjJzV0BvRcYNNhAnEOmu
rMtxkK1KNq/WH5tgOoJtq6lofVEeBiqDifhWfFWBrcT9y+a7WARLq9DGsyX2286zFz2zVevt0ylZ
LBIWecpspTRNIPnBDmFW7a4JWUfP+FAc3JaZG9ovxWrcwfTt0vVTXyuIYzDmlHDJuL/wf7xRTlwf
UjRMpTJDIeD6HQV1wzWYRjpwjmJwFLAUtFvgKD5k99ga/FcuIV1bLdFKhk6ytmomoQnzKzpWYp2u
vSwhhzKw9/HrU3jThPwpQQLMn4siIqTQbiHbD99PyYBv1lMtSbgfoYWBk2OOKzAVY61Wn124yQjW
HpRdB3wVZqO+hXE9g+2zz6WdLMIAJg+QB9wgKmtmZuh/aG74AfRz5pgUwBbvwceSESU8gxPwWXJm
OBP0MJhbFuQmqXhXdqQ0IFKRV4X0fMiKFI4wSK2QeJbOCZm4gsDYv4Y2k2vg9yK2tpkGpmA4lZYD
/vgcPiQQzcuMoDqjb+FHpO9F2DczDMCt8SJ8zO6bm/dBDmJ5MQxzJVcfBrbO59HuF5U5wueqacPl
IEwXUpFb5B5bLm0upAgwRHWZXYxce4SHPYXpnXM4/aAfFFRhzSH4H8DgPzDswMHNBo8zM+LWSpa/
TO49Or85kOUAPM2liZ7oWkPrmPhrckCP8Zo1hTXkBmLlRbtJ70AgNeUOJEaYApFc+lxaZgFX/dKd
DcFnElhBWQqhpRK4MO038wO1Q+JnXnjGYNqxy8Uys60ADgH0BWdgaYgianr3I6RTxnOfiWE+eEl0
MtnyYR+ycfu9hrwHKJ0rq6zutCBeSvxet9HI9JrTaaZPpctiGgiAYH9wYiUGfpMVWKf2tGH2mp83
sjsip28IXSb6vtleUBJeGkgv10CYSM6PXqBdM9DN8ojjGoF331C+jlh9cRZTsLooic2khLNAj0v4
91H3pdjtmf7b1qXYdLiEy4I+NRVqYezALmdveGa0fI/pOv2CI1MxCG/oRaM9isv4/gSubq1fGhWs
51OYhwtXmsXQMbph2QbDCT15sqfp8H4lKjB4MPkFkmsqubnbF85LOkR/0O4fHGTnSoqXe6zipuze
Hb9GYyKxM/Rl39dMBsYX4OSKY9+EAcvbdCrvs+fN7lHz0Gy14Mev+41+w2z3W3Arn5TwigxSqffJ
xFnOkVFAsEgBxpY2IpwPjb2MY0uYRpwsCWDiNMdSz/p7cfp7cPp7b5F8HaPiRw1B/AeGBkNm8amd
xVzKb1GsIt8tV4aepRWrvzenvyenvxenvweX+ybYJ/hDfw/uh3mbt3mbt3mbt3mbt3mbt3mbt3mb
t3n7v23/229tJ28T3lnT/Uw99d/N0X8nR/9dHM05+/dw/gt9hlxb0EwBAA==
BIN_EOF
chmod +x $bin
RUNTIME_arch_run=`mktemp`
cleanup="$RUNTIME_arch_run $cleanup"
base64 -d << 'BIN_EOF' | zcat > $RUNTIME_arch_run || exit 2
H4sIAAAAAAAAA61afXvaRhL/Gz7FWCYRJBYY0uv1nMgtTUjja2z3MM71HschQixGZyEpesF2E99n
v5l9kVZC5OWu7tMgdud9Z38zu2J3p5clcW/mBT0WrGHmJMvm7p/619yFOAumH9gqgzR2gsR3UpZA
umTgrGbeVRZmCbBbL4UkdVJ89gKYODOf9SENkcxJ85FBF4XxpyeQeKvIv4N56GYrFqRCoBviIEuZ
EpUSLTIptv4B/MwWYcxg4d1mEQ5bNX84vA/8z4LzgN1GzE3ZXNi4iMMV/GN0fA7tKEwSD4WiKVeB
43f2IIy5FVngpehiCnNvjrLyvyBMIUsYzNksu7JIHM72laZViBy+d83Qq1xCkrkuY3M258K53oXj
+Wxe+DQ4gOEiZfHnXNI9Gq1ZfJcuveCqkL7NjlqFTw7guYozD/CWMJbVnp0/fz46O/sqTTCoI3Eo
jyBxYy9KC9IndaSlVchJ+4PvvkCaeitc6DDjCzP46xeoXcdHweDMwjhtd4il2yUuC14Oj16fj0fQ
dsPMn8OMcf/2Si5spAtJOLRR7w8ULp5T0KbcylZgq4y2aL7zZ2/RfIOiGx+bDT9E11DjHCMBLI7D
OIGYpZTozWbDQ3vj+dSNGW5k+PSJprI4gNaPzQZzlyFYARitn4xm4wI/RydvjsanJ9MXo5fD89cT
A10x7lhiwCU8fAg5PewaktuA1tHJ0WT8wkBdu8oKhIKP4vF+j8bQKhprSeucYC5HUcotc3Piw4d9
HOFEdqtttD7+dJ8rgGe9OVv3gsz3YXAIh+2UMeBDQlQHDsXXxbzXEvI6zQZ6a3NXy2qsJvnbojBZ
7AP0n3yneWjw9B5SorC5AYcPBxTHBVCAhHEYj6eUDUGz0cAwo61XMYvAxI298gInpe0aBhJqTHj2
7FnOiTYpWTitC5KSEkxSM+l1H9UKg7fti33rb5f8n0dvO91Hvbf9nlRBAkn+wmvS/9Lo3Mt9Tdku
nIUrBYaUL0nmc+h24A8WhypLRB7vwYwWdck4I3cE/PAKUub7AsrTOEuX3e2utdu0EDj6mDYE2cj8
hMShvBFCK/l446VLobwdhIHFcZdgtwMepYzQSywkqi/dZH7Zx37JR0TPAG7wG/lj231ol7E6SVD4
Am6wuPlJCFdhmuclcqOL6DoJ4xRJgrUL45ODXxazLpzifHzjYaG4YUXF5PwSBMIF8OK4D20Jq3kO
WH9grNoi6fLU+gQ8may1BzdOHGBoOqVYkiv7+iqrHY2fzftmDg9Tqb8GJYiybuv5XsBo5+UIQ8gA
pc2m7a7Pb6/t60Lx54xy17wb/X40OQCZxNwGikK+Ec4mw8n5mV2f+dp+knJLwRJWyJkNS4pg5vko
XJIMNEBh3hprKkHo8tRdzWWcpS2To+PR6flEAmdpZAcxdV83Uqy/FAXWNfSxcljU+FzFYYZYmfNy
I1Dth1Uk1XFe8yMYtAJZyowDMHB26jqRM/N83FkUzHudwERjBgaY9yYGOXCxY7POodVXqbPyrmIE
HUSc3KEdatVWhNrWWnAc6lj8sF9xpfXx5fnJ85Ph8ehi//IeAuxaEsHXDliKnx2Bqg0VzoGMLupO
Qvfafr+6Thn6aGVgpYCj1pL5EYstmmVp9/f87z1nwrj1C6YyB8/JfpkFI9TfroRmN+gHn6UflOkX
3iLcTk+zG/K5C3lU1dBAG2o2EF5wu1x7GPX9p6LDHZhwdDKByWh8rObjFVgLaH2UcbkXjxQ5eiTn
5OeAPskYzITxaHI+PgHaiYQMa8QKvvctd+nEaAKIyO95c3sVBv29yEmXtpS2l7AY29S9ILxx0KS3
uK4WEoFkFQyrcM5sNwzSOPQx7whPNBMf8u7hnwyWzpoRWFLnTQmDj2GEAExFJnCo33t59PIUCxJz
HaIpxkzE6iygzo9ERV7EcOCGYjVD7LumEkqS2h2kSj2fSwwJvIFhYlOJoRJAJNS/U7LTaYZkpWGK
veMdzLCHuk44/ne7WOxW1xQ8FcMvR22gRW3wNVEblKNmeQHuQyqVWMVuD7RlfQbP2hQtaUoH49lQ
xNMItb//dzhDUPHhwWMMvnNzjZgRxV6Qtgb35nse/AmVcaqMqwz/ifDkFKWi40VDaR0EMDBs6ELg
Ji9kS2zIGQOu2d1NGM+bjZsldvGIG6KSfUDTNapn+so/xUMhdVE+Q0osQfMwYE2e/nmymjnrHhhO
fCWOkIh0iGpZ7BHk8YCYRURMxDwTCxcXwRWJBNPNLoAOnVNnUYFBvHDa78tGfMjwKGYpU0xVpwWE
vd/02TSU0Lkha1su29jw+3/XSwhd6BTnp1qFqugJkB6Nx6fjAzjOoyA4uwqaG1UrvNQw9Ygi8mt4
pdEP6ugHG/QF9vPyyhf+G5VyTw6LHcjTsqVnft6iqPVpt6HVFrshxlDeuLgr6OiwD51OaU32u3/J
s7FS9fPM2az7x0e/jIeTo9MT7ehUqY6lIpuX9IQ5sbsUjdsM2/74rty4IS5OBXz8Npy8UsNETjbQ
J+/oIjy0AFEIugN+X+R7M6r+qApTX7Fgr9/6SFh2YNGQldwlWK6s1nD8/NWUajentK7Xq3sZF3Sx
pbgtXsz01cj7VsxCEmsWCUdMtqF4DRriWKqvfFPriIlwM25D0XnL4Nw4Cb+iWVCHlCetoPxXmGHx
wNMLtnwOuIhn4QooYDzPZ3cIaYSiBAIk0n5GgT3EOrD24jAgdIG1E3v8Oqq2U2lo/RC3thL6fLVo
Zcsn8FK2bD9uF80y1vQplfpplCXLvLr/+uZ4eo7n4ulkdDY5m6Kgp1zi5vj09PULdX4XNm7S2NsZ
P33CakOBrNO4bYZYTTT+gmytk/0lg0hArVGUPNvdaLVFz8UPmMEalyB2Von8ssDtLx/xqOWkTuU2
hHegwiNx49D8ov2CzjYsscZ1y2IU8LFP2UDqnflcmlba41FT7NCI9ib1EcW+460Fr86UcZGG5TQh
A2K0IkM7WVembENutwbfpsY7GsK+AQ1C/DusMV3uTGl0jcH8iEgd21TsATE6pdsEOl/ybU8XGlVk
61Dscj48y+cbIh/Ut4AABgrJEI/Pryn2uHJyiDbwVI0XcakyoMKC0hbjKh584s1ofIawPT2bjI9O
fsHca/ONDdYSgW3JHNzr/Q6F8OjlmW1eQPfSRD9pOEaP6T8u5nj499OxfDw6KR6fj095WERZrtEo
CkGjkh6FzVDD80WVGNhfR+OT0euqe612Rp0zGo9bhTzq5s6UGdRXxLXnr16P3qAhhRu1sg0h0KoK
PDv/WfDL76PfJ+Oh0sLFkWAjt1jRY79cGXnw4GKHXwLc58S6sIJBH9WZduDiAlpVu+z/wDt+ufC4
BZc8YwQYVAkr/CU/viRDJ95Y7Npwfnk9viK+ag8veAek7WC6bKFax69Dd7ahnVZCBJRJoOLc1EeI
ixxrBOa7i4uDme8E1weXl4/w2fGjpXNwOb3kz0G2oudHtrldj+rC0CpcSVLx4IFNqyZuIlSPgfhF
FEZ9KayHRxLGuw+FgELC5zGwaFFkEGXxKBfyMXZ9w8nvxYWPDKY+Ub0lyee0Rgba+ahdENTcl8iL
z20a0M4rPMnSkUEaLPAloUhwh1W/Zr4TEqZmBycqQ3XR7QC1BN4Hutioj5kMVMWAzcSjLsqjq5Fg
TcdwQcXhZY1FMIFbXiS2JNsazdw1ywH4BGkM1hzMPAnpuOTSrdr8ABekvzdQ6SV0qww74AkmDJFj
u48O6NDYEFWX2lLBYtD60pHcCzLeT3CzbUOGTFE18xr0cUeQ3MvcyHllMSmgl7wu0FVYo0pOgacU
Fx0vGwlanOj41rjFkVttRG0egq11FaSwloqZqDJTPTH+jPrRKG+VrfCkHwfMBzQwoZ6a1iVfhz3Q
bK8e8yR4JtuhMsmJbrcT3Uqf6DhXQchD8vHTJ5wXLxvbVQLbJgqU1doEU2SOOvwoqHynFLTveF9V
r+9z4mguKomTu7YC2to9can7r/qYg/whhVCXqxm6aWpR4+xNvrJFetnQrLotW1W1q1QED21aurKS
knnabbuaUGQ8RZQHSjEZQcpu6e58vypZ59fk6vqk1GJW4xFzub5E05fU6Cs4c2mFJi5LjeeUYrRU
iSRo8H7XKMpL5bCnA2boz/kMtm78mteK+GWtfE9iJL13F+/My0dmr/c06Zn8udXr0etAQW6h1v5T
aCk5hrjrRaV4wp86a8fz6bwrdSJ0ueJ9D87yfrsoPv2meFf86vRMnFiLKwNDkbZBp3DoAPD9d0U2
EQOfiEl4p47n9ofvp3Us3pMfvicesny5XtRYjq17cpe4qU/wSzjVXa6nSRbx0GsXFh1ufF8eJ3Ln
vtG3r7HziqXi+OO4LvOpJmI9K/UP8pyCCjHeMgN3oLQyle4Byy5dWgfy9yb0gpa6iCIcdK+5RIpl
iFWi9hJjQzfGM9ddim1F96s3L/9P3VXlld5Inc/4rvxMFHBKEn3GXJxqqk3JB1L3St667e7w31Lx
31E1i/uns8nw5MXw9enJSLOMT/OuDgv4wrvqrpzrurs96PYEQRYzCiWS0Q+Y4iTtwhljpWlrKe4z
6EWO6s+y2GWainxI/A4l6dFeslBPl1uNPFEc0pvsEFvZ1m/jU3rBfDo2mk151G3XZZ/Yclwx3Y1+
5qReouNNhDwXrxx3SS2Z+aPJ3wHm/eRwfAxvvDjNELWOBZGpfptB+06FTHbBXNo8ZElg0lt5sU1J
uLVGIdA2c0303ex01Q8GukZThY4y6tiuUMoV3dxc2ooK7a3jvbc/lpy48lxL9TY1pjeOH9vmnkZk
U6abpW2VQ4hEv/zaQp+KdXsa2krynVO82laoIjkU2NToKEpVLu2xbexJAjtcLNQ9EP5PcavXoMQc
E/PSu1qu2EowS56dPHbYW7O1525mAq0CJnISIiJ84/oTqxdaipv6f3cZW9SLo5htKaAtaPEKTvLQ
OzhvDuqmrisspbdu0tqZ417Tm8BvtPQrzEKSqSTBHJXBkh4mLPYcXw6aOilmGOjEMhZ76v2gm85r
ncRxTP3I9XKd5bhsWSxkUH7UhUCXZygZGo/IC54tHGbkFZvRlDfl8vofS3I4Zwsn89NErFKEVuWZ
Ci0tADheKM0FoQb0wUsi37nDqoObXcaQftvihWCJk4muuF16X9PBE6T2sw38KimN4qcz+Zj4adx/
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 selftest-smp selftest \$MAX_SMP $bin -append\ \'smp\' '' '' '' ''
