From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17710 invoked by alias); 6 Jul 2011 10:11:49 -0000 Received: (qmail 17702 invoked by uid 22791); 6 Jul 2011 10:11:48 -0000 X-SWARE-Spam-Status: No, hits=0.0 required=5.0 tests=AWL,BAYES_05 X-Spam-Check-By: sourceware.org Received: from na3sys009aog112.obsmtp.com (HELO na3sys009aog112.obsmtp.com) (74.125.149.207) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 06 Jul 2011 10:11:35 +0000 Received: from SC-OWA01.marvell.com ([65.219.4.129]) (using TLSv1) by na3sys009aob112.postini.com ([74.125.148.12]) with SMTP ID DSNKThQ01ns9r3JqbiYj5e5gB5FmQ6U5YtRg@postini.com; Wed, 06 Jul 2011 03:11:34 PDT Received: from SC-vEXCH2.marvell.com ([10.93.76.134]) by SC-OWA01.marvell.com ([10.93.76.21]) with mapi; Wed, 6 Jul 2011 03:11:21 -0700 From: Xinyu Qi To: "gcc-patches@gcc.gnu.org" Date: Wed, 06 Jul 2011 10:15:00 -0000 Subject: [PATCH, ARM, iWMMXt][2/5]: intrinsic head file change Message-ID: <4737A960563B524DA805CA602BE04B306010D8E699@SC-VEXCH2.marvell.com> Content-Type: multipart/mixed; boundary="_002_4737A960563B524DA805CA602BE04B306010D8E699SCVEXCH2marve_" MIME-Version: 1.0 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-07/txt/msg00321.txt.bz2 --_002_4737A960563B524DA805CA602BE04B306010D8E699SCVEXCH2marve_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 182 Hi, It is the second part of iWMMXt maintenance. *config/arm/mmintrin.h: Revise the iWMMXt intrinsics head file. Fix some intrinsics and add some n= ew intrinsics. Thanks, Xinyu --_002_4737A960563B524DA805CA602BE04B306010D8E699SCVEXCH2marve_ Content-Type: application/octet-stream; name="2_mmintrin.diff" Content-Description: 2_mmintrin.diff Content-Disposition: attachment; filename="2_mmintrin.diff"; size=17935; creation-date="Wed, 06 Jul 2011 02:26:57 GMT"; modification-date="Wed, 06 Jul 2011 02:26:57 GMT" Content-Transfer-Encoding: base64 Content-length: 24315 SW5kZXg6IGdjYy9jb25maWcvYXJtL21taW50cmluLmgKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gZ2NjL2NvbmZpZy9hcm0vbW1pbnRyaW4uaAkocmV2 aXNpb24gMTc1Mjg1KQorKysgZ2NjL2NvbmZpZy9hcm0vbW1pbnRyaW4uaAko d29ya2luZyBjb3B5KQpAQCAtMjQsMTYgKzI0LDI1IEBACiAjaWZuZGVmIF9N TUlOVFJJTl9IX0lOQ0xVREVECiAjZGVmaW5lIF9NTUlOVFJJTl9IX0lOQ0xV REVECiAKKyNpZiBkZWZpbmVkIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsg LyogQmVnaW4gIkMiICovCisvKiBJbnRyaW5zaWNzIHVzZSBDIG5hbWUtbWFu Z2xpbmcuICAqLworI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisKIC8qIFRo ZSBkYXRhIHR5cGUgaW50ZW5kZWQgZm9yIHVzZXIgdXNlLiAgKi8KLXR5cGVk ZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fbTY0LCBfX2ludDY0OworCisvKiAg V2Ugd2lsbCB0cmVhdCBfX2ludDY0IGFzIGEgbG9uZyBsb25nIHR5cGUKKyAg ICBhbmQgX19tNjQgYXMgYW4gdW5zaWduZWQgbG9uZyBsb25nIHR5cGUgdG8g Y29uZm9ybSB0byBWU0MrKy4gICovCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcg bG9uZyBfX202NDsKK3R5cGVkZWYgbG9uZyBsb25nIF9faW50NjQ7CiAKIC8q IEludGVybmFsIGRhdGEgdHlwZXMgZm9yIGltcGxlbWVudGluZyB0aGUgaW50 cmluc2ljcy4gICovCiB0eXBlZGVmIGludCBfX3Yyc2kgX19hdHRyaWJ1dGVf XyAoKHZlY3Rvcl9zaXplICg4KSkpOwogdHlwZWRlZiBzaG9ydCBfX3Y0aGkg X19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg4KSkpOwotdHlwZWRlZiBj aGFyIF9fdjhxaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDgpKSk7 Cit0eXBlZGVmIHNpZ25lZCBjaGFyIF9fdjhxaSBfX2F0dHJpYnV0ZV9fICgo dmVjdG9yX3NpemUgKDgpKSk7CiAKIC8qICJDb252ZXJ0IiBfX202NCBhbmQg X19pbnQ2NCBpbnRvIGVhY2ggb3RoZXIuICAqLwotc3RhdGljIF9faW5saW5l IF9fbTY0IAorc3RhdGljIF9faW5saW5lIF9fbTY0CiBfbW1fY3Z0c2k2NF9t NjQgKF9faW50NjQgX19pKQogewogICByZXR1cm4gX19pOwpAQCAtNTQsNyAr NjMsNyBAQCBfbW1fY3Z0c2k2NF9zaTMyIChfX2ludDY0IF9faSkKIHN0YXRp YyBfX2lubGluZSBfX2ludDY0CiBfbW1fY3Z0c2kzMl9zaTY0IChpbnQgX19p KQogewotICByZXR1cm4gX19pOworICByZXR1cm4gKF9faSAmIDB4ZmZmZmZm ZmYpOwogfQogCiAvKiBQYWNrIHRoZSBmb3VyIDE2LWJpdCB2YWx1ZXMgZnJv bSBNMSBpbnRvIHRoZSBsb3dlciBmb3VyIDgtYml0IHZhbHVlcyBvZgpAQCAt NjAzLDcgKzYxMiw3IEBAIF9tbV9hbmRfc2k2NCAoX19tNjQgX19tMSwgX19t NjQgX19tMikKIHN0YXRpYyBfX2lubGluZSBfX202NAogX21tX2FuZG5vdF9z aTY0IChfX202NCBfX20xLCBfX202NCBfX20yKQogewotICByZXR1cm4gX19i dWlsdGluX2FybV93YW5kbiAoX19tMSwgX19tMik7CisgIHJldHVybiBfX2J1 aWx0aW5fYXJtX3dhbmRuIChfX20yLCBfX20xKTsKIH0KIAogLyogQml0LXdp c2UgaW5jbHVzaXZlIE9SIHRoZSA2NC1iaXQgdmFsdWVzIGluIE0xIGFuZCBN Mi4gICovCkBAIC05MzUsNyArOTQ0LDEzIEBAIF9tbV9hdmcyX3B1MTYgKF9f bTY0IF9fQSwgX19tNjQgX19CKQogc3RhdGljIF9faW5saW5lIF9fbTY0CiBf bW1fc2FkX3B1OCAoX19tNjQgX19BLCBfX202NCBfX0IpCiB7Ci0gIHJldHVy biAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3NhZGIgKChfX3Y4cWkpX19BLCAo X192OHFpKV9fQik7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1f d3NhZGJ6ICgoX192OHFpKV9fQSwgKF9fdjhxaSlfX0IpOworfQorCitzdGF0 aWMgX19pbmxpbmUgX19tNjQKK19tbV9zYWRhX3B1OCAoX19tNjQgX19BLCBf X202NCBfX0IsIF9fbTY0IF9fQykKK3sKKyAgcmV0dXJuIChfX202NCkgX19i dWlsdGluX2FybV93c2FkYiAoKF9fdjJzaSlfX0EsIChfX3Y4cWkpX19CLCAo X192OHFpKV9fQyk7CiB9CiAKIC8qIENvbXB1dGUgdGhlIHN1bSBvZiB0aGUg YWJzb2x1dGUgZGlmZmVyZW5jZXMgb2YgdGhlIHVuc2lnbmVkIDE2LWJpdApA QCAtOTQ0LDkgKzk1OSwxNiBAQCBfbW1fc2FkX3B1OCAoX19tNjQgX19BLCBf X202NCBfX0IpCiBzdGF0aWMgX19pbmxpbmUgX19tNjQKIF9tbV9zYWRfcHUx NiAoX19tNjQgX19BLCBfX202NCBfX0IpCiB7Ci0gIHJldHVybiAoX19tNjQp IF9fYnVpbHRpbl9hcm1fd3NhZGggKChfX3Y0aGkpX19BLCAoX192NGhpKV9f Qik7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd3NhZGh6ICgo X192NGhpKV9fQSwgKF9fdjRoaSlfX0IpOwogfQogCitzdGF0aWMgX19pbmxp bmUgX19tNjQKK19tbV9zYWRhX3B1MTYgKF9fbTY0IF9fQSwgX19tNjQgX19C LCBfX202NCBfX0MpCit7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9h cm1fd3NhZGggKChfX3Yyc2kpX19BLCAoX192NGhpKV9fQiwgKF9fdjRoaSlf X0MpOworfQorCisKIC8qIENvbXB1dGUgdGhlIHN1bSBvZiB0aGUgYWJzb2x1 dGUgZGlmZmVyZW5jZXMgb2YgdGhlIHVuc2lnbmVkIDgtYml0CiAgICB2YWx1 ZXMgaW4gQSBhbmQgQi4gIFJldHVybiB0aGUgdmFsdWUgaW4gdGhlIGxvd2Vy IDE2LWJpdCB3b3JkOyB0aGUKICAgIHVwcGVyIHdvcmRzIGFyZSBjbGVhcmVk LiAgKi8KQEAgLTk2NSwxMSArOTg3LDggQEAgX21tX3NhZHpfcHUxNiAoX19t NjQgX19BLCBfX202NCBfX0IpCiAgIHJldHVybiAoX19tNjQpIF9fYnVpbHRp bl9hcm1fd3NhZGh6ICgoX192NGhpKV9fQSwgKF9fdjRoaSlfX0IpOwogfQog Ci1zdGF0aWMgX19pbmxpbmUgX19tNjQKLV9tbV9hbGlnbl9zaTY0IChfX202 NCBfX0EsIF9fbTY0IF9fQiwgaW50IF9fQykKLXsKLSAgcmV0dXJuIChfX202 NCkgX19idWlsdGluX2FybV93YWxpZ24gKChfX3Y4cWkpX19BLCAoX192OHFp KV9fQiwgX19DKTsKLX0KKyNkZWZpbmUgX21tX2FsaWduX3NpNjQoX19BLF9f QiwgTikgXAorICAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2FsaWduICgoX192 OHFpKSAoX19BKSwoX192OHFpKSAoX19CKSwgKE4pKQogCiAvKiBDcmVhdGVz IGEgNjQtYml0IHplcm8uICAqLwogc3RhdGljIF9faW5saW5lIF9fbTY0CkBA IC05ODUsNDQgKzEwMDQsODMgQEAgX21tX3NldHplcm9fc2k2NCAodm9pZCkK IHN0YXRpYyBfX2lubGluZSB2b2lkCiBfbW1fc2V0d2N4IChjb25zdCBpbnQg X192YWx1ZSwgY29uc3QgaW50IF9fcmVnbm8pCiB7CisgIC8qU2luY2UgZ2Nj IGhhcyB0aGUgaW1mb3JtYXRpb24gb2YgYWxsIHdjZ3IgcmVncworICAgIGlu IGFybSBiYWNrZW5kLCB1c2UgYnVpbHRpbiB0byBhY2Nlc3MgdGhlbSBpbnN0 ZWFkCisgICAgb2YgdGhyb3cgYXNtIGRpcmVjdGx5LiAgVGh1cywgZ2NjIGNv dWxkIGRvIHNvbWUKKyAgICBvcHRpbWl6YXRpb24gb24gdGhlbS4gICovCisK ICAgc3dpdGNoIChfX3JlZ25vKQogICAgIHsKLSAgICBjYXNlIDA6ICBfX2J1 aWx0aW5fYXJtX3NldHdjeCAoX192YWx1ZSwgMCk7IGJyZWFrOwotICAgIGNh c2UgMTogIF9fYnVpbHRpbl9hcm1fc2V0d2N4IChfX3ZhbHVlLCAxKTsgYnJl YWs7Ci0gICAgY2FzZSAyOiAgX19idWlsdGluX2FybV9zZXR3Y3ggKF9fdmFs dWUsIDIpOyBicmVhazsKLSAgICBjYXNlIDM6ICBfX2J1aWx0aW5fYXJtX3Nl dHdjeCAoX192YWx1ZSwgMyk7IGJyZWFrOwotICAgIGNhc2UgODogIF9fYnVp bHRpbl9hcm1fc2V0d2N4IChfX3ZhbHVlLCA4KTsgYnJlYWs7Ci0gICAgY2Fz ZSA5OiAgX19idWlsdGluX2FybV9zZXR3Y3ggKF9fdmFsdWUsIDkpOyBicmVh azsKLSAgICBjYXNlIDEwOiBfX2J1aWx0aW5fYXJtX3NldHdjeCAoX192YWx1 ZSwgMTApOyBicmVhazsKLSAgICBjYXNlIDExOiBfX2J1aWx0aW5fYXJtX3Nl dHdjeCAoX192YWx1ZSwgMTEpOyBicmVhazsKLSAgICBkZWZhdWx0OiBicmVh azsKKyAgICBjYXNlIDA6CisgICAgICBfX2FzbSBfX3ZvbGF0aWxlICgidG1j ciB3Y2lkLCAlMCIgOjogInIiKF9fdmFsdWUpKTsKKyAgICAgIGJyZWFrOwor ICAgIGNhc2UgMToKKyAgICAgIF9fYXNtIF9fdm9sYXRpbGUgKCJ0bWNyIHdj b24sICUwIiA6OiAiciIoX192YWx1ZSkpOworICAgICAgYnJlYWs7CisgICAg Y2FzZSAyOgorICAgICAgX19hc20gX192b2xhdGlsZSAoInRtY3Igd2Nzc2Ys ICUwIiA6OiAiciIoX192YWx1ZSkpOworICAgICAgYnJlYWs7CisgICAgY2Fz ZSAzOgorICAgICAgX19hc20gX192b2xhdGlsZSAoInRtY3Igd2Nhc2YsICUw IiA6OiAiciIoX192YWx1ZSkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSA4 OgorICAgICAgX19idWlsdGluX2FybV9zZXR3Y2dyMCAoX192YWx1ZSk7Cisg ICAgICBicmVhazsKKyAgICBjYXNlIDk6CisgICAgICBfX2J1aWx0aW5fYXJt X3NldHdjZ3IxIChfX3ZhbHVlKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2Ug MTA6CisgICAgICBfX2J1aWx0aW5fYXJtX3NldHdjZ3IyIChfX3ZhbHVlKTsK KyAgICAgIGJyZWFrOworICAgIGNhc2UgMTE6CisgICAgICBfX2J1aWx0aW5f YXJtX3NldHdjZ3IzIChfX3ZhbHVlKTsKKyAgICAgIGJyZWFrOworICAgIGRl ZmF1bHQ6CisgICAgICBicmVhazsKICAgICB9CiB9CiAKIHN0YXRpYyBfX2lu bGluZSBpbnQKIF9tbV9nZXR3Y3ggKGNvbnN0IGludCBfX3JlZ25vKQogewor ICBpbnQgX192YWx1ZTsKICAgc3dpdGNoIChfX3JlZ25vKQogICAgIHsKLSAg ICBjYXNlIDA6ICByZXR1cm4gX19idWlsdGluX2FybV9nZXR3Y3ggKDApOwot ICAgIGNhc2UgMTogIHJldHVybiBfX2J1aWx0aW5fYXJtX2dldHdjeCAoMSk7 Ci0gICAgY2FzZSAyOiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZ2V0d2N4ICgy KTsKLSAgICBjYXNlIDM6ICByZXR1cm4gX19idWlsdGluX2FybV9nZXR3Y3gg KDMpOwotICAgIGNhc2UgODogIHJldHVybiBfX2J1aWx0aW5fYXJtX2dldHdj eCAoOCk7Ci0gICAgY2FzZSA5OiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZ2V0 d2N4ICg5KTsKLSAgICBjYXNlIDEwOiByZXR1cm4gX19idWlsdGluX2FybV9n ZXR3Y3ggKDEwKTsKLSAgICBjYXNlIDExOiByZXR1cm4gX19idWlsdGluX2Fy bV9nZXR3Y3ggKDExKTsKLSAgICBkZWZhdWx0OiByZXR1cm4gMDsKKyAgICBj YXNlIDA6CisgICAgICBfX2FzbSBfX3ZvbGF0aWxlICgidG1yYyAlMCwgd2Np ZCIgOiAiPXIiKF9fdmFsdWUpKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2Ug MToKKyAgICAgIF9fYXNtIF9fdm9sYXRpbGUgKCJ0bXJjICUwLCB3Y29uIiA6 ICI9ciIoX192YWx1ZSkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSAyOgor ICAgICAgX19hc20gX192b2xhdGlsZSAoInRtcmMgJTAsIHdjc3NmIiA6ICI9 ciIoX192YWx1ZSkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSAzOgorICAg ICAgX19hc20gX192b2xhdGlsZSAoInRtcmMgJTAsIHdjYXNmIiA6ICI9ciIo X192YWx1ZSkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSA4OgorICAgICAg cmV0dXJuIF9fYnVpbHRpbl9hcm1fZ2V0d2NncjAgKCk7CisgICAgY2FzZSA5 OgorICAgICAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZ2V0d2NncjEgKCk7Cisg ICAgY2FzZSAxMDoKKyAgICAgIHJldHVybiBfX2J1aWx0aW5fYXJtX2dldHdj Z3IyICgpOworICAgIGNhc2UgMTE6CisgICAgICByZXR1cm4gX19idWlsdGlu X2FybV9nZXR3Y2dyMyAoKTsKKyAgICBkZWZhdWx0OgorICAgICAgYnJlYWs7 CiAgICAgfQorICByZXR1cm4gX192YWx1ZTsKIH0KIAogLyogQ3JlYXRlcyBh IHZlY3RvciBvZiB0d28gMzItYml0IHZhbHVlczsgSTAgaXMgbGVhc3Qgc2ln bmlmaWNhbnQuICAqLwogc3RhdGljIF9faW5saW5lIF9fbTY0CiBfbW1fc2V0 X3BpMzIgKGludCBfX2kxLCBpbnQgX19pMCkKIHsKLSAgdW5pb24geworICB1 bmlvbgorICB7CiAgICAgX19tNjQgX19xOwotICAgIHN0cnVjdCB7CisgICAg c3RydWN0CisgICAgewogICAgICAgdW5zaWduZWQgaW50IF9faTA7CiAgICAg ICB1bnNpZ25lZCBpbnQgX19pMTsKICAgICB9IF9fczsKQEAgLTEwNDEsNyAr MTA5OSw3IEBAIF9tbV9zZXRfcGkxNiAoc2hvcnQgX193Mywgc2hvcnQgX193 Miwgc2gKICAgdW5zaWduZWQgaW50IF9faTEgPSAodW5zaWduZWQgc2hvcnQp X193MyA8PCAxNiB8ICh1bnNpZ25lZCBzaG9ydClfX3cyOwogICB1bnNpZ25l ZCBpbnQgX19pMCA9ICh1bnNpZ25lZCBzaG9ydClfX3cxIDw8IDE2IHwgKHVu c2lnbmVkIHNob3J0KV9fdzA7CiAgIHJldHVybiBfbW1fc2V0X3BpMzIgKF9f aTEsIF9faTApOwotCQkgICAgICAgCisKIH0KIAogLyogQ3JlYXRlcyBhIHZl Y3RvciBvZiBlaWdodCA4LWJpdCB2YWx1ZXM7IEIwIGlzIGxlYXN0IHNpZ25p ZmljYW50LiAgKi8KQEAgLTExMTAsOSArMTE2OCw1MjEgQEAgX21tX3NldDFf cGk4IChjaGFyIF9fYikKIAogLyogQ29udmVydCBhbiBpbnRlZ2VyIHRvIGEg X19tNjQgb2JqZWN0LiAgKi8KIHN0YXRpYyBfX2lubGluZSBfX202NAotX21f ZnJvbV9pbnQgKGludCBfX2EpCitfbW1fYWJzX3BpOCAoX19tNjQgbTEpCit7 CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd2Fic2IgKChfX3Y4 cWkpbTEpOworfQorCitzdGF0aWMgX19pbmxpbmUgX19tNjQKK19tbV9hYnNf cGkxNiAoX19tNjQgbTEpCit7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRp bl9hcm1fd2Fic2ggKChfX3Y0aGkpbTEpOworCit9CisKK3N0YXRpYyBfX2lu bGluZSBfX202NAorX21tX2Fic19waTMyIChfX202NCBtMSkKK3sKKyAgcmV0 dXJuIChfX202NCkgX19idWlsdGluX2FybV93YWJzdyAoKF9fdjJzaSltMSk7 CisKK30KKworc3RhdGljIF9faW5saW5lIF9fbTY0CitfbW1fYWRkc3ViaHhf cGkxNiAoX19tNjQgYSwgX19tNjQgYikKK3sKKyAgcmV0dXJuIChfX202NCkg X19idWlsdGluX2FybV93YWRkc3ViaHggKChfX3Y0aGkpYSwgKF9fdjRoaSli KTsKK30KKworc3RhdGljIF9faW5saW5lIF9fbTY0CitfbW1fYWJzZGlmZl9w dTggKF9fbTY0IGEsIF9fbTY0IGIpCit7CisgIHJldHVybiAoX19tNjQpIF9f YnVpbHRpbl9hcm1fd2Fic2RpZmZiICgoX192OHFpKWEsIChfX3Y4cWkpYik7 Cit9CisKK3N0YXRpYyBfX2lubGluZSBfX202NAorX21tX2Fic2RpZmZfcHUx NiAoX19tNjQgYSwgX19tNjQgYikKK3sKKyAgcmV0dXJuIChfX202NCkgX19i dWlsdGluX2FybV93YWJzZGlmZmggKChfX3Y0aGkpYSwgKF9fdjRoaSliKTsK K30KKworc3RhdGljIF9faW5saW5lIF9fbTY0CitfbW1fYWJzZGlmZl9wdTMy IChfX202NCBhLCBfX202NCBiKQoreworICByZXR1cm4gKF9fbTY0KSBfX2J1 aWx0aW5fYXJtX3dhYnNkaWZmdyAoKF9fdjJzaSlhLCAoX192MnNpKWIpOwor fQorCitzdGF0aWMgX19pbmxpbmUgX19tNjQKK19tbV9hZGRjX3B1MTYgKF9f bTY0IGEsIF9fbTY0IGIpCit7CisgIF9fbTY0IHJlc3VsdDsKKyAgX19hc21f XyBfX3ZvbGF0aWxlX18gKCJ3YWRkaGMJJTAsICUxLCAlMiIgOiAiPXkiIChy ZXN1bHQpIDogInkiIChhKSwgICJ5IiAoYikpOworICByZXR1cm4gcmVzdWx0 OworfQorCitzdGF0aWMgX19pbmxpbmUgX19tNjQKK19tbV9hZGRjX3B1MzIg KF9fbTY0IGEsIF9fbTY0IGIpCit7CisgIF9fbTY0IHJlc3VsdDsKKyAgX19h c21fXyBfX3ZvbGF0aWxlX18gKCJ3YWRkd2MJJTAsICUxLCAlMiIgOiAiPXki IChyZXN1bHQpIDogInkiIChhKSwgICJ5IiAoYikpOworICByZXR1cm4gcmVz dWx0OworfQorCitzdGF0aWMgX19pbmxpbmUgX19tNjQKK19tbV9hdmc0X3B1 OCAoX19tNjQgYSwgX19tNjQgYikKK3sKKyAgcmV0dXJuIChfX202NCkgX19i dWlsdGluX2FybV93YXZnNCAoKF9fdjhxaSlhLCAoX192OHFpKWIpOworfQor CitzdGF0aWMgX19pbmxpbmUgX19tNjQKK19tbV9hdmc0cl9wdTggKF9fbTY0 IGEsIF9fbTY0IGIpCit7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9h cm1fd2F2ZzRyICgoX192OHFpKWEsIChfX3Y4cWkpYik7Cit9CisKK3N0YXRp YyBfX2lubGluZSBfX202NAorX21tX21hZGR4X3BpMTYgKF9fbTY0IGEsIF9f bTY0IGIpCit7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21h ZGRzeCAoKF9fdjRoaSlhLCAoX192NGhpKWIpOworfQorCitzdGF0aWMgX19p bmxpbmUgX19tNjQKK19tbV9tYWRkeF9wdTE2IChfX202NCBhLCBfX202NCBi KQoreworICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtYWRkdXgg KChfX3Y0aGkpYSwgKF9fdjRoaSliKTsKK30KKworc3RhdGljIF9faW5saW5l IF9fbTY0CitfbW1fbXN1Yl9waTE2IChfX202NCBhLCBfX202NCBiKQorewor ICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtYWRkc24gKChfX3Y0 aGkpYSwgKF9fdjRoaSliKTsKK30KKworc3RhdGljIF9faW5saW5lIF9fbTY0 CitfbW1fbXN1Yl9wdTE2IChfX202NCBhLCBfX202NCBiKQoreworICByZXR1 cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtYWRkdW4gKChfX3Y0aGkpYSwg KF9fdjRoaSliKTsKK30KKworc3RhdGljIF9faW5saW5lIF9fbTY0CitfbW1f bXVsaGlfcGkzMiAoX19tNjQgYSwgX19tNjQgYikKK3sKKyAgcmV0dXJuIChf X202NCkgX19idWlsdGluX2FybV93bXVsd3NtICgoX192MnNpKWEsIChfX3Yy c2kpYik7Cit9CisKK3N0YXRpYyBfX2lubGluZSBfX202NAorX21tX211bGhp X3B1MzIgKF9fbTY0IGEsIF9fbTY0IGIpCit7CisgIHJldHVybiAoX19tNjQp IF9fYnVpbHRpbl9hcm1fd211bHd1bSAoKF9fdjJzaSlhLCAoX192MnNpKWIp OworfQorCitzdGF0aWMgX19pbmxpbmUgX19tNjQKK19tbV9tdWxoaXJfcGkx NiAoX19tNjQgYSwgX19tNjQgYikKK3sKKyAgcmV0dXJuIChfX202NCkgX19i dWlsdGluX2FybV93bXVsc21yICgoX192NGhpKWEsIChfX3Y0aGkpYik7Cit9 CisKK3N0YXRpYyBfX2lubGluZSBfX202NAorX21tX211bGhpcl9waTMyIChf X202NCBhLCBfX202NCBiKQoreworICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0 aW5fYXJtX3dtdWx3c21yICgoX192MnNpKWEsIChfX3Yyc2kpYik7Cit9CisK K3N0YXRpYyBfX2lubGluZSBfX202NAorX21tX211bGhpcl9wdTE2IChfX202 NCBhLCBfX202NCBiKQoreworICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5f YXJtX3dtdWx1bXIgKChfX3Y0aGkpYSwgKF9fdjRoaSliKTsKK30KKworc3Rh dGljIF9faW5saW5lIF9fbTY0CitfbW1fbXVsaGlyX3B1MzIgKF9fbTY0IGEs IF9fbTY0IGIpCit7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1f d211bHd1bXIgKChfX3Yyc2kpYSwgKF9fdjJzaSliKTsKK30KKworc3RhdGlj IF9faW5saW5lIF9fbTY0CitfbW1fbXVsbG9fcGkzMiAoX19tNjQgYSwgX19t NjQgYikKK3sKKyAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93bXVs d2wgKChfX3Yyc2kpYSwgKF9fdjJzaSliKTsKK30KKworc3RhdGljIF9faW5s aW5lIF9fbTY0CitfbW1fcW11bG1fcGkxNiAoX19tNjQgYSwgX19tNjQgYikK K3sKKyAgcmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93cW11bG0gKChf X3Y0aGkpYSwgKF9fdjRoaSliKTsKK30KKworc3RhdGljIF9faW5saW5lIF9f bTY0CitfbW1fcW11bG1fcGkzMiAoX19tNjQgYSwgX19tNjQgYikKK3sKKyAg cmV0dXJuIChfX202NCkgX19idWlsdGluX2FybV93cW11bHdtICgoX192MnNp KWEsIChfX3Yyc2kpYik7Cit9CisKK3N0YXRpYyBfX2lubGluZSBfX202NAor X21tX3FtdWxtcl9waTE2IChfX202NCBhLCBfX202NCBiKQoreworICByZXR1 cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dxbXVsbXIgKChfX3Y0aGkpYSwg KF9fdjRoaSliKTsKK30KKworc3RhdGljIF9faW5saW5lIF9fbTY0CitfbW1f cW11bG1yX3BpMzIgKF9fbTY0IGEsIF9fbTY0IGIpCit7CisgIHJldHVybiAo X19tNjQpIF9fYnVpbHRpbl9hcm1fd3FtdWx3bXIgKChfX3Yyc2kpYSwgKF9f djJzaSliKTsKK30KKworc3RhdGljIF9faW5saW5lIF9fbTY0CitfbW1fc3Vi YWRkaHhfcGkxNiAoX19tNjQgYSwgX19tNjQgYikKK3sKKyAgcmV0dXJuIChf X202NCkgX19idWlsdGluX2FybV93c3ViYWRkaHggKChfX3Y0aGkpYSwgKF9f djRoaSliKTsKK30KKworc3RhdGljIF9faW5saW5lIF9fbTY0CitfbW1fYWRk Ymh1c2xfcHU4IChfX202NCBhLCBfX202NCBiKQoreworICByZXR1cm4gKF9f bTY0KSBfX2J1aWx0aW5fYXJtX3dhZGRiaHVzbCAoKF9fdjRoaSlhLCAoX192 OHFpKWIpOworfQorCitzdGF0aWMgX19pbmxpbmUgX19tNjQKK19tbV9hZGRi aHVzbV9wdTggKF9fbTY0IGEsIF9fbTY0IGIpCit7CisgIHJldHVybiAoX19t NjQpIF9fYnVpbHRpbl9hcm1fd2FkZGJodXNtICgoX192NGhpKWEsIChfX3Y4 cWkpYik7Cit9CisKKyNkZWZpbmUgX21tX3FtaWFiYl9waTMyKGFjYywgbTEs IG0yKSBcCisgICh7XAorICAgX19tNjQgX2FjYyA9IGFjYztcCisgICBfX202 NCBfbTEgPSBtMTtcCisgICBfX202NCBfbTIgPSBtMjtcCisgICBfYWNjID0g KF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dxbWlhYmIgKChfX3Yyc2kpX2FjYywg KF9fdjRoaSlfbTEsIChfX3Y0aGkpX20yKTtcCisgICBfYWNjO1wKKyAgIH0p CisKKyNkZWZpbmUgX21tX3FtaWFiYm5fcGkzMihhY2MsIG0xLCBtMikgXAor ICAoe1wKKyAgIF9fbTY0IF9hY2MgPSBhY2M7XAorICAgX19tNjQgX20xID0g bTE7XAorICAgX19tNjQgX20yID0gbTI7XAorICAgX2FjYyA9IChfX202NCkg X19idWlsdGluX2FybV93cW1pYWJibiAoKF9fdjJzaSlfYWNjLCAoX192NGhp KV9tMSwgKF9fdjRoaSlfbTIpO1wKKyAgIF9hY2M7XAorICAgfSkKKworI2Rl ZmluZSBfbW1fcW1pYWJ0X3BpMzIoYWNjLCBtMSwgbTIpIFwKKyAgKHtcCisg ICBfX202NCBfYWNjID0gYWNjO1wKKyAgIF9fbTY0IF9tMSA9IG0xO1wKKyAg IF9fbTY0IF9tMiA9IG0yO1wKKyAgIF9hY2MgPSAoX19tNjQpIF9fYnVpbHRp bl9hcm1fd3FtaWFidCAoKF9fdjJzaSlfYWNjLCAoX192NGhpKV9tMSwgKF9f djRoaSlfbTIpO1wKKyAgIF9hY2M7XAorICAgfSkKKworI2RlZmluZSBfbW1f cW1pYWJ0bl9waTMyKGFjYywgbTEsIG0yKSBcCisgICh7XAorICAgX19tNjQg X2FjYz1hY2M7XAorICAgX19tNjQgX20xPW0xO1wKKyAgIF9fbTY0IF9tMj1t MjtcCisgICBfYWNjID0gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dxbWlhYnRu ICgoX192MnNpKV9hY2MsIChfX3Y0aGkpX20xLCAoX192NGhpKV9tMik7XAor ICAgX2FjYztcCisgICB9KQorCisjZGVmaW5lIF9tbV9xbWlhdGJfcGkzMihh Y2MsIG0xLCBtMikgXAorICAoe1wKKyAgIF9fbTY0IF9hY2MgPSBhY2M7XAor ICAgX19tNjQgX20xID0gbTE7XAorICAgX19tNjQgX20yID0gbTI7XAorICAg X2FjYyA9IChfX202NCkgX19idWlsdGluX2FybV93cW1pYXRiICgoX192MnNp KV9hY2MsIChfX3Y0aGkpX20xLCAoX192NGhpKV9tMik7XAorICAgX2FjYztc CisgICB9KQorCisjZGVmaW5lIF9tbV9xbWlhdGJuX3BpMzIoYWNjLCBtMSwg bTIpIFwKKyAgKHtcCisgICBfX202NCBfYWNjID0gYWNjO1wKKyAgIF9fbTY0 IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9tMiA9IG0yO1wKKyAgIF9hY2MgPSAo X19tNjQpIF9fYnVpbHRpbl9hcm1fd3FtaWF0Ym4gKChfX3Yyc2kpX2FjYywg KF9fdjRoaSlfbTEsIChfX3Y0aGkpX20yKTtcCisgICBfYWNjO1wKKyAgIH0p CisKKyNkZWZpbmUgX21tX3FtaWF0dF9waTMyKGFjYywgbTEsIG0yKSBcCisg ICh7XAorICAgX19tNjQgX2FjYyA9IGFjYztcCisgICBfX202NCBfbTEgPSBt MTtcCisgICBfX202NCBfbTIgPSBtMjtcCisgICBfYWNjID0gKF9fbTY0KSBf X2J1aWx0aW5fYXJtX3dxbWlhdHQgKChfX3Yyc2kpX2FjYywgKF9fdjRoaSlf bTEsIChfX3Y0aGkpX20yKTtcCisgICBfYWNjO1wKKyAgIH0pCisKKyNkZWZp bmUgX21tX3FtaWF0dG5fcGkzMihhY2MsIG0xLCBtMikgXAorICAoe1wKKyAg IF9fbTY0IF9hY2MgPSBhY2M7XAorICAgX19tNjQgX20xID0gbTE7XAorICAg X19tNjQgX20yID0gbTI7XAorICAgX2FjYyA9IChfX202NCkgX19idWlsdGlu X2FybV93cW1pYXR0biAoKF9fdjJzaSlfYWNjLCAoX192NGhpKV9tMSwgKF9f djRoaSlfbTIpO1wKKyAgIF9hY2M7XAorICAgfSkKKworI2RlZmluZSBfbW1f d21pYWJiX3NpNjQoYWNjLCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBf YWNjID0gYWNjO1wKKyAgIF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9t MiA9IG0yO1wKKyAgIF9hY2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21p YWJiIChfYWNjLCAoX192NGhpKV9tMSwgKF9fdjRoaSlfbTIpO1wKKyAgIF9h Y2M7XAorICAgfSkKKworI2RlZmluZSBfbW1fd21pYWJibl9zaTY0KGFjYywg bTEsIG0yKSBcCisgICh7XAorICAgX19tNjQgX2FjYyA9IGFjYztcCisgICBf X202NCBfbTEgPSBtMTtcCisgICBfX202NCBfbTIgPSBtMjtcCisgICBfYWNj ID0gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dtaWFiYm4gKF9hY2MsIChfX3Y0 aGkpX20xLCAoX192NGhpKV9tMik7XAorICAgX2FjYztcCisgICB9KQorCisj ZGVmaW5lIF9tbV93bWlhYnRfc2k2NChhY2MsIG0xLCBtMikgXAorICAoe1wK KyAgIF9fbTY0IF9hY2MgPSBhY2M7XAorICAgX19tNjQgX20xID0gbTE7XAor ICAgX19tNjQgX20yID0gbTI7XAorICAgX2FjYyA9IChfX202NCkgX19idWls dGluX2FybV93bWlhYnQgKF9hY2MsIChfX3Y0aGkpX20xLCAoX192NGhpKV9t Mik7XAorICAgX2FjYztcCisgICB9KQorCisjZGVmaW5lIF9tbV93bWlhYnRu X3NpNjQoYWNjLCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBfYWNjID0g YWNjO1wKKyAgIF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9tMiA9IG0y O1wKKyAgIF9hY2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21pYWJ0biAo X2FjYywgKF9fdjRoaSlfbTEsIChfX3Y0aGkpX20yKTtcCisgICBfYWNjO1wK KyAgIH0pCisKKyNkZWZpbmUgX21tX3dtaWF0Yl9zaTY0KGFjYywgbTEsIG0y KSBcCisgICh7XAorICAgX19tNjQgX2FjYyA9IGFjYztcCisgICBfX202NCBf bTEgPSBtMTtcCisgICBfX202NCBfbTIgPSBtMjtcCisgICBfYWNjID0gKF9f bTY0KSBfX2J1aWx0aW5fYXJtX3dtaWF0YiAoX2FjYywgKF9fdjRoaSlfbTEs IChfX3Y0aGkpX20yKTtcCisgICBfYWNjO1wKKyAgIH0pCisKKyNkZWZpbmUg X21tX3dtaWF0Ym5fc2k2NChhY2MsIG0xLCBtMikgXAorICAoe1wKKyAgIF9f bTY0IF9hY2MgPSBhY2M7XAorICAgX19tNjQgX20xID0gbTE7XAorICAgX19t NjQgX20yID0gbTI7XAorICAgX2FjYyA9IChfX202NCkgX19idWlsdGluX2Fy bV93bWlhdGJuIChfYWNjLCAoX192NGhpKV9tMSwgKF9fdjRoaSlfbTIpO1wK KyAgIF9hY2M7XAorICAgfSkKKworI2RlZmluZSBfbW1fd21pYXR0X3NpNjQo YWNjLCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBfYWNjID0gYWNjO1wK KyAgIF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9tMiA9IG0yO1wKKyAg IF9hY2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21pYXR0IChfYWNjLCAo X192NGhpKV9tMSwgKF9fdjRoaSlfbTIpO1wKKyAgIF9hY2M7XAorICAgfSkK KworI2RlZmluZSBfbW1fd21pYXR0bl9zaTY0KGFjYywgbTEsIG0yKSBcCisg ICh7XAorICAgX19tNjQgX2FjYyA9IGFjYztcCisgICBfX202NCBfbTEgPSBt MTtcCisgICBfX202NCBfbTIgPSBtMjtcCisgICBfYWNjID0gKF9fbTY0KSBf X2J1aWx0aW5fYXJtX3dtaWF0dG4gKF9hY2MsIChfX3Y0aGkpX20xLCAoX192 NGhpKV9tMik7XAorICAgX2FjYztcCisgICB9KQorCisjZGVmaW5lIF9tbV93 bWlhd2JiX3NpNjQoYWNjLCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBf YWNjID0gYWNjO1wKKyAgIF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9t MiA9IG0yO1wKKyAgIF9hY2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21p YXdiYiAoX2FjYywgKF9fdjJzaSlfbTEsIChfX3Yyc2kpX20yKTtcCisgICBf YWNjO1wKKyAgIH0pCisKKyNkZWZpbmUgX21tX3dtaWF3YmJuX3NpNjQoYWNj LCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBfYWNjID0gYWNjO1wKKyAg IF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9tMiA9IG0yO1wKKyAgIF9h Y2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21pYXdiYm4gKF9hY2MsIChf X3Yyc2kpX20xLCAoX192MnNpKV9tMik7XAorICAgX2FjYztcCisgICB9KQor CisjZGVmaW5lIF9tbV93bWlhd2J0X3NpNjQoYWNjLCBtMSwgbTIpIFwKKyAg KHtcCisgICBfX202NCBfYWNjID0gYWNjO1wKKyAgIF9fbTY0IF9tMSA9IG0x O1wKKyAgIF9fbTY0IF9tMiA9IG0yO1wKKyAgIF9hY2MgPSAoX19tNjQpIF9f YnVpbHRpbl9hcm1fd21pYXdidCAoX2FjYywgKF9fdjJzaSlfbTEsIChfX3Yy c2kpX20yKTtcCisgICBfYWNjO1wKKyAgIH0pCisKKyNkZWZpbmUgX21tX3dt aWF3YnRuX3NpNjQoYWNjLCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBf YWNjID0gYWNjO1wKKyAgIF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9t MiA9IG0yO1wKKyAgIF9hY2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21p YXdidG4gKF9hY2MsIChfX3Yyc2kpX20xLCAoX192MnNpKV9tMik7XAorICAg X2FjYztcCisgICB9KQorCisjZGVmaW5lIF9tbV93bWlhd3RiX3NpNjQoYWNj LCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBfYWNjID0gYWNjO1wKKyAg IF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9tMiA9IG0yO1wKKyAgIF9h Y2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21pYXd0YiAoX2FjYywgKF9f djJzaSlfbTEsIChfX3Yyc2kpX20yKTtcCisgICBfYWNjO1wKKyAgIH0pCisK KyNkZWZpbmUgX21tX3dtaWF3dGJuX3NpNjQoYWNjLCBtMSwgbTIpIFwKKyAg KHtcCisgICBfX202NCBfYWNjID0gYWNjO1wKKyAgIF9fbTY0IF9tMSA9IG0x O1wKKyAgIF9fbTY0IF9tMiA9IG0yO1wKKyAgIF9hY2MgPSAoX19tNjQpIF9f YnVpbHRpbl9hcm1fd21pYXd0Ym4gKF9hY2MsIChfX3Yyc2kpX20xLCAoX192 MnNpKV9tMik7XAorICAgX2FjYztcCisgICB9KQorCisjZGVmaW5lIF9tbV93 bWlhd3R0X3NpNjQoYWNjLCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBf YWNjID0gYWNjO1wKKyAgIF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9t MiA9IG0yO1wKKyAgIF9hY2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21p YXd0dCAoX2FjYywgKF9fdjJzaSlfbTEsIChfX3Yyc2kpX20yKTtcCisgICBf YWNjO1wKKyAgIH0pCisKKyNkZWZpbmUgX21tX3dtaWF3dHRuX3NpNjQoYWNj LCBtMSwgbTIpIFwKKyAgKHtcCisgICBfX202NCBfYWNjID0gYWNjO1wKKyAg IF9fbTY0IF9tMSA9IG0xO1wKKyAgIF9fbTY0IF9tMiA9IG0yO1wKKyAgIF9h Y2MgPSAoX19tNjQpIF9fYnVpbHRpbl9hcm1fd21pYXd0dG4gKF9hY2MsIChf X3Yyc2kpX20xLCAoX192MnNpKV9tMik7XAorICAgX2FjYztcCisgICB9KQor CisvKiBUaGUgdGhpcmQgYXJndW1lbnRzIHNob3VsZCBiZSBhbiBpbW1lZGlh dGUuICAqLworI2RlZmluZSBfbW1fbWVyZ2Vfc2k2NChhLCBiLCBuKSBcCisg ICh7XAorICAgX19tNjQgcmVzdWx0O1wKKyAgIHJlc3VsdCA9IChfX202NCkg X19idWlsdGluX2FybV93bWVyZ2UgKChfX202NCkgKGEpLCAoX19tNjQpIChi KSwgKG4pKTtcCisgICByZXN1bHQ7XAorICAgfSkKKworc3RhdGljIF9faW5s aW5lIF9fbTY0CitfbW1fYWxpZ25yMF9zaTY0IChfX202NCBhLCBfX202NCBi KQoreworICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhbGlnbnIw ICgoX192OHFpKSBhLCAoX192OHFpKSBiKTsKK30KKworc3RhdGljIF9faW5s aW5lIF9fbTY0CitfbW1fYWxpZ25yMV9zaTY0IChfX202NCBhLCBfX202NCBi KQoreworICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhbGlnbnIx ICgoX192OHFpKSBhLCAoX192OHFpKSBiKTsKK30KKworc3RhdGljIF9faW5s aW5lIF9fbTY0CitfbW1fYWxpZ25yMl9zaTY0IChfX202NCBhLCBfX202NCBi KQoreworICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhbGlnbnIy ICgoX192OHFpKSBhLCAoX192OHFpKSBiKTsKK30KKworc3RhdGljIF9faW5s aW5lIF9fbTY0CitfbW1fYWxpZ25yM19zaTY0IChfX202NCBhLCBfX202NCBi KQoreworICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3dhbGlnbnIz ICgoX192OHFpKSBhLCAoX192OHFpKSBiKTsKK30KKworc3RhdGljIF9faW5s aW5lIHZvaWQKK19tbV90YW5kY2IgKCkKK3sKKyAgX19hc20gX192b2xhdGls ZSAoInRhbmRjYiByMTUiKTsKK30KKworc3RhdGljIF9faW5saW5lIHZvaWQK K19tbV90YW5kY2ggKCkKK3sKKyAgX19hc20gX192b2xhdGlsZSAoInRhbmRj aCByMTUiKTsKK30KKworc3RhdGljIF9faW5saW5lIHZvaWQKK19tbV90YW5k Y3cgKCkKK3sKKyAgX19hc20gX192b2xhdGlsZSAoInRhbmRjdyByMTUiKTsK K30KKworI2RlZmluZSBfbW1fdGV4dHJjYihuKSBcCisgICh7XAorICAgX19h c21fXyBfX3ZvbGF0aWxlX18gKFwKKyAgICAgInRleHRyY2IgcjE1LCAlMCIg OiA6ICJpIiAobikpO1wKKyAgIH0pCisKKyNkZWZpbmUgX21tX3RleHRyY2go bikgXAorICAoe1wKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fIChcCisgICAg ICJ0ZXh0cmNoIHIxNSwgJTAiIDogOiAiaSIgKG4pKTtcCisgICB9KQorCisj ZGVmaW5lIF9tbV90ZXh0cmN3KG4pIFwKKyAgKHtcCisgICBfX2FzbV9fIF9f dm9sYXRpbGVfXyAoXAorICAgICAidGV4dHJjdyByMTUsICUwIiA6IDogImki IChuKSk7XAorICAgfSkKKworc3RhdGljIF9faW5saW5lIHZvaWQKK19tbV90 b3JjYiAoKQoreworICBfX2FzbSBfX3ZvbGF0aWxlICgidG9yY2IgcjE1Iik7 Cit9CisKK3N0YXRpYyBfX2lubGluZSB2b2lkCitfbW1fdG9yY2ggKCkKK3sK KyAgX19hc20gX192b2xhdGlsZSAoInRvcmNoIHIxNSIpOworfQorCitzdGF0 aWMgX19pbmxpbmUgdm9pZAorX21tX3RvcmN3ICgpCit7CisgIF9fYXNtIF9f dm9sYXRpbGUgKCJ0b3JjdyByMTUiKTsKK30KKworc3RhdGljIF9faW5saW5l IHZvaWQKK19tbV90b3J2c2NiICgpCit7CisgIF9fYXNtIF9fdm9sYXRpbGUg KCJ0b3J2c2NiIHIxNSIpOworfQorCitzdGF0aWMgX19pbmxpbmUgdm9pZAor X21tX3RvcnZzY2ggKCkKK3sKKyAgX19hc20gX192b2xhdGlsZSAoInRvcnZz Y2ggcjE1Iik7Cit9CisKK3N0YXRpYyBfX2lubGluZSB2b2lkCitfbW1fdG9y dnNjdyAoKQoreworICBfX2FzbSBfX3ZvbGF0aWxlICgidG9ydnNjdyByMTUi KTsKK30KKworc3RhdGljIF9faW5saW5lIF9fbTY0CitfbW1fdGJjc3RfcGk4 IChpbnQgdmFsdWUpCit7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9h cm1fdGJjc3RiICgoc2lnbmVkIGNoYXIpIHZhbHVlKTsKK30KKworc3RhdGlj IF9faW5saW5lIF9fbTY0CitfbW1fdGJjc3RfcGkxNiAoaW50IHZhbHVlKQor eworICByZXR1cm4gKF9fbTY0KSBfX2J1aWx0aW5fYXJtX3RiY3N0aCAoKHNo b3J0KSB2YWx1ZSk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBfX202NAorX21t X3RiY3N0X3BpMzIgKGludCB2YWx1ZSkKIHsKLSAgcmV0dXJuIChfX202NClf X2E7CisgIHJldHVybiAoX19tNjQpIF9fYnVpbHRpbl9hcm1fdGJjc3R3ICh2 YWx1ZSk7CiB9CiAKICNkZWZpbmUgX21fcGFja3Nzd2IgX21tX3BhY2tzX3Bp MTYKQEAgLTEyNTAsNSArMTgyMCwxMCBAQCBfbV9mcm9tX2ludCAoaW50IF9f YSkKICNkZWZpbmUgX21fcGFsaWduaXEgX21tX2FsaWduX3NpNjQKICNkZWZp bmUgX21fY3Z0X3NpMnBpIF9tbV9jdnRzaTY0X202NAogI2RlZmluZSBfbV9j dnRfcGkyc2kgX21tX2N2dG02NF9zaTY0CisjZGVmaW5lIF9tX2Zyb21faW50 IF9tbV9jdnRzaTMyX3NpNjQKKyNkZWZpbmUgX21fdG9faW50IF9tbV9jdnRz aTY0X3NpMzIKIAorI2lmIGRlZmluZWQgX19jcGx1c3BsdXMKK307IC8qIEVu ZCAiQyIgKi8KKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLwogI2VuZGlmIC8q IF9NTUlOVFJJTl9IX0lOQ0xVREVEICovCg== --_002_4737A960563B524DA805CA602BE04B306010D8E699SCVEXCH2marve_--