From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2079.outbound.protection.outlook.com [40.107.8.79]) by sourceware.org (Postfix) with ESMTPS id 423C23858414 for ; Fri, 10 Feb 2023 17:15:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 423C23858414 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=pW2ioJ4GtakkEiar/YdtbxUM/SXJpVWnzSz/1w26Lro=; b=esuuCXrdUNaySqHVezWvzpJH3ksAlCNblN4hOpkVRFnK9UMWe8ch+MpBVHIBCjYBtnfvrfY+Ch2rr/n05EuCW5Ky3vmLyUE3NhfXf0AIo3Qrh4MB0jAJ4p4WA6v16NRV0rf7o9bLIxOdvQGksbZZL0t70/tRHPugBsIKRxqIDvQ= Received: from DB6PR0402CA0018.eurprd04.prod.outlook.com (2603:10a6:4:91::28) by DU0PR08MB9800.eurprd08.prod.outlook.com (2603:10a6:10:443::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.18; Fri, 10 Feb 2023 17:15:10 +0000 Received: from DBAEUR03FT034.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:91:cafe::6c) by DB6PR0402CA0018.outlook.office365.com (2603:10a6:4:91::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19 via Frontend Transport; Fri, 10 Feb 2023 17:15:10 +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 DBAEUR03FT034.mail.protection.outlook.com (100.127.142.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21 via Frontend Transport; Fri, 10 Feb 2023 17:15:10 +0000 Received: ("Tessian outbound baf1b7a96f25:v132"); Fri, 10 Feb 2023 17:15:10 +0000 X-CR-MTA-TID: 64aa7808 Received: from 19fd206ddbd0.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 01969DFB-B0D3-4222-8FAC-4DCCB9AFCBF9.1; Fri, 10 Feb 2023 17:15:01 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 19fd206ddbd0.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 10 Feb 2023 17:15:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F7M/UYE5Zo5F5ZSF81hU6Rc9zeyEJjlMCYK81Jnzpjij1vup3TvnGnZ5Jvi6X/YMg85WwW946GoxFwsHAaoxQAuFRNj1SIGTcacanL1Q5SdgOhOboDP+JUFSflL81tN+cHXvRGibgMu3Cid2zFwjhykHm5gHoaoHWSTigA3b0DDJl25Y1KgtjFTH1jtKrjN3a1I/AfF1LCwhlJueQiLKG9AERuib3PDtFrPawgyu2wqOWY/TlCzr9kzgWbTQPZQyCzLE2FyWxZ0AX8cskB2rsnyJmlCdv6uRrF3oha6g9YHTBvXIU2fhzxlMMNEm03Jvrnz9A4JNprCiYEFEFXcYGA== 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=pW2ioJ4GtakkEiar/YdtbxUM/SXJpVWnzSz/1w26Lro=; b=h+Px1rG2YVWK4itoB8nZxYaHqzArLfmNRArvw+hAvtbbsKG3V6/gPkYGbJeI4FAoYsaGMNjjKipgexwrCgQdRkCkZVn2gtgEru43fLLEcEEms7O7DSrqRgwm3UpGbTlqQHNMt9zNobyjmRznBrBf65wAMtY67GxzgOSu0dIWIK7iUaXpfhpahxRndP1foriMbgNlbg5o6y2JP+qkE0LuVIG+OG0JLlJPSntq2Md/iBiF1+lGgVhSiHfyUbcd75S9i/YiPiwcBOYoaEuyGSh1taPTEC7QJ4bVUODGLhFXI1AwCIBvf4feAguOplbo/lFD6KmaiyGNAEpG5M1ybqGZ4Q== 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=pW2ioJ4GtakkEiar/YdtbxUM/SXJpVWnzSz/1w26Lro=; b=esuuCXrdUNaySqHVezWvzpJH3ksAlCNblN4hOpkVRFnK9UMWe8ch+MpBVHIBCjYBtnfvrfY+Ch2rr/n05EuCW5Ky3vmLyUE3NhfXf0AIo3Qrh4MB0jAJ4p4WA6v16NRV0rf7o9bLIxOdvQGksbZZL0t70/tRHPugBsIKRxqIDvQ= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AM8PR08MB5714.eurprd08.prod.outlook.com (2603:10a6:20b:1dd::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21; Fri, 10 Feb 2023 17:14:56 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::8b7b:e3be:cccb:1936]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::8b7b:e3be:cccb:1936%6]) with mapi id 15.20.6086.021; Fri, 10 Feb 2023 17:14:56 +0000 From: Tamar Christina To: Richard Sandiford CC: Tamar Christina via Gcc-patches , nd , "rguenther@suse.de" , "jlaw@ventanamicro.com" Subject: RE: [PATCH 1/2]middle-end: Fix wrong overmatching of div-bitmask by using new optabs [PR108583] Thread-Topic: [PATCH 1/2]middle-end: Fix wrong overmatching of div-bitmask by using new optabs [PR108583] Thread-Index: AQHZPKpK/SYCPI4EDky3xQ0ADEnbFq7IMBSsgAABFlCAACYcToAAAIfAgAAHedGAAACH4IAACHVAgAAA0cA= Date: Fri, 10 Feb 2023 17:14:54 +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: DCC20FF6CB31D24EB0A2C5BFD9634368.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|AM8PR08MB5714:EE_|DBAEUR03FT034:EE_|DU0PR08MB9800:EE_ X-MS-Office365-Filtering-Correlation-Id: 280fe0a2-dfad-44b1-47a7-08db0b8a5d82 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: FcEi8u35bfV6x9JTRIFoinN+ZH0cUlhWjDHG0+iVJYOlpcnWik+ULK9FUilQSXISEgYjdM6UCvNYHpNJsXoQgiC46jrQyJrFf9dzvAupBkGMz7KpT1GqHIL6U5UBOzxMPjPrmwAGlRXnAIFxRl7qDgd3bsC0nqXU03AIxXmMqLMOreXc2qf7ZltUh6Vb3eZsUJ2FdnokeJbemDTFqd82X1bdaZoKm2bHQtGQOrci2G0nQNv5O9cG0UBFp1K/CYL7p1nZRaRV0mzj2b3rF0FhSimU1hwmcFiUOkaP7Fs/o6Ov0Dw9Itj3mNnbLLlmI0UntsM9xfwMBLJAUYLSoCoveOJUDTCzYD8MnoEiikVsOCUrcYjBdDosGNrE38vT7+r3RCgO2K078Wek6KwyR1kfW38/8tTt1UB3wco/BATGJxwlHx7cjiryVaeomgwKHtzKa8pvo9KYm5ufqh8X4uFyzlONw/7aZOOwkaHeEaTkYCvVvTAjc2KPwRZ0HCrtbqkxROVZoV1VHN3XwtpeGCxxnglg3cnPB6JHE9nrQulfSyJwWSxJ4e4Ae20BvpwdVvifz8rwK6QI5SeeGZBJXLzXX4cbJsVDbrnsgwUckDmcMWA2Zyj5Hy1015qxO2wqaUKbgs7C3BwR/uKsipQnPf0Ovm7GLrI2i1dN1U4fwIzAn9fw6P8wIeu5Wgurr41uvaE71HV5rQPugQk/WaTdXyJBvg== 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:(13230025)(4636009)(39860400002)(346002)(376002)(396003)(136003)(366004)(451199018)(30864003)(2906002)(83380400001)(38100700002)(6636002)(26005)(38070700005)(86362001)(55016003)(122000001)(8676002)(76116006)(6862004)(52536014)(316002)(54906003)(5660300002)(8936002)(4326008)(41300700001)(66556008)(66946007)(66476007)(53546011)(6506007)(33656002)(9686003)(186003)(71200400001)(7696005)(478600001)(66446008)(64756008);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5714 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: DBAEUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 45642812-5f3e-4c90-adf8-08db0b8a5404 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GAJEKiaxqeN7obXlbA8uIQZiF0wl9RlX4yUKmQJPVcWvrWyMTwGLKdaxchO/VpkqpmM0TfHGL3wihYi1+3OIUSD4aF7XIOz0JyOGKQAoQiE2190rBwuYzcg59HqOv63OvTOTHgF0Akg5LsboTVfkHBnj2SS0jLnLqq9gYFhsSmsdxXerQX5r3ZZjmOm9T3StDolayk2JEztSUc+HmsWNS2J69CxEVbmeWV1C4A85fwBcRdWWLWhnMReJ0K/GgElSCuqs6V0REILAnafxqPN75AyqkRpYdYabChkaB/Pnoio04BlixykMvV9Xctxi7IFoy9RZWo3K8zZMtsKzN1STSKSkDeeNmBonLIM3/xdyoUBC91Zfp9GRWYoxeoF/5v1rz5f86RkA2zYVXuLx6k6n7MBtJ833rZ3OImq+ykAGrOeNJ5c4FnfSHY5Q1LLY01D7q1VIRQP7dqubwVDyaMKJI9iOoe6c5/rPaxJlraLoQXV36s9dzyjCCJ/EsH4n2k6BuSaASjurD2bVVP5yDJ5g0FxQfh3vAi9S/j0Hn0jtlXlA06F+ebvprGJiJA2u3BU/Dbn3RaVTJXnVOn//rqxPH6lLxhJUS+5rwuPY31KMSjKMu6G2xZOGtS7/1KAAj74sTaNan17b1SCPvTWLAiSZtL6vklkBHlSotcrF0L8zw7q2Fe+S/k/r1rktcW058uxLZcFEiqT6eucox4VY3V6yuQ== 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:(13230025)(4636009)(346002)(136003)(396003)(39860400002)(376002)(451199018)(40470700004)(36840700001)(46966006)(36860700001)(336012)(83380400001)(82310400005)(6636002)(30864003)(54906003)(82740400003)(40460700003)(52536014)(316002)(5660300002)(86362001)(47076005)(33656002)(40480700001)(55016003)(81166007)(2906002)(356005)(4326008)(26005)(9686003)(6862004)(186003)(478600001)(8676002)(70206006)(6506007)(70586007)(7696005)(107886003)(41300700001)(53546011)(8936002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2023 17:15:10.5112 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 280fe0a2-dfad-44b1-47a7-08db0b8a5d82 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: DBAEUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9800 X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,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: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSaWNoYXJkIFNhbmRpZm9yZCA8 cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4NCj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAxMCwg MjAyMyA0OjU3IFBNDQo+IFRvOiBUYW1hciBDaHJpc3RpbmEgPFRhbWFyLkNocmlzdGluYUBhcm0u Y29tPg0KPiBDYzogVGFtYXIgQ2hyaXN0aW5hIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNA Z2NjLmdudS5vcmc+OyBuZA0KPiA8bmRAYXJtLmNvbT47IHJndWVudGhlckBzdXNlLmRlOyBqbGF3 QHZlbnRhbmFtaWNyby5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzJdbWlkZGxlLWVuZDog Rml4IHdyb25nIG92ZXJtYXRjaGluZyBvZiBkaXYtYml0bWFzaw0KPiBieSB1c2luZyBuZXcgb3B0 YWJzIFtQUjEwODU4M10NCj4gDQo+IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFy bS5jb20+IHdyaXRlczoNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+DQo+ID4+IFNl bnQ6IEZyaWRheSwgRmVicnVhcnkgMTAsIDIwMjMgNDoyNSBQTQ0KPiA+PiBUbzogVGFtYXIgQ2hy aXN0aW5hIDxUYW1hci5DaHJpc3RpbmFAYXJtLmNvbT4NCj4gPj4gQ2M6IFRhbWFyIENocmlzdGlu YSB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPjsgbmQNCj4gPj4gPG5k QGFybS5jb20+OyByZ3VlbnRoZXJAc3VzZS5kZTsgamxhd0B2ZW50YW5hbWljcm8uY29tDQo+ID4+ IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMS8yXW1pZGRsZS1lbmQ6IEZpeCB3cm9uZyBvdmVybWF0Y2hp bmcgb2YNCj4gPj4gZGl2LWJpdG1hc2sgYnkgdXNpbmcgbmV3IG9wdGFicyBbUFIxMDg1ODNdDQo+ ID4+DQo+ID4+IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFybS5jb20+IHdyaXRl czoNCj4gPj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gPj4gRnJvbTogUmlj aGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+DQo+ID4+ID4+IFNlbnQ6 IEZyaWRheSwgRmVicnVhcnkgMTAsIDIwMjMgMzo1NyBQTQ0KPiA+PiA+PiBUbzogVGFtYXIgQ2hy aXN0aW5hIDxUYW1hci5DaHJpc3RpbmFAYXJtLmNvbT4NCj4gPj4gPj4gQ2M6IFRhbWFyIENocmlz dGluYSB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPjsgbmQNCj4gPj4g Pj4gPG5kQGFybS5jb20+OyByZ3VlbnRoZXJAc3VzZS5kZTsgamxhd0B2ZW50YW5hbWljcm8uY29t DQo+ID4+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMS8yXW1pZGRsZS1lbmQ6IEZpeCB3cm9uZyBv dmVybWF0Y2hpbmcgb2YNCj4gPj4gPj4gZGl2LWJpdG1hc2sgYnkgdXNpbmcgbmV3IG9wdGFicyBb UFIxMDg1ODNdDQo+ID4+ID4+DQo+ID4+ID4+IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0 aW5hQGFybS5jb20+IHdyaXRlczoNCj4gPj4gPj4gPj4gPiBhL2djYy90cmVlLXZlY3QtcGF0dGVy bnMuY2MgYi9nY2MvdHJlZS12ZWN0LXBhdHRlcm5zLmNjIGluZGV4DQo+ID4+ID4+ID4+ID4NCj4g Pj4gPj4gPj4NCj4gPj4gPj4NCj4gPj4NCj4gNjkzNGFlYmM2OWYyMzFhZjI0NjY4ZjBhMWMzZDE0 MGU5N2Y1NTQ4Ny4uZTM5ZDdlNmIzNjJlZjQ0ZWIyZmM0NjdmMzMNCj4gPj4gPj4gPj4gNjkNCj4g Pj4gPj4gPj4gPiBkZTJhZmVhMTM5ZDYgMTAwNjQ0DQo+ID4+ID4+ID4+ID4gLS0tIGEvZ2NjL3Ry ZWUtdmVjdC1wYXR0ZXJucy5jYw0KPiA+PiA+PiA+PiA+ICsrKyBiL2djYy90cmVlLXZlY3QtcGF0 dGVybnMuY2MNCj4gPj4gPj4gPj4gPiBAQCAtMzkxNCwxMiArMzkxNCw4MiBAQCB2ZWN0X3JlY29n X2Rpdm1vZF9wYXR0ZXJuDQo+ICh2ZWNfaW5mbw0KPiA+PiA+PiAqdmluZm8sDQo+ID4+ID4+ID4+ ID4gICAgICAgIHJldHVybiBwYXR0ZXJuX3N0bXQ7DQo+ID4+ID4+ID4+ID4gICAgICB9DQo+ID4+ ID4+ID4+ID4gICAgZWxzZSBpZiAoKGNzdCA9IHVuaWZvcm1faW50ZWdlcl9jc3RfcCAob3BybmQx KSkNCj4gPj4gPj4gPj4gPiAtCSAgICYmIHRhcmdldG0udmVjdG9yaXplLmNhbl9zcGVjaWFsX2Rp dl9ieV9jb25zdCAocmhzX2NvZGUsDQo+ID4+ID4+ID4+IHZlY3R5cGUsDQo+ID4+ID4+ID4+ID4g LQkJCQkJCQkgIHdpOjp0b193aWRlDQo+ID4+IChjc3QpLA0KPiA+PiA+PiA+PiA+IC0JCQkJCQkJ ICBOVUxMLA0KPiA+PiBOVUxMX1JUWCwNCj4gPj4gPj4gPj4gPiAtCQkJCQkJCSAgTlVMTF9SVFgp KQ0KPiA+PiA+PiA+PiA+ICsJICAgJiYgVFlQRV9VTlNJR05FRCAoaXR5cGUpDQo+ID4+ID4+ID4+ ID4gKwkgICAmJiByaHNfY29kZSA9PSBUUlVOQ19ESVZfRVhQUg0KPiA+PiA+PiA+PiA+ICsJICAg JiYgdmVjdHlwZQ0KPiA+PiA+PiA+PiA+ICsJICAgJiYgZGlyZWN0X2ludGVybmFsX2ZuX3N1cHBv cnRlZF9wIChJRk5fQURESCwgdmVjdHlwZSwNCj4gPj4gPj4gPj4gPiArCQkJCQkgICAgICBPUFRJ TUlaRV9GT1JfU1BFRUQpKQ0KPiA+PiA+PiA+PiA+ICAgICAgew0KPiA+PiA+PiA+PiA+IC0gICAg ICByZXR1cm4gTlVMTDsNCj4gPj4gPj4gPj4gPiArICAgICAgLyogZGl2IG9wdGltaXphdGlvbnMg dXNpbmcgbmFycm93aW5ncw0KPiA+PiA+PiA+PiA+ICsgICAgICAgd2UgY2FuIGRvIHRoZSBkaXZp c2lvbiBlLmcuIHNob3J0cyBieSAyNTUgZmFzdGVyIGJ5DQo+ID4+ID4+ID4+ID4gKyBjYWxjdWxh dGluZyBpdA0KPiA+PiBhcw0KPiA+PiA+PiA+PiA+ICsgICAgICAgKHggKyAoKHggKyAyNTcpID4+ IDgpKSA+PiA4IGFzc3VtaW5nIHRoZSBvcGVyYXRpb24gaXMgZG9uZSBpbg0KPiA+PiA+PiA+PiA+ ICsgICAgICAgZG91YmxlIHRoZSBwcmVjaXNpb24gb2YgeC4NCj4gPj4gPj4gPj4gPiArDQo+ID4+ ID4+ID4+ID4gKyAgICAgICBJZiB3ZSBpbWFnaW5lIGEgc2hvcnQgYXMgYmVpbmcgY29tcG9zZWQg b2YgdHdvIGJsb2Nrcw0KPiA+PiA+PiA+PiA+ICsgb2YgYnl0ZXMNCj4gPj4gPj4gdGhlbg0KPiA+ PiA+PiA+PiA+ICsgICAgICAgYWRkaW5nIDI1NyBvciAwYjAwMDBfMDAwMV8wMDAwXzAwMDEgdG8g dGhlIG51bWJlciBpcw0KPiA+PiA+PiA+PiA+ICsgZXF1aXZhbGVudA0KPiA+PiA+PiB0bw0KPiA+ PiA+PiA+PiA+ICsgICAgICAgYWRkaW5nIDEgdG8gZWFjaCBzdWIgY29tcG9uZW50Og0KPiA+PiA+ PiA+PiA+ICsNCj4gPj4gPj4gPj4gPiArCSAgICBzaG9ydCB2YWx1ZSBvZiAxNi1iaXRzDQo+ID4+ ID4+ID4+ID4gKyAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lJANCj4gPj4gPj4gPj4gPiArICAgICAgIOKUgiAgICAgICAgICAgICAg4pSCICAgICAgICAgICAg ICAgIOKUgg0KPiA+PiA+PiA+PiA+ICsgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSYDQo+ID4+ID4+ID4+ID4gKwkgOC1iaXQgcGFydDEg4payICA4LWJpdCBw YXJ0MiAgIOKWsg0KPiA+PiA+PiA+PiA+ICsJCSAgICAg4pSCICAgICAgICAgICAgICAgIOKUgg0K PiA+PiA+PiA+PiA+ICsJCSAgICAg4pSCICAgICAgICAgICAgICAgIOKUgg0KPiA+PiA+PiA+PiA+ ICsJCSAgICArMSAgICAgICAgICAgICAgICsxDQo+ID4+ID4+ID4+ID4gKw0KPiA+PiA+PiA+PiA+ ICsgICAgICAgYWZ0ZXIgdGhlIGZpcnN0IGFkZGl0aW9uLCB3ZSBoYXZlIHRvIHNoaWZ0IHJpZ2h0 IGJ5DQo+ID4+ID4+ID4+ID4gKyA4LCBhbmQgbmFycm93DQo+ID4+IHRoZQ0KPiA+PiA+PiA+PiA+ ICsgICAgICAgcmVzdWx0cyBiYWNrIHRvIGEgYnl0ZS4gIFJlbWVtYmVyIHRoYXQgdGhlIGFkZGl0 aW9uDQo+ID4+ID4+ID4+ID4gKyBtdXN0IGJlIGRvbmUNCj4gPj4gPj4gaW4NCj4gPj4gPj4gPj4g PiArICAgICAgIGRvdWJsZSB0aGUgcHJlY2lzaW9uIG9mIHRoZSBpbnB1dC4gIEhvd2V2ZXIgaWYg d2UNCj4gPj4gPj4gPj4gPiArIGtub3cgdGhhdCB0aGUNCj4gPj4gPj4gPj4gYWRkaXRpb24NCj4g Pj4gPj4gPj4gPiArICAgICAgIGB4ICsgMjU3YCBkb2VzIG5vdCBvdmVyZmxvdyB0aGVuIHdlIGNh biBkbyB0aGUNCj4gPj4gPj4gPj4gPiArIG9wZXJhdGlvbiBpbiB0aGUNCj4gPj4gPj4gPj4gY3Vy cmVudA0KPiA+PiA+PiA+PiA+ICsgICAgICAgcHJlY2lzaW9uLiAgSW4gd2hpY2ggY2FzZSB3ZSBk b24ndCBuZWVkIHRoZSBwYWNrIGFuZA0KPiB1bnBhY2tzLg0KPiA+PiAqLw0KPiA+PiA+PiA+PiA+ ICsgICAgICBhdXRvIHdjc3QgPSB3aTo6dG9fd2lkZSAoY3N0KTsNCj4gPj4gPj4gPj4gPiArICAg ICAgaW50IHBvdyA9IHdpOjpleGFjdF9sb2cyICh3Y3N0ICsgMSk7DQo+ID4+ID4+ID4+ID4gKyAg ICAgIGlmIChwb3cgPT0gKGludCkgKGVsZW1lbnRfcHJlY2lzaW9uICh2ZWN0eXBlKSAvIDIpKQ0K PiA+PiA+PiA+PiA+ICsJew0KPiA+PiA+PiA+PiA+ICsJICB3aWRlX2ludCBtaW4sbWF4Ow0KPiA+ PiA+PiA+PiA+ICsJICAvKiBJZiB3ZSdyZSBpbiBhIHBhdHRlcm4gd2UgbmVlZCB0byBmaW5kIHRo ZSBvcmdpbmFsDQo+ID4+IGRlZmluaXRpb24uICAqLw0KPiA+PiA+PiA+PiA+ICsJICB0cmVlIG9w MCA9IG9wcm5kMDsNCj4gPj4gPj4gPj4gPiArCSAgZ2ltcGxlICpzdG10ID0gU1NBX05BTUVfREVG X1NUTVQgKG9wcm5kMCk7DQo+ID4+ID4+ID4+ID4gKwkgIHN0bXRfdmVjX2luZm8gc3RtdF9pbmZv ID0gdmluZm8tPmxvb2t1cF9zdG10IChzdG10KTsNCj4gPj4gPj4gPj4gPiArCSAgaWYgKGlzX3Bh dHRlcm5fc3RtdF9wIChzdG10X2luZm8pKQ0KPiA+PiA+PiA+PiA+ICsJICAgIHsNCj4gPj4gPj4g Pj4gPiArCSAgICAgIGF1dG8gb3JpZ19zdG10ID0gU1RNVF9WSU5GT19SRUxBVEVEX1NUTVQNCj4g Pj4gKHN0bXRfaW5mbyk7DQo+ID4+ID4+ID4+ID4gKwkgICAgICBpZiAoaXNfZ2ltcGxlX2Fzc2ln biAoU1RNVF9WSU5GT19TVE1UIChvcmlnX3N0bXQpKSkNCj4gPj4gPj4gPj4gPiArCQlvcDAgPSBn aW1wbGVfYXNzaWduX2xocyAoU1RNVF9WSU5GT19TVE1UDQo+ID4+IChvcmlnX3N0bXQpKTsNCj4g Pj4gPj4gPj4gPiArCSAgICB9DQo+ID4+ID4+ID4+DQo+ID4+ID4+ID4+IElmIHRoaXMgaXMgZ2Vu ZXJhbGx5IHNhZmUgKEknbSBza2lwcGluZyB0aGlua2luZyBhYm91dCBpdCBpbg0KPiA+PiA+PiA+ PiB0aGUgaW50ZXJlc3RzIG9mIGEgcXVpY2sgcmV2aWV3IDotKSksIHRoZW4gSSB0aGluayBpdCBz aG91bGQgYmUNCj4gPj4gPj4gPj4gZG9uZSBpbiB2ZWN0X2dldF9yYW5nZV9pbmZvIGluc3RlYWQu ICBVc2luZyBnaW1wbGVfZ2V0X2xocw0KPiA+PiA+PiA+PiB3b3VsZCBiZSBtb3JlIGdlbmVyYWwg dGhhbiBoYW5kbGluZyBqdXN0IGFzc2lnbm1lbnRzLg0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiA+ ICsNCj4gPj4gPj4gPj4gPiArCSAgLyogQ2hlY2sgdGhhdCBubyBvdmVyZmxvdyB3aWxsIG9jY3Vy LiAgSWYgd2UgZG9uJ3QgaGF2ZSByYW5nZQ0KPiA+PiA+PiA+PiA+ICsJICAgICBpbmZvcm1hdGlv biB3ZSBjYW4ndCBwZXJmb3JtIHRoZSBvcHRpbWl6YXRpb24uICAqLw0KPiA+PiA+PiA+PiA+ICsJ ICBpZiAodmVjdF9nZXRfcmFuZ2VfaW5mbyAob3AwLCAmbWluLCAmbWF4KSkNCj4gPj4gPj4gPj4g PiArCSAgICB7DQo+ID4+ID4+ID4+ID4gKwkgICAgICB3aWRlX2ludCBvbmUgPSB3aTo6dG9fd2lk ZSAoYnVpbGRfb25lX2NzdCAoaXR5cGUpKTsNCj4gPj4gPj4gPj4gPiArCSAgICAgIHdpZGVfaW50 IGFkZGVyID0gd2k6OmFkZCAob25lLCB3aTo6bHNoaWZ0IChvbmUsIHBvdykpOw0KPiA+PiA+PiA+ PiA+ICsJICAgICAgd2k6Om92ZXJmbG93X3R5cGUgb3ZmOw0KPiA+PiA+PiA+PiA+ICsJICAgICAg LyogV2UgbmVlZCBhZGRlciBhbmQgbWF4IGluIHRoZSBzYW1lIHByZWNpc2lvbi4gICovDQo+ID4+ ID4+ID4+ID4gKwkgICAgICB3aWRlX2ludCB6YWRkZXINCj4gPj4gPj4gPj4gPiArCQk9IHdpZGVf aW50X3N0b3JhZ2U6OmZyb20gKGFkZGVyLCB3aTo6Z2V0X3ByZWNpc2lvbg0KPiA+PiAobWF4KSwN Cj4gPj4gPj4gPj4gPiArCQkJCQkgIFVOU0lHTkVEKTsNCj4gPj4gPj4gPj4gPiArCSAgICAgIHdp OjphZGQgKG1heCwgemFkZGVyLCBVTlNJR05FRCwgJm92Zik7DQo+ID4+ID4+ID4+DQo+ID4+ID4+ ID4+IENvdWxkIHlvdSBleHBsYWluIHRoaXMgYSBiaXQgbW9yZT8gIFdoZW4gZG8gd2UgaGF2ZSBt aXNtYXRjaGVkDQo+ID4+ID4+ID4+IHByZWNpc2lvbnM/DQo+ID4+ID4+ID4NCj4gPj4gPj4gPiBD IHByb21vdGlvbiBydWxlcyB3aWxsIHByb21vdGUgZS5nLg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4g dm9pZCBmdW4yKHVpbnQ4X3QqIHJlc3RyaWN0IHBpeGVsLCB1aW50OF90IGxldmVsLCBpbnQgbikg ew0KPiA+PiA+PiA+ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKz0xKQ0KPiA+PiA+PiA+ICAg ICBwaXhlbFtpXSA9IChwaXhlbFtpXSArIGxldmVsKSAvIDB4ZmY7IH0NCj4gPj4gPj4gPg0KPiA+ PiA+PiA+IEFuZCBoYXZlIHRoZSBhZGRpdGlvbiBiZSBkb25lIGFzIGEgMzIgYml0IGludGVnZXIu ICBUaGUNCj4gPj4gPj4gPiB2ZWN0b3JpemVyIHdpbGwgZGVtb3RlIHRoaXMgZG93biB0byBhIHNo b3J0LCBidXQgcmFuZ2UNCj4gPj4gPj4gPiBpbmZvcm1hdGlvbiBpcyBub3Qgc3RvcmVkIGZvciBw YXR0ZXJucy4gIFNvIEluIHRoZSBhYm92ZSB0aGUNCj4gPj4gPj4gPiByYW5nZSB3aWxsIGNvcnJl Y3RseSBiZSAweDFmZSBidXQgdGhlIHByZWNpc2lvbiB3aWxsIGJlIHRoYXQgb2YNCj4gPj4gPj4g PiB0aGUgb3JpZ2luYWwgZXhwcmVzc2lvbiwgc28gMzIuICBUaGlzIHdpbGwgYmUgYSBtaXNtYXRj aCB3aXRoDQo+ID4+ID4+ID4gaXR5cGUgd2hpY2ggaXMgZGVyaXZlZCBmcm9tIHRoZSBzaXplIHRo ZSB2ZWN0b3JpemVyDQo+ID4+ID4+IHdpbGwgcGVyZm9ybSB0aGUgb3BlcmF0aW9uIGluLg0KPiA+ PiA+Pg0KPiA+PiA+PiBHYWgsIG1pc3NlZCB0aGlzIGZpcnN0IHRpbWUgcm91bmQsIHNvcnJ5Lg0K PiA+PiA+Pg0KPiA+PiA+PiBSaWNoaSB3b3VsZCBrbm93IGJldHRlciB0aGFuIG1lLCBidXQgSSB0 aGluayBpdCdzIGRhbmdlcm91cyB0bw0KPiA+PiA+PiByZWx5IG9uIHRoZSBvcmlnL3BhdHRlcm4g bGluayBmb3IgcmFuZ2UgaW5mb3JtYXRpb24uICBUaGUgZW5kDQo+ID4+ID4+IHJlc3VsdCBvZiBh IHBhdHRlcm4NCj4gPj4gPj4gKHZlY3Rfc3RtdF90b192ZWN0b3JpemUpIGhhcyB0byBoYXZlIHRo ZSBzYW1lIHR5cGUgYXMgdGhlIGxocyBvZg0KPiA+PiA+PiB0aGUgb3JpZ2luYWwgc3RhdGVtZW50 LiAgQnV0IHRoZSBvdGhlciBzdGF0ZW1lbnRzIGluIHRoZSBwYXR0ZXJuDQo+ID4+ID4+IHNlcXVl bmNlIGNhbiBkbyBhcmJpdHJhcnkgdGhpbmdzLiAgVGhlaXIgcmFuZ2UgaXNuJ3QgcHJlZGljdGFi bGUNCj4gPj4gPj4gZnJvbSB0aGUgcmFuZ2Ugb2YgdGhlIG9yaWdpbmFsIHN0YXRlbWVudCByZXN1 bHQuDQo+ID4+ID4+DQo+ID4+ID4+IElJUkMsIHRoZSBhZGRpdGlvbiBhYm92ZSBpcyBjb252ZXJ0 ZWQgdG86DQo+ID4+ID4+DQo+ID4+ID4+ICAgYScgPSAodWludDE2X3QpIHBpeGVsW2ldDQo+ID4+ ID4+ICAgYicgPSAodWludDE2X3QpIGxldmVsDQo+ID4+ID4+ICAgc3VtJyA9IGEnICsgYicNCj4g Pj4gPj4gICBzdW0gPSAoaW50KSBzdW0nDQo+ID4+ID4+DQo+ID4+ID4+IHdoZXJlIHN1bSBpcyB0 aGUgZGlyZWN0IHJlcGxhY2VtZW50IG9mICJwaXhlbFtpXSArIGxldmVsIiwgd2l0aA0KPiA+PiA+ PiB0aGUgc2FtZSB0eXBlIGFuZCByYW5nZS4gIFRoZSBkaXZpc2lvbiB0aGVuIHVzZXMgc3VtJyBp bnN0ZWFkIG9mIHN1bS4NCj4gPj4gPj4NCj4gPj4gPj4gQnV0IHRoZSBmYWN0IHRoYXQgc3VtJyBp cyBwYXJ0IG9mIHRoZSBzYW1lIHBhdHRlcm4gYXMgc3VtIGRvZXNuJ3QNCj4gPj4gPj4gZ3VhcmFu dGVlIHRoYXQgc3VtJyBoYXMgdGhlIHNhbWUgcmFuZ2UgYXMgc3VtLiAgRS5nLiB0aGUgcGF0dGVy bg0KPiA+PiA+PiBzdGF0ZW1lbnRzIGFkZGVkIGJ5IHRoZSBkaXZpc2lvbiBvcHRpbWlzYXRpb24g d291bGRuJ3QgaGF2ZSB0aGlzDQo+ID4+IHByb3BlcnR5Lg0KPiA+PiA+DQo+ID4+ID4gU28gbXkg YXNzdW1wdGlvbiBpcyB0aGF0IG5vIHBhdHRlcm4gd291bGQgcmVwbGFjZSBhIHN0YXRlbWVudCB3 aXRoDQo+ID4+ID4gc29tZXRoaW5nIFRoYXQgaGFzIGhpZ2hlciBwcmVjaXNpb24gdGhhbiB0aGUg QyBzdGF0ZW1lbnQuIFRoZQ0KPiA+PiA+IHBhdHRlcm4gYWJvdmUgaXMgZGVtb3RlZCBCeSB0aGUg dmVjdG9yaXplciBiYXNlZCBvbiByYW5nZSBpbmZvcm1hdGlvbg0KPiBhbHJlYWR5Lg0KPiA+PiA+ IE15IGFzc3VtcHRpb24gd2FzIHRoYXQgdGhlIHByZWNpc2lvbiBjYW4gb25seSBldmVyIGJlIHNt YWxsZXIsDQo+ID4+ID4gYmVjYXVzZSBvdGhlcndpc2UgdGhlIHBhdHRlcm4gaGFzIHZpb2xhdGVk IHRoZSBzZW1hbnRpY3Mgb2YgdGhlIEMNCj4gPj4gPiBjb2RlLCB3aGljaA0KPiA+PiB3b3VsZCBi ZSBkYW5nZXJvdXMgaWYgZS5nLiB0aGUgZXhwcmVzc2lvbiBlc2NhcGVzPw0KPiA+Pg0KPiA+PiBJ TU8gdGhlIGRpZmZlcmVuY2UgaW4gcHJlY2lzaW9ucyB3YXMgYSBzeW1wdG9tIG9mIHRoZSBwcm9i bGVtIHJhdGhlcg0KPiA+PiB0aGFuIHRoZSBkaXJlY3QgY2F1c2UuDQo+ID4+DQo+ID4+IFRoZSBw b2ludCBpcyBtb3JlIHRoYXQgIkIgPSB2ZWN0X29yaWdfc3RtdChBKSIganVzdCBzYXlzICJBIGlz IHVzZWQNCj4gPj4gc29tZWhvdyBpbiBhIG5ldyBjYWxjdWxhdGlvbiBvZiBCIi4gIEEgbWlnaHQg ZXF1YWwgQiAoaWYgQSByZXBsYWNlcw0KPiA+PiBCKSwgb3IgQSBtaWdodCBiZSBhbiBhcmJpdHJh cnkgdGVtcG9yYXJ5IHJlc3VsdC4gIFRoZSBjb2RlIGFib3ZlIGlzDQo+ID4+IGluc3RlYWQgdXNp bmcgaXQgdG8gbWVhbiAiQSBlcXVhbHMgQiwgZXhwcmVzc2VkIGluIGEgZGlmZmVyZW50IHR5cGUi Lg0KPiA+PiBUaGF0IGhhcHBlbnMgdG8gYmUgdHJ1ZSBmb3Igc3VtJyBpbiB0aGUgc2VxdWVuY2Ug YWJvdmUsIGJ1dCBpdCBpc24ndA0KPiA+PiB0cnVlIG9mIG5vbi1maW5hbCBwYXR0ZXJuIHN0YXRl bWVudHMgaW4gZ2VuZXJhbC4NCj4gPj4NCj4gPg0KPiA+IFNvcnJ5IGZvciBiZWluZyBkZW5zZSwg YnV0IEkgdGhvdWdoIHRoYXQncyBleGFjdGx5IHdoYXQgdGhlIGNvZGUgZG9lcw0KPiA+IGFuZCB3 aGF0IEkgdHJpZWQgZXhwbGFpbiBiZWZvcmUuIElmIEIgaXNuJ3QgYSBmaW5hbCBzdGF0ZW1lbnQg dGhhbiBpdCB3b24ndA0KPiBoYXZlIGFuIG9yaWdpbmFsIHN0YXRlbWVudC4NCj4gPiBBRkFJSywg dGhlIG9ubHkgcGxhY2VzIHdlIHNldCBvcmlnaW5hbCBzdGF0ZW1lbnQgaXMgdGhlIHJvb3Qgb2Yg dGhlIHBhdHRlcm4NCj4gZXhwcmVzc2lvbi4NCj4gDQo+IEZpbmFsIHBhdHRlcm4gc3RhdGVtZW50 cyAodGhvc2Ugbm90IGluIERFRl9TRVEpIGFsd2F5cyBoYXZlIHRoZSBzYW1lIHR5cGUNCj4gYW5k IHZhbHVlIGFzIHRoZSBvcmlnaW5hbCBzdGF0ZW1lbnRzLiAgV2Ugd291bGRuJ3Qgc2VlIG1pc21h dGNoZWQNCj4gcHJlY2lzaW9ucyBpZiB3ZSB3ZXJlIG9ubHkgbG9va2luZyBhdCBmaW5hbCBwYXR0 ZXJuIHN0YXRlbWVudHMuDQoNCldlIHdvdWxkIGJlY2F1c2UgdGhlIGVudGlyZSBwcm9ibGVtIGlz IHRoYXQgcGF0dGVybiBzdGF0ZW1lbnQgaGF2ZSBubyByYW5nZXMuDQpSYW5nZXIgZG9lcyBub3Qg dHJhY2sgdGhlbSBhZnRlciB0aGV5IGhhdmUgYmVlbiBjcmVhdGVkLiAgVGhpcyBjb3VsZCBvZiBj b3Vyc2UNClRyaXZpYWxseSBiZSBzb2x2ZWQgaWYgd2UgdGVsbCByYW5nZXIgYWJvdXQgdGhlIGRl bW90aW9uIHdlIGRpZCwgYnV0IHdlIGRvbid0IGRvIHNvDQphdCB0aGUgbW9tZW50LiBJdCB3aWxs IGp1c3QgcmV0dXJuIHZhcnlpbmcgaGVyZS4gIFRoaXMgaXMgdGhlIHJvb3QgY2F1c2Ugb2YgdGhl IGlzc3VlLg0KDQo+IA0KPiBMaWtlIHlvdSBzYXksIHRoZSAxNi1iaXQgYWRkaXRpb24gZGlkbid0 IGV4aXN0IGJlZm9yZSB2ZWN0b3Jpc2F0aW9uIChpdCB3YXMgYSAzMi0NCj4gYml0IGFkZGl0aW9u IGluc3RlYWQpLiAgU28gdG8gbWFrZSB0aGluZ3MgdHlwZS1jb3JyZWN0LCB0aGUgMzItYml0IGFk ZGl0aW9uOg0KPiANCj4gICAgQTogc3VtID0gYSArIGIgICAgICAgICAgIChTVE1UX1ZJTkZPX1JF TEFURURfU1RNVCA9PSBBMikNCj4gDQo+IGlzIHJlcGxhY2VkIHdpdGg6DQo+IA0KPiAgICBERUZf U0VROg0KPiAgICAgIEExOiB0bXAgPSBhJyArIGInICAgICAgKFNUTVRfVklORk9fUkVMQVRFRF9T VE1UID09IEEpDQo+ICAgIEEyOiBzdW0nID0gKGludCkgdG1wICAgICAoU1RNVF9WSU5GT19SRUxB VEVEX1NUTVQgPT0gQSkNCj4gDQo+ICh1c2luZyBkaWZmZXJlbnQgbm90YXRpb24gZnJvbSBiZWZv cmUsIGp1c3QgdG8gY29uZnVzZSB0aGluZ3MpLg0KPiBIZXJlLCBBMiBpcyB0aGUgZmluYWwgcGF0 dGVybiBzdGF0ZW1lbnQgZm9yIEEgYW5kIEExIGlzIGp1c3QgYSB0ZW1wb3JhcnkgcmVzdWx0Lg0K PiBzdW0gPT0gc3VtJy4NCj4gDQo+IExhdGVyLCB3ZSBkbyBhIHNpbWlsYXIgdGhpbmcgZm9yIHRo ZSBkaXZpc2lvbiBpdHNlbGYuICBXZSBoYXZlOg0KPiANCj4gICAgQjogcXVvdGllbnQgPSBzdW0g LyAweGZmICAgICAgICAgICAgKFNUTVRfVklORk9fUkVMQVRFRF9TVE1UID09IEIyKQ0KPiANCj4g V2UgcmVhbGlzZSB0aGF0IHRoaXMgY2FuIGJlIGEgMTYtYml0IGRpdmlzaW9uLCBzbyAoSUlSQykg d2UgdXNlDQo+IHZlY3RfbG9va190aHJvdWdoX3Bvc3NpYmxlX3Byb21vdGlvbiBvbiBzdW0gdG8g ZmluZCB0aGUgYmVzdCBzdGFydGluZw0KPiBwb2ludC4gIFRoaXMgc2hvdWxkIGdpdmU6DQo+IA0K PiAgICBERUZfU0VROg0KPiAgICAgIEIxOiB0bXAyID0gdG1wIC8gKHVpbnQxNl90KSAweGZmICAo U1RNVF9WSU5GT19SRUxBVEVEX1NUTVQgPT0gQikNCj4gICAgQjI6IHF1b3RpZW50JyA9IChpbnQp IHRtcDIgICAgICAgICAgKFNUTVRfVklORk9fUkVMQVRFRF9TVE1UID09IEIpDQo+IA0KPiBCb3Ro IGNoYW5nZXMgYXJlIGRvbmUgYnkgdmVjdF93aWRlbmVkX29wX3RyZWUuDQo+IA0KPiBXZSB0aGVu IGFwcGx5IHRoZSBkaXZpc2lvbiBwYXR0ZXJuIHRvIEIxLiAgQjEgaXMgYSBub25maW5hbCBwYXR0 ZXJuIHN0YXRlbWVudA0KPiB0aGF0IHVzZXMgdGhlIHJlc3VsdCAodG1wKSBvZiBhbm90aGVyIG5v bmZpbmFsIHBhdHRlcm4gc3RhdGVtZW50IChBMSkuDQo+IA0KPiBUaGUgY29kZSBkb2VzOg0KPiAN Cj4gCSAgaWYgKGlzX3BhdHRlcm5fc3RtdF9wIChzdG10X2luZm8pKQ0KPiAJICAgIHsNCj4gCSAg ICAgIGF1dG8gb3JpZ19zdG10ID0gU1RNVF9WSU5GT19SRUxBVEVEX1NUTVQgKHN0bXRfaW5mbyk7 DQo+IAkgICAgICBpZiAoaXNfZ2ltcGxlX2Fzc2lnbiAoU1RNVF9WSU5GT19TVE1UIChvcmlnX3N0 bXQpKSkNCj4gCQlvcDAgPSBnaW1wbGVfYXNzaWduX2xocyAoU1RNVF9WSU5GT19TVE1UIChvcmln X3N0bXQpKTsNCj4gCSAgICB9DQo+IA0KPiBpc19wYXR0ZXJuX3N0bXRfcCBpcyB0cnVlIGZvciBi b3RoIEExIGFuZCBBMiwgYW5kDQo+IFNUTVRfVklORk9fUkVMQVRFRF9TVE1UIGlzIEEgZm9yIGJv dGggQTEgYW5kIEEyLiAgSSB3b3VsZCBleHBlY3Q6DQo+IA0KPiAgIGdjY19hc3NlcnQgKHN0bXRf aW5mbyA9PSB2ZWN0X3N0bXRfdG9fdmVjdG9yaXplIChvcmlnX3N0bXQpKTsNCj4gDQo+ICh0ZXN0 aW5nIGZvciBhIGZpbmFsIHBhdHRlcm4pIHRvIGZhaWwgZm9yIHRoZSBtb3RpdmF0aW5nIGV4YW1w bGUuDQo+IA0KDQpJIHRoaW5rIHdlJ3JlIGFjdHVhbGx5IHNheWluZyB0aGUgc2FtZSB0aGluZy4g SSBiZWxpZXZlIGFsbCBJJ20gc2F5aW5nIGlzIHRoYXQgbG9va2luZw0KYXQgdGhlIG9yaWdpbmFs IHN0YXRlbWVudCBpcyBhIHNhZmUgYWx0ZXJuYXRpdmUgYXMgaXQgY29uc2VydmF0aXZlbHkgd2ls bCBvdmVyZXN0aW1hdGUNCnRvIFZBUllJTkcgb3IgZ2l2ZSBhIHdpZGVyIHJhbmdlIHRoYW4gdGhl IHBhdHRlcm4gd291bGQgaGF2ZS4NCg0KSSdtIHNheWluZyBpdCdzIGNvbnNlcnZhdGl2ZWx5IHNh ZmUsIHdoaWxlIG5vdCBvdmVybHkgYWNjdXJhdGUuICBUaGUgYWx0ZXJuYXRpdmUgd291bGQgYmUN CnRvIHRlbGwgcmFuZ2VyIGFib3V0IHRoZSBkZW1vdGlvbnMgaW4gdmVjdF9yZWNvZ19vdmVyX3dp ZGVuaW5nX3BhdHRlcm4gdXNpbmcgcmFuZ2U6OnNldC4NCg0KQnV0IGZvciB0aGlzIHRvIHdvcmsg dGhlIGdlbmVyYWwgd2lkZW5pbmcgcGF0dGVybiBhbHNvIGhhdmUgdG8gdXBkYXRlIHRoZSByYW5n ZSBpbmZvcm1hdGlvbi4NCg0KSSB0aGluayB3aGVyZSB3ZSdyZSBkaXNhZ3JlZWluZyBpcyB0aGF0 IEkgdGhpbmsgbG9va2luZyBhdCB0aGUgb3JpZ2luYWwgc2NhbGFyIHN0YXRlbWVudCBpcyBhIHNh ZmUNCmNvbnNlcnZhdGl2ZSBlc3RpbWF0ZS4gIEl0IHdpbGwgZmFpbCBpbiBzb21lIGNhc2VzLCBi dXQgdGhhdCdzIGEgbWlzc2VkIG9wdGltaXphdGlvbiwgbm90IGEgbWlzcy1vcHRpbWl6YXRpb24u DQoNCkluIGFueSBjYXNlLCBpZiB5b3UgZGlzYWdyZWUgSSBkb27igJl0JyByZWFsbHkgc2VlIGEg d2F5IGZvcndhcmQgYXNpZGUgZnJvbSBtYWtpbmcgdGhpcyBpdHMgb3duIHBhdHRlcm4NCnJ1bm5p bmcgaXQgYmVmb3JlIHRoZSBvdmVyd2lkZW5pbmcgcGF0dGVybi4NCg0KQWx0ZXJuYXRpdmVseSBJ J2QgbG92ZSB0byBrbm93IGhvdyB0byBwcm9jZWVkLg0KDQpUYW1hcg0KDQo+IFRoYW5rcywNCj4g UmljaGFyZA0K