From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2063.outbound.protection.outlook.com [40.107.21.63]) by sourceware.org (Postfix) with ESMTPS id 945193858D35 for ; Wed, 28 Jun 2023 16:01:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 945193858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H3DnSunCAYUZ2oI5gkh85odWbXAqxeE4OPdDoBox4p8=; b=iApkGU6st7pUb+tlzoYJYgBrEgBOd7q57dxS8ZEfJU6gvn4lWQUhCimGlsI28EqAajiRexlS5kRODeiIpnKQwSvMrg8M0RIoOOqHMTF5edhfE30+6X1oQDXIRJGV4wwDZng6qjldr6Rg5fP8pqOoDBVtAUz+htw1pI9S+c7UVb8= Received: from AM5PR1001CA0068.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::45) by DB3PR08MB9111.eurprd08.prod.outlook.com (2603:10a6:10:43c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Wed, 28 Jun 2023 16:00:57 +0000 Received: from AM7EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:15:cafe::4c) by AM5PR1001CA0068.outlook.office365.com (2603:10a6:206:15::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.34 via Frontend Transport; Wed, 28 Jun 2023 16:00:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT039.mail.protection.outlook.com (100.127.140.224) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.20 via Frontend Transport; Wed, 28 Jun 2023 16:00:57 +0000 Received: ("Tessian outbound 546d04a74417:v142"); Wed, 28 Jun 2023 16:00:57 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: bbe5042b29c0430a X-CR-MTA-TID: 64aa7808 Received: from dad517fe458b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3752F682-B441-43A0-BCB6-CCFAFE4CCC45.1; Wed, 28 Jun 2023 16:00:46 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id dad517fe458b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 28 Jun 2023 16:00:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IpPbejfC58mlBjxcbbtat8HZuCiWwH23PxZrCKZOGy6bhkONzoyRbCP81YDNBJtO3/UBz/o9T+BODGYD37YDbczZcfx5Hz6ray8LR699I2E6jPDoLnVnGBNt9zVAlYecvZsNVD6+4StkXa0EG+BglBDSKfG3ZoGbxmQDoRDRouhnLCJZzILdTIrIM987ixgKo5o0HycGIcpsSblTgCl0rjkltnBYu4RtAQnFFCqFlt1M4Q2FTF+qZvUFo9xgD1yjk+0VOyFwOmiK6RDFGpOD6iCmfM1b6+7DCZVeaP7eYxnyQ/oIsINZEAQTTZygwMNVJZbsT81HL5QtA7B4YNhgkg== 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=H3DnSunCAYUZ2oI5gkh85odWbXAqxeE4OPdDoBox4p8=; b=QVTaFzWHanZBke1CL05cXpjESpB/ITPxtk+n7ZTeBLum2IRuJgeUvCGb9hxVTgD1KSJQt4+cHNyEwH0tU2jHyyNjE0tJRmR1Fnp3LwPjYDDQGudd98LX54GkFRhJf2kMY5Iz67RtbzYOJtWF8kvAyncfh/QG9sdaSrDTpvaMLQeh4p0bopvNIw85jTybLMolqu6QABmfuJxxEwhEZzIbeV30Xte9Vla6FdBuN6zm3dWj1Im5Zh3zZU6srsLuACzTLJVg9qvF33syFZpzzdowy4OrnjeEusrMZ6N1FkouleTRaplgRFP6iRw2193fwMQ0DqKiTt/+IA5AZUqkVCGCmQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H3DnSunCAYUZ2oI5gkh85odWbXAqxeE4OPdDoBox4p8=; b=iApkGU6st7pUb+tlzoYJYgBrEgBOd7q57dxS8ZEfJU6gvn4lWQUhCimGlsI28EqAajiRexlS5kRODeiIpnKQwSvMrg8M0RIoOOqHMTF5edhfE30+6X1oQDXIRJGV4wwDZng6qjldr6Rg5fP8pqOoDBVtAUz+htw1pI9S+c7UVb8= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VE1PR08MB5568.eurprd08.prod.outlook.com (2603:10a6:800:1a8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Wed, 28 Jun 2023 16:00:44 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::2301:1cde:cfe7:eaf0]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::2301:1cde:cfe7:eaf0%6]) with mapi id 15.20.6521.026; Wed, 28 Jun 2023 16:00:43 +0000 From: Tamar Christina To: =?utf-8?B?6ZKf5bGF5ZOy?= , gcc-patches CC: rguenther , jlaw , Richard Sandiford Subject: RE: FW: [PATCH v5 0/19] Support early break/return auto-vectorization Thread-Topic: FW: [PATCH v5 0/19] Support early break/return auto-vectorization Thread-Index: AQHZqcYtai/SzVZ0SE+5WtW8jsrnwq+gS/oigAAM2JA= Date: Wed, 28 Jun 2023 16:00:43 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|VE1PR08MB5568:EE_|AM7EUR03FT039:EE_|DB3PR08MB9111:EE_ X-MS-Office365-Filtering-Correlation-Id: 228e414e-6395-4d2a-faec-08db77f0dc80 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: c+xu1xvz0sHUx9Nxhq0xVukGTcq+dUJTkCHoimjtXE21MJhxDM+6u896P0gXyH4wVPY7IfcF5Lk1RUZ/ErsuV2aEKZziNcrM0aiHJpedZie+UKtwmpTT0fX1R4yS6XvC6gOX8ZyDj2bfekTdM+KjP7hc9+mzQSRtw8IFktUyhqpKK0E1AdVdfR6gz0Whevg15W+fHMWX3LB03mXvH9I+sI+2p2Nt4wXkRNWfAEvJeKwN9Oty8a1E6gRhB8F7bcR7QqvGMwnF50J3IB1tb4v7bejws5dqsIjRVEg+oxuwlmqFTLeSoxD0y4TWkKDxBRZAuPLJdXoLOSm0eSy21r0GcF2CRu5lG/sUw4jExMmXPumy9qjS+OSDRXVSvo5oNcJIxZgCBSMQub21pjP7QT2NiV3BHIKC7tIECj/xwrZxZjvYVkYYa+Ha65xrUubWtHnmsY/kGC9GyHtzcLAub506aCINp0yqktQGpY0V1zwYPYknD80oMI9/SNEXOTLwDSscPs+EBdxRbRXU+F7Kzs8jfxRnrCdLzqfkj1FGdaqX9Uxa4HFv1Ja9q6SlZKcquDnnAlXui+do5cSkP3Vs+JGOqxLe4W6A7IHeiJsHyXwTlOio4kTRRvvE+K5ib+sZx/2CcED9prmr5mkFoPtosZ99FA== 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:(13230028)(4636009)(346002)(136003)(396003)(376002)(39860400002)(366004)(451199021)(53546011)(26005)(6506007)(33656002)(86362001)(30864003)(5660300002)(52536014)(66476007)(8936002)(38070700005)(66446008)(316002)(8676002)(64756008)(41300700001)(66556008)(4326008)(122000001)(66946007)(38100700002)(55016003)(2906002)(9686003)(186003)(71200400001)(76116006)(478600001)(54906003)(83380400001)(7696005)(110136005)(357404004);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5568 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 131866b3-7193-45a4-5cb7-08db77f0d426 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z9VnbPlw1nvv+JCcM1yX7GpD/Om2KA8kpp+6EbHAZrxe1E45SX9BxCd6gw6rfbb3OHb42zUHf2SWbcPPkEwBDLbgpEA+olbpdTgNLbFAVNAd3IJi3g+fPan6eWbBT/cvU5cAG5uKFlEb1yO7/3eeHdVqEozePimWlHaT5TGPNIVZi2iCrQXXv63kk2ukSqvSNB1zKJ2zD8tJXSXUFScy+KqTy/wcpljkrB+q+sSRJg0IbPKfZu68aLU2VUlDa1ksnmxlvAQPchCMjh2BUUZ1CxoVTl8axkbtNJ1j1YRRgvSG2k5BW9B2f8qIcw/xLJFG1rii1hPggQZ69OQg7C065ZZR//1M2DUPWKCyaOfDhepYeagoy+723bWOufW/qDRJbB030q3letPnRVM/BW56UnpSFZgYkWzKxeD/nEkN7aKsXOUpydiPjWawBPPOTqHCbgPzNU/sLnS0VtMj8RAjPPRsRXnyuO1D9YGWHknxamV+kAAWbLMk5J+am18/3/xIVNgU6QEXu7XzgFEW7uicFsaImuyGps0ceoSxpGDpONV5VFfbUEjopSp+i/IOqlESDnvxgirBr1dP1ctcoFuqOzh7IIPzjT15pqoD46kDhv2XwgJr3RAwIdgLcVbf6vuixJvs1DCDYZatfbayPm6AUI3smnEpqEQuZgvYTs1CSNnM4iixTCxzARg0znEmXSjSl78TbqxdODcDNw9xsJrIBVnFfELWboUiYDybW5uGx2iOXTqD1EIrPXlnkP0KQzdrzW9u/rMfOShD8gncrla9Rw== 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:(13230028)(4636009)(136003)(346002)(396003)(39860400002)(376002)(451199021)(36840700001)(46966006)(40470700004)(33656002)(70586007)(70206006)(316002)(478600001)(4326008)(8936002)(52536014)(8676002)(5660300002)(40460700003)(55016003)(36860700001)(86362001)(110136005)(40480700001)(2906002)(54906003)(41300700001)(82310400005)(9686003)(7696005)(30864003)(53546011)(186003)(47076005)(6506007)(81166007)(336012)(356005)(26005)(83380400001)(82740400003)(357404004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2023 16:00:57.6947 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 228e414e-6395-4d2a-faec-08db77f0dc80 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: AM7EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB9111 X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_10_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGkgSnV6aGUsDQoNCj4gDQo+IEhpLCBUYW1hci4NCj4gDQo+IFRoaXMgaXMgYW4gYW1hemluZyBh dXRvLXZlY3Rvcml6YXRpb24gZmxvdy4NCj4gDQo+IEkgYW0gdGhpbmtpbmcgYWJvdXQgd2hldGhl ciBSVlYgY2FuIGFsc28gZ2V0IGJlbmVmaXRzIGZyb20gdGhpcyBvcHRpbWl6YXRpb24uDQo+IElN SE8sIFJWViBzaG91bGQgYmUgYWxzbyB1c2luZyB0aGlzIGZsb3cuDQo+IA0KPiBTbywgdG8gYWxs b3cgUlZWICAodGFyZ2V0IHVzZXMgbGVuIGFzIGxvb3BfY29udHJvbCBhbmQgbWFzayBhcyBmbG93 IGNvbnRyb2wpLCBJDQo+IGFtIG5vdCBzdXJlIHdoZXRoZXIgd2UgY2FuIGRvIHRoaXMgKEZlZWwg ZnJlZSB0byBjb3JyZWN0IG1lIGlmIEkgYW0gd3JvbmcpOg0KPiANCj4gKyAgICAgIGlmIChMT09Q X1ZJTkZPX0NBTl9VU0VfUEFSVElBTF9WRUNUT1JTX1AgKGxvb3BfdmluZm8pKQ0KPiArCXZlY3Rf cmVjb3JkX2xvb3BfbWFzayAobG9vcF92aW5mbywgbWFza3MsIG5jb3BpZXMsIHRydXRoX3R5cGUs DQo+IE5VTEwpOw0KPiANCj4gTWF5YmUgaXQgY2FuIGJlID8NCj4gDQo+IGlmIChMT09QX1ZJTkZP X0NBTl9VU0VfUEFSVElBTF9WRUNUT1JTX1AgKGxvb3BfdmluZm8pKSB7DQo+ICAgaWYgKG1hc2tf bG9vcF9wKQ0KPiAgICAgIHZlY3RfcmVjb3JkX2xvb3BfbWFzaw0KPiAgICBlbHNlDQo+ICAgICAg dmVjdF9yZWNvcmRfbG9vcF9sZW4NCj4gfQ0KPiANCg0KWWVhaCwgdGhhdCBzaG91bGQgYmUgdGhl IG9ubHkgY2hhbmdlIHJlcXVpcmVkLCAgSSBzdGFydGVkIHRoaXMgcGF0Y2ggYmVmb3JlIHRoZSBs b29wX2xlbiBjaGFuZ2UNCm1hZGUgaXQgaW4gYW5kIGp1c3QgcmViYXNlZCByZWNlbnRseSDwn5iK DQoNCj4gDQo+ICsgIHRyZWUgY29uZCA9IGdpbXBsZV9hc3NpZ25fbGhzIChuZXdfc3RtdCk7DQo+ ICsgIGlmIChtYXNrZWRfbG9vcF9wKQ0KPiArICAgIHsNCj4gKyAgICAgIHRyZWUgbWFzayA9IHZl Y3RfZ2V0X2xvb3BfbWFzayAobG9vcF92aW5mbywgZ3NpLCBtYXNrcywgbmNvcGllcywNCj4gdHJ1 dGhfdHlwZSwgMCk7DQo+ICsgICAgICBjb25kID0gcHJlcGFyZV92ZWNfbWFzayAobG9vcF92aW5m bywgVFJFRV9UWVBFIChtYXNrKSwgbWFzaywgY29uZCwNCj4gKwkJCSAgICAgICAmY29uZF9nc2kp Ow0KPiArICAgIH0NCj4gKw0KPiArICB0cmVlIHQgPSBmb2xkX2J1aWxkMiAoTkVfRVhQUiwgYm9v bGVhbl90eXBlX25vZGUsIGNvbmQsDQo+ICsJCQlidWlsZF96ZXJvX2NzdCAodHJ1dGhfdHlwZSkp Ow0KPiANCj4gRnJvbSBteSB1bmRlcnN0YW5kaW5nLCB5b3UgYXJlIHVzaW5nIGZpbmFsX21hc2sg PSBsb29wX21hc2sgKFdISUxFX1VMVCkNCj4gJiYgY29udHJvbF9tYXNrIChjb21wYXJpc29uKS4N Cj4gVGhlbiBUZXN0IGZpbmFsX21hc2sgdXNpbmcgTkVfRVhQUi4gQW0gSSByaWdodD8NCg0KWWVh aCB0aGF0J3MgcmlnaHQsIEl0J3MgY3JlYXRpbmcgdGhlIG1hc2sgZm9yIHBhcnRpYWwgaXRlcmF0 aW9ucy4gIFRoZSBvbmx5IG90aGVyIGNvbnN0cmFpbnQgaXMNCmJlaW5nIGFibGUgdG8gcmVkdWNl IGEgYm9vbGVhbiBtYXNrIHVzaW5nIGluY2x1c2l2ZSBPUiwgIGJ1dCB0aGF0J3Mgb3B0aW9uYWwg YW5kIGlzIG9ubHkNCm5lZWRlZCBpZiBvbmUgc2lkZSBvZiB0aGUgY29tcGFyaXNvbiBwcm9kdWNl cyBtb3JlIHRoYW4gMSBjb3B5IChzbyBpdCdzIG9ubHkgY2hlY2tlZCB0aGVuKS4NCg0KPiANCj4g Rm9yIFJWViwgSSB0aGlua2luZyB3aGV0aGVyIHdlIGNhbiBoYXZlIGEgZ29vZCB3YXkgdG8gZG8g dGhpcyB0ZXN0aW5nLg0KPiBOb3Qgc3VyZSB3aGV0aGVyIHdlIGNhbiBoYXZlIHNvbWV0aGluZyBs aWtlIExFTl9URVNUX01BU0tfTkUgKGxvb3BfbGVuLA0KPiBjb250cm9sX21hc2suLi4pDQo+IA0K DQpIbW0gSXMganVzdCB0aGUgdmVjdF9yZWNvcmRfbG9vcF9sZW4gY2hhbmdlIG5vdCBlbm91Z2g/ IChJIGhhdmVuJ3QgZm9sbG93ZWQgdGhlIG1hc2tpbmcNCmltcGxlbWVudGF0aW9uIGluIFJWViBp biBkZXRhaWwpIGJ1dCBJIGFzc3VtZSB0aGF0IGl0J3MgZm9sbG93aW5nIHRoZSBnZW5lcmFsIHBy aW5jaXBsZSB0aGFuDQomIGFuIG9wZXJhdGlvbiB3aXRoIGEgbWFzayBjcmVhdGVzIGEgbWFza2Vk IG9wZXJhdGlvbj8NCg0KVGhhdCBpcyB0byBzYXksIEkgdGhvdWdodCBMT09QX0xFTiB3YXMgb25s eSBmb3IgdGhlIGxvb3AgY29udHJvbD8gV2hpY2ggZG9lc24ndCBjaGFuZ2UgaGVyZS4NCg0KPiBJ IGFtIG5vdCBzYXlpbmcgdGhhdCB3ZSBzaG91bGQgc3VwcG9ydCAiZWFybHkgYnJlYWsiIGF1dG8t dmVjdG9yaXphdGlvbiBmb3INCj4gUlZWIChsb29wX2xlbiAmJiBjb250cm9sX21hc2spLg0KPiBJ IGFtIGp1c3Qgd3JpdGUgc29tZSBjb21tZW50cyB0cnlpbmcgdG8gZmlndXJlIG91dCBob3cgSSBj YW4gYWRhcHQgeW91cg0KPiB3b3JraW5nIGZvciBSVlYgaW4gdGhlIGZ1dHVyZS4NCj4gDQoNClll cyBoYXBweSB0byBoZWxwLCB0aGUgbW9yZSB1c2VzIGl0IGdldHMgdGhlIG1vcmUgYnVncyBJIGNh biBmaXgg8J+Yig0KDQpDaGVlcnMsDQpUYW1hcg0KDQo+IFRoYW5rcy4NCj4gDQo+IA0KPiBqdXpo ZS56aG9uZ0ByaXZhaS5haQ0KPiANCj4gRnJvbTogTGksIFBhbjINCj4gRGF0ZTogMjAyMy0wNi0y OCAyMjoyMQ0KPiBUbzoganV6aGUuemhvbmdAcml2YWkuYWkNCj4gU3ViamVjdDogRlc6IFtQQVRD SCB2NSAwLzE5XSBTdXBwb3J0IGVhcmx5IGJyZWFrL3JldHVybiBhdXRvLXZlY3Rvcml6YXRpb24N Cj4gRllJLg0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2NjLXBh dGNoZXMgPGdjYy1wYXRjaGVzLWJvdW5jZXMrcGFuMi5saT1pbnRlbC5jb21AZ2NjLmdudS5vcmc+ DQo+IE9uIEJlaGFsZiBPZiBUYW1hciBDaHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVzDQo+IFNlbnQ6 IFdlZG5lc2RheSwgSnVuZSAyOCwgMjAyMyA5OjQxIFBNDQo+IFRvOiBnY2MtcGF0Y2hlc0BnY2Mu Z251Lm9yZw0KPiBDYzogbmRAYXJtLmNvbTsgcmd1ZW50aGVyQHN1c2UuZGU7IGpsYXdAdmVudGFu YW1pY3JvLmNvbQ0KPiBTdWJqZWN0OiBbUEFUQ0ggdjUgMC8xOV0gU3VwcG9ydCBlYXJseSBicmVh ay9yZXR1cm4gYXV0by12ZWN0b3JpemF0aW9uDQo+IA0KPiBIaSBBbGwsDQo+IA0KPiBUaGlzIHBh dGNoIGFkZHMgaW5pdGlhbCBzdXBwb3J0IGZvciBlYXJseSBicmVhayB2ZWN0b3JpemF0aW9uIGlu IEdDQy4NCj4gVGhlIHN1cHBvcnQgaXMgYWRkZWQgZm9yIGFueSB0YXJnZXQgdGhhdCBpbXBsZW1l bnRzIGEgdmVjdG9yIGNicmFuY2ggb3B0YWIsDQo+IHRoaXMgaW5jbHVkZXMgYm90aCBmdWxseSBt YXNrZWQgYW5kIG5vbi1tYXNrZWQgdGFyZ2V0cy4NCj4gDQo+IERlcGVuZGluZyBvbiB0aGUgb3Bl cmF0aW9uLCB0aGUgdmVjdG9yaXplciBtYXkgYWxzbyByZXF1aXJlIHN1cHBvcnQgZm9yDQo+IGJv b2xlYW4gbWFzayByZWR1Y3Rpb25zIHVzaW5nIEluY2x1c2l2ZSBPUi4gIFRoaXMgaXMgaG93ZXZl ciBvbmx5IGNoZWNrZWQNCj4gdGhlbiB0aGUgY29tcGFyaXNvbiB3b3VsZCBwcm9kdWNlIG11bHRp cGxlIHN0YXRlbWVudHMuDQo+IA0KPiBDb25jcmV0ZWx5IHRoZSBraW5kIG9mIGxvb3BzIHN1cHBv cnRlZCBhcmUgb2YgdGhlIGZvcm1zOg0KPiANCj4gZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKysp DQo+IHsNCj4gICAgPHN0YXRlbWVudHMxPg0KPiAgICBpZiAoPGNvbmRpdGlvbj4pDQo+ICAgICAg ew0KPiAgICAgICAgLi4uDQo+ICAgICAgICA8YWN0aW9uPjsNCj4gICAgICB9DQo+ICAgIDxzdGF0 ZW1lbnRzMj4NCj4gfQ0KPiANCj4gd2hlcmUgPGFjdGlvbj4gY2FuIGJlOg0KPiAtIGJyZWFrDQo+ IC0gcmV0dXJuDQo+IC0gZ290bw0KPiANCj4gQW55IG51bWJlciBvZiBzdGF0ZW1lbnRzIGNhbiBi ZSB1c2VkIGJlZm9yZSB0aGUgPGFjdGlvbj4gb2NjdXJzLg0KPiANCj4gU2luY2UgdGhpcyBpcyBh biBpbml0aWFsIHZlcnNpb24gZm9yIEdDQyAxNCBpdCBoYXMgdGhlIGZvbGxvd2luZyBsaW1pdGF0 aW9ucyBhbmQNCj4gZmVhdHVyZXM6DQo+IA0KPiAtIE9ubHkgZml4ZWQgc2l6ZWQgaXRlcmF0aW9u cyBhbmQgYnVmZmVycyBhcmUgc3VwcG9ydGVkLiAgVGhhdCBpcyB0byBzYXkgYW55DQo+ICAgdmVj dG9ycyBsb2FkZWQgb3Igc3RvcmVkIG11c3QgYmUgdG8gc3RhdGljYWxseSBhbGxvY2F0ZWQgYXJy YXlzIHdpdGgga25vd24NCj4gICBzaXplcy4gTiBtdXN0IGFsc28gYmUga25vd24uICBUaGlzIGxp bWl0YXRpb24gaXMgYmVjYXVzZSBvdXIgcHJpbWFyeSB0YXJnZXQNCj4gICBmb3IgdGhpcyBvcHRp bWl6YXRpb24gaXMgU1ZFLiAgRm9yIFZMQSBTVkUgd2UgY2FuJ3QgZWFzaWx5IGRvIGNyb3NzIHBh Z2UNCj4gICBpdGVyYWlvbiBjaGVja3MuIFRoZSByZXN1bHQgaXMgbGlrZWx5IHRvIGFsc28gbm90 IGJlIGJlbmVmaWNpYWwuIEZvciB0aGF0DQo+ICAgcmVhc29uIHdlIHB1bnQgc3VwcG9ydCBmb3Ig dmFyaWFibGUgYnVmZmVycyB0aWxsIHdlIGhhdmUgRmlyc3QtRmF1bHRpbmcNCj4gICBzdXBwb3J0 IGluIEdDQy4NCj4gLSBhbnkgc3RvcmVzIGluIDxzdGF0ZW1lbnRzMT4gc2hvdWxkIG5vdCBiZSB0 byB0aGUgc2FtZSBvYmplY3RzIGFzIGluDQo+ICAgPGNvbmRpdGlvbj4uICBMb2FkcyBhcmUgZmlu ZSBhcyBsb25nIGFzIHRoZXkgZG9uJ3QgaGF2ZSB0aGUgcG9zc2liaWxpdHkgdG8NCj4gICBhbGlh cy4gIE1vcmUgY29uY3JldGVseSwgd2UgYmxvY2sgUkFXIGRlcGVuZGVuY2llcyB3aGVuIHRoZSBp bnRlcm1lZGlhdGUNCj4gdmFsdWUNCj4gICBjYW4ndCBiZSBzZXBhcmF0ZWQgZnJvbXQgdGhlIHN0 b3JlLCBvciB0aGUgc3RvcmUgaXRzZWxmIGNhbid0IGJlIG1vdmVkLg0KPiAtIFRoZSBudW1iZXIg b2YgbG9vcCBpdGVyYXRpb25zIG11c3QgYmUga25vd24sICB0aGlzIGlzIGp1c3QgYSB0ZW1wb3Jh cmlseQ0KPiAgIGxpbWl0YXRpb24gdGhhdCBJIGludGVuZCB0byBhZGRyZXNzIGluIEdDQyAxNCBp dHNlbGYgYXMgZm9sbG93IG9uIHBhdGNoZXMuDQo+IC0gUHJvbG9ndWUgcGVlbGluZywgYWxpZ25t ZW50IHBlZWxpbmlnIGFuZCBsb29wIHZlcnNpb25pbmcgYXJlIHN1cHBvcnRlZC4NCj4gLSBGdWxs eSBtYXNrZWQgbG9vcHMsIHVubWFza2VkIGxvb3BzIGFuZCBwYXJ0aWFsbHkgbWFza2VkIGxvb3Bz IGFyZQ0KPiBzdXBwb3J0ZWQNCj4gLSBBbnkgbnVtYmVyIG9mIGxvb3AgZWFybHkgZXhpdHMgYXJl IHN1cHBvcnRlZC4NCj4gLSBUaGUgZWFybHkgZXhpdCBtdXN0IGJlIGJlZm9yZSB0aGUgbmF0dXJh bCBsb29wIGV4aXQvbGF0Y2guICBUaGUgdmVjdG9yaXplciBpcw0KPiAgIGRlc2lnbmVkIGluIHdh eSB0byBwcm9wYWdlIHBoaS1ub2RlcyBkb3dud2FyZHMuICBBcyBzdWNoIHN1cHBvcnRpbmcgdGhp cw0KPiAgIGludmVydGVkIGNvbnRyb2wgZmxvdyBpcyBoYXJkLg0KPiAtIE5vIHN1cHBvcnQgZm9y IGVwaWxvZ3VlIHZlY3Rvcml6YXRpb24uICBUaGUgb25seSBlcGlsb2d1ZSBzdXBwb3J0ZWQgaXMg dGhlDQo+ICAgc2NhbGFyIGZpbmFsIG9uZS4gIEVwaWxvZ3VlIHZlY3Rvcml6YXRpb24gd291bGQg YWxzbyBub3QgYmUgcHJvZml0YWJsZS4NCj4gLSBFYXJseSBicmVha3MgYXJlIG9ubHkgc3VwcG9y dGVkIGZvciBpbm5lciBsb29wIHZlY3Rvcml6YXRpb24uDQo+IA0KPiBJIGhhdmUgcHVzaGVkIGEg YnJhbmNoIHRvIHJlZnMvdXNlcnMvdG5mY2hyaXMvaGVhZHMvZ2NjLTE0LWVhcmx5LWJyZWFrDQo+ IA0KPiBXaXRoIHRoZSBoZWxwIG9mIElQQSBhbmQgTFRPIHRoaXMgc3RpbGwgZ2V0cyBoaXQgcXVp dGUgb2Z0ZW4uICBEdXJpbmcgYm9vdHN0cmFwIGl0DQo+IGhpdCByYXRoZXIgZnJlcXVlbnRseS4g IEFkZGl0aW9uYWxseSBUU1ZDIHMzMzIsIHM0ODEgYW5kIHM0ODIgYWxsIHBhc3Mgbm93DQo+IHNp bmNlIHRoZXNlIGFyZSB0ZXN0cyBmb3Igc3VwcG9ydCBmb3IgZWFybHkgZXhpdCB2ZWN0b3JpemF0 aW9uLg0KPiANCj4gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IGNvbXBsZXRl bHkgaGFuZGxpbmcgdGhlIGVhcmx5IGJyZWFrDQo+IGluc2lkZSB0aGUgdmVjdG9yIGxvb3AgaXRz ZWxmIGJ1dCBpbnN0ZWFkIHN1cHBvcnRzIGFkZGluZyBjaGVja3Mgc3VjaCB0aGF0IGlmIHdlDQo+ IGtub3cgdGhhdCB3ZSBoYXZlIHRvIGV4aXQgaW4gdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHRoZW4g d2UgYnJhbmNoIHRvIHNjYWxhcg0KPiBjb2RlIHRvIGFjdHVhbGx5IGRvIHRoZSBmaW5hbCBWRiBp dGVyYXRpb25zIHdoaWNoIGhhbmRsZXMgYWxsIHRoZSBjb2RlIGluDQo+IDxhY3Rpb24+Lg0KPiAN Cj4gbml0ZXJzIGFuYWx5c2lzIGFuZCB0aGUgbWFqb3JpdHkgb2YgdGhlIHZlY3Rvcml6ZXIgd2l0 aCBoYXJkY29kZWQgc2luZ2xlX2V4aXQNCj4gaGF2ZSBiZWVuIHVwZGF0ZWQgd2l0aCB0aGUgdXNl IG9mIGEgbmV3IGZ1bmN0aW9uIHZlY19sb29wX2l2IHZhbHVlIHdoaWNoDQo+IHJldHVybnMgdGhl IGV4aXQgdGhlIHZlY3Rvcml6ZXIgd2FudHMgdG8gdXNlIGFzIHRoZSBtYWluIElWIGV4aXQuDQo+ IA0KPiBmb3Igbml0ZXJzIHRoZSB0aGlzIGV4aXQgaXMgd2hhdCBkZXRlcm1pbmVzIHRoZSBvdmVy YWxsIGl0ZXJhdGlvbnMgYXMgdGhhdCBpcyB0aGUNCj4gTyhpdGVycykgZm9yIHRoZSBsb29wLg0K PiANCj4gRm9yIHRoZSBzY2FsYXIgbG9vcCB3ZSBrbm93IHRoYXQgd2hhdGV2ZXIgZXhpdCB5b3Ug dGFrZSB5b3UgaGF2ZSB0byBwZXJmb3JtDQo+IGF0IG1vc3QgVkYgaXRlcmF0aW9ucy4gIEZvciB2 ZWN0b3IgY29kZSB3ZSBvbmx5IGNhc2UgYWJvdXQgdGhlIHN0YXRlIG9mIGZ1bGx5DQo+IHBlcmZv cm1lZCBpdGVyYXRpb24gYW5kIHJlc2V0IHRoZSBzY2FsYXIgY29kZSB0byB0aGUgKHBhcnRpYWxs eSkgcmVtYWluaW5nIGxvb3AuDQo+IA0KPiBUaGlzIG5ldyB2ZXJzaW9uIG9mIHRoZSBwYXRjaCBk b2VzIHRoZSBtYWpvcml0eSBvZiB0aGUgd29yayBpbiBhIG5ldyByZXdyaXR0ZW4NCj4gbG9vcCBw ZWVsaW5nLiAgVGhpcyBuZXcgZnVuY3Rpb24gbWFpbnRhaW5zIExDU1NBIGFsbCB0aGUgd2F5IHRo cm91Z2ggYW5kIG5vDQo+IGxvbmdlciByZXF1aXJlcyB0aGUgdG91Y2ggdXAgZnVuY3Rpb25zIHRo ZSB2ZWN0b3JpemVkIHVzZWQgdG8gaW5jcmVtZW50YWxseQ0KPiBhZGp1c3QgdGhlbSBsYXRlciBv bi4gIFRoaXMgbWVhbnMgdGhhdCBhc2lkZSBmcm9tIElWIHVwZGF0ZXMgYW5kIGd1YXJkIGVkZ2UN Cj4gdXBkYXRlcyB0aGUgZWFybHkgZXhpdCBjb2RlIGlzIGlkZW50aWNhbCB0byB0aGUgc2luZ2xl IGV4aXQgY2FzZXMuDQo+IA0KPiBXaGVuIHRoZSBsb29wIGlzIHBlZWxlZCBkdXJpbmcgdGhlIGNv cHlpbmcgSSBoYXZlIHRvIGdvIHRocm91Z2ggZ3JlYXQgbGVuZ3Rocw0KPiB0byBrZWVwIHRoZSBk b21pbmF0b3JzIHVwIHRvIGRhdGUuICBBbGwgZXhpdHMgZnJvbSB0aGUgZmlyc3QgbG9vcCBhcmUg cmV3aXJlZCB0bw0KPiB0aGUgbG9vcCBoZWFkZXIgb2YgdGhlIHNlY29uZCBsb29wLiAgQnV0IHRo aXMgY2FuIGNoYW5nZSB0aGUgaW1tZWRpYXRlDQo+IGRvbWluYXRvci4NCj4gDQo+IFRoZSBkb21p bmF0b3JzIGNhbiBjaGFuZ2UgYWdhaW4gd2hlbiB3ZSB3aXJlIGluIHRoZSBsb29wIGd1YXJkLCBh cyBzdWNoDQo+IHBlZWxpbmcgbm93IHJldHVybnMgYSBsaXN0IG9mIGRvbWluYXRvcnMgdGhhdCBu ZWVkIHRvIGJlIHVwZGF0ZWQgaWYgYSBuZXcNCj4gZ3VhcmQgZWRnZSBpcyBhZGRlZC4NCj4gDQo+ IEZvciB0aGUgbG9vcCBwZWVsaW5nIHdlIHJld3JpdGUgdGhlIGxvb3AgZm9ybToNCj4gDQo+IA0K PiAgICAgICAgICAgICAgICAgICAgICBIZWFkZXINCj4gICAgICAgICAgICAgICAgICAgICAgIC0t LQ0KPiAgICAgICAgICAgICAgICAgICAgICAgfHh8DQo+ICAgICAgICAgICAgICAgICAgICAgICAg Mg0KPiAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gICAgICAgICAgICAgICAgICAgICAgICB2 DQo+ICAgICAgICAgICAgICAgICAtLS0tLS0tMzwtLS0tLS0NCj4gICAgICBlYXJseSBleGl0IHwg ICAgICB8ICAgICAgfA0KPiAgICAgICAgICAgICAgICAgdiAgICAgIHYgICAgICB8IGxhdGNoDQo+ ICAgICAgICAgICAgICAgICA3ICAgICAgNC0tLS0tPjYNCj4gICAgICAgICAgICAgICAgIHwgICAg ICB8DQo+ICAgICAgICAgICAgICAgICB8ICAgICAgdg0KPiAgICAgICAgICAgICAgICAgfCAgICAg IDgNCj4gICAgICAgICAgICAgICAgIHwgICAgICB8DQo+ICAgICAgICAgICAgICAgICB8ICAgICAg dg0KPiAgICAgICAgICAgICAgICAgLS0tLS0tPjUNCj4gDQo+IGludG8NCj4gDQo+ICAgICAgICAg ICAgICAgICAgICAgIEhlYWRlcg0KPiAgICAgICAgICAgICAgICAgICAgICAgLS0tDQo+ICAgICAg ICAgICAgICAgICAgICAgICB8eHwNCj4gICAgICAgICAgICAgICAgICAgICAgICAyDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgfA0KPiAgICAgICAgICAgICAgICAgICAgICAgIHYNCj4gICAgICAg ICAgICAgICAgIC0tLS0tLS0zPC0tLS0tLQ0KPiAgICAgIGVhcmx5IGV4aXQgfCAgICAgIHwgICAg ICB8DQo+ICAgICAgICAgICAgICAgICB2ICAgICAgdiAgICAgIHwgbGF0Y2gNCj4gICAgICAgICAg ICAgICAgIDcgICAgICA0LS0tLS0+Ng0KPiAgICAgICAgICAgICAgICAgfCAgICAgIHwNCj4gICAg ICAgICAgICAgICAgIHwgICAgICB2DQo+ICAgICAgICAgICAgICAgICB8ICAgICAgOA0KPiAgICAg ICAgICAgICAgICAgfCAgICAgIHwNCj4gICAgICAgICAgICAgICAgIHwgICAgICB2DQo+ICAgICAg ICAgICAgICAgICB8ICBOZXcgSGVhZGVyDQo+ICAgICAgICAgICAgICAgICB8ICAgICAtLS0NCj4g ICAgICAgICAgICAgICAgIC0tLS0tPnx4fA0KPiAgICAgICAgICAgICAgICAgICAgICAgIDkNCj4g ICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICAgICAgICAgICAgICAgICAgICAgICAgdg0KPiAg ICAgICAgICAgICAgICAgLS0tLS0tMTA8LS0tLS0NCj4gICAgICBlYXJseSBleGl0IHwgICAgICB8 ICAgICAgfA0KPiAgICAgICAgICAgICAgICAgdiAgICAgIHYgICAgICB8IGxhdGNoDQo+ICAgICAg ICAgICAgICAgICAxNCAgICAgMTEtLS0tPjEzDQo+ICAgICAgICAgICAgICAgICB8ICAgICAgfA0K PiAgICAgICAgICAgICAgICAgfCAgICAgIHYNCj4gICAgICAgICAgICAgICAgIHwgICAgICAxMg0K PiAgICAgICAgICAgICAgICAgfCAgICAgIHwNCj4gICAgICAgICAgICAgICAgIHwgICAgICB2DQo+ ICAgICAgICAgICAgICAgICAtLS0tLS0+IDUNCj4gDQo+IFRoYXQgaXMgdG8gc2F5LCB0aGUgZmly c3QgdmVjdG9yIGxvb3AgZXhlY3V0ZXMgc28gbG9uZyBhcyB0aGUgZWFybHkgZXhpdCBpc24ndA0K PiBuZWVkZWQuICBPbmNlIHRoZSBleGl0IGlzIHRha2VuLCB0aGUgc2NhbGFyIGNvZGUgd2lsbCBw ZXJmb3JtIGF0IG1vc3QgVkYgZXh0cmENCj4gaXRlcmF0aW9ucy4gIFRoZSBleGFjdCBudW1iZXIg ZGVwZW5kaW5nIG9uIHBlZWxpbmcgYW5kIGl0ZXJhdGlvbiBzdGFydCBhbmQNCj4gd2hpY2gNCj4g ZXhpdCB3YXMgdGFrZW4gKG5hdHVyYWwgb3IgZWFybHkpLiAgIEZvciB0aGlzIHNjYWxhciBsb29w LCBhbGwgZWFybHkgZXhpdHMgYXJlDQo+IHRyZWF0ZWQgdGhlIHNhbWUuDQo+IA0KPiBXaGVuIHdl IHZlY3Rvcml6ZSB3ZSBtb3ZlIGFueSBzdGF0ZW1lbnQgbm90IHJlbGF0ZWQgdG8gdGhlIGVhcmx5 IGJyZWFrDQo+IGl0c2VsZiBhbmQgdGhhdCB3b3VsZCBiZSBpbmNvcnJlY3QgdG8gZXhlY3V0ZSBi ZWZvcmUgdGhlIGJyZWFrIChpLmUuIGhhcyBzaWRlDQo+IGVmZmVjdHMpIHRvIGFmdGVyIHRoZSBi cmVhay4gIElmIHRoaXMgaXMgbm90IHBvc3NpYmxlIHdlIGRlY2xpbmUgdG8gdmVjdG9yaXplLg0K PiANCj4gVGhpcyBtZWFucyB0aGF0IHdlIGNoZWNrIGF0IHRoZSBzdGFydCBvZiBpdGVyYXRpb25z IHdoZXRoZXIgd2UgYXJlIGdvaW5nIHRvDQo+IGV4aXQgb3Igbm90LiAgRHVyaW5nIHRoZSBhbmFs eWlzIHBoYXNlIHdlIGNoZWNrIHdoZXRoZXIgd2UgYXJlIGFsbG93ZWQgdG8gZG8NCj4gdGhpcyBt b3Zpbmcgb2Ygc3RhdGVtZW50cy4gIEFsc28gbm90ZSB0aGF0IHdlIG9ubHkgbW92ZSB0aGUgc2Nh bGFyDQo+IHN0YXRlbWVudHMsIGJ1dCBvbmx5IGRvIHNvIGFmdGVyIHBlZWxpbmcgYnV0IGp1c3Qg YmVmb3JlIHdlIHN0YXJ0IHRyYW5zZm9ybWluZw0KPiBzdGF0ZW1lbnRzLg0KPiANCj4gQ29kZWdl bjoNCj4gDQo+IGZvciBlLmcuDQo+IA0KPiAjZGVmaW5lIE4gODAzDQo+IHVuc2lnbmVkIHZlY3Rf YVtOXTsNCj4gdW5zaWduZWQgdmVjdF9iW05dOw0KPiANCj4gdW5zaWduZWQgdGVzdDQodW5zaWdu ZWQgeCkNCj4gew0KPiB1bnNpZ25lZCByZXQgPSAwOw0KPiBmb3IgKGludCBpID0gMDsgaSA8IE47 IGkrKykNCj4gew0KPiAgICB2ZWN0X2JbaV0gPSB4ICsgaTsNCj4gICAgaWYgKHZlY3RfYVtpXSA+ IHgpDQo+ICAgICAgYnJlYWs7DQo+ICAgIHZlY3RfYVtpXSA9IHg7DQo+IA0KPiB9DQo+IHJldHVy biByZXQ7DQo+IH0NCj4gDQo+IFdlIGdlbmVyYXRlIGZvciBBZHYuIFNJTUQ6DQo+IA0KPiB0ZXN0 NDoNCj4gICAgICAgICBhZHJwICAgIHgyLCAuTEMwDQo+ICAgICAgICAgYWRycCAgICB4MywgLkxB TkNIT1IwDQo+ICAgICAgICAgZHVwICAgICB2Mi40cywgdzANCj4gICAgICAgICBhZGQgICAgIHgz LCB4MywgOmxvMTI6LkxBTkNIT1IwDQo+ICAgICAgICAgbW92aSAgICB2NC40cywgMHg0DQo+ICAg ICAgICAgYWRkICAgICB4NCwgeDMsIDMyMTYNCj4gICAgICAgICBsZHIgICAgIHExLCBbeDIsICM6 bG8xMjouTEMwXQ0KPiAgICAgICAgIG1vdiAgICAgeDEsIDANCj4gICAgICAgICBtb3YgICAgIHcy LCAwDQo+ICAgICAgICAgLnAyYWxpZ24gMywsNw0KPiAuTDM6DQo+ICAgICAgICAgbGRyICAgICBx MCwgW3gzLCB4MV0NCj4gICAgICAgICBhZGQgICAgIHYzLjRzLCB2MS40cywgdjIuNHMNCj4gICAg ICAgICBhZGQgICAgIHYxLjRzLCB2MS40cywgdjQuNHMNCj4gICAgICAgICBjbWhpICAgIHYwLjRz LCB2MC40cywgdjIuNHMNCj4gICAgICAgICB1bWF4cCAgIHYwLjRzLCB2MC40cywgdjAuNHMNCj4g ICAgICAgICBmbW92ICAgIHg1LCBkMA0KPiAgICAgICAgIGNibnogICAgeDUsIC5MNg0KPiAgICAg ICAgIGFkZCAgICAgdzIsIHcyLCAxDQo+ICAgICAgICAgc3RyICAgICBxMywgW3gxLCB4NF0NCj4g ICAgICAgICBzdHIgICAgIHEyLCBbeDMsIHgxXQ0KPiAgICAgICAgIGFkZCAgICAgeDEsIHgxLCAx Ng0KPiAgICAgICAgIGNtcCAgICAgdzIsIDIwMA0KPiAgICAgICAgIGJuZSAgICAgLkwzDQo+ICAg ICAgICAgbW92ICAgICB3NywgMw0KPiAuTDI6DQo+ICAgICAgICAgbHNsICAgICB3MiwgdzIsIDIN Cj4gICAgICAgICBhZGQgICAgIHg1LCB4MywgMzIxNg0KPiAgICAgICAgIGFkZCAgICAgdzYsIHcy LCB3MA0KPiAgICAgICAgIHN4dHcgICAgeDQsIHcyDQo+ICAgICAgICAgbGRyICAgICB3MSwgW3gz LCB4NCwgbHNsIDJdDQo+ICAgICAgICAgc3RyICAgICB3NiwgW3g1LCB4NCwgbHNsIDJdDQo+ICAg ICAgICAgY21wICAgICB3MCwgdzENCj4gICAgICAgICBiY2MgICAgIC5MNA0KPiAgICAgICAgIGFk ZCAgICAgdzEsIHcyLCAxDQo+ICAgICAgICAgc3RyICAgICB3MCwgW3gzLCB4NCwgbHNsIDJdDQo+ ICAgICAgICAgYWRkICAgICB3NiwgdzEsIHcwDQo+ICAgICAgICAgc3h0dyAgICB4MSwgdzENCj4g ICAgICAgICBsZHIgICAgIHc0LCBbeDMsIHgxLCBsc2wgMl0NCj4gICAgICAgICBzdHIgICAgIHc2 LCBbeDUsIHgxLCBsc2wgMl0NCj4gICAgICAgICBjbXAgICAgIHcwLCB3NA0KPiAgICAgICAgIGJj YyAgICAgLkw0DQo+ICAgICAgICAgYWRkICAgICB3NCwgdzIsIDINCj4gICAgICAgICBzdHIgICAg IHcwLCBbeDMsIHgxLCBsc2wgMl0NCj4gICAgICAgICBzeHR3ICAgIHgxLCB3NA0KPiAgICAgICAg IGFkZCAgICAgdzYsIHcxLCB3MA0KPiAgICAgICAgIGxkciAgICAgdzQsIFt4MywgeDEsIGxzbCAy XQ0KPiAgICAgICAgIHN0ciAgICAgdzYsIFt4NSwgeDEsIGxzbCAyXQ0KPiAgICAgICAgIGNtcCAg ICAgdzAsIHc0DQo+ICAgICAgICAgYmNjICAgICAuTDQNCj4gICAgICAgICBzdHIgICAgIHcwLCBb eDMsIHgxLCBsc2wgMl0NCj4gICAgICAgICBhZGQgICAgIHcyLCB3MiwgMw0KPiAgICAgICAgIGNt cCAgICAgdzcsIDMNCj4gICAgICAgICBiZXEgICAgIC5MNA0KPiAgICAgICAgIHN4dHcgICAgeDEs IHcyDQo+ICAgICAgICAgYWRkICAgICB3MiwgdzIsIHcwDQo+ICAgICAgICAgbGRyICAgICB3NCwg W3gzLCB4MSwgbHNsIDJdDQo+ICAgICAgICAgc3RyICAgICB3MiwgW3g1LCB4MSwgbHNsIDJdDQo+ ICAgICAgICAgY21wICAgICB3MCwgdzQNCj4gICAgICAgICBiY2MgICAgIC5MNA0KPiAgICAgICAg IHN0ciAgICAgdzAsIFt4MywgeDEsIGxzbCAyXQ0KPiAuTDQ6DQo+ICAgICAgICAgbW92ICAgICB3 MCwgMA0KPiAgICAgICAgIHJldA0KPiAgICAgICAgIC5wMmFsaWduIDIsLDMNCj4gLkw2Og0KPiAg ICAgICAgIG1vdiAgICAgdzcsIDQNCj4gICAgICAgICBiICAgICAgIC5MMg0KPiANCj4gYW5kIGZv ciBTVkU6DQo+IA0KPiB0ZXN0NDoNCj4gICAgICAgICBhZHJwICAgIHgyLCAuTEFOQ0hPUjANCj4g ICAgICAgICBhZGQgICAgIHgyLCB4MiwgOmxvMTI6LkxBTkNIT1IwDQo+ICAgICAgICAgYWRkICAg ICB4NSwgeDIsIDMyMTYNCj4gICAgICAgICBtb3YgICAgIHgzLCAwDQo+ICAgICAgICAgbW92ICAg ICB3MSwgMA0KPiAgICAgICAgIGNudHcgICAgeDQNCj4gICAgICAgICBtb3YgICAgIHoxLnMsIHcw DQo+ICAgICAgICAgaW5kZXggICB6MC5zLCAjMCwgIzENCj4gICAgICAgICBwdHJ1ZSAgIHAxLmIs IGFsbA0KPiAgICAgICAgIHB0cnVlICAgcDAucywgYWxsDQo+ICAgICAgICAgLnAyYWxpZ24gMyws Nw0KPiAuTDM6DQo+ICAgICAgICAgbGQxdyAgICB6Mi5zLCBwMS96LCBbeDIsIHgzLCBsc2wgMl0N Cj4gICAgICAgICBhZGQgICAgIHozLnMsIHowLnMsIHoxLnMNCj4gICAgICAgICBjbXBsbyAgIHAy LnMsIHAwL3osIHoxLnMsIHoyLnMNCj4gICAgICAgICBiLmFueSAgIC5MMg0KPiAgICAgICAgIHN0 MXcgICAgejMucywgcDEsIFt4NSwgeDMsIGxzbCAyXQ0KPiAgICAgICAgIGFkZCAgICAgdzEsIHcx LCAxDQo+ICAgICAgICAgc3QxdyAgICB6MS5zLCBwMSwgW3gyLCB4MywgbHNsIDJdDQo+ICAgICAg ICAgYWRkICAgICB4MywgeDMsIHg0DQo+ICAgICAgICAgaW5jdyAgICB6MC5zDQo+ICAgICAgICAg Y21wICAgICB3MywgODAzDQo+ICAgICAgICAgYmxzICAgICAuTDMNCj4gLkw1Og0KPiAgICAgICAg IG1vdiAgICAgdzAsIDANCj4gICAgICAgICByZXQNCj4gICAgICAgICAucDJhbGlnbiAyLCwzDQo+ IC5MMjoNCj4gICAgICAgICBjbnR3ICAgIHg1DQo+ICAgICAgICAgbXVsICAgICB3MSwgdzEsIHc1 DQo+ICAgICAgICAgY2J6ICAgICB3NSwgLkw1DQo+ICAgICAgICAgc3h0dyAgICB4MSwgdzENCj4g ICAgICAgICBzdWIgICAgIHc1LCB3NSwgIzENCj4gICAgICAgICBhZGQgICAgIHg1LCB4NSwgeDEN Cj4gICAgICAgICBhZGQgICAgIHg2LCB4MiwgMzIxNg0KPiAgICAgICAgIGIgICAgICAgLkw2DQo+ ICAgICAgICAgLnAyYWxpZ24gMiwsMw0KPiAuTDE0Og0KPiAgICAgICAgIHN0ciAgICAgdzAsIFt4 MiwgeDEsIGxzbCAyXQ0KPiAgICAgICAgIGNtcCAgICAgeDEsIHg1DQo+ICAgICAgICAgYmVxICAg ICAuTDUNCj4gICAgICAgICBtb3YgICAgIHgxLCB4NA0KPiAuTDY6DQo+ICAgICAgICAgbGRyICAg ICB3MywgW3gyLCB4MSwgbHNsIDJdDQo+ICAgICAgICAgYWRkICAgICB3NCwgdzAsIHcxDQo+ICAg ICAgICAgc3RyICAgICB3NCwgW3g2LCB4MSwgbHNsIDJdDQo+ICAgICAgICAgYWRkICAgICB4NCwg eDEsIDENCj4gICAgICAgICBjbXAgICAgIHcwLCB3Mw0KPiAgICAgICAgIGJjcyAgICAgLkwxNA0K PiAgICAgICAgIG1vdiAgICAgdzAsIDANCj4gICAgICAgICByZXQNCj4gDQo+IE9uIHRoZSB3b3Jr bG9hZHMgdGhpcyB3b3JrIGlzIGJhc2VkIG9uIHdlIHNlZSBiZXR3ZWVuIDItM3ggcGVyZm9ybWFu Y2UNCj4gdXBsaWZ0IHVzaW5nIHRoaXMgcGF0Y2guDQo+IA0KPiBGb2xsb3cgdXAgcGxhbjoNCj4g LSBCb29sZWFuIHZlY3Rvcml6YXRpb24gaGFzIHNldmVyYWwgc2hvcnRjb21pbmdzLiAgSSd2ZSBm aWxlZCBQUjExMDIyMyB3aXRoDQo+IHRoZQ0KPiAgICBiaWdnZXIgb25lcyB0aGF0IGNhdXNlIHZl Y3Rvcml6YXRpb24gdG8gZmFpbCB3aXRoIHRoaXMgcGF0Y2guDQo+IC0gU0xQIHN1cHBvcnQuICBU aGlzIGlzIHBsYW5uZWQgZm9yIEdDQyAxNSBhcyBmb3IgbWFqb3JpdHkgb2YgdGhlIGNhc2VzIGJ1 aWxkDQo+ICAgIFNMUCBpdHNlbGYgZmFpbHMuICBUaGlzIG1lYW5zIEknbGwgbmVlZCB0byBzcGVu ZCB0aW1lIGluIG1ha2luZyB0aGlzIG1vcmUNCj4gICAgcm9idXN0IGZpcnN0LiAgQWRkaXRpb25h bGx5IGl0IHJlcXVpcmVzOg0KPiAgICAgICogQWRkaW5nIHN1cHBvcnQgZm9yIHZlY3Rvcml6aW5n IENGRyAoZ2NvbmRzKQ0KPiAgICAgICogU3VwcG9ydCBmb3IgQ0ZHIHRvIGRpZmZlciBiZXR3ZWVu IHZlY3RvciBhbmQgc2NhbGFyIGxvb3BzLg0KPiAgICBCb3RoIG9mIHdoaWNoIHdvdWxkIGJlIGRp c3J1cHRpdmUgdG8gdGhlIHRyZWUgYW5kIEkgc3VzcGVjdCBJJ2xsIGJlIGhhbmRsaW5nDQo+ICAg IGZhbGxvdXRzIGZyb20gdGhpcyBwYXRjaCBmb3IgYSB3aGlsZS4gIFNvIEkgcGxhbiB0byB3b3Jr IG9uIHRoZSBzdXJyb3VuZGluZw0KPiAgICBidWlsZGluZyBibG9ja3MgZmlyc3QgZm9yIHRoZSBy ZW1haW5kZXIgb2YgdGhlIHllYXIuDQo+IA0KPiBCb290c3RyYXBwZWQgUmVndGVzdGVkIG9uIGFh cmNoNjQtbm9uZS1saW51eC1nbnUgYW5kIG5vIGlzc3Vlcy4NCj4gQWxzbyByYW4gYWNyb3NzIHZh cmlvdXMgd29ya2xvYWRzIGFuZCBubyBpc3N1ZXMuDQo+IA0KPiBXaGVuIGNsb3NlciB0byBhY2Nl cHRhbmNlIEkgd2lsbCBydW4gb24gb3RoZXIgdGFyZ2V0cyBhcyB3ZWxsIGFuZCBjbGVhbiB1cA0K PiByZWxhdGVkIHRlc3RzdWl0ZSBmYWxsb3V0cyB0aGVyZS4NCj4gDQo+IC0tLSBpbmxpbmUgY29w eSBvZiBwYXRjaCAtLQ0KPiANCj4gLS0NCg==