From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10olkn2066.outbound.protection.outlook.com [40.92.41.66]) by sourceware.org (Postfix) with ESMTPS id B565B3858D33 for ; Wed, 1 Mar 2023 11:53:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B565B3858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=outlook.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=outlook.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H0MHqkr2/3mLZdiCS5tNz1cFth/x68xa9cqbMXVOMacfSyuRVwYZ8EnfNa9+q275IslP2P5TZdskMvLAt/9XlHcdym6/kjQv9lA/sTg9QX2709mZC9pqqEt43HNgENrknXuWOfeFWdF9yo/oiepbZ1W29PXYOxqgeGDRmrqbUWczx0shw8zGeYE8nHNrYj4qKbQ0PrifSma3+3/nqIHzFGwuCRxfwOKJ0l8TG0m28SdzgzLDPniFo/Vn8fFOU8yZZIQSVwc+aTNbKmPnXJwxQmWp29TSE3ct10ZRri7DauCyf19irtEOKF8s8Ho/VnKt9Irn8pKbZoE/hJplmNZHrA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MhLHoiJunrueVNw9u8k6i0U25E8tBV/S5Hi2h4MICgA=; b=USPW4pin6FhxBYbWTxq2qq4p4rgaN3XBdwH+U7pcPh0mhS/GvgIZCwlx808QN+LQIkt1k0YXjI7/w+TK6VAvsi9fbehoFlGIdVagOVsK+5DH/7zahEleQhTRlTsXcK/aiFktBYV+MMP4Fa/XI8Rx/glpHXQslxg6rDumBh9vh3FQy1FSbAJLbiV/LkZsKw25aFWO6rpESn2DDlL/ycy3fbYWwR+R7/DENHIvGF+UkVsCC3iaJPY2SovqwIeR9V5CZ565bxfXRZntzvC+vctlUIJWjGtXOJ16HELrE/Nty5dV+s39iXOoJVxFGEu/T5w7p5JuSoVygKELg8knfCu+uA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MhLHoiJunrueVNw9u8k6i0U25E8tBV/S5Hi2h4MICgA=; b=jcimX4YAcwTrkAdUQd9/eYW/4UY3/qUW0+rnLJ1e6WCx6TStg+lVzM6kOYn04ug/zKzbhz6cbcvrNNMwZ47HYKPmPpI+lHdvvyJ84CeGZaEp7QFT5IaeLo8nQfCPyBEuOiUlOLRwejabbpRkeBHLYEmQoxrD3tExbFYoo/N/7vXduSGT5Mnpj7qxrGlE1/RG29RrUYfkreGO50KGORyS9+PXumoQhRXdDOYruB9sZ8Okq/uCYGBy7Y+INYJDB6wpL1vzGWcvkl7bX+KpVg6iuSG56U9e35D6SavBtR8kPHGbwiWiwUmDh1NEezgcFmJFCf3j/o8yl/6xhu2vJ8d2Tw== Received: from BYAPR04MB4824.namprd04.prod.outlook.com (2603:10b6:a03:5e::19) by PH0PR04MB7576.namprd04.prod.outlook.com (2603:10b6:510:4e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.18; Wed, 1 Mar 2023 11:53:20 +0000 Received: from BYAPR04MB4824.namprd04.prod.outlook.com ([fe80::1649:a6f8:5e44:43b4]) by BYAPR04MB4824.namprd04.prod.outlook.com ([fe80::1649:a6f8:5e44:43b4%3]) with mapi id 15.20.6134.024; Wed, 1 Mar 2023 11:53:20 +0000 From: =?utf-8?B?55u8IOadjg==?= To: Richard Sandiford , =?utf-8?B?55u8IOadjiB2aWEgR2NjLXBhdGNoZXM=?= CC: "juzhe.zhong@rivai.ai" , pan2.li , Kito.cheng , rguenther Subject: Re: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Topic: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Index: AQHZTC6elNoYPmDEs0WlhZAo09h3kq7lz97q Date: Wed, 1 Mar 2023 11:53:20 +0000 Message-ID: References: <6F429B8CF9C3B3EF+2023030118462950633032@rivai.ai> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [d+N4H4XPL6eaY1MabOMolbStrDVLS5Jt] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BYAPR04MB4824:EE_|PH0PR04MB7576:EE_ x-ms-office365-filtering-correlation-id: 79bf1605-4703-4550-301a-08db1a4b8dce x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5EIj3qekZiUuS5obxlTFmqBrMt/C1GZzD8XXWmM5zJuOwlCW4Igzo/HvoOzQaWmBanM4vJQi8ukdflmspxt8lJ2EiDiXgNTu/TqGiUCLB4c4XjvqfqjXYiBoF9IcCtO0z2Y8JrDSkgb2zDdWkqVO7tw76rDscqarsaPuDyFazVAg76hf4GqIkaMYwG9hr5sWYruUM8MqMBp6q4zlyW1MFIngfwLBkhPLF33eipaMltV/VT+EnCpUAgYO/nvn4e677jHa2KbYnAj2/D3YzFZyZVcU/Ips2BOl76EA+qn8kwn1CuIO1mkQjRYDOMyKR64nFXCLGVwv45Rm/9TT+rLQkLGLUhlR+EgcZQ0FRBjSmQgQWBYdl73CvV59aTX7JD7aNaLXNsRY3NPqNYptc5wclZjVe7fqbgI0SDi4pmSXBECLKVsD4vI7HGcN0tPUexpPlZOWy2uRKxEtyJMA3f6p4cy+zFTGNmsD9/M45PzqhTGqhL0/Rr/NPMjyZAtC+Y5WcaHHua4ANpniXWayOjjqQLUUfXuYln8j4ti7K5y6iJvRGb3Z6vp8GAodB3km6gVmd5fkl/pZjXOLpXq27pB3RczvKn8A1sZzYYFF1X/fkdbG1U27ZVgR7rMbL3MDfg2ke1HVKq6Om5V2AhQKfvnbWg== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NmFPL1kySzR3SU8zdTRpU1FEMnlJUlpOYklwQ3VlUTVvS29LZ2E4RThRWi9t?= =?utf-8?B?cVNYcmVvZnRNSHVaUERHTG9JV2FmSWFkRW8zck55ZWM3QWRrMzBQVE85d3F2?= =?utf-8?B?VGdDWUlrVjM0dzRKRkVET1dUSFhiUkZhYmNDTExLK0xtYndtTlY3ancyYjAr?= =?utf-8?B?NGphaEVialErWHJVWXREOEdGL3BhcUg4cWVwNitZQUVnN3RDcVVXSXZBMVdN?= =?utf-8?B?MFlCRENkQVdPdzFMNklwVmRHOHpMYmNvRk00elFSd2hLeTlTSFZDQzIwamxu?= =?utf-8?B?amFaTzRCaEhzUWdIcndaVHJMbzBYT05FdzVFUjZwK0JCb1dRZkNKc1FMZFY5?= =?utf-8?B?SlAxR21zb3hGWHEyMXVvSjlHYkRkdDJaSFlYMXpwenpyNHdOdVBwTU14bmZi?= =?utf-8?B?eHptQ3htL1NtYTQ5K3o3MFRmbW04QlRQb2tTdWUvVVo2OVVRaXVSVmNqb3E0?= =?utf-8?B?S0hMMzhoSmpUZy9Jb2RwazBJWHV0aTBZaklabVh1K0swSWpPSFhaeG1XZU1t?= =?utf-8?B?SkhuSU9uUWVmbHRLZ0UwbENWd2xKSnBIUi93ZFFzcVp5N1ZZVlBxcnluL211?= =?utf-8?B?aHlkM2hNeHdaUTlFeEVZYjl0ZG9heXRleXBYc0s4TGpIU0RhT1V0MFgvaFlX?= =?utf-8?B?Rjhac3BaR1VSRGlLT3N4V1RTNXpiRXZGU01iQnAwMlMrVHpINzhzYVZYWkpk?= =?utf-8?B?RWhFSytKY0t5S3hQaVNUR1dveWdrWi9nRFVmbTNOeDdHN3prWTI4ZG5GVlE5?= =?utf-8?B?M3J1VU1JV3VwK0Zyd3lseEdRQzcwamZKMnJtMzN6MURneVJSQ2RuQXRRQ0du?= =?utf-8?B?WXNlNlNBVUYxbCtyNmxVRDBCNUZPL0lQY3BsZzRhcHhxWmVnRWFzUHlyNDFy?= =?utf-8?B?RkZJUjhqVGhIa21LVENZK0IzUjI3MitnaFV5ZlFGS2w0TngvWmh1Y3AwQnZn?= =?utf-8?B?d1BwNnJ1Q0pyVjdHS0RtU0VHY1YrelZpK2I1bWdHelE4d201QkRneFJUWjVy?= =?utf-8?B?TENJRnNTaUpWQnBQeHNKVXVScmwwUEFzMDV0aWhHVTZlNisvbHI0blhZYUpW?= =?utf-8?B?NTloOVlPU1h2UEMvdWtOTGlXMitid3QzOVkvbUU4N2ttN0VGTE9OR2xVUlU0?= =?utf-8?B?bzljRkowRThGT1hLVzlTV0JBUVFZZFRCeVlJeFNac1k5cXdkazEvVGtHVnNi?= =?utf-8?B?Ympaeit6UWFHTXZzZ2daT3hMbGNZQnlLaXBoUkRVam5PWlB2MHE4aHI4RDFQ?= =?utf-8?B?MVVQV3JHUVF0UmtBaXNjSk1Pd244ekFhL1g2T1FHaEtCOE5iSDkwS3dlZ1h5?= =?utf-8?B?eng4R1V5S0lXWkxWclF0eUhTK1MxMElwL1Z2NVFIUWFqTGs4aFp6VmZXZFdM?= =?utf-8?B?S21weGRBSmZzSXpFSTdMeWVqZmJCZG1WWlZVeXJTbDZaMUFZT3phS1lWa2J1?= =?utf-8?B?OGpHMlJReWVwbElIRHJSTzF2OS91QUZnNk96RHJLTWZNbko1WmdvVWtha1ZT?= =?utf-8?B?RXlBc0pIY2FNYU80ZTE2SllpR2psb1BFaHNNNW1BaER2UWhpZUMwWVMwcG5p?= =?utf-8?B?MStUclBtZjNhdXplT0hYTjJLRDlXdEkyZy9UQ2hkZkNlT1dWUGhLS1lSc0lt?= =?utf-8?B?SVRtMmRCcjQ4NTJSWW9udkVjTEFyYVJPWXJDR3ZPZHRjUmZQbWpmOVhuTXpU?= =?utf-8?B?VURMOWpSOVlack1JZVBoajdiS3NIZGtSL0pSRHZlQzU4UEZuMG5NTEd3PT0=?= Content-Type: multipart/alternative; boundary="_000_BYAPR04MB482460A21FA9890421AEB2FEB7AD9BYAPR04MB4824namp_" MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR04MB4824.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 79bf1605-4703-4550-301a-08db1a4b8dce X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2023 11:53:20.6401 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR04MB7576 X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_000_BYAPR04MB482460A21FA9890421AEB2FEB7AD9BYAPR04MB4824namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SnVzdCBoYXZlIGEgdGVzdCB3aXRoIHRoZSBiZWxvdyBjb2RlLCB0aGUgWzB4 NCwgMHg0XSB0ZXN0IGNvbWVzIGZyb20gVk54NEJJLiBZb3UgY2FuIG5vdGlj ZSB0aGF0IHRoZSBtb2RlIHNpemUgaXMgdW5jaGFuZ2VkLg0KDQpwcmludGYg KCIgICAgY2FuX2Rpdl9hd2F5X2Zyb21femVyb19wIChtb2RlX3ByZWNpc2lv bltFXyVzbW9kZV0sICINCiAgIkJJVFNfUEVSX1VOSVQsICZtb2RlX3NpemVb RV8lc21vZGVdKTtcbiIsIG0tPm5hbWUsIG0tPm5hbWUpOw0KDQpWTng0Qkkg QmVmb3JlIHByZWNpc2lvbiBbMHg0LCAweDRdLCBzaXplIFsweDQsIDBdDQpW Tng0QkkgQWZ0ZXIgcHJlY2lzaW9uIFsweDQsIDB4NF0sIHNpemUgWzB4NCwg MF0NCg0KUGFuDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K RnJvbTogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFy bS5jb20+DQpTZW50OiBXZWRuZXNkYXksIE1hcmNoIDEsIDIwMjMgMTk6MTEN ClRvOiDnm7wg5p2OIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2Nj LmdudS5vcmc+DQpDYzoganV6aGUuemhvbmdAcml2YWkuYWkgPGp1emhlLnpo b25nQHJpdmFpLmFpPjsgcGFuMi5saSA8cGFuMi5saUBpbnRlbC5jb20+OyDn m7wg5p2OIDxpbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbT47IEtpdG8u Y2hlbmcgPGtpdG8uY2hlbmdAc2lmaXZlLmNvbT47IHJndWVudGhlciA8cmd1 ZW50aGVyQHN1c2UuZGU+DQpTdWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6 IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gYWRqdXN0bWVu dA0KDQrnm7wg5p2OIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2Nj LmdudS5vcmc+IHdyaXRlczoNCj4gVGhhbmsgeW91IGFsbCBmb3IgeW91ciBx dWljayByZXNwb25zZS4NCj4NCj4gQXMganV6aGUgbWVudGlvbmVkLCB0aGUg bWVtb3J5IGFjY2VzcyBvZiBSSVNDLVYgd2lsbCBiZSBhbHdheXMgYWxpZ25l ZCB0byB0aGUgYnl0ZXMgYm91bmRhcnkgd2l0aCB0aGUgY29tcGFjdCBtb2Rl LCBha2EgY2VpbCh2bCAvIDgpIGJ5dGVzIGZvciB2Ym9vbCouDQoNCk9LLCB0 aGFua3MgdG8gYm90aCBvZiB5b3UuICBUaGlzIGlzIHdoYXQgSSdkIGhhdmUg ZXhwZWN0ZWQuDQoNCkluIHRoYXQgY2FzZSwgSSB0aGluayBib3RoIHRoZSBj YW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AgYW5kIHRoZQ0Kb3JpZ2luYWwgcGF0 Y2ggKHVzaW5nIHNpemVfb25lKSB3aWxsIGdpdmUgdGhlIHdyb25nIHJlc3Vs dHMuDQpUaGVyZSBpc24ndCBhIHdheSBvZiByZXByZXNlbnRpbmcgY2VpbChb NCw0XS84KSBhcyBhIHBvbHlfaW50Lg0KVGhlIHJlc3VsdCBpcyAoNCs0WCkv OCB3aGVuIFggaXMgb2RkIGFuZCAoOCs0WCkvOCB3aGVuIFggaXMgZXZlbi4N Cg0KPiBBY3R1YWxseSwgdGhlIGRhdGEgWzQsNF0gY29tZXMgZnJvbSB0aGUg c2VsZi10ZXN0LCB0aGUgUklTQy1WIHByZWNpc2lvbiBtb2RlIGFzIGJlbG93 Lg0KPg0KPiBWTng2NEJJIHByZWNpc2lvbiBbMHg0MCwgMHg0MF0uDQo+IFZO eDMyQkkgcHJlY2lzaW9uIFsweDIwLCAweDIwXS4NCj4gVk54MTZCSSBwcmVj aXNpb24gWzB4MTAsIDB4MTBdLg0KPiBWTng4QkkgcHJlY2lzaW9uIFsweDgs IDB4OF0uDQo+IFZOeDRCSSBwcmVjaXNpb24gWzB4OCwgMHg4XS4NCj4gVk54 MkJJIHByZWNpc2lvbiBbMHg4LCAweDhdLg0KPiBWTngxQkkgcHJlY2lzaW9u IFsweDgsIDB4OF0uDQoNCkFoLCBPSy4gIFdoaWNoIHNlbGYtdGVzdCBjYXVz ZXMgdGhpcz8NCg0KUmljaGFyZA0KDQo+IFRoZSBpbXBhY3Qgb2YgZGF0YSBb NCwgNF0gd2lsbCBpbXBhY3QgdGhlIGdlbm1vZGUgcGFydCwgd2UgY2Fubm90 IHdyaXRlIGxpa2UgYmVsb3cgYXMgdGhlIGdjY191bnJlYWNoYWJsZSB3aWxs IGJlIGhpdHRlbi4NCj4NCj4gaWYgKCFjYW5fZGl2X2F3YXlfZnJvbV96ZXJv X3AgKG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgQklUU19QRVJfVU5JVCwg ICZtb2RlX3NpemVbRV8lc21vZGVdKSkNCj4gICBnY2NfdW5yZWFjaGFibGUg KCk7IC8vIEhpdCBvbiBbNCwgNF0gb2YgdGhlIHNlbGYtdGVzdC4NCj4NCj4g UGFuDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IEZy b206IGp1emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5h aT4NCj4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCAxLCAyMDIzIDE4OjQ2DQo+ IFRvOiByaWNoYXJkLnNhbmRpZm9yZCA8cmljaGFyZC5zYW5kaWZvcmRAYXJt LmNvbT47IHBhbjIubGkgPHBhbjIubGlAaW50ZWwuY29tPg0KPiBDYzogaW5j YXJuYXRpb24ucC5sZWUgPGluY2FybmF0aW9uLnAubGVlQG91dGxvb2suY29t PjsgZ2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPjsgS2l0 by5jaGVuZyA8a2l0by5jaGVuZ0BzaWZpdmUuY29tPjsgcmd1ZW50aGVyIDxy Z3VlbnRoZXJAc3VzZS5kZT4NCj4gU3ViamVjdDogUmU6IFJlOiBbUEFUQ0hd IFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNpc2lvbiBh ZGp1c3RtZW50DQo+DQo+Pj4gSXMgaXQgcmlnaHQgdGhhdCwgZm9yIFJWViwg YSBsb2FkIG9yIHN0b3JlIG9mIFs0LDRdIHdpbGwgYWNjZXNzIFs4LDhdDQo+ Pj5iaXRzLCBldmVuIHdoZW4gdGhhdCBtZWFucyBhY2Nlc3NpbmcgZnVsbHkt dW51c2VkIGJ5dGVzPyAgRS5nLiA0KzRYDQo+Pj53aGVuIFg9MyB3b3VsZCBi ZSAxNiBiaXRzLzIgYnl0ZXMgb2YgdXNlZnVsIGRhdGEsIGJ1dCBhIGJpdHNp emUgb2YNCj4+PjgrOFggd291bGQgYmUgMzIgYml0cy80IGJ5dGVzLiAgU28g YSBzdG9yZSBvZiBbOCw4XSBmb3IgYSBwcmVjaXNpb24NCj4+Pm9mIFs0LDRd IHdvdWxkIHN0b3JlIDIgYnl0ZXMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHVz ZWZ1bCBkYXRhIHdoZW4gWD09Mz8NCj4NCj4gSGksIFJpY2hhcmQuIFRoYW5r IHlvdSBmb3IgaGVscGluZyB1cy4NCj4gTXkgdW5kZXJzdGFuZGluZyBvZiBS VlYgSVNBOg0KPg0KPiBJbiBSVlYsIHdlIGhhdmUgbWFzayBtb2RlIChWTngx QkksIFZOeDJCSSwuLi4uZXRjKSwgZGF0YSBtb2RlIChWTngxUUksVk54NFFJ LCBWTngyREksLi4uZXRjKQ0KPiBGb3IgZGF0YSBtb2RlLCB3ZSBmdWxseSBh Y2Nlc3MgdGhlIGRhdGEgYW5kIHdlIGRvbid0IGhhdmUgdW51c2VkIGJ5dGVz LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGFkanVzdCBwcmVjaXNpb24uDQo+IEhv d2V2ZXIsIGZvciBtYXNrIG1vZGUgd2UgYWNjZXNzIG1hc2sgYml0IGluIGNv bXBhY3QgbW9kZWwgKHNpbmNlIGVhY2ggbWFzayBiaXQgZm9yIGNvcnJlc3Bv bmRpbmcgZWxlbWVudCBhcmUgY29uc2VjdXRpdmUpLg0KPiBmb3IgZXhhbXBs ZSwgY3VycmVudCBjb25maWd1cmF0aW9uOiBWTngxQkksIFZOeDJCSSwgVk54 NEJJLCBWTng4QkksIHRoZXNlIDQgbW9kZXMgaGF2ZSBzYW1lIGJ5dGVzaXpl ICgxLDEpICBidXQgZGlmZmVyZW50IGJpdHNpemUuDQo+DQo+IFZOeDhCSSBp cyBhY2Nlc3NlZCBmdWxseSwgYnV0IFZOeDRCSSBpcyBvbmx5IGFjY2Vzc2Vk IDEvMiwgVk54MkJJIDEvNCwgVk54MUJJIDEvOCBidXQgYnl0ZSBhbGlnbm1l bnQgKEkgYW0gbm90IHN1cmUgd2hldGhlciBSVlYgc3VwcG9ydCBiaXQgYWxp Z25tZW50LCBJIGd1ZXNzIGl0IGNhbiBub3QpLg0KPg0KPiBJZiBWTng4Qkkg b25seSBvY2N1cHkgMSBieXRlIChEZXBlbmQgb24gbWFjaGluZSB2ZWN0b3It bGVuZ3RoKSwgc28gVk54MkJJLFZONEJJLCBWTngxQkksIGFyZSAyLzggYnl0 ZSwgNC84IGJ5dGUsIDEvOCBieXRlcy4gSSB0aGluayB3ZSBjYW4ndCBhY2Nl c3MgaW4gYml0IGFsaWdubWVudC4gc28gdGhleSB3aWxsIHRoZSBzYW1lIGlu IHRoZSBhY2Nlc3MuDQo+IEhvd2V2ZXIsIGlmIFZOeDhCSSBvY2N1cHR5IDgg Ynl0ZSwgV2VsbCwgVk54MkJJLFZONEJJLCBWTngxQkkgYXJlIDFieXRlLCAy Ynl0ZXMsIDRieXRlcy4gVGhleSBhcmUgYWNjZXNzaW5nIGRpZmZlcmVudCBz aXplLg0KPg0KPiBUaGlzIGlzIG15IGNvbXByZWhlbnNpb24gb2YgUlZWIElT QSwgZmVlbCBmcmVlIHRvIGNvcnJlY3QgbWUuDQo+IFRoYW5rcy4NCj4NCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4ganV6aGUuemhv bmdAcml2YWkuYWkNCj4NCj4gRnJvbTogUmljaGFyZCBTYW5kaWZvcmQ8bWFp bHRvOnJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+DQo+IERhdGU6IDIwMjMt MDMtMDEgMTg6MTENCj4gVG86IExpXCwgUGFuMjxtYWlsdG86cGFuMi5saUBp bnRlbC5jb20+DQo+IENDOiDnm7wg5p2OPG1haWx0bzppbmNhcm5hdGlvbi5w LmxlZUBvdXRsb29rLmNvbT47IGluY2FybmF0aW9uLnAubGVlLS0tIHZpYSBH Y2MtcGF0Y2hlczxtYWlsdG86Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+OyBq dXpoZS56aG9uZ1xAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJpdmFp LmFpPjsga2l0by5jaGVuZ1xAc2lmaXZlLmNvbTxtYWlsdG86a2l0by5jaGVu Z0BzaWZpdmUuY29tPjsgcmd1ZW50aGVyXEBzdXNlLmRlPG1haWx0bzpyZ3Vl bnRoZXJAc3VzZS5kZT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSF0gUklTQy1W OiBCdWdmaXggZm9yIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIGFkanVzdG1l bnQNCj4gIkxpLCBQYW4yIiA8cGFuMi5saUBpbnRlbC5jb20+IHdyaXRlczoN Cj4+IEhpIFJpY2hhcmQgU2FuZGlmb3JkLA0KPj4NCj4+IEp1c3QgdHJpZWQg dGhlIG92ZXJsb2FkZWQgY29uc3RhbnQgZGl2aXNvcnMgd2l0aCBiZWxvdyBw cmludCBkaXYsIGl0IHdvcmtzIGFzIHlvdSBtZW50aW9uZWQsIO+YiSENCj4+ DQo+PiBwcmludGYgKCIgICAgY2FuX2Rpdl9hd2F5X2Zyb21femVyb19wICht b2RlX3ByZWNpc2lvbltFXyVzbW9kZV0sICINCj4+ICAgICAgIkJJVFNfUEVS X1VOSVQsICZtb2RlX3NpemVbRV8lc21vZGVdKTtcbiIsIG0tPm5hbWUsIG0t Pm5hbWUpOw0KPj4NCj4+IHRlbXBsYXRlPHVuc2lnbmVkIGludCBOLCB0eXBl bmFtZSBDYSwgdHlwZW5hbWUgQ2IsIHR5cGVuYW1lIENxPg0KPj4gaW5saW5l IHR5cGVuYW1lIGlmX25vbnBvbHk8Q2IsIGJvb2w+Ojp0eXBlDQo+PiBjYW5f ZGl2X2F3YXlfZnJvbV96ZXJvX3AgKGNvbnN0IHBvbHlfaW50X3BvZDxOLCBD YT4gJmEsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2IgYiwNCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICBwb2x5X2ludF9wb2Q8TiwgQ3E+ ICpxdW90aWVudCkNCj4+IHsNCj4+ICAgaWYgKCFjYW5fZGl2X3RydW5jX3Ag KGEsIGIsIHF1b3RpZW50KSkNCj4+ICAgICByZXR1cm4gZmFsc2U7DQo+PiAg IGlmIChtYXliZV9uZSAoKnF1b3RpZW50ICogYiwgYSkpDQo+PiAgICAgZm9y ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBOOyArK2kpDQo+PiAgICAgICBx dW90aWVudC0+Y29lZmZzW2ldICs9IChxdW90aWVudC0+Y29lZmZzW2ldIDwg MCA/IC0xIDogMSk7DQo+PiAgIHJldHVybiB0cnVlOw0KPj4gfQ0KPj4NCj4+ IEJ1dCBJIG1heSBoYXZlIGEgcXVlc3Rpb24gYWJvdXQgdGhlIG9uZSBjYXNl IGFzIGJlbG93Lg0KPj4NCj4+IEFzc3VtZToNCj4+IGEgPSBbNCwgNF0sIGIg PSA4Lg0KPj4NCj4+IFdoZW4gbWVldCBjYW5fZGl2X3RydW5jX3AsIGl0IHdp bGwgY2hlY2sgaWYgdGhlIHJlbWluZGVyIGlzIGNvbnN0YW50IG9yIG5vdCwg YWthIGEuY29lZmZzW2ldICUgOCA9PSAwIChpID49IDEpLiBJZiBub3QgY29u c3RhbnQgcmVtaW5kZXIsIHRoZSBjYW5fZGl2X3RydW5jX3Agd2lsbCBkbyBu b3RoaW5nIGFib3V0IHF1b3RpZW50IGFuZCByZXR1cm4gZmFsc2UuDQo+Pg0K Pj4gVGh1cywgd2hlbiBhID0gWzQsIDRdIGZvciBjYW5fZGl2X2F3YXlfZnJv bV96ZXJvX3AsIHRoZSBvdXRwdXQgKnF1b3RpZW50IHdpbGwgYmUgdW5jaGFu Z2VkLCBha2EgdGhlIG1vZF9zaXplW0VfJXNtb2RlXSB3aWxsIGJlIHVuY2hh bmdlZCBmb3IgdGhpcyBjYXNlLiBIb3dldmVyLCB0aGUgdW5kZXJseWluZyBt b2RlX3NpemUgd2lsbCBhZGp1c3QgaXQgdG8gdGhlIHJlYWwgYnl0ZSBzaXpl LCBhbmQgSSBhbSBub3Qgc3VyZSBpZiBpdCBpcyBieSBkZXNpZ24gb3IgcmVx dWlyZXMgYWRkaXRpb25hbCBoYW5kbGluZy4NCj4NCj4gSXMgaXQgcmlnaHQg dGhhdCwgZm9yIFJWViwgYSBsb2FkIG9yIHN0b3JlIG9mIFs0LDRdIHdpbGwg YWNjZXNzIFs4LDhdDQo+IGJpdHMsIGV2ZW4gd2hlbiB0aGF0IG1lYW5zIGFj Y2Vzc2luZyBmdWxseS11bnVzZWQgYnl0ZXM/ICBFLmcuIDQrNFgNCj4gd2hl biBYPTMgd291bGQgYmUgMTYgYml0cy8yIGJ5dGVzIG9mIHVzZWZ1bCBkYXRh LCBidXQgYSBiaXRzaXplIG9mDQo+IDgrOFggd291bGQgYmUgMzIgYml0cy80 IGJ5dGVzLiAgU28gYSBzdG9yZSBvZiBbOCw4XSBmb3IgYSBwcmVjaXNpb24N Cj4gb2YgWzQsNF0gd291bGQgc3RvcmUgMiBieXRlcyBiZXlvbmQgdGhlIGVu ZCBvZiB0aGUgdXNlZnVsIGRhdGEgd2hlbiBYPT0zPw0KPg0KPiBSaWNoYXJk DQo+DQo+PiBQYW4NCj4+DQo+PiBGcm9tOiDnm7wg5p2OIDxpbmNhcm5hdGlv bi5wLmxlZUBvdXRsb29rLmNvbT4NCj4+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1 YXJ5IDI4LCAyMDIzIDU6NTkgUE0NCj4+IFRvOiBSaWNoYXJkIFNhbmRpZm9y ZCA8cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT47IExpLCBQYW4yIDxwYW4y LmxpQGludGVsLmNvbT4NCj4+IENjOiBpbmNhcm5hdGlvbi5wLmxlZS0tLSB2 aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPjsganV6 aGUuemhvbmdAcml2YWkuYWk7IGtpdG8uY2hlbmdAc2lmaXZlLmNvbTsgcmd1 ZW50aGVyQHN1c2UuZGUNCj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIFJJU0Mt VjogQnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNpc2lvbiBhZGp1c3Rt ZW50DQo+Pg0KPj4gVW5kZXJzdG9vZCwgdGhhbmtzIGZvciB0aGUgZXhwbGFu YXRpb25zIGFuZCBzdWdnZXN0aW9ucy4gTGV0IG1lIGhhdmUgYSB0cnkgYW5k IGtlZXAgeW91IHBvc3RlZC4NCj4+DQo+PiBQYW4NCj4+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQo+PiBGcm9tOiBSaWNoYXJkIFNhbmRp Zm9yZCA8cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbTxtYWlsdG86cmljaGFy ZC5zYW5kaWZvcmRAYXJtLmNvbT4+DQo+PiBTZW50OiBUdWVzZGF5LCBGZWJy dWFyeSAyOCwgMjAyMyAxNzo1MA0KPj4gVG86IExpLCBQYW4yIDxwYW4yLmxp QGludGVsLmNvbTxtYWlsdG86cGFuMi5saUBpbnRlbC5jb20+Pg0KPj4gQ2M6 IOebvCDmnY4gPGluY2FybmF0aW9uLnAubGVlQG91dGxvb2suY29tPG1haWx0 bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbT4+OyBpbmNhcm5hdGlv bi5wLmxlZS0tLSB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5n bnUub3JnPG1haWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4+OyBqdXpo ZS56aG9uZ0ByaXZhaS5haTxtYWlsdG86anV6aGUuemhvbmdAcml2YWkuYWk+ IDxqdXpoZS56aG9uZ0ByaXZhaS5haTxtYWlsdG86anV6aGUuemhvbmdAcml2 YWkuYWk+Pjsga2l0by5jaGVuZ0BzaWZpdmUuY29tPG1haWx0bzpraXRvLmNo ZW5nQHNpZml2ZS5jb20+IDxraXRvLmNoZW5nQHNpZml2ZS5jb208bWFpbHRv OmtpdG8uY2hlbmdAc2lmaXZlLmNvbT4+OyByZ3VlbnRoZXJAc3VzZS5kZTxt YWlsdG86cmd1ZW50aGVyQHN1c2UuZGU+IDxyZ3VlbnRoZXJAc3VzZS5kZTxt YWlsdG86cmd1ZW50aGVyQHN1c2UuZGU+Pg0KPj4gU3ViamVjdDogUmU6IFtQ QVRDSF0gUklTQy1WOiBCdWdmaXggZm9yIHJ2diBib29sIG1vZGUgcHJlY2lz aW9uIGFkanVzdG1lbnQNCj4+DQo+PiAiTGksIFBhbjIiIDxwYW4yLmxpQGlu dGVsLmNvbTxtYWlsdG86cGFuMi5saUBpbnRlbC5jb20+PiB3cml0ZXM6DQo+ Pj4gSGkgUmljaGFyZCBTYW5kaWZvcmQsDQo+Pj4NCj4+PiBBZnRlciBzb21l IGludmVzdGlnYXRpb24sIEkgYW0gbm90IHN1cmUgaWYgaXQgaXMgcG9zc2li bGUgdG8gbWFrZSBpdCBnZW5lcmFsIHdpdGhvdXQgYW55IGNoYW5nZXMgdG8g ZXhhY3RfZGl2LiBXZSBjYW4gYWRkIG9uZSBtZXRob2QgbGlrZSBiZWxvdyB0 byBnZXQgdGhlIHVuaXQgcG9seSBmb3IgYWxsIHBvc3NpYmxlIE4uDQo+Pj4N Cj4+PiB0ZW1wbGF0ZTx1bnNpZ25lZCBpbnQgTiwgdHlwZW5hbWUgQ2E+DQo+ Pj4gaW5saW5lIFBPTFlfQ09OU1RfUkVTVUxUIChOLCBDYSwgQ2EpDQo+Pj4g bm9ybWFsaXplX3RvX3VuaXQgKGNvbnN0IHBvbHlfaW50X3BvZDxOLCBDYT4g JmEpDQo+Pj4gew0KPj4+ICAgdHlwZWRlZiBQT0xZX0NPTlNUX0NPRUZGIChD YSwgQ2EpIEM7DQo+Pj4NCj4+PiAgIHBvbHlfaW50PE4sIEM+IG5vcm1hbGl6 ZWQgPSBhOw0KPj4+DQo+Pj4gICBpZiAobm9ybWFsaXplZC5pc19jb25zdGFu dCgpKQ0KPj4+ICAgICBub3JtYWxpemVkLmNvZWZmc1swXSA9IDE7DQo+Pj4g ICBlbHNlDQo+Pj4gICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg TjsgaSsrKQ0KPj4+ICAgICAgIFBPTFlfU0VUX0NPRUZGIChDLCBub3JtYWxp emVkLCBpLCAxKTsNCj4+Pg0KPj4+ICAgcmV0dXJuIG5vcm1hbGl6ZWQ7DQo+ Pj4gfQ0KPj4+DQo+Pj4gQW5kIHRoZW4gYWRqdXN0IHRoZSBnZW5tb2RlcyBs aWtlIGJlbG93IHRvIGNvbnN1bWUgdGhlIHVuaXQgcG9seS4NCj4+Pg0KPj4+ ICAgICAgIHByaW50ZiAoIiAgICBwb2x5X3VpbnQxNiB1bml0X3BvbHkgPSAi DQo+Pj4gICAgICAgICAgICAgICJub3JtYWxpemVfdG9fdW5pdCAobW9kZV9w cmVjaXNpb25bRV8lc21vZGVdKTtcbiIsIG0tPm5hbWUpOw0KPj4+ICAgICAg IHByaW50ZiAoIiAgICBpZiAoa25vd25fbHQgKG1vZGVfcHJlY2lzaW9uW0Vf JXNtb2RlXSwgIg0KPj4+ICAgICAgICAgICAgICAidW5pdF9wb2x5ICogQklU U19QRVJfVU5JVCkpXG4iLCBtLT5uYW1lKTsNCj4+PiAgICAgICBwcmludGYg KCIgICAgICBtb2RlX3NpemVbRV8lc21vZGVdID0gdW5pdF9wb2x5O1xuIiwg bS0+bmFtZSk7DQo+Pj4NCj4+PiBJIGFtIG5vdCBzdXJlIGlmIGl0IGlzIGEg Z29vZCBpZGVhIHRvIGludHJvZHVjZSBhYm92ZSBub3JtYWxpemUgY29kZSBp bnRvIGV4YWN0X2Rpdi4gR2l2ZW4gdGhlIGNvbW1lbnQgb2YgdGhlIGV4YWN0 X2RpdiBpbmRpY2F0ZXMgdGhhdCDigJwvKiBSZXR1cm4gQSAvIEIsIGdpdmVu IHRoYXQgQSBpcyBrbm93biB0byBiZSBhIG11bHRpcGxlIG9mIEIuICov4oCd Lg0KPj4NCj4+IE15IHBvaW50IHdhcyB0aGF0IHdlIGhhdmUgbXVsdGlwbGUg d2F5cyBvZiBkaXZpZGluZyBwb2x5X2ludHM6DQo+Pg0KPj4gLSBleGFjdF9k aXYsIGZvciB3aGVuIHRoZSBjYWxsZXIga25vd3MgdGhhdCB0aGUgcmVzdWx0 IGlzIGFsd2F5cyBleGFjdA0KPj4gLSBjYW5fZGl2X3RydW5jX3AsIGZvciB0 cnVuY2F0aW5nIGRpdmlzaW9uIChyb3VuZCB0b3dhcmRzIDApDQo+PiAtIGNh bl9kaXZfYXdheV9mcm9tX3plcm9fcCwgZm9yIHJvdW5kaW5nIGF3YXkgZnJv bSAwDQo+PiAtIC4uLg0KPj4NCj4+IFRoaXMgaXMgbGlrZSBob3cgd2UgaGF2 ZSBtdWx0aXBsZSBkaXZpc2lvbiAqX0VYUFJzIG9uIHRyZWVzLg0KPj4NCj4+ IFVudGlsIG5vdywgZXhhY3RfZGl2IHdhcyB0aGUgY29ycmVjdCBjaG9pY2Ug Zm9yIG1vZGVzIGJlY2F1c2UgdmVjdG9yDQo+PiBtb2RlcyBkaWRuJ3QgaGF2 ZSBwYWRkaW5nLiAgV2UncmUgbm93IGNoYW5naW5nIHRoYXQsIHNvIG15IHN1 Z2dlc3Rpb24NCj4+IGluIHRoZSByZXZpZXcgd2FzIHRvIGNoYW5nZSB0aGUg ZGl2aXNpb24gb3BlcmF0aW9uIHRoYXQgd2UgdXNlLg0KPj4gUmF0aGVyIHRo YW4gdXNlIGV4YWN0X2Rpdiwgd2Ugc2hvdWxkIG5vdyB1c2UgY2FuX2Rpdl9h d2F5X2Zyb21femVyb19wLA0KPj4gd2hpY2ggd291bGQgaGF2ZSB0aGUgZWZm ZWN0IG9mIHJvdW5kaW5nIHRoZSBxdW90aWVudCB1cC4NCj4+DQo+PiBTb21l dGhpbmcgbGlrZToNCj4+DQo+PiAgICAgICBpZiAoIWNhbl9kaXZfYXdheV9m cm9tX3plcm9fcCAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCBCSVRTX1BF Ul9VTklULA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZtb2RlX3NpemVbRV8lc21vZGVdKSkNCj4+ICAgICAgICAgZ2NjX3Vu cmVhY2hhYmxlICgpOw0KPj4NCj4+IEJ1dCB0aGlzIHdpbGwgcmVxdWlyZSBh IG5ldyBvdmVybG9hZCBvZiBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AsIHNp bmNlDQo+PiB0aGUgZXhpc3Rpbmcgb25lIGlzIGZvciBjb25zdGFudCBxdW90 aWVudHMgcmF0aGVyIHRoYW4gY29uc3RhbnQgZGl2aXNvcnMuDQo+Pg0KPj4g VGhhbmtzLA0KPj4gUmljaGFyZA0KPj4NCj4+Pg0KPj4+IENvdWxkIHlvdSBw bGVhc2UgaGVscCB0byBzaGFyZSB5b3VyIG9waW5pb24gYWJvdXQgdGhpcyBm cm9tIHRoZSBleHBlcnTigJlzIHBlcnNwZWN0aXZlID8gVGhhbmsgeW91IQ0K Pj4+DQo+Pj4gUGFuDQo+Pj4NCj4+PiBGcm9tOiDnm7wg5p2OIDxpbmNhcm5h dGlvbi5wLmxlZUBvdXRsb29rLmNvbTxtYWlsdG86aW5jYXJuYXRpb24ucC5s ZWVAb3V0bG9vay5jb20+Pg0KPj4+IFNlbnQ6IE1vbmRheSwgRmVicnVhcnkg MjcsIDIwMjMgMTE6MTMgUE0NCj4+PiBUbzogUmljaGFyZCBTYW5kaWZvcmQg PHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb208bWFpbHRvOnJpY2hhcmQuc2Fu ZGlmb3JkQGFybS5jb20+PjsgaW5jYXJuYXRpb24ucC5sZWUtLS0gdmlhIEdj Yy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzxtYWlsdG86Z2Nj LXBhdGNoZXNAZ2NjLmdudS5vcmc+Pg0KPj4+IENjOiBqdXpoZS56aG9uZ0By aXZhaS5haTxtYWlsdG86anV6aGUuemhvbmdAcml2YWkuYWk+OyBraXRvLmNo ZW5nQHNpZml2ZS5jb208bWFpbHRvOmtpdG8uY2hlbmdAc2lmaXZlLmNvbT47 IHJndWVudGhlckBzdXNlLmRlPG1haWx0bzpyZ3VlbnRoZXJAc3VzZS5kZT47 IExpLCBQYW4yIDxwYW4yLmxpQGludGVsLmNvbTxtYWlsdG86cGFuMi5saUBp bnRlbC5jb20+Pg0KPj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIFJJU0MtVjog QnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNpc2lvbiBhZGp1c3RtZW50 DQo+Pj4NCj4+PiBOZXZlciBtaW5kLCB3aXNoIHlvdSBoYXZlIGEgZ29vZCBo b2xpZGF5Lg0KPj4+DQo+Pj4gVGhhbmtzIGZvciBwb2ludGluZyB0aGlzIG91 dCwgdGhlIGlmIHBhcnQgY2Fubm90IHRha2UgY2FyZSBvZiBwb2x5X2ludCB3 aXRoIE4gPiAyLiBBcyBJIHVuZGVyc3RhbmQsIHdlIG5lZWQgdG8gbWFrZSBp dCBnZW5lcmFsIGZvciBhbGwgdGhlIE4gb2YgcG9seV9pbnQuDQo+Pj4NCj4+ PiBUaHVzIEkgd291bGQgbGlrZSB0byBkb3VibGUgY29uZmlybSB3aXRoIHlv dSBhYm91dCBob3cgdG8gbWFrZSBpdCBnZW5lcmFsLiBJIHN1cHBvc2UgdGhl cmUgd2lsbCBiZSBhIG5ldyBmdW5jdGlvbiBjYW5fZGl2X2F3YXlfZnJvbV96 ZXJvX3AgdG8gcmVwbGFjZSB0aGUgaWYgKGtub3duX2x0KCwpKSBwYXJ0IGlu IGdlbm1vZGVzLmNjLCBhbmQgbGVhdmUgZXhhY3RfZGl2IHVuY2hhbmdlZChj b25zaWRlciB0aGUgd29yZCBleGFjdCwgSSBzdXBwb3NlIHdlIHNob3VsZCBu b3QgdG91Y2ggaGVyZSksIHJpZ2h0PyBUaGVuIHdlIHN0aWxsIG5lZWQgb25l IHBvbHlfaW50IHdpdGggYWxsIDEgZm9yIE4gYXMgdGhlIHJldHVybiBpZiBj YW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AgaXMgdHJ1ZS4NCj4+Pg0KPj4+IFRo YW5rcyBhZ2FpbiBmb3IgeW91ciBwcm9mZXNzaW9uYWwgc3VnZ2VzdGlvbiwg aGF2ZSBhIG5pY2UgZGF5LCDvmIkhDQo+Pj4NCj4+PiBQYW4NCj4+PiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4+IEZyb206IFJpY2hh cmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPG1haWx0 bzpyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPG1haWx0bzpyaWNoYXJkLnNh bmRpZm9yZEBhcm0uY29tJTNjbWFpbHRvOnJpY2hhcmQuc2FuZGlmb3JkQGFy bS5jb20+Pj4NCj4+PiBTZW50OiBNb25kYXksIEZlYnJ1YXJ5IDI3LCAyMDIz IDIyOjI0DQo+Pj4gVG86IGluY2FybmF0aW9uLnAubGVlLS0tIHZpYSBHY2Mt cGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc8bWFpbHRvOmdjYy1w YXRjaGVzQGdjYy5nbnUub3JnPG1haWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZyUzY21haWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4+Pg0KPj4+ IENjOiBpbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbTxtYWlsdG86aW5j YXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb208bWFpbHRvOmluY2FybmF0aW9u LnAubGVlQG91dGxvb2suY29tJTNjbWFpbHRvOmluY2FybmF0aW9uLnAubGVl QG91dGxvb2suY29tPj4gPGluY2FybmF0aW9uLnAubGVlQG91dGxvb2suY29t PG1haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbTxtYWlsdG86 aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb20lM2NtYWlsdG86aW5jYXJu YXRpb24ucC5sZWVAb3V0bG9vay5jb20+Pj47IGp1emhlLnpob25nQHJpdmFp LmFpPG1haWx0bzpqdXpoZS56aG9uZ0ByaXZhaS5haTxtYWlsdG86anV6aGUu emhvbmdAcml2YWkuYWklM2NtYWlsdG86anV6aGUuemhvbmdAcml2YWkuYWk+ PiA8anV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJp dmFpLmFpPG1haWx0bzpqdXpoZS56aG9uZ0ByaXZhaS5haSUzY21haWx0bzpq dXpoZS56aG9uZ0ByaXZhaS5haT4+Pjsga2l0by5jaGVuZ0BzaWZpdmUuY29t PG1haWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb208bWFpbHRvOmtpdG8uY2hl bmdAc2lmaXZlLmNvbSUzY21haWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb20+ PiA8a2l0by5jaGVuZ0BzaWZpdmUuY29tPG1haWx0bzpraXRvLmNoZW5nQHNp Zml2ZS5jb208bWFpbHRvOmtpdG8uY2hlbmdAc2lmaXZlLmNvbSUzY21haWx0 bzpraXRvLmNoZW5nQHNpZml2ZS5jb20+Pj47IHJndWVudGhlckBzdXNlLmRl PG1haWx0bzpyZ3VlbnRoZXJAc3VzZS5kZT4gPHJndWVudGhlckBzdXNlLmRl PG1haWx0bzpyZ3VlbnRoZXJAc3VzZS5kZTxtYWlsdG86cmd1ZW50aGVyQHN1 c2UuZGUlM2NtYWlsdG86cmd1ZW50aGVyQHN1c2UuZGU+Pj47IHBhbjIubGlA aW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbT4gPHBhbjIubGlA aW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbTxtYWlsdG86cGFu Mi5saUBpbnRlbC5jb20lM2NtYWlsdG86cGFuMi5saUBpbnRlbC5jb20+Pj4N Cj4+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3Ig cnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gYWRqdXN0bWVudA0KPj4+DQo+Pj4g U29ycnkgZm9yIHRoZSBzbG93IHJlcGx5LCBiZWVuIGF3YXkgZm9yIGEgY291 cGxlIG9mIHdlZWtzLg0KPj4+DQo+Pj4gImluY2FybmF0aW9uLnAubGVlLS0t IHZpYSBHY2MtcGF0Y2hlcyIgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPG1h aWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzxtYWlsdG86Z2NjLXBhdGNo ZXNAZ2NjLmdudS5vcmclM2NtYWlsdG86Z2NjLXBhdGNoZXNAZ2NjLmdudS5v cmc+Pj4gd3JpdGVzOg0KPj4+PiBGcm9tOiBQYW4gTGkgPHBhbjIubGlAaW50 ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbTxtYWlsdG86cGFuMi5s aUBpbnRlbC5jb20lM2NtYWlsdG86cGFuMi5saUBpbnRlbC5jb20+Pj4NCj4+ Pj4NCj4+Pj4gICAgICAgIEZpeCB0aGUgYnVnIG9mIHRoZSBydnYgYm9vbCBt b2RlIHByZWNpc2lvbiB3aXRoIHRoZSBhZGp1c3RtZW50Lg0KPj4+PiAgICAg ICAgVGhlIGJpdHMgc2l6ZSBvZiB2Ym9vbCpfdCB3aWxsIGJlIGFkanVzdGVk IHRvDQo+Pj4+ICAgICAgICBbMSwgMiwgNCwgOCwgMTYsIDMyLCA2NF0gYWNj b3JkaW5nIHRvIHRoZSBydnYgc3BlYyAxLjAgaXNhLiBUaGUNCj4+Pj4gICAg ICAgIGFkanVzdGVkIG1vZGUgcHJlY2lzb24gb2YgdmJvb2wqX3Qgd2lsbCBo ZWxwIHVuZGVybHlpbmcgcGFzcyB0bw0KPj4+PiAgICAgICAgbWFrZSB0aGUg cmlnaHQgZGVjaXNpb24gZm9yIGJvdGggdGhlIGNvcnJlY3RuZXNzIGFuZCBv cHRpbWl6YXRpb24uDQo+Pj4+DQo+Pj4+ICAgICAgICBHaXZlbiBiZWxvdyBz YW1wbGUgY29kZToNCj4+Pj4gICAgICAgIHZvaWQgdGVzdF8xKGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpDQo+Pj4+ICAg ICAgICB7DQo+Pj4+ICAgICAgICAgIHZib29sOF90IHYyID0gKih2Ym9vbDhf dCopaW47DQo+Pj4+ICAgICAgICAgIHZib29sMTZfdCB2NSA9ICoodmJvb2wx Nl90KilpbjsNCj4+Pj4gICAgICAgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAy MDApID0gdjU7DQo+Pj4+ICAgICAgICAgICoodmJvb2w4X3QqKShvdXQgKyAx MDApID0gdjI7DQo+Pj4+ICAgICAgICB9DQo+Pj4+DQo+Pj4+ICAgICAgICBC ZWZvcmUgdGhlIHByZWNpc2lvbiBhZGp1c3RtZW50Og0KPj4+PiAgICAgICAg YWRkaSAgICBhNCxhMSwxMDANCj4+Pj4gICAgICAgIHZzZXR2bGkgYTUsemVy byxlOCxtMSx0YSxtYQ0KPj4+PiAgICAgICAgYWRkaSAgICBhMSxhMSwyMDAN Cj4+Pj4gICAgICAgIHZsbS52ICAgdjI0LDAoYTApDQo+Pj4+ICAgICAgICB2 c20udiAgIHYyNCwwKGE0KQ0KPj4+PiAgICAgICAgLy8gTmVlZCBvbmUgdnNl dHZsaSBhbmQgdmxtLnYgZm9yIGNvcnJlY3RuZXNzIGhlcmUuDQo+Pj4+ICAg ICAgICB2c20udiAgIHYyNCwwKGExKQ0KPj4+Pg0KPj4+PiAgICAgICAgQWZ0 ZXIgdGhlIHByZWNpc2lvbiBhZGp1c3RtZW50Og0KPj4+PiAgICAgICAgY3Ny ciAgICB0MCx2bGVuYg0KPj4+PiAgICAgICAgc2xsaSAgICB0MSx0MCwxDQo+ Pj4+ICAgICAgICBjc3JyICAgIGEzLHZsZW5iDQo+Pj4+ICAgICAgICBzdWIg ICAgIHNwLHNwLHQxDQo+Pj4+ICAgICAgICBzbGxpICAgIGE0LGEzLDENCj4+ Pj4gICAgICAgIGFkZCAgICAgYTQsYTQsc3ANCj4+Pj4gICAgICAgIHN1YiAg ICAgYTMsYTQsYTMNCj4+Pj4gICAgICAgIHZzZXR2bGkgYTUsemVybyxlOCxt MSx0YSxtYQ0KPj4+PiAgICAgICAgYWRkaSAgICBhMixhMSwyMDANCj4+Pj4g ICAgICAgIHZsbS52ICAgdjI0LDAoYTApDQo+Pj4+ICAgICAgICB2c20udiAg IHYyNCwwKGEzKQ0KPj4+PiAgICAgICAgYWRkaSAgICBhMSxhMSwxMDANCj4+ Pj4gICAgICAgIHZzZXR2bGkgYTQsemVybyxlOCxtZjIsdGEsbWENCj4+Pj4g ICAgICAgIGNzcnIgICAgdDAsdmxlbmINCj4+Pj4gICAgICAgIHZsbS52ICAg djI1LDAoYTMpDQo+Pj4+ICAgICAgICB2c20udiAgIHYyNSwwKGEyKQ0KPj4+ PiAgICAgICAgc2xsaSAgICB0MSx0MCwxDQo+Pj4+ICAgICAgICB2c2V0dmxp IGE1LHplcm8sZTgsbTEsdGEsbWENCj4+Pj4gICAgICAgIHZzbS52ICAgdjI0 LDAoYTEpDQo+Pj4+ICAgICAgICBhZGQgICAgIHNwLHNwLHQxDQo+Pj4+ICAg ICAgICBqciAgICAgIHJhDQo+Pj4+DQo+Pj4+ICAgICAgICBIb3dldmVyLCB0 aGVyZSBtYXkgYmUgc29tZSBvcHRpbWl6YXRpb24gb3Bwb3J0dW5hdGVzIGFm dGVyDQo+Pj4+ICAgICAgICB0aGUgbW9kZSBwcmVjaXNpb24gYWRqdXN0bWVu dC4gSXQgY2FuIGJlIHRva2VuIGNhcmUgb2YgaW4NCj4+Pj4gICAgICAgIHRo ZSBSSVNDLVYgYmFja2VuZCBpbiB0aGUgdW5kZXJseWluZyBzZXBhcnRlZCBQ UihzKS4NCj4+Pj4NCj4+Pj4gICAgICAgIFBSIDEwODE4NQ0KPj4+PiAgICAg ICAgUFIgMTA4NjU0DQo+Pj4+DQo+Pj4+IGdjYy9DaGFuZ2VMb2c6DQo+Pj4+ DQo+Pj4+ICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYg KEFESlVTVF9QUkVDSVNJT04pOg0KPj4+PiAgICAgICAgKiBjb25maWcvcmlz Y3YvcmlzY3YuY2MgKHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbik6DQo+Pj4+ ICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi5oIChyaXNjdl92X2FkanVz dF9wcmVjaXNpb24pOg0KPj4+PiAgICAgICAgKiBnZW5tb2Rlcy5jYyAoQURK VVNUX1BSRUNJU0lPTik6DQo+Pj4+ICAgICAgICAoZW1pdF9tb2RlX2FkanVz dG1lbnRzKToNCj4+Pj4NCj4+Pj4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 DQo+Pj4+DQo+Pj4+ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcHIxMDgx ODUtMS5jOiBOZXcgdGVzdC4NCj4+Pj4gICAgICAgICogZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS0yLmM6IE5ldyB0ZXN0Lg0KPj4+PiAgICAgICAgKiBn Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMuYzogTmV3IHRlc3QuDQo+Pj4+ ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNC5jOiBOZXcg dGVzdC4NCj4+Pj4gICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS01LmM6IE5ldyB0ZXN0Lg0KPj4+PiAgICAgICAgKiBnY2MudGFyZ2V0L3Jp c2N2L3ByMTA4MTg1LTYuYzogTmV3IHRlc3QuDQo+Pj4+ICAgICAgICAqIGdj Yy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNy5jOiBOZXcgdGVzdC4NCj4+Pj4g ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS04LmM6IE5ldyB0 ZXN0Lg0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBQYW4gTGkgPHBhbjIu bGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbTxtYWlsdG86 cGFuMi5saUBpbnRlbC5jb20lM2NtYWlsdG86cGFuMi5saUBpbnRlbC5jb20+ Pj4NCj4+Pj4gLS0tDQo+Pj4+ICBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1v ZGVzLmRlZiAgICAgICAgICAgIHwgIDggKysrDQo+Pj4+ICBnY2MvY29uZmln L3Jpc2N2L3Jpc2N2LmNjICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKw0K Pj4+PiAgZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oICAgICAgICAgICAgICAg ICAgICB8ICAxICsNCj4+Pj4gIGdjYy9nZW5tb2Rlcy5jYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAyNSArKysrKystDQo+Pj4+ICBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMS5jIHwgNjggKysr KysrKysrKysrKysrKysrDQo+Pj4+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtMi5jIHwgNjggKysrKysrKysrKysrKysrKysr DQo+Pj4+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgx ODUtMy5jIHwgNjggKysrKysrKysrKysrKysrKysrDQo+Pj4+ICBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNC5jIHwgNjggKysr KysrKysrKysrKysrKysrDQo+Pj4+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtNS5jIHwgNjggKysrKysrKysrKysrKysrKysr DQo+Pj4+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgx ODUtNi5jIHwgNjggKysrKysrKysrKysrKysrKysrDQo+Pj4+ICBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNy5jIHwgNjggKysr KysrKysrKysrKysrKysrDQo+Pj4+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtOC5jIHwgNzcgKysrKysrKysrKysrKysrKysr KysrDQo+Pj4+ICAxMiBmaWxlcyBjaGFuZ2VkLCA1OTggaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQ0KPj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0xLmMNCj4+ Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtMi5jDQo+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMu Yw0KPj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS00LmMNCj4+Pj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgx ODUtNS5jDQo+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPj4+PiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS03LmMNCj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtOC5jDQo+Pj4+DQo+ Pj4+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVz LmRlZiBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVmDQo+Pj4+ IGluZGV4IGQ1MzA1ZWZhOGE2Li4xMTBiZGRjZTg1MSAxMDA2NDQNCj4+Pj4g LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYNCj4+Pj4g KysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYNCj4+Pj4g QEAgLTcyLDYgKzcyLDE0IEBAIEFESlVTVF9CWVRFU0laRSAoVk54MTZCSSwg cmlzY3ZfdmVjdG9yX2NodW5rcyAqIHJpc2N2X2J5dGVzX3Blcl92ZWN0b3Jf Y2h1bmspOw0KPj4+PiAgQURKVVNUX0JZVEVTSVpFIChWTngzMkJJLCByaXNj dl92ZWN0b3JfY2h1bmtzICogcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rvcl9jaHVu ayk7DQo+Pj4+ICBBREpVU1RfQllURVNJWkUgKFZOeDY0QkksIHJpc2N2X3Zf YWRqdXN0X251bml0cyAoVk54NjRCSW1vZGUsIDgpKTsNCj4+Pj4NCj4+Pj4g K0FESlVTVF9QUkVDSVNJT04gKFZOeDFCSSwgcmlzY3Zfdl9hZGp1c3RfcHJl Y2lzaW9uIChWTngxQkltb2RlLCAxKSk7DQo+Pj4+ICtBREpVU1RfUFJFQ0lT SU9OIChWTngyQkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MkJJ bW9kZSwgMikpOw0KPj4+PiArQURKVVNUX1BSRUNJU0lPTiAoVk54NEJJLCBy aXNjdl92X2FkanVzdF9wcmVjaXNpb24gKFZOeDRCSW1vZGUsIDQpKTsNCj4+ Pj4gK0FESlVTVF9QUkVDSVNJT04gKFZOeDhCSSwgcmlzY3Zfdl9hZGp1c3Rf cHJlY2lzaW9uIChWTng4Qkltb2RlLCA4KSk7DQo+Pj4+ICtBREpVU1RfUFJF Q0lTSU9OIChWTngxNkJJLCByaXNjdl92X2FkanVzdF9wcmVjaXNpb24gKFZO eDE2Qkltb2RlLCAxNikpOw0KPj4+PiArQURKVVNUX1BSRUNJU0lPTiAoVk54 MzJCSSwgcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uIChWTngzMkJJbW9kZSwg MzIpKTsNCj4+Pj4gK0FESlVTVF9QUkVDSVNJT04gKFZOeDY0QkksIHJpc2N2 X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54NjRCSW1vZGUsIDY0KSk7DQo+Pj4+ ICsNCj4+Pj4gIC8qDQo+Pj4+ICAgICB8IE1vZGUgICAgICAgIHwgTUlOX1ZM RU49MzIgfCBNSU5fVkxFTj0zMiB8IE1JTl9WTEVOPTY0IHwgTUlOX1ZMRU49 NjQgfA0KPj4+PiAgICAgfCAgICAgICAgICAgICB8IExNVUwgICAgICAgIHwg U0VXL0xNVUwgICAgfCBMTVVMICAgICAgICB8IFNFVy9MTVVMICAgIHwNCj4+ Pj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+Pj4+IGluZGV4IGRlM2UxZjkw M2M3Li5jYmU2NmMwZTM1YiAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi5jYw0KPj4+PiArKysgYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LmNjDQo+Pj4+IEBAIC0xMDAzLDYgKzEwMDMsMTggQEAgcmlzY3Zf dl9hZGp1c3RfbnVuaXRzIChtYWNoaW5lX21vZGUgbW9kZSwgaW50IHNjYWxl KQ0KPj4+PiAgICByZXR1cm4gc2NhbGU7DQo+Pj4+ICB9DQo+Pj4+DQo+Pj4+ ICsvKiBDYWxsIGZyb20gQURKVVNUX1BSRUNJU0lPTiBpbiByaXNjdi1tb2Rl cy5kZWYuICBSZXR1cm4gdGhlIGNvcnJlY3QNCj4+Pj4gKyAgIFBSRUNJU0lP TiBzaXplIGZvciBjb3JyZXNwb25kaW5nIG1hY2hpbmVfbW9kZS4gICovDQo+ Pj4+ICsNCj4+Pj4gK3BvbHlfaW50NjQNCj4+Pj4gK3Jpc2N2X3ZfYWRqdXN0 X3ByZWNpc2lvbiAobWFjaGluZV9tb2RlIG1vZGUsIGludCBzY2FsZSkNCj4+ Pj4gK3sNCj4+Pj4gKyAgaWYgKHJpc2N2X3ZfZXh0X3ZlY3Rvcl9tb2RlX3Ag KG1vZGUpKQ0KPj4+PiArICAgIHJldHVybiByaXNjdl92ZWN0b3JfY2h1bmtz ICogc2NhbGU7DQo+Pj4+ICsNCj4+Pj4gKyAgcmV0dXJuIHNjYWxlOw0KPj4+ PiArfQ0KPj4+PiArDQo+Pj4+ICAvKiBSZXR1cm4gdHJ1ZSBpZiBYIGlzIGEg dmFsaWQgYWRkcmVzcyBmb3IgbWFjaGluZSBtb2RlIE1PREUuICBJZiBpdCBp cywNCj4+Pj4gICAgIGZpbGwgaW4gSU5GTyBhcHByb3ByaWF0ZWx5LiAgU1RS SUNUX1AgaXMgdHJ1ZSBpZiBSRUdfT0tfU1RSSUNUIGlzIGluDQo+Pj4+ICAg ICBlZmZlY3QuICAqLw0KPj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oDQo+Pj4+ IGluZGV4IDViYzdmMmY0NjdkLi4xNWI5MzE3YThjZSAxMDA2NDQNCj4+Pj4g LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oDQo+Pj4+ICsrKyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YuaA0KPj4+PiBAQCAtMTAyNSw2ICsxMDI1 LDcgQEAgZXh0ZXJuIHVuc2lnbmVkIHJpc2N2X3N0YWNrX2JvdW5kYXJ5Ow0K Pj4+PiAgZXh0ZXJuIHVuc2lnbmVkIHJpc2N2X2J5dGVzX3Blcl92ZWN0b3Jf Y2h1bms7DQo+Pj4+ICBleHRlcm4gcG9seV91aW50MTYgcmlzY3ZfdmVjdG9y X2NodW5rczsNCj4+Pj4gIGV4dGVybiBwb2x5X2ludDY0IHJpc2N2X3ZfYWRq dXN0X251bml0cyAoZW51bSBtYWNoaW5lX21vZGUsIGludCk7DQo+Pj4+ICtl eHRlcm4gcG9seV9pbnQ2NCByaXNjdl92X2FkanVzdF9wcmVjaXNpb24gKGVu dW0gbWFjaGluZV9tb2RlLCBpbnQpOw0KPj4+PiAgLyogVGhlIG51bWJlciBv ZiBiaXRzIGFuZCBieXRlcyBpbiBhIFJWViB2ZWN0b3IuICAqLw0KPj4+PiAg I2RlZmluZSBCSVRTX1BFUl9SSVNDVl9WRUNUT1IgKHBvbHlfdWludDE2IChy aXNjdl92ZWN0b3JfY2h1bmtzICogcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rvcl9j aHVuayAqIDgpKQ0KPj4+PiAgI2RlZmluZSBCWVRFU19QRVJfUklTQ1ZfVkVD VE9SIChwb2x5X3VpbnQxNiAocmlzY3ZfdmVjdG9yX2NodW5rcyAqIHJpc2N2 X2J5dGVzX3Blcl92ZWN0b3JfY2h1bmspKQ0KPj4+PiBkaWZmIC0tZ2l0IGEv Z2NjL2dlbm1vZGVzLmNjIGIvZ2NjL2dlbm1vZGVzLmNjDQo+Pj4+IGluZGV4 IDJkNDE4ZjA5YWFiLi4xMmY0ZTYzMzVlNiAxMDA2NDQNCj4+Pj4gLS0tIGEv Z2NjL2dlbm1vZGVzLmNjDQo+Pj4+ICsrKyBiL2djYy9nZW5tb2Rlcy5jYw0K Pj4+PiBAQCAtMTE0LDYgKzExNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbW9kZV9h ZGp1c3QgKmFkal9hbGlnbm1lbnQ7DQo+Pj4+ICBzdGF0aWMgc3RydWN0IG1v ZGVfYWRqdXN0ICphZGpfZm9ybWF0Ow0KPj4+PiAgc3RhdGljIHN0cnVjdCBt b2RlX2FkanVzdCAqYWRqX2liaXQ7DQo+Pj4+ICBzdGF0aWMgc3RydWN0IG1v ZGVfYWRqdXN0ICphZGpfZmJpdDsNCj4+Pj4gK3N0YXRpYyBzdHJ1Y3QgbW9k ZV9hZGp1c3QgKmFkal9wcmVjaXNpb247DQo+Pj4+DQo+Pj4+ICAvKiBNb2Rl IGNsYXNzIG9wZXJhdGlvbnMuICAqLw0KPj4+PiAgc3RhdGljIGVudW0gbW9k ZV9jbGFzcw0KPj4+PiBAQCAtODE5LDYgKzgyMCw3IEBAIG1ha2VfdmVjdG9y X21vZGUgKGVudW0gbW9kZV9jbGFzcyBiY2xhc3MsDQo+Pj4+ICAjZGVmaW5l IEFESlVTVF9OVU5JVFMoTSwgWCkgICAgX0FERF9BREpVU1QgKG51bml0cywg TSwgWCwgUkFORE9NLCBSQU5ET00pDQo+Pj4+ICAjZGVmaW5lIEFESlVTVF9C WVRFU0laRShNLCBYKSAgX0FERF9BREpVU1QgKGJ5dGVzaXplLCBNLCBYLCBS QU5ET00sIFJBTkRPTSkNCj4+Pj4gICNkZWZpbmUgQURKVVNUX0FMSUdOTUVO VChNLCBYKSBfQUREX0FESlVTVCAoYWxpZ25tZW50LCBNLCBYLCBSQU5ET00s IFJBTkRPTSkNCj4+Pj4gKyNkZWZpbmUgQURKVVNUX1BSRUNJU0lPTihNLCBY KSBfQUREX0FESlVTVCAocHJlY2lzaW9uLCBNLCBYLCBSQU5ET00sIFJBTkRP TSkNCj4+Pj4gICNkZWZpbmUgQURKVVNUX0ZMT0FUX0ZPUk1BVChNLCBYKSAg ICBfQUREX0FESlVTVCAoZm9ybWF0LCBNLCBYLCBGTE9BVCwgRkxPQVQpDQo+ Pj4+ICAjZGVmaW5lIEFESlVTVF9JQklUKE0sIFgpICBfQUREX0FESlVTVCAo aWJpdCwgTSwgWCwgQUNDVU0sIFVBQ0NVTSkNCj4+Pj4gICNkZWZpbmUgQURK VVNUX0ZCSVQoTSwgWCkgIF9BRERfQURKVVNUIChmYml0LCBNLCBYLCBGUkFD VCwgVUFDQ1VNKQ0KPj4+PiBAQCAtMTgyOSw3ICsxODMxLDE1IEBAIGVtaXRf bW9kZV9hZGp1c3RtZW50cyAodm9pZCkNCj4+Pj4gICAgICAgICAgICAgICIg KG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgbW9kZV9udW5pdHNbRV8lc21v ZGVdKTtcbiIsDQo+Pj4+ICAgICAgICAgICAgICBtLT5uYW1lLCBtLT5uYW1l KTsNCj4+Pj4gICAgICAgIHByaW50ZiAoIiAgICBtb2RlX3ByZWNpc2lvbltF XyVzbW9kZV0gPSBwcyAqIG9sZF9mYWN0b3I7XG4iLCBtLT5uYW1lKTsNCj4+ Pj4gLSAgICAgIHByaW50ZiAoIiAgICBtb2RlX3NpemVbRV8lc21vZGVdID0g ZXhhY3RfZGl2IChtb2RlX3ByZWNpc2lvbltFXyVzbW9kZV0sIg0KPj4+PiAr ICAgICAgLyogTm9ybWFsaXplIHRoZSBzaXplIHRvIDEgaWYgcHJlY2lzb24g aXMgbGVzcyB0aGFuIEJJVFNfUEVSX1VOSVQuICAqLw0KPj4+PiArICAgICAg cHJpbnRmICgiICAgIHBvbHlfdWludDE2IHNpemVfb25lID0gIg0KPj4+PiAr ICAgICAgICAgICAibW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLmlzX2NvbnN0 YW50ICgpXG4iLCBtLT5uYW1lKTsNCj4+Pj4gKyAgICAgIHByaW50ZiAoIiAg ICAgID8gcG9seV91aW50MTYgKDEsIDApIDogcG9seV91aW50MTYgKDEsIDEp O1xuIik7DQo+Pj4NCj4+PiBIYXZlIHlvdSB0cmllZCB0aGlzIG9uIGFuIHg4 Nl82NCBzeXN0ZW0/ICBJIHdvdWxkbid0IGV4cGVjdCBpdCB0byB3b3JrDQo+ Pj4gYmVjYXVzZSBvZiB0aGU6DQo+Pj4NCj4+PiAgIFNUQVRJQ19BU1NFUlQg KE4gPj0gMik7DQo+Pj4NCj4+PiBpbiB0aGUgcG9seV91aW50MTYgY29uc3Ry dWN0b3IuDQo+Pj4NCj4+Pj4gKyAgICAgIHByaW50ZiAoIiAgICBpZiAoa25v d25fbHQgKG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgIg0KPj4+PiArICAg ICAgICAgICAic2l6ZV9vbmUgKiBCSVRTX1BFUl9VTklUKSlcbiIsIG0tPm5h bWUpOw0KPj4+PiArICAgICAgcHJpbnRmICgiICAgICAgbW9kZV9zaXplW0Vf JXNtb2RlXSA9IHNpemVfb25lO1xuIiwgbS0+bmFtZSk7DQo+Pj4+ICsgICAg ICBwcmludGYgKCIgICAgZWxzZVxuIik7DQo+Pj4+ICsgICAgICBwcmludGYg KCIgICAgICBtb2RlX3NpemVbRV8lc21vZGVdID0gZXhhY3RfZGl2IChtb2Rl X3ByZWNpc2lvbltFXyVzbW9kZV0sIg0KPj4+DQo+Pj4gTm93IHRoYXQgdGhl IGFzc2VydCBpbXBsaWNpdCBpbiB0aGUgb3JpZ2luYWwgZXhhY3RfZGl2IG5v IGxvbmdlciBob2xkcywNCj4+PiBJIHRoaW5rIHdlIHNob3VsZCBpbnN0ZWFk IGdlbmVyYWxpc2UgaXQgdG8gY2FuX2Rpdl9hd2F5X2Zyb21femVyb19wDQo+ Pj4gKHdoaWNoIHdpbGwgaW52b2x2ZSBkZWZpbmluZyBhIG5ldyBvdmVybG9h ZCBvZiBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3ApLg0KPj4+IEkgdGhpbmsg dGhhdCB3aWxsIGdpdmUgdGhlIHNhbWUgcmVzdWx0IGFzIHRoZSBjb2RlIGFi b3ZlIGZvciB0aGUgY2FzZXMNCj4+PiB0aGF0IHRoZSBjb2RlIGFib3ZlIGhh bmRsZXMuICBCdXQgaXQgc2hvdWxkIGJlIG1vcmUgZ2VuZXJhbCB0b28uDQo+ Pj4NCj4+PiBUQkgsIEknbSBzdGlsbCBzY2VwdGljYWwgdGhhdCB0aGlzIGlz IGFsbCB0aGF0IGlzIG5lZWRlZC4gIEl0IHNlZW1zDQo+Pj4gdW5saWtlbHkg dGhhdCB3ZSd2ZSBiZWVuIHNvIGdvb2QgYXQgd3JpdGluZyB2ZWN0b3Igc3Vw cG9ydCBjb2RlIHRoYXQNCj4+PiB3ZSd2ZSBtYWRlIGl0IHdvcmsgZm9yIHBy ZWNpc2lvbiA8IGJpdHNpemUsIGRlc3BpdGUgdGhhdCBiZWluZyBhbg0KPj4+ IHVuc3VwcG9ydGVkIGNvbWJpbmF0aW9uIHVudGlsIG5vdy4gIEJ1dCBJIGd1 ZXNzIHdlIGNhbiBmaXggcHJvYmxlbXMNCj4+PiBvbiBhIGNhc2UtYnktY2Fz ZSBiYXNpcy4NCj4+Pg0KPj4+IFRoYW5rcywNCj4+PiBSaWNoYXJkDQo+Pj4N Cj4+Pj4gICAgICAgICAgICAgICIgQklUU19QRVJfVU5JVCk7XG4iLCBtLT5u YW1lLCBtLT5uYW1lKTsNCj4+Pj4gICAgICAgIHByaW50ZiAoIiAgICBtb2Rl X251bml0c1tFXyVzbW9kZV0gPSBwcztcbiIsIG0tPm5hbWUpOw0KPj4+PiAg ICAgICAgcHJpbnRmICgiICAgIGFkanVzdF9tb2RlX21hc2sgKEVfJXNtb2Rl KTtcbiIsIG0tPm5hbWUpOw0KPj4+PiBAQCAtMTk2Myw2ICsxOTczLDE5IEBA IGVtaXRfbW9kZV9hZGp1c3RtZW50cyAodm9pZCkNCj4+Pj4gICAgICBwcmlu dGYgKCJcbiAgLyogJXM6JWQgKi9cbiAgUkVBTF9NT0RFX0ZPUk1BVCAoRV8l c21vZGUpID0gJXM7XG4iLA0KPj4+PiAgICAgICAgICAgIGEtPmZpbGUsIGEt PmxpbmUsIGEtPm1vZGUtPm5hbWUsIGEtPmFkanVzdG1lbnQpOw0KPj4+Pg0K Pj4+PiArICAvKiBBZGp1c3QgcHJlY2lzaW9uIHRvIHRoZSBhY3R1YWwgYml0 cyBzaXplLiAgKi8NCj4+Pj4gKyAgZm9yIChhID0gYWRqX3ByZWNpc2lvbjsg YTsgYSA9IGEtPm5leHQpDQo+Pj4+ICsgICAgc3dpdGNoIChhLT5tb2RlLT5j bCkNCj4+Pj4gKyAgICAgIHsNCj4+Pj4gKyAgICAgY2FzZSBNT0RFX1ZFQ1RP Ul9CT09MOg0KPj4+PiArICAgICAgIHByaW50ZiAoIlxuICAvKiAlczolZC4g ICovXG4gIHBzID0gJXM7XG4iLCBhLT5maWxlLCBhLT5saW5lLA0KPj4+PiAr ICAgICAgICAgICAgICAgYS0+YWRqdXN0bWVudCk7DQo+Pj4+ICsgICAgICAg cHJpbnRmICgiICBtb2RlX3ByZWNpc2lvbltFXyVzbW9kZV0gPSBwcztcbiIs IGEtPm1vZGUtPm5hbWUpOw0KPj4+PiArICAgICAgIGJyZWFrOw0KPj4+PiAr ICAgICBkZWZhdWx0Og0KPj4+PiArICAgICAgIGJyZWFrOw0KPj4+PiArICAg ICAgfQ0KPj4+PiArDQo+Pj4+ICAgIHB1dHMgKCJ9Iik7DQo+Pj4+ICB9DQo+ Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3ByMTA4MTg1LTEuYw0KPj4+PiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uZTcwOTYwYzViNmQNCj4+ Pj4gLS0tIC9kZXYvbnVsbA0KPj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMS5jDQo+Pj4+IEBAIC0wLDAgKzEs NjggQEANCj4+Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+ICsv KiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8z IiB9ICovDQo+Pj4+ICsNCj4+Pj4gKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiArdGVzdF92Ym9vbDFfdGhl bl92Ym9vbDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3Ry aWN0IG91dCkgew0KPj4+PiArICAgIHZib29sMV90IHYxID0gKih2Ym9vbDFf dCopaW47DQo+Pj4+ICsgICAgdmJvb2wyX3QgdjIgPSAqKHZib29sMl90Kilp bjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJvb2wxX3QqKShvdXQgKyAxMDAp ID0gdjE7DQo+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDIwMCkgPSB2 MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiArdGVzdF92 Ym9vbDFfdGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhf dCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAgIHZib29sMV90IHYxID0g Kih2Ym9vbDFfdCopaW47DQo+Pj4+ICsgICAgdmJvb2w0X3QgdjIgPSAqKHZi b29sNF90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJvb2wxX3QqKShv dXQgKyAxMDApID0gdjE7DQo+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCAr IDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+ PiArdGVzdF92Ym9vbDFfdGhlbl92Ym9vbDgoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAgIHZib29s MV90IHYxID0gKih2Ym9vbDFfdCopaW47DQo+Pj4+ICsgICAgdmJvb2w4X3Qg djIgPSAqKHZib29sOF90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJv b2wxX3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ICsgICAgKih2Ym9vbDhf dCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiAr dm9pZA0KPj4+PiArdGVzdF92Ym9vbDFfdGhlbl92Ym9vbDE2KGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4g KyAgICB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPj4+PiArICAg IHZib29sMTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4+Pj4gKw0KPj4+ PiArICAgICoodmJvb2wxX3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ICsg ICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ICt9DQo+ Pj4+ICsNCj4+Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJv b2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSB7DQo+Pj4+ICsgICAgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90Kilp bjsNCj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47 DQo+Pj4+ICsNCj4+Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMTAwKSA9 IHYxOw0KPj4+PiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMjAwKSA9IHYy Ow0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zi b29sMV90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhf dCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAgIHZib29sMV90IHYxID0g Kih2Ym9vbDFfdCopaW47DQo+Pj4+ICsgICAgdmJvb2w2NF90IHYyID0gKih2 Ym9vbDY0X3QqKWluOw0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDFfdCop KG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZib29sNjRfdCopKG91 dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxccyp0YSxccyptYX0gNiB9 IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTld Kyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMSxccyp0 YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjQsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxz KmU4LFxzKm1mOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxtXC52XHMrdlsw LTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4+Pj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNtXC52XHMr dlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxOCB9IH0gKi8NCj4+Pj4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cHIxMDgxODUtMi5jDQo+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4+ IGluZGV4IDAwMDAwMDAwMDAwLi5kY2M3YTY0NGE4OA0KPj4+PiAtLS0gL2Rl di9udWxsDQo+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS0yLmMNCj4+Pj4gQEAgLTAsMCArMSw2OCBAQA0KPj4+ PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4gKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4+ Pj4gKw0KPj4+PiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPj4+PiAr DQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sMl90aGVuX3Zib29sMShp bnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7 DQo+Pj4+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4+ Pj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPj4+PiAr DQo+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+ Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiAr fQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sMl90aGVu X3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90 KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWlu Ow0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkg PSB2MTsNCj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYy Ow0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zi b29sMl90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90 ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2wyX3QgdjEgPSAq KHZib29sMl90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoodmJv b2w4X3QqKWluOw0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91 dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZib29sOF90Kikob3V0ICsg MjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ ICt0ZXN0X3Zib29sMl90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAgIHZib29s Ml90IHYxID0gKih2Ym9vbDJfdCopaW47DQo+Pj4+ICsgICAgdmJvb2wxNl90 IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+PiArDQo+Pj4+ICsgICAgKih2 Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZib29s MTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+ PiArdm9pZA0KPj4+PiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDMyKGludDhf dCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+ Pj4gKyAgICB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPj4+PiAr ICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4+Pj4gKw0K Pj4+PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ICt9 DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3RfdmJvb2wyX3RoZW5f dmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90 KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCop aW47DQo+Pj4+ICsNCj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMTAw KSA9IHYxOw0KPj4+PiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSA2IH0gfSAqLw0KPj4+ PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0 dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxc cyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytb YS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxc cyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0g Ki8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4 LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2bG1cLnZccyt2WzAtOV0rLFxzKjBc KFthLXhdWzAtOV0rXCl9IDEyIH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c21cLnZccyt2WzAtOV0rLFxz KjBcKFthLXhdWzAtOV0rXCl9IDE3IH0gfSAqLw0KPj4+PiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0z LmMNCj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4gaW5kZXggMDAw MDAwMDAwMDAuLjNhZjA1MTNlMDA2DQo+Pj4+IC0tLSAvZGV2L251bGwNCj4+ Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4 MTg1LTMuYw0KPj4+PiBAQCAtMCwwICsxLDY4IEBADQo+Pj4+ICsvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPj4+PiArDQo+Pj4+ ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+Pj4+ICsNCj4+Pj4gK3Zv aWQNCj4+Pj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2wxKGludDhfdCAqIHJl c3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4gKyAg ICB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPj4+PiArICAgIHZi b29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47DQo+Pj4+ICsNCj4+Pj4gKyAg ICAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoo dmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ICt9DQo+Pj4+ICsN Cj4+Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2wyKGlu dDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsN Cj4+Pj4gKyAgICB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPj4+ PiArICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47DQo+Pj4+ICsN Cj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+ PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ICt9 DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3RfdmJvb2w0X3RoZW5f dmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmlj dCBvdXQpIHsNCj4+Pj4gKyAgICB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3Qq KWluOw0KPj4+PiArICAgIHZib29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47 DQo+Pj4+ICsNCj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9 IHYxOw0KPj4+PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAyMDApID0gdjI7 DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3RfdmJv b2w0X3RoZW5fdmJvb2wxNihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90 ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2w0X3QgdjEgPSAq KHZib29sNF90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjIgPSAqKHZi b29sMTZfdCopaW47DQo+Pj4+ICsNCj4+Pj4gKyAgICAqKHZib29sNF90Kiko b3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoodmJvb2wxNl90Kikob3V0 ICsgMjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+ Pj4+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sMzIoaW50OF90ICogcmVzdHJp Y3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAgIHZi b29sNF90IHYxID0gKih2Ym9vbDRfdCopaW47DQo+Pj4+ICsgICAgdmJvb2wz Ml90IHYyID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+PiArDQo+Pj4+ICsgICAg Kih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZi b29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0K Pj4+PiArdm9pZA0KPj4+PiArdGVzdF92Ym9vbDRfdGhlbl92Ym9vbDY0KGlu dDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsN Cj4+Pj4gKyAgICB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPj4+ PiArICAgIHZib29sNjRfdCB2MiA9ICoodmJvb2w2NF90KilpbjsNCj4+Pj4g Kw0KPj4+PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ ICt9DQo+Pj4+ICsNCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMq ZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+Pj4+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14 XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1hfSAxIH0g fSAqLw0KPj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt NCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0 YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZsbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05 XStcKX0gMTIgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1b MC05XStcKX0gMTYgfSB9ICovDQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNC5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYw0KPj4+PiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+PiBpbmRleCAwMDAwMDAwMDAwMC4u ZWEzYzM2MGQ3NTYNCj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+PiArKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNC5jDQo+ Pj4+IEBAIC0wLDAgKzEsNjggQEANCj4+Pj4gKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQo+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIiB9ICovDQo+Pj4+ICsNCj4+Pj4gKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiAr dGVzdF92Ym9vbDhfdGhlbl92Ym9vbDEoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAgIHZib29sOF90 IHYxID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+ICsgICAgdmJvb2wxX3QgdjIg PSAqKHZib29sMV90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJvb2w4 X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ICsgICAgKih2Ym9vbDFfdCop KG91dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9p ZA0KPj4+PiArdGVzdF92Ym9vbDhfdGhlbl92Ym9vbDIoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAg IHZib29sOF90IHYxID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+ICsgICAgdmJv b2wyX3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAg ICoodmJvb2w4X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ICsgICAgKih2 Ym9vbDJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0K Pj4+PiArdm9pZA0KPj4+PiArdGVzdF92Ym9vbDhfdGhlbl92Ym9vbDQoaW50 OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0K Pj4+PiArICAgIHZib29sOF90IHYxID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+ ICsgICAgdmJvb2w0X3QgdjIgPSAqKHZib29sNF90KilpbjsNCj4+Pj4gKw0K Pj4+PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30N Cj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiArdGVzdF92Ym9vbDhfdGhlbl92 Ym9vbDE2KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmlj dCBvdXQpIHsNCj4+Pj4gKyAgICB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3Qq KWluOw0KPj4+PiArICAgIHZib29sMTZfdCB2MiA9ICoodmJvb2wxNl90Kilp bjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAxMDAp ID0gdjE7DQo+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0g djI7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3Rf dmJvb2w4X3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50 OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2w4X3QgdjEg PSAqKHZib29sOF90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjIgPSAq KHZib29sMzJfdCopaW47DQo+Pj4+ICsNCj4+Pj4gKyAgICAqKHZib29sOF90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoodmJvb2wzMl90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICt2b2lk DQo+Pj4+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sNjQoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAg IHZib29sOF90IHYxID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+ICsgICAgdmJv b2w2NF90IHYyID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+PiArDQo+Pj4+ICsg ICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAq KHZib29sNjRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4g Kw0KPj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMSxc cyp0YSxccyptYX0gNiB9IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2 bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxc cyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxc cyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gMSB9IH0g Ki8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9 IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAx NSB9IH0gKi8NCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS01LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNS5jDQo+Pj4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi45ZmM2NTlkMjQw Mg0KPj4+PiAtLS0gL2Rldi9udWxsDQo+Pj4+ICsrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS01LmMNCj4+Pj4gQEAgLTAs MCArMSw2OCBAQA0KPj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+ Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2 NCAtTzMiIH0gKi8NCj4+Pj4gKw0KPj4+PiArI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29s MTZfdGhlbl92Ym9vbDEoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAq IHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAgIHZib29sMTZfdCB2MSA9ICoo dmJvb2wxNl90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoodmJv b2wxX3QqKWluOw0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShv dXQgKyAxMDApID0gdjE7DQo+Pj4+ICsgICAgKih2Ym9vbDFfdCopKG91dCAr IDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+ PiArdGVzdF92Ym9vbDE2X3RoZW5fdmJvb2wyKGludDhfdCAqIHJlc3RyaWN0 IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4gKyAgICB2Ym9v bDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+ICsgICAgdmJvb2wy X3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoo dmJvb2wxNl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoodmJv b2wyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+ Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zib29sNChpbnQ4 X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ Pj4+ICsgICAgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+ PiArICAgIHZib29sNF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+Pj4+ICsN Cj4+Pj4gKyAgICAqKHZib29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+ Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiAr fQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sMTZfdGhl bl92Ym9vbDgoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3Ry aWN0IG91dCkgew0KPj4+PiArICAgIHZib29sMTZfdCB2MSA9ICoodmJvb2wx Nl90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3Qq KWluOw0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAx MDApID0gdjE7DQo+Pj4+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDIwMCkg PSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiArdGVz dF92Ym9vbDE2X3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2wxNl90 IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+PiArICAgIHZib29sMzJfdCB2 MiA9ICoodmJvb2wzMl90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJv b2wxNl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoodmJvb2wz Ml90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDY0KGludDhf dCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+ Pj4gKyAgICB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+ ICsgICAgdmJvb2w2NF90IHYyID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+PiAr DQo+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ ICt9DQo+Pj4+ICsNCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMq ZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSA2IH0gfSAqLw0KPj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0gMSB9 IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTld Kyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMSxccyp0 YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZsbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05 XStcKX0gMTIgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1b MC05XStcKX0gMTQgfSB9ICovDQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNi5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPj4+PiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+PiBpbmRleCAwMDAwMDAwMDAwMC4u OTgyNzVlNTI2N2QNCj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+PiArKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNi5jDQo+ Pj4+IEBAIC0wLDAgKzEsNjggQEANCj4+Pj4gKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQo+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIiB9ICovDQo+Pj4+ICsNCj4+Pj4gKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiAr dGVzdF92Ym9vbDMyX3RoZW5fdmJvb2wxKGludDhfdCAqIHJlc3RyaWN0IGlu LCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4gKyAgICB2Ym9vbDMy X3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+Pj4+ICsgICAgdmJvb2wxX3Qg djIgPSAqKHZib29sMV90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJv b2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoodmJvb2wx X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4g K3ZvaWQNCj4+Pj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sMihpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ ICsgICAgdmJvb2wzMl90IHYxID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+PiAr ICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47DQo+Pj4+ICsNCj4+ Pj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4g KyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiArfQ0K Pj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sMzJfdGhlbl92 Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0 IG91dCkgew0KPj4+PiArICAgIHZib29sMzJfdCB2MSA9ICoodmJvb2wzMl90 KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWlu Ow0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAxMDAp ID0gdjE7DQo+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2 MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiArdGVzdF92 Ym9vbDMyX3RoZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4 X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjEg PSAqKHZib29sMzJfdCopaW47DQo+Pj4+ICsgICAgdmJvb2w4X3QgdjIgPSAq KHZib29sOF90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJvb2wzMl90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoodmJvb2w4X3QqKShv dXQgKyAyMDApID0gdjI7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQN Cj4+Pj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sMTYoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAg IHZib29sMzJfdCB2MSA9ICoodmJvb2wzMl90KilpbjsNCj4+Pj4gKyAgICB2 Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+ICsNCj4+Pj4g KyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAg ICAqKHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+ Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiArdGVzdF92Ym9vbDMyX3RoZW5fdmJv b2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSB7DQo+Pj4+ICsgICAgdmJvb2wzMl90IHYxID0gKih2Ym9vbDMyX3Qq KWluOw0KPj4+PiArICAgIHZib29sNjRfdCB2MiA9ICoodmJvb2w2NF90Kilp bjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMTAw KSA9IHYxOw0KPj4+PiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gNiB9IH0gKi8NCj4+ Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNl dHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiArLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMr W2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0g MSB9IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccyptYX0gMSB9IH0g Ki8NCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4 LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2bG1cLnZccyt2WzAtOV0rLFxzKjBc KFthLXhdWzAtOV0rXCl9IDEyIH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c21cLnZccyt2WzAtOV0rLFxz KjBcKFthLXhdWzAtOV0rXCl9IDEzIH0gfSAqLw0KPj4+PiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS03 LmMNCj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4gaW5kZXggMDAw MDAwMDAwMDAuLjhmNmYwYjExZjA5DQo+Pj4+IC0tLSAvZGV2L251bGwNCj4+ Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4 MTg1LTcuYw0KPj4+PiBAQCAtMCwwICsxLDY4IEBADQo+Pj4+ICsvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPj4+PiArDQo+Pj4+ ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+Pj4+ICsNCj4+Pj4gK3Zv aWQNCj4+Pj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sMShpbnQ4X3QgKiBy ZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsg ICAgdmJvb2w2NF90IHYxID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+PiArICAg IHZib29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47DQo+Pj4+ICsNCj4+Pj4g KyAgICAqKHZib29sNjRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAg ICAqKHZib29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+ PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sNjRfdGhlbl92Ym9v bDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91 dCkgew0KPj4+PiArICAgIHZib29sNjRfdCB2MSA9ICoodmJvb2w2NF90Kilp bjsNCj4+Pj4gKyAgICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0K Pj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0g djE7DQo+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDIwMCkgPSB2MjsN Cj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiArdGVzdF92Ym9v bDY0X3RoZW5fdmJvb2w0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3Qg KiByZXN0cmljdCBvdXQpIHsNCj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjEgPSAq KHZib29sNjRfdCopaW47DQo+Pj4+ICsgICAgdmJvb2w0X3QgdjIgPSAqKHZi b29sNF90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoodmJvb2w2NF90Kiko b3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoodmJvb2w0X3QqKShvdXQg KyAyMDApID0gdjI7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQNCj4+ Pj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmlj dCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJv b2w2NF90IHYxID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+PiArICAgIHZib29s OF90IHYyID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+ICsNCj4+Pj4gKyAgICAq KHZib29sNjRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZi b29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+ Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sNjRfdGhlbl92Ym9vbDE2KGlu dDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsN Cj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ Pj4+ICsgICAgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+ PiArDQo+Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7 DQo+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3RfdmJvb2w2 NF90aGVuX3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAq IHJlc3RyaWN0IG91dCkgew0KPj4+PiArICAgIHZib29sNjRfdCB2MSA9ICoo dmJvb2w2NF90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjIgPSAqKHZi b29sMzJfdCopaW47DQo+Pj4+ICsNCj4+Pj4gKyAgICAqKHZib29sNjRfdCop KG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZib29sMzJfdCopKG91 dCArIDIwMCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDYg fSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxz Km04LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05 XSssXHMqemVybyxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8N Cj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxz KmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxtXC52XHMrdlsw LTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4+Pj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNtXC52XHMr dlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4+Pj4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS04LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cHIxMDgxODUtOC5jDQo+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4+ IGluZGV4IDAwMDAwMDAwMDAwLi5kOTY5NTlkZDA2NA0KPj4+PiAtLS0gL2Rl di9udWxsDQo+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS04LmMNCj4+Pj4gQEAgLTAsMCArMSw3NyBAQA0KPj4+ PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4gKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4+ Pj4gKw0KPj4+PiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPj4+PiAr DQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sMShp bnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7 DQo+Pj4+ICsgICAgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4+ Pj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPj4+PiAr DQo+Pj4+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+ Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiAr fQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zib29sMl90aGVu X3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90 KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWlu Ow0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkg PSB2MTsNCj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYy Ow0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ICt0ZXN0X3Zi b29sNF90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90 ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2w0X3QgdjEgPSAq KHZib29sNF90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJv b2w0X3QqKWluOw0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91 dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsg MjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICt2b2lkDQo+Pj4+ ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2w4 X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDhfdCB2 MiA9ICoodmJvb2w4X3QqKWluOw0KPj4+PiArDQo+Pj4+ICsgICAgKih2Ym9v bDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZib29sOF90 Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICt2 b2lkDQo+Pj4+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDE2KGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4g KyAgICB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+ICsg ICAgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+PiArDQo+ Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ICt9 DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQNCj4+Pj4gK3Rlc3RfdmJvb2wzMl90aGVu X3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3Ry aWN0IG91dCkgew0KPj4+PiArICAgIHZib29sMzJfdCB2MSA9ICoodmJvb2wz Ml90KilpbjsNCj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJf dCopaW47DQo+Pj4+ICsNCj4+Pj4gKyAgICAqKHZib29sMzJfdCopKG91dCAr IDEwMCkgPSB2MTsNCj4+Pj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDIw MCkgPSB2MjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9pZA0KPj4+PiAr dGVzdF92Ym9vbDY0X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ICsgICAgdmJvb2w2 NF90IHYxID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+PiArICAgIHZib29sNjRf dCB2MiA9ICoodmJvb2w2NF90KilpbjsNCj4+Pj4gKw0KPj4+PiArICAgICoo dmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+PiArICAgICoodmJv b2w2NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+PiArfQ0KPj4+PiArDQo+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRh LFxzKm1hfSAxIH0gfSAqLw0KPj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVy byxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9 IDEgfSB9ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+PiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1b MC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1m NCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDcgfSB9ICov DQo+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTQgfSB9 ICovDQo= --_000_BYAPR04MB482460A21FA9890421AEB2FEB7AD9BYAPR04MB4824namp_--