From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 112937 invoked by alias); 28 Nov 2016 19:42:43 -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 112916 invoked by uid 89); 28 Nov 2016 19:42:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 spammy=enabling, *ctx, xj, x5 X-HELO: SNT004-OMC1S51.hotmail.com Received: from snt004-omc1s51.hotmail.com (HELO SNT004-OMC1S51.hotmail.com) (65.54.61.88) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 28 Nov 2016 19:42:32 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com ([65.55.90.7]) by SNT004-OMC1S51.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.23008); Mon, 28 Nov 2016 11:42:31 -0800 Received: from VE1EUR01FT031.eop-EUR01.prod.protection.outlook.com (10.152.2.51) by VE1EUR01HT135.eop-EUR01.prod.protection.outlook.com (10.152.3.224) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.734.4; Mon, 28 Nov 2016 19:42:18 +0000 Received: from AM4PR0701MB2162.eurprd07.prod.outlook.com (10.152.2.56) by VE1EUR01FT031.mail.protection.outlook.com (10.152.2.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.734.4 via Frontend Transport; Mon, 28 Nov 2016 19:42:18 +0000 Received: from AM4PR0701MB2162.eurprd07.prod.outlook.com ([10.167.132.147]) by AM4PR0701MB2162.eurprd07.prod.outlook.com ([10.167.132.147]) with mapi id 15.01.0761.009; Mon, 28 Nov 2016 19:42:18 +0000 From: Bernd Edlinger To: Ramana Radhakrishnan CC: GCC Patches , Kyrill Tkachov , Richard Earnshaw , Wilco Dijkstra Subject: Re: [PATCH, ARM] Further improve stack usage on sha512 (PR 77308) Date: Mon, 28 Nov 2016 19:42:00 -0000 Message-ID: References: In-Reply-To: authentication-results: googlemail.com; dkim=none (message not signed) header.d=none;googlemail.com; dmarc=none action=none header.from=hotmail.de; x-incomingtopheadermarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:7614;Count:37 x-ms-exchange-messagesentrepresentingtype: 1 x-incomingheadercount: 37 x-eopattributedmessage: 0 x-microsoft-exchange-diagnostics: 1;VE1EUR01HT135;7:IRalJGThLY7oq43FKtnKIrHkgew9qUu4NAvcB9q/O4CpiWSAl6o+HE1TFjXNU+hJ6/qCbBIE0r14Rev9LMFBVWmw4bfw7V1Io8hXfQNpPuv4DVCNeLbWEIe6zL1UsX2+OSezucFUQO4/ajtic0gvBFWeuc0esGTdvPfj2umR52Eubow+pvUaNigIiyPiR9zk4mDKQESMkp+a4oOPaAGmrexDwWw3MZAdTUaq/xnihgb6N8PR/NgVzdVHKnMho0zg7MBEvUZUlPVaazAPC70VVSbKAQ8XxYoEpunlLhq4Im2ldzGpfqHWUeQsw5aY+AktWbGLQah1EHHUm26YveL/RpN6k8UIzRdkSh80luM4D8s= x-forefront-antispam-report: EFV:NLI;SFV:NSPM;SFS:(10019020)(98900003);DIR:OUT;SFP:1102;SCL:1;SRVR:VE1EUR01HT135;H:AM4PR0701MB2162.eurprd07.prod.outlook.com;FPR:;SPF:None;LANG:en; x-ms-office365-filtering-correlation-id: 99fac248-c11c-4d7a-3b1e-08d417c6a8a0 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(1601124038)(1603103113)(1601125047);SRVR:VE1EUR01HT135; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(432015012)(102415395)(82015046);SRVR:VE1EUR01HT135;BCL:0;PCL:0;RULEID:;SRVR:VE1EUR01HT135; x-forefront-prvs: 01401330D1 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_AM4PR0701MB2162C11BF479CD62542E2E8AE48A0AM4PR0701MB2162_" MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2016 19:42:17.9150 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR01HT135 X-SW-Source: 2016-11/txt/msg02796.txt.bz2 --_002_AM4PR0701MB2162C11BF479CD62542E2E8AE48A0AM4PR0701MB2162_ Content-Type: text/plain; charset="utf-8" Content-ID: <8ECEAAEA975963498E71AE16868098D3@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 4108 T24gMTEvMjUvMTYgMTI6MzAsIFJhbWFuYSBSYWRoYWtyaXNobmFuIHdyb3Rl Og0KPiBPbiBTdW4sIE5vdiA2LCAyMDE2IGF0IDI6MTggUE0sIEJlcm5kIEVk bGluZ2VyDQo+IDxiZXJuZC5lZGxpbmdlckBob3RtYWlsLmRlPiB3cm90ZToN Cj4+IEhpIQ0KPj4NCj4+IFRoaXMgaW1wcm92ZXMgdGhlIHN0YWNrIHVzYWdl IG9uIHRoZSBzaGE1MTIgdGVzdCBjYXNlIGZvciB0aGUgY2FzZQ0KPj4gd2l0 aG91dCBoYXJkd2FyZSBmcHUgYW5kIHdpdGhvdXQgaXdtbXh0IGJ5IHNwbGl0 dGluZyBhbGwgZGktbW9kZQ0KPj4gcGF0dGVybnMgcmlnaHQgd2hpbGUgZXhw YW5kaW5nIHdoaWNoIGlzIHNpbWlsYXIgdG8gd2hhdCB0aGUgc2hpZnQtcGF0 dGVybg0KPj4gZG9lcy4gIEl0IGRvZXMgbm90aGluZyBpbiB0aGUgY2FzZSBp d21teHQgYW5kIGZwdT1uZW9uIG9yIHZmcCBhcyB3ZWxsIGFzDQo+PiB0aHVt YjEuDQo+Pg0KPg0KPiBJIHdvdWxkIGdvIGZ1cnRoZXIgYW5kIGRvIHRoaXMg aW4gdGhlIGFic2VuY2Ugb2YgTmVvbiwgdGhlIFZGUCB1bml0DQo+IGJlaW5n IHRoZXJlIGRvZXNuJ3QgaGVscCB3aXRoIERJbW9kZSBvcGVyYXRpb25zIGku ZS4gd2UgZG8gbm90IGhhdmUgNjQNCj4gYml0IGludGVnZXIgYXJpdGhtZXRp YyBpbnN0cnVjdGlvbnMgd2l0aG91dCBOZW9uLiBUaGUgbWFpbiByZWFzb24g d2h5DQo+IHdlIGhhdmUgdGhlIERJbW9kZSBwYXR0ZXJucyBzcGxpdCBzbyBs YXRlIGlzIHRvIGdpdmUgYSBjaGFuY2UgZm9yDQo+IGZvbGtzIHdobyB3YW50 IHRvIGRvIDY0IGJpdCBhcml0aG1ldGljIGluIE5lb24gYSBjaGFuY2UgdG8g bWFrZSB0aGlzDQo+IHdvcmsgYXMgd2VsbCBhcyBzdXBwb3J0IHNvbWUgb2Yg dGhlIDY0IGJpdCBOZW9uIGludHJpbnNpY3Mgd2hpY2ggSUlSQw0KPiBtYXAg ZG93biB0byB0aGVzZSBpbnN0cnVjdGlvbnMuIERvaW5nIHRoaXMganVzdCBm b3Igc29mdC1mbG9hdCBkb2Vzbid0DQo+IGltcHJvdmUgdGhlIGRlZmF1bHQg Y2FzZSBvbmx5LiBJIGRvbid0IHVzdWFsbHkgdGVzdCBpd21teHQgYW5kIEkn bSBub3QNCj4gc3VyZSB3aG8gaGFzIHRoZSBhYmlsaXR5IHRvIGRvIHNvLCB0 aHVzIGtlZXBpbmcgdGhpcyByZXN0cmljdGlvbiBmb3INCj4gaXdNTVggaXMg ZmluZS4NCj4NCj4NCg0KWWVzIEkgdW5kZXJzdGFuZCwgdGhhbmtzIGZvciBw b2ludGluZyB0aGF0IG91dC4NCg0KSSB3YXMgbm90IGF3YXJlIHdoYXQgaXdt bXh0IGV4aXN0cyBhdCBhbGwsIGJ1dCBJIG5vdGljZWQgdGhhdCBtb3N0DQo2 NGJpdCBleHBhbnNpb25zIHdvcmsgY29tcGxldGVseSBkaWZmZXJlbnQsIGFu ZCB3b3VsZCBicmVhayBpZiB3ZSBzcGxpdA0KdGhlIHBhdHRlcm4gZWFybHku DQoNCkkgY2FuIGhvd2V2ZXIgb25seSBsb29rIGF0IHRoZSBhc3NlbWJsZXIg b3V0b3V0IGZvciBpd21teHQsIGFuZCBtYWtlDQpzdXJlIHRoYXQgdGhlIHN0 YWNrIHVzYWdlIGRvZXMgbm90IGdldCB3b3JzZS4NCg0KVGh1cyB0aGUgbmV3 IHZlcnNpb24gb2YgdGhlIHBhdGNoIGtlZXBzIG9ubHkgdGh1bWIxLCBuZW9u IGFuZCBpd21teHQgYXMNCml0IGlzOiBhcm91bmQgMTU3MCAodGh1bWIxKSwg MjMwMCAobmVvbikgYW5kIDIyMDAgKHdpbW14dCkgYnl0ZXMgc3RhY2sNCmZv ciB0aGUgdGVzdCBjYXNlcywgYW5kIHZmcCBhbmQgc29mdC1mbG9hdCBhdCBh cm91bmQgMjcwIGJ5dGVzIHN0YWNrDQp1c2FnZS4NCg0KPj4gSXQgcmVkdWNl cyB0aGUgc3RhY2sgdXNhZ2UgZnJvbSAyMzAwIHRvIG5lYXIgb3B0aW1hbCAy NzIgYnl0ZXMgKCEpLg0KPj4NCj4+IE5vdGUgdGhpcyBhbHNvIHNwbGl0cyBt YW55IGxkcmQvc3RyZCBpbnN0cnVjdGlvbnMgYW5kIHRoZXJlZm9yZSBJIHdp bGwNCj4+IHBvc3QgYSBmb2xsb3d1cC1wYXRjaCB0aGF0IG1pdGlnYXRlcyB0 aGlzIGVmZmVjdCBieSBlbmFibGluZyB0aGUgbGRyZC9zdHJkDQo+PiBwZWVw aG9sZSBvcHRpbWl6YXRpb24gYWZ0ZXIgdGhlIG5lY2Vzc2FyeSByZWctdGVz dGluZy4NCj4+DQo+Pg0KPj4gQm9vdHN0cmFwcGVkIGFuZCByZWctdGVzdGVk IG9uIGFybS1saW51eC1nbnVlYWJpaGYuDQo+DQo+IFdoYXQgZG8geW91IG1l YW4gYnkgYXJtLWxpbnV4LWdudWVhYmloZiAtIHdoZW4gZm9sa3Mgc2F5IHRo YXQgSQ0KPiBpbnRlcnByZXQgaXQgYXMgLS13aXRoLWFyY2g9YXJtdjctYSAt LXdpdGgtZmxvYXQ9aGFyZA0KPiAtLXdpdGgtZnB1PXZmcHYzLWQxNiBvciAo LS13aXRoLWZwdT1uZW9uKS4NCj4NCj4gSWYgeW91J3ZlIHJlYWxseSBib290 c3RyYXBwZWQgYW5kIHJlZ3Rlc3RlZCBpdCBvbiBhcm1oZiwgZG9lc24ndCB0 aGlzDQo+IHBhdGNoIGFzIGl0IHN0YW5kIGhhdmUgbm8gZWZmZWN0IHRoZXJl IGkuZS4gbm8gY2hhbmdlID8NCj4gYXJtLWxpbnV4LWdudWVhYmloZiB1c3Vh bGx5IG1lYW5zIHRvIG1lIHNvbWVvbmUgaGFzIGNvbmZpZ3VyZWQgd2l0aA0K PiAtLXdpdGgtZmxvYXQ9aGFyZCwgc28gdGhlcmUgYXJlIG5vIHJlZ3Jlc3Np b25zIGluIHRoZSBoYXJkIGZsb2F0IEFCSQ0KPiBjYXNlLA0KPg0KDQpJIGtu b3cgaXQgcHJvdmVzIGxpdHRsZS4gIFdoZW4gSSBzYXkgYXJtLWxpbnV4LWdu dWVhYmloZg0KSSBkbyBpbiBmYWN0IG1lYW4gLS1lbmFibGUtbGFuZ3VhZ2Vz PWFsbCxhZGEsZ28sb2JqLWMrKw0KLS13aXRoLWFyY2g9YXJtdjctYSAtLXdp dGgtdHVuZT1jb3J0ZXgtYTkgLS13aXRoLWZwdT12ZnB2My1kMTYNCi0td2l0 aC1mbG9hdD1oYXJkLg0KDQpNeSBtYWluIGludGVyZXN0IGluIHRoZSBzdGFj ayB1c2FnZSBpcyBvZiBjb3Vyc2Ugbm90IGJlY2F1c2Ugb2YgbGludXgsDQpi dXQgYmVjYXVzZSBvZiBlQ29zIHdoZXJlIHdlIGhhdmUgdmVyeSBzbWFsbCB0 YXNrIHN0YWNrcyBhbmQgaW4gZmFjdA0Kbm8gZnB1IHN1cHBvcnQgYnkgdGhl IE8vUyBhdCBhbGwsIHNvIHRoYXQgcGF0Y2ggaXMgZXhhY3RseSB3aGF0IHdl IG5lZWQuDQoNCg0KQm9vdHN0cmFwcGVkIGFuZCByZWctdGVzdGVkIG9uIGFy bS1saW51eC1nbnVlYWJpaGYNCklzIGl0IE9LIGZvciB0cnVuaz8NCg0KDQpU aGFua3MNCkJlcm5kLg0K --_002_AM4PR0701MB2162C11BF479CD62542E2E8AE48A0AM4PR0701MB2162_ Content-Type: text/x-patch; name="patch-pr77308-2.diff" Content-Description: patch-pr77308-2.diff Content-Disposition: attachment; filename="patch-pr77308-2.diff"; size=12490; creation-date="Mon, 28 Nov 2016 19:42:16 GMT"; modification-date="Mon, 28 Nov 2016 19:42:16 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 16934 MjAxNi0xMS0yNSAgQmVybmQgRWRsaW5nZXIgIDxiZXJuZC5lZGxpbmdlckBo b3RtYWlsLmRlPg0KDQoJUFIgdGFyZ2V0Lzc3MzA4DQoJKiBjb25maWcvYXJt L2FybS5tZCAoKmFybV9hZGRkaTMsICphcm1fc3ViZGkzKTogU3BsaXQgZWFy bHkgZXhjZXB0IGZvcg0KCVRBUkdFVF9ORU9OIGFuZCBUQVJHRVRfSVdNTVhU Lg0KCShhbmRkaTMsIGlvcmRpMywgeG9yZGkzLCBvbmVfY21wbGRpMik6IFNw bGl0IHdoaWxlIGV4cGFuZGluZyBleGNlcHQgZm9yDQoJVEFSR0VUX05FT04g YW5kIFRBUkdFVF9JV01NWFQuDQoJKCpvbmVfY21wbGRpMl9pbnNuKTogTW92 ZWQgdGhlIGJvZHkgb2Ygb25lX2NtcGxkaTIgaGVyZS4NCg0KdGVzdHN1aXRl Og0KMjAxNi0xMS0yNSAgQmVybmQgRWRsaW5nZXIgIDxiZXJuZC5lZGxpbmdl ckBob3RtYWlsLmRlPg0KDQoJUFIgdGFyZ2V0Lzc3MzA4DQoJKiBnY2MudGFy Z2V0L2FybS9wcjc3MzA4LTEuYzogTmV3IHRlc3QuDQoNCkluZGV4OiBnY2Mv Y29uZmlnL2FybS9hcm0ubWQNCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t LSBnY2MvY29uZmlnL2FybS9hcm0ubWQJKHJldmlzaW9uIDI0Mjg3NSkNCisr KyBnY2MvY29uZmlnL2FybS9hcm0ubWQJKHdvcmtpbmcgY29weSkNCkBAIC00 NjcsNyArNDY3LDcgQEANCiAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFR05V TSkpXQ0KICAgIlRBUkdFVF8zMkJJVCAmJiAhVEFSR0VUX05FT04iDQogICAi IyINCi0gICJUQVJHRVRfMzJCSVQgJiYgcmVsb2FkX2NvbXBsZXRlZA0KKyAg IlRBUkdFVF8zMkJJVCAmJiAoKCFUQVJHRVRfTkVPTiAmJiAhVEFSR0VUX0lX TU1YVCkgfHwgcmVsb2FkX2NvbXBsZXRlZCkNCiAgICAmJiAhIChUQVJHRVRf TkVPTiAmJiBJU19WRlBfUkVHTlVNIChSRUdOTyAob3BlcmFuZHNbMF0pKSki DQogICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6Q0NfQyBDQ19SRUdOVU0pDQog CQkgICAoY29tcGFyZTpDQ19DIChwbHVzOlNJIChtYXRjaF9kdXAgMSkgKG1h dGNoX2R1cCAyKSkNCkBAIC0xMjcyLDcgKzEyNzIsNyBAQA0KICAgIChjbG9i YmVyIChyZWc6Q0MgQ0NfUkVHTlVNKSldDQogICAiVEFSR0VUXzMyQklUICYm ICFUQVJHRVRfTkVPTiINCiAgICIjIiAgOyAic3Vic1xcdCVRMCwgJVExLCAl UTJcO3NiY1xcdCVSMCwgJVIxLCAlUjIiDQotICAiJiYgcmVsb2FkX2NvbXBs ZXRlZCINCisgICImJiAoIVRBUkdFVF9JV01NWFQgfHwgcmVsb2FkX2NvbXBs ZXRlZCkiDQogICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6Q0MgQ0NfUkVHTlVN KQ0KIAkJICAgKGNvbXBhcmU6Q0MgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVw IDIpKSkNCiAJICAgICAgKHNldCAobWF0Y2hfZHVwIDApIChtaW51czpTSSAo bWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKV0pDQpAQCAtMjI1OCw3ICsy MjU4LDI0IEBADQogCShhbmQ6REkgKG1hdGNoX29wZXJhbmQ6REkgMSAic19y ZWdpc3Rlcl9vcGVyYW5kIiAiIikNCiAJCShtYXRjaF9vcGVyYW5kOkRJIDIg Im5lb25faW52X2xvZ2ljX29wMiIgIiIpKSldDQogICAiVEFSR0VUXzMyQklU Ig0KLSAgIiINCisgICINCisgIGlmICghVEFSR0VUX05FT04gJiYgIVRBUkdF VF9JV01NWFQpDQorICAgIHsNCisgICAgICBydHggbG93ICA9IHNpbXBsaWZ5 X2dlbl9iaW5hcnkgKEFORCwgU0ltb2RlLA0KKwkJCQkgICAgICBnZW5fbG93 cGFydCAoU0ltb2RlLCBvcGVyYW5kc1sxXSksDQorCQkJCSAgICAgIGdlbl9s b3dwYXJ0IChTSW1vZGUsIG9wZXJhbmRzWzJdKSk7DQorICAgICAgcnR4IGhp Z2ggPSBzaW1wbGlmeV9nZW5fYmluYXJ5IChBTkQsIFNJbW9kZSwNCisJCQkJ ICAgICAgZ2VuX2hpZ2hwYXJ0IChTSW1vZGUsIG9wZXJhbmRzWzFdKSwNCisJ CQkJICAgICAgZ2VuX2hpZ2hwYXJ0X21vZGUgKFNJbW9kZSwgREltb2RlLA0K KwkJCQkJCQkgb3BlcmFuZHNbMl0pKTsNCisNCisgICAgICBlbWl0X2luc24g KGdlbl9ydHhfU0VUIChnZW5fbG93cGFydCAoU0ltb2RlLCBvcGVyYW5kc1sw XSksIGxvdykpOw0KKyAgICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKGdl bl9oaWdocGFydCAoU0ltb2RlLCBvcGVyYW5kc1swXSksIGhpZ2gpKTsNCisN CisgICAgICBET05FOw0KKyAgICB9DQorICAvKiBPdGhlcndpc2UgZXhwYW5k IHBhdHRlcm4gYXMgYWJvdmUuICAqLw0KKyAgIg0KICkNCiANCiAoZGVmaW5l X2luc25fYW5kX3NwbGl0ICIqYW5kZGkzX2luc24iDQpAQCAtMzEzMSw3ICsz MTQ4LDI0IEBADQogCShpb3I6REkgKG1hdGNoX29wZXJhbmQ6REkgMSAic19y ZWdpc3Rlcl9vcGVyYW5kIiAiIikNCiAJCShtYXRjaF9vcGVyYW5kOkRJIDIg Im5lb25fbG9naWNfb3AyIiAiIikpKV0NCiAgICJUQVJHRVRfMzJCSVQiDQot ICAiIg0KKyAgIg0KKyAgaWYgKCFUQVJHRVRfTkVPTiAmJiAhVEFSR0VUX0lX TU1YVCkNCisgICAgew0KKyAgICAgIHJ0eCBsb3cgID0gc2ltcGxpZnlfZ2Vu X2JpbmFyeSAoSU9SLCBTSW1vZGUsDQorCQkJCSAgICAgIGdlbl9sb3dwYXJ0 IChTSW1vZGUsIG9wZXJhbmRzWzFdKSwNCisJCQkJICAgICAgZ2VuX2xvd3Bh cnQgKFNJbW9kZSwgb3BlcmFuZHNbMl0pKTsNCisgICAgICBydHggaGlnaCA9 IHNpbXBsaWZ5X2dlbl9iaW5hcnkgKElPUiwgU0ltb2RlLA0KKwkJCQkgICAg ICBnZW5faGlnaHBhcnQgKFNJbW9kZSwgb3BlcmFuZHNbMV0pLA0KKwkJCQkg ICAgICBnZW5faGlnaHBhcnRfbW9kZSAoU0ltb2RlLCBESW1vZGUsDQorCQkJ CQkJCSBvcGVyYW5kc1syXSkpOw0KKw0KKyAgICAgIGVtaXRfaW5zbiAoZ2Vu X3J0eF9TRVQgKGdlbl9sb3dwYXJ0IChTSW1vZGUsIG9wZXJhbmRzWzBdKSwg bG93KSk7DQorICAgICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoZ2VuX2hp Z2hwYXJ0IChTSW1vZGUsIG9wZXJhbmRzWzBdKSwgaGlnaCkpOw0KKw0KKyAg ICAgIERPTkU7DQorICAgIH0NCisgIC8qIE90aGVyd2lzZSBleHBhbmQgcGF0 dGVybiBhcyBhYm92ZS4gICovDQorICAiDQogKQ0KIA0KIChkZWZpbmVfaW5z bl9hbmRfc3BsaXQgIippb3JkaTNfaW5zbiINCkBAIC0zMzEyLDcgKzMzNDYs MjQgQEANCiAJKHhvcjpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJzX3JlZ2lz dGVyX29wZXJhbmQiICIiKQ0KIAkJKG1hdGNoX29wZXJhbmQ6REkgMiAiYXJt X3hvcmRpX29wZXJhbmQiICIiKSkpXQ0KICAgIlRBUkdFVF8zMkJJVCINCi0g ICIiDQorICAiDQorICBpZiAoIVRBUkdFVF9ORU9OICYmICFUQVJHRVRfSVdN TVhUKQ0KKyAgICB7DQorICAgICAgcnR4IGxvdyAgPSBzaW1wbGlmeV9nZW5f YmluYXJ5IChYT1IsIFNJbW9kZSwNCisJCQkJICAgICAgZ2VuX2xvd3BhcnQg KFNJbW9kZSwgb3BlcmFuZHNbMV0pLA0KKwkJCQkgICAgICBnZW5fbG93cGFy dCAoU0ltb2RlLCBvcGVyYW5kc1syXSkpOw0KKyAgICAgIHJ0eCBoaWdoID0g c2ltcGxpZnlfZ2VuX2JpbmFyeSAoWE9SLCBTSW1vZGUsDQorCQkJCSAgICAg IGdlbl9oaWdocGFydCAoU0ltb2RlLCBvcGVyYW5kc1sxXSksDQorCQkJCSAg ICAgIGdlbl9oaWdocGFydF9tb2RlIChTSW1vZGUsIERJbW9kZSwNCisJCQkJ CQkJIG9wZXJhbmRzWzJdKSk7DQorDQorICAgICAgZW1pdF9pbnNuIChnZW5f cnR4X1NFVCAoZ2VuX2xvd3BhcnQgKFNJbW9kZSwgb3BlcmFuZHNbMF0pLCBs b3cpKTsNCisgICAgICBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChnZW5faGln aHBhcnQgKFNJbW9kZSwgb3BlcmFuZHNbMF0pLCBoaWdoKSk7DQorDQorICAg ICAgRE9ORTsNCisgICAgfQ0KKyAgLyogT3RoZXJ3aXNlIGV4cGFuZCBwYXR0 ZXJuIGFzIGFib3ZlLiAgKi8NCisgICINCiApDQogDQogKGRlZmluZV9pbnNu X2FuZF9zcGxpdCAiKnhvcmRpM19pbnNuIg0KQEAgLTUwMjIsNyArNTA3Mywz MSBAQA0KICAgIlRBUkdFVF8zMkJJVCAmJiBUQVJHRVRfSEFSRF9GTE9BVCAm JiBUQVJHRVRfVkZQX0RPVUJMRSINCiAgICIiKQ0KIA0KLShkZWZpbmVfaW5z bl9hbmRfc3BsaXQgIm9uZV9jbXBsZGkyIg0KKyhkZWZpbmVfZXhwYW5kICJv bmVfY21wbGRpMiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInNf cmVnaXN0ZXJfb3BlcmFuZCIgIiIpDQorCShub3Q6REkgKG1hdGNoX29wZXJh bmQ6REkgMSAic19yZWdpc3Rlcl9vcGVyYW5kIiAiIikpKV0NCisgICJUQVJH RVRfMzJCSVQiDQorICAiDQorICBpZiAoIVRBUkdFVF9ORU9OICYmICFUQVJH RVRfSVdNTVhUKQ0KKyAgICB7DQorICAgICAgcnR4IGxvdyAgPSBzaW1wbGlm eV9nZW5fdW5hcnkgKE5PVCwgU0ltb2RlLA0KKwkJCQkgICAgIGdlbl9sb3dw YXJ0IChTSW1vZGUsIG9wZXJhbmRzWzFdKSwNCisJCQkJICAgICBTSW1vZGUp Ow0KKyAgICAgIHJ0eCBoaWdoID0gc2ltcGxpZnlfZ2VuX3VuYXJ5IChOT1Qs IFNJbW9kZSwNCisJCQkJICAgICBnZW5faGlnaHBhcnRfbW9kZSAoU0ltb2Rl LCBESW1vZGUsDQorCQkJCQkJCW9wZXJhbmRzWzFdKSwNCisJCQkJICAgICBT SW1vZGUpOw0KKw0KKyAgICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKGdl bl9sb3dwYXJ0IChTSW1vZGUsIG9wZXJhbmRzWzBdKSwgbG93KSk7DQorICAg ICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoZ2VuX2hpZ2hwYXJ0IChTSW1v ZGUsIG9wZXJhbmRzWzBdKSwgaGlnaCkpOw0KKw0KKyAgICAgIERPTkU7DQor ICAgIH0NCisgIC8qIE90aGVyd2lzZSBleHBhbmQgcGF0dGVybiBhcyBhYm92 ZS4gICovDQorICAiDQorKQ0KKw0KKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQg IipvbmVfY21wbGRpMl9pbnNuIg0KICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 REkgMCAic19yZWdpc3Rlcl9vcGVyYW5kIgkgIj13LCZyLCZyLD93IikNCiAJ KG5vdDpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJzX3JlZ2lzdGVyX29wZXJh bmQiICIgdywgMCwgciwgdyIpKSldDQogICAiVEFSR0VUXzMyQklUIg0KSW5k ZXg6IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vcHI3NzMwOC0xLmMN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYXJtL3ByNzczMDgtMS5jCShyZXZpc2lvbiAwKQ0KKysrIGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vcHI3NzMwOC0xLmMJKHdvcmtp bmcgY29weSkNCkBAIC0wLDAgKzEsMTY5IEBADQorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1PcyAtV3N0YWNrLXVzYWdl PTI1MDAiIH0gKi8NCisNCisvKiBUaGlzIGlzIGEgbW9kaWZpZWQgYWxnb3Jp dGhtIHdpdGggYml0LW5vdCAifiIgYXQgdGhlIFNpZ21hLWJsb2Nrcy4NCisg ICBJdCBpbXByb3ZlcyB0aGUgdGVzdCBjb3ZlcmFnZSBvZiBvbmVfY21wbGRp MiBhbmQgc3ViZGkzIHBhdHRlcm5zLg0KKyAgIFVubGlrZSB0aGUgb3JpZ2lu YWwgdGVzdCBjYXNlIHRoZXNlIGluc25zIGNhbiByZWFjaCB0aGUgcmVsb2Fk IHBhc3MsDQorICAgd2hpY2ggbWF5IHJlc3VsdCBpbiBsYXJnZSBzdGFjayB1 c2FnZS4gICovDQorDQorI2RlZmluZSBTSEFfTE9ORzY0IHVuc2lnbmVkIGxv bmcgbG9uZw0KKyNkZWZpbmUgVTY0KEMpICAgICBDIyNVTEwNCisNCisjZGVm aW5lIFNIQV9MQkxPQ0sgICAgICAxNg0KKyNkZWZpbmUgU0hBNTEyX0NCTE9D SyAgIChTSEFfTEJMT0NLKjgpDQorDQordHlwZWRlZiBzdHJ1Y3QgU0hBNTEy c3RhdGVfc3Qgew0KKyAgICBTSEFfTE9ORzY0IGhbOF07DQorICAgIFNIQV9M T05HNjQgTmwsIE5oOw0KKyAgICB1bmlvbiB7DQorICAgICAgICBTSEFfTE9O RzY0IGRbU0hBX0xCTE9DS107DQorICAgICAgICB1bnNpZ25lZCBjaGFyIHBb U0hBNTEyX0NCTE9DS107DQorICAgIH0gdTsNCisgICAgdW5zaWduZWQgaW50 IG51bSwgbWRfbGVuOw0KK30gU0hBNTEyX0NUWDsNCisNCitzdGF0aWMgY29u c3QgU0hBX0xPTkc2NCBLNTEyWzgwXSA9IHsNCisgICAgVTY0KDB4NDI4YTJm OThkNzI4YWUyMiksIFU2NCgweDcxMzc0NDkxMjNlZjY1Y2QpLA0KKyAgICBV NjQoMHhiNWMwZmJjZmVjNGQzYjJmKSwgVTY0KDB4ZTliNWRiYTU4MTg5ZGJi YyksDQorICAgIFU2NCgweDM5NTZjMjViZjM0OGI1MzgpLCBVNjQoMHg1OWYx MTFmMWI2MDVkMDE5KSwNCisgICAgVTY0KDB4OTIzZjgyYTRhZjE5NGY5Yiks IFU2NCgweGFiMWM1ZWQ1ZGE2ZDgxMTgpLA0KKyAgICBVNjQoMHhkODA3YWE5 OGEzMDMwMjQyKSwgVTY0KDB4MTI4MzViMDE0NTcwNmZiZSksDQorICAgIFU2 NCgweDI0MzE4NWJlNGVlNGIyOGMpLCBVNjQoMHg1NTBjN2RjM2Q1ZmZiNGUy KSwNCisgICAgVTY0KDB4NzJiZTVkNzRmMjdiODk2ZiksIFU2NCgweDgwZGVi MWZlM2IxNjk2YjEpLA0KKyAgICBVNjQoMHg5YmRjMDZhNzI1YzcxMjM1KSwg VTY0KDB4YzE5YmYxNzRjZjY5MjY5NCksDQorICAgIFU2NCgweGU0OWI2OWMx OWVmMTRhZDIpLCBVNjQoMHhlZmJlNDc4NjM4NGYyNWUzKSwNCisgICAgVTY0 KDB4MGZjMTlkYzY4YjhjZDViNSksIFU2NCgweDI0MGNhMWNjNzdhYzljNjUp LA0KKyAgICBVNjQoMHgyZGU5MmM2ZjU5MmIwMjc1KSwgVTY0KDB4NGE3NDg0 YWE2ZWE2ZTQ4MyksDQorICAgIFU2NCgweDVjYjBhOWRjYmQ0MWZiZDQpLCBV NjQoMHg3NmY5ODhkYTgzMTE1M2I1KSwNCisgICAgVTY0KDB4OTgzZTUxNTJl ZTY2ZGZhYiksIFU2NCgweGE4MzFjNjZkMmRiNDMyMTApLA0KKyAgICBVNjQo MHhiMDAzMjdjODk4ZmIyMTNmKSwgVTY0KDB4YmY1OTdmYzdiZWVmMGVlNCks DQorICAgIFU2NCgweGM2ZTAwYmYzM2RhODhmYzIpLCBVNjQoMHhkNWE3OTE0 NzkzMGFhNzI1KSwNCisgICAgVTY0KDB4MDZjYTYzNTFlMDAzODI2ZiksIFU2 NCgweDE0MjkyOTY3MGEwZTZlNzApLA0KKyAgICBVNjQoMHgyN2I3MGE4NTQ2 ZDIyZmZjKSwgVTY0KDB4MmUxYjIxMzg1YzI2YzkyNiksDQorICAgIFU2NCgw eDRkMmM2ZGZjNWFjNDJhZWQpLCBVNjQoMHg1MzM4MGQxMzlkOTViM2RmKSwN CisgICAgVTY0KDB4NjUwYTczNTQ4YmFmNjNkZSksIFU2NCgweDc2NmEwYWJi M2M3N2IyYTgpLA0KKyAgICBVNjQoMHg4MWMyYzkyZTQ3ZWRhZWU2KSwgVTY0 KDB4OTI3MjJjODUxNDgyMzUzYiksDQorICAgIFU2NCgweGEyYmZlOGExNGNm MTAzNjQpLCBVNjQoMHhhODFhNjY0YmJjNDIzMDAxKSwNCisgICAgVTY0KDB4 YzI0YjhiNzBkMGY4OTc5MSksIFU2NCgweGM3NmM1MWEzMDY1NGJlMzApLA0K KyAgICBVNjQoMHhkMTkyZTgxOWQ2ZWY1MjE4KSwgVTY0KDB4ZDY5OTA2MjQ1 NTY1YTkxMCksDQorICAgIFU2NCgweGY0MGUzNTg1NTc3MTIwMmEpLCBVNjQo MHgxMDZhYTA3MDMyYmJkMWI4KSwNCisgICAgVTY0KDB4MTlhNGMxMTZiOGQy ZDBjOCksIFU2NCgweDFlMzc2YzA4NTE0MWFiNTMpLA0KKyAgICBVNjQoMHgy NzQ4Nzc0Y2RmOGVlYjk5KSwgVTY0KDB4MzRiMGJjYjVlMTliNDhhOCksDQor ICAgIFU2NCgweDM5MWMwY2IzYzVjOTVhNjMpLCBVNjQoMHg0ZWQ4YWE0YWUz NDE4YWNiKSwNCisgICAgVTY0KDB4NWI5Y2NhNGY3NzYzZTM3MyksIFU2NCgw eDY4MmU2ZmYzZDZiMmI4YTMpLA0KKyAgICBVNjQoMHg3NDhmODJlZTVkZWZi MmZjKSwgVTY0KDB4NzhhNTYzNmY0MzE3MmY2MCksDQorICAgIFU2NCgweDg0 Yzg3ODE0YTFmMGFiNzIpLCBVNjQoMHg4Y2M3MDIwODFhNjQzOWVjKSwNCisg ICAgVTY0KDB4OTBiZWZmZmEyMzYzMWUyOCksIFU2NCgweGE0NTA2Y2ViZGU4 MmJkZTkpLA0KKyAgICBVNjQoMHhiZWY5YTNmN2IyYzY3OTE1KSwgVTY0KDB4 YzY3MTc4ZjJlMzcyNTMyYiksDQorICAgIFU2NCgweGNhMjczZWNlZWEyNjYx OWMpLCBVNjQoMHhkMTg2YjhjNzIxYzBjMjA3KSwNCisgICAgVTY0KDB4ZWFk YTdkZDZjZGUwZWIxZSksIFU2NCgweGY1N2Q0ZjdmZWU2ZWQxNzgpLA0KKyAg ICBVNjQoMHgwNmYwNjdhYTcyMTc2ZmJhKSwgVTY0KDB4MGE2MzdkYzVhMmM4 OThhNiksDQorICAgIFU2NCgweDExM2Y5ODA0YmVmOTBkYWUpLCBVNjQoMHgx YjcxMGIzNTEzMWM0NzFiKSwNCisgICAgVTY0KDB4MjhkYjc3ZjUyMzA0N2Q4 NCksIFU2NCgweDMyY2FhYjdiNDBjNzI0OTMpLA0KKyAgICBVNjQoMHgzYzll YmUwYTE1YzliZWJjKSwgVTY0KDB4NDMxZDY3YzQ5YzEwMGQ0YyksDQorICAg IFU2NCgweDRjYzVkNGJlY2IzZTQyYjYpLCBVNjQoMHg1OTdmMjk5Y2ZjNjU3 ZTJhKSwNCisgICAgVTY0KDB4NWZjYjZmYWIzYWQ2ZmFlYyksIFU2NCgweDZj NDQxOThjNGE0NzU4MTcpDQorfTsNCisNCisjZGVmaW5lIEIoeCxqKSAgICAo KChTSEFfTE9ORzY0KSgqKCgoY29uc3QgdW5zaWduZWQgY2hhciAqKSgmeCkp K2opKSk8PCgoNy1qKSo4KSkNCisjZGVmaW5lIFBVTEw2NCh4KSAoQih4LDAp fEIoeCwxKXxCKHgsMil8Qih4LDMpfEIoeCw0KXxCKHgsNSl8Qih4LDYpfEIo eCw3KSkNCisjZGVmaW5lIFJPVFIoeCxzKSAgICAgICAoKCh4KT4+cykgfCAo eCk8PCg2NC1zKSkNCisjZGVmaW5lIFNpZ21hMCh4KSAgICAgICB+KFJPVFIo KHgpLDI4KSBeIFJPVFIoKHgpLDM0KSBeIFJPVFIoKHgpLDM5KSkNCisjZGVm aW5lIFNpZ21hMSh4KSAgICAgICB+KFJPVFIoKHgpLDE0KSBeIFJPVFIoKHgp LDE4KSBeIFJPVFIoKHgpLDQxKSkNCisjZGVmaW5lIHNpZ21hMCh4KSAgICAg ICB+KFJPVFIoKHgpLDEpICBeIFJPVFIoKHgpLDgpICBeICgoeCk+PjcpKQ0K KyNkZWZpbmUgc2lnbWExKHgpICAgICAgIH4oUk9UUigoeCksMTkpIF4gUk9U UigoeCksNjEpIF4gKCh4KT4+NikpDQorI2RlZmluZSBDaCh4LHkseikgICAg ICAgKCgoeCkgJiAoeSkpIF4gKCh+KHgpKSAmICh6KSkpDQorI2RlZmluZSBN YWooeCx5LHopICAgICAgKCgoeCkgJiAoeSkpIF4gKCh4KSAmICh6KSkgXiAo KHkpICYgKHopKSkNCisNCisjZGVmaW5lIFJPVU5EXzAwXzE1KGksYSxiLGMs ZCxlLGYsZyxoKSAgICAgICAgICBkbyB7ICAgIFwNCisgICAgICAgIFQxICs9 IGggKyBTaWdtYTEoZSkgKyBDaChlLGYsZykgKyBLNTEyW2ldOyAgICAgIFwN CisgICAgICAgIGggPSBTaWdtYTAoYSkgKyBNYWooYSxiLGMpOyAgICAgICAg ICAgICAgICAgICAgIFwNCisgICAgICAgIGQgKz0gVDE7ICAgICAgICBoICs9 IFQxOyAgICAgICAgICAgICAgICB9IHdoaWxlICgwKQ0KKyNkZWZpbmUgUk9V TkRfMTZfODAoaSxqLGEsYixjLGQsZSxmLGcsaCxYKSAgICAgIGRvIHsgICAg XA0KKyAgICAgICAgczAgPSBYWyhqKzEpJjB4MGZdOyAgICAgczAgPSBzaWdt YTAoczApOyAgICAgICAgXA0KKyAgICAgICAgczEgPSBYWyhqKzE0KSYweDBm XTsgICAgczEgPSBzaWdtYTEoczEpOyAgICAgICAgXA0KKyAgICAgICAgVDEg PSBYWyhqKSYweDBmXSArPSBzMCArIHMxICsgWFsoais5KSYweDBmXTsgICAg XA0KKyAgICAgICAgUk9VTkRfMDBfMTUoaStqLGEsYixjLGQsZSxmLGcsaCk7 ICAgICAgICAgICAgICAgfSB3aGlsZSAoMCkNCit2b2lkIHNoYTUxMl9ibG9j a19kYXRhX29yZGVyKFNIQTUxMl9DVFggKmN0eCwgY29uc3Qgdm9pZCAqaW4s DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IG51bSkNCit7DQorICAgIGNvbnN0IFNIQV9MT05HNjQgKlcgPSBp bjsNCisgICAgU0hBX0xPTkc2NCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBz MCwgczEsIFQxOw0KKyAgICBTSEFfTE9ORzY0IFhbMTZdOw0KKyAgICBpbnQg aTsNCisNCisgICAgd2hpbGUgKG51bS0tKSB7DQorDQorICAgICAgICBhID0g Y3R4LT5oWzBdOw0KKyAgICAgICAgYiA9IGN0eC0+aFsxXTsNCisgICAgICAg IGMgPSBjdHgtPmhbMl07DQorICAgICAgICBkID0gY3R4LT5oWzNdOw0KKyAg ICAgICAgZSA9IGN0eC0+aFs0XTsNCisgICAgICAgIGYgPSBjdHgtPmhbNV07 DQorICAgICAgICBnID0gY3R4LT5oWzZdOw0KKyAgICAgICAgaCA9IGN0eC0+ aFs3XTsNCisNCisgICAgICAgIFQxID0gWFswXSA9IFBVTEw2NChXWzBdKTsN CisgICAgICAgIFJPVU5EXzAwXzE1KDAsIGEsIGIsIGMsIGQsIGUsIGYsIGcs IGgpOw0KKyAgICAgICAgVDEgPSBYWzFdID0gUFVMTDY0KFdbMV0pOw0KKyAg ICAgICAgUk9VTkRfMDBfMTUoMSwgaCwgYSwgYiwgYywgZCwgZSwgZiwgZyk7 DQorICAgICAgICBUMSA9IFhbMl0gPSBQVUxMNjQoV1syXSk7DQorICAgICAg ICBST1VORF8wMF8xNSgyLCBnLCBoLCBhLCBiLCBjLCBkLCBlLCBmKTsNCisg ICAgICAgIFQxID0gWFszXSA9IFBVTEw2NChXWzNdKTsNCisgICAgICAgIFJP VU5EXzAwXzE1KDMsIGYsIGcsIGgsIGEsIGIsIGMsIGQsIGUpOw0KKyAgICAg ICAgVDEgPSBYWzRdID0gUFVMTDY0KFdbNF0pOw0KKyAgICAgICAgUk9VTkRf MDBfMTUoNCwgZSwgZiwgZywgaCwgYSwgYiwgYywgZCk7DQorICAgICAgICBU MSA9IFhbNV0gPSBQVUxMNjQoV1s1XSk7DQorICAgICAgICBST1VORF8wMF8x NSg1LCBkLCBlLCBmLCBnLCBoLCBhLCBiLCBjKTsNCisgICAgICAgIFQxID0g WFs2XSA9IFBVTEw2NChXWzZdKTsNCisgICAgICAgIFJPVU5EXzAwXzE1KDYs IGMsIGQsIGUsIGYsIGcsIGgsIGEsIGIpOw0KKyAgICAgICAgVDEgPSBYWzdd ID0gUFVMTDY0KFdbN10pOw0KKyAgICAgICAgUk9VTkRfMDBfMTUoNywgYiwg YywgZCwgZSwgZiwgZywgaCwgYSk7DQorICAgICAgICBUMSA9IFhbOF0gPSBQ VUxMNjQoV1s4XSk7DQorICAgICAgICBST1VORF8wMF8xNSg4LCBhLCBiLCBj LCBkLCBlLCBmLCBnLCBoKTsNCisgICAgICAgIFQxID0gWFs5XSA9IFBVTEw2 NChXWzldKTsNCisgICAgICAgIFJPVU5EXzAwXzE1KDksIGgsIGEsIGIsIGMs IGQsIGUsIGYsIGcpOw0KKyAgICAgICAgVDEgPSBYWzEwXSA9IFBVTEw2NChX WzEwXSk7DQorICAgICAgICBST1VORF8wMF8xNSgxMCwgZywgaCwgYSwgYiwg YywgZCwgZSwgZik7DQorICAgICAgICBUMSA9IFhbMTFdID0gUFVMTDY0KFdb MTFdKTsNCisgICAgICAgIFJPVU5EXzAwXzE1KDExLCBmLCBnLCBoLCBhLCBi LCBjLCBkLCBlKTsNCisgICAgICAgIFQxID0gWFsxMl0gPSBQVUxMNjQoV1sx Ml0pOw0KKyAgICAgICAgUk9VTkRfMDBfMTUoMTIsIGUsIGYsIGcsIGgsIGEs IGIsIGMsIGQpOw0KKyAgICAgICAgVDEgPSBYWzEzXSA9IFBVTEw2NChXWzEz XSk7DQorICAgICAgICBST1VORF8wMF8xNSgxMywgZCwgZSwgZiwgZywgaCwg YSwgYiwgYyk7DQorICAgICAgICBUMSA9IFhbMTRdID0gUFVMTDY0KFdbMTRd KTsNCisgICAgICAgIFJPVU5EXzAwXzE1KDE0LCBjLCBkLCBlLCBmLCBnLCBo LCBhLCBiKTsNCisgICAgICAgIFQxID0gWFsxNV0gPSBQVUxMNjQoV1sxNV0p Ow0KKyAgICAgICAgUk9VTkRfMDBfMTUoMTUsIGIsIGMsIGQsIGUsIGYsIGcs IGgsIGEpOw0KKw0KKyAgICAgICAgZm9yIChpID0gMTY7IGkgPCA4MDsgaSAr PSAxNikgew0KKyAgICAgICAgICAgIFJPVU5EXzE2XzgwKGksIDAsIGEsIGIs IGMsIGQsIGUsIGYsIGcsIGgsIFgpOw0KKyAgICAgICAgICAgIFJPVU5EXzE2 XzgwKGksIDEsIGgsIGEsIGIsIGMsIGQsIGUsIGYsIGcsIFgpOw0KKyAgICAg ICAgICAgIFJPVU5EXzE2XzgwKGksIDIsIGcsIGgsIGEsIGIsIGMsIGQsIGUs IGYsIFgpOw0KKyAgICAgICAgICAgIFJPVU5EXzE2XzgwKGksIDMsIGYsIGcs IGgsIGEsIGIsIGMsIGQsIGUsIFgpOw0KKyAgICAgICAgICAgIFJPVU5EXzE2 XzgwKGksIDQsIGUsIGYsIGcsIGgsIGEsIGIsIGMsIGQsIFgpOw0KKyAgICAg ICAgICAgIFJPVU5EXzE2XzgwKGksIDUsIGQsIGUsIGYsIGcsIGgsIGEsIGIs IGMsIFgpOw0KKyAgICAgICAgICAgIFJPVU5EXzE2XzgwKGksIDYsIGMsIGQs IGUsIGYsIGcsIGgsIGEsIGIsIFgpOw0KKyAgICAgICAgICAgIFJPVU5EXzE2 XzgwKGksIDcsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGEsIFgpOw0KKyAgICAg ICAgICAgIFJPVU5EXzE2XzgwKGksIDgsIGEsIGIsIGMsIGQsIGUsIGYsIGcs IGgsIFgpOw0KKyAgICAgICAgICAgIFJPVU5EXzE2XzgwKGksIDksIGgsIGEs IGIsIGMsIGQsIGUsIGYsIGcsIFgpOw0KKyAgICAgICAgICAgIFJPVU5EXzE2 XzgwKGksIDEwLCBnLCBoLCBhLCBiLCBjLCBkLCBlLCBmLCBYKTsNCisgICAg ICAgICAgICBST1VORF8xNl84MChpLCAxMSwgZiwgZywgaCwgYSwgYiwgYywg ZCwgZSwgWCk7DQorICAgICAgICAgICAgUk9VTkRfMTZfODAoaSwgMTIsIGUs IGYsIGcsIGgsIGEsIGIsIGMsIGQsIFgpOw0KKyAgICAgICAgICAgIFJPVU5E XzE2XzgwKGksIDEzLCBkLCBlLCBmLCBnLCBoLCBhLCBiLCBjLCBYKTsNCisg ICAgICAgICAgICBST1VORF8xNl84MChpLCAxNCwgYywgZCwgZSwgZiwgZywg aCwgYSwgYiwgWCk7DQorICAgICAgICAgICAgUk9VTkRfMTZfODAoaSwgMTUs IGIsIGMsIGQsIGUsIGYsIGcsIGgsIGEsIFgpOw0KKyAgICAgICAgfQ0KKw0K KyAgICAgICAgY3R4LT5oWzBdICs9IGE7DQorICAgICAgICBjdHgtPmhbMV0g Kz0gYjsNCisgICAgICAgIGN0eC0+aFsyXSArPSBjOw0KKyAgICAgICAgY3R4 LT5oWzNdICs9IGQ7DQorICAgICAgICBjdHgtPmhbNF0gKz0gZTsNCisgICAg ICAgIGN0eC0+aFs1XSArPSBmOw0KKyAgICAgICAgY3R4LT5oWzZdICs9IGc7 DQorICAgICAgICBjdHgtPmhbN10gKz0gaDsNCisNCisgICAgICAgIFcgKz0g U0hBX0xCTE9DSzsNCisgICAgfQ0KK30NCg== --_002_AM4PR0701MB2162C11BF479CD62542E2E8AE48A0AM4PR0701MB2162_--