From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70071.outbound.protection.outlook.com [40.107.7.71]) by sourceware.org (Postfix) with ESMTPS id 9FB0E395182C for ; Thu, 1 Jul 2021 07:04:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9FB0E395182C Received: from AM6P192CA0015.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:83::28) by AS8PR08MB6758.eurprd08.prod.outlook.com (2603:10a6:20b:39a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.23; Thu, 1 Jul 2021 07:04:22 +0000 Received: from AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:83:cafe::60) by AM6P192CA0015.outlook.office365.com (2603:10a6:209:83::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.21 via Frontend Transport; Thu, 1 Jul 2021 07:04:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT057.mail.protection.outlook.com (10.152.17.44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.22 via Frontend Transport; Thu, 1 Jul 2021 07:04:21 +0000 Received: ("Tessian outbound 1763b1d84bc3:v97"); Thu, 01 Jul 2021 07:04:21 +0000 X-CR-MTA-TID: 64aa7808 Received: from 5031977833f3.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id BB42BFD0-A250-4422-B1E5-66AB9B6204C8.1; Thu, 01 Jul 2021 07:04:10 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5031977833f3.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 01 Jul 2021 07:04:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ieA6MGuRg7kG+pUwibH/652EiBxQfGlbITXWlnFFn9PPiNqFdaguohbqhZeOi0ZlONK0g50coaJHvYstxpi7daKe4bzyEzDqH8xyQ1d56z83/dekc/seL9mcBxjqTNKDIO9zUpGF7kq1ZvBw/iRZU1wkMJvftVKcGqt0IYvnS77cf0rZltn1fQC7BU4oyMBP60hgJ/pHteih9w3okedVwpgWJqLF771Io5R9xCBQ0TKR7KFbbygtLSD+fa87oDRA2KetheemdGKjIl0EdfPyyQLI5/BVnSfuWQIvI6PSkCE6zpQgROWdjwKXjIHMG+5xLVhgk36wUX7wOgx7SxAIAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=efNG88JLVeFGaLrxGAlb9Wthy10l47ICWipOPtdSqlE=; b=ZgYzqwh2F5GJk2KsmUn85dTSMfDc+vIlcwpUP36Ow2rE72SP69BbvfDGdcUxv1wSEcU/gJQhbJqQAJ9RTokyUbXUMo6OE8+WcU4Ty7PBcs+/kjE/oYHhKHk45VDdXmLGDtfNAAkT4OtoEis06/EIa1iEcdIxHfjNDChmgjK00BqHn2xNWIZQskWyEkp559yAMA5uQKpcFTL82qM09qyH39JaOwVQRRmb7E7rlSEgTrNAPiNFbdLgrY3TO2/7cOfs1k2jXVZwHnfZxy/rOjYJM1ncR8q3AJKV2/dUbV8lK93P6pI/5a4Mv++y/rUi+h2qhbd27J8X2KPZud9l2V9wsA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VI1PR08MB3167.eurprd08.prod.outlook.com (2603:10a6:803:47::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.23; Thu, 1 Jul 2021 07:04:08 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::dd47:2a77:e102:e87a]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::dd47:2a77:e102:e87a%5]) with mapi id 15.20.4264.026; Thu, 1 Jul 2021 07:04:08 +0000 From: Tamar Christina To: Richard Sandiford CC: "gcc-patches@gcc.gnu.org" , nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov Subject: RE: [PATCH][RFC]AArch64 SVE: Fix multiple comparison masks on inverted operands Thread-Topic: [PATCH][RFC]AArch64 SVE: Fix multiple comparison masks on inverted operands Thread-Index: AQHXYSMxRzrhr1N50E2P2j3Yox4PoKsTluyKgAAA4JCAABEiZoAY+M1QgABOMWSAANqgoA== Date: Thu, 1 Jul 2021 07:04:07 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 974A737E95E4C148B1200175360FC106.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.11.185.166] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 8fa34a5b-0f2a-4a7f-0fb2-08d93c5e73f4 x-ms-traffictypediagnostic: VI1PR08MB3167:|AS8PR08MB6758: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: jT1BJoIaJJHEuImpMastuotxiQ6Q3SVKw/AJn6eANB9MUIJkpfJgTn3DxlrrkLV/kD5POs2abnDvJfaZHVmvlArK1FL9ABbGDzCg0zW1V8bnn9p/cw/eI+ixtkv44LNZkkdKMA55K1+XLLGGUGJRGWl2PI9Q6PzXn4UScYHhJpznfhvbdRbdPd5FhoCyZW4aq36Kj1wqD90pUQMDFixa8cpdV9xDwq8K1+j9qBaabcF3C4QMPJx77IkafmOklzf2pyEQAtqu8EN/I8e1gb9DkRFh4LdIJzebMX2wikZhuyIIREVqrcbG/BFm+fpjw6A7z5b4e7EIIu7xbpBm5jr+hecBq+sXTmQKuJVyyP5yVcvP5wgpQxOhc3ICaddJ2jEvutmPDkux/ETuRD0A4StWGTIiDs2l2jyEBUREi4po7fIg/+IT/i6d751B9b2DCJgz2JQaAUtGdzjw7700igZDwjxXo2mc+4Ax3wyzGSfqPZDWadScDKfpcOAnffiD3lj7C/UJjYv5UvTX7RKCiP8m/a2EPUImNXByqS5gTXVK7CF5kIoVhe14vdwej/ral8vQkPkUx71FMwhoGyYeo9LJa8P/uPWi7fY6JD5ruKrHUz/mgAwAsLM/pgLh/347SCH5wRwJiGz4BJY/A4N8xnNk2gLm1JJWtjxCBwcO1i2ilhhbZULBFJjRVvf5b56dHwdH2GkmUEdzdMuAxDL29DQYCA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(366004)(346002)(396003)(39850400004)(136003)(316002)(33656002)(54906003)(5660300002)(6862004)(4326008)(186003)(66556008)(66446008)(66946007)(83380400001)(64756008)(66476007)(76116006)(52536014)(26005)(7696005)(53546011)(122000001)(478600001)(8676002)(86362001)(8936002)(71200400001)(30864003)(9686003)(6506007)(2906002)(6636002)(38100700002)(55016002)(357404004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZU0wSm9oWHJ5SytZRXlkT3c4WmNFVlhqT0pSMXpIMkdjQm9tNmx3Yzh2ejY1?= =?utf-8?B?VXYzRUpSemExMjdadXJPZFhuMkRQQ0lqdjU0a0wyaTN4d2l6bzNoRVBwUVZ6?= =?utf-8?B?ekx4S2tibiswZ2laWUFiR0pRNVh2MlRFU3gveHk1VER2SFBXaytGRnl1bXp2?= =?utf-8?B?MEtXaHJ6KzdCcnhrbVRnWEVwRDhxbU5lVnNaU2oxRWgxaG55dzFIRU8rOGZT?= =?utf-8?B?OTgzZjNub3NzZmt5Z0FmZU41ZkFVVHo4ekl2b0hXKzhjMnQrRmpvMUlTRVIy?= =?utf-8?B?M3NxTGN6cnpxd3J3dnErSjVBc1BRMTlQd09ZY0dHaVVGLzltWENWV1ZIdWVH?= =?utf-8?B?d3pzT0lTaDhYVzl6dzZEdVg0ZFIrT1ZseTlRQ3ZXZFdKM1lTdXpWSlB1S091?= =?utf-8?B?dGZQYUxnNHpFMkdGbmZDVTBvSUk5WHNjRkNYZllka0xnWXVQNm8zRks4M2U4?= =?utf-8?B?VURVeVlPTHU1ZmMrNlRON1FNMUJMOHhwdnVadStncVdkeUtiNEk5ZHE3YUFZ?= =?utf-8?B?R3dZOXRhcGhqQzBMRHA2Ly9SSkw2a0xadG91eCtOaHQveTFKT0gwcUhIMVJr?= =?utf-8?B?WkZub21zSVlDS0VNazNub3hPYmo3VS9OR1dzTGR2S2ZWWW5mSjJFUkJGYklP?= =?utf-8?B?eU81SXZNUXVTU25jcUpGb3JHZ3ZjYnhnTzZzRXplUmI0KzJIaVdwR0IvbEt5?= =?utf-8?B?NkJxZDRLbjE4Tnprd2pLdzZMOXoveDBaOGR0RnlPRjF5YkxRUk1EOFkySTdK?= =?utf-8?B?MWgwQnhkcDY0dEFNR3ZYWmV4WnFaSUFBNWxEamZDUGgwNTV6OWJMWG9WNEdr?= =?utf-8?B?ZzdoVEgrV0ZPRUEzd3E1cEkwNHYrS0Jsb0tkazlnSUhOeU1Ud2krb3hQVmZh?= =?utf-8?B?T1Q5eFNGWTlGMHZSRm9hOXlOeE5oL1gwdW1oRnBNeVJoR0Jib09wSFZ1MHp5?= =?utf-8?B?ekpNK3N3N1I5M29pa2hoc2NrQ1ViSVF2TjEveVRSSkJLWVlMSGwwNTU3Z2hQ?= =?utf-8?B?S1k1bFMrU3d5eHJRN0lLR3Q0cDZDOTFXTmhybUNzemdqWWdWbmVIY1FyWWE5?= =?utf-8?B?LzZrYkxjV1owZkdlU3E0WXA4Y3FnVU9rK2t6RXR5M2VQMGVoMXh0aDFmbEJZ?= =?utf-8?B?d0VFQ1h1Y1djUVZFRVZCZ294MDd2M3BsTWI3Zlc2YnAycHlhVmtXNHcxN2Y5?= =?utf-8?B?MkxQWDBZNjlDbE0wcTRaMDA3Zm53cXNEL09qMWcvVDc2bHBjSnBvT21GMXdJ?= =?utf-8?B?VlpLUkdGM21vQWlsTmpJNkdOQVlFV3dYUlJmV0hLS21xWXJOYjRnZlRkQnJh?= =?utf-8?B?RnN4Sjh1TEZpK3VxUnMwWDFUZ1ZncU5jZCtzUjRld04xYVkwdThNWVc1MzhM?= =?utf-8?B?eU9NVkVrYnpRVVZoQ2cwVlpzWkV5QzBpaXFqVG9BTmw2Q1lncjUvdjM5aTJL?= =?utf-8?B?ckk1N0htZkFzSGpnd05INjNaNHdmcmh4aWlQZmlOTXJFVzBuOE1ENUVNZ3VV?= =?utf-8?B?RjFLUGx5Z3lRYzcyVFMxR3BZM080bGxQYVZyajdJRWE5T0dFaHYxUGRNM0ZD?= =?utf-8?B?ZkVYVzUycVRwaWc3cmdCSTJFYmZ4Tmd1UXR2ampOYnV5M1VYc1dxT3NOdUtU?= =?utf-8?B?S1ltQmYva0FkYlVPeVZDR3RYeUVuUzd0a3RZUlJSc09rblRsZTVYRGpLcFU2?= =?utf-8?B?cCtFZG9vVlhMVEhORTNDSEJ0R0ppRTEvSWNNYUJZaGxWUzVxQ2RqLzNNOHBk?= =?utf-8?Q?nFa/60L369+z5IC8FG8kG2mMNdRlpShWF/nVE7+?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3167 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 319debc9-1f72-41ee-200b-08d93c5e6bb4 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VgSYVpe6dxCS23VidNShQ00zHP9No0uigxKeCR2j8hm2PprCT/f9eT9kRxlQyi6VBU4mjDUKheDfAcvSD5Iik+OiSCRQm6zjGRjUvxXQQJUUeKq067r8z8z/rPSGwQxPpyMACQrRYrw8uadBJsO/klgpUzgM+2wcDBOe1z0OjGbQq+7MnMZDU+pcWbIVwb1hHjJN5Pt+3v5TGKcH+iYYYW6pC95r/V3pdi8epyu7D8YJcR7Tz2TZsjMyRYcvrK7P+WUCvRObVBIxZuDyuh6VV1mS7yN+tYgWhfBLIbXig3YcFjH/QNkgnuitfbbGEmnvigCX2cUZXxMzME4855apmR+6gJ2gTNdEfCa0hfVTGWEEBmlj4YK7NbTuBhssY90fcTrDfR+fzY4MY8rrjJ6e2TD0DZJSNeBt6w9Fj9jH/cB/7IDkopfhS37bLGdMT8zP3p8pciVpBJTGoxJaNSIg6xo7Yl5xOidVxdcu71DHA6TlPCZaG3/QoTXGOygmrCDqVjocIMloewtQpaX2qreSl5O1hgwBIIIqI+Gqw67pJy+7e5skPO3vIdAWQOqTl7Js219lOokXofyVZ7E+Se9CPOuVnT4NJbcWObdSHj5e3gNoRau+NcSuS6gH7waS+tnluDS41scpY6eVNJZJNQiZA83/0V89KSB8v20v1l/BJMvqiiw4oJsnM9/PP5c8rZSG/zM9tTFKgG3MHP8rFg9kxGbjS42QSiQg6n8csouRV+g= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(346002)(136003)(39850400004)(396003)(376002)(36840700001)(46966006)(81166007)(356005)(83380400001)(47076005)(82310400003)(33656002)(9686003)(55016002)(336012)(6636002)(36860700001)(70586007)(6862004)(86362001)(70206006)(478600001)(26005)(53546011)(6506007)(2906002)(186003)(4326008)(52536014)(82740400003)(8676002)(5660300002)(7696005)(316002)(54906003)(30864003)(8936002)(357404004); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2021 07:04:21.8833 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8fa34a5b-0f2a-4a7f-0fb2-08d93c5e73f4 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6758 X-Spam-Status: No, score=-7.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2021 07:04:28 -0000 DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFJpY2hhcmQgU2FuZGlmb3Jk IDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEp1bmUgMzAs IDIwMjEgNjo1NSBQTQ0KPiBUbzogVGFtYXIgQ2hyaXN0aW5hIDxUYW1hci5DaHJpc3RpbmFAYXJt LmNvbT4NCj4gQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRAYXJtLmNvbT47IFJp Y2hhcmQgRWFybnNoYXcNCj4gPFJpY2hhcmQuRWFybnNoYXdAYXJtLmNvbT47IE1hcmN1cyBTaGF3 Y3JvZnQNCj4gPE1hcmN1cy5TaGF3Y3JvZnRAYXJtLmNvbT47IEt5cnlsbyBUa2FjaG92IDxLeXJ5 bG8uVGthY2hvdkBhcm0uY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIXVtSRkNdQUFyY2g2NCBT VkU6IEZpeCBtdWx0aXBsZSBjb21wYXJpc29uIG1hc2tzIG9uDQo+IGludmVydGVkIG9wZXJhbmRz DQo+IA0KPiBUYW1hciBDaHJpc3RpbmEgPFRhbWFyLkNocmlzdGluYUBhcm0uY29tPiB3cml0ZXM6 DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFJpY2hhcmQgU2Fu ZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPg0KPiA+PiBTZW50OiBNb25kYXksIEp1 bmUgMTQsIDIwMjEgNDo1NSBQTQ0KPiA+PiBUbzogVGFtYXIgQ2hyaXN0aW5hIDxUYW1hci5DaHJp c3RpbmFAYXJtLmNvbT4NCj4gPj4gQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRA YXJtLmNvbT47IFJpY2hhcmQgRWFybnNoYXcNCj4gPj4gPFJpY2hhcmQuRWFybnNoYXdAYXJtLmNv bT47IE1hcmN1cyBTaGF3Y3JvZnQNCj4gPj4gPE1hcmN1cy5TaGF3Y3JvZnRAYXJtLmNvbT47IEt5 cnlsbyBUa2FjaG92DQo+IDxLeXJ5bG8uVGthY2hvdkBhcm0uY29tPg0KPiA+PiBTdWJqZWN0OiBS ZTogW1BBVENIXVtSRkNdQUFyY2g2NCBTVkU6IEZpeCBtdWx0aXBsZSBjb21wYXJpc29uIG1hc2tz DQo+ID4+IG9uIGludmVydGVkIG9wZXJhbmRzDQo+ID4+DQo+ID4+IFRhbWFyIENocmlzdGluYSA8 VGFtYXIuQ2hyaXN0aW5hQGFybS5jb20+IHdyaXRlczoNCj4gPj4gPiBIaSBSaWNoYXJkLA0KPiA+ PiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiA+PiBGcm9tOiBSaWNoYXJkIFNh bmRpZm9yZCA8cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4NCj4gPj4gPj4gU2VudDogTW9uZGF5 LCBKdW5lIDE0LCAyMDIxIDM6NTAgUE0NCj4gPj4gPj4gVG86IFRhbWFyIENocmlzdGluYSA8VGFt YXIuQ2hyaXN0aW5hQGFybS5jb20+DQo+ID4+ID4+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9y ZzsgbmQgPG5kQGFybS5jb20+OyBSaWNoYXJkIEVhcm5zaGF3DQo+ID4+ID4+IDxSaWNoYXJkLkVh cm5zaGF3QGFybS5jb20+OyBNYXJjdXMgU2hhd2Nyb2Z0DQo+ID4+ID4+IDxNYXJjdXMuU2hhd2Ny b2Z0QGFybS5jb20+OyBLeXJ5bG8gVGthY2hvdg0KPiA+PiA8S3lyeWxvLlRrYWNob3ZAYXJtLmNv bT4NCj4gPj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSF1bUkZDXUFBcmNoNjQgU1ZFOiBGaXggbXVs dGlwbGUgY29tcGFyaXNvbg0KPiA+PiA+PiBtYXNrcyBvbiBpbnZlcnRlZCBvcGVyYW5kcw0KPiA+ PiA+Pg0KPiA+PiA+PiBUYW1hciBDaHJpc3RpbmEgPHRhbWFyLmNocmlzdGluYUBhcm0uY29tPiB3 cml0ZXM6DQo+ID4+ID4+ID4gSGkgQWxsLA0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gVGhpcyBSRkMg aXMgdHJ5aW5nIHRvIGFkZHJlc3MgdGhlIGZvbGxvd2luZyBpbmVmZmljaWVuY3kgd2hlbg0KPiA+ PiA+PiA+IHZlY3Rvcml6aW5nIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgd2l0aCBTVkUuDQo+ID4+ ID4+ID4NCj4gPj4gPj4gPiBDb25zaWRlciB0aGUgY2FzZQ0KPiA+PiA+PiA+DQo+ID4+ID4+ID4g dm9pZCBmMTAoZG91YmxlICogcmVzdHJpY3QgeiwgZG91YmxlICogcmVzdHJpY3QgdywgZG91Ymxl ICogcmVzdHJpY3QgeCwNCj4gPj4gPj4gPiAJIGRvdWJsZSAqIHJlc3RyaWN0IHksIGludCBuKQ0K PiA+PiA+PiA+IHsNCj4gPj4gPj4gPiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsN Cj4gPj4gPj4gPiAgICAgICAgIHpbaV0gPSAod1tpXSA+IDApID8geFtpXSArIHdbaV0gOiB5W2ld IC0gd1tpXTsNCj4gPj4gPj4gPiAgICAgfQ0KPiA+PiA+PiA+IH0NCj4gPj4gPj4gPg0KPiA+PiA+ PiA+DQo+ID4+ID4+ID4gRm9yIHdoaWNoIHdlIGN1cnJlbnRseSBnZW5lcmF0ZSBhdCAtTzM6DQo+ ID4+ID4+ID4NCj4gPj4gPj4gPiBmMTA6DQo+ID4+ID4+ID4gICAgICAgICBjbXAgICAgIHc0LCAw DQo+ID4+ID4+ID4gICAgICAgICBibGUgICAgIC5MMQ0KPiA+PiA+PiA+ICAgICAgICAgbW92ICAg ICB4NSwgMA0KPiA+PiA+PiA+ICAgICAgICAgd2hpbGVsbyBwMS5kLCB3enIsIHc0DQo+ID4+ID4+ ID4gICAgICAgICBwdHJ1ZSAgIHAzLmIsIGFsbA0KPiA+PiA+PiA+IC5MMzoNCj4gPj4gPj4gPiAg ICAgICAgIGxkMWQgICAgejEuZCwgcDEveiwgW3gxLCB4NSwgbHNsIDNdDQo+ID4+ID4+ID4gICAg ICAgICBmY21ndCAgIHAyLmQsIHAxL3osIHoxLmQsICMwLjANCj4gPj4gPj4gPiAgICAgICAgIGZj bWd0ICAgcDAuZCwgcDMveiwgejEuZCwgIzAuMA0KPiA+PiA+PiA+ICAgICAgICAgbGQxZCAgICB6 Mi5kLCBwMi96LCBbeDIsIHg1LCBsc2wgM10NCj4gPj4gPj4gPiAgICAgICAgIGJpYyAgICAgcDAu YiwgcDMveiwgcDEuYiwgcDAuYg0KPiA+PiA+PiA+ICAgICAgICAgbGQxZCAgICB6MC5kLCBwMC96 LCBbeDMsIHg1LCBsc2wgM10NCj4gPj4gPj4gPiAgICAgICAgIGZzdWIgICAgejAuZCwgcDAvbSwg ejAuZCwgejEuZA0KPiA+PiA+PiA+ICAgICAgICAgbW92cHJmeCB6MC5kLCBwMi9tLCB6MS5kDQo+ ID4+ID4+ID4gICAgICAgICBmYWRkICAgIHowLmQsIHAyL20sIHowLmQsIHoyLmQNCj4gPj4gPj4g PiAgICAgICAgIHN0MWQgICAgejAuZCwgcDEsIFt4MCwgeDUsIGxzbCAzXQ0KPiA+PiA+PiA+ICAg ICAgICAgaW5jZCAgICB4NQ0KPiA+PiA+PiA+ICAgICAgICAgd2hpbGVsbyBwMS5kLCB3NSwgdzQN Cj4gPj4gPj4gPiAgICAgICAgIGIuYW55ICAgLkwzDQo+ID4+ID4+ID4gLkwxOg0KPiA+PiA+PiA+ ICAgICAgICAgcmV0DQo+ID4+ID4+ID4NCj4gPj4gPj4gPiBOb3RpY2UgdGhhdCB0aGUgY29uZGl0 aW9uIGZvciB0aGUgZWxzZSBicmFuY2ggZHVwbGljYXRlcyB0aGUNCj4gPj4gPj4gPiBzYW1lIHBy ZWRpY2F0ZSBhcyB0aGUgdGhlbiBicmFuY2ggYW5kIHRoZW4gdXNlcyBCSUMgdG8gbmVnYXRlIHRo ZQ0KPiByZXN1bHRzLg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gVGhlIHJlYXNvbiBmb3IgdGhpcyBp cyB0aGF0IGR1cmluZyBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uIGluIHRoZQ0KPiA+PiA+PiA+IHZl Y3Rvcml6ZXIgd2UgZW1pdA0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gICBtYXNrX180MS4xMV82NiA9 IHZlY3RfXzQuMTBfNjQgPiB2ZWN0X2NzdF9fNjU7DQo+ID4+ID4+ID4gICB2ZWNfbWFza19hbmRf NjkgPSBtYXNrX180MS4xMV82NiAmIGxvb3BfbWFza182MzsNCj4gPj4gPj4gPiAgIHZlY19tYXNr X2FuZF83MSA9IG1hc2tfXzQxLjExXzY2ICYgbG9vcF9tYXNrXzYzOw0KPiA+PiA+PiA+ICAgbWFz a19fNDMuMTZfNzMgPSB+bWFza19fNDEuMTFfNjY7DQo+ID4+ID4+ID4gICB2ZWNfbWFza19hbmRf NzYgPSBtYXNrX180My4xNl83MyAmIGxvb3BfbWFza182MzsNCj4gPj4gPj4gPiAgIHZlY19tYXNr X2FuZF83OCA9IG1hc2tfXzQzLjE2XzczICYgbG9vcF9tYXNrXzYzOw0KPiA+PiA+PiA+DQo+ID4+ ID4+ID4gd2hpY2ggdWx0aW1hdGVseSBnZXRzIG9wdGltaXplZCB0bw0KPiA+PiA+PiA+DQo+ID4+ ID4+ID4gICBtYXNrX180MS4xMV82NiA9IHZlY3RfXzQuMTBfNjQgPiB7IDAuMCwgLi4uIH07DQo+ ID4+ID4+ID4gICB2ZWNfbWFza19hbmRfNjkgPSBsb29wX21hc2tfNjMgJiBtYXNrX180MS4xMV82 NjsNCj4gPj4gPj4gPiAgIG1hc2tfXzQzLjE2XzczID0gfm1hc2tfXzQxLjExXzY2Ow0KPiA+PiA+ PiA+ICAgdmVjX21hc2tfYW5kXzc2ID0gbG9vcF9tYXNrXzYzICYgbWFza19fNDMuMTZfNzM7DQo+ ID4+ID4+ID4NCj4gPj4gPj4gPiBOb3RpY2UgaG93IHRoZSBuZWdhdGUgaXMgb24gdGhlIG9wZXJh dGlvbiBhbmQgbm90IHRoZSBwcmVkaWNhdGUNCj4gPj4gPj4gPiByZXN1bHRpbmcgZnJvbSB0aGUg b3BlcmF0aW9uLiAgV2hlbiB0aGlzIGlzIGV4cGFuZGVkIHRoaXMgdHVybnMNCj4gPj4gPj4gPiBp bnRvIFJUTCB3aGVyZSB0aGUgbmVnYXRlIGlzIG9uIHRoZSBjb21wYXJlIGRpcmVjdGx5LiAgVGhp cw0KPiA+PiA+PiA+IG1lYW5zIHRoZSBSVEwgaXMgZGlmZmVyZW50IGZyb20gdGhlIG9uZSB3aXRo b3V0IHRoZSBuZWdhdGUgYW5kDQo+ID4+ID4+ID4gc28gQ1NFIGlzIHVuYWJsZSB0bw0KPiA+PiA+ PiByZWNvZ25pemUgdGhhdCB0aGV5IGFyZSBlc3NlbnRpYWxseSBzYW1lIG9wZXJhdGlvbi4NCj4g Pj4gPj4gPg0KPiA+PiA+PiA+IFRvIGZpeCB0aGlzIG15IHBhdGNoIGNoYW5nZXMgaXQgc28geW91 IG5lZ2F0ZSB0aGUgbWFzayByYXRoZXINCj4gPj4gPj4gPiB0aGFuIHRoZSBvcGVyYXRpb24NCj4g Pj4gPj4gPg0KPiA+PiA+PiA+ICAgbWFza19fNDEuMTNfNTUgPSB2ZWN0X180LjEyXzUzID4geyAw LjAsIC4uLiB9Ow0KPiA+PiA+PiA+ICAgdmVjX21hc2tfYW5kXzU4ID0gbG9vcF9tYXNrXzUyICYg bWFza19fNDEuMTNfNTU7DQo+ID4+ID4+ID4gICB2ZWNfbWFza19vcF82NyA9IH52ZWNfbWFza19h bmRfNTg7DQo+ID4+ID4+ID4gICB2ZWNfbWFza19hbmRfNjUgPSBsb29wX21hc2tfNTIgJiB2ZWNf bWFza19vcF82NzsNCj4gPj4gPj4NCj4gPj4gPj4gQnV0IHRvIG1lIHRoaXMgbG9va3MgbGlrZSBh IHBlc3NpbWlzYXRpb24gaW4gZ2ltcGxlIHRlcm1zLiAgV2UndmUNCj4gPj4gPj4gaW5jcmVhc2Vk IHRoZSBsZW5ndGggb2YgdGhlIGNyaXRpY2FsIHBhdGg6IHZlY19tYXNrX2FuZF82NSBub3cNCj4g Pj4gPj4gbmVlZHMgYSBjaGFpbiBvZg0KPiA+PiA+PiA0IG9wZXJhdGlvbnMgaW5zdGVhZCBvZiAz Lg0KPiA+PiA+DQo+ID4+ID4gVHJ1ZSwgYnV0IGl0IHNob3VsZCByZWR1Y2UgdGhlIG51bWJlciBv ZiBSVEwgcGF0dGVybnMuICBJIHdvdWxkDQo+ID4+ID4gaGF2ZSB0aG91Z2h0IFJUTCBpcyBtb3Jl IGV4cGVuc2l2ZSB0byBoYW5kbGUgdGhhbiBnaW1wbGUuDQo+ID4+DQo+ID4+IEkgdGhpbmsgdGhp cyBpcyBvbmx5IGEgZmFpciBnaW1wbGUgb3B0aW1pc2F0aW9uIGlmIGdpbXBsZSBkb2VzIHRoZQ0K PiA+PiBpc2VsIGl0c2VsZiAodG8gYSBwcmVkaWNhdGVkIGNvbXBhcmUgYW5kIGEgcHJlZGljYXRl ZCBOT1QpLg0KPiA+Pg0KPiA+PiA+PiBXZSBhbHNvIG5lZWQgdG8gYmUgY2FyZWZ1bCBub3QgdG8g cGVzc2ltaXNlIHRoZSBjYXNlIGluIHdoaWNoIHRoZQ0KPiA+PiA+PiBjb21wYXJpc29uIGlzIGFu IGludGVnZXIgb25lLiAgQXQgdGhlIG1vbWVudCB3ZSdsbCBnZW5lcmF0ZQ0KPiA+PiA+PiBvcHBv c2VkIGNvbmRpdGlvbnMsIHdoaWNoIGlzIHRoZSBpbnRlbmRlZCBiZWhhdmlvdXI6DQo+ID4+ID4N Cj4gPj4gPiBUaGlzIHN0aWxsIGhhcHBlbnMgd2l0aCB0aGlzIHBhdGNoIGF0IGAtT2Zhc3RgIGJl Y2F1c2UgdGhhdCBmbGlwcw0KPiA+PiA+IHRoZSBjb25kaXRpb25zLCBTbyB0aGUgZGlmZmVyZW50 IHJlcHJlc2VudGF0aW9uIGRvZXNuJ3QgaGFybSBpdC4NCj4gPj4NCj4gPj4gT0ssIHRoYXQncyBn b29kLg0KPiA+Pg0KPiA+PiA+Pg0KPiA+PiA+PiAuTDM6DQo+ID4+ID4+ICAgICAgICAgbGQxZCAg ICB6MS5kLCBwMC96LCBbeDEsIHg1LCBsc2wgM10NCj4gPj4gPj4gICAgICAgICBjbXBndCAgIHAy LmQsIHAwL3osIHoxLmQsICMwDQo+ID4+ID4+ICAgICAgICAgbW92cHJmeCB6MiwgejENCj4gPj4g Pj4gICAgICAgICBzY3Z0ZiAgIHoyLmQsIHAzL20sIHoxLmQNCj4gPj4gPj4gICAgICAgICBjbXBs ZSAgIHAxLmQsIHAwL3osIHoxLmQsICMwDQo+ID4+ID4+ICAgICAgICAgbGQxZCAgICB6MC5kLCBw Mi96LCBbeDIsIHg1LCBsc2wgM10NCj4gPj4gPj4gICAgICAgICBsZDFkICAgIHoxLmQsIHAxL3os IFt4MywgeDUsIGxzbCAzXQ0KPiA+PiA+PiAgICAgICAgIGZhZGQgICAgejAuZCwgcDIvbSwgejAu ZCwgejIuZA0KPiA+PiA+PiAgICAgICAgIG1vdnByZnggejAuZCwgcDEvbSwgejEuZA0KPiA+PiA+ PiAgICAgICAgIGZzdWIgICAgejAuZCwgcDEvbSwgejAuZCwgejIuZA0KPiA+PiA+PiAgICAgICAg IHN0MWQgICAgejAuZCwgcDAsIFt4MCwgeDUsIGxzbCAzXQ0KPiA+PiA+PiAgICAgICAgIGFkZCAg ICAgeDUsIHg1LCB4Ng0KPiA+PiA+PiAgICAgICAgIHdoaWxlbG8gcDAuZCwgdzUsIHc0DQo+ID4+ ID4+ICAgICAgICAgYi5hbnkgICAuTDMNCj4gPj4gPj4NCj4gPj4gPj4gQ291bGQgd2UgaGFuZGxl IHRoZSBmY21wIGNhc2UgdXNpbmcgYSAzLT4yIGRlZmluZV9zcGxpdCBpbnN0ZWFkOg0KPiA+PiA+ PiBjb252ZXJ0DQo+ID4+ID4+DQo+ID4+ID4+ICAgIChzZXQgcmVzIChhbmQgKG5vdCAoZmNtcCBY IFkpKSBaKSkgLT4NCj4gPj4gPj4gICAgICAoc2V0IHJlcyAoZmNtcCBYIFkpKQ0KPiA+PiA+PiAg ICAgIChzZXQgcmVzIChhbmQgKG5vdCByZXMpIFopKQ0KPiA+PiA+Pg0KPiA+PiA+DQo+ID4+ID4g VGhpcyB3YXMgdGhlIG90aGVyIGFwcHJvYWNoIEkgbWVudGlvbmVkLiBJdCB3b3JrcywgYW5kIGdp dmVzIHlvdQ0KPiA+PiA+IHRoZSBuZWcsDQo+ID4+IGJ1dCBvbmx5IGluIHRoZSBjYXNlIHdoZXJl IHRoZSBjb21wYXJlIGlzIHNpbmdsZSB1c2UuDQo+ID4+DQo+ID4+IEJ1dCBpbiB0aGUgb3JpZ2lu YWwgZXhhbXBsZSB3ZSBkdXBsaWNhdGUgdGhlIGNvbXBhcmlzb24gdGhyb3VnaCBhDQo+ID4+IDIt PjIgY29tYmluZSwgd2hpY2ggbGVhdmVzIHRoZSBvcmlnaW5hbCBjb21wYXJpc29uIGFzIGEgc2lu Z2xlIHVzZS4NCj4gPj4gSXNuJ3QgdGhhdCBlbm91Z2g/DQo+ID4+DQo+ID4+ID4gZS5nLiBpbg0K PiA+PiA+DQo+ID4+ID4gdm9pZCBmMTEoZG91YmxlICogcmVzdHJpY3QgeiwgZG91YmxlICogcmVz dHJpY3QgdywgZG91YmxlICoNCj4gPj4gPiByZXN0cmljdCB4LCBkb3VibGUgKiByZXN0cmljdCB5 LCBpbnQgbikgew0KPiA+PiA+ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgew0KPiA+ PiA+ICAgICAgICAgeltpXSA9ICh3W2ldID4gMCkgPyB3W2ldIDogeVtpXSAtIHdbaV07DQo+ID4+ ID4gICAgIH0NCj4gPj4gPiB9DQo+ID4+ID4NCj4gPj4gPiBZb3UgaGF2ZSBzb21lIG9mIHRoZSBz YW1lIHByb2JsZW0uIEl0IGdlbmVyYXRlcw0KPiA+PiA+DQo+ID4+ID4gICAgICAgICBsZDFkICAg IHowLmQsIHAwL3osIFt4MSwgeDIsIGxzbCAzXQ0KPiA+PiA+ICAgICAgICAgZmNtZ3QgICBwMi5k LCBwMy96LCB6MC5kLCAjMC4wDQo+ID4+ID4gICAgICAgICBiaWMgICAgIHAxLmIsIHAzL3osIHAw LmIsIHAyLmINCj4gPj4gPiAgICAgICAgIGxkMWQgICAgejEuZCwgcDEveiwgW3gzLCB4MiwgbHNs IDNdDQo+ID4+ID4gICAgICAgICBmc3ViICAgIHoxLmQsIHAxL20sIHoxLmQsIHowLmQNCj4gPj4g PiAgICAgICAgIHNlbCAgICAgejAuZCwgcDIsIHowLmQsIHoxLmQNCj4gPj4gPiAgICAgICAgIHN0 MWQgICAgejAuZCwgcDAsIFt4MCwgeDIsIGxzbCAzXQ0KPiA+PiA+ICAgICAgICAgaW5jZCAgICB4 Mg0KPiA+PiA+ICAgICAgICAgd2hpbGVsbyBwMC5kLCB3MiwgdzQNCj4gPj4gPg0KPiA+PiA+IHdo aWNoIGhhcyB0d28gcHJvYmxlbXMuIGZjbWd0IGRvZXNuJ3QgbmVlZCB0byBiZSBwcmVkaWNhdGVk IG9uIHAzDQo+ID4+ID4gd2hpY2ggaXMgcHRydWUgYWxsLCBpdCBjYW4vc2hvdWxkIGJlIHAwLg0K PiA+PiA+DQo+ID4+ID4gV2l0aCB0aGF0IGZpeGVkIHRoZSBzcGxpdHRlciB3b24ndCBtYXRjaCBi ZWNhdXNlIHAyIGlzIG5lZWRlZCBpbg0KPiA+PiA+IHRoZSBzZWwsIHNvIGl0J3Mgbm90IHNpbmds ZSB1c2UgYW5kIHNvIGNvbWJpbmUgd29uJ3QgdHJ5IHRvIGJ1aWxkDQo+ID4+ID4gdGhlIFJUTCBz byBpdCBjYW4NCj4gPj4gYmUgc3BsaXQuDQo+ID4+DQo+ID4+IEkgdGhpbmsgaGF2aW5nIHRoZSB2 ZWN0b3Jpc2VyIGF2b2lkIHRoZSBkdWFsIHVzZSBiZXR3ZWVuIHRoZQ0KPiA+PiBJRk5fTUFTS19M T0FEL1NUT1JFIGFuZCB0aGUgVkVDX0NPTkRfRVhQUiBpcyBmYWlyIGdhbWUsIHNpbmNlDQo+IHRo YXQgaXMNCj4gPj4gdGhlIG9ubHkgcGFzcyB0aGF0IGhhcyB0aGUgY29udGV4dCB0byBwcm92ZSB0 aGF0IGluY2x1ZGluZyB0aGUgbG9vcA0KPiA+PiBtYXNrIGluIHRoZSBWRUNfQ09ORF9FWFBSIGNv bmRpdGlvbiBpcyBjb3JyZWN0LiAgV2UgYWxyZWFkeSB0cnkgdG8gZG8NCj4gPj4gdGhhdCB0byBz b21lDQo+ID4+IGV4dGVudDoNCj4gPj4NCj4gPg0KPiA+IFNvcnJ5IEkgaGF2ZSBiZWVuIGxvb2tp bmcgYXQgdGhpcyB0aGVzZSBwYXN0IGNvdXBsZSBvZiBkYXlzIGFuZCBJIGp1c3QNCj4gPiBkb24n dCBrbm93IGhvdyB0aGlzIGlzIHN1cHBvc2VkIHRvIHdvcmsuDQo+ID4NCj4gPiBJbiB0aGUgYWJv dmUgZXhhbXBsZSB0aGUgcHJvYmxlbSBpcyBub3QganVzdCB0aGUgdXNlIG9mIHAyIGluIHRoZQ0K PiA+IFZFQ19DT05EX0VYUFIuIElmIHRoZSBWRUNfQ09ORF9FWFBSIGlzIGNoYW5nZWQgdG8gdXNl IHAxIHRoZW4gcDENCj4gbm93DQo+ID4gaGFzIDMgdXNlcyB3aGljaCBtYWtlcyBjb21iaW5lIHN0 aWxsIG5vdCB0cnkgdGhlIGNvbWJpbmF0aW9uLg0KPiA+DQo+ID4gQnV0IHRoZSBnZW5lcmFsIGNh c2UNCj4gPg0KPiA+IHZvaWQgZjEwKGRvdWJsZSAqIHJlc3RyaWN0IHosIGRvdWJsZSAqIHJlc3Ry aWN0IHcsIGRvdWJsZSAqIHJlc3RyaWN0DQo+ID4geCwgZG91YmxlICogcmVzdHJpY3QgeSwgaW50 IG4pIHsNCj4gPiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsNCj4gPiAgICAgICAg IHpbaV0gPSAod1tpXSA+IDApID8geFtpXSArIHdbaV0gOiB5W2ldIC0gd1tpXTsNCj4gPiAgICAg fQ0KPiA+IH0NCj4gPg0KPiA+IFByb2R1Y2VzDQo+ID4NCj4gPiBmMTA6DQo+ID4gICAgICAgICBj bXAgICAgIHc0LCAwDQo+ID4gICAgICAgICBibGUgICAgIC5MMQ0KPiA+ICAgICAgICAgbW92ICAg ICB4NSwgMA0KPiA+ICAgICAgICAgd2hpbGVsbyBwMS5kLCB3enIsIHc0DQo+ID4gICAgICAgICBw dHJ1ZSAgIHAzLmIsIGFsbA0KPiA+ICAgICAgICAgLnAyYWxpZ24gNSwsMTUNCj4gPiAuTDM6DQo+ ID4gICAgICAgICBsZDFkICAgIHoxLmQsIHAxL3osIFt4MSwgeDUsIGxzbCAzXQ0KPiA+ICAgICAg ICAgZmNtZ3QgICBwMi5kLCBwMS96LCB6MS5kLCAjMC4wDQo+ID4gICAgICAgICBmY21ndCAgIHAw LmQsIHAzL3osIHoxLmQsICMwLjANCj4gPiAgICAgICAgIGxkMWQgICAgejIuZCwgcDIveiwgW3gy LCB4NSwgbHNsIDNdDQo+ID4gICAgICAgICBiaWMgICAgIHAwLmIsIHAzL3osIHAxLmIsIHAwLmIN Cj4gPiAgICAgICAgIGxkMWQgICAgejAuZCwgcDAveiwgW3gzLCB4NSwgbHNsIDNdDQo+ID4gICAg ICAgICBmc3ViICAgIHowLmQsIHAwL20sIHowLmQsIHoxLmQNCj4gPiAgICAgICAgIG1vdnByZngg ejAuZCwgcDIvbSwgejEuZA0KPiA+ICAgICAgICAgZmFkZCAgICB6MC5kLCBwMi9tLCB6MC5kLCB6 Mi5kDQo+ID4gICAgICAgICBzdDFkICAgIHowLmQsIHAxLCBbeDAsIHg1LCBsc2wgM10NCj4gPiAg ICAgICAgIGluY2QgICAgeDUNCj4gPiAgICAgICAgIHdoaWxlbG8gcDEuZCwgdzUsIHc0DQo+ID4g ICAgICAgICBiLmFueSAgIC5MMw0KPiA+DQo+ID4gd2hlcmUgdGhlIFZFQ19DT05EX0VYUFIgaGFz IGJlZW4gZWxpZGVkLg0KPiA+DQo+ID4gVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgY29tcGFyaXNv biBmb3IgdGhlIGludmVyc2UgY2FzZSBpcyB1bnByZWRpY2F0ZWQuDQo+IA0KPiBZZWFoLCBmb3Ig dGhlIG9yaWdpbmFsIGYxMCBleGFtcGxlIEkgd2FzIHN1Z2dlc3RpbmcgdGhhdCB3ZSB1c2UgY29t YmluZQ0KPiBpbnN0ZWFkIG9mIGNoYW5naW5nIHRoZSB2ZWN0b3Jpc2VyLiAgSXQgdHVybnMgb3V0 IHRoYXQgdGhlIDMtPjIgc3BsaXQgdGhpbmcgSQ0KPiBtZW50aW9uZWQgYWJvdmUgd29uJ3Qgd29y ayB0aG91Z2gsIGJlY2F1c2Ugd2UgbWF0Y2ggdGhlIEJJQyBmaXJzdC4NCj4gQnV0IEkgdGhpbmsg c29tZXRoaW5nIGxpa2U6DQo+IA0KPiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqaW52ZXJ0ZWRf ZmNtZ3QiDQo+ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZQUkVEPiAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPVVwYSIpDQo+IAkoYW5kOjxWUFJFRD4NCj4gCSAgKGFuZDo8VlBSRUQ+DQo+IAkgICAg KG5vdDo8VlBSRUQ+DQo+IAkgICAgICAodW5zcGVjOjxWUFJFRD4NCj4gCQlbKG1hdGNoX29wZXJh bmQ6PFZQUkVEPiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiVXBsIikNCj4gCQkgKGNvbnN0X2ludCBT VkVfS05PV05fUFRSVUUpDQo+IAkJIChtYXRjaF9vcGVyYW5kOlNWRV9GVUxMX0YgMiAicmVnaXN0 ZXJfb3BlcmFuZCIgInciKQ0KPiAJCSAobWF0Y2hfb3BlcmFuZDpTVkVfRlVMTF9GIDMNCj4gImFh cmNoNjRfc2ltZF9yZWdfb3JfemVybyIgIndEeiIpXQ0KPiAJCVNWRV9DT05EX0ZQX0NNUF9JMCkp DQo+IAkgICAgKG1hdGNoX29wZXJhbmQ6PFZQUkVEPiA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAidyIp KQ0KPiAJICAobWF0Y2hfZHVwIDEpKSldDQo+ICAgIlRBUkdFVF9TVkUgJiYgIXJlZ19vdmVybGFw X21lbnRpb25lZF9wIChvcGVyYW5kc1s0XSwgb3BlcmFuZHNbMF0pIg0KPiAgICIjIg0KPiAgICIm JiAxIg0KPiAgIFsoc2V0IChtYXRjaF9kdXAgMCkNCj4gCSh1bnNwZWM6PFZQUkVEPg0KPiAJICBb KG1hdGNoX2R1cCA0KQ0KPiAJICAgKGNvbnN0X2ludCBTVkVfTUFZQkVfTk9UX1BUUlVFKQ0KPiAJ ICAgKG1hdGNoX2R1cCAyKQ0KPiAJICAgKG1hdGNoX2R1cCAzKV0NCj4gCSAgU1ZFX0NPTkRfRlBf Q01QX0kwKSkNCj4gICAgKHNldCAobWF0Y2hfZHVwIDApDQo+IAkoYW5kOjxWUFJFRD4gKG5vdDo8 VlBSRUQ+IChtYXRjaF9kdXAgMCkpIChtYXRjaF9kdXAgNCkpKV0NCj4gKQ0KPiANCj4gaXMgYSBs ZWdpdGltYXRlIG9wdGltaXNhdGlvbiBpbiBpdHMgb3duIHJpZ2h0IGJlY2F1c2UgaXQgZ2V0cyBy aWQgb2YgdGhlIFBUUlVFDQo+IG9wZXJhbmQgKGF0IHNwbGl0IHRpbWUpLiAgVGhpcyB3b3VsZCBi ZSBhIGdvb2QgdGhpbmcgdG8gZG8gd2hlcmV2ZXIgdGhlDQo+IEZDTXh4IGFuZCBCSUMgY29tZSBm cm9tLg0KDQpBaCBJIHNlZS4uLg0KDQpJIHdhcyB0cnlpbmcgd2l0aA0KDQo7OyBNYWtlIHN1cmUg dGhhdCBpbnZlcnNpb25zIG9mIG1hc2tlZCBjb21wYXJpc29ucyBhcmUgYWx3YXlzIG9uIHRoZSBt YXNrDQo7OyBpbnN0ZWFkIG9mIG9uIHRoZSBvcGVyYXRpb24uDQooZGVmaW5lX2luc25fYW5kX3Nw bGl0ICIqbWFza19pbnZfY29tYmluZSINCiAgWyhtYXRjaF9zY3JhdGNoOjxWUFJFRD4gNSAiPVVw YSwgVXBhIikNCiAgIChzZXQgKG1hdGNoX29wZXJhbmQ6PFZQUkVEPiAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPVVwYSwgVXBhIikNCiAgICAgICAoYW5kOjxWUFJFRD4NCiAgICAgICAgIChhbmQ6PFZQ UkVEPg0KICAgICAgICAgICAobm90OjxWUFJFRD4NCiAgICAgICAgICAgICAodW5zcGVjOjxWUFJF RD4NCiAgICAgICAgICAgICAgIFsobWF0Y2hfb3BlcmFuZDo8VlBSRUQ+IDEpDQogICAgICAgICAg ICAgICAgKGNvbnN0X2ludCBTVkVfS05PV05fUFRSVUUpDQogICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6U1ZFX0ZVTExfRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidywgdyIpDQogICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U1ZFX0ZVTExfRiAzICJhYXJjaDY0X3NpbWRfcmVnX29y X3plcm8iICJEeiwgdyIpXQ0KICAgICAgICAgICAgICAgU1ZFX0NPTkRfRlBfQ01QX0kwKSkNCiAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6PFZQUkVEPiA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAiVXBh LCBVcGEiKSkNCiAgICAgICAgICAgICAobWF0Y2hfZHVwOjxWUFJFRD4gMSkpKV0NCiAgIlRBUkdF VF9TVkUiDQogICIjIg0KICAiJiYgMSINCiAgWyhzZXQgKG1hdGNoX2R1cCAwKQ0KICAgICAgIChh bmQ6PFZQUkVEPg0KICAgICAgICAgKHVuc3BlYzo8VlBSRUQ+DQogICAgICAgICAgIFsobWF0Y2hf ZHVwIDEpDQogICAgICAgICAgICAoY29uc3RfaW50IFNWRV9LTk9XTl9QVFJVRSkNCiAgICAgICAg ICAgIChtYXRjaF9kdXAgMikNCiAgICAgICAgICAgIChtYXRjaF9kdXAgMyldDQogICAgICAgICAg IFNWRV9DT05EX0ZQX0NNUF9JMCkNCiAgICAgICAgICAgICAobWF0Y2hfZHVwIDQpKSkNCiAgIChz ZXQgKG1hdGNoX2R1cCAwKQ0KICAgICAgIChhbmQ6PFZQUkVEPg0KICAgICAgICAgKG5vdDo8VlBS RUQ+DQogICAgICAgICAgIChtYXRjaF9kdXAgMCkpDQogICAgICAgICAobWF0Y2hfZHVwIDQpKSld DQopDQoNCkJ1dCB0aGUgZGlmZmVyZW5jZSBzZWVtcyB0byBiZSBJIG5lZWQgdG8gdXNlICAgIChj b25zdF9pbnQgU1ZFX01BWUJFX05PVF9QVFJVRSkNCkFmdGVyIHRoZSBzcGxpdC4gQ291bGQgeW91 IHBlcmhhcHMgcG9pbnQgbWUgdG8gd2hhdCB0aGlzIG1lYW5zIGluIFJUTD8NCg0KVGhlIHByZWRp Y2F0ZSBpdHNlbGYgaXMgb3BlcmFuZDEgc28ganVzdCB3YW50IHRvIGtub3cgd2hhdCBleGFjdGx5 IHRoaXMgZG9lcyB0byB0aGUgc2VtYW50aWNzLg0KDQo+IA0KPiBUaGUgc25hZyBpcyB0aGF0IHdl IGRvbid0IHRoZW4gQ1NFIHRoZSBjb21wYXJpc29ucyBiZXR3ZWVuIHNwbGl0MSBhbmQgUkEuDQo+ IFRoZSBwb3N0LVJBIG9wdGltaXNlcnMgbWlnaHQgdGhlbiBsZWF2ZSBhIG1vdmUuICBFLmcuIGZv ciBwbGFpbiAtTzMgdGhlDQo+IGFib3ZlIHBhdHRlcm4gZ2l2ZXMgdGhlIGV4cGVjdGVkOg0KPiAN Cj4gICAgICAgICBjbXAgICAgIHc0LCAwDQo+ICAgICAgICAgYmxlICAgICAuTDENCj4gICAgICAg ICBtb3YgICAgIHg1LCAwDQo+ICAgICAgICAgY250ZCAgICB4Ng0KPiAgICAgICAgIHdoaWxlbG8g cDAuZCwgd3pyLCB3NA0KPiAgICAgICAgIC5wMmFsaWduIDMsLDcNCj4gLkwzOg0KPiAgICAgICAg IGxkMWQgICAgejEuZCwgcDAveiwgW3gxLCB4NSwgbHNsIDNdDQo+ICAgICAgICAgZmNtZ3QgICBw Mi5kLCBwMC96LCB6MS5kLCAjMC4wDQo+ICAgICAgICAgbm90ICAgICBwMS5iLCBwMC96LCBwMi5i DQo+ICAgICAgICAgbGQxZCAgICB6Mi5kLCBwMi96LCBbeDIsIHg1LCBsc2wgM10NCj4gICAgICAg ICBsZDFkICAgIHowLmQsIHAxL3osIFt4MywgeDUsIGxzbCAzXQ0KPiAgICAgICAgIGZzdWIgICAg ejAuZCwgcDEvbSwgejAuZCwgejEuZA0KPiAgICAgICAgIG1vdnByZnggejAuZCwgcDIvbSwgejEu ZA0KPiAgICAgICAgIGZhZGQgICAgejAuZCwgcDIvbSwgejAuZCwgejIuZA0KPiAgICAgICAgIHN0 MWQgICAgejAuZCwgcDAsIFt4MCwgeDUsIGxzbCAzXQ0KPiAgICAgICAgIGFkZCAgICAgeDUsIHg1 LCB4Ng0KPiAgICAgICAgIHdoaWxlbG8gcDAuZCwgdzUsIHc0DQo+ICAgICAgICAgYi5hbnkgICAu TDMNCj4gLkwxOg0KPiAgICAgICAgIHJldA0KPiANCj4gYnV0IC1PMyAtZm5vLXRyYXBwaW5nLW1h dGggaGFzIGEgcHJlZGljYXRlIG1vdmU6DQo+IA0KPiAgICAgICAgIGNtcCAgICAgdzQsIDANCj4g ICAgICAgICBibGUgICAgIC5MMQ0KPiAgICAgICAgIG1vdiAgICAgeDUsIDANCj4gICAgICAgICBj bnRkICAgIHg2DQo+ICAgICAgICAgd2hpbGVsbyBwMC5kLCB3enIsIHc0DQo+ICAgICAgICAgLnAy YWxpZ24gMywsNw0KPiAuTDM6DQo+ICAgICAgICAgbGQxZCAgICB6MS5kLCBwMC96LCBbeDEsIHg1 LCBsc2wgM10NCj4gICAgICAgICBmY21ndCAgIHAxLmQsIHAwL3osIHoxLmQsICMwLjANCj4gICAg ICAgICBtb3YgICAgIHAyLmIsIHAxLmINCj4gICAgICAgICBub3QgICAgIHAxLmIsIHAwL3osIHAx LmINCj4gICAgICAgICBsZDFkICAgIHowLmQsIHAyL3osIFt4MiwgeDUsIGxzbCAzXQ0KPiAgICAg ICAgIGxkMWQgICAgejIuZCwgcDEveiwgW3gzLCB4NSwgbHNsIDNdDQo+ICAgICAgICAgZmFkZCAg ICB6MC5kLCB6MS5kLCB6MC5kDQo+ICAgICAgICAgbW92cHJmeCB6MC5kLCBwMS9tLCB6Mi5kDQo+ ICAgICAgICAgZnN1YiAgICB6MC5kLCBwMS9tLCB6MC5kLCB6MS5kDQo+ICAgICAgICAgc3QxZCAg ICB6MC5kLCBwMCwgW3gwLCB4NSwgbHNsIDNdDQo+ICAgICAgICAgYWRkICAgICB4NSwgeDUsIHg2 DQo+ICAgICAgICAgd2hpbGVsbyBwMC5kLCB3NSwgdzQNCj4gICAgICAgICBiLmFueSAgIC5MMw0K PiAuTDE6DQo+ICAgICAgICAgcmV0DQo+IA0KPiBJdCB3b3VsZCBiZSBnb29kIHRvIGZpeCB0aGlz IGluIFJUTCDigJxzb21laG934oCdLg0KPiANCj4gQnV0IGZvciBmMTEgd2Ugc3RpbGwgZ2V0Og0K PiANCj4gZjExOg0KPiAuTEZCMToNCj4gICAgICAgICAuY2ZpX3N0YXJ0cHJvYw0KPiAgICAgICAg IGNtcCAgICAgdzQsIDANCj4gICAgICAgICBibGUgICAgIC5MNg0KPiAgICAgICAgIG1vdiAgICAg eDIsIDANCj4gICAgICAgICBjbnRkICAgIHg1DQo+ICAgICAgICAgd2hpbGVsbyBwMS5kLCB3enIs IHc0DQo+ICAgICAgICAgcHRydWUgICBwMy5iLCBhbGwNCj4gICAgICAgICAucDJhbGlnbiAzLCw3 DQo+IC5MODoNCj4gICAgICAgICBsZDFkICAgIHowLmQsIHAxL3osIFt4MSwgeDIsIGxzbCAzXQ0K PiAgICAgICAgIGZjbWd0ICAgcDAuZCwgcDEveiwgejAuZCwgIzAuMA0KPiAgICAgICAgIGZjbWd0 ICAgcDIuZCwgcDMveiwgejAuZCwgIzAuMA0KPiAgICAgICAgIG5vdCAgICAgcDAuYiwgcDEveiwg cDAuYg0KPiAgICAgICAgIGxkMWQgICAgejEuZCwgcDAveiwgW3gzLCB4MiwgbHNsIDNdDQo+ICAg ICAgICAgZnN1YiAgICB6MS5kLCBwMC9tLCB6MS5kLCB6MC5kDQo+ICAgICAgICAgc2VsICAgICB6 MC5kLCBwMiwgejAuZCwgejEuZA0KPiAgICAgICAgIHN0MWQgICAgejAuZCwgcDEsIFt4MCwgeDIs IGxzbCAzXQ0KPiAgICAgICAgIGFkZCAgICAgeDIsIHgyLCB4NQ0KPiAgICAgICAgIHdoaWxlbG8g cDEuZCwgdzIsIHc0DQo+ICAgICAgICAgYi5hbnkgICAuTDgNCj4gLkw2Og0KPiAgICAgICAgIHJl dA0KPiANCj4gVGhpcyBpcyB3aGVyZSB0aGUgVkVDX0NPTkRfRVhQUiBjb2RlIEkgbWVudGlvbmVk IHNob3VsZCBjb21lIGluLg0KPiBBdCB0aGUgbW9tZW50LCBiZWZvcmUgZ2VuZXJhdGluZzoNCj4g DQo+ICAgVkVDX0NPTkRfRVhQUjxDLCBFMSwgRTI+DQo+IA0KPiB3ZSBjaGVjayB3aGV0aGVyIHRo ZXJlIGFyZSBhbnkgb3RoZXIgb3BlcmF0aW9ucyBwcmVkaWNhdGVkIG9uIEMgJg0KPiBMT09QX01B U0suICBJZiBzbywgd2UgdXNlOg0KPiANCj4gICBWRUNfQ09ORF9FWFBSPEMgJiBMT09QX01BU0ss IEUxLCBFMj4NCj4gDQo+IGluc3RlYWQuICBUaGlzIGF2b2lkcyBib3RoIEMgYW5kIEMgJiBMT09Q X01BU0sgYmVpbmcgbGl2ZSBhdCB0aGUgc2FtZSB0aW1lLg0KPiANCj4gVGhlIGNoYW5nZSBJIHdh cyBzdWdnZXN0aW5nIHdhcyB0aGF0IHdlIHNob3VsZCBhbHNvIGNoZWNrIHdoZXRoZXIgdGhlcmUN Cj4gYXJlIGFueSBvcGVyYXRpb25zIHByZWRpY2F0ZWQgb24gfkMgJiBMT09QX01BU0suICBJZiBz bywgd2Ugc2hvdWxkDQo+IGdlbmVyYXRlOg0KPiANCj4gICBWRUNfQ09ORF9FWFBSPH5DICYgTE9P UF9NQVNLLCBFMiwgRTE+DQo+IA0KPiBBZ2FpbiwgdGhlIGp1c3RpZmljYXRpb24gaXMgdGhhdCB3 ZSBkb24ndCBoYXZlIEMgYW5kIH5DICYgTE9PUF9NQVNLIGxpdmUgYXQNCj4gdGhlIHNhbWUgdGlt ZS4gIElmIEMgaXRzZWxmIGhhcyB0aGUgZm9ybSB+QycgdGhlbiBzd2FwcGluZyB0aGUgb3BlcmFu ZHMgYWxzbw0KPiBzYXZlcyBhIG5lZ2F0aW9uLg0KPiANCj4gPiBUaGlzIGNvZGUgaXMgZmluZSBh cyBmYXIgYXMgSSBjYW4gdGVsbC4gIEJ1dCB0aGVyZSdzIG5vdGhpbmcgeW91IGNhbg0KPiA+IGRv IGhlcmUuIFRoZSBtYXNrIGl0IG5lZWRzIGlzIH5vcmlnaW5hbCBTbyBpdCBkb2VzIG5vdCBmaW5k IGFuIGludmVyc2UgbWFzaw0KPiB0byB1c2UgYmVjYXVzZSBpdCBoYXMgdG8gaG9ub3IgZmxvYXRp bmcgcG9pbnQgZXhjZXB0aW9ucy4NCj4gPg0KPiA+IEFuZCBpbmRlZWQgYC1mbm8tdHJhcHBpbmct bWF0aGAgb3IgYC1PZmFzdGAgZ2VuZXJhdGVzIHRoZSBtb3N0IG9wdGltYWwNCj4gPiBzZXF1ZW5j ZSwgYnV0IHdoZW4gaG9ub3JpbmcgdHJhcHMgaXQgY2FuJ3QgcmUtdXNlIGludmVydCBleGlzdGlu ZyBtYXNrLA0KPiB3aGljaCBsZWF2ZXMgdGhlIG9wZXJhdGlvbiB1bnByZWRpY2F0ZWQuDQo+ID4N Cj4gPiBTbyBpcyB3aGF0IHlvdSdyZSByZXF1ZXN0aW5nIHRoYXQgaXQgbG9va3MgaW5zaWRlIHVu YXJ5IG9wZXJhdG9ycyBhbmQgdHJpZXMgdG8NCj4gQ1NFIHRoZSB0aGluZyB0aGV5J3JlIHBvaW50 ZWQgdG8/DQo+IA0KPiBbSG9wZWZ1bGx5IGFuc3dlcmVkIHRoaXMgYWJvdmVdDQoNClllcyBpdCBk b2VzLCBhbG9uZyB3aXRoIHRoZSBzcGxpdCBhYm92ZS4gSSBoYWQgb3JpZ2luYWxseSB0aG91Z2h0 IHlvdSBtZWFudCB0aGUNClZFQ19DT05EX0VYUFIgc2hvdWxkIHRha2UgY2FyZSBvZiBib3RoIHBy b2JsZW1zLi4NCg0KPiANCj4gPiBJbiB3aGljaCBjYXNlIGlzbid0IGl0IGFib3V0IHRoZSBzYW1l IGFzIHdoYXQgSSBoYWQgYmVmb3JlIGp1c3QgdGhhdCB0aGUNCj4gdmVjdG9yaXplciBkaWQgdGhl IENTRSBpdHNlbGY/DQo+IA0KPiBJTU8gdGhlIFZFQ19DT05EX0VYUFIgb3B0aW1pc2F0aW9uIGlz IG1vcmUgc2VsZWN0aXZlLiAgSXQgb25seSBjaGFuZ2VzDQo+IHRoZSBnaW1wbGUgaWYgd2Uga25v dyB0aGF0IGl0IHdpbGwgaGF2ZSBhbiBlZmZlY3QgKGluIHRlcm1zIG9mIHJlZHVjaW5nIHRoZQ0K PiBudW1iZXIgb2YgU1NBX05BTUVzIHRoYXQgaGF2ZSBtdWx0aXBsZSB1c2VzKS4gIEFsc28sIHVu bGlrZSB0aGUgb3JpZ2luYWwNCj4gcGF0Y2gsIHRoZXJlJ3Mgbm8gZG91YmxlLW1hc2tpbmcgaW52 b3ZsZWQ6IH5DICYgTE9PUF9NQVNLIHdpbGwgb25seSBhcHBseQ0KPiBMT09QX01BU0sgb25jZS4N Cj4gDQo+ID4gSWYgdGhhdCdzIHRoZSBjYXNlIG1heWJlIGl0J3MgYmV0dGVyIHRvIGRvIGxvb2t1 cHMgaW50byBsb29wX3ZpbmZvLQ0KPiA+c2NhbGFyX2NvbmRfbWFza2VkX3NldCBpbiBwcmVwYXJl X2xvYWRfc3RvcmVfbWFzaz8NCj4gPiBTbyB0aGF0IGl0IGp1c3QgYXBwbGllcyB0byBldmVyeXRo aW5nPw0KPiANCj4gc2NhbGFyX2NvbmRfbWFza2VkX3NldCBvbmx5IGV4aXN0cyB0byBjb252ZXJ0 IGEgbWFzayB0aGF0IGlnbm9yZXMNCj4gTE9PUF9NQVNLIGludG8gb25lIHRoYXQgaXMgQU5EZWQg d2l0aCBMT09QX01BU0suICBGb3IgbG9hZHMgYW5kIHN0b3Jlcw0KPiB3ZSBhbHdheXMgQU5EIHdp dGggTE9PUF9NQVNLLCBzbyBhIGxvb2t1cCBpc24ndCBuZWNlc3NhcnkuDQoNCkZhaXIgZW5vdWdo LCANCg0KVGhhbmtzIGZvciB0aGUgZXhwbGFuYXRpb24hDQoNCkknbGwga2VlcCB0aGlzIGluIG1p bmQgZm9yIHRoZSBvdGhlciBwYXRjaGVzLg0KDQpUaGFua3MsDQpUYW1hcg0KPiANCj4gVGhhbmtz LA0KPiBSaWNoYXJkDQo=