From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04olkn2069.outbound.protection.outlook.com [40.92.45.69]) by sourceware.org (Postfix) with ESMTPS id 064D73858D33 for ; Wed, 1 Mar 2023 12:56:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 064D73858D33 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=OxrIjkyr9vV7teuBVBccIXJvw2MmykI3o7fiNQGsHSBtU+Xs1PVRxr4VeHg04/PbRFb0SrIKo7dXQ66m7NhhC4Yc/+ut9qrGVyCuZoNe8ZpSmfbd2ieINZNq8gB49jinPGjiU3aOJBWyB11Ly5vMT3ijyhTIt/XXyGcrgyARiLlW0Bj53wDVw88yI52GhXvbs7EJRrX0CvtM8INIKkVMVPwWfcErnpAEGXxbNG+R+tLgmEFiwvjOFhhzYiYiUnqUSqMuTvFHwyZluVV9TdMWumxd2PxHoKpBLJ/PCOQKTIa0dwWajmdqwtU0kcmKK6H/rsbcFjpxWB4IxRTXIbus4g== 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=eDZE59bZ2ilo+j5Qrd0HX3PHQTVHQeLXq2NugKdJ6dE=; b=iPM17XXefTCQ8r7Gy5yBxOVVE2XAkU/sMvu8XBUNSZKZ0uKd8tm6usEoj3R7AaCzrTdbvlqf47Zns8eCYRWxbXvNnGfB9uU2kWvyxUHNwTekpH9KAlGXDLYNB8XFV0XzkIzXwFHyL6N4HaWfxwRVAAjLX0nHNhZPnyubYfm0C6zPlISkeVI2MYuzkOVyuXeo0UvrZgtIlHrtEuJ7IAHlkurTxDjLzqlTa/lf/u3z8xAHS2eM4o+mnbBtL2K7X4MiwQHXmKjgYIxR+9c4YkobQNTnxwZg+xPwWudxW4t0ikUl7nnjDDD38uhijOcvwlcJR4NMLRyAI20QDwDJKtzHmA== 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=eDZE59bZ2ilo+j5Qrd0HX3PHQTVHQeLXq2NugKdJ6dE=; b=Eqsp6WIEHDEJN2pTLT5POmINoqbR3vEJ8TSE9b1k6Y0uyGdma81N6/rnOnoawzt1kdU77ZjtPMm7bI3pcyMxDH/pPnkGcqocnl+x2KnxqYzSaIizqV8C0z+kJRDUhzYWptLDDK/KpX1TyoTjyFFXidbKJX+MbRrs8fqS238uS+/nX0392cRWsXsJ/+ncuJAILeehEsOFnf37gp8FFF1yhLvsMWIrHdyzAs9w1QyE1zG7GaGsNXmabKlDxC4brpT7yCW3uQgH0sQSJsOewFIjiHolkoAgnRnpIVLr9QupC9reRl7oJI39mBpxUVgil3q+WSKBKM7tDafZb/yen2IiEQ== Received: from BYAPR04MB4824.namprd04.prod.outlook.com (2603:10b6:a03:5e::19) by DM6PR04MB4267.namprd04.prod.outlook.com (2603:10b6:5:9a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.25; Wed, 1 Mar 2023 12:56:33 +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 12:56:33 +0000 From: Pan Li To: Richard Biener , Richard Sandiford CC: =?utf-8?B?55u8IOadjiB2aWEgR2NjLXBhdGNoZXM=?= , "juzhe.zhong@rivai.ai" , pan2.li , Kito.cheng 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: AQHZTC6elNoYPmDEs0WlhZAo09h3kq7lz97qgAADV/+AAAhiAIAAApj+ Date: Wed, 1 Mar 2023 12:56:32 +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: [CpT33/3lvPsTtw8Q3mCYqr6qGFHU+21D] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BYAPR04MB4824:EE_|DM6PR04MB4267:EE_ x-ms-office365-filtering-correlation-id: 9e489c5f-c411-488c-cba8-08db1a546239 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Iue6q2Cw8+e9bdW+owzq0XLt5eFaqbJ9iQTtH1A9kHsCvS935ZXvo3c4A5Vgtn53sUni0vzsTa9UKmwJOPQZz3Qp9Id865xQoI5OMUu8JO5wOmO9gfXfWLgMJ/4rudu7RjMSQockItm+8vxqhOlPcE+t+twuB6j33HjQvVzl78OiLXRlmATWgZ1HcBoAGIzJa1uVWaZdf3mOgb2m54fBRifD0y++K87pRCMKhIxViF+W6MpQqWztBrsRzxVDz2pDwFj166yMVvLsq2RUyjWIOjAfwff0URraCbJSlummLrQ/CW/EWDXQbKubLpdoi5RHkKb+7LkmyV8ufDhHCdj+kDb+qpG/J+bLBfJolmFv0T8MEpdOJlLH7W26Pbp4L0HR3WXFwkj1wl/1/AE3JzXzl5ayY12h/ayIkS7rhV0g2HPs9ByTlGp2CtnIHsTOVm0kF/kIwCggEtE/7FFo9mXdK16VjSK9xhuWTbI0poxiZssMNlvkgkSBxPfndMXixAx2FFI9MKmyVLRiRclcGdKpTdvqhH7AvnRRBhkPwO/1wjVoDkcPPLCmOoNcgBugrMwPN7tE81aGoUNP4DmGMt+Q3IZ2Lw0cA3GArtKempaxTXF2C2Hso8tkIuFtHE7463Rb9VCFYpm4+ETvUGKYEf2e8g== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Nno2djNSUU45UDlhNzFyZlFJRUZIZGdxYTBubEN1bUliZE41b0gyM2J1NU9X?= =?utf-8?B?Qys0N2owbGZjYm1UVkZxZElvdnZtTmZDampHQnlHU3A0VXhZbU50alNGWDZk?= =?utf-8?B?dHZjanl5MndHaklwdW5SeWQ0a081NXdTS3BRYVdXbzM1WHY5K3JUVGJSVjR2?= =?utf-8?B?TWFmTU9MOTlIV2Y4M0JKaHlmWTR3R2YyUStMUER0b2tUR3RaOVZwYjI1c1Nk?= =?utf-8?B?dnBLT3Fna1E5N0dtd3piTU9LemVYS2ZaMTlLME91Z1crcmtpbVp4a05qWGJy?= =?utf-8?B?VVE3RDRGWWlPY1d1WDJVNGpZeDFqZ21URHh5ZDZCVUszdFRKbVV6eG5jWXJR?= =?utf-8?B?OTAwYXAyUi95RytXYmRMZkF6aXMyV29ZK1AyTEJtbmxwS3lacysrKzRCOFBE?= =?utf-8?B?em04VEQxSG9USW1ITkdqaVJLYkZHR0I4QUdSUUpaVUZVNU5aQTF2VDNLd0lS?= =?utf-8?B?d2NNTXlqZGdrWkc1UUVpZnIxNkJQRDZCMDJRZWNRMjFrY1AzdnZmaTRtT2xn?= =?utf-8?B?M2RxOUxKdktqWjc1eEVFZFgrSHlibStqQW5kd1BpRGdhRnJpVEQvd0pWSVFp?= =?utf-8?B?d1JDNkhuY2xUWWZheWlTd2Y4bzdEdTN3ZUM2UysrTjJLaVVYaEY4VHhKSHk5?= =?utf-8?B?NHFkbWowWGdCcDJKWW9vejV1am13TThCeVduejRJekVwb2pBbFpremZoS2V4?= =?utf-8?B?UEdFMTRkZHJ6VHJjVStZbFdoS2V1MEFUTXRHVlIzTmwvaFhYdzVpRUZid0lv?= =?utf-8?B?RE5vMmJXaVdTVWxWUHBiNGRRenlkYzRYUkUzY2VSOEYyUzVVTGQ0YUNRTCtz?= =?utf-8?B?UHhnNmNrclNCMElkRFQ5TTVMMTFhdTVCY001VFdJd0dESzQ2QlFHb2VFQVJF?= =?utf-8?B?SU41aFBRd3dQNExhWHBnVVYyTElkNmxqRERORG95amZEaU16S21pTE1xUG8w?= =?utf-8?B?TnpFYXNZaGlIRHBaVUZPZWtpR1FGQi9WY2ZkSkNzWkVQaFVaazdwejBqM2hi?= =?utf-8?B?d0loTGJuc1Z0aVUrUFQ0N2dGMWV1dTA1K2FiVGNCYUJtbHBJb3RvWmc1Wmt0?= =?utf-8?B?RG5UU3pkY0diUEdLNEw5OU8xRVZkdkcwZGR2M2V4bUxPbHRBZ29seWlGK3Fs?= =?utf-8?B?anEzS1dwb0ZEVjdlR3hGK0pTMkYzU0xBOWo0RFlRREJHUmZ6TUlzdHFxZ0Uw?= =?utf-8?B?REg2ZlNST3F4SGVwTGFTM2lmRUhsVmQyRGJxTUUraXUzVVBOU05UZDJjVjNI?= =?utf-8?B?bVZ2OHhSL2NZWURxYVZEUmFFeXBrRkV0V0R2dVU4N1lFMStMVTNUQVFvdTQ2?= =?utf-8?B?RzVkQk55dUZQcWNvNU9FS3g5dm9MczVjbXhYeVgrVUhSQ25naVBNeGdpbWJE?= =?utf-8?B?c1JNczA3TTNLRHhPYmRoSDJneTZjRXkxOUNQczlVb0F4M3k4YjBPcU5wUFht?= =?utf-8?B?dEtmWUQ1Wmxmbm1uam45dks0T3IrdTBJK1Jpekw5Y0dRdWpzR1QwQ29PWjYw?= =?utf-8?B?UDN4WW9FVTdqYmJDcU5jNGIzYWIyNFByT2F0NzZTWlI4UFJSMkVEL25VeUNH?= =?utf-8?B?eGlldE5uNEVLVVhjZmd5MXJzVCtsTW5id3c2VnNLbW1PR25uWmZVY3ZWZTJh?= =?utf-8?B?TGNGUGZJMC95ZVlWVHYvRmJDZDYwWE4yWkorZ3BMZUhqSkNyV205NmpySDc5?= =?utf-8?B?Y3J2QmtiMjdZUEVNdCtzYVpHSGJFOUg2TGdFdEdXRmQ3eTNPRkF1VkFBPT0=?= Content-Type: multipart/alternative; boundary="_000_BYAPR04MB482477F0A7739A9FABBD2FD6B7AD9BYAPR04MB4824namp_" 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: 9e489c5f-c411-488c-cba8-08db1a546239 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2023 12:56:33.0118 (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: DM6PR04MB4267 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,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_BYAPR04MB482477F0A7739A9FABBD2FD6B7AD9BYAPR04MB4824namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhbSBub3QgdmVyeSBmYW1pbGlhciB3aXRoIHRoZSBtZW1vcnkgcGF0dGVy biwgbWF5YmUganV6aGUgY2FuIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiBv ciBjb3JyZWN0IG1lIGlmIGFueXRoaW5nIGlzIG1pc2xlYWRpbmcuDQoNClRo ZSBkaWZmZXJlbnQgcHJlY2lzaW9uIHRyeSB0byByZXNvbHZlIHRoZSBiZWxv dyBidWdzLCB0aGUgc2Vjb25kIHZsbSh3aXRoIGRpZmZlcmVudCBzaXplIG9m IGxvYWQgYnl0ZXMgY29tcGFyZWQgdG8gZmlyc3Qgb25lKQ0KaXMgZWxpbWlu YXRlZCBiZWNhdXNlIHZib29sOCBhbmQgdmJvb2wxNiBoYXZlIHRoZSBzYW1l IHByZWNpc2lvbiBzaXplLCBha2EgWzgsIDhdLg0KDQp2Ym9vbDhfdCB2MiA9 ICoodmJvb2w4X3QqKWluOw0KdmJvb2wxNl90IHY1ID0gKih2Ym9vbDE2X3Qq KWluOw0KKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjU7DQoqKHZib29s OF90Kikob3V0ICsgMTAwKSA9IHYyOw0KDQphZGRpICAgIGE0LGExLDEwMA0K dnNldHZsaSBhNSx6ZXJvLGU4LG0xLHRhLG1hDQphZGRpICAgIGExLGExLDIw MA0KdmxtLnYgICB2MjQsMChhMCkNCnZzbS52ICAgdjI0LDAoYTQpDQovLyBO ZWVkIG9uZSB2c2V0dmxpIGFuZCB2bG0udiBmb3IgY29ycmVjdG5lc3MgaGVy ZS4NCnZzbS52ICAgdjI0LDAoYTEpDQoNClBhbg0KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18NCkZyb206IFJpY2hhcmQgQmllbmVyIDxyZ3Vl bnRoZXJAc3VzZS5kZT4NClNlbnQ6IFdlZG5lc2RheSwgTWFyY2ggMSwgMjAy MyAyMDozMw0KVG86IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRp Zm9yZEBhcm0uY29tPg0KQ2M6IOebvCDmnY4gdmlhIEdjYy1wYXRjaGVzIDxn Y2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz47IOebvCDmnY4gPGluY2FybmF0aW9u LnAubGVlQG91dGxvb2suY29tPjsganV6aGUuemhvbmdAcml2YWkuYWkgPGp1 emhlLnpob25nQHJpdmFpLmFpPjsgcGFuMi5saSA8cGFuMi5saUBpbnRlbC5j b20+OyBLaXRvLmNoZW5nIDxraXRvLmNoZW5nQHNpZml2ZS5jb20+DQpTdWJq ZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wg bW9kZSBwcmVjaXNpb24gYWRqdXN0bWVudA0KDQpPbiBXZWQsIDEgTWFyIDIw MjMsIFJpY2hhcmQgU2FuZGlmb3JkIHdyb3RlOg0KDQo+IOebvCDmnY4gdmlh IEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4gd3JpdGVz Og0KPiA+IEp1c3QgaGF2ZSBhIHRlc3Qgd2l0aCB0aGUgYmVsb3cgY29kZSwg dGhlIFsweDQsIDB4NF0gdGVzdCBjb21lcyBmcm9tIFZOeDRCSS4gWW91IGNh biBub3RpY2UgdGhhdCB0aGUgbW9kZSBzaXplIGlzIHVuY2hhbmdlZC4NCj4g Pg0KPiA+IHByaW50ZiAoIiAgICBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3Ag KG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgIg0KPiA+ICAgIkJJVFNfUEVS X1VOSVQsICZtb2RlX3NpemVbRV8lc21vZGVdKTtcbiIsIG0tPm5hbWUsIG0t Pm5hbWUpOw0KPiA+DQo+ID4gVk54NEJJIEJlZm9yZSBwcmVjaXNpb24gWzB4 NCwgMHg0XSwgc2l6ZSBbMHg0LCAwXQ0KPiA+IFZOeDRCSSBBZnRlciBwcmVj aXNpb24gWzB4NCwgMHg0XSwgc2l6ZSBbMHg0LCAwXQ0KPg0KPiBZZWFoLCB0 aGUgcmVzdWx0IGlzIGV4cGVjdGVkIHRvIGJlIHVuY2hhbmdlZCBpZiB0aGUg ZGl2aXNpb24gZmFpbHMuDQo+IFRoYXQncyBhIGRlbGliZXJhdGUgcGFydCBv ZiB0aGUgaW50ZXJmYWNlLiAgVGhlIGNhbl8qIGZ1bmN0aW9ucw0KPiBzaG91 bGQgbmV2ZXIgYmUgdXNlZCB3aXRob3V0IHRlc3RpbmcgdGhlIGJvb2xlYW4g cmV0dXJuIHZhbHVlLg0KPg0KPiBCdXQgdGhpcyBwcmVjaXNpb24gb2YgWzQs NF0gZm9yIFZOeDRCSSBpcyBkaWZmZXJlbnQgZnJvbSB3aGF0IHlvdQ0KPiBs aXN0ZWQgYmVsb3cuICBMaWtlIEkgc2F5LCBpZiB0aGUgcHJlY2lzaW9uIHJl YWxseSBpcyBbNCw0XSwgYW5kIGlmDQo+IHRoZSBzaXplIHJlYWxseSBpcyBj ZWlsKFs0LDRdLzgpLCB0aGVuIEkgZG9uJ3QgdGhpbmsgd2UgY2FuIHJlcHJl c2VudA0KPiB0aGF0IHdpdGggY3VycmVudCBpbmZyYXN0cnVjdHVyZS4NCg0K VGhlIHNpemUgb2YgVk54NEJJIGlzICg0Kk4gKyA3KSAvIDggYnl0ZXMuICBJ IHN1cHBvc2Ugd2UgY291bGQgc2ltcGx5DQpub3Qgc3RvcmUgdGhlIHNpemUg aW4gYnl0ZXMgYnV0IG9ubHkgdGhlIHNpemUgaW4gYml0cyB0aGVuPw0KDQpJ IHNlZSB0aGUgcHJvYmxlbSwgYnV0IEkgYWxzbyBkb24ndCBzZWUgYSBnb29k IHNvbHV0aW9uIHNpbmNlDQpmb3IgVk54NEJJIHdpdGggTiA9PSAzIHdlIGhh dmUgb25lIGFuZCBhIGhhbGYgYnl0ZSBvZiBzdG9yYWdlLg0KDQpIb3cgZG8g bWVtb3J5IGFjY2VzcyBwYXR0ZXJucyB3b3JrIHdpdGggcG9seS1pbnQgc2l6 ZXM/DQoNCj4NCj4gVGhhbmtzLA0KPiBSaWNoYXJkDQo+DQo+ID4NCj4gPiBQ YW4NCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ IEZyb206IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBh cm0uY29tPg0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgTWFyY2ggMSwgMjAyMyAx OToxMQ0KPiA+IFRvOiDnm7wg5p2OIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBh dGNoZXNAZ2NjLmdudS5vcmc+DQo+ID4gQ2M6IGp1emhlLnpob25nQHJpdmFp LmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT47IHBhbjIubGkgPHBhbjIubGlA aW50ZWwuY29tPjsg55u8IOadjiA8aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9v ay5jb20+OyBLaXRvLmNoZW5nIDxraXRvLmNoZW5nQHNpZml2ZS5jb20+OyBy Z3VlbnRoZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPiA+IFN1YmplY3Q6IFJl OiBbUEFUQ0hdIFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHBy ZWNpc2lvbiBhZGp1c3RtZW50DQo+ID4NCj4gPiDnm7wg5p2OIHZpYSBHY2Mt cGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+IHdyaXRlczoNCj4g Pj4gVGhhbmsgeW91IGFsbCBmb3IgeW91ciBxdWljayByZXNwb25zZS4NCj4g Pj4NCj4gPj4gQXMganV6aGUgbWVudGlvbmVkLCB0aGUgbWVtb3J5IGFjY2Vz cyBvZiBSSVNDLVYgd2lsbCBiZSBhbHdheXMgYWxpZ25lZCB0byB0aGUgYnl0 ZXMgYm91bmRhcnkgd2l0aCB0aGUgY29tcGFjdCBtb2RlLCBha2EgY2VpbCh2 bCAvIDgpIGJ5dGVzIGZvciB2Ym9vbCouDQo+ID4NCj4gPiBPSywgdGhhbmtz IHRvIGJvdGggb2YgeW91LiAgVGhpcyBpcyB3aGF0IEknZCBoYXZlIGV4cGVj dGVkLg0KPiA+DQo+ID4gSW4gdGhhdCBjYXNlLCBJIHRoaW5rIGJvdGggdGhl IGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcCBhbmQgdGhlDQo+ID4gb3JpZ2lu YWwgcGF0Y2ggKHVzaW5nIHNpemVfb25lKSB3aWxsIGdpdmUgdGhlIHdyb25n IHJlc3VsdHMuDQo+ID4gVGhlcmUgaXNuJ3QgYSB3YXkgb2YgcmVwcmVzZW50 aW5nIGNlaWwoWzQsNF0vOCkgYXMgYSBwb2x5X2ludC4NCj4gPiBUaGUgcmVz dWx0IGlzICg0KzRYKS84IHdoZW4gWCBpcyBvZGQgYW5kICg4KzRYKS84IHdo ZW4gWCBpcyBldmVuLg0KPiA+DQo+ID4+IEFjdHVhbGx5LCB0aGUgZGF0YSBb NCw0XSBjb21lcyBmcm9tIHRoZSBzZWxmLXRlc3QsIHRoZSBSSVNDLVYgcHJl Y2lzaW9uIG1vZGUgYXMgYmVsb3cuDQo+ID4+DQo+ID4+IFZOeDY0QkkgcHJl Y2lzaW9uIFsweDQwLCAweDQwXS4NCj4gPj4gVk54MzJCSSBwcmVjaXNpb24g WzB4MjAsIDB4MjBdLg0KPiA+PiBWTngxNkJJIHByZWNpc2lvbiBbMHgxMCwg MHgxMF0uDQo+ID4+IFZOeDhCSSBwcmVjaXNpb24gWzB4OCwgMHg4XS4NCj4g Pj4gVk54NEJJIHByZWNpc2lvbiBbMHg4LCAweDhdLg0KPiA+PiBWTngyQkkg cHJlY2lzaW9uIFsweDgsIDB4OF0uDQo+ID4+IFZOeDFCSSBwcmVjaXNpb24g WzB4OCwgMHg4XS4NCj4gPg0KPiA+IEFoLCBPSy4gIFdoaWNoIHNlbGYtdGVz dCBjYXVzZXMgdGhpcz8NCj4gPg0KPiA+IFJpY2hhcmQNCj4gPg0KPiA+PiBU aGUgaW1wYWN0IG9mIGRhdGEgWzQsIDRdIHdpbGwgaW1wYWN0IHRoZSBnZW5t b2RlIHBhcnQsIHdlIGNhbm5vdCB3cml0ZSBsaWtlIGJlbG93IGFzIHRoZSBn Y2NfdW5yZWFjaGFibGUgd2lsbCBiZSBoaXR0ZW4uDQo+ID4+DQo+ID4+IGlm ICghY2FuX2Rpdl9hd2F5X2Zyb21femVyb19wIChtb2RlX3ByZWNpc2lvbltF XyVzbW9kZV0sIEJJVFNfUEVSX1VOSVQsICAmbW9kZV9zaXplW0VfJXNtb2Rl XSkpDQo+ID4+ICAgZ2NjX3VucmVhY2hhYmxlICgpOyAvLyBIaXQgb24gWzQs IDRdIG9mIHRoZSBzZWxmLXRlc3QuDQo+ID4+DQo+ID4+IFBhbg0KPiA+PiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+PiBGcm9tOiBq dXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWkuYWk+DQo+ ID4+IFNlbnQ6IFdlZG5lc2RheSwgTWFyY2ggMSwgMjAyMyAxODo0Ng0KPiA+ PiBUbzogcmljaGFyZC5zYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFy bS5jb20+OyBwYW4yLmxpIDxwYW4yLmxpQGludGVsLmNvbT4NCj4gPj4gQ2M6 IGluY2FybmF0aW9uLnAubGVlIDxpbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29r LmNvbT47IGdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz47 IEtpdG8uY2hlbmcgPGtpdG8uY2hlbmdAc2lmaXZlLmNvbT47IHJndWVudGhl ciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+ID4+IFN1YmplY3Q6IFJlOiBSZTog W1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9kZSBwcmVj aXNpb24gYWRqdXN0bWVudA0KPiA+Pg0KPiA+Pj4+IElzIGl0IHJpZ2h0IHRo YXQsIGZvciBSVlYsIGEgbG9hZCBvciBzdG9yZSBvZiBbNCw0XSB3aWxsIGFj Y2VzcyBbOCw4XQ0KPiA+Pj4+Yml0cywgZXZlbiB3aGVuIHRoYXQgbWVhbnMg YWNjZXNzaW5nIGZ1bGx5LXVudXNlZCBieXRlcz8gIEUuZy4gNCs0WA0KPiA+ Pj4+d2hlbiBYPTMgd291bGQgYmUgMTYgYml0cy8yIGJ5dGVzIG9mIHVzZWZ1 bCBkYXRhLCBidXQgYSBiaXRzaXplIG9mDQo+ID4+Pj44KzhYIHdvdWxkIGJl IDMyIGJpdHMvNCBieXRlcy4gIFNvIGEgc3RvcmUgb2YgWzgsOF0gZm9yIGEg cHJlY2lzaW9uDQo+ID4+Pj5vZiBbNCw0XSB3b3VsZCBzdG9yZSAyIGJ5dGVz IGJleW9uZCB0aGUgZW5kIG9mIHRoZSB1c2VmdWwgZGF0YSB3aGVuIFg9PTM/ DQo+ID4+DQo+ID4+IEhpLCBSaWNoYXJkLiBUaGFuayB5b3UgZm9yIGhlbHBp bmcgdXMuDQo+ID4+IE15IHVuZGVyc3RhbmRpbmcgb2YgUlZWIElTQToNCj4g Pj4NCj4gPj4gSW4gUlZWLCB3ZSBoYXZlIG1hc2sgbW9kZSAoVk54MUJJLCBW TngyQkksLi4uLmV0YyksIGRhdGEgbW9kZSAoVk54MVFJLFZOeDRRSSwgVk54 MkRJLC4uLmV0YykNCj4gPj4gRm9yIGRhdGEgbW9kZSwgd2UgZnVsbHkgYWNj ZXNzIHRoZSBkYXRhIGFuZCB3ZSBkb24ndCBoYXZlIHVudXNlZCBieXRlcywg c28gd2UgZG9uJ3QgbmVlZCB0byBhZGp1c3QgcHJlY2lzaW9uLg0KPiA+PiBI b3dldmVyLCBmb3IgbWFzayBtb2RlIHdlIGFjY2VzcyBtYXNrIGJpdCBpbiBj b21wYWN0IG1vZGVsIChzaW5jZSBlYWNoIG1hc2sgYml0IGZvciBjb3JyZXNw b25kaW5nIGVsZW1lbnQgYXJlIGNvbnNlY3V0aXZlKS4NCj4gPj4gZm9yIGV4 YW1wbGUsIGN1cnJlbnQgY29uZmlndXJhdGlvbjogVk54MUJJLCBWTngyQkks IFZOeDRCSSwgVk54OEJJLCB0aGVzZSA0IG1vZGVzIGhhdmUgc2FtZSBieXRl c2l6ZSAoMSwxKSAgYnV0IGRpZmZlcmVudCBiaXRzaXplLg0KPiA+Pg0KPiA+ PiBWTng4QkkgaXMgYWNjZXNzZWQgZnVsbHksIGJ1dCBWTng0QkkgaXMgb25s eSBhY2Nlc3NlZCAxLzIsIFZOeDJCSSAxLzQsIFZOeDFCSSAxLzggYnV0IGJ5 dGUgYWxpZ25tZW50IChJIGFtIG5vdCBzdXJlIHdoZXRoZXIgUlZWIHN1cHBv cnQgYml0IGFsaWdubWVudCwgSSBndWVzcyBpdCBjYW4gbm90KS4NCj4gPj4N Cj4gPj4gSWYgVk54OEJJIG9ubHkgb2NjdXB5IDEgYnl0ZSAoRGVwZW5kIG9u IG1hY2hpbmUgdmVjdG9yLWxlbmd0aCksIHNvIFZOeDJCSSxWTjRCSSwgVk54 MUJJLCBhcmUgMi84IGJ5dGUsIDQvOCBieXRlLCAxLzggYnl0ZXMuIEkgdGhp bmsgd2UgY2FuJ3QgYWNjZXNzIGluIGJpdCBhbGlnbm1lbnQuIHNvIHRoZXkg d2lsbCB0aGUgc2FtZSBpbiB0aGUgYWNjZXNzLg0KPiA+PiBIb3dldmVyLCBp ZiBWTng4Qkkgb2NjdXB0eSA4IGJ5dGUsIFdlbGwsIFZOeDJCSSxWTjRCSSwg Vk54MUJJIGFyZSAxYnl0ZSwgMmJ5dGVzLCA0Ynl0ZXMuIFRoZXkgYXJlIGFj Y2Vzc2luZyBkaWZmZXJlbnQgc2l6ZS4NCj4gPj4NCj4gPj4gVGhpcyBpcyBt eSBjb21wcmVoZW5zaW9uIG9mIFJWViBJU0EsIGZlZWwgZnJlZSB0byBjb3Jy ZWN0IG1lLg0KPiA+PiBUaGFua3MuDQo+ID4+DQo+ID4+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQo+ID4+IGp1emhlLnpob25nQHJpdmFp LmFpDQo+ID4+DQo+ID4+IEZyb206IFJpY2hhcmQgU2FuZGlmb3JkPG1haWx0 bzpyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPg0KPiA+PiBEYXRlOiAyMDIz LTAzLTAxIDE4OjExDQo+ID4+IFRvOiBMaVwsIFBhbjI8bWFpbHRvOnBhbjIu bGlAaW50ZWwuY29tPg0KPiA+PiBDQzog55u8IOadjjxtYWlsdG86aW5jYXJu YXRpb24ucC5sZWVAb3V0bG9vay5jb20+OyBpbmNhcm5hdGlvbi5wLmxlZS0t LSB2aWEgR2NjLXBhdGNoZXM8bWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5nbnUu b3JnPjsganV6aGUuemhvbmdcQHJpdmFpLmFpPG1haWx0bzpqdXpoZS56aG9u Z0ByaXZhaS5haT47IGtpdG8uY2hlbmdcQHNpZml2ZS5jb208bWFpbHRvOmtp dG8uY2hlbmdAc2lmaXZlLmNvbT47IHJndWVudGhlclxAc3VzZS5kZTxtYWls dG86cmd1ZW50aGVyQHN1c2UuZGU+DQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFU Q0hdIFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNpc2lv biBhZGp1c3RtZW50DQo+ID4+ICJMaSwgUGFuMiIgPHBhbjIubGlAaW50ZWwu Y29tPiB3cml0ZXM6DQo+ID4+PiBIaSBSaWNoYXJkIFNhbmRpZm9yZCwNCj4g Pj4+DQo+ID4+PiBKdXN0IHRyaWVkIHRoZSBvdmVybG9hZGVkIGNvbnN0YW50 IGRpdmlzb3JzIHdpdGggYmVsb3cgcHJpbnQgZGl2LCBpdCB3b3JrcyBhcyB5 b3UgbWVudGlvbmVkLCDvmIkhDQo+ID4+Pg0KPiA+Pj4gcHJpbnRmICgiICAg IGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcCAobW9kZV9wcmVjaXNpb25bRV8l c21vZGVdLCAiDQo+ID4+PiAgICAgICJCSVRTX1BFUl9VTklULCAmbW9kZV9z aXplW0VfJXNtb2RlXSk7XG4iLCBtLT5uYW1lLCBtLT5uYW1lKTsNCj4gPj4+ DQo+ID4+PiB0ZW1wbGF0ZTx1bnNpZ25lZCBpbnQgTiwgdHlwZW5hbWUgQ2Es IHR5cGVuYW1lIENiLCB0eXBlbmFtZSBDcT4NCj4gPj4+IGlubGluZSB0eXBl bmFtZSBpZl9ub25wb2x5PENiLCBib29sPjo6dHlwZQ0KPiA+Pj4gY2FuX2Rp dl9hd2F5X2Zyb21femVyb19wIChjb25zdCBwb2x5X2ludF9wb2Q8TiwgQ2E+ ICZhLA0KPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIENiIGIsDQo+ ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9seV9pbnRfcG9kPE4s IENxPiAqcXVvdGllbnQpDQo+ID4+PiB7DQo+ID4+PiAgIGlmICghY2FuX2Rp dl90cnVuY19wIChhLCBiLCBxdW90aWVudCkpDQo+ID4+PiAgICAgcmV0dXJu IGZhbHNlOw0KPiA+Pj4gICBpZiAobWF5YmVfbmUgKCpxdW90aWVudCAqIGIs IGEpKQ0KPiA+Pj4gICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg TjsgKytpKQ0KPiA+Pj4gICAgICAgcXVvdGllbnQtPmNvZWZmc1tpXSArPSAo cXVvdGllbnQtPmNvZWZmc1tpXSA8IDAgPyAtMSA6IDEpOw0KPiA+Pj4gICBy ZXR1cm4gdHJ1ZTsNCj4gPj4+IH0NCj4gPj4+DQo+ID4+PiBCdXQgSSBtYXkg aGF2ZSBhIHF1ZXN0aW9uIGFib3V0IHRoZSBvbmUgY2FzZSBhcyBiZWxvdy4N Cj4gPj4+DQo+ID4+PiBBc3N1bWU6DQo+ID4+PiBhID0gWzQsIDRdLCBiID0g OC4NCj4gPj4+DQo+ID4+PiBXaGVuIG1lZXQgY2FuX2Rpdl90cnVuY19wLCBp dCB3aWxsIGNoZWNrIGlmIHRoZSByZW1pbmRlciBpcyBjb25zdGFudCBvciBu b3QsIGFrYSBhLmNvZWZmc1tpXSAlIDggPT0gMCAoaSA+PSAxKS4gSWYgbm90 IGNvbnN0YW50IHJlbWluZGVyLCB0aGUgY2FuX2Rpdl90cnVuY19wIHdpbGwg ZG8gbm90aGluZyBhYm91dCBxdW90aWVudCBhbmQgcmV0dXJuIGZhbHNlLg0K PiA+Pj4NCj4gPj4+IFRodXMsIHdoZW4gYSA9IFs0LCA0XSBmb3IgY2FuX2Rp dl9hd2F5X2Zyb21femVyb19wLCB0aGUgb3V0cHV0ICpxdW90aWVudCB3aWxs IGJlIHVuY2hhbmdlZCwgYWthIHRoZSBtb2Rfc2l6ZVtFXyVzbW9kZV0gd2ls bCBiZSB1bmNoYW5nZWQgZm9yIHRoaXMgY2FzZS4gSG93ZXZlciwgdGhlIHVu ZGVybHlpbmcgbW9kZV9zaXplIHdpbGwgYWRqdXN0IGl0IHRvIHRoZSByZWFs IGJ5dGUgc2l6ZSwgYW5kIEkgYW0gbm90IHN1cmUgaWYgaXQgaXMgYnkgZGVz aWduIG9yIHJlcXVpcmVzIGFkZGl0aW9uYWwgaGFuZGxpbmcuDQo+ID4+DQo+ ID4+IElzIGl0IHJpZ2h0IHRoYXQsIGZvciBSVlYsIGEgbG9hZCBvciBzdG9y ZSBvZiBbNCw0XSB3aWxsIGFjY2VzcyBbOCw4XQ0KPiA+PiBiaXRzLCBldmVu IHdoZW4gdGhhdCBtZWFucyBhY2Nlc3NpbmcgZnVsbHktdW51c2VkIGJ5dGVz PyAgRS5nLiA0KzRYDQo+ID4+IHdoZW4gWD0zIHdvdWxkIGJlIDE2IGJpdHMv MiBieXRlcyBvZiB1c2VmdWwgZGF0YSwgYnV0IGEgYml0c2l6ZSBvZg0KPiA+ PiA4KzhYIHdvdWxkIGJlIDMyIGJpdHMvNCBieXRlcy4gIFNvIGEgc3RvcmUg b2YgWzgsOF0gZm9yIGEgcHJlY2lzaW9uDQo+ID4+IG9mIFs0LDRdIHdvdWxk IHN0b3JlIDIgYnl0ZXMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHVzZWZ1bCBk YXRhIHdoZW4gWD09Mz8NCj4gPj4NCj4gPj4gUmljaGFyZA0KPiA+Pg0KPiA+ Pj4gUGFuDQo+ID4+Pg0KPiA+Pj4gRnJvbTog55u8IOadjiA8aW5jYXJuYXRp b24ucC5sZWVAb3V0bG9vay5jb20+DQo+ID4+PiBTZW50OiBUdWVzZGF5LCBG ZWJydWFyeSAyOCwgMjAyMyA1OjU5IFBNDQo+ID4+PiBUbzogUmljaGFyZCBT YW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+OyBMaSwgUGFu MiA8cGFuMi5saUBpbnRlbC5jb20+DQo+ID4+PiBDYzogaW5jYXJuYXRpb24u cC5sZWUtLS0gdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZz47IGp1emhlLnpob25nQHJpdmFpLmFpOyBraXRvLmNoZW5nQHNpZml2 ZS5jb207IHJndWVudGhlckBzdXNlLmRlDQo+ID4+PiBTdWJqZWN0OiBSZTog W1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9kZSBwcmVj aXNpb24gYWRqdXN0bWVudA0KPiA+Pj4NCj4gPj4+IFVuZGVyc3Rvb2QsIHRo YW5rcyBmb3IgdGhlIGV4cGxhbmF0aW9ucyBhbmQgc3VnZ2VzdGlvbnMuIExl dCBtZSBoYXZlIGEgdHJ5IGFuZCBrZWVwIHlvdSBwb3N0ZWQuDQo+ID4+Pg0K PiA+Pj4gUGFuDQo+ID4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiA+Pj4gRnJvbTogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQu c2FuZGlmb3JkQGFybS5jb208bWFpbHRvOnJpY2hhcmQuc2FuZGlmb3JkQGFy bS5jb20+Pg0KPiA+Pj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgMjgsIDIw MjMgMTc6NTANCj4gPj4+IFRvOiBMaSwgUGFuMiA8cGFuMi5saUBpbnRlbC5j b208bWFpbHRvOnBhbjIubGlAaW50ZWwuY29tPj4NCj4gPj4+IENjOiDnm7wg 5p2OIDxpbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbTxtYWlsdG86aW5j YXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb20+PjsgaW5jYXJuYXRpb24ucC5s ZWUtLS0gdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9y ZzxtYWlsdG86Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+PjsganV6aGUuemhv bmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJpdmFpLmFpPiA8anV6 aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJpdmFpLmFp Pj47IGtpdG8uY2hlbmdAc2lmaXZlLmNvbTxtYWlsdG86a2l0by5jaGVuZ0Bz aWZpdmUuY29tPiA8a2l0by5jaGVuZ0BzaWZpdmUuY29tPG1haWx0bzpraXRv LmNoZW5nQHNpZml2ZS5jb20+Pjsgcmd1ZW50aGVyQHN1c2UuZGU8bWFpbHRv OnJndWVudGhlckBzdXNlLmRlPiA8cmd1ZW50aGVyQHN1c2UuZGU8bWFpbHRv OnJndWVudGhlckBzdXNlLmRlPj4NCj4gPj4+IFN1YmplY3Q6IFJlOiBbUEFU Q0hdIFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNpc2lv biBhZGp1c3RtZW50DQo+ID4+Pg0KPiA+Pj4gIkxpLCBQYW4yIiA8cGFuMi5s aUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlAaW50ZWwuY29tPj4gd3JpdGVz Og0KPiA+Pj4+IEhpIFJpY2hhcmQgU2FuZGlmb3JkLA0KPiA+Pj4+DQo+ID4+ Pj4gQWZ0ZXIgc29tZSBpbnZlc3RpZ2F0aW9uLCBJIGFtIG5vdCBzdXJlIGlm IGl0IGlzIHBvc3NpYmxlIHRvIG1ha2UgaXQgZ2VuZXJhbCB3aXRob3V0IGFu eSBjaGFuZ2VzIHRvIGV4YWN0X2Rpdi4gV2UgY2FuIGFkZCBvbmUgbWV0aG9k IGxpa2UgYmVsb3cgdG8gZ2V0IHRoZSB1bml0IHBvbHkgZm9yIGFsbCBwb3Nz aWJsZSBOLg0KPiA+Pj4+DQo+ID4+Pj4gdGVtcGxhdGU8dW5zaWduZWQgaW50 IE4sIHR5cGVuYW1lIENhPg0KPiA+Pj4+IGlubGluZSBQT0xZX0NPTlNUX1JF U1VMVCAoTiwgQ2EsIENhKQ0KPiA+Pj4+IG5vcm1hbGl6ZV90b191bml0IChj b25zdCBwb2x5X2ludF9wb2Q8TiwgQ2E+ICZhKQ0KPiA+Pj4+IHsNCj4gPj4+ PiAgIHR5cGVkZWYgUE9MWV9DT05TVF9DT0VGRiAoQ2EsIENhKSBDOw0KPiA+ Pj4+DQo+ID4+Pj4gICBwb2x5X2ludDxOLCBDPiBub3JtYWxpemVkID0gYTsN Cj4gPj4+Pg0KPiA+Pj4+ICAgaWYgKG5vcm1hbGl6ZWQuaXNfY29uc3RhbnQo KSkNCj4gPj4+PiAgICAgbm9ybWFsaXplZC5jb2VmZnNbMF0gPSAxOw0KPiA+ Pj4+ICAgZWxzZQ0KPiA+Pj4+ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g MDsgaSA8IE47IGkrKykNCj4gPj4+PiAgICAgICBQT0xZX1NFVF9DT0VGRiAo Qywgbm9ybWFsaXplZCwgaSwgMSk7DQo+ID4+Pj4NCj4gPj4+PiAgIHJldHVy biBub3JtYWxpemVkOw0KPiA+Pj4+IH0NCj4gPj4+Pg0KPiA+Pj4+IEFuZCB0 aGVuIGFkanVzdCB0aGUgZ2VubW9kZXMgbGlrZSBiZWxvdyB0byBjb25zdW1l IHRoZSB1bml0IHBvbHkuDQo+ID4+Pj4NCj4gPj4+PiAgICAgICBwcmludGYg KCIgICAgcG9seV91aW50MTYgdW5pdF9wb2x5ID0gIg0KPiA+Pj4+ICAgICAg ICAgICAgICAibm9ybWFsaXplX3RvX3VuaXQgKG1vZGVfcHJlY2lzaW9uW0Vf JXNtb2RlXSk7XG4iLCBtLT5uYW1lKTsNCj4gPj4+PiAgICAgICBwcmludGYg KCIgICAgaWYgKGtub3duX2x0IChtb2RlX3ByZWNpc2lvbltFXyVzbW9kZV0s ICINCj4gPj4+PiAgICAgICAgICAgICAgInVuaXRfcG9seSAqIEJJVFNfUEVS X1VOSVQpKVxuIiwgbS0+bmFtZSk7DQo+ID4+Pj4gICAgICAgcHJpbnRmICgi ICAgICAgbW9kZV9zaXplW0VfJXNtb2RlXSA9IHVuaXRfcG9seTtcbiIsIG0t Pm5hbWUpOw0KPiA+Pj4+DQo+ID4+Pj4gSSBhbSBub3Qgc3VyZSBpZiBpdCBp cyBhIGdvb2QgaWRlYSB0byBpbnRyb2R1Y2UgYWJvdmUgbm9ybWFsaXplIGNv ZGUgaW50byBleGFjdF9kaXYuIEdpdmVuIHRoZSBjb21tZW50IG9mIHRoZSBl eGFjdF9kaXYgaW5kaWNhdGVzIHRoYXQg4oCcLyogUmV0dXJuIEEgLyBCLCBn aXZlbiB0aGF0IEEgaXMga25vd24gdG8gYmUgYSBtdWx0aXBsZSBvZiBCLiAq L+KAnS4NCj4gPj4+DQo+ID4+PiBNeSBwb2ludCB3YXMgdGhhdCB3ZSBoYXZl IG11bHRpcGxlIHdheXMgb2YgZGl2aWRpbmcgcG9seV9pbnRzOg0KPiA+Pj4N Cj4gPj4+IC0gZXhhY3RfZGl2LCBmb3Igd2hlbiB0aGUgY2FsbGVyIGtub3dz IHRoYXQgdGhlIHJlc3VsdCBpcyBhbHdheXMgZXhhY3QNCj4gPj4+IC0gY2Fu X2Rpdl90cnVuY19wLCBmb3IgdHJ1bmNhdGluZyBkaXZpc2lvbiAocm91bmQg dG93YXJkcyAwKQ0KPiA+Pj4gLSBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3As IGZvciByb3VuZGluZyBhd2F5IGZyb20gMA0KPiA+Pj4gLSAuLi4NCj4gPj4+ DQo+ID4+PiBUaGlzIGlzIGxpa2UgaG93IHdlIGhhdmUgbXVsdGlwbGUgZGl2 aXNpb24gKl9FWFBScyBvbiB0cmVlcy4NCj4gPj4+DQo+ID4+PiBVbnRpbCBu b3csIGV4YWN0X2RpdiB3YXMgdGhlIGNvcnJlY3QgY2hvaWNlIGZvciBtb2Rl cyBiZWNhdXNlIHZlY3Rvcg0KPiA+Pj4gbW9kZXMgZGlkbid0IGhhdmUgcGFk ZGluZy4gIFdlJ3JlIG5vdyBjaGFuZ2luZyB0aGF0LCBzbyBteSBzdWdnZXN0 aW9uDQo+ID4+PiBpbiB0aGUgcmV2aWV3IHdhcyB0byBjaGFuZ2UgdGhlIGRp dmlzaW9uIG9wZXJhdGlvbiB0aGF0IHdlIHVzZS4NCj4gPj4+IFJhdGhlciB0 aGFuIHVzZSBleGFjdF9kaXYsIHdlIHNob3VsZCBub3cgdXNlIGNhbl9kaXZf YXdheV9mcm9tX3plcm9fcCwNCj4gPj4+IHdoaWNoIHdvdWxkIGhhdmUgdGhl IGVmZmVjdCBvZiByb3VuZGluZyB0aGUgcXVvdGllbnQgdXAuDQo+ID4+Pg0K PiA+Pj4gU29tZXRoaW5nIGxpa2U6DQo+ID4+Pg0KPiA+Pj4gICAgICAgaWYg KCFjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AgKG1vZGVfcHJlY2lzaW9uW0Vf JXNtb2RlXSwgQklUU19QRVJfVU5JVCwNCj4gPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmbW9kZV9zaXplW0VfJXNtb2RlXSkp DQo+ID4+PiAgICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCj4gPj4+DQo+ ID4+PiBCdXQgdGhpcyB3aWxsIHJlcXVpcmUgYSBuZXcgb3ZlcmxvYWQgb2Yg Y2FuX2Rpdl9hd2F5X2Zyb21femVyb19wLCBzaW5jZQ0KPiA+Pj4gdGhlIGV4 aXN0aW5nIG9uZSBpcyBmb3IgY29uc3RhbnQgcXVvdGllbnRzIHJhdGhlciB0 aGFuIGNvbnN0YW50IGRpdmlzb3JzLg0KPiA+Pj4NCj4gPj4+IFRoYW5rcywN Cj4gPj4+IFJpY2hhcmQNCj4gPj4+DQo+ID4+Pj4NCj4gPj4+PiBDb3VsZCB5 b3UgcGxlYXNlIGhlbHAgdG8gc2hhcmUgeW91ciBvcGluaW9uIGFib3V0IHRo aXMgZnJvbSB0aGUgZXhwZXJ04oCZcyBwZXJzcGVjdGl2ZSA/IFRoYW5rIHlv dSENCj4gPj4+Pg0KPiA+Pj4+IFBhbg0KPiA+Pj4+DQo+ID4+Pj4gRnJvbTog 55u8IOadjiA8aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb208bWFpbHRv OmluY2FybmF0aW9uLnAubGVlQG91dGxvb2suY29tPj4NCj4gPj4+PiBTZW50 OiBNb25kYXksIEZlYnJ1YXJ5IDI3LCAyMDIzIDExOjEzIFBNDQo+ID4+Pj4g VG86IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0u Y29tPG1haWx0bzpyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPj47IGluY2Fy bmF0aW9uLnAubGVlLS0tIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNA Z2NjLmdudS5vcmc8bWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPj4N Cj4gPj4+PiBDYzoganV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhl Lnpob25nQHJpdmFpLmFpPjsga2l0by5jaGVuZ0BzaWZpdmUuY29tPG1haWx0 bzpraXRvLmNoZW5nQHNpZml2ZS5jb20+OyByZ3VlbnRoZXJAc3VzZS5kZTxt YWlsdG86cmd1ZW50aGVyQHN1c2UuZGU+OyBMaSwgUGFuMiA8cGFuMi5saUBp bnRlbC5jb208bWFpbHRvOnBhbjIubGlAaW50ZWwuY29tPj4NCj4gPj4+PiBT dWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJv b2wgbW9kZSBwcmVjaXNpb24gYWRqdXN0bWVudA0KPiA+Pj4+DQo+ID4+Pj4g TmV2ZXIgbWluZCwgd2lzaCB5b3UgaGF2ZSBhIGdvb2QgaG9saWRheS4NCj4g Pj4+Pg0KPiA+Pj4+IFRoYW5rcyBmb3IgcG9pbnRpbmcgdGhpcyBvdXQsIHRo ZSBpZiBwYXJ0IGNhbm5vdCB0YWtlIGNhcmUgb2YgcG9seV9pbnQgd2l0aCBO ID4gMi4gQXMgSSB1bmRlcnN0YW5kLCB3ZSBuZWVkIHRvIG1ha2UgaXQgZ2Vu ZXJhbCBmb3IgYWxsIHRoZSBOIG9mIHBvbHlfaW50Lg0KPiA+Pj4+DQo+ID4+ Pj4gVGh1cyBJIHdvdWxkIGxpa2UgdG8gZG91YmxlIGNvbmZpcm0gd2l0aCB5 b3UgYWJvdXQgaG93IHRvIG1ha2UgaXQgZ2VuZXJhbC4gSSBzdXBwb3NlIHRo ZXJlIHdpbGwgYmUgYSBuZXcgZnVuY3Rpb24gY2FuX2Rpdl9hd2F5X2Zyb21f emVyb19wIHRvIHJlcGxhY2UgdGhlIGlmIChrbm93bl9sdCgsKSkgcGFydCBp biBnZW5tb2Rlcy5jYywgYW5kIGxlYXZlIGV4YWN0X2RpdiB1bmNoYW5nZWQo Y29uc2lkZXIgdGhlIHdvcmQgZXhhY3QsIEkgc3VwcG9zZSB3ZSBzaG91bGQg bm90IHRvdWNoIGhlcmUpLCByaWdodD8gVGhlbiB3ZSBzdGlsbCBuZWVkIG9u ZSBwb2x5X2ludCB3aXRoIGFsbCAxIGZvciBOIGFzIHRoZSByZXR1cm4gaWYg Y2FuX2Rpdl9hd2F5X2Zyb21femVyb19wIGlzIHRydWUuDQo+ID4+Pj4NCj4g Pj4+PiBUaGFua3MgYWdhaW4gZm9yIHlvdXIgcHJvZmVzc2lvbmFsIHN1Z2dl c3Rpb24sIGhhdmUgYSBuaWNlIGRheSwg75iJIQ0KPiA+Pj4+DQo+ID4+Pj4g UGFuDQo+ID4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N Cj4gPj4+PiBGcm9tOiBSaWNoYXJkIFNhbmRpZm9yZCA8cmljaGFyZC5zYW5k aWZvcmRAYXJtLmNvbTxtYWlsdG86cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNv bTxtYWlsdG86cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbSUzY21haWx0bzpy aWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPj4+DQo+ID4+Pj4gU2VudDogTW9u ZGF5LCBGZWJydWFyeSAyNywgMjAyMyAyMjoyNA0KPiA+Pj4+IFRvOiBpbmNh cm5hdGlvbi5wLmxlZS0tLSB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVz QGdjYy5nbnUub3JnPG1haWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzxt YWlsdG86Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmclM2NtYWlsdG86Z2NjLXBh dGNoZXNAZ2NjLmdudS5vcmc+Pj4NCj4gPj4+PiBDYzogaW5jYXJuYXRpb24u cC5sZWVAb3V0bG9vay5jb208bWFpbHRvOmluY2FybmF0aW9uLnAubGVlQG91 dGxvb2suY29tPG1haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNv bSUzY21haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbT4+IDxp bmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbTxtYWlsdG86aW5jYXJuYXRp b24ucC5sZWVAb3V0bG9vay5jb208bWFpbHRvOmluY2FybmF0aW9uLnAubGVl QG91dGxvb2suY29tJTNjbWFpbHRvOmluY2FybmF0aW9uLnAubGVlQG91dGxv b2suY29tPj4+OyBqdXpoZS56aG9uZ0ByaXZhaS5haTxtYWlsdG86anV6aGUu emhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJpdmFpLmFpJTNj bWFpbHRvOmp1emhlLnpob25nQHJpdmFpLmFpPj4gPGp1emhlLnpob25nQHJp dmFpLmFpPG1haWx0bzpqdXpoZS56aG9uZ0ByaXZhaS5haTxtYWlsdG86anV6 aGUuemhvbmdAcml2YWkuYWklM2NtYWlsdG86anV6aGUuemhvbmdAcml2YWku YWk+Pj47IGtpdG8uY2hlbmdAc2lmaXZlLmNvbTxtYWlsdG86a2l0by5jaGVu Z0BzaWZpdmUuY29tPG1haWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb20lM2Nt YWlsdG86a2l0by5jaGVuZ0BzaWZpdmUuY29tPj4gPGtpdG8uY2hlbmdAc2lm aXZlLmNvbTxtYWlsdG86a2l0by5jaGVuZ0BzaWZpdmUuY29tPG1haWx0bzpr aXRvLmNoZW5nQHNpZml2ZS5jb20lM2NtYWlsdG86a2l0by5jaGVuZ0BzaWZp dmUuY29tPj4+OyByZ3VlbnRoZXJAc3VzZS5kZTxtYWlsdG86cmd1ZW50aGVy QHN1c2UuZGU+IDxyZ3VlbnRoZXJAc3VzZS5kZTxtYWlsdG86cmd1ZW50aGVy QHN1c2UuZGU8bWFpbHRvOnJndWVudGhlckBzdXNlLmRlJTNjbWFpbHRvOnJn dWVudGhlckBzdXNlLmRlPj4+OyBwYW4yLmxpQGludGVsLmNvbTxtYWlsdG86 cGFuMi5saUBpbnRlbC5jb20+IDxwYW4yLmxpQGludGVsLmNvbTxtYWlsdG86 cGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIuDQogbGlAaW50ZWwuY29t JTNjbWFpbHRvOnBhbjIuLmxpQGludGVsLmNvbT4+Pg0KPiA+Pj4+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0hdIFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBt b2RlIHByZWNpc2lvbiBhZGp1c3RtZW50DQo+ID4+Pj4NCj4gPj4+PiBTb3Jy eSBmb3IgdGhlIHNsb3cgcmVwbHksIGJlZW4gYXdheSBmb3IgYSBjb3VwbGUg b2Ygd2Vla3MuDQo+ID4+Pj4NCj4gPj4+PiAiaW5jYXJuYXRpb24ucC5sZWUt LS0gdmlhIEdjYy1wYXRjaGVzIiA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc8 bWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPG1haWx0bzpnY2MtcGF0 Y2hlc0BnY2MuZ251Lm9yZyUzY21haWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZz4+PiB3cml0ZXM6DQo+ID4+Pj4+IEZyb206IFBhbiBMaSA8cGFuMi5s aUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlAaW50ZWwuY29tPG1haWx0bzpw YW4yLmxpQGludGVsLmNvbSUzY21haWx0bzpwYW4yLmxpQGludGVsLmNvbT4+ Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiAgICAgICAgRml4IHRoZSBidWcgb2YgdGhl IHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIHdpdGggdGhlIGFkanVzdG1lbnQu DQo+ID4+Pj4+ICAgICAgICBUaGUgYml0cyBzaXplIG9mIHZib29sKl90IHdp bGwgYmUgYWRqdXN0ZWQgdG8NCj4gPj4+Pj4gICAgICAgIFsxLCAyLCA0LCA4 LCAxNiwgMzIsIDY0XSBhY2NvcmRpbmcgdG8gdGhlIHJ2diBzcGVjIDEuMCBp c2EuIFRoZQ0KPiA+Pj4+PiAgICAgICAgYWRqdXN0ZWQgbW9kZSBwcmVjaXNv biBvZiB2Ym9vbCpfdCB3aWxsIGhlbHAgdW5kZXJseWluZyBwYXNzIHRvDQo+ ID4+Pj4+ICAgICAgICBtYWtlIHRoZSByaWdodCBkZWNpc2lvbiBmb3IgYm90 aCB0aGUgY29ycmVjdG5lc3MgYW5kIG9wdGltaXphdGlvbi4NCj4gPj4+Pj4N Cj4gPj4+Pj4gICAgICAgIEdpdmVuIGJlbG93IHNhbXBsZSBjb2RlOg0KPiA+ Pj4+PiAgICAgICAgdm9pZCB0ZXN0XzEoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkNCj4gPj4+Pj4gICAgICAgIHsNCj4g Pj4+Pj4gICAgICAgICAgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsN Cj4gPj4+Pj4gICAgICAgICAgdmJvb2wxNl90IHY1ID0gKih2Ym9vbDE2X3Qq KWluOw0KPiA+Pj4+PiAgICAgICAgICAqKHZib29sMTZfdCopKG91dCArIDIw MCkgPSB2NTsNCj4gPj4+Pj4gICAgICAgICAgKih2Ym9vbDhfdCopKG91dCAr IDEwMCkgPSB2MjsNCj4gPj4+Pj4gICAgICAgIH0NCj4gPj4+Pj4NCj4gPj4+ Pj4gICAgICAgIEJlZm9yZSB0aGUgcHJlY2lzaW9uIGFkanVzdG1lbnQ6DQo+ ID4+Pj4+ICAgICAgICBhZGRpICAgIGE0LGExLDEwMA0KPiA+Pj4+PiAgICAg ICAgdnNldHZsaSBhNSx6ZXJvLGU4LG0xLHRhLG1hDQo+ID4+Pj4+ICAgICAg ICBhZGRpICAgIGExLGExLDIwMA0KPiA+Pj4+PiAgICAgICAgdmxtLnYgICB2 MjQsMChhMCkNCj4gPj4+Pj4gICAgICAgIHZzbS52ICAgdjI0LDAoYTQpDQo+ ID4+Pj4+ICAgICAgICAvLyBOZWVkIG9uZSB2c2V0dmxpIGFuZCB2bG0udiBm b3IgY29ycmVjdG5lc3MgaGVyZS4NCj4gPj4+Pj4gICAgICAgIHZzbS52ICAg djI0LDAoYTEpDQo+ID4+Pj4+DQo+ID4+Pj4+ICAgICAgICBBZnRlciB0aGUg cHJlY2lzaW9uIGFkanVzdG1lbnQ6DQo+ID4+Pj4+ICAgICAgICBjc3JyICAg IHQwLHZsZW5iDQo+ID4+Pj4+ICAgICAgICBzbGxpICAgIHQxLHQwLDENCj4g Pj4+Pj4gICAgICAgIGNzcnIgICAgYTMsdmxlbmINCj4gPj4+Pj4gICAgICAg IHN1YiAgICAgc3Asc3AsdDENCj4gPj4+Pj4gICAgICAgIHNsbGkgICAgYTQs YTMsMQ0KPiA+Pj4+PiAgICAgICAgYWRkICAgICBhNCxhNCxzcA0KPiA+Pj4+ PiAgICAgICAgc3ViICAgICBhMyxhNCxhMw0KPiA+Pj4+PiAgICAgICAgdnNl dHZsaSBhNSx6ZXJvLGU4LG0xLHRhLG1hDQo+ID4+Pj4+ICAgICAgICBhZGRp ICAgIGEyLGExLDIwMA0KPiA+Pj4+PiAgICAgICAgdmxtLnYgICB2MjQsMChh MCkNCj4gPj4+Pj4gICAgICAgIHZzbS52ICAgdjI0LDAoYTMpDQo+ID4+Pj4+ ICAgICAgICBhZGRpICAgIGExLGExLDEwMA0KPiA+Pj4+PiAgICAgICAgdnNl dHZsaSBhNCx6ZXJvLGU4LG1mMix0YSxtYQ0KPiA+Pj4+PiAgICAgICAgY3Ny ciAgICB0MCx2bGVuYg0KPiA+Pj4+PiAgICAgICAgdmxtLnYgICB2MjUsMChh MykNCj4gPj4+Pj4gICAgICAgIHZzbS52ICAgdjI1LDAoYTIpDQo+ID4+Pj4+ ICAgICAgICBzbGxpICAgIHQxLHQwLDENCj4gPj4+Pj4gICAgICAgIHZzZXR2 bGkgYTUsemVybyxlOCxtMSx0YSxtYQ0KPiA+Pj4+PiAgICAgICAgdnNtLnYg ICB2MjQsMChhMSkNCj4gPj4+Pj4gICAgICAgIGFkZCAgICAgc3Asc3AsdDEN Cj4gPj4+Pj4gICAgICAgIGpyICAgICAgcmENCj4gPj4+Pj4NCj4gPj4+Pj4g ICAgICAgIEhvd2V2ZXIsIHRoZXJlIG1heSBiZSBzb21lIG9wdGltaXphdGlv biBvcHBvcnR1bmF0ZXMgYWZ0ZXINCj4gPj4+Pj4gICAgICAgIHRoZSBtb2Rl IHByZWNpc2lvbiBhZGp1c3RtZW50LiBJdCBjYW4gYmUgdG9rZW4gY2FyZSBv ZiBpbg0KPiA+Pj4+PiAgICAgICAgdGhlIFJJU0MtViBiYWNrZW5kIGluIHRo ZSB1bmRlcmx5aW5nIHNlcGFydGVkIFBSKHMpLg0KPiA+Pj4+Pg0KPiA+Pj4+ PiAgICAgICAgUFIgMTA4MTg1DQo+ID4+Pj4+ICAgICAgICBQUiAxMDg2NTQN Cj4gPj4+Pj4NCj4gPj4+Pj4gZ2NjL0NoYW5nZUxvZzoNCj4gPj4+Pj4NCj4g Pj4+Pj4gICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZiAo QURKVVNUX1BSRUNJU0lPTik6DQo+ID4+Pj4+ICAgICAgICAqIGNvbmZpZy9y aXNjdi9yaXNjdi5jYyAocmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uKToNCj4g Pj4+Pj4gICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LmggKHJpc2N2X3Zf YWRqdXN0X3ByZWNpc2lvbik6DQo+ID4+Pj4+ICAgICAgICAqIGdlbm1vZGVz LmNjIChBREpVU1RfUFJFQ0lTSU9OKToNCj4gPj4+Pj4gICAgICAgIChlbWl0 X21vZGVfYWRqdXN0bWVudHMpOg0KPiA+Pj4+Pg0KPiA+Pj4+PiBnY2MvdGVz dHN1aXRlL0NoYW5nZUxvZzoNCj4gPj4+Pj4NCj4gPj4+Pj4gICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0xLmM6IE5ldyB0ZXN0Lg0KPiA+ Pj4+PiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYzog TmV3IHRlc3QuDQo+ID4+Pj4+ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3Yv cHIxMDgxODUtMy5jOiBOZXcgdGVzdC4NCj4gPj4+Pj4gICAgICAgICogZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS00LmM6IE5ldyB0ZXN0Lg0KPiA+Pj4+ PiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYzogTmV3 IHRlc3QuDQo+ID4+Pj4+ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcHIx MDgxODUtNi5jOiBOZXcgdGVzdC4NCj4gPj4+Pj4gICAgICAgICogZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS03LmM6IE5ldyB0ZXN0Lg0KPiA+Pj4+PiAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTguYzogTmV3IHRl c3QuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IFBhbiBMaSA8 cGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlAaW50ZWwuY29tPG1h aWx0bzpwYW4yLmxpQGludGVsLmNvbSUzY21haWx0bzpwYW4yLmxpQGludGVs LmNvbT4+Pg0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4gIGdjYy9jb25maWcvcmlz Y3YvcmlzY3YtbW9kZXMuZGVmICAgICAgICAgICAgfCAgOCArKysNCj4gPj4+ Pj4gIGdjYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgICAgICAgICAgICAgICAg ICAgfCAxMiArKysrDQo+ID4+Pj4+ICBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LmggICAgICAgICAgICAgICAgICAgIHwgIDEgKw0KPiA+Pj4+PiAgZ2NjL2dl bm1vZGVzLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI1ICsr KysrKy0NCj4gPj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9wcjEwODE4NS0xLmMgfCA2OCArKysrKysrKysrKysrKysrKysNCj4gPj4+ Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0y LmMgfCA2OCArKysrKysrKysrKysrKysrKysNCj4gPj4+Pj4gIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0zLmMgfCA2OCArKysr KysrKysrKysrKysrKysNCj4gPj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS00LmMgfCA2OCArKysrKysrKysrKysrKysr KysNCj4gPj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS01LmMgfCA2OCArKysrKysrKysrKysrKysrKysNCj4gPj4+Pj4g IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS02LmMg fCA2OCArKysrKysrKysrKysrKysrKysNCj4gPj4+Pj4gIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS03LmMgfCA2OCArKysrKysr KysrKysrKysrKysNCj4gPj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9wcjEwODE4NS04LmMgfCA3NyArKysrKysrKysrKysrKysrKysr KysNCj4gPj4+Pj4gIDEyIGZpbGVzIGNoYW5nZWQsIDU5OCBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pDQo+ID4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTEu Yw0KPiA+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmMNCj4gPj4+Pj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cHIxMDgxODUtMy5jDQo+ID4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYw0KPiA+ Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS01LmMNCj4gPj4+Pj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgx ODUtNi5jDQo+ID4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYw0KPiA+Pj4+PiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS04LmMNCj4gPj4+Pj4NCj4gPj4+Pj4gZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVmIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYNCj4gPj4+Pj4gaW5kZXggZDUz MDVlZmE4YTYuLjExMGJkZGNlODUxIDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZg0KPiA+Pj4+PiArKysg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZg0KPiA+Pj4+PiBA QCAtNzIsNiArNzIsMTQgQEAgQURKVVNUX0JZVEVTSVpFIChWTngxNkJJLCBy aXNjdl92ZWN0b3JfY2h1bmtzICogcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rvcl9j aHVuayk7DQo+ID4+Pj4+ICBBREpVU1RfQllURVNJWkUgKFZOeDMyQkksIHJp c2N2X3ZlY3Rvcl9jaHVua3MgKiByaXNjdl9ieXRlc19wZXJfdmVjdG9yX2No dW5rKTsNCj4gPj4+Pj4gIEFESlVTVF9CWVRFU0laRSAoVk54NjRCSSwgcmlz Y3Zfdl9hZGp1c3RfbnVuaXRzIChWTng2NEJJbW9kZSwgOCkpOw0KPiA+Pj4+ Pg0KPiA+Pj4+PiArQURKVVNUX1BSRUNJU0lPTiAoVk54MUJJLCByaXNjdl92 X2FkanVzdF9wcmVjaXNpb24gKFZOeDFCSW1vZGUsIDEpKTsNCj4gPj4+Pj4g K0FESlVTVF9QUkVDSVNJT04gKFZOeDJCSSwgcmlzY3Zfdl9hZGp1c3RfcHJl Y2lzaW9uIChWTngyQkltb2RlLCAyKSk7DQo+ID4+Pj4+ICtBREpVU1RfUFJF Q0lTSU9OIChWTng0QkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54 NEJJbW9kZSwgNCkpOw0KPiA+Pj4+PiArQURKVVNUX1BSRUNJU0lPTiAoVk54 OEJJLCByaXNjdl92X2FkanVzdF9wcmVjaXNpb24gKFZOeDhCSW1vZGUsIDgp KTsNCj4gPj4+Pj4gK0FESlVTVF9QUkVDSVNJT04gKFZOeDE2QkksIHJpc2N2 X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MTZCSW1vZGUsIDE2KSk7DQo+ID4+ Pj4+ICtBREpVU1RfUFJFQ0lTSU9OIChWTngzMkJJLCByaXNjdl92X2FkanVz dF9wcmVjaXNpb24gKFZOeDMyQkltb2RlLCAzMikpOw0KPiA+Pj4+PiArQURK VVNUX1BSRUNJU0lPTiAoVk54NjRCSSwgcmlzY3Zfdl9hZGp1c3RfcHJlY2lz aW9uIChWTng2NEJJbW9kZSwgNjQpKTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiAg LyoNCj4gPj4+Pj4gICAgIHwgTW9kZSAgICAgICAgfCBNSU5fVkxFTj0zMiB8 IE1JTl9WTEVOPTMyIHwgTUlOX1ZMRU49NjQgfCBNSU5fVkxFTj02NCB8DQo+ ID4+Pj4+ICAgICB8ICAgICAgICAgICAgIHwgTE1VTCAgICAgICAgfCBTRVcv TE1VTCAgICB8IExNVUwgICAgICAgIHwgU0VXL0xNVUwgICAgfA0KPiA+Pj4+ PiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCj4gPj4+Pj4gaW5kZXggZGUzZTFm OTAzYzcuLmNiZTY2YzBlMzViIDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+ID4+Pj4+ICsrKyBiL2djYy9jb25m aWcvcmlzY3YvcmlzY3YuY2MNCj4gPj4+Pj4gQEAgLTEwMDMsNiArMTAwMywx OCBAQCByaXNjdl92X2FkanVzdF9udW5pdHMgKG1hY2hpbmVfbW9kZSBtb2Rl LCBpbnQgc2NhbGUpDQo+ID4+Pj4+ICAgIHJldHVybiBzY2FsZTsNCj4gPj4+ Pj4gIH0NCj4gPj4+Pj4NCj4gPj4+Pj4gKy8qIENhbGwgZnJvbSBBREpVU1Rf UFJFQ0lTSU9OIGluIHJpc2N2LW1vZGVzLmRlZi4gIFJldHVybiB0aGUgY29y cmVjdA0KPiA+Pj4+PiArICAgUFJFQ0lTSU9OIHNpemUgZm9yIGNvcnJlc3Bv bmRpbmcgbWFjaGluZV9tb2RlLiAgKi8NCj4gPj4+Pj4gKw0KPiA+Pj4+PiAr cG9seV9pbnQ2NA0KPiA+Pj4+PiArcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9u IChtYWNoaW5lX21vZGUgbW9kZSwgaW50IHNjYWxlKQ0KPiA+Pj4+PiArew0K PiA+Pj4+PiArICBpZiAocmlzY3Zfdl9leHRfdmVjdG9yX21vZGVfcCAobW9k ZSkpDQo+ID4+Pj4+ICsgICAgcmV0dXJuIHJpc2N2X3ZlY3Rvcl9jaHVua3Mg KiBzY2FsZTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICByZXR1cm4gc2NhbGU7 DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gIC8qIFJldHVybiB0 cnVlIGlmIFggaXMgYSB2YWxpZCBhZGRyZXNzIGZvciBtYWNoaW5lIG1vZGUg TU9ERS4gIElmIGl0IGlzLA0KPiA+Pj4+PiAgICAgZmlsbCBpbiBJTkZPIGFw cHJvcHJpYXRlbHkuICBTVFJJQ1RfUCBpcyB0cnVlIGlmIFJFR19PS19TVFJJ Q1QgaXMgaW4NCj4gPj4+Pj4gICAgIGVmZmVjdC4gICovDQo+ID4+Pj4+IGRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmggYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LmgNCj4gPj4+Pj4gaW5kZXggNWJjN2YyZjQ2N2Qu LjE1YjkzMTdhOGNlIDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LmgNCj4gPj4+Pj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi5oDQo+ID4+Pj4+IEBAIC0xMDI1LDYgKzEwMjUsNyBAQCBleHRl cm4gdW5zaWduZWQgcmlzY3Zfc3RhY2tfYm91bmRhcnk7DQo+ID4+Pj4+ICBl eHRlcm4gdW5zaWduZWQgcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rvcl9jaHVuazsN Cj4gPj4+Pj4gIGV4dGVybiBwb2x5X3VpbnQxNiByaXNjdl92ZWN0b3JfY2h1 bmtzOw0KPiA+Pj4+PiAgZXh0ZXJuIHBvbHlfaW50NjQgcmlzY3Zfdl9hZGp1 c3RfbnVuaXRzIChlbnVtIG1hY2hpbmVfbW9kZSwgaW50KTsNCj4gPj4+Pj4g K2V4dGVybiBwb2x5X2ludDY0IHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAo ZW51bSBtYWNoaW5lX21vZGUsIGludCk7DQo+ID4+Pj4+ICAvKiBUaGUgbnVt YmVyIG9mIGJpdHMgYW5kIGJ5dGVzIGluIGEgUlZWIHZlY3Rvci4gICovDQo+ ID4+Pj4+ICAjZGVmaW5lIEJJVFNfUEVSX1JJU0NWX1ZFQ1RPUiAocG9seV91 aW50MTYgKHJpc2N2X3ZlY3Rvcl9jaHVua3MgKiByaXNjdl9ieXRlc19wZXJf dmVjdG9yX2NodW5rICogOCkpDQo+ID4+Pj4+ICAjZGVmaW5lIEJZVEVTX1BF Ul9SSVNDVl9WRUNUT1IgKHBvbHlfdWludDE2IChyaXNjdl92ZWN0b3JfY2h1 bmtzICogcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rvcl9jaHVuaykpDQo+ID4+Pj4+ IGRpZmYgLS1naXQgYS9nY2MvZ2VubW9kZXMuY2MgYi9nY2MvZ2VubW9kZXMu Y2MNCj4gPj4+Pj4gaW5kZXggMmQ0MThmMDlhYWIuLjEyZjRlNjMzNWU2IDEw MDY0NA0KPiA+Pj4+PiAtLS0gYS9nY2MvZ2VubW9kZXMuY2MNCj4gPj4+Pj4g KysrIGIvZ2NjL2dlbm1vZGVzLmNjDQo+ID4+Pj4+IEBAIC0xMTQsNiArMTE0 LDcgQEAgc3RhdGljIHN0cnVjdCBtb2RlX2FkanVzdCAqYWRqX2FsaWdubWVu dDsNCj4gPj4+Pj4gIHN0YXRpYyBzdHJ1Y3QgbW9kZV9hZGp1c3QgKmFkal9m b3JtYXQ7DQo+ID4+Pj4+ICBzdGF0aWMgc3RydWN0IG1vZGVfYWRqdXN0ICph ZGpfaWJpdDsNCj4gPj4+Pj4gIHN0YXRpYyBzdHJ1Y3QgbW9kZV9hZGp1c3Qg KmFkal9mYml0Ow0KPiA+Pj4+PiArc3RhdGljIHN0cnVjdCBtb2RlX2FkanVz dCAqYWRqX3ByZWNpc2lvbjsNCj4gPj4+Pj4NCj4gPj4+Pj4gIC8qIE1vZGUg Y2xhc3Mgb3BlcmF0aW9ucy4gICovDQo+ID4+Pj4+ICBzdGF0aWMgZW51bSBt b2RlX2NsYXNzDQo+ID4+Pj4+IEBAIC04MTksNiArODIwLDcgQEAgbWFrZV92 ZWN0b3JfbW9kZSAoZW51bSBtb2RlX2NsYXNzIGJjbGFzcywNCj4gPj4+Pj4g ICNkZWZpbmUgQURKVVNUX05VTklUUyhNLCBYKSAgICBfQUREX0FESlVTVCAo bnVuaXRzLCBNLCBYLCBSQU5ET00sIFJBTkRPTSkNCj4gPj4+Pj4gICNkZWZp bmUgQURKVVNUX0JZVEVTSVpFKE0sIFgpICBfQUREX0FESlVTVCAoYnl0ZXNp emUsIE0sIFgsIFJBTkRPTSwgUkFORE9NKQ0KPiA+Pj4+PiAgI2RlZmluZSBB REpVU1RfQUxJR05NRU5UKE0sIFgpIF9BRERfQURKVVNUIChhbGlnbm1lbnQs IE0sIFgsIFJBTkRPTSwgUkFORE9NKQ0KPiA+Pj4+PiArI2RlZmluZSBBREpV U1RfUFJFQ0lTSU9OKE0sIFgpIF9BRERfQURKVVNUIChwcmVjaXNpb24sIE0s IFgsIFJBTkRPTSwgUkFORE9NKQ0KPiA+Pj4+PiAgI2RlZmluZSBBREpVU1Rf RkxPQVRfRk9STUFUKE0sIFgpICAgIF9BRERfQURKVVNUIChmb3JtYXQsIE0s IFgsIEZMT0FULCBGTE9BVCkNCj4gPj4+Pj4gICNkZWZpbmUgQURKVVNUX0lC SVQoTSwgWCkgIF9BRERfQURKVVNUIChpYml0LCBNLCBYLCBBQ0NVTSwgVUFD Q1VNKQ0KPiA+Pj4+PiAgI2RlZmluZSBBREpVU1RfRkJJVChNLCBYKSAgX0FE RF9BREpVU1QgKGZiaXQsIE0sIFgsIEZSQUNULCBVQUNDVU0pDQo+ID4+Pj4+ IEBAIC0xODI5LDcgKzE4MzEsMTUgQEAgZW1pdF9tb2RlX2FkanVzdG1lbnRz ICh2b2lkKQ0KPiA+Pj4+PiAgICAgICAgICAgICAgIiAobW9kZV9wcmVjaXNp b25bRV8lc21vZGVdLCBtb2RlX251bml0c1tFXyVzbW9kZV0pO1xuIiwNCj4g Pj4+Pj4gICAgICAgICAgICAgIG0tPm5hbWUsIG0tPm5hbWUpOw0KPiA+Pj4+ PiAgICAgICAgcHJpbnRmICgiICAgIG1vZGVfcHJlY2lzaW9uW0VfJXNtb2Rl XSA9IHBzICogb2xkX2ZhY3RvcjtcbiIsIG0tPm5hbWUpOw0KPiA+Pj4+PiAt ICAgICAgcHJpbnRmICgiICAgIG1vZGVfc2l6ZVtFXyVzbW9kZV0gPSBleGFj dF9kaXYgKG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwiDQo+ID4+Pj4+ICsg ICAgICAvKiBOb3JtYWxpemUgdGhlIHNpemUgdG8gMSBpZiBwcmVjaXNvbiBp cyBsZXNzIHRoYW4gQklUU19QRVJfVU5JVC4gICovDQo+ID4+Pj4+ICsgICAg ICBwcmludGYgKCIgICAgcG9seV91aW50MTYgc2l6ZV9vbmUgPSAiDQo+ID4+ Pj4+ICsgICAgICAgICAgICJtb2RlX3ByZWNpc2lvbltFXyVzbW9kZV0uaXNf Y29uc3RhbnQgKClcbiIsIG0tPm5hbWUpOw0KPiA+Pj4+PiArICAgICAgcHJp bnRmICgiICAgICAgPyBwb2x5X3VpbnQxNiAoMSwgMCkgOiBwb2x5X3VpbnQx NiAoMSwgMSk7XG4iKTsNCj4gPj4+Pg0KPiA+Pj4+IEhhdmUgeW91IHRyaWVk IHRoaXMgb24gYW4geDg2XzY0IHN5c3RlbT8gIEkgd291bGRuJ3QgZXhwZWN0 IGl0IHRvIHdvcmsNCj4gPj4+PiBiZWNhdXNlIG9mIHRoZToNCj4gPj4+Pg0K PiA+Pj4+ICAgU1RBVElDX0FTU0VSVCAoTiA+PSAyKTsNCj4gPj4+Pg0KPiA+ Pj4+IGluIHRoZSBwb2x5X3VpbnQxNiBjb25zdHJ1Y3Rvci4NCj4gPj4+Pg0K PiA+Pj4+PiArICAgICAgcHJpbnRmICgiICAgIGlmIChrbm93bl9sdCAobW9k ZV9wcmVjaXNpb25bRV8lc21vZGVdLCAiDQo+ID4+Pj4+ICsgICAgICAgICAg ICJzaXplX29uZSAqIEJJVFNfUEVSX1VOSVQpKVxuIiwgbS0+bmFtZSk7DQo+ ID4+Pj4+ICsgICAgICBwcmludGYgKCIgICAgICBtb2RlX3NpemVbRV8lc21v ZGVdID0gc2l6ZV9vbmU7XG4iLCBtLT5uYW1lKTsNCj4gPj4+Pj4gKyAgICAg IHByaW50ZiAoIiAgICBlbHNlXG4iKTsNCj4gPj4+Pj4gKyAgICAgIHByaW50 ZiAoIiAgICAgIG1vZGVfc2l6ZVtFXyVzbW9kZV0gPSBleGFjdF9kaXYgKG1v ZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwiDQo+ID4+Pj4NCj4gPj4+PiBOb3cg dGhhdCB0aGUgYXNzZXJ0IGltcGxpY2l0IGluIHRoZSBvcmlnaW5hbCBleGFj dF9kaXYgbm8gbG9uZ2VyIGhvbGRzLA0KPiA+Pj4+IEkgdGhpbmsgd2Ugc2hv dWxkIGluc3RlYWQgZ2VuZXJhbGlzZSBpdCB0byBjYW5fZGl2X2F3YXlfZnJv bV96ZXJvX3ANCj4gPj4+PiAod2hpY2ggd2lsbCBpbnZvbHZlIGRlZmluaW5n IGEgbmV3IG92ZXJsb2FkIG9mIGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcCku DQo+ID4+Pj4gSSB0aGluayB0aGF0IHdpbGwgZ2l2ZSB0aGUgc2FtZSByZXN1 bHQgYXMgdGhlIGNvZGUgYWJvdmUgZm9yIHRoZSBjYXNlcw0KPiA+Pj4+IHRo YXQgdGhlIGNvZGUgYWJvdmUgaGFuZGxlcy4gIEJ1dCBpdCBzaG91bGQgYmUg bW9yZSBnZW5lcmFsIHRvby4NCj4gPj4+Pg0KPiA+Pj4+IFRCSCwgSSdtIHN0 aWxsIHNjZXB0aWNhbCB0aGF0IHRoaXMgaXMgYWxsIHRoYXQgaXMgbmVlZGVk LiAgSXQgc2VlbXMNCj4gPj4+PiB1bmxpa2VseSB0aGF0IHdlJ3ZlIGJlZW4g c28gZ29vZCBhdCB3cml0aW5nIHZlY3RvciBzdXBwb3J0IGNvZGUgdGhhdA0K PiA+Pj4+IHdlJ3ZlIG1hZGUgaXQgd29yayBmb3IgcHJlY2lzaW9uIDwgYml0 c2l6ZSwgZGVzcGl0ZSB0aGF0IGJlaW5nIGFuDQo+ID4+Pj4gdW5zdXBwb3J0 ZWQgY29tYmluYXRpb24gdW50aWwgbm93LiAgQnV0IEkgZ3Vlc3Mgd2UgY2Fu IGZpeCBwcm9ibGVtcw0KPiA+Pj4+IG9uIGEgY2FzZS1ieS1jYXNlIGJhc2lz Lg0KPiA+Pj4+DQo+ID4+Pj4gVGhhbmtzLA0KPiA+Pj4+IFJpY2hhcmQNCj4g Pj4+Pg0KPiA+Pj4+PiAgICAgICAgICAgICAgIiBCSVRTX1BFUl9VTklUKTtc biIsIG0tPm5hbWUsIG0tPm5hbWUpOw0KPiA+Pj4+PiAgICAgICAgcHJpbnRm ICgiICAgIG1vZGVfbnVuaXRzW0VfJXNtb2RlXSA9IHBzO1xuIiwgbS0+bmFt ZSk7DQo+ID4+Pj4+ICAgICAgICBwcmludGYgKCIgICAgYWRqdXN0X21vZGVf bWFzayAoRV8lc21vZGUpO1xuIiwgbS0+bmFtZSk7DQo+ID4+Pj4+IEBAIC0x OTYzLDYgKzE5NzMsMTkgQEAgZW1pdF9tb2RlX2FkanVzdG1lbnRzICh2b2lk KQ0KPiA+Pj4+PiAgICAgIHByaW50ZiAoIlxuICAvKiAlczolZCAqL1xuICBS RUFMX01PREVfRk9STUFUIChFXyVzbW9kZSkgPSAlcztcbiIsDQo+ID4+Pj4+ ICAgICAgICAgICAgYS0+ZmlsZSwgYS0+bGluZSwgYS0+bW9kZS0+bmFtZSwg YS0+YWRqdXN0bWVudCk7DQo+ID4+Pj4+DQo+ID4+Pj4+ICsgIC8qIEFkanVz dCBwcmVjaXNpb24gdG8gdGhlIGFjdHVhbCBiaXRzIHNpemUuICAqLw0KPiA+ Pj4+PiArICBmb3IgKGEgPSBhZGpfcHJlY2lzaW9uOyBhOyBhID0gYS0+bmV4 dCkNCj4gPj4+Pj4gKyAgICBzd2l0Y2ggKGEtPm1vZGUtPmNsKQ0KPiA+Pj4+ PiArICAgICAgew0KPiA+Pj4+PiArICAgICBjYXNlIE1PREVfVkVDVE9SX0JP T0w6DQo+ID4+Pj4+ICsgICAgICAgcHJpbnRmICgiXG4gIC8qICVzOiVkLiAg Ki9cbiAgcHMgPSAlcztcbiIsIGEtPmZpbGUsIGEtPmxpbmUsDQo+ID4+Pj4+ ICsgICAgICAgICAgICAgICBhLT5hZGp1c3RtZW50KTsNCj4gPj4+Pj4gKyAg ICAgICBwcmludGYgKCIgIG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSA9IHBz O1xuIiwgYS0+bW9kZS0+bmFtZSk7DQo+ID4+Pj4+ICsgICAgICAgYnJlYWs7 DQo+ID4+Pj4+ICsgICAgIGRlZmF1bHQ6DQo+ID4+Pj4+ICsgICAgICAgYnJl YWs7DQo+ID4+Pj4+ICsgICAgICB9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gICAg cHV0cyAoIn0iKTsNCj4gPj4+Pj4gIH0NCj4gPj4+Pj4NCj4gPj4+Pj4gZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEw ODE4NS0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIx MDgxODUtMS5jDQo+ID4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+ Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi5lNzA5NjBjNWI2ZA0KPiA+Pj4+PiAt LS0gL2Rldi9udWxsDQo+ID4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS0xLmMNCj4gPj4+Pj4gQEAgLTAsMCAr MSw2OCBAQA0KPiA+Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4g Pj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMiIH0gKi8NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArI2luY2x1ZGUg InJpc2N2X3ZlY3Rvci5oIg0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ ID4+Pj4+ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0 cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsg ICAgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4gPj4+Pj4gKyAg ICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiA+Pj4+PiArDQo+ ID4+Pj4+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4g Pj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+ Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0 ZXN0X3Zib29sMV90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2wx X3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDRf dCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsg ICAgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAg ICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiArfQ0K PiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zib29s MV90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2wxX3QgdjEgPSAq KHZib29sMV90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoo dmJvb2w4X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgKih2Ym9v bDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAgICAqKHZib29s OF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiAr DQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zib29sMV90aGVuX3Zi b29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0 IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sMV90IHYxID0gKih2Ym9vbDFf dCopaW47DQo+ID4+Pj4+ICsgICAgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2 X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgKih2Ym9vbDFfdCop KG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAgICAqKHZib29sMTZfdCop KG91dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+ Pj4+PiArdm9pZA0KPiA+Pj4+PiArdGVzdF92Ym9vbDFfdGhlbl92Ym9vbDMy KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQp IHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWlu Ow0KPiA+Pj4+PiArICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90Kilp bjsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICAgICoodmJvb2wxX3QqKShvdXQg KyAxMDApID0gdjE7DQo+ID4+Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQg KyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g K3ZvaWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2w2NChpbnQ4 X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ ID4+Pj4+ICsgICAgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4g Pj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMTAw KSA9IHYxOw0KPiA+Pj4+PiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMjAw KSA9IHYyOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytb YS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1hfSA2 IH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccypl OCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEg fSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEg fSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0r XCl9IDEyIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c21cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhd WzAtOV0rXCl9IDE4IH0gfSAqLw0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmMNCj4g Pj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4gaW5kZXggMDAw MDAwMDAwMDAuLmRjYzdhNjQ0YTg4DQo+ID4+Pj4+IC0tLSAvZGV2L251bGwN Cj4gPj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3ByMTA4MTg1LTIuYw0KPiA+Pj4+PiBAQCAtMCwwICsxLDY4IEBADQo+ID4+ Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiA+Pj4+PiArLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAq Lw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9y LmgiDQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3Rf dmJvb2wyX3RoZW5fdmJvb2wxKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4 X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDJfdCB2 MSA9ICoodmJvb2wyX3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29sMV90IHYy ID0gKih2Ym9vbDFfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAq KHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoo dmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+ Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wyX3Ro ZW5fdmJvb2w0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0 cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDJfdCB2MSA9ICoodmJv b2wyX3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29sNF90IHYyID0gKih2Ym9v bDRfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sMl90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoodmJvb2w0X3Qq KShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4g Pj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2w4 KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQp IHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWlu Ow0KPiA+Pj4+PiArICAgIHZib29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47 DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsg MTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAy MDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3Zv aWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2wxNihpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+ Pj4+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4gPj4+ Pj4gKyAgICB2Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+ID4+ Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMTAwKSA9 IHYxOw0KPiA+Pj4+PiArICAgICoodmJvb2wxNl90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ ID4+Pj4+ICt0ZXN0X3Zib29sMl90aGVuX3Zib29sMzIoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiA+Pj4+PiAr ICAgIHZib29sMl90IHYxID0gKih2Ym9vbDJfdCopaW47DQo+ID4+Pj4+ICsg ICAgdmJvb2wzMl90IHYyID0gKih2Ym9vbDMyX3QqKWluOw0KPiA+Pj4+PiAr DQo+ID4+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsN Cj4gPj4+Pj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsN Cj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+ PiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDY0KGludDhfdCAqIHJlc3RyaWN0 IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2 Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPiA+Pj4+PiArICAgIHZi b29sNjRfdCB2MiA9ICoodmJvb2w2NF90KilpbjsNCj4gPj4+Pj4gKw0KPiA+ Pj4+PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ID4+ Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+ Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ID4+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRh LFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMq emVybyxccyplOCxccyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+ Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNl dHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+ Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNl dHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRh LFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMq emVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ID4+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zs bVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTIgfSB9ICov DQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTcg fSB9ICovDQo+ID4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMuYw0KPiA+Pj4+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiA+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uM2Fm MDUxM2UwMDYNCj4gPj4+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+Pj4+PiArKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5j DQo+ID4+Pj4+IEBAIC0wLDAgKzEsNjggQEANCj4gPj4+Pj4gKy8qIHsgZGct ZG8gY29tcGlsZSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIiB9ICovDQo+ID4+Pj4+ICsN Cj4gPj4+Pj4gKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCj4gPj4+Pj4g Kw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+PiArdGVzdF92Ym9vbDRfdGhlbl92 Ym9vbDEoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0 IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sNF90IHYxID0gKih2Ym9vbDRf dCopaW47DQo+ID4+Pj4+ICsgICAgdmJvb2wxX3QgdjIgPSAqKHZib29sMV90 KilpbjsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICAgICoodmJvb2w0X3QqKShv dXQgKyAxMDApID0gdjE7DQo+ID4+Pj4+ICsgICAgKih2Ym9vbDFfdCopKG91 dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+ PiArdm9pZA0KPiA+Pj4+PiArdGVzdF92Ym9vbDRfdGhlbl92Ym9vbDIoaW50 OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0K PiA+Pj4+PiArICAgIHZib29sNF90IHYxID0gKih2Ym9vbDRfdCopaW47DQo+ ID4+Pj4+ICsgICAgdmJvb2wyX3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4g Pj4+Pj4gKw0KPiA+Pj4+PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAxMDAp ID0gdjE7DQo+ID4+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDIwMCkg PSB2MjsNCj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZA0K PiA+Pj4+PiArdGVzdF92Ym9vbDRfdGhlbl92Ym9vbDgoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiA+Pj4+PiAr ICAgIHZib29sNF90IHYxID0gKih2Ym9vbDRfdCopaW47DQo+ID4+Pj4+ICsg ICAgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4gPj4+Pj4gKw0K PiA+Pj4+PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ ID4+Pj4+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDIwMCkgPSB2MjsNCj4g Pj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+PiAr dGVzdF92Ym9vbDRfdGhlbl92Ym9vbDE2KGludDhfdCAqIHJlc3RyaWN0IGlu LCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9v bDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29s MTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4gPj4+Pj4gKw0KPiA+Pj4+ PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ID4+Pj4+ ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3Rf dmJvb2w0X3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50 OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2w0X3Qg djEgPSAqKHZib29sNF90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDMyX3Qg djIgPSAqKHZib29sMzJfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAg ICAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiArICAg ICoodmJvb2wzMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiArfQ0K PiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zib29s NF90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAq IHJlc3RyaWN0IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sNF90IHYxID0g Kih2Ym9vbDRfdCopaW47DQo+ID4+Pj4+ICsgICAgdmJvb2w2NF90IHYyID0g Kih2Ym9vbDY0X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgKih2 Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAgICAqKHZi b29sNjRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4gK30NCj4gPj4+ Pj4gKw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxc cyptMixccyp0YSxccyptYX0gNiB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxz Km00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1b MC05XSssXHMqemVybyxccyplOCxccyptMSxccyp0YSxccyptYX0gMSB9IH0g Ki8NCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1b MC05XSssXHMqemVybyxccyplOCxccyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxz Km1mOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxtXC52XHMrdlswLTld KyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4gPj4+Pj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNtXC52XHMr dlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxNiB9IH0gKi8NCj4gPj4+ Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9wcjEwODE4NS00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcHIxMDgxODUtNC5jDQo+ID4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi5lYTNjMzYwZDc1Ng0KPiA+ Pj4+PiAtLS0gL2Rldi9udWxsDQo+ID4+Pj4+ICsrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS00LmMNCj4gPj4+Pj4gQEAg LTAsMCArMSw2OCBAQA0KPiA+Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCj4gPj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3Yg LW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArI2lu Y2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2 b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sMShpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+ Pj4+ICsgICAgdmJvb2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4gPj4+ Pj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPiA+Pj4+ PiArDQo+ID4+Pj4+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2 MTsNCj4gPj4+Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMjAwKSA9IHYy Ow0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+ Pj4+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmlj dCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAg dmJvb2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4gPj4+Pj4gKyAgICB2 Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+ Pj4+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+ Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+ PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0 X3Zib29sOF90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50 OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2w4X3Qg djEgPSAqKHZib29sOF90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDRfdCB2 MiA9ICoodmJvb2w0X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAg Kih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAgICAq KHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiArfQ0KPiA+ Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zib29sOF90 aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sOF90IHYxID0gKih2 Ym9vbDhfdCopaW47DQo+ID4+Pj4+ICsgICAgdmJvb2wxNl90IHYyID0gKih2 Ym9vbDE2X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgKih2Ym9v bDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAgICAqKHZib29s MTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4gK30NCj4gPj4+Pj4g Kw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+PiArdGVzdF92Ym9vbDhfdGhlbl92 Ym9vbDMyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmlj dCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4 X3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wz Ml90KilpbjsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICAgICoodmJvb2w4X3Qq KShvdXQgKyAxMDApID0gdjE7DQo+ID4+Pj4+ICsgICAgKih2Ym9vbDMyX3Qq KShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4g Pj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2w4X3RoZW5fdmJvb2w2 NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0 KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2w4X3QgdjEgPSAqKHZib29sOF90Kilp bjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCop aW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sOF90Kikob3V0 ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoodmJvb2w2NF90Kikob3V0 ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2 bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxz Km1hfSA2IH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVy byxccyplOCxccyptMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhd WzAtOV0rXCl9IDEyIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c21cLnZccyt2WzAtOV0rLFxzKjBc KFthLXhdWzAtOV0rXCl9IDE1IH0gfSAqLw0KPiA+Pj4+PiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS01 LmMNCj4gPj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4gaW5k ZXggMDAwMDAwMDAwMDAuLjlmYzY1OWQyNDAyDQo+ID4+Pj4+IC0tLSAvZGV2 L251bGwNCj4gPj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3ByMTA4MTg1LTUuYw0KPiA+Pj4+PiBAQCAtMCwwICsxLDY4IEBA DQo+ID4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiA+Pj4+PiAr LyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1P MyIgfSAqLw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4g K3Rlc3RfdmJvb2wxNl90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJv b2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPiA+Pj4+PiArICAgIHZi b29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+ Pj4gKyAgICAqKHZib29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+ Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+ PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0 X3Zib29sMTZfdGhlbl92Ym9vbDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGlu dDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sMTZf dCB2MSA9ICoodmJvb2wxNl90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDJf dCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsg ICAgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ID4+Pj4+ICsg ICAgKih2Ym9vbDJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4gK30N Cj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+PiArdGVzdF92Ym9v bDE2X3RoZW5fdmJvb2w0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3Qg KiByZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjEg PSAqKHZib29sMTZfdCopaW47DQo+ID4+Pj4+ICsgICAgdmJvb2w0X3QgdjIg PSAqKHZib29sNF90KilpbjsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICAgICoo dmJvb2wxNl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoo dmJvb2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+ Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wxNl90 aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVz dHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2wxNl90IHYxID0gKih2 Ym9vbDE2X3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29sOF90IHYyID0gKih2 Ym9vbDhfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZib29s MTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAgICAqKHZib29s OF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiAr DQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zib29sMTZfdGhlbl92 Ym9vbDMyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmlj dCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjEgPSAqKHZib29s MTZfdCopaW47DQo+ID4+Pj4+ICsgICAgdmJvb2wzMl90IHYyID0gKih2Ym9v bDMyX3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgKih2Ym9vbDE2 X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ID4+Pj4+ICsgICAgKih2Ym9vbDMy X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsN Cj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zi b29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0 IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sMTZfdCB2MSA9ICoodmJvb2wx Nl90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZib29s NjRfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sMTZf dCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAgICAqKHZib29sNjRf dCopKG91dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0K PiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIs XHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTld Kyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K PiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxz KnRhLFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSss XHMqemVybyxccyplOCxccyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mOCxc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxtXC52XHMrdlswLTldKyxccyow XChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNtXC52XHMrdlswLTld KyxccyowXChbYS14XVswLTldK1wpfSAxNCB9IH0gKi8NCj4gPj4+Pj4gZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEw ODE4NS02LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIx MDgxODUtNi5jDQo+ID4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+ Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi45ODI3NWU1MjY3ZA0KPiA+Pj4+PiAt LS0gL2Rldi9udWxsDQo+ID4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS02LmMNCj4gPj4+Pj4gQEAgLTAsMCAr MSw2OCBAQA0KPiA+Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4g Pj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMiIH0gKi8NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArI2luY2x1ZGUg InJpc2N2X3ZlY3Rvci5oIg0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ ID4+Pj4+ICt0ZXN0X3Zib29sMzJfdGhlbl92Ym9vbDEoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiA+Pj4+PiAr ICAgIHZib29sMzJfdCB2MSA9ICoodmJvb2wzMl90KilpbjsNCj4gPj4+Pj4g KyAgICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPiA+Pj4+PiAr DQo+ID4+Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAxMDApID0gdjE7 DQo+ID4+Pj4+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsN Cj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+ PiArdGVzdF92Ym9vbDMyX3RoZW5fdmJvb2wyKGludDhfdCAqIHJlc3RyaWN0 IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2 Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+ID4+Pj4+ICsgICAg dmJvb2wyX3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4gPj4+Pj4gKw0KPiA+ Pj4+PiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+ Pj4+PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+ Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rl c3RfdmJvb2wzMl90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2wz Ml90IHYxID0gKih2Ym9vbDMyX3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29s NF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g KyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4g KyAgICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiAr fQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zi b29sMzJfdGhlbl92Ym9vbDgoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhf dCAqIHJlc3RyaWN0IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sMzJfdCB2 MSA9ICoodmJvb2wzMl90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDhfdCB2 MiA9ICoodmJvb2w4X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAg Kih2Ym9vbDMyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ID4+Pj4+ICsgICAg Kih2Ym9vbDhfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4gK30NCj4g Pj4+Pj4gKw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+PiArdGVzdF92Ym9vbDMy X3RoZW5fdmJvb2wxNihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2wzMl90IHYxID0g Kih2Ym9vbDMyX3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29sMTZfdCB2MiA9 ICoodmJvb2wxNl90KilpbjsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICAgICoo dmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoo dmJvb2wxNl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiArfQ0KPiA+ Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zib29sMzJf dGhlbl92Ym9vbDY0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiBy ZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjEgPSAq KHZib29sMzJfdCopaW47DQo+ID4+Pj4+ICsgICAgdmJvb2w2NF90IHYyID0g Kih2Ym9vbDY0X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgKih2 Ym9vbDMyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ID4+Pj4+ICsgICAgKih2 Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+ Pj4+ICsNCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbWY0LFxzKnRhLFxzKm1hfSA2IH0gfSAqLw0KPiA+Pj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxccyp0YSxccyptYX0gMSB9 IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14 XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0g fSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxc cyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0g fSAqLw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxc cyptZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZsbVwudlxzK3ZbMC05 XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTIgfSB9ICovDQo+ID4+Pj4+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzbVwudlxz K3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTMgfSB9ICovDQo+ID4+ Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcHIxMDgxODUtNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3ByMTA4MTg1LTcuYw0KPiA+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uOGY2ZjBiMTFmMDkNCj4g Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+Pj4+PiArKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNy5jDQo+ID4+Pj4+IEBA IC0wLDAgKzEsNjggQEANCj4gPj4+Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQo+ID4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIiB9ICovDQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyNp bmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCj4gPj4+Pj4gKw0KPiA+Pj4+PiAr dm9pZA0KPiA+Pj4+PiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2wxKGludDhf dCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4g Pj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ ID4+Pj4+ICsgICAgdmJvb2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4g Pj4+Pj4gKw0KPiA+Pj4+PiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMTAw KSA9IHYxOw0KPiA+Pj4+PiArICAgICoodmJvb2wxX3QqKShvdXQgKyAyMDAp ID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQN Cj4gPj4+Pj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sMihpbnQ4X3QgKiBy ZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ ICsgICAgdmJvb2w2NF90IHYxID0gKih2Ym9vbDY0X3QqKWluOw0KPiA+Pj4+ PiArICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47DQo+ID4+Pj4+ ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sNjRfdCopKG91dCArIDEwMCkgPSB2 MTsNCj4gPj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYy Ow0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+ Pj4+ICt0ZXN0X3Zib29sNjRfdGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJp Y3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiA+Pj4+PiArICAg IHZib29sNjRfdCB2MSA9ICoodmJvb2w2NF90KilpbjsNCj4gPj4+Pj4gKyAg ICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPiA+Pj4+PiArDQo+ ID4+Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ ID4+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4g Pj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+PiAr dGVzdF92Ym9vbDY0X3RoZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGlu LCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9v bDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ID4+Pj4+ICsgICAgdmJv b2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4gPj4+Pj4gKw0KPiA+Pj4+ PiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+ PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3Rf dmJvb2w2NF90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGlu dDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sNjRf dCB2MSA9ICoodmJvb2w2NF90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDE2 X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g KyAgICAqKHZib29sNjRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4g KyAgICAqKHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4g K30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+PiArdGVzdF92 Ym9vbDY0X3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50 OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2w2NF90 IHYxID0gKih2Ym9vbDY0X3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29sMzJf dCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiAr ICAgICoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiAr ICAgICoodmJvb2wzMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiAr fQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gNiB9IH0gKi8NCj4gPj4+Pj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccypt YX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccypt YX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiA+Pj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2bG1cLnZc cyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDEyIH0gfSAqLw0KPiA+ Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c21cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDEyIH0gfSAq Lw0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3ByMTA4MTg1LTguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS04LmMNCj4gPj4+Pj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAuLmQ5Njk1OWRk MDY0DQo+ID4+Pj4+IC0tLSAvZGV2L251bGwNCj4gPj4+Pj4gKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTguYw0KPiA+ Pj4+PiBAQCAtMCwwICsxLDc3IEBADQo+ID4+Pj4+ICsvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KPiA+Pj4+PiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiA+Pj4+PiArDQo+ID4+ Pj4+ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ID4+Pj4+ICsNCj4g Pj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2wx KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQp IHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWlu Ow0KPiA+Pj4+PiArICAgIHZib29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47 DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsg MTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoodmJvb2wxX3QqKShvdXQgKyAy MDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3Zv aWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2wyKGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gPj4+ Pj4gKyAgICB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPiA+Pj4+ PiArICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47DQo+ID4+Pj4+ ICsNCj4gPj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYx Ow0KPiA+Pj4+PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAyMDApID0gdjI7 DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+ Pj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2w0KGludDhfdCAqIHJlc3RyaWN0 IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2 Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPiA+Pj4+PiArICAgIHZi b29sNF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+ Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+ PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3Rf dmJvb2w4X3RoZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4 X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDhfdCB2 MSA9ICoodmJvb2w4X3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29sOF90IHYy ID0gKih2Ym9vbDhfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAq KHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoo dmJvb2w4X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+ Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQNCj4gPj4+Pj4gK3Rlc3RfdmJvb2wxNl90 aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkgew0KPiA+Pj4+PiArICAgIHZib29sMTZfdCB2MSA9ICoo dmJvb2wxNl90KilpbjsNCj4gPj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjIgPSAq KHZib29sMTZfdCopaW47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAqKHZi b29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gPj4+Pj4gKyAgICAqKHZi b29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gPj4+Pj4gK30NCj4gPj4+ Pj4gKw0KPiA+Pj4+PiArdm9pZA0KPiA+Pj4+PiArdGVzdF92Ym9vbDMyX3Ro ZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVz dHJpY3Qgb3V0KSB7DQo+ID4+Pj4+ICsgICAgdmJvb2wzMl90IHYxID0gKih2 Ym9vbDMyX3QqKWluOw0KPiA+Pj4+PiArICAgIHZib29sMzJfdCB2MiA9ICoo dmJvb2wzMl90KilpbjsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICAgICoodmJv b2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiA+Pj4+PiArICAgICoodmJv b2wzMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+ PiArDQo+ID4+Pj4+ICt2b2lkDQo+ID4+Pj4+ICt0ZXN0X3Zib29sNjRfdGhl bl92Ym9vbDY0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0 cmljdCBvdXQpIHsNCj4gPj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjEgPSAqKHZi b29sNjRfdCopaW47DQo+ID4+Pj4+ICsgICAgdmJvb2w2NF90IHYyID0gKih2 Ym9vbDY0X3QqKWluOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgKih2Ym9v bDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ID4+Pj4+ICsgICAgKih2Ym9v bDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ ICsNCj4gPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAq Lw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt Mixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+ID4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1m Mixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAq Lw0KPiA+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt ZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ID4+Pj4+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZsbVwudlxzK3ZbMC05XSss XHMqMFwoW2EteF1bMC05XStcKX0gNyB9IH0gKi8NCj4gPj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNtXC52XHMrdlsw LTldKyxccyowXChbYS14XVswLTldK1wpfSAxNCB9IH0gKi8NCj4NCg0KLS0N ClJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NClNVU0UgU29m dHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSCwgRnJhbmtlbnN0cmFzc2Ug MTQ2LCA5MDQ2MSBOdWVybmJlcmcsDQpHZXJtYW55OyBHRjogSXZvIFRvdGV2 LCBBbmRyZXcgTXllcnMsIEFuZHJldyBNY0RvbmFsZCwgQm91ZGllbiBNb2Vy bWFuOw0KSFJCIDM2ODA5IChBRyBOdWVybmJlcmcpDQo= --_000_BYAPR04MB482477F0A7739A9FABBD2FD6B7AD9BYAPR04MB4824namp_--