From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 124256 invoked by alias); 25 Sep 2018 13:11:55 -0000 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 Received: (qmail 124186 invoked by uid 89); 25 Sep 2018 13:11:54 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.9 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=2.0 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 25 Sep 2018 13:11:50 +0000 Received: from svr-orw-mbx-02.mgc.mentorg.com ([147.34.90.202]) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1g4n80-0004LV-IT from ChungLin_Tang@mentor.com for gcc-patches@gcc.gnu.org; Tue, 25 Sep 2018 06:11:48 -0700 Received: from [0.0.0.0] (147.34.91.1) by svr-orw-mbx-02.mgc.mentorg.com (147.34.90.202) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Tue, 25 Sep 2018 06:11:45 -0700 Reply-To: From: Chung-Lin Tang Subject: [PATCH 5/6, OpenACC, libgomp] Async re-work, C/C++ testsuite changes To: , Thomas Schwinge Message-ID: <8086c63b-f729-891b-3d21-76871d360734@mentor.com> Date: Tue, 25 Sep 2018 13:12:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------A99011B69AF57E082A6BA82E" X-SW-Source: 2018-09/txt/msg01430.txt.bz2 --------------A99011B69AF57E082A6BA82E Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-length: 573 These are the testsuite/libgomp.oacc-c-c++-common/* changes. Thanks, Chung-Lin * testsuite/libgomp.oacc-c-c++-common/asyncwait-2.c: New testcase. * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Adjust testcase. * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise. --------------A99011B69AF57E082A6BA82E Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="async-05.c-c++-testsuite.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="async-05.c-c++-testsuite.patch" Content-length: 28317 ZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2FjYy1j LWMrKy1jb21tb24vYXN5bmN3YWl0LTIuYyBiL2xpYmdvbXAvdGVzdHN1aXRl L2xpYmdvbXAub2FjYy1jLWMrKy1jb21tb24vYXN5bmN3YWl0LTIuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDIwNTQwCi0tLSAv ZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5vYWNj LWMtYysrLWNvbW1vbi9hc3luY3dhaXQtMi5jCkBAIC0wLDAgKzEsOTA0IEBA CisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBvcGVuYWNjX252aWRpYV9hY2Nl bF9zZWxlY3RlZCB9IH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25z ICItbGN1ZGEiIH0gKi8KKworI2luY2x1ZGUgPG9wZW5hY2MuaD4KKyNpbmNs dWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxjdWRhLmg+CisKKyNpbmNsdWRl IDxzdGRpby5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxzeXMv dGltZS5oPgorCitpbnQKK21haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikK K3sKKyAgICBDVXJlc3VsdCByOworICAgIENVc3RyZWFtIHN0cmVhbTE7Cisg ICAgaW50IE4gPSAxMjg7IC8vMTAyNCAqIDEwMjQ7CisgICAgZmxvYXQgKmEs ICpiLCAqYywgKmQsICplOworICAgIGludCBpOworICAgIGludCBuYnl0ZXM7 CisKKyAgICBzcmFuZCAodGltZSAoTlVMTCkpOworICAgIGludCBzID0gcmFu ZCAoKSAlIDEwMDsKKworICAgIGFjY19pbml0IChhY2NfZGV2aWNlX252aWRp YSk7CisKKyAgICBuYnl0ZXMgPSBOICogc2l6ZW9mIChmbG9hdCk7CisKKyAg ICBhID0gKGZsb2F0ICopIG1hbGxvYyAobmJ5dGVzKTsKKyAgICBiID0gKGZs b2F0ICopIG1hbGxvYyAobmJ5dGVzKTsKKyAgICBjID0gKGZsb2F0ICopIG1h bGxvYyAobmJ5dGVzKTsKKyAgICBkID0gKGZsb2F0ICopIG1hbGxvYyAobmJ5 dGVzKTsKKyAgICBlID0gKGZsb2F0ICopIG1hbGxvYyAobmJ5dGVzKTsKKwor ICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgICBh W2ldID0gMy4wOworICAgICAgICBiW2ldID0gMC4wOworICAgIH0KKworICAg IGFjY19zZXRfZGVmYXVsdF9hc3luYyAocyk7CisKKyNwcmFnbWEgYWNjIGRh dGEgY29weSAoYVswOk5dKSBjb3B5IChiWzA6Tl0pIGNvcHlpbiAoTikKKyAg ICB7CisKKyNwcmFnbWEgYWNjIHBhcmFsbGVsIGFzeW5jCisgICAgeworICAg ICAgICBpbnQgaWk7CisKKyAgICAgICAgZm9yIChpaSA9IDA7IGlpIDwgTjsg aWkrKykKKyAgICAgICAgICAgIGJbaWldID0gYVtpaV07CisgICAgfQorCisj cHJhZ21hIGFjYyB3YWl0CisKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBp IDwgTjsgaSsrKQorICAgIHsKKyAgICAgICAgaWYgKGFbaV0gIT0gMy4wKQor ICAgICAgICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGJbaV0gIT0g My4wKQorICAgICAgICAgICAgYWJvcnQgKCk7CisgICAgfQorCisgICAgZm9y IChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7CisgICAgICAgIGFbaV0gPSAy LjA7CisgICAgICAgIGJbaV0gPSAwLjA7CisgICAgfQorCisjcHJhZ21hIGFj YyBkYXRhIGNvcHkgKGFbMDpOXSkgY29weSAoYlswOk5dKSBjb3B5aW4gKE4p CisgICAgeworCisjcHJhZ21hIGFjYyBwYXJhbGxlbCBhc3luYworICAgIHsK KyAgICAgICAgaW50IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8 IE47IGlpKyspCisgICAgICAgICAgICBiW2lpXSA9IGFbaWldOworICAgIH0K KworI3ByYWdtYSBhY2Mgd2FpdCAocykKKworICAgIH0KKworICAgIGZvciAo aSA9IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgICBpZiAoYVtpXSAh PSAyLjApCisgICAgICAgICAgICBhYm9ydCAoKTsKKworICAgICAgICBpZiAo YltpXSAhPSAyLjApCisgICAgICAgICAgICBhYm9ydCAoKTsKKyAgICB9CisK KyAgICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQorICAgIHsKKyAgICAgICAg YVtpXSA9IDMuMDsKKyAgICAgICAgYltpXSA9IDAuMDsKKyAgICAgICAgY1tp XSA9IDAuMDsKKyAgICAgICAgZFtpXSA9IDAuMDsKKyAgICB9CisKKyNwcmFn bWEgYWNjIGRhdGEgY29weSAoYVswOk5dKSBjb3B5IChiWzA6Tl0pIGNvcHkg KGNbMDpOXSkgY29weSAoZFswOk5dKSBjb3B5aW4gKE4pCisgICAgeworCisj cHJhZ21hIGFjYyBwYXJhbGxlbCBhc3luYworICAgIHsKKyAgICAgICAgaW50 IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisg ICAgICAgICAgICBiW2lpXSA9IChhW2lpXSAqIGFbaWldICogYVtpaV0pIC8g YVtpaV07CisgICAgfQorCisjcHJhZ21hIGFjYyBwYXJhbGxlbCBhc3luYwor ICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAgICAgIGZvciAoaWkgPSAw OyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBjW2lpXSA9IChhW2lpXSAr IGFbaWldICsgYVtpaV0gKyBhW2lpXSkgLyBhW2lpXTsKKyAgICB9CisKKwor I3ByYWdtYSBhY2MgcGFyYWxsZWwgYXN5bmMKKyAgICB7CisgICAgICAgIGlu dCBpaTsKKworICAgICAgICBmb3IgKGlpID0gMDsgaWkgPCBOOyBpaSsrKQor ICAgICAgICAgICAgZFtpaV0gPSAoKGFbaWldICogYVtpaV0gKyBhW2lpXSkg LyBhW2lpXSkgLSBhW2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNjIHdhaXQg KHMpCisKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQor ICAgIHsKKyAgICAgICAgaWYgKGFbaV0gIT0gMy4wKQorICAgICAgICAgICAg YWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGJbaV0gIT0gOS4wKQorICAgICAg ICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGNbaV0gIT0gNC4wKQor ICAgICAgICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGRbaV0gIT0g MS4wKQorICAgICAgICAgICAgYWJvcnQgKCk7CisgICAgfQorCisgICAgZm9y IChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7CisgICAgICAgIGFbaV0gPSAy LjA7CisgICAgICAgIGJbaV0gPSAwLjA7CisgICAgICAgIGNbaV0gPSAwLjA7 CisgICAgICAgIGRbaV0gPSAwLjA7CisgICAgICAgIGVbaV0gPSAwLjA7Cisg ICAgfQorCisjcHJhZ21hIGFjYyBkYXRhIGNvcHkgKGFbMDpOXSwgYlswOk5d LCBjWzA6Tl0sIGRbMDpOXSwgZVswOk5dKSBjb3B5aW4gKE4pCisgICAgewor CisjcHJhZ21hIGFjYyBwYXJhbGxlbCBhc3luYworICAgIHsKKyAgICAgICAg aW50IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKysp CisgICAgICAgICAgICBiW2lpXSA9IChhW2lpXSAqIGFbaWldICogYVtpaV0p IC8gYVtpaV07CisgICAgfQorCisjcHJhZ21hIGFjYyBwYXJhbGxlbCBhc3lu YworICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAgICAgIGZvciAoaWkg PSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBjW2lpXSA9IChhW2lp XSArIGFbaWldICsgYVtpaV0gKyBhW2lpXSkgLyBhW2lpXTsKKyAgICB9CisK KyNwcmFnbWEgYWNjIHBhcmFsbGVsIGFzeW5jCisgICAgeworICAgICAgICBp bnQgaWk7CisKKyAgICAgICAgZm9yIChpaSA9IDA7IGlpIDwgTjsgaWkrKykK KyAgICAgICAgICAgIGRbaWldID0gKChhW2lpXSAqIGFbaWldICsgYVtpaV0p IC8gYVtpaV0pIC0gYVtpaV07CisgICAgfQorCisjcHJhZ21hIGFjYyBwYXJh bGxlbCB3YWl0IChzKSBhc3luYyAocykKKyAgICB7CisgICAgICAgIGludCBp aTsKKworICAgICAgICBmb3IgKGlpID0gMDsgaWkgPCBOOyBpaSsrKQorICAg ICAgICAgICAgZVtpaV0gPSBhW2lpXSArIGJbaWldICsgY1tpaV0gKyBkW2lp XTsKKyAgICB9CisKKyNwcmFnbWEgYWNjIHdhaXQgKHMpCisKKyAgICB9CisK KyAgICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQorICAgIHsKKyAgICAgICAg aWYgKGFbaV0gIT0gMi4wKQorICAgICAgICAgICAgYWJvcnQgKCk7CisKKyAg ICAgICAgaWYgKGJbaV0gIT0gNC4wKQorICAgICAgICAgICAgYWJvcnQgKCk7 CisKKyAgICAgICAgaWYgKGNbaV0gIT0gNC4wKQorICAgICAgICAgICAgYWJv cnQgKCk7CisKKyAgICAgICAgaWYgKGRbaV0gIT0gMS4wKQorICAgICAgICAg ICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGVbaV0gIT0gMTEuMCkKKyAg ICAgICAgICAgIGFib3J0ICgpOworICAgIH0KKworCisgICAgciA9IGN1U3Ry ZWFtQ3JlYXRlICgmc3RyZWFtMSwgQ1VfU1RSRUFNX05PTl9CTE9DS0lORyk7 CisgICAgaWYgKHIgIT0gQ1VEQV9TVUNDRVNTKQorICAgIHsKKyAgICAgICAg ZnByaW50ZiAoc3RkZXJyLCAiY3VTdHJlYW1DcmVhdGUgZmFpbGVkOiAlZFxu Iiwgcik7CisgICAgICAgIGFib3J0ICgpOworICAgIH0KKworICAgIGFjY19z ZXRfY3VkYV9zdHJlYW0gKDEsIHN0cmVhbTEpOworCisgICAgZm9yIChpID0g MDsgaSA8IE47IGkrKykKKyAgICB7CisgICAgICAgIGFbaV0gPSA1LjA7Cisg ICAgICAgIGJbaV0gPSAwLjA7CisgICAgfQorCisjcHJhZ21hIGFjYyBkYXRh IGNvcHkgKGFbMDpOXSwgYlswOk5dKSBjb3B5aW4gKE4pCisgICAgeworCisj cHJhZ21hIGFjYyBwYXJhbGxlbCBhc3luYworICAgIHsKKyAgICAgICAgaW50 IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisg ICAgICAgICAgICBiW2lpXSA9IGFbaWldOworICAgIH0KKworI3ByYWdtYSBh Y2Mgd2FpdCAocykKKworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBO OyBpKyspCisgICAgeworICAgICAgICBpZiAoYVtpXSAhPSA1LjApCisgICAg ICAgICAgICBhYm9ydCAoKTsKKworICAgICAgICBpZiAoYltpXSAhPSA1LjAp CisgICAgICAgICAgICBhYm9ydCAoKTsKKyAgICB9CisKKyAgICBmb3IgKGkg PSAwOyBpIDwgTjsgaSsrKQorICAgIHsKKyAgICAgICAgYVtpXSA9IDcuMDsK KyAgICAgICAgYltpXSA9IDAuMDsKKyAgICAgICAgY1tpXSA9IDAuMDsKKyAg ICAgICAgZFtpXSA9IDAuMDsKKyAgICB9CisKKyNwcmFnbWEgYWNjIGRhdGEg Y29weSAoYVswOk5dKSBjb3B5IChiWzA6Tl0pIGNvcHkgKGNbMDpOXSkgY29w eSAoZFswOk5dKSBjb3B5aW4gKE4pCisgICAgeworCisjcHJhZ21hIGFjYyBw YXJhbGxlbCBhc3luYworICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAg ICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBi W2lpXSA9IChhW2lpXSAqIGFbaWldICogYVtpaV0pIC8gYVtpaV07CisgICAg fQorCisjcHJhZ21hIGFjYyBwYXJhbGxlbCBhc3luYworICAgIHsKKyAgICAg ICAgaW50IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlp KyspCisgICAgICAgICAgICBjW2lpXSA9IChhW2lpXSArIGFbaWldICsgYVtp aV0gKyBhW2lpXSkgLyBhW2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNjIHBh cmFsbGVsIGFzeW5jCisgICAgeworICAgICAgICBpbnQgaWk7CisKKyAgICAg ICAgZm9yIChpaSA9IDA7IGlpIDwgTjsgaWkrKykKKyAgICAgICAgICAgIGRb aWldID0gKChhW2lpXSAqIGFbaWldICsgYVtpaV0pIC8gYVtpaV0pIC0gYVtp aV07CisgICAgfQorCisjcHJhZ21hIGFjYyB3YWl0IChzKQorCisgICAgfQor CisgICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7CisgICAgICAg IGlmIChhW2ldICE9IDcuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOworCisg ICAgICAgIGlmIChiW2ldICE9IDQ5LjApCisgICAgICAgICAgICBhYm9ydCAo KTsKKworICAgICAgICBpZiAoY1tpXSAhPSA0LjApCisgICAgICAgICAgICBh Ym9ydCAoKTsKKworICAgICAgICBpZiAoZFtpXSAhPSAxLjApCisgICAgICAg ICAgICBhYm9ydCAoKTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwg TjsgaSsrKQorICAgIHsKKyAgICAgICAgYVtpXSA9IDMuMDsKKyAgICAgICAg YltpXSA9IDAuMDsKKyAgICAgICAgY1tpXSA9IDAuMDsKKyAgICAgICAgZFtp XSA9IDAuMDsKKyAgICAgICAgZVtpXSA9IDAuMDsKKyAgICB9CisKKyNwcmFn bWEgYWNjIGRhdGEgY29weSAoYVswOk5dLCBiWzA6Tl0sIGNbMDpOXSwgZFsw Ok5dLCBlWzA6Tl0pIGNvcHlpbiAoTikKKyAgICB7CisKKyNwcmFnbWEgYWNj IHBhcmFsbGVsIGFzeW5jCisgICAgeworICAgICAgICBpbnQgaWk7CisKKyAg ICAgICAgZm9yIChpaSA9IDA7IGlpIDwgTjsgaWkrKykKKyAgICAgICAgICAg IGJbaWldID0gKGFbaWldICogYVtpaV0gKiBhW2lpXSkgLyBhW2lpXTsKKyAg ICB9CisKKyNwcmFnbWEgYWNjIHBhcmFsbGVsIGFzeW5jCisgICAgeworICAg ICAgICBpbnQgaWk7CisKKyAgICAgICAgZm9yIChpaSA9IDA7IGlpIDwgTjsg aWkrKykKKyAgICAgICAgICAgIGNbaWldID0gKGFbaWldICsgYVtpaV0gKyBh W2lpXSArIGFbaWldKSAvIGFbaWldOworICAgIH0KKworI3ByYWdtYSBhY2Mg cGFyYWxsZWwgYXN5bmMKKyAgICB7CisgICAgICAgIGludCBpaTsKKworICAg ICAgICBmb3IgKGlpID0gMDsgaWkgPCBOOyBpaSsrKQorICAgICAgICAgICAg ZFtpaV0gPSAoKGFbaWldICogYVtpaV0gKyBhW2lpXSkgLyBhW2lpXSkgLSBh W2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNjIHBhcmFsbGVsIHdhaXQgKHMp IGFzeW5jIChzKQorICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAgICAg IGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBlW2lp XSA9IGFbaWldICsgYltpaV0gKyBjW2lpXSArIGRbaWldOworICAgIH0KKwor I3ByYWdtYSBhY2Mgd2FpdCAocykKKworICAgIH0KKworICAgIGZvciAoaSA9 IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgICBpZiAoYVtpXSAhPSAz LjApCisgICAgICAgICAgICBhYm9ydCAoKTsKKworICAgICAgICBpZiAoYltp XSAhPSA5LjApCisgICAgICAgICAgICBhYm9ydCAoKTsKKworICAgICAgICBp ZiAoY1tpXSAhPSA0LjApCisgICAgICAgICAgICBhYm9ydCAoKTsKKworICAg ICAgICBpZiAoZFtpXSAhPSAxLjApCisgICAgICAgICAgICBhYm9ydCAoKTsK KworICAgICAgICBpZiAoZVtpXSAhPSAxNy4wKQorICAgICAgICAgICAgYWJv cnQgKCk7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykK KyAgICB7CisgICAgICAgIGFbaV0gPSA0LjA7CisgICAgICAgIGJbaV0gPSAw LjA7CisgICAgICAgIGNbaV0gPSAwLjA7CisgICAgICAgIGRbaV0gPSAwLjA7 CisgICAgICAgIGVbaV0gPSAwLjA7CisgICAgfQorCisjcHJhZ21hIGFjYyBk YXRhIGNvcHlpbiAoYVswOk5dLCBiWzA6Tl0sIGNbMDpOXSkgY29weWluIChO KQorICAgIHsKKworI3ByYWdtYSBhY2MgcGFyYWxsZWwgYXN5bmMKKyAgICB7 CisgICAgICAgIGludCBpaTsKKworICAgICAgICBmb3IgKGlpID0gMDsgaWkg PCBOOyBpaSsrKQorICAgICAgICAgICAgYltpaV0gPSAoYVtpaV0gKiBhW2lp XSAqIGFbaWldKSAvIGFbaWldOworICAgIH0KKworI3ByYWdtYSBhY2MgcGFy YWxsZWwgYXN5bmMKKyAgICB7CisgICAgICAgIGludCBpaTsKKworICAgICAg ICBmb3IgKGlpID0gMDsgaWkgPCBOOyBpaSsrKQorICAgICAgICAgICAgY1tp aV0gPSAoYVtpaV0gKyBhW2lpXSArIGFbaWldICsgYVtpaV0pIC8gYVtpaV07 CisgICAgfQorCisjcHJhZ21hIGFjYyB1cGRhdGUgaG9zdCAoYVswOk5dLCBi WzA6Tl0sIGNbMDpOXSkgd2FpdCAocykKKworICAgIH0KKworICAgIGZvciAo aSA9IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgICBpZiAoYVtpXSAh PSA0LjApCisgICAgICAgICAgICBhYm9ydCAoKTsKKworICAgICAgICBpZiAo YltpXSAhPSAxNi4wKQorICAgICAgICAgICAgYWJvcnQgKCk7CisKKyAgICAg ICAgaWYgKGNbaV0gIT0gNC4wKQorICAgICAgICAgICAgYWJvcnQgKCk7Cisg ICAgfQorCisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQorICAgIHsK KyAgICAgICAgYVtpXSA9IDUuMDsKKyAgICAgICAgYltpXSA9IDAuMDsKKyAg ICAgICAgY1tpXSA9IDAuMDsKKyAgICAgICAgZFtpXSA9IDAuMDsKKyAgICAg ICAgZVtpXSA9IDAuMDsKKyAgICB9CisKKyNwcmFnbWEgYWNjIGRhdGEgY29w eWluIChhWzA6Tl0sIGJbMDpOXSwgY1swOk5dKSBjb3B5aW4gKE4pCisgICAg eworCisjcHJhZ21hIGFjYyBwYXJhbGxlbCBhc3luYworICAgIHsKKyAgICAg ICAgaW50IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlp KyspCisgICAgICAgICAgICBiW2lpXSA9IChhW2lpXSAqIGFbaWldICogYVtp aV0pIC8gYVtpaV07CisgICAgfQorCisjcHJhZ21hIGFjYyBwYXJhbGxlbCBh c3luYworICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAgICAgIGZvciAo aWkgPSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBjW2lpXSA9IChh W2lpXSArIGFbaWldICsgYVtpaV0gKyBhW2lpXSkgLyBhW2lpXTsKKyAgICB9 CisKKyNwcmFnbWEgYWNjIHVwZGF0ZSBob3N0IChhWzA6Tl0sIGJbMDpOXSwg Y1swOk5dKSBhc3luYworCisjcHJhZ21hIGFjYyB3YWl0IChzKQorCisgICAg fQorCisgICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7CisgICAg ICAgIGlmIChhW2ldICE9IDUuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOwor CisgICAgICAgIGlmIChiW2ldICE9IDI1LjApCisgICAgICAgICAgICBhYm9y dCAoKTsKKworICAgICAgICBpZiAoY1tpXSAhPSA0LjApCisgICAgICAgICAg ICBhYm9ydCAoKTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTjsg aSsrKQorICAgIHsKKyAgICAgICAgYVtpXSA9IDMuMDsKKyAgICAgICAgYltp XSA9IDAuMDsKKyAgICB9CisKKyNwcmFnbWEgYWNjIGRhdGEgY29weSAoYVsw Ok5dKSBjb3B5IChiWzA6Tl0pIGNvcHlpbiAoTikKKyAgICB7CisKKyNwcmFn bWEgYWNjIGtlcm5lbHMgYXN5bmMKKyAgICB7CisgICAgICAgIGludCBpaTsK KworICAgICAgICBmb3IgKGlpID0gMDsgaWkgPCBOOyBpaSsrKQorICAgICAg ICAgICAgYltpaV0gPSBhW2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNjIHdh aXQKKworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspCisg ICAgeworICAgICAgICBpZiAoYVtpXSAhPSAzLjApCisgICAgICAgICAgICBh Ym9ydCAoKTsKKworICAgICAgICBpZiAoYltpXSAhPSAzLjApCisgICAgICAg ICAgICBhYm9ydCAoKTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwg TjsgaSsrKQorICAgIHsKKyAgICAgICAgYVtpXSA9IDIuMDsKKyAgICAgICAg YltpXSA9IDAuMDsKKyAgICB9CisKKyNwcmFnbWEgYWNjIGRhdGEgY29weSAo YVswOk5dKSBjb3B5IChiWzA6Tl0pIGNvcHlpbiAoTikKKyAgICB7CisKKyNw cmFnbWEgYWNjIGtlcm5lbHMgYXN5bmMKKyAgICB7CisgICAgICAgIGludCBp aTsKKworICAgICAgICBmb3IgKGlpID0gMDsgaWkgPCBOOyBpaSsrKQorICAg ICAgICAgICAgYltpaV0gPSBhW2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNj IHdhaXQgKHMpCisKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTjsg aSsrKQorICAgIHsKKyAgICAgICAgaWYgKGFbaV0gIT0gMi4wKQorICAgICAg ICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGJbaV0gIT0gMi4wKQor ICAgICAgICAgICAgYWJvcnQgKCk7CisgICAgfQorCisgICAgZm9yIChpID0g MDsgaSA8IE47IGkrKykKKyAgICB7CisgICAgICAgIGFbaV0gPSAzLjA7Cisg ICAgICAgIGJbaV0gPSAwLjA7CisgICAgICAgIGNbaV0gPSAwLjA7CisgICAg ICAgIGRbaV0gPSAwLjA7CisgICAgfQorCisjcHJhZ21hIGFjYyBkYXRhIGNv cHkgKGFbMDpOXSkgY29weSAoYlswOk5dKSBjb3B5IChjWzA6Tl0pIGNvcHkg KGRbMDpOXSkgY29weWluIChOKQorICAgIHsKKworI3ByYWdtYSBhY2Mga2Vy bmVscyBhc3luYworICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAgICAg IGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBiW2lp XSA9IChhW2lpXSAqIGFbaWldICogYVtpaV0pIC8gYVtpaV07CisgICAgfQor CisjcHJhZ21hIGFjYyBrZXJuZWxzIGFzeW5jCisgICAgeworICAgICAgICBp bnQgaWk7CisKKyAgICAgICAgZm9yIChpaSA9IDA7IGlpIDwgTjsgaWkrKykK KyAgICAgICAgICAgIGNbaWldID0gKGFbaWldICsgYVtpaV0gKyBhW2lpXSAr IGFbaWldKSAvIGFbaWldOworICAgIH0KKworCisjcHJhZ21hIGFjYyBrZXJu ZWxzIGFzeW5jCisgICAgeworICAgICAgICBpbnQgaWk7CisKKyAgICAgICAg Zm9yIChpaSA9IDA7IGlpIDwgTjsgaWkrKykKKyAgICAgICAgICAgIGRbaWld ID0gKChhW2lpXSAqIGFbaWldICsgYVtpaV0pIC8gYVtpaV0pIC0gYVtpaV07 CisgICAgfQorCisjcHJhZ21hIGFjYyB3YWl0IChzKQorCisgICAgfQorCisg ICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7CisgICAgICAgIGlm IChhW2ldICE9IDMuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOworCisgICAg ICAgIGlmIChiW2ldICE9IDkuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOwor CisgICAgICAgIGlmIChjW2ldICE9IDQuMCkKKyAgICAgICAgICAgIGFib3J0 ICgpOworCisgICAgICAgIGlmIChkW2ldICE9IDEuMCkKKyAgICAgICAgICAg IGFib3J0ICgpOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBOOyBp KyspCisgICAgeworICAgICAgICBhW2ldID0gMi4wOworICAgICAgICBiW2ld ID0gMC4wOworICAgICAgICBjW2ldID0gMC4wOworICAgICAgICBkW2ldID0g MC4wOworICAgICAgICBlW2ldID0gMC4wOworICAgIH0KKworI3ByYWdtYSBh Y2MgZGF0YSBjb3B5IChhWzA6Tl0sIGJbMDpOXSwgY1swOk5dLCBkWzA6Tl0s IGVbMDpOXSkgY29weWluIChOKQorICAgIHsKKworI3ByYWdtYSBhY2Mga2Vy bmVscyBhc3luYworICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAgICAg IGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBiW2lp XSA9IChhW2lpXSAqIGFbaWldICogYVtpaV0pIC8gYVtpaV07CisgICAgfQor CisjcHJhZ21hIGFjYyBrZXJuZWxzIGFzeW5jCisgICAgeworICAgICAgICBp bnQgaWk7CisKKyAgICAgICAgZm9yIChpaSA9IDA7IGlpIDwgTjsgaWkrKykK KyAgICAgICAgICAgIGNbaWldID0gKGFbaWldICsgYVtpaV0gKyBhW2lpXSAr IGFbaWldKSAvIGFbaWldOworICAgIH0KKworI3ByYWdtYSBhY2Mga2VybmVs cyBhc3luYworICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAgICAgIGZv ciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBkW2lpXSA9 ICgoYVtpaV0gKiBhW2lpXSArIGFbaWldKSAvIGFbaWldKSAtIGFbaWldOwor ICAgIH0KKworI3ByYWdtYSBhY2Mga2VybmVscyB3YWl0IChzKSBhc3luYyAo cykKKyAgICB7CisgICAgICAgIGludCBpaTsKKworICAgICAgICBmb3IgKGlp ID0gMDsgaWkgPCBOOyBpaSsrKQorICAgICAgICAgICAgZVtpaV0gPSBhW2lp XSArIGJbaWldICsgY1tpaV0gKyBkW2lpXTsKKyAgICB9CisKKyNwcmFnbWEg YWNjIHdhaXQgKHMpCisKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwg TjsgaSsrKQorICAgIHsKKyAgICAgICAgaWYgKGFbaV0gIT0gMi4wKQorICAg ICAgICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGJbaV0gIT0gNC4w KQorICAgICAgICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGNbaV0g IT0gNC4wKQorICAgICAgICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYg KGRbaV0gIT0gMS4wKQorICAgICAgICAgICAgYWJvcnQgKCk7CisKKyAgICAg ICAgaWYgKGVbaV0gIT0gMTEuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOwor ICAgIH0KKworCisgICAgciA9IGN1U3RyZWFtQ3JlYXRlICgmc3RyZWFtMSwg Q1VfU1RSRUFNX05PTl9CTE9DS0lORyk7CisgICAgaWYgKHIgIT0gQ1VEQV9T VUNDRVNTKQorICAgIHsKKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiY3VT dHJlYW1DcmVhdGUgZmFpbGVkOiAlZFxuIiwgcik7CisgICAgICAgIGFib3J0 ICgpOworICAgIH0KKworICAgIGFjY19zZXRfY3VkYV9zdHJlYW0gKDEsIHN0 cmVhbTEpOworCisgICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7 CisgICAgICAgIGFbaV0gPSA1LjA7CisgICAgICAgIGJbaV0gPSAwLjA7Cisg ICAgfQorCisjcHJhZ21hIGFjYyBkYXRhIGNvcHkgKGFbMDpOXSwgYlswOk5d KSBjb3B5aW4gKE4pCisgICAgeworCisjcHJhZ21hIGFjYyBrZXJuZWxzIGFz eW5jCisgICAgeworICAgICAgICBpbnQgaWk7CisKKyAgICAgICAgZm9yIChp aSA9IDA7IGlpIDwgTjsgaWkrKykKKyAgICAgICAgICAgIGJbaWldID0gYVtp aV07CisgICAgfQorCisjcHJhZ21hIGFjYyB3YWl0IChzKQorCisgICAgfQor CisgICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7CisgICAgICAg IGlmIChhW2ldICE9IDUuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOworCisg ICAgICAgIGlmIChiW2ldICE9IDUuMCkKKyAgICAgICAgICAgIGFib3J0ICgp OworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspCisgICAg eworICAgICAgICBhW2ldID0gNy4wOworICAgICAgICBiW2ldID0gMC4wOwor ICAgICAgICBjW2ldID0gMC4wOworICAgICAgICBkW2ldID0gMC4wOworICAg IH0KKworI3ByYWdtYSBhY2MgZGF0YSBjb3B5IChhWzA6Tl0pIGNvcHkgKGJb MDpOXSkgY29weSAoY1swOk5dKSBjb3B5IChkWzA6Tl0pIGNvcHlpbiAoTikK KyAgICB7CisKKyNwcmFnbWEgYWNjIGtlcm5lbHMgYXN5bmMKKyAgICB7Cisg ICAgICAgIGludCBpaTsKKworICAgICAgICBmb3IgKGlpID0gMDsgaWkgPCBO OyBpaSsrKQorICAgICAgICAgICAgYltpaV0gPSAoYVtpaV0gKiBhW2lpXSAq IGFbaWldKSAvIGFbaWldOworICAgIH0KKworI3ByYWdtYSBhY2Mga2VybmVs cyBhc3luYworICAgIHsKKyAgICAgICAgaW50IGlpOworCisgICAgICAgIGZv ciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAgICBjW2lpXSA9 IChhW2lpXSArIGFbaWldICsgYVtpaV0gKyBhW2lpXSkgLyBhW2lpXTsKKyAg ICB9CisKKyNwcmFnbWEgYWNjIGtlcm5lbHMgYXN5bmMKKyAgICB7CisgICAg ICAgIGludCBpaTsKKworICAgICAgICBmb3IgKGlpID0gMDsgaWkgPCBOOyBp aSsrKQorICAgICAgICAgICAgZFtpaV0gPSAoKGFbaWldICogYVtpaV0gKyBh W2lpXSkgLyBhW2lpXSkgLSBhW2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNj IHdhaXQgKHMpCisKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTjsg aSsrKQorICAgIHsKKyAgICAgICAgaWYgKGFbaV0gIT0gNy4wKQorICAgICAg ICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGJbaV0gIT0gNDkuMCkK KyAgICAgICAgICAgIGFib3J0ICgpOworCisgICAgICAgIGlmIChjW2ldICE9 IDQuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOworCisgICAgICAgIGlmIChk W2ldICE9IDEuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOworICAgIH0KKwor ICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgICBh W2ldID0gMy4wOworICAgICAgICBiW2ldID0gMC4wOworICAgICAgICBjW2ld ID0gMC4wOworICAgICAgICBkW2ldID0gMC4wOworICAgICAgICBlW2ldID0g MC4wOworICAgIH0KKworI3ByYWdtYSBhY2MgZGF0YSBjb3B5IChhWzA6Tl0s IGJbMDpOXSwgY1swOk5dLCBkWzA6Tl0sIGVbMDpOXSkgY29weWluIChOKQor ICAgIHsKKworI3ByYWdtYSBhY2Mga2VybmVscyBhc3luYworICAgIHsKKyAg ICAgICAgaW50IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47 IGlpKyspCisgICAgICAgICAgICBiW2lpXSA9IChhW2lpXSAqIGFbaWldICog YVtpaV0pIC8gYVtpaV07CisgICAgfQorCisjcHJhZ21hIGFjYyBrZXJuZWxz IGFzeW5jCisgICAgeworICAgICAgICBpbnQgaWk7CisKKyAgICAgICAgZm9y IChpaSA9IDA7IGlpIDwgTjsgaWkrKykKKyAgICAgICAgICAgIGNbaWldID0g KGFbaWldICsgYVtpaV0gKyBhW2lpXSArIGFbaWldKSAvIGFbaWldOworICAg IH0KKworI3ByYWdtYSBhY2Mga2VybmVscyBhc3luYworICAgIHsKKyAgICAg ICAgaW50IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlp KyspCisgICAgICAgICAgICBkW2lpXSA9ICgoYVtpaV0gKiBhW2lpXSArIGFb aWldKSAvIGFbaWldKSAtIGFbaWldOworICAgIH0KKworI3ByYWdtYSBhY2Mg a2VybmVscyB3YWl0IChzKSBhc3luYyAocykKKyAgICB7CisgICAgICAgIGlu dCBpaTsKKworICAgICAgICBmb3IgKGlpID0gMDsgaWkgPCBOOyBpaSsrKQor ICAgICAgICAgICAgZVtpaV0gPSBhW2lpXSArIGJbaWldICsgY1tpaV0gKyBk W2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNjIHdhaXQgKHMpCisKKyAgICB9 CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQorICAgIHsKKyAgICAg ICAgaWYgKGFbaV0gIT0gMy4wKQorICAgICAgICAgICAgYWJvcnQgKCk7CisK KyAgICAgICAgaWYgKGJbaV0gIT0gOS4wKQorICAgICAgICAgICAgYWJvcnQg KCk7CisKKyAgICAgICAgaWYgKGNbaV0gIT0gNC4wKQorICAgICAgICAgICAg YWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGRbaV0gIT0gMS4wKQorICAgICAg ICAgICAgYWJvcnQgKCk7CisKKyAgICAgICAgaWYgKGVbaV0gIT0gMTcuMCkK KyAgICAgICAgICAgIGFib3J0ICgpOworICAgIH0KKworICAgIGZvciAoaSA9 IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgICBhW2ldID0gNC4wOwor ICAgICAgICBiW2ldID0gMC4wOworICAgICAgICBjW2ldID0gMC4wOworICAg ICAgICBkW2ldID0gMC4wOworICAgICAgICBlW2ldID0gMC4wOworICAgIH0K KworI3ByYWdtYSBhY2MgZGF0YSBjb3B5aW4gKGFbMDpOXSwgYlswOk5dLCBj WzA6Tl0pIGNvcHlpbiAoTikKKyAgICB7CisKKyNwcmFnbWEgYWNjIGtlcm5l bHMgYXN5bmMKKyAgICB7CisgICAgICAgIGludCBpaTsKKworICAgICAgICBm b3IgKGlpID0gMDsgaWkgPCBOOyBpaSsrKQorICAgICAgICAgICAgYltpaV0g PSAoYVtpaV0gKiBhW2lpXSAqIGFbaWldKSAvIGFbaWldOworICAgIH0KKwor I3ByYWdtYSBhY2Mga2VybmVscyBhc3luYworICAgIHsKKyAgICAgICAgaW50 IGlpOworCisgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisg ICAgICAgICAgICBjW2lpXSA9IChhW2lpXSArIGFbaWldICsgYVtpaV0gKyBh W2lpXSkgLyBhW2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNjIHVwZGF0ZSBo b3N0IChhWzA6Tl0sIGJbMDpOXSwgY1swOk5dKSB3YWl0IChzKQorCisgICAg fQorCisgICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7CisgICAg ICAgIGlmIChhW2ldICE9IDQuMCkKKyAgICAgICAgICAgIGFib3J0ICgpOwor CisgICAgICAgIGlmIChiW2ldICE9IDE2LjApCisgICAgICAgICAgICBhYm9y dCAoKTsKKworICAgICAgICBpZiAoY1tpXSAhPSA0LjApCisgICAgICAgICAg ICBhYm9ydCAoKTsKKyAgICB9CisKKworICAgIGZvciAoaSA9IDA7IGkgPCBO OyBpKyspCisgICAgeworICAgICAgICBhW2ldID0gNS4wOworICAgICAgICBi W2ldID0gMC4wOworICAgICAgICBjW2ldID0gMC4wOworICAgICAgICBkW2ld ID0gMC4wOworICAgICAgICBlW2ldID0gMC4wOworICAgIH0KKworI3ByYWdt YSBhY2MgZGF0YSBjb3B5aW4gKGFbMDpOXSwgYlswOk5dLCBjWzA6Tl0pIGNv cHlpbiAoTikKKyAgICB7CisKKyNwcmFnbWEgYWNjIGtlcm5lbHMgYXN5bmMK KyAgICB7CisgICAgICAgIGludCBpaTsKKworICAgICAgICBmb3IgKGlpID0g MDsgaWkgPCBOOyBpaSsrKQorICAgICAgICAgICAgYltpaV0gPSAoYVtpaV0g KiBhW2lpXSAqIGFbaWldKSAvIGFbaWldOworICAgIH0KKworI3ByYWdtYSBh Y2Mga2VybmVscyBhc3luYworICAgIHsKKyAgICAgICAgaW50IGlpOworCisg ICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IE47IGlpKyspCisgICAgICAgICAg ICBjW2lpXSA9IChhW2lpXSArIGFbaWldICsgYVtpaV0gKyBhW2lpXSkgLyBh W2lpXTsKKyAgICB9CisKKyNwcmFnbWEgYWNjIHVwZGF0ZSBob3N0IChhWzA6 Tl0sIGJbMDpOXSwgY1swOk5dKSBhc3luYworCisjcHJhZ21hIGFjYyB3YWl0 IChzKQorCisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykK KyAgICB7CisgICAgICAgIGlmIChhW2ldICE9IDUuMCkKKyAgICAgICAgICAg IGFib3J0ICgpOworCisgICAgICAgIGlmIChiW2ldICE9IDI1LjApCisgICAg ICAgICAgICBhYm9ydCAoKTsKKworICAgICAgICBpZiAoY1tpXSAhPSA0LjAp CisgICAgICAgICAgICBhYm9ydCAoKTsKKyAgICB9CisKKyAgICBhY2Nfc2h1 dGRvd24gKGFjY19kZXZpY2VfbnZpZGlhKTsKKworICAgIHJldHVybiAwOwor fQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5vYWNj LWMtYysrLWNvbW1vbi9kYXRhLTItbGliLmMgYi9saWJnb21wL3Rlc3RzdWl0 ZS9saWJnb21wLm9hY2MtYy1jKystY29tbW9uL2RhdGEtMi1saWIuYwppbmRl eCAyZGRmYTdkLi5mNTUzZDNkIDEwMDY0NAotLS0gYS9saWJnb21wL3Rlc3Rz dWl0ZS9saWJnb21wLm9hY2MtYy1jKystY29tbW9uL2RhdGEtMi1saWIuYwor KysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLm9hY2MtYy1jKystY29t bW9uL2RhdGEtMi1saWIuYwpAQCAtMTUzLDcgKzE1Myw3IEBAIG1haW4gKGlu dCBhcmdjLCBjaGFyICoqYXJndikKICAgICBkW2lpXSA9ICgoYVtpaV0gKiBh W2lpXSArIGFbaWldKSAvIGFbaWldKSAtIGFbaWldOwogCiAjcHJhZ21hIGFj YyBwYXJhbGxlbCBwcmVzZW50IChhWzA6Tl0sIGJbMDpOXSwgY1swOk5dLCBk WzA6Tl0sIGVbMDpOXSwgTikgXAotICBhc3luYyAoNCkKKyAgd2FpdCAoMSwg MiwgMykgYXN5bmMgKDQpCiAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBOOyBp aSsrKQogICAgIGVbaWldID0gYVtpaV0gKyBiW2lpXSArIGNbaWldICsgZFtp aV07CiAKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu b2FjYy1jLWMrKy1jb21tb24vZGF0YS0yLmMgYi9saWJnb21wL3Rlc3RzdWl0 ZS9saWJnb21wLm9hY2MtYy1jKystY29tbW9uL2RhdGEtMi5jCmluZGV4IDBj NmFiZTYuLjgxZDYyM2EgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvdGVzdHN1aXRl L2xpYmdvbXAub2FjYy1jLWMrKy1jb21tb24vZGF0YS0yLmMKKysrIGIvbGli Z29tcC90ZXN0c3VpdGUvbGliZ29tcC5vYWNjLWMtYysrLWNvbW1vbi9kYXRh LTIuYwpAQCAtMTYyLDcgKzE2Miw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFy ICoqYXJndikKICAgICBkW2lpXSA9ICgoYVtpaV0gKiBhW2lpXSArIGFbaWld KSAvIGFbaWldKSAtIGFbaWldOwogCiAjcHJhZ21hIGFjYyBwYXJhbGxlbCBw cmVzZW50IChhWzA6Tl0sIGJbMDpOXSwgY1swOk5dLCBkWzA6Tl0sIGVbMDpO XSkgXAotICB3YWl0ICgxKSBhc3luYyAoNCkKKyAgd2FpdCAoMSwgMiwgMykg YXN5bmMgKDQpCiAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBOOyBpaSsrKQog ICAgIGVbaWldID0gYVtpaV0gKyBiW2lpXSArIGNbaWldICsgZFtpaV07CiAK ZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2FjYy1j LWMrKy1jb21tb24vZGF0YS0zLmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJn b21wLm9hY2MtYy1jKystY29tbW9uL2RhdGEtMy5jCmluZGV4IDBiZjcwNmEu LjVlYzUwYjggMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdv bXAub2FjYy1jLWMrKy1jb21tb24vZGF0YS0zLmMKKysrIGIvbGliZ29tcC90 ZXN0c3VpdGUvbGliZ29tcC5vYWNjLWMtYysrLWNvbW1vbi9kYXRhLTMuYwpA QCAtMTM4LDcgKzEzOCw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikKICAgICBkW2lpXSA9ICgoYVtpaV0gKiBhW2lpXSArIGFbaWldKSAvIGFb aWldKSAtIGFbaWldOwogCiAjcHJhZ21hIGFjYyBwYXJhbGxlbCBwcmVzZW50 IChhWzA6Tl0sIGJbMDpOXSwgY1swOk5dLCBkWzA6Tl0sIGVbMDpOXSkgXAot ICB3YWl0ICgxLDUpIGFzeW5jICg0KQorICB3YWl0ICgxLCAyLCAzLCA1KSBh c3luYyAoNCkKICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8IE47IGlpKyspCiAg ICAgZVtpaV0gPSBhW2lpXSArIGJbaWldICsgY1tpaV0gKyBkW2lpXTsKIApk aWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5vYWNjLWMt YysrLWNvbW1vbi9saWItNzEuYyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdv bXAub2FjYy1jLWMrKy1jb21tb24vbGliLTcxLmMKaW5kZXggYzg1ZTgyNC4u NmFmZTJhMCAxMDA2NDQKLS0tIGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29t cC5vYWNjLWMtYysrLWNvbW1vbi9saWItNzEuYworKysgYi9saWJnb21wL3Rl c3RzdWl0ZS9saWJnb21wLm9hY2MtYy1jKystY29tbW9uL2xpYi03MS5jCkBA IC05MiwxNiArOTIsMjIgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQogICAgICAgYWJvcnQgKCk7CiAgICAgfQogCi0gIGZwcmludGYgKHN0ZGVy ciwgIkNoZUNLcE9JblRcbiIpOwotICBpZiAoYWNjX2FzeW5jX3Rlc3QgKDEp ICE9IDApCisgIGlmIChhY2NfYXN5bmNfdGVzdCAoMCkgIT0gMCkKICAgICB7 CiAgICAgICBmcHJpbnRmIChzdGRlcnIsICJhc3luY2hyb25vdXMgb3BlcmF0 aW9uIG5vdCBydW5uaW5nXG4iKTsKICAgICAgIGFib3J0ICgpOwogICAgIH0K IAorICAvKiBUZXN0IHVuc2VlbiBhc3luYyBudW1iZXIuICAqLworICBpZiAo YWNjX2FzeW5jX3Rlc3QgKDEpICE9IDEpCisgICAgeworICAgICAgZnByaW50 ZiAoc3RkZXJyLCAiYWNjX2FzeW5jX3Rlc3QgZmFpbGVkIG9uIHVuc2VlbiBu dW1iZXJcbiIpOworICAgICAgYWJvcnQgKCk7CisgICAgfQorCiAgIHNsZWVw ICgoaW50KSAoZHRpbWUgLyAxMDAwLjBmKSArIDEpOwogCi0gIGlmIChhY2Nf YXN5bmNfdGVzdCAoMSkgIT0gMSkKKyAgaWYgKGFjY19hc3luY190ZXN0ICgw KSAhPSAxKQogICAgIHsKICAgICAgIGZwcmludGYgKHN0ZGVyciwgImZvdW5k IGFzeW5jaHJvbm91cyBvcGVyYXRpb24gc3RpbGwgcnVubmluZ1xuIik7CiAg ICAgICBhYm9ydCAoKTsKQEAgLTExNiw3ICsxMjIsMyBAQCBtYWluIChpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAKICAgcmV0dXJuIDA7CiB9Ci0KLS8qIHsg ZGctb3V0cHV0ICJDaGVDS3BPSW5UKFxufFxyXG58XHIpLioiIH0gKi8KLS8q IHsgZGctb3V0cHV0ICJ1bmtub3duIGFzeW5jIFxbMC05XF0rIiB9ICovCi0v KiB7IGRnLXNob3VsZGZhaWwgIiIgfSAqLwpkaWZmIC0tZ2l0IGEvbGliZ29t cC90ZXN0c3VpdGUvbGliZ29tcC5vYWNjLWMtYysrLWNvbW1vbi9saWItNzcu YyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2FjYy1jLWMrKy1jb21t b24vbGliLTc3LmMKaW5kZXggZjRmMTk2ZC4uMjgyMWY4OCAxMDA2NDQKLS0t IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5vYWNjLWMtYysrLWNvbW1v bi9saWItNzcuYworKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLm9h Y2MtYy1jKystY29tbW9uL2xpYi03Ny5jCkBAIC0xMTEsNyArMTExLDcgQEAg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgIHN0YXJ0X3RpbWVy ICgwKTsKIAotICBhY2Nfd2FpdCAoMSk7CisgIGFjY193YWl0ICgwKTsKIAog ICBhdGltZSA9IHN0b3BfdGltZXIgKDApOwogCkBAIC0xMzIsNyArMTMyLDMg QEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgIHJldHVybiAw OwogfQotCi0vKiB7IGRnLW91dHB1dCAiQ2hlQ0twT0luVChcbnxcclxufFxy KS4qIiB9ICovCi0vKiB7IGRnLW91dHB1dCAidW5rbm93biBhc3luYyBcWzAt OVxdKyIgfSAqLwotLyogeyBkZy1zaG91bGRmYWlsICIiIH0gKi8KZGlmZiAt LWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2FjYy1jLWMrKy1j b21tb24vbGliLTc5LmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLm9h Y2MtYy1jKystY29tbW9uL2xpYi03OS5jCmluZGV4IGVmM2RmMTMuLmIyMmFm MjYgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2Fj Yy1jLWMrKy1jb21tb24vbGliLTc5LmMKKysrIGIvbGliZ29tcC90ZXN0c3Vp dGUvbGliZ29tcC5vYWNjLWMtYysrLWNvbW1vbi9saWItNzkuYwpAQCAtMTE0 LDYgKzExNCw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKIAog ICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQogICAgIHsKKyAgICAgIHN0cmVh bSA9IChDVXN0cmVhbSkgYWNjX2dldF9jdWRhX3N0cmVhbSAoaSAmIDEpOwog ICAgICAgciA9IGN1TGF1bmNoS2VybmVsIChkZWxheSwgMSwgMSwgMSwgMSwg MSwgMSwgMCwgc3RyZWFtLCBrYXJncywgMCk7CiAgICAgICBpZiAociAhPSBD VURBX1NVQ0NFU1MpCiAJewpAQCAtMTIyLDExICsxMjMsMTEgQEAgbWFpbiAo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCX0KICAgICB9CiAKLSAgYWNjX3dh aXRfYXN5bmMgKDAsIDEpOwotCiAgIGlmIChhY2NfYXN5bmNfdGVzdCAoMCkg IT0gMCkKICAgICBhYm9ydCAoKTsKIAorICBhY2Nfd2FpdF9hc3luYyAoMCwg MSk7CisKICAgaWYgKGFjY19hc3luY190ZXN0ICgxKSAhPSAwKQogICAgIGFi b3J0ICgpOwogCmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJn b21wLm9hY2MtYy1jKystY29tbW9uL2xpYi04MS5jIGIvbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5vYWNjLWMtYysrLWNvbW1vbi9saWItODEuYwppbmRl eCBkNWYxOGYwLi4zMGE0YjU3IDEwMDY0NAotLS0gYS9saWJnb21wL3Rlc3Rz dWl0ZS9saWJnb21wLm9hY2MtYy1jKystY29tbW9uL2xpYi04MS5jCisrKyBi L2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2FjYy1jLWMrKy1jb21tb24v bGliLTgxLmMKQEAgLTEzMyw3ICsxMzMsNyBAQCBtYWluIChpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAKICAgZm9yIChpID0gMDsgaSA8PSBOOyBpKyspCiAg ICAgewotICAgICAgaWYgKGFjY19hc3luY190ZXN0IChpKSAhPSAwKQorICAg ICAgaWYgKGFjY19hc3luY190ZXN0IChpKSA9PSAwKQogCWFib3J0ICgpOwog ICAgIH0KIAo= --------------A99011B69AF57E082A6BA82E--