From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13433 invoked by alias); 13 Nov 2019 10:18:15 -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 13422 invoked by uid 89); 13 Nov 2019 10:18:14 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: NAM03-CO1-obe.outbound.protection.outlook.com Received: from mail-eopbgr790097.outbound.protection.outlook.com (HELO NAM03-CO1-obe.outbound.protection.outlook.com) (40.107.79.97) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 13 Nov 2019 10:18:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hNOXzK3ZX70qqRJT0KZiCKqYKN48oAiUQTy3O5gMH+5bKGjlMeQPlWt+/9kcEz1ALoF3HsFiM6fZ5ZMcBMJBzKf17LgtPyAl+sTjCKnKe7OL0PW+ZI6w1PQGDC9S1FtSReNKjcEolhC8bdkDbnVf8oplyhxKjjXLYxlw8TYDkLxfsFiJeNL4rHs4jgxJw5LTx6zqcwQN/SzqJt4FKeAWbjW4OoplSem5STUngNia3HsHgyGGbLVJ6A8okACcQxgwRwQ8hlMUp+Y68gBETNFT6RF5oNWTVJdg33piWJzN4g3OUoGdx+w93SL+hTju2sQOoJcncwk0Alo9m4/7u+kU0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3loAlZE5bjvy3wtOrSZlJzmjISktMFbxj3R+k+uOTJI=; b=KYxtgZmJhAbwAeP3BebvbsUeSTUzkv6W4a/zUNp3NZJXbRZxFWyWu51L1hkaKUVgeQSVvQInXVPxLJxIYoUHJHryyx2U2rVjitUXeXUwA5oq1QkouJsJgwjoyFMpa6KjNVHKEDreU1D8SpEpp2syh4ky7J0DavtvT1O/dpndZ+CKJuX6BC8a8Ahh0dnzK5vObWyuiDi1vYQAGP6cZV3mhKq6V+n9cM1ZYGeZt/SaYy4O7iwfA2DV7QkeFx1Bft3etxzUftF3BwDA7X8wvonVTOxfUV1YnL48i2nF4SXGK9d/C6YJGnc/WpQPrU22k5HdM2QVgAMSJURQuXT5gqznsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3loAlZE5bjvy3wtOrSZlJzmjISktMFbxj3R+k+uOTJI=; b=K1G2m8fn+YXRyYBPwkVtErQFQ7YjoKoDnBEZKG2qXJYtr3B5eKf0v8+XAAM0VzMzkTXOmyIubmC35OJs+sc7WNfABcmDA9tE+F+Tn215nO75qZ/+zjyu3wPgNj3txcBXz473Bm/ot3QFZ5V/BG++Y+CwNFGIw5sw2kKnrLgwHcs= Received: from BYAPR01MB4869.prod.exchangelabs.com (20.177.226.139) by BYAPR01MB3925.prod.exchangelabs.com (52.135.192.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.22; Wed, 13 Nov 2019 10:18:08 +0000 Received: from BYAPR01MB4869.prod.exchangelabs.com ([fe80::a984:9c86:cc04:f50c]) by BYAPR01MB4869.prod.exchangelabs.com ([fe80::a984:9c86:cc04:f50c%5]) with mapi id 15.20.2451.023; Wed, 13 Nov 2019 10:18:08 +0000 From: Feng Xue OS To: Jan Hubicka , Martin Jambor , "gcc-patches@gcc.gnu.org" Subject: Re: Ping: [PATCH V6] Extend IPA-CP to support arithmetically-computed value-passing on by-ref argument (PR ipa/91682) Date: Wed, 13 Nov 2019 10:42:00 -0000 Message-ID: References: <1dc2bc97-7cb7-fae6-f88f-26b256be3707@linux.ibm.com> <20191112121526.dbxmpjadlrf7vc46@kam.mff.cuni.cz> <20191112123418.huts5lnnxjaybjw6@kam.mff.cuni.cz>,<20191112124152.awcljza2432vnps3@kam.mff.cuni.cz> In-Reply-To: <20191112124152.awcljza2432vnps3@kam.mff.cuni.cz> authentication-results: spf=none (sender IP is ) smtp.mailfrom=fxue@os.amperecomputing.com; x-ms-oob-tlc-oobclassifiers: OLM:7219; received-spf: None (protection.outlook.com: os.amperecomputing.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_BYAPR01MB48698A65EDA7ACAE72D98E31F7760BYAPR01MB4869prod_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6Rh/p2SMfz+dP3F3N16UndGCToGFXDAMvbcdNZQQS0itgLPcyl5fRx0/dz0aGEhj0NCVG3cCESJlV8SkWh+CWFy/y1V5fagapoiUNmLwMFk= X-IsSubscribed: yes X-SW-Source: 2019-11/txt/msg01014.txt.bz2 --_002_BYAPR01MB48698A65EDA7ACAE72D98E31F7760BYAPR01MB4869prod_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 637 Please check the attachment, and this patch is based on the previous extend= ed agg-jump-function patch. Thanks, Feng ________________________________________ From: Jan Hubicka Sent: Tuesday, November 12, 2019 8:41 PM To: Feng Xue OS Subject: Re: Ping: [PATCH V6] Extend IPA-CP to support arithmetically-compu= ted value-passing on by-ref argument (PR ipa/91682) Hi, also can you please send me links to remaining IPA patches which I need to review? I remember there is also one on clonning self recursive functions for exchange right? I am sorry for taking so long on this - I really appreachiate your work. Honza --_002_BYAPR01MB48698A65EDA7ACAE72D98E31F7760BYAPR01MB4869prod_ Content-Type: text/x-patch; name="recursive-clone.patch" Content-Description: recursive-clone.patch Content-Disposition: attachment; filename="recursive-clone.patch"; size=15990; creation-date="Wed, 13 Nov 2019 10:15:34 GMT"; modification-date="Wed, 13 Nov 2019 10:15:34 GMT" Content-Transfer-Encoding: base64 Content-length: 21676 RnJvbSBlODM1MDhkOGUwMzdkNWI2NjgzYTAyOTNiZDI4OTFmNDgyYzJiMWM2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGZW5nIFh1ZSA8Znh1 ZUBvcy5hbXBlcmVjb21wdXRpbmcuY29tPgpEYXRlOiBUdWUsIDI0IFNlcCAy MDE5IDExOjQ4OjI2ICswODAwClN1YmplY3Q6IFtQQVRDSF0gY29zdAoKLS0t CiBnY2MvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx OCArKysKIGdjYy9kb2MvaW52b2tlLnRleGkgICAgICAgICAgICAgICAgICAg IHwgICAzICsKIGdjYy9pcGEtY3AuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMjEwICsrKysrKysrKysrKysrKysrKysrKystLS0KIGdjYy9pcGEt cHJvcC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGdjYy9w YXJhbXMub3B0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIGdj Yy90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgIHwgICA1ICsK IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2lwYS9pcGEtY2xvbmUtMi5jIHwgIDQ3 ICsrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAyNjUgaW5zZXJ0aW9ucygrKSwg MjQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvaXBhL2lwYS1jbG9uZS0yLmMKCmRpZmYgLS1naXQgYS9n Y2MvQ2hhbmdlTG9nIGIvZ2NjL0NoYW5nZUxvZwppbmRleCAwNDcwNTI4MzVm MC4uZTgwMDIwOWI2OTUgMTAwNjQ0Ci0tLSBhL2djYy9DaGFuZ2VMb2cKKysr IGIvZ2NjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTExLTEz ICBGZW5nIFh1ZSA8Znh1ZUBvcy5hbXBlcmVjb21wdXRpbmcuY29tPgorCisJ UFIgaXBhLzkyMTMzCisJKiBkb2MvaW52b2tlLnRleGkgKGlwYS1jcC1tYXgt cmVjdXJzaW9uLWRlcHRoKTogRG9jdW1lbnQgbmV3IG9wdGlvbi4KKwkqIHBh cmFtcy5vcHQgKGlwYS1jcC1tYXgtcmVjdXJzaW9uLWRlcHRoKTogTmV3Lgor CSogaXBhLWNwLmMgKGlwY3BfbGF0dGljZTx2YWx0eXBlPjo6YWRkX3ZhbHVl KTogQWRkIHR3byBuZXcgcGFyYW1ldGVycworCXZhbF9wb3NfcCBhbmQgdW5s aW1pdGVkLgorCShzZWxmX3JlY3Vyc2l2ZWx5X2dlbmVyYXRlZF9wKTogTmV3 IGZ1bmN0aW9uLgorCShnZXRfdmFsX2Fjcm9zc19hcml0aF9vcCk6IExpa2V3 aXNlLgorCShwcm9wYWdhdGVfdmFsc19hY3Jvc3NfYXJpdGhfamZ1bmMpOiBB ZGQgY29uc3RhbnQgcHJvcGFnYXRpb24gZm9yCisJc2VsZi1yZWN1cnNpdmUg ZnVuY3Rpb24uCisJKGluY29ycG9yYXRlX3BlbmFsdGllcyk6IERvIG5vdCBw ZW5hbGl6ZSBwdXJlIHNlbGYtcmVjdXJzaXZlIGZ1bmN0aW9uLgorCShnb29k X2Nsb25pbmdfb3Bwb3J0dW5pdHlfcCk6IER1bXAgbm9kZV9pc19zZWxmX3Nj YyBmbGFnLgorCShwcm9wYWdhdGVfY29uc3RhbnRzX3RvcG8pOiBTZXQgbm9k ZV9pc19zZWxmX3NjYyBmbGFnIGZvciBjZ3JhcGggbm9kZS4KKwkoZ2V0X2lu Zm9fYWJvdXRfbmVjZXNzYXJ5X2VkZ2VzKTogUmVsYXggaG90bmVzcyBjaGVj ayBmb3IgZWRnZSB0bworCXNlbGYtcmVjdXJzaXZlIGZ1bmN0aW9uLgorCSog aXBhLXByb3AuaCAoaXBhX25vZGVfcGFyYW1zKTogQWRkIG5ldyBmaWVsZCBu b2RlX2lzX3NlbGZfc2NjLgorCiAyMDE5LTExLTEzICBSaWNoYXJkIFNhbmRp Zm9yZCAgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+CiAKIAkqIHRyZWUt dmVjdC1sb29wLmMgKHZlY3RfZXN0aW1hdGVfbWluX3Byb2ZpdGFibGVfaXRl cnMpOiBJbmNsdWRlCmRpZmYgLS1naXQgYS9nY2MvZG9jL2ludm9rZS50ZXhp IGIvZ2NjL2RvYy9pbnZva2UudGV4aQppbmRleCAwMGViN2U3NzgwOC4uZmY5 MTdlOTlmZjMgMTAwNjQ0Ci0tLSBhL2djYy9kb2MvaW52b2tlLnRleGkKKysr IGIvZ2NjL2RvYy9pbnZva2UudGV4aQpAQCAtMTIwNDYsNiArMTIwNDYsOSBA QCBJUEEtQ1AgY2FsY3VsYXRlcyBpdHMgb3duIHNjb3JlIG9mIGNsb25pbmcg cHJvZml0YWJpbGl0eSBoZXVyaXN0aWNzCiBhbmQgcGVyZm9ybXMgdGhvc2Ug Y2xvbmluZyBvcHBvcnR1bml0aWVzIHdpdGggc2NvcmVzIHRoYXQgZXhjZWVk CiBAb3B0aW9ue2lwYS1jcC1ldmFsLXRocmVzaG9sZH0uCiAKK0BpdGVtIGlw YS1jcC1tYXgtcmVjdXJzaW9uLWRlcHRoCitNYXhpbXVtIGRlcHRoIG9mIHJl Y3Vyc2l2ZSBjbG9uaW5nIGZvciBzZWxmLXJlY3Vyc2l2ZSBmdW5jdGlvbi4K KwogQGl0ZW0gaXBhLWNwLXJlY3Vyc2lvbi1wZW5hbHR5CiBQZXJjZW50YWdl IHBlbmFsdHkgdGhlIHJlY3Vyc2l2ZSBmdW5jdGlvbnMgd2lsbCByZWNlaXZl IHdoZW4gdGhleQogYXJlIGV2YWx1YXRlZCBmb3IgY2xvbmluZy4KZGlmZiAt LWdpdCBhL2djYy9pcGEtY3AuYyBiL2djYy9pcGEtY3AuYwppbmRleCA5ODRk M2IwODI2Ny4uNDIwZjk5OTYwZmIgMTAwNjQ0Ci0tLSBhL2djYy9pcGEtY3Au YworKysgYi9nY2MvaXBhLWNwLmMKQEAgLTIyOCw3ICsyMjgsOSBAQCBwdWJs aWM6CiAgIGlubGluZSBib29sIHNldF9jb250YWluc192YXJpYWJsZSAoKTsK ICAgYm9vbCBhZGRfdmFsdWUgKHZhbHR5cGUgbmV3dmFsLCBjZ3JhcGhfZWRn ZSAqY3MsCiAJCSAgaXBjcF92YWx1ZTx2YWx0eXBlPiAqc3JjX3ZhbCA9IE5V TEwsCi0JCSAgaW50IHNyY19pZHggPSAwLCBIT1NUX1dJREVfSU5UIG9mZnNl dCA9IC0xKTsKKwkJICBpbnQgc3JjX2lkeCA9IDAsIEhPU1RfV0lERV9JTlQg b2Zmc2V0ID0gLTEsCisJCSAgaXBjcF92YWx1ZTx2YWx0eXBlPiAqKnZhbF9w b3NfcCA9IE5VTEwsCisJCSAgYm9vbCB1bmxpbWl0ZWQgPSBmYWxzZSk7CiAg IHZvaWQgcHJpbnQgKEZJTEUgKiBmLCBib29sIGR1bXBfc291cmNlcywgYm9v bCBkdW1wX2JlbmVmaXRzKTsKIH07CiAKQEAgLTE3MzgsMjIgKzE3NDAsMzcg QEAgYWxsb2NhdGVfYW5kX2luaXRfaXBjcF92YWx1ZSAoaXBhX3BvbHltb3Jw aGljX2NhbGxfY29udGV4dCBzb3VyY2UpCiAvKiBUcnkgdG8gYWRkIE5FV1ZB TCB0byBMQVQsIHBvdGVudGlhbGx5IGNyZWF0aW5nIGEgbmV3IGlwY3BfdmFs dWUgZm9yIGl0LiAgQ1MsCiAgICBTUkNfVkFMIFNSQ19JTkRFWCBhbmQgT0ZG U0VUIGFyZSBtZWFudCBmb3IgYWRkX3NvdXJjZSBhbmQgaGF2ZSB0aGUgc2Ft ZQogICAgbWVhbmluZy4gIE9GRlNFVCAtMSBtZWFucyB0aGUgc291cmNlIGlz IHNjYWxhciBhbmQgbm90IGEgcGFydCBvZiBhbgotICAgYWdncmVnYXRlLiAg Ki8KKyAgIGFnZ3JlZ2F0ZS4gIElmIG5vbi1OVUxMLCBWQUxfUE9TX1Agc3Bl Y2lmaWVzIHBvc2l0aW9uIGluIHZhbHVlIGxpc3QsCisgICBhZnRlciB3aGlj aCBuZXdseSBjcmVhdGVkIGlwY3BfdmFsdWUgd2lsbCBiZSBpbnNlcnRlZCwg YW5kIGl0IGlzIGFsc28KKyAgIHVzZWQgdG8gcmVjb3JkIGFkZHJlc3Mgb2Yg dGhlIGFkZGVkIGlwY3BfdmFsdWUgYmVmb3JlIGZ1bmN0aW9uIHJldHVybnMu CisgICBVTkxJTUlURUQgbWVhbnMgd2hldGhlciB2YWx1ZSBjb3VudCBzaG91 bGQgbm90IGV4Y2VlZCB0aGUgbGltaXQgZ2l2ZW4KKyAgIGJ5IFBBUkFNX0lQ QV9DUF9WQUxVRV9MSVNUX1NJWkUuICAqLwogCiB0ZW1wbGF0ZSA8dHlwZW5h bWUgdmFsdHlwZT4KIGJvb2wKIGlwY3BfbGF0dGljZTx2YWx0eXBlPjo6YWRk X3ZhbHVlICh2YWx0eXBlIG5ld3ZhbCwgY2dyYXBoX2VkZ2UgKmNzLAogCQkJ CSAgaXBjcF92YWx1ZTx2YWx0eXBlPiAqc3JjX3ZhbCwKLQkJCQkgIGludCBz cmNfaWR4LCBIT1NUX1dJREVfSU5UIG9mZnNldCkKKwkJCQkgIGludCBzcmNf aWR4LCBIT1NUX1dJREVfSU5UIG9mZnNldCwKKwkJCQkgIGlwY3BfdmFsdWU8 dmFsdHlwZT4gKip2YWxfcG9zX3AsCisJCQkJICBib29sIHVubGltaXRlZCkK IHsKICAgaXBjcF92YWx1ZTx2YWx0eXBlPiAqdmFsOwogCisgIGlmICh2YWxf cG9zX3ApCisgICAgeworICAgICAgZm9yICh2YWwgPSB2YWx1ZXM7IHZhbCAm JiB2YWwgIT0gKnZhbF9wb3NfcDsgdmFsID0gdmFsLT5uZXh0KTsKKyAgICAg IGdjY19jaGVja2luZ19hc3NlcnQgKHZhbCk7CisgICAgfQorCiAgIGlmIChi b3R0b20pCiAgICAgcmV0dXJuIGZhbHNlOwogCiAgIGZvciAodmFsID0gdmFs dWVzOyB2YWw7IHZhbCA9IHZhbC0+bmV4dCkKICAgICBpZiAodmFsdWVzX2Vx dWFsX2Zvcl9pcGNwX3AgKHZhbC0+dmFsdWUsIG5ld3ZhbCkpCiAgICAgICB7 CisJaWYgKHZhbF9wb3NfcCkKKwkgICp2YWxfcG9zX3AgPSB2YWw7CisKIAlp ZiAoaXBhX2VkZ2Vfd2l0aGluX3NjYyAoY3MpKQogCSAgewogCSAgICBpcGNw X3ZhbHVlX3NvdXJjZTx2YWx0eXBlPiAqczsKQEAgLTE3NjgsNyArMTc4NSw3 IEBAIGlwY3BfbGF0dGljZTx2YWx0eXBlPjo6YWRkX3ZhbHVlICh2YWx0eXBl IG5ld3ZhbCwgY2dyYXBoX2VkZ2UgKmNzLAogCXJldHVybiBmYWxzZTsKICAg ICAgIH0KIAotICBpZiAodmFsdWVzX2NvdW50ID09IHBhcmFtX2lwYV9jcF92 YWx1ZV9saXN0X3NpemUpCisgIGlmICghdW5saW1pdGVkICYmIHZhbHVlc19j b3VudCA9PSBwYXJhbV9pcGFfY3BfdmFsdWVfbGlzdF9zaXplKQogICAgIHsK ICAgICAgIC8qIFdlIGNhbiBvbmx5IGZyZWUgc291cmNlcywgbm90IHRoZSB2 YWx1ZXMgdGhlbXNlbHZlcywgYmVjYXVzZSBzb3VyY2VzCiAJIG9mIG90aGVy IHZhbHVlcyBpbiB0aGlzIFNDQyBtaWdodCBwb2ludCB0byB0aGVtLiAgICov CkBAIC0xNzgyLDYgKzE3OTksOSBAQCBpcGNwX2xhdHRpY2U8dmFsdHlwZT46 OmFkZF92YWx1ZSAodmFsdHlwZSBuZXd2YWwsIGNncmFwaF9lZGdlICpjcywK IAkgICAgfQogCX0KIAorICAgICAgaWYgKHZhbF9wb3NfcCkKKwkqdmFsX3Bv c19wID0gTlVMTDsKKwogICAgICAgdmFsdWVzID0gTlVMTDsKICAgICAgIHJl dHVybiBzZXRfdG9fYm90dG9tICgpOwogICAgIH0KQEAgLTE3ODksMTEgKzE4 MDksNzQgQEAgaXBjcF9sYXR0aWNlPHZhbHR5cGU+OjphZGRfdmFsdWUgKHZh bHR5cGUgbmV3dmFsLCBjZ3JhcGhfZWRnZSAqY3MsCiAgIHZhbHVlc19jb3Vu dCsrOwogICB2YWwgPSBhbGxvY2F0ZV9hbmRfaW5pdF9pcGNwX3ZhbHVlIChu ZXd2YWwpOwogICB2YWwtPmFkZF9zb3VyY2UgKGNzLCBzcmNfdmFsLCBzcmNf aWR4LCBvZmZzZXQpOwotICB2YWwtPm5leHQgPSB2YWx1ZXM7Ci0gIHZhbHVl cyA9IHZhbDsKKyAgaWYgKHZhbF9wb3NfcCkKKyAgICB7CisgICAgICB2YWwt Pm5leHQgPSAoKnZhbF9wb3NfcCktPm5leHQ7CisgICAgICAoKnZhbF9wb3Nf cCktPm5leHQgPSB2YWw7CisgICAgICAqdmFsX3Bvc19wID0gdmFsOworICAg IH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHZhbC0+bmV4dCA9IHZhbHVlczsK KyAgICAgIHZhbHVlcyA9IHZhbDsKKyAgICB9CisKICAgcmV0dXJuIHRydWU7 CiB9CiAKKy8qIFJldHVybiB0cnVlLCBpZiBhIGlwY3BfdmFsdWUgVkFMIGlz IG9yZ2luYXRlZCBmcm9tIHBhcmFtZXRlciB2YWx1ZSBvZgorICAgc2VsZi1m ZWVkaW5nIHJlY3Vyc2l2ZSBmdW5jdGlvbiBieSBhcHBseWluZyBub24tcGFz c3Rocm91Z2ggYXJpdGhtZXRpYworICAgdHJhbnNmb3JtYXRpb24uICAqLwor CitzdGF0aWMgYm9vbAorc2VsZl9yZWN1cnNpdmVseV9nZW5lcmF0ZWRfcCAo aXBjcF92YWx1ZTx0cmVlPiAqdmFsKQoreworICBjbGFzcyBpcGFfbm9kZV9w YXJhbXMgKmluZm8gPSBOVUxMOworCisgIGZvciAoaXBjcF92YWx1ZV9zb3Vy Y2U8dHJlZT4gKnNyYyA9IHZhbC0+c291cmNlczsgc3JjOyBzcmMgPSBzcmMt Pm5leHQpCisgICAgeworICAgICAgY2dyYXBoX2VkZ2UgKmNzID0gc3JjLT5j czsKKworICAgICAgaWYgKCFzcmMtPnZhbCB8fCBjcy0+Y2FsbGVyICE9IGNz LT5jYWxsZWUtPmZ1bmN0aW9uX3N5bWJvbCAoKQorCSAgfHwgc3JjLT52YWwg PT0gdmFsKQorCXJldHVybiBmYWxzZTsKKworICAgICAgaWYgKCFpbmZvKQor CWluZm8gPSBJUEFfTk9ERV9SRUYgKGNzLT5jYWxsZXIpOworCisgICAgICBj bGFzcyBpcGNwX3BhcmFtX2xhdHRpY2VzICpwbGF0cyA9IGlwYV9nZXRfcGFy bV9sYXR0aWNlcyAoaW5mbywKKwkJCQkJCQkJc3JjLT5pbmRleCk7CisgICAg ICBpcGNwX2xhdHRpY2U8dHJlZT4gKnNyY19sYXQgPSBzcmMtPm9mZnNldCA9 PSAtMSA/ICZwbGF0cy0+aXRzZWxmCisJCQkJCQkgICAgICA6IHBsYXRzLT5h Z2dzOworICAgICAgaXBjcF92YWx1ZTx0cmVlPiAqc3JjX3ZhbDsKKworICAg ICAgZm9yIChzcmNfdmFsID0gc3JjX2xhdC0+dmFsdWVzOyBzcmNfdmFsICYm IHNyY192YWwgIT0gdmFsOworCSAgIHNyY192YWwgPSBzcmNfdmFsLT5uZXh0 KTsKKworICAgICAgaWYgKCFzcmNfdmFsKQorCXJldHVybiBmYWxzZTsKKyAg ICB9CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB0cmVlCitnZXRf dmFsX2Fjcm9zc19hcml0aF9vcCAoZW51bSB0cmVlX2NvZGUgb3Bjb2RlLAor CQkJIHRyZWUgb3BuZDFfdHlwZSwKKwkJCSB0cmVlIG9wbmQyLAorCQkJIGlw Y3BfdmFsdWU8dHJlZT4gKnNyY192YWwsCisJCQkgdHJlZSByZXNfdHlwZSkK K3sKKyAgdHJlZSBvcG5kMSA9IHNyY192YWwtPnZhbHVlOworCisgIC8qIFNr aXAgc291cmNlIHZhbHVlcyB0aGF0IGlzIGluY29tcGF0aWJsZSB3aXRoIHNw ZWNpZmllZCB0eXBlLiAgKi8KKyAgaWYgKG9wbmQxX3R5cGUKKyAgICAgICYm ICF1c2VsZXNzX3R5cGVfY29udmVyc2lvbl9wIChvcG5kMV90eXBlLCBUUkVF X1RZUEUgKG9wbmQxKSkpCisgICAgcmV0dXJuIE5VTExfVFJFRTsKKworICBy ZXR1cm4gaXBhX2dldF9qZl9hcml0aF9yZXN1bHQgKG9wY29kZSwgb3BuZDEs IG9wbmQyLCByZXNfdHlwZSk7Cit9CisKIC8qIFByb3BhZ2F0ZSB2YWx1ZXMg dGhyb3VnaCBhbiBhcml0aG1ldGljIHRyYW5zZm9ybWF0aW9uIGRlc2NyaWJl ZCBieSBhIGp1bXAKICAgIGZ1bmN0aW9uIGFzc29jaWF0ZWQgd2l0aCBlZGdl IENTLCB0YWtpbmcgdmFsdWVzIGZyb20gU1JDX0xBVCBhbmQgcHV0dGluZwog ICAgdGhlbSBpbnRvIERFU1RfTEFULiAgT1BORDFfVFlQRSBpcyBleHBlY3Rl ZCB0eXBlIGZvciB0aGUgdmFsdWVzIGluIFNSQ19MQVQuCkBAIC0xODE3LDI0 ICsxOTAwLDY5IEBAIHByb3BhZ2F0ZV92YWxzX2Fjcm9zc19hcml0aF9qZnVu YyAoY2dyYXBoX2VkZ2UgKmNzLAogICBpcGNwX3ZhbHVlPHRyZWU+ICpzcmNf dmFsOwogICBib29sIHJldCA9IGZhbHNlOwogCi0gIC8qIERvIG5vdCBjcmVh dGUgbmV3IHZhbHVlcyB3aGVuIHByb3BhZ2F0aW5nIHdpdGhpbiBhbiBTQ0Mg YmVjYXVzZSBpZiB0aGVyZQotICAgICBhcmUgYXJpdGhtZXRpYyBmdW5jdGlv bnMgd2l0aCBjaXJjdWxhciBkZXBlbmRlbmNpZXMsIHRoZXJlIGlzIGluZmlu aXRlCi0gICAgIG51bWJlciBvZiB0aGVtIGFuZCB3ZSB3b3VsZCBqdXN0IG1h a2UgbGF0dGljZXMgYm90dG9tLiAgSWYgdGhpcyBjb25kaXRpb24KLSAgICAg aXMgZXZlciByZWxheGVkIHdlIGhhdmUgdG8gZGV0ZWN0IHNlbGYtZmVlZGlu ZyByZWN1cnNpdmUgY2FsbHMgaW4KLSAgICAgY2dyYXBoX2VkZ2VfYnJpbmdz X3ZhbHVlX3AgaW4gYSBzbWFydGVyIHdheS4gICovCisgIC8qIER1ZSB0byBj aXJjdWxhciBkZXBlbmRlbmNpZXMsIHByb3BhZ2F0aW5nIHdpdGhpbiBhbiBT Q0MgdGhyb3VnaCBhcml0aG1ldGljCisgICAgIHRyYW5zZm9ybWF0aW9uIHdv dWxkIGNyZWF0ZSBpbmZpbml0ZSBudW1iZXIgb2YgdmFsdWVzLiAgQnV0IGZv cgorICAgICBzZWxmLWZlZWRpbmcgcmVjdXJzaXZlIGZ1bmN0aW9uLCB3ZSBj b3VsZCBhbGxvdyBwcm9wYWdhdGlvbiBpbiBhIGxpbWl0ZWQKKyAgICAgY291 bnQsIGFuZCB0aGlzIGNhbiBlbmFibGUgYSBzaW1wbGUga2luZCBvZiByZWN1 cnNpdmUgZnVuY3Rpb24gdmVyc2lvbmluZy4KKyAgICAgRm9yIG90aGVyIHNj ZW5hcmlvLCB3ZSB3b3VsZCBqdXN0IG1ha2UgbGF0dGljZXMgYm90dG9tLiAg Ki8KICAgaWYgKG9wY29kZSAhPSBOT1BfRVhQUiAmJiBpcGFfZWRnZV93aXRo aW5fc2NjIChjcykpCi0gICAgcmV0ID0gZGVzdF9sYXQtPnNldF9jb250YWlu c192YXJpYWJsZSAoKTsKKyAgICB7CisgICAgICBpbnQgaTsKKworICAgICAg aWYgKHNyY19sYXQgIT0gZGVzdF9sYXQgfHwgcGFyYW1faXBhX2NwX21heF9y ZWN1cnNpb25fZGVwdGggPCAxKQorCXJldHVybiBkZXN0X2xhdC0+c2V0X2Nv bnRhaW5zX3ZhcmlhYmxlICgpOworCisgICAgICBhdXRvX3ZlYzxpcGNwX3Zh bHVlPHRyZWU+ICosIDg+IHZhbF9zZWVkczsKKworICAgICAgZm9yIChzcmNf dmFsID0gc3JjX2xhdC0+dmFsdWVzOyBzcmNfdmFsOyBzcmNfdmFsID0gc3Jj X3ZhbC0+bmV4dCkKKwl7CisJICAvKiBOb3cgd2UgZG8gbm90IHVzZSBzZWxm LXJlY3Vyc2l2ZWx5IGdlbmVyYXRlZCB2YWx1ZSBhcyBwcm9wYWdhdGlvbgor CSAgICAgc291cmNlLCB0aGlzIGlzIGFic29sdXRlbHkgY29uc2VydmF0aXZl LCBidXQgY291bGQgYXZvaWQgZXhwbG9zaW9uCisJICAgICBvZiBsYXR0aWNl J3MgdmFsdWUgc3BhY2UsIGVzcGVjaWFsbHkgd2hlbiBvbmUgcmVjdXJzaXZl IGZ1bmN0aW9uCisJICAgICBjYWxscyBhbm90aGVyIHJlY3Vyc2l2ZS4gICov CisJICBpZiAoc2VsZl9yZWN1cnNpdmVseV9nZW5lcmF0ZWRfcCAoc3JjX3Zh bCkpCisJICAgIHsKKwkgICAgICAvKiBJZiB0aGUgbGF0dGljZSBoYXMgYWxy ZWFkeSBiZWVuIHByb3BhZ2F0ZWQgZm9yIHRoZSBjYWxsIHNpdGUsCisJCSBu byBuZWVkIHRvIGRvIHRoYXQgYWdhaW4uICAqLworCSAgICAgIGZvciAoaXBj cF92YWx1ZV9zb3VyY2U8dHJlZT4gKnMgPSBzcmNfdmFsLT5zb3VyY2VzOyBz OworCQkgICBzID0gcy0+bmV4dCkKKwkJaWYgKHMtPmNzID09IGNzKQorCQkg IHJldHVybiBkZXN0X2xhdC0+c2V0X2NvbnRhaW5zX3ZhcmlhYmxlICgpOwor CSAgICB9CisJICBlbHNlCisJICAgIHZhbF9zZWVkcy5zYWZlX3B1c2ggKHNy Y192YWwpOworCX0KKworICAgICAgLyogUmVjdXJzaXZlbHkgZ2VuZXJhdGUg bGF0dGljZSB2YWx1ZXMgd2l0aCBhIGxpbWl0ZWQgY291bnQuICAqLworICAg ICAgRk9SX0VBQ0hfVkVDX0VMVCAodmFsX3NlZWRzLCBpLCBzcmNfdmFsKQor CXsKKwkgIGZvciAoaW50IGogPSAxOyBqIDwgcGFyYW1faXBhX2NwX21heF9y ZWN1cnNpb25fZGVwdGg7IGorKykKKwkgICAgeworCSAgICAgIHRyZWUgY3N0 dmFsID0gZ2V0X3ZhbF9hY3Jvc3NfYXJpdGhfb3AgKG9wY29kZSwgb3BuZDFf dHlwZSwgb3BuZDIsCisJCQkJCQkgICAgIHNyY192YWwsIHJlc190eXBlKTsK KwkgICAgICBpZiAoIWNzdHZhbCkKKwkJYnJlYWs7CisKKwkgICAgICAvKiBU cnkgdG8gcGxhY2UgdGhlIG5ldyBsYXR0aWNlIHZhbHVlIGFmdGVyIGl0cyBz b3VyY2UsIHdoaWNoCisJCSBjYW4gZGVjcmVhc2UgaXRlcmF0aW9ucyBvZiBw cm9wYWdhdGUgc3RhZ2UuICAqLworCSAgICAgIHJldCB8PSBkZXN0X2xhdC0+ YWRkX3ZhbHVlIChjc3R2YWwsIGNzLCBzcmNfdmFsLCBzcmNfaWR4LAorCQkJ CQkgIHNyY19vZmZzZXQsICZzcmNfdmFsLCB0cnVlKTsKKwkgICAgICBnY2Nf Y2hlY2tpbmdfYXNzZXJ0IChzcmNfdmFsKTsKKwkgICAgfQorCX0KKyAgICAg IHJldCB8PSBkZXN0X2xhdC0+c2V0X2NvbnRhaW5zX3ZhcmlhYmxlICgpOwor ICAgIH0KICAgZWxzZQogICAgIGZvciAoc3JjX3ZhbCA9IHNyY19sYXQtPnZh bHVlczsgc3JjX3ZhbDsgc3JjX3ZhbCA9IHNyY192YWwtPm5leHQpCiAgICAg ICB7Ci0JdHJlZSBvcG5kMSA9IHNyY192YWwtPnZhbHVlOwotCXRyZWUgY3N0 dmFsID0gTlVMTF9UUkVFOwotCi0JLyogU2tpcCBzb3VyY2UgdmFsdWVzIHRo YXQgaXMgaW5jb21wYXRpYmxlIHdpdGggc3BlY2lmaWVkIHR5cGUuICAqLwot CWlmICghb3BuZDFfdHlwZQotCSAgICB8fCB1c2VsZXNzX3R5cGVfY29udmVy c2lvbl9wIChvcG5kMV90eXBlLCBUUkVFX1RZUEUgKG9wbmQxKSkpCi0JICBj c3R2YWwgPSBpcGFfZ2V0X2pmX2FyaXRoX3Jlc3VsdCAob3Bjb2RlLCBvcG5k MSwgb3BuZDIsIHJlc190eXBlKTsKKwkvKiBOb3cgd2UgZG8gbm90IHVzZSBz ZWxmLXJlY3Vyc2l2ZWx5IGdlbmVyYXRlZCB2YWx1ZSBhcyBwcm9wYWdhdGlv bgorCSAgIHNvdXJjZSwgb3RoZXJ3aXNlIGl0IGlzIGVhc3kgdG8gbWFrZSB2 YWx1ZSBzcGFjZSBvZiBub3JtYWwgbGF0dGljZQorCSAgIG92ZXJmbG93LiAg Ki8KKwlpZiAoc2VsZl9yZWN1cnNpdmVseV9nZW5lcmF0ZWRfcCAoc3JjX3Zh bCkpCisJICBjb250aW51ZTsKIAorCXRyZWUgY3N0dmFsID0gZ2V0X3ZhbF9h Y3Jvc3NfYXJpdGhfb3AgKG9wY29kZSwgb3BuZDFfdHlwZSwgb3BuZDIsCisJ CQkJCSAgICAgICBzcmNfdmFsLCByZXNfdHlwZSk7CiAJaWYgKGNzdHZhbCkK IAkgIHJldCB8PSBkZXN0X2xhdC0+YWRkX3ZhbHVlIChjc3R2YWwsIGNzLCBz cmNfdmFsLCBzcmNfaWR4LAogCQkJCSAgICAgIHNyY19vZmZzZXQpOwpAQCAt MjkzOSw3ICszMDY3LDcgQEAgaGludF90aW1lX2JvbnVzIChpcGFfaGludHMg aGludHMpCiBzdGF0aWMgaW5saW5lIGludDY0X3QKIGluY29ycG9yYXRlX3Bl bmFsdGllcyAoaXBhX25vZGVfcGFyYW1zICppbmZvLCBpbnQ2NF90IGV2YWx1 YXRpb24pCiB7Ci0gIGlmIChpbmZvLT5ub2RlX3dpdGhpbl9zY2MpCisgIGlm IChpbmZvLT5ub2RlX3dpdGhpbl9zY2MgJiYgIWluZm8tPm5vZGVfaXNfc2Vs Zl9zY2MpCiAgICAgZXZhbHVhdGlvbiA9IChldmFsdWF0aW9uCiAJCSAgKiAo MTAwIC0gcGFyYW1faXBhX2NwX3JlY3Vyc2lvbl9wZW5hbHR5KSkgLyAxMDA7 CiAKQEAgLTI5ODMsNyArMzExMSw4IEBAIGdvb2RfY2xvbmluZ19vcHBvcnR1 bml0eV9wIChzdHJ1Y3QgY2dyYXBoX25vZGUgKm5vZGUsIGludCB0aW1lX2Jl bmVmaXQsCiAJICBjb3VudF9zdW0uZHVtcCAoZHVtcF9maWxlKTsKIAkgIGZw cmludGYgKGR1bXBfZmlsZSwgIiVzJXMpIC0+IGV2YWx1YXRpb246ICIgIiUi IFBSSWQ2NAogCQkgIiwgdGhyZXNob2xkOiAlaVxuIiwKLQkJIGluZm8tPm5v ZGVfd2l0aGluX3NjYyA/ICIsIHNjYyIgOiAiIiwKKwkJIGluZm8tPm5vZGVf d2l0aGluX3NjYworCQkgICA/IChpbmZvLT5ub2RlX2lzX3NlbGZfc2NjID8g Iiwgc2VsZl9zY2MiIDogIiwgc2NjIikgOiAiIiwKIAkJIGluZm8tPm5vZGVf Y2FsbGluZ19zaW5nbGVfY2FsbCA/ICIsIHNpbmdsZV9jYWxsIiA6ICIiLAog CQkgZXZhbHVhdGlvbiwgcGFyYW1faXBhX2NwX2V2YWxfdGhyZXNob2xkKTsK IAl9CkBAIC0zMDAxLDcgKzMxMzAsOCBAQCBnb29kX2Nsb25pbmdfb3Bwb3J0 dW5pdHlfcCAoc3RydWN0IGNncmFwaF9ub2RlICpub2RlLCBpbnQgdGltZV9i ZW5lZml0LAogCQkgInNpemU6ICVpLCBmcmVxX3N1bTogJWklcyVzKSAtPiBl dmFsdWF0aW9uOiAiCiAJCSAiJSIgUFJJZDY0ICIsIHRocmVzaG9sZDogJWlc biIsCiAJCSB0aW1lX2JlbmVmaXQsIHNpemVfY29zdCwgZnJlcV9zdW0sCi0J CSBpbmZvLT5ub2RlX3dpdGhpbl9zY2MgPyAiLCBzY2MiIDogIiIsCisJCSBp bmZvLT5ub2RlX3dpdGhpbl9zY2MKKwkJICAgPyAoaW5mby0+bm9kZV9pc19z ZWxmX3NjYyA/ICIsIHNlbGZfc2NjIiA6ICIsIHNjYyIpIDogIiIsCiAJCSBp bmZvLT5ub2RlX2NhbGxpbmdfc2luZ2xlX2NhbGwgPyAiLCBzaW5nbGVfY2Fs bCIgOiAiIiwKIAkJIGV2YWx1YXRpb24sIHBhcmFtX2lwYV9jcF9ldmFsX3Ro cmVzaG9sZCk7CiAKQEAgLTM0OTUsMTQgKzM2MjUsMzAgQEAgcHJvcGFnYXRl X2NvbnN0YW50c190b3BvIChjbGFzcyBpcGFfdG9wb19pbmZvICp0b3BvKQog ICAgICAgd2hpbGUgKHYpCiAJewogCSAgc3RydWN0IGNncmFwaF9lZGdlICpj czsKKwkgIGNsYXNzIGlwYV9ub2RlX3BhcmFtcyAqaW5mbyA9IE5VTEw7CisJ ICBib29sIHNlbGZfc2NjID0gdHJ1ZTsKIAogCSAgZm9yIChjcyA9IHYtPmNh bGxlZXM7IGNzOyBjcyA9IGNzLT5uZXh0X2NhbGxlZSkKIAkgICAgaWYgKGlw YV9lZGdlX3dpdGhpbl9zY2MgKGNzKSkKIAkgICAgICB7Ci0JCUlQQV9OT0RF X1JFRiAodiktPm5vZGVfd2l0aGluX3NjYyA9IHRydWU7CisJCWNncmFwaF9u b2RlICpjYWxsZWUgPSBjcy0+Y2FsbGVlLT5mdW5jdGlvbl9zeW1ib2wgKCk7 CisKKwkJaWYgKHYgIT0gY2FsbGVlKQorCQkgIHNlbGZfc2NjID0gZmFsc2U7 CisKKwkJaWYgKCFpbmZvKQorCQkgIHsKKwkJICAgIGluZm8gPSBJUEFfTk9E RV9SRUYgKHYpOworCQkgICAgaW5mby0+bm9kZV93aXRoaW5fc2NjID0gdHJ1 ZTsKKwkJICB9CisKIAkJaWYgKHByb3BhZ2F0ZV9jb25zdGFudHNfYWNyb3Nz X2NhbGwgKGNzKSkKLQkJICBwdXNoX25vZGVfdG9fc3RhY2sgKHRvcG8sIGNz LT5jYWxsZWUtPmZ1bmN0aW9uX3N5bWJvbCAoKSk7CisJCSAgcHVzaF9ub2Rl X3RvX3N0YWNrICh0b3BvLCBjYWxsZWUpOwogCSAgICAgIH0KKworCSAgaWYg KGluZm8pCisJICAgIGluZm8tPm5vZGVfaXNfc2VsZl9zY2MgPSBzZWxmX3Nj YzsKKwogCSAgdiA9IHBvcF9ub2RlX2Zyb21fc3RhY2sgKHRvcG8pOwogCX0K IApAQCAtMzg4NCw2ICs0MDMwLDkgQEAgZ2V0X2luZm9fYWJvdXRfbmVjZXNz YXJ5X2VkZ2VzIChpcGNwX3ZhbHVlPHZhbHR5cGU+ICp2YWwsIGNncmFwaF9u b2RlICpkZXN0LAogCSAgICAgIGhvdCB8PSBjcy0+bWF5YmVfaG90X3AgKCk7 CiAJICAgICAgaWYgKGNzLT5jYWxsZXIgIT0gZGVzdCkKIAkJbm9uX3NlbGZf cmVjdXJzaXZlID0gdHJ1ZTsKKwkgICAgICBlbHNlIGlmIChzcmMtPnZhbCkK KwkJZ2NjX2Fzc2VydCAodmFsdWVzX2VxdWFsX2Zvcl9pcGNwX3AgKHNyYy0+ dmFsLT52YWx1ZSwKKwkJCQkJCSAgICAgdmFsLT52YWx1ZSkpOwogCSAgICB9 CiAJICBjcyA9IGdldF9uZXh0X2NncmFwaF9lZGdlX2Nsb25lIChjcyk7CiAJ fQpAQCAtMzg5Nyw2ICs0MDQ2LDE5IEBAIGdldF9pbmZvX2Fib3V0X25lY2Vz c2FyeV9lZGdlcyAoaXBjcF92YWx1ZTx2YWx0eXBlPiAqdmFsLCBjZ3JhcGhf bm9kZSAqZGVzdCwKICAgKmZyZXFfc3VtID0gZnJlcTsKICAgKmNvdW50X3N1 bSA9IGNudDsKICAgKmNhbGxlcl9jb3VudCA9IGNvdW50OworCisgIGlmICgh aG90ICYmIElQQV9OT0RFX1JFRiAoZGVzdCktPm5vZGVfd2l0aGluX3NjYykK KyAgICB7CisgICAgICBzdHJ1Y3QgY2dyYXBoX2VkZ2UgKmNzOworCisgICAg ICAvKiBDb2xkIG5vbi1TQ0Mgc291cmNlIGVkZ2UgY291bGQgdHJpZ2dlciBo b3QgcmVjdXJzaXZlIGV4ZWN1dGlvbiBvZgorCSBmdW5jdGlvbi4gQ29uc2lk ZXIgdGhlIGNhc2UgYXMgaG90IGFuZCByZWx5IG9uIGZvbGxvd2luZyBjb3N0 IG1vZGVsCisJIGNvbXB1dGF0aW9uIHRvIGZ1cnRoZXIgc2VsZWN0IHJpZ2h0 IG9uZS4gICovCisgICAgICBmb3IgKGNzID0gZGVzdC0+Y2FsbGVyczsgY3M7 IGNzID0gY3MtPm5leHRfY2FsbGVyKQorCWlmIChjcy0+Y2FsbGVyID09IGRl c3QgJiYgY3MtPm1heWJlX2hvdF9wICgpKQorCSAgcmV0dXJuIHRydWU7Cisg ICAgfQorCiAgIHJldHVybiBob3Q7CiB9CiAKZGlmZiAtLWdpdCBhL2djYy9p cGEtcHJvcC5oIGIvZ2NjL2lwYS1wcm9wLmgKaW5kZXggN2ViOTZhMDU3ZmUu LmZmNzY3NWRiZjZmIDEwMDY0NAotLS0gYS9nY2MvaXBhLXByb3AuaAorKysg Yi9nY2MvaXBhLXByb3AuaApAQCAtNDk1LDYgKzQ5NSw4IEBAIHB1YmxpYzoK ICAgdW5zaWduZWQgbm9kZV9kZWFkIDogMTsKICAgLyogTm9kZSBpcyBpbnZv bHZlZCBpbiBhIHJlY3Vyc2lvbiwgcG90ZW50aW9uYWxseSBpbmRpcmVjdC4g ICovCiAgIHVuc2lnbmVkIG5vZGVfd2l0aGluX3NjYyA6IDE7CisgIC8qIE5v ZGUgY29udGFpbnMgb25seSBkaXJlY3QgcmVjdXJzaW9uLiAgKi8KKyAgdW5z aWduZWQgbm9kZV9pc19zZWxmX3NjYyA6IDE7CiAgIC8qIE5vZGUgaXMgY2Fs bGluZyBhIHByaXZhdGUgZnVuY3Rpb24gY2FsbGVkIG9ubHkgb25jZS4gICov CiAgIHVuc2lnbmVkIG5vZGVfY2FsbGluZ19zaW5nbGVfY2FsbCA6IDE7CiAg IC8qIEZhbHNlIHdoZW4gdGhlcmUgaXMgc29tZXRoaW5nIG1ha2VzIHZlcnNp b25pbmcgaW1wb3NzaWJsZS4gICovCmRpZmYgLS1naXQgYS9nY2MvcGFyYW1z Lm9wdCBiL2djYy9wYXJhbXMub3B0CmluZGV4IGJlMGEzYTE1NTk4Li44OTUx OTM1Y2M3NyAxMDA2NDQKLS0tIGEvZ2NjL3BhcmFtcy5vcHQKKysrIGIvZ2Nj L3BhcmFtcy5vcHQKQEAgLTIxMCw2ICsyMTAsMTAgQEAgVGhyZXNob2xkIGlw YS1jcCBvcHBvcnR1bml0eSBldmFsdWF0aW9uIHRoYXQgaXMgc3RpbGwgY29u c2lkZXJlZCBiZW5lZmljaWFsIHRvIGMKIENvbW1vbiBKb2luZWQgVUludGVn ZXIgVmFyKHBhcmFtX2lwYV9jcF9sb29wX2hpbnRfYm9udXMpIEluaXQoNjQp IFBhcmFtCiBDb21waWxlLXRpbWUgYm9udXMgSVBBLUNQIGFzc2lnbnMgdG8g Y2FuZGlkYXRlcyB3aGljaCBtYWtlIGxvb3AgYm91bmRzIG9yIHN0cmlkZXMg a25vd24uCiAKKy1wYXJhbT1pcGEtY3AtbWF4LXJlY3Vyc2lvbi1kZXB0aD0K K0NvbW1vbiBKb2luZWQgVUludGVnZXIgVmFyKHBhcmFtX2lwYV9jcF9tYXhf cmVjdXJzaW9uX2RlcHRoKSBJbml0KDcpIFBhcmFtCitNYXhpbXVtIGRlcHRo IG9mIHJlY3Vyc2l2ZSBjbG9uaW5nIGZvciBzZWxmLXJlY3Vyc2l2ZSBmdW5j dGlvbi4KKwogLXBhcmFtPWlwYS1jcC1yZWN1cnNpb24tcGVuYWx0eT0KIENv bW1vbiBKb2luZWQgVUludGVnZXIgVmFyKHBhcmFtX2lwYV9jcF9yZWN1cnNp b25fcGVuYWx0eSkgSW5pdCg0MCkgSW50ZWdlclJhbmdlKDAsIDEwMCkgUGFy YW0KIFBlcmNlbnRhZ2UgcGVuYWx0eSB0aGUgcmVjdXJzaXZlIGZ1bmN0aW9u cyB3aWxsIHJlY2VpdmUgd2hlbiB0aGV5IGFyZSBldmFsdWF0ZWQgZm9yIGNs b25pbmcuCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL0NoYW5nZUxvZyBi L2djYy90ZXN0c3VpdGUvQ2hhbmdlTG9nCmluZGV4IDgzNGMxN2E2ZDdmLi5j ZDU3MmU2N2ZjNCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VM b2cKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4 IEBACisyMDE5LTExLTEzICBGZW5nIFh1ZSAgPGZ4dWVAb3MuYW1wZXJlY29t cHV0aW5nLmNvbT4KKworCVBSIGlwYS85MjEzMworCSogZ2NjLmRnL2lwYS9p cGEtY2xvbmUtMi5jOiBOZXcgdGVzdC4KKwogMjAxOS0xMS0xMyAgUmljaGFy ZCBTYW5kaWZvcmQgIDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPgogCiAJ KiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL21hc2tfc3RydWN0X3N0b3JlXzMu YzogQWRkCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9pcGEv aXBhLWNsb25lLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL2lwYS9pcGEt Y2xvbmUtMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5jNmMyNmY3M2VlNQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL2lwYS9pcGEtY2xvbmUtMi5jCkBAIC0wLDAgKzEsNDcg QEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMyAtZmR1bXAtaXBhLWNwLWRldGFpbHMgLWZuby1lYXJseS1pbmxpbmlu ZyAtLXBhcmFtIGlwYS1jcC1tYXgtcmVjdXJzaW9uLWRlcHRoPTgiIH0gKi8K KworaW50IGZuKCk7CisKK2ludCBkYXRhWzEwMF07CisKK2ludCByZWN1cl9m biAoaW50IGkpCit7CisgIGludCBqOworICAgCisgIGlmIChpID09IDYpCisg ICAgeworICAgICAgZm4oKTsKKyAgICAgIGZuKCk7CisgICAgICBmbigpOwor ICAgICAgZm4oKTsKKyAgICAgIGZuKCk7CisgICAgICBmbigpOworICAgICAg Zm4oKTsKKyAgICAgIGZuKCk7CisgICAgICBmbigpOworICAgICAgZm4oKTsK KyAgICAgIGZuKCk7CisgICAgICBmbigpOworICAgICAgcmV0dXJuIDEwOwor ICAgIH0KKworICBkYXRhW2ldID0gaTsgCisKKyAgZm9yIChqID0gMDsgaiA8 IDEwMDsgaisrKQorICAgIHJlY3VyX2ZuIChpICsgMSk7CisKKyAgcmV0dXJu IGk7IAorfQorCitpbnQgbWFpbiAoKQoreworICBpbnQgaTsKKworICBmb3Ig KGkgPSAwOyBpIDwgMTAwOyBpKyspCisgICAgcmVjdXJfZm4gKDEpICsgcmVj dXJfZm4gKC01KTsKKworICByZXR1cm4gMTsKK30KKworLyogeyBkZy1maW5h bCB7IHNjYW4taXBhLWR1bXAtdGltZXMgIkNyZWF0aW5nIGEgc3BlY2lhbGl6 ZWQgbm9kZSBvZiByZWN1cl9mbi9cWzAtOVxdKlxcLiIgMTIgImNwIiB9IH0g Ki8KLS0gCjIuMTcuMQoK --_002_BYAPR01MB48698A65EDA7ACAE72D98E31F7760BYAPR01MB4869prod_--