From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by sourceware.org (Postfix) with ESMTPS id 70F1C3858D37; Mon, 23 Oct 2023 01:21:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 70F1C3858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 70F1C3858D37 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=134.134.136.20 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698024087; cv=pass; b=RE82ZwWPOdkZ7CmJ3T3t3s0zqD5ykGAJZ1ggSnkDtHeuwoB18ChN95TDSwCjPjszD/5kaMxSvoyBZQDhHMagV2iLCm0VeH25BXDQMuxgmQaMLJHG27qGYgVY6PE/Xisy1cdcjx5wlScWp5t+/7mD3tJyeVjR/b3xPxNdheTZ5r4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698024087; c=relaxed/simple; bh=L2GtMvx1nQNGaTIU7MSOp4TzEViRAAlROS8HE8Zfxf4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=RlpEBOU9D7tYQkf76InrzV6hJwGaocK7H0FtAAc+PqjOv6fPFcjGEX+zmCkuPVH+h0MprsdSiiRdN0/5AUtjwBtCOEDwcaRqLtA+p6dXKXSE/JZyATNyqLZ32Ff24lJzCxOIukQmayvNZ249axRXL+ZR+dM/Ns8rUDSHab5CL+w= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698024085; x=1729560085; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=L2GtMvx1nQNGaTIU7MSOp4TzEViRAAlROS8HE8Zfxf4=; b=D/PE1yEfjZbpqwPT1pD8iSvg5dawUy/5Zum+BqC3uWVUVLEOk8cfEfWa Z7AsN7IdUk8uBsshgle16XkQ0D86c8NLZlU3/EK2q2mfbYcpv+oGSnxfy MUKVrkjhzAR8G+uhYLltE25MgLknxjf5+lZ66UqYOhuD26e6wDTKu4/6i sOMx5dxrrmHtGe9cpNaYoTVTdyLC85bRbMxRkwCjQCb4ioGjxZNp3z2m8 O5bUYVH9sxeFZ8354PW42LMRK4a+rxysk/HaSlE9fsnNMPOVL3oPGwRfW ls/AhK0+LhDaF+pbcHEO203dI9DKnIqShJeQGN/YLiHYKbgEPgSgbnpK+ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10871"; a="377119104" X-IronPort-AV: E=Sophos;i="6.03,244,1694761200"; d="scan'208";a="377119104" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2023 18:21:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10871"; a="707764246" X-IronPort-AV: E=Sophos;i="6.03,244,1694761200"; d="scan'208";a="707764246" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 22 Oct 2023 18:21:24 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Sun, 22 Oct 2023 18:21:23 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Sun, 22 Oct 2023 18:21:23 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Sun, 22 Oct 2023 18:21:23 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Sun, 22 Oct 2023 18:21:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xh3BJjfbVI6gSLCHBXr8ixGHEeArL4qAjdDPwwirll0uPj/+gAQFkUVJ+mGN1glclYlzleaQhv6Q1ctCaXh6f4OblBy0m3ZJaqoMig4axz9aXZdNkmU3ZLTekpxc2RfM9XHPBfc9JFOBhg81vnk/cdc/aAhM3FbSNUTBJl8hyD02YTsukkmp/faAc6uFoL1ZrVxsrdrlJBjxAaROhfVUv4f5Jr+wP3v4dYWPkQWYgPEGVia1pocNWYtXei4Fl7xLWwEOnBcvYOYsUTiYmSwR3Qfr32j1NvPSmXNLS66PZdHUzX5zC8/EgAzkvjXCE5mpmVEzuzZRH3n0pXcUM3EYcQ== 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=L2GtMvx1nQNGaTIU7MSOp4TzEViRAAlROS8HE8Zfxf4=; b=ZvbSOLfgNpCRVfJQ1zDp+jpQk80gwoCTBXGVnI55EpLNG0cktUQNRvrsjcgX0qH1nmZ8I6qhUmg5Gl0Ubg1crbhNzfjTwjnmcsWWFsrtl2XIrFri0+EHltUTMNrg9Q3Z9AALmrrLVJaNhqYgeMiQ5m6sUnbJGqhAEyQZ5Zk3O26x/G8WvtAXYqZHWvl4XBlP2U8nOCJ1jcxczWKHLKEn3WwYVGmzHTPdIUxTciO/4A9cstNHxLom0r+F+3Z0Bb4ZeZvHW5PP9zDII14asO0dA5SQEfAX9fXjKD8CnXntsj2B/j1f+Eokvf0Jka+iyVuem4nuNujWwKl4jEK8TsdZHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BL1PR11MB6049.namprd11.prod.outlook.com (2603:10b6:208:391::21) by PH7PR11MB7719.namprd11.prod.outlook.com (2603:10b6:510:2b4::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.24; Mon, 23 Oct 2023 01:21:20 +0000 Received: from BL1PR11MB6049.namprd11.prod.outlook.com ([fe80::ed63:39d8:a136:9931]) by BL1PR11MB6049.namprd11.prod.outlook.com ([fe80::ed63:39d8:a136:9931%3]) with mapi id 15.20.6907.025; Mon, 23 Oct 2023 01:21:20 +0000 From: "Zhu, Lipeng" To: Thomas Koenig , Bernhard Reutner-Fischer CC: "fortran@gcc.gnu.org" , "gcc-patches@gcc.gnu.org" , "Lu, Hongjiu" , "Li, Tianyou" , "Deng, Pan" , "Guo, Wangyang" , Jakub Jelinek Subject: RE: [PATCH v4] libgfortran: Replace mutex with rwlock Thread-Topic: [PATCH v4] libgfortran: Replace mutex with rwlock Thread-Index: AQHZjnSfaJBwUZwj3E+ssbm/v3Oko6/v5JkQgCrGN9CAPNP9MA== Date: Mon, 23 Oct 2023 01:21:19 +0000 Message-ID: References: <81c359ae-ab69-7f03-f113-4b865441de44@intel.com> <9e30db8a-2a6f-89d0-84fb-2f549f61954c@intel.com> <93b9e2d5-4355-136a-a961-da1ae9c1468f@netcologne.de> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB6049:EE_|PH7PR11MB7719:EE_ x-ms-office365-filtering-correlation-id: bfbcd3ba-868a-4203-299c-08dbd3665cd8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aXM1h7z8t1kYwzJ63/zARUplVIdSeRG9CC+5CNPSdFu5IN1vwYNqmgyMhoYqlDyalLBeAdHIhtugIMiXZWxHfDJzBVwY8mtyxtNZsnLavxxRYZW8fN01ViLYqPs7ev0WUxo00dcWC0xPpie7XAYnM7rTzQLv+Yioae3KhPhl778YkWsmvgAtVX0wwmWtC+SjfGFcrPSepUGFxUXsC9hnbmOvD0LkpqZSCqC+lSWcWUfiHVBlzszBMZHmri7gYPyX/4YWr/RKdYhHHD7YebM+P6NfYRwlzHTvaH9ExboNLTod95x6yJVR6jwNP2dhxIElSKQWkK92GKxAyQXwpbeAzppW4+5ac0I7BgfMdrx4hhCFWLZZFvOmotgiouXRWzG3hzeLz+QLr1515NIYRhzRUFPBKCzM0iOEl6+PQJ+P8/zzM7JqjvT8gN71Ir1GfKIyn+kAUshbV6aIlyUUzFEAfg10uu364udQ41afS5haA0k9ifFuv9zJCZdcg2U3HYlhHCLuLBmewxd0CnkVs6THpBVFKoF38l7ijITDAAs48Feph+namqDCVBy8JplIqbXhGQF+bkBSegc15aUBuJ6CB3lAr3xHTQdKJbYaLgKfLzQ853GrnGJQAgH/9TK9OP+/ x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB6049.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(136003)(396003)(376002)(39860400002)(366004)(230922051799003)(451199024)(64100799003)(1800799009)(186009)(38070700009)(55016003)(7696005)(71200400001)(9686003)(6506007)(52536014)(66556008)(26005)(83380400001)(64756008)(2906002)(8676002)(41300700001)(8936002)(478600001)(66476007)(4326008)(5660300002)(54906003)(76116006)(110136005)(38100700002)(66946007)(316002)(66446008)(122000001)(82960400001)(86362001)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eXhjNnU3ZVdZeGVnTWllalk0MlYwRWcrSVBYVzFEQ2hrS0ZSVXdxYzlIMkRK?= =?utf-8?B?UFByWGtaNHFvd0FhdEptQ2ozUU41a1o1SmxMS0hIZS9Ya1ByZmNudkNOam5N?= =?utf-8?B?aUtlRzBBUmd0NnMwL0trYkFkRVhFWFZVNHN4dTJWanpqTGt0dGk3dVY2Mnpp?= =?utf-8?B?a0t3Zzlpc1FUNVBoZTFKSVFtNk5MdDB0anJWcFloVncvaE1vRE5rdWJaTS90?= =?utf-8?B?OEFkdVlDR2szNHZQVlMxM08wVjNWOEEzbjlsYW1ScFgrK0wvc1Racm9rdktj?= =?utf-8?B?clo4RTlGVFExSVB0Q3Yrdkg5dkRTRnNxa1V0SU1Hck5aK1BtUGppbVB6NVRL?= =?utf-8?B?a1FrY3VydFZGaitaU01NejkxUkcxZXo4ZXB6MnRpeHRQbmRyQlhZQXFvMU1P?= =?utf-8?B?TWNrdm5tMVk4aDZYcEt4UzI5dUh3S2Y2TEErLzlLdnpQQzdEM0piN0pSUUtL?= =?utf-8?B?Zmg5Sk8vVkNiQm1wcUpxMnVWdUhQUWdvVWFJY0tyN0hCOEpOWWJnNy94V3Bp?= =?utf-8?B?cGdUMUpSY2Q2elFINm03YzRmSGk2Tk1sZ3U5SmFvc0s3NVpONndBQno5dkVh?= =?utf-8?B?azJJc2RwNTdjRnRzZUpsVFFaQ0l3SHRWMmNTMU9MMndsd3dNOVNLeDNwRHIx?= =?utf-8?B?MFpFY2habnltQXIrU0lsN1FDZjA0K0ZKVjlqQnJNT1cybWVQbHRkWXFvUWxr?= =?utf-8?B?ZHpwb0k3dUxMTy9ueTdXTVlWanoyWkFWanZBWjhUdkNhWmJwdUZpd2FSZFB6?= =?utf-8?B?N3ArcENsOCs1bUk1ZDNBZ1pJYWVtbi9rY2xHOTVYRCtNS01VWWw4em03Wm9P?= =?utf-8?B?V0hxbk5DRHVnOEk5WGRoVU8zRFBCYkN6YXVBNXAzM0hHVFBCTm5TbmxXQVkv?= =?utf-8?B?UkQxcHo0bGRpb3NONXBremJNRSsxZ1BueHRwcStsT3ZFSW5FYjQwdmJWejFY?= =?utf-8?B?LzRiR0V2VGNhcDA1MVBDWUVvb0phZ3JReVJqYm84My9UaG9VdlVCSnN2TmFk?= =?utf-8?B?eFdJenpFZURSNjNYVks5MWlwRXRvSHRFM2ptWTU1RGNwUTNrMGJBNW1tN01s?= =?utf-8?B?RHM1VWUxRTRpMnJOSlhTVGVMUkpaWnpEODJzdGRzajJSQmN4bE91STB2b0pu?= =?utf-8?B?MkpucVp0OTd1MzRDdjdsdkh0UGV5Yk9qRGNYd1R2VFhQVUw5Q1VsOWszNWVC?= =?utf-8?B?WU14TGVRaDJWektCM0RhbmpGSit2cm0rQndFcHNIYXE4dXY5eUl2TEtZbWtP?= =?utf-8?B?S2NhMlcyWjBGUG5saDlRdGMyMzUvbmo5WjhjcUNyVlNHaXhZWTVIa0hIY2tQ?= =?utf-8?B?OVFzMllzd3REWTFKZ05QeWlnSlVXVDhSTGE1aHE3OXNFb2hBOFZoTi9uWWtq?= =?utf-8?B?aTdKcnVSbytjQjVjczVHUlpCUlh4RU53L0puM2JBM0Z4UFVUenVRenJJOUtG?= =?utf-8?B?RmphSUJ4ZmtraXQ3SFBlUm9LZXk4aElDR05HSTE1dHBobHhHbHVVYkNjTi9y?= =?utf-8?B?MDcyRE1GdGpjd25haGREeFE5eWxtd2xPbFlweVliYzBBVzB0aEwrR29mUyt2?= =?utf-8?B?dWdkbzJhMnBEUmZRSHF2cWNQYzFxV3hubldDc29ML1NtTlhSbnR1YmhQQTNh?= =?utf-8?B?VUlyeVU0WUpVaFN6akVsVWo1TGh6YmFjdDhvTWtFcERLU21Qdm9LeGNpVGlh?= =?utf-8?B?cGV3ZW1oZTNpYTlHempuT1VKazAyMktNbzNqVGkzQ0lOUjJzZzJ4OGMxSnVN?= =?utf-8?B?VDZhbkVJcTlPQ1A5eGdrSWNpQVVGcEw3Y2ZOT0ZIZVVWUm9lUTFxamt0d2dX?= =?utf-8?B?NXgxdVBSZEJCZEJ0N0d4MG9KdklCQ2lkNzI4TERrc29LY1ozSnZDSWV6TS95?= =?utf-8?B?WjlHc0MzNHVLWkp4U1pvRGxTcHlJajU4V3hEdXhwdWhzRFZ6RFE5N0JBenNi?= =?utf-8?B?WjdyZ3FaRncwbmNTV25xMzJsc3M3YklYNnpNbmN5UVFiWkwyWWFOcHV3ZDRx?= =?utf-8?B?Mk9YMnVjQVFvMFVMRjE0SnJVMENRRmFmdStvZDFrajFhMXFWbE51VkpaUW9B?= =?utf-8?B?YlE3Y05qTnVFRDE0VXROdllMNlZ0S0xnYU1LVGNVRHora05HZDk0cS8wUG5j?= =?utf-8?Q?LbNg30Ph/NOItuuwJNJS2PJtO?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB6049.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfbcd3ba-868a-4203-299c-08dbd3665cd8 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Oct 2023 01:21:20.0536 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1osr2CbKUnqcMYd04JH7bV1asmv7UIkuE8sCaJp4N8AIxxX7gaknXlMOQGytLTBBvC5cED2LtV2Y/0rjDIovWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB7719 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiANCj4gPiBIaSBUaG9tYXMsDQo+ID4NCj4gPiA+DQo+ID4gPiBIaSBMaXBlbmcsDQo+ID4gPg0K PiA+ID4gPiBNYXkgSSBrbm93IGFueSBjb21tZW50IG9yIGNvbmNlcm4gb24gdGhpcyBwYXRjaCwg dGhhbmtzIGZvciB5b3VyDQo+ID4gPiA+IHRpbWUNCj4gPiA+ID4g8J+YhA0KPiA+ID4NCj4gPiA+ IFRoYW5rcyBmb3IgeW91ciBwYXRpZW5jZSBpbiBnZXR0aW5nIHRoaXMgcmV2aWV3ZWQuDQo+ID4g Pg0KPiA+ID4gQSBmZXcgcmVtYXJrcyAvIHF1ZXN0aW9ucy4NCj4gPiA+DQo+ID4gPiBXaGljaCBz dHJhdGVneSBpcyB1c2VkIGluIHRoaXMgaW1wbGVtZW50YXRpb24sIHJlYWQtcHJlZmVycmluZyBv cg0KPiA+ID4gd3JpdGUtIHByZWZlcnJpbmc/ICBBbmQgaWYgcmVhZC1wcmVmZXJyaW5nIGlzIHVz ZWQsIGlzIHRoZXJlIGENCj4gPiA+IGRhbmdlciBvZiBkZWFkbG9jayBpZiBwZW9wbGUgZG8gdW5y ZWFzb25hYmxlIHRoaW5ncz8NCj4gPiA+IE1heWJlIHlvdSBjb3VsZCBleHBsYWluIHRoYXQsIGFs c28gaW4gYSBjb21tZW50IGluIHRoZSBjb2RlLg0KPiA+ID4NCj4gPg0KPiA+IFllcywgdGhlIGlt cGxlbWVudGF0aW9uIHVzZSB0aGUgcmVhZC1wcmVmZXJyaW5nIHN0cmF0ZWd5LCBhbmQgY29tbWVu dHMNCj4gPiBpbiBjb2RlLg0KPiA+IFdoZW4gYWRkaW5nIHRoZSB0ZXN0IGNhc2VzLCBJIGRpZG7i gJl0IG1lZXQgdGhlIHNpdHVhdGlvbiB3aGljaCBtYXkNCj4gPiBjYXVzZSB0aGUgZGVhZGxvY2su DQo+ID4gTWF5YmUgeW91IGNhbiBnaXZlIG1vcmUgZ3VpZGFuY2UgYWJvdXQgdGhhdC4NCj4gPg0K PiA+ID4gQ2FuIHlvdSBhZGQgc29tZSBzb3J0IG9mIHRvcnR1cmUgdGVzdCBjYXNlKHMpIHdoaWNo IGRvZXMgYSBsb3Qgb2YNCj4gPiA+IG9wZW5pbmcvY2xvc2luZy9yZWFkaW5nL3dyaXRpbmcsIHBv c3NpYmx5IHdpdGggYXN5bmNocm9ub3VzIEkvTw0KPiA+ID4gYW5kL29yIHB0aHJlYWRzLCB0byBj YXRjaCBwb3NzaWJsZSBwcm9ibGVtcz8gIElmIHRoZXJlIGlzIGEgc3lzdGVtDQo+ID4gPiBkZXBl bmRlbmN5IG9yIHNvbWUgcmFjZSBjb25kaXRpb24sIGNoYW5jZXMgYXJlIHRoYXQgcmVncmVzc2lv biB0ZXN0ZXJzDQo+IHdpbGwgY2F0Y2ggdGhpcy4NCj4gPiA+DQo+ID4NCj4gPiBTdXJlLCBhcyB5 b3VyIGNvbW1lbnRzLCBpbiB0aGUgcGF0Y2ggVjYsIEkgYWRkZWQgMyB0ZXN0IGNhc2VzIHdpdGgN Cj4gPiBPcGVuTVAgdG8gdGVzdCBkaWZmZXJlbnQgY2FzZXMgaW4gY29uY3VycmVuY3kgcmVzcGVj dGl2ZWx5Og0KPiA+IDEuIGZpbmQgYW5kIGNyZWF0ZSB1bml0IHZlcnkgZnJlcXVlbnRseSB0byBz dHJlc3MgcmVhZCBsb2NrIGFuZCB3cml0ZSBsb2NrLg0KPiA+IDIuIG9ubHkgYWNjZXNzIHRoZSB1 bml0IHdoaWNoIGV4aXN0IGluIGNhY2hlIHRvIHN0cmVzcyByZWFkIGxvY2suDQo+ID4gMy4gYWNj ZXNzIHRoZSBzYW1lIHVuaXQgaW4gY29uY3VycmVuY3kuDQo+ID4gRm9yIHRoZSB0aGlyZCB0ZXN0 IGNhc2UsIGl0IGFsc28gaGVscCB0byBmaW5kIGEgYnVnOiAgV2hlbiB1bml0IGNhbid0DQo+ID4g YmUgZm91bmQgaW4gY2FjaGUgbm9yIHVuaXQgbGlzdCBpbiByZWFkIHBoYXNlLCB0aGVuIHRocmVh ZHMgd2lsbCB0cnkNCj4gPiB0byBhY3F1aXJlIHdyaXRlIGxvY2sgdG8gaW5zZXJ0IHRoZSBzYW1l IHVuaXQsIHRoaXMgd2lsbCBjYXVzZSBkdXBsaWNhdGUga2V5DQo+IGVycm9yLg0KPiA+IFRvIGZp eCB0aGlzIGJ1ZywgSSBnZXQgdGhlIHVuaXQgZnJvbSB1bml0IGxpc3Qgb25jZSBhZ2FpbiBiZWZv cmUgaW5zZXJ0IGluIHdyaXRlDQo+IGxvY2suDQo+ID4gTW9yZSBkZXRhaWxzIHlvdSBjYW4gcmVm ZXIgdGhlIHBhdGNoIHY2Lg0KPiA+DQo+IA0KPiBDb3VsZCB5b3UgaGVscCB0byByZXZpZXcgdGhp cyB1cGRhdGU/IEkgcmVhbGx5IGFwcHJlY2lhdGUgeW91ciBhc3Npc3RhbmNlLg0KPiANCg0KSGkg VGhvbWFzLCBCZXJuaGFyZCwNCg0KQ291bGQgeW91IGhlbHAgdG8gcmV2aWV3IHRoaXMgdXBkYXRl PyAgQW55IGNvbmNlcm4gd2lsbCBiZSBhcHByZWNpYXRlZC4NCg0KUmVnYXJkcywNCkxpcGVuZyBa aHUNCj4gPiA+IFdpdGggdGhpcywgdGhlIGxpYmdmb3J0cmFuIHBhcnRzIGFyZSBPSywgdW5sZXNz IHNvbWVib2R5IGVsc2UgaGFzDQo+ID4gPiBtb3JlIGNvbW1lbnRzLCBzbyBnaXZlIHRoaXMgYSBj b3VwbGUgb2YgZGF5cy4gIEkgY2Fubm90IGFwcHJvdmUgdGhlDQo+ID4gPiBsaWJnY2MgcGFydHMs IHRoYXQgd291bGQgYmUgc29tZWJvZHkgZWxzZSAoSmFrdWI/KQ0KPiA+ID4NCj4gPiA+IEJlc3Qg cmVnYXJkcw0KPiA+ID4NCj4gPiA+IAlUaG9tYXMNCj4gPiA+DQo+ID4NCj4gPiBCZXN0IFJlZ2Fy ZHMsDQo+ID4gTGlwZW5nIFpodQ0KPiANCj4gQmVzdCBSZWdhcmRzLA0KPiBMaXBlbmcgWmh1DQo=