From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7D6C2A0C47; Thu, 14 Oct 2021 13:42:55 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 182564112E; Thu, 14 Oct 2021 13:42:55 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 3348C40041 for ; Thu, 14 Oct 2021 13:42:53 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10136"; a="227616509" X-IronPort-AV: E=Sophos;i="5.85,372,1624345200"; d="scan'208";a="227616509" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2021 04:42:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,372,1624345200"; d="scan'208";a="716115468" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga006.fm.intel.com with ESMTP; 14 Oct 2021 04:42:51 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 14 Oct 2021 04:42:51 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 14 Oct 2021 04:42:50 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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.2242.12 via Frontend Transport; Thu, 14 Oct 2021 04:42:50 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.174) 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.2242.12; Thu, 14 Oct 2021 04:42:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JXDeT2sHIXAzx+y1Yx1fWsbxZV+TjFnEDNGlwqwAYaVTMoBnBXjQKYVYC/474ofYwHQIlwu8/dNkjETKCyTRB3iM4y9S60G05oIv/FDmqtNsRNnhtyXBxL9PXQS8Rkwxs7HmUhyMfHrkQU6QoPZljntqSP3Tx54y6W2HrtcNMcIrRoQzweNtUxWW9XjTrILxMeDTZCnAys6Y6WA5oa73J+TIXLqcpaZTQZwrSm2vH0Xtq93GR/Df1jcDL7sPV+PoFx/cAdunD0+RGX/hIklwLT80McaO3YPLOQJ0LRtf1H4MGq+js8QwNdvTKVghOdmVdtVtrdIP7Wqnl9uFJeogow== 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=CvsHT8dEf0Ez/O8VhtzKp7KVdjyUGpPDSbfqih46tIk=; b=bCmTyB2KEiTRSNH1okfZ8qhs4IlhsNF6RoLEqUHAI8c8hwoTBRfbMUhLpg/BYpIW9eMkDtGSi9EuHxvkvohYFC/C7Ua8Xr+BWl/vyyPD8ucuTLgHkANkQ/O8nIZcp5MnBOL48mDcUcredguYXP4kfhlWSQlwlcP4PGT34dPfPaiATRyEaKksFaXjMpqMhrd7gpasHJQuQwVP95sIiw6eVJfUG8JigKJ2boYraDu53a9vlCdSTMYaKgMlocUL0q2luXiQvwXoDKByxph50eroPBuMRm8Ga51cYmczIxfuTKJnfgcqXTf5yS03xIHv059z+1dTk5remeKePLb5qon+Qg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CvsHT8dEf0Ez/O8VhtzKp7KVdjyUGpPDSbfqih46tIk=; b=KRG700Sfz2LSym355TwY7icjkS10OsNdX81mKzMrhbjqmbPu/ocrfubeW00kyP0EvPPnAOzdE/URmJJrrrEjEJnSfDNVX/8oQVlZMuoSNQRplHD+0Ce1CNZlZVQPbDSDFBrisK2+8vwMDSiXoqkWer36ChOMliJzekugr0zbAwQ= Received: from DM8PR11MB5591.namprd11.prod.outlook.com (2603:10b6:8:38::23) by DM8PR11MB5605.namprd11.prod.outlook.com (2603:10b6:8:26::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.14; Thu, 14 Oct 2021 11:42:47 +0000 Received: from DM8PR11MB5591.namprd11.prod.outlook.com ([fe80::3d47:b590:aa2a:d5cc]) by DM8PR11MB5591.namprd11.prod.outlook.com ([fe80::3d47:b590:aa2a:d5cc%9]) with mapi id 15.20.4608.016; Thu, 14 Oct 2021 11:42:47 +0000 From: "Peng, ZhihongX" To: David Marchand CC: "Burakov, Anatoly" , "Ananyev, Konstantin" , Stephen Hemminger , dev , "Lin, Xueqin" , "Richardson, Bruce" , Thomas Monjalon Thread-Topic: [PATCH v9 1/3] Enable ASan for memory detector on DPDK Thread-Index: AQHXv08j1GpXvVtS7UOzAGFQzJiwe6vRJKyAgAE6vJA= Date: Thu, 14 Oct 2021 11:42:47 +0000 Message-ID: References: <20211011062810.422220-1-zhihongx.peng@intel.com> <20211012094318.1154727-1-zhihongx.peng@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c4478432-8a05-4c57-4c1d-08d98f07be98 x-ms-traffictypediagnostic: DM8PR11MB5605: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ecbQj6NqiYKkjncAVe2dihh9OYyk0TcmkCqKTaC/pGq7v/ZL6W6NaUjoEcdfEDLJ60Ok7fMCRR25mdcPuUreTDGdvlTm6IS6CwOvIrPIgCJ5luThlkrJeJ5jGeDfvtFqC/vxSbEdclIXjEk2tiWkpo4ELiOV62A4c9q7DAjX26mx24Z8fS+lNklZlVLYTVnHW5KY1/gFSoVQcGcdLY2hQv4N88i9dFE7sEV688KLEh/vEApWPaFKr+2fJWzS+gGdZdOXQmdSKcnsggcyWJl8O//yTEziWZ9KUuCuUEmr01mKuN4avhB0/ZB+E59D+7ocxglf54dDh2bpY7PPveJL5E6YgOAD2OIIQzvB/BfM9VjeXp9pm4gnRivQe/OhMw/E0ul1yq4WJ7YE056UBVwlikXU941JnMvfccXVvhE6Qzzu6oYvYPuwNLXOS97ts0IZ2oFuZjxgD2MQyV56C1RhXPSrGalO0RniO0NHN/HCKe9IGcF946mXcZtW9cGF5HKZK9Zi2Fglhg7R99I8YgK5PGD1MBupCpDr6pYeyUgj53CLATtA8UG/qzyPY7eU1WDZ8eZ1XBaySnKGK8OzlQMiW8ugHr6no1F81LAir6MitBD5nlhxqRKTWRWeUABganlLbz+RrMPo3nGlB9ncjZH1M0u73wHnr6mLqmW+Xcyw+sKa3ablYfUVGDjwtWZg7BtnYuAk8MBCIXGug01ubKMePbyUhJHyyIxIi4JZZ/mSd+aODNgNi3F2NpBGcMcn/6wnNC1L84V4acf3QIxpQAlImw7SwLtfEi65AXkQN2zHRzg= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5591.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(122000001)(4326008)(2906002)(52536014)(508600001)(8676002)(86362001)(83380400001)(8936002)(38070700005)(7696005)(82960400001)(30864003)(33656002)(6506007)(71200400001)(5660300002)(53546011)(6916009)(66556008)(9686003)(64756008)(66476007)(38100700002)(76116006)(66946007)(316002)(55016002)(186003)(54906003)(26005)(66446008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UXpYcXBtc0dUUU4rQXBkbmJ6dUxaMC9ocHFqYjk0MGN1M016THFKMWRoTHhm?= =?utf-8?B?aUxvN1hSNGEzOGpDaEVHSkxPZ2JENUFOb0ZDa3Zoc3V6THJoeG5uTDg0bkpr?= =?utf-8?B?RlhTK2JhMXgraStGVnZrL1kyRXE5aVVKZ3VveEJneTU5WXZvQXFWL2Q3UjR0?= =?utf-8?B?NTR6V2hIR2plbC81Wkp3N1loRmN4M0s0cU8rMG1KYjZ2Y3lVYWVYMlo4cHJY?= =?utf-8?B?eXFOdnNlMHlJYTcwT1BKNzZUQWFRVnZPeUhPL2VJcDJOYThDUjFOSkpkbURM?= =?utf-8?B?NGFGbHhCaHY4eHViQWh6dTBoY1Bya3pzakZzYzB0QkRBMFNTWDh5NHlvMFhy?= =?utf-8?B?anJIV3JpQ1RhWC8zT2pUcG15aVdZYzJMNWcwZjMwVUVodjduaGdVV0hXVlF3?= =?utf-8?B?UC94MSt5bnZseWJvYTd3emgvLzF2U3h6WnJiRDdud0h2Wlc3elFEQ3RPcFdJ?= =?utf-8?B?VTVEVTBCcXE4dy9xR2d4RzRTR3pXRTQ2VEFRbjcya2xOQWdFcWhreVo5NHNB?= =?utf-8?B?aWRPZm1pNm5CcEpjNUpwVmx6MHVlaGNLdTJyVmVCUWs2aVlDYjlmV0FVUU1P?= =?utf-8?B?Z2xZYXpNYm5pN0VRd0ZjTWswRUN0Sk51V2grRGpBaGFKdisxSGNJZVFkbG8r?= =?utf-8?B?RE1nZ0F6bGw5blZqdmNxT0ZBVlNlSEF1amh6dnQvOEpSYzlCaHlITXdFRjBD?= =?utf-8?B?MFNQSmUvT0VXdXFRdEYyM2RjcjBCR3FXNzVoWGg0SVJ3K0F1Y1Nmd1ZtdDBy?= =?utf-8?B?a1dmQitzeVNnK0d4cFRCZGVuUjhNVktPNStIMms5NTlza2pZa25KNWduVXFW?= =?utf-8?B?a2hJMG9yclM3Q2dHYk56WEVqeFl6WXJkS1ZkaWsrY2k0T3E4KzRDRy9xRXJu?= =?utf-8?B?Nk0relJxdmtKSjk5Wk85cVdtT3o2aGdueXJFRGpjc3ZQSGFEeDFJajE1V1NQ?= =?utf-8?B?WHJ2ZmtqS0JWQkxOQXVNWkJVdEtlbkhOQjh4Rm9MTkJWUzdGRWd5L1N3dnZM?= =?utf-8?B?ci9STHQxRE5FNTdsemg2ZzNtaUNuUlBrb1pVanc3cHNvV2l4ak1WclZQWkYr?= =?utf-8?B?ODBXakNlR2htTXlFNzZSVFBWKzZQV1JRanovRFpNRk5nSmdzQWxXeDlFWXla?= =?utf-8?B?OWVoUlJrNkoyOGNhbENCenNSTXdqSGJvbDRCYWRqQWxoREluTUNTNWJ5a0Vk?= =?utf-8?B?YTdZZXJRbmpNU25WQlA4cjlQTVE2RE0zTEVwdlZudGNOTU9wSnJsZ0xMZ2sr?= =?utf-8?B?cXQzNHFVcUZkUlovVUlkNDc5aTFMYkxndDJrMEQxWnkvclh6bnJPbEs3am9F?= =?utf-8?B?ejdXenVMQnF0L01yY09zZFNNcVBuOU5sNnRWMG95aW4wcDUrd2NlMGlpOUp0?= =?utf-8?B?VVA1ZEcvRGlrSzdTejZiL1F3Q1dleVRuK21VSCtYbGVlNWdYZ3NSS1ZsWDdP?= =?utf-8?B?TnF4VlNXNXZBN01FenNVV2RLa1FHZG5jb00rNHg4REw2RG9VajlzM0tPT0Nh?= =?utf-8?B?ZHhsc1ZXRlJ1bVcxQ1FsU2l2RUVIdlVKQ3VlUkVlUnZmVzVreTVvang4R085?= =?utf-8?B?UWZuMllCZkhMUFZhNUxjcEc1MzVraDExTnY3Ui9PU3JEYlJtaXAzNktHTk4w?= =?utf-8?B?aVRsVlFndEN0ejlRY2NETkxWTDBIK1haYjE3Q1FnTXhXcFpJRW9reUNMMytO?= =?utf-8?B?WGJxQTVrdWZnbTBUZDRVeGRjeFM4NlE0dXlsbGE2Y0VtMEJReldzTFM1ZHZE?= =?utf-8?Q?HuRvvQay8sQ7jJ61k8=3D?= 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: DM8PR11MB5591.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c4478432-8a05-4c57-4c1d-08d98f07be98 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Oct 2021 11:42:47.3685 (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: 5Rw1Sb9yWUcIZp6ceVMLNzl1QKnKzX4QH3lK7F+PBccuZzDhWfzqaVXFng0IPw4To2mEJvlhgOpI3d6MtHLf4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR11MB5605 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v9 1/3] Enable ASan for memory detector on DPDK X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEYXZpZCBNYXJjaGFuZCA8ZGF2 aWQubWFyY2hhbmRAcmVkaGF0LmNvbT4NCj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMTQsIDIw MjEgMTI6NDUgQU0NCj4gVG86IFBlbmcsIFpoaWhvbmdYIDx6aGlob25neC5wZW5nQGludGVsLmNv bT4NCj4gQ2M6IEJ1cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+OyBB bmFueWV2LCBLb25zdGFudGluDQo+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgU3Rl cGhlbiBIZW1taW5nZXINCj4gPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPjsgZGV2IDxkZXZA ZHBkay5vcmc+OyBMaW4sIFh1ZXFpbg0KPiA8eHVlcWluLmxpbkBpbnRlbC5jb20+OyBSaWNoYXJk c29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+Ow0KPiBUaG9tYXMgTW9uamFs b24gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjkgMS8zXSBF bmFibGUgQVNhbiBmb3IgbWVtb3J5IGRldGVjdG9yIG9uIERQREsNCj4gDQo+IE9uIFR1ZSwgT2N0 IDEyLCAyMDIxIGF0IDExOjU0IEFNIDx6aGlob25neC5wZW5nQGludGVsLmNvbT4gd3JvdGU6DQo+ ID4NCj4gPiBGcm9tOiBaaGlob25nIFBlbmcgPHpoaWhvbmd4LnBlbmdAaW50ZWwuY29tPg0KPiA+ DQo+ID4gYEFkZHJlc3NTYW5pdGl6ZXINCj4gPiA8aHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9z YW5pdGl6ZXJzL3dpa2kvQWRkcmVzc1Nhbml0aXplcj5gIChBU2FuKQ0KPiA+IGlzIGEgd2lkZWx5 LXVzZWQgZGVidWdnaW5nIHRvb2wgdG8gZGV0ZWN0IG1lbW9yeSBhY2Nlc3MgZXJyb3JzLg0KPiA+ IEl0IGhlbHBzIGRldGVjdCBpc3N1ZXMgbGlrZSB1c2UtYWZ0ZXItZnJlZSwgdmFyaW91cyBraW5k cyBvZiBidWZmZXINCj4gPiBvdmVycnVucyBpbiBDL0MrKyBwcm9ncmFtcywgYW5kIG90aGVyIHNp bWlsYXIgZXJyb3JzLCBhcyB3ZWxsIGFzDQo+ID4gcHJpbnRpbmcgb3V0IGRldGFpbGVkIGRlYnVn IGluZm9ybWF0aW9uIHdoZW5ldmVyIGFuIGVycm9yIGlzIGRldGVjdGVkLg0KPiA+DQo+IA0KPiAN Cj4gQ29tbWVudHMgYmVsb3cgY29uY2VybiBhZGRlZCBmZWF0dXJlIHdpdGggcGF0Y2ggMi4NCj4g RnJvbSBoZXJlLi4uDQoNClRoZSB2MTAgdmVyc2lvbiB3aWxsIGJlIGZpeGVkLg0KDQo+ID4gRFBE SyBBU2FuIGZ1bmN0aW9uYWxpdHkgaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIExpbnV4IHg4 Nl82NC4NCj4gPiBTdXBwb3J0IG90aGVyIHBsYXRmb3JtcywgbmVlZCB0byBkZWZpbmUgQVNBTl9T SEFET1dfT0ZGU0VUIHZhbHVlDQo+ID4gYWNjb3JkaW5nIHRvIGdvb2dsZSBBU2FuIGRvY3VtZW50 LCBhbmQgY29uZmlndXJlIG1lc29uDQo+ID4gKGNvbmZpZy9tZXNvbi5idWlsZCkuDQo+ID4NCj4g PiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgaGVhcC1idWZmZXItb3ZlcmZsb3cgYnVnOg0KPiA+ICAg ICAgICAgLi4uLi4uDQo+ID4gICAgICAgICBjaGFyICpwID0gcnRlX3ptYWxsb2MoTlVMTCwgNywg MCk7DQo+ID4gICAgICAgICBwWzddID0gJ2EnOw0KPiA+ICAgICAgICAgLi4uLi4uDQo+ID4NCj4g PiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgdXNlLWFmdGVyLWZyZWUgYnVnOg0KPiA+ICAgICAgICAg Li4uLi4uDQo+ID4gICAgICAgICBjaGFyICpwID0gcnRlX3ptYWxsb2MoTlVMTCwgNywgMCk7DQo+ ID4gICAgICAgICBydGVfZnJlZShwKTsNCj4gPiAgICAgICAgICpwID0gJ2EnOw0KPiA+ICAgICAg ICAgLi4uLi4uDQo+IC4uLiB0byBoZXJlLg0KPiANCj4gDQo+ID4NCj4gPiBXZSBjYW4gZW5hYmxl IEFTYW4gYnkgYWRkaW5nIGJlbG93IGNvbXBpbGF0aW9uIG9wdGlvbnM6DQo+ID4gLURidWlsZHR5 cGU9ZGVidWcgLURiX2x1bmRlZj1mYWxzZSAtRGJfc2FuaXRpemU9YWRkcmVzcw0KPiA+ICItRGJ1 aWxkdHlwZT1kZWJ1ZyI6IFRoaXMgaXMgYSBub24tZXNzZW50aWFsIG9wdGlvbi4gV2hlbiB0aGlz IG9wdGlvbg0KPiA+IGlzIGFkZGVkLCBpZiBhIG1lbW9yeSBlcnJvciBvY2N1cnMsIEFTYW4gY2Fu IGNsZWFybHkgc2hvdyB3aGVyZSB0aGUNCj4gPiBjb2RlIGlzIHdyb25nLg0KPiA+ICItRGJfbHVu ZGVmPWZhbHNlIjogV2hlbiB1c2UgY2xhbmcgdG8gY29tcGlsZSBEUERLLCB0aGlzIG9wdGlvbiBt dXN0DQo+ID4gYmUgYWRkZWQuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBYdWVxaW4gTGluIDx4 dWVxaW4ubGluQGludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBaaGlob25nIFBlbmcgPHpo aWhvbmd4LnBlbmdAaW50ZWwuY29tPg0KPiANCj4gDQo+IE1vcmUgcHJvYmxlbWF0aWMsIGxpbmtp bmcgYW4gZXh0ZXJuYWwgKG91dCBvZiBtZXNvbikgYXBwbGljYXRpb24gdG8gYSBkcGRrDQo+IGNv bXBpbGVkIHdpdGggQVNhbiBpcyBicm9rZW4uDQo+IA0KPiBNeSBlbnZpcm9ubWVudCBjb250YWlu cyBmb2xsb3dpbmcgdGFyZ2V0cyBjb21waWxlZCB1c2luZw0KPiAuL2RldnRvb2xzL3Rlc3QtbWVz b24tYnVpbGRzLnNoOg0KPiAkIGxzICRIT01FL2J1aWxkcy8NCj4gYnVpbGQtYXJtNjQtYmx1ZWZp ZWxkICBidWlsZC1hcm02NC1ob3N0LWNsYW5nICBidWlsZC1jbGFuZy1zaGFyZWQgYnVpbGQtZ2Nj LQ0KPiBzaGFyZWQgIGJ1aWxkLXBwYzY0bGUtcG93ZXI4ICBidWlsZC14ODYtbWluZ3cNCj4gYnVp bGQtYXJtNjQtZHBhYSAgICAgICBidWlsZC1hcm02NC1vY3Rlb250eDIgICBidWlsZC1jbGFuZy1z dGF0aWMNCj4gYnVpbGQtZ2NjLXN0YXRpYyAgYnVpbGQteDg2LWdlbmVyaWMNCj4gDQo+IEkgc3Rv cHBlZCBhdCBwYXRjaCAxLCBjb25maWd1cmVkIGZvbGxvd2luZyB0YXJnZXQgdG8gaGF2ZSBBU2Fu IGluIHRoZW0sIGxpa2UNCj4gdGhpczoNCj4gDQo+ICQgbWVzb24gY29uZmlndXJlICRIT01FL2J1 aWxkcy9idWlsZC1nY2Mtc3RhdGljIC1EYl9zYW5pdGl6ZT1hZGRyZXNzDQo+ICQgbWVzb24gY29u ZmlndXJlICRIT01FL2J1aWxkcy9idWlsZC1jbGFuZy1zaGFyZWQgLURiX3Nhbml0aXplPWFkZHJl c3MgLQ0KPiBEYl9sdW5kZWY9ZmFsc2UgJCBtZXNvbiBjb25maWd1cmUgJEhPTUUvYnVpbGRzL2J1 aWxkLXg4Ni1nZW5lcmljIC0NCj4gRGJfc2FuaXRpemU9YWRkcmVzcw0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl4NCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRoaXMgaXMgdGhlIHRhcmdldCBmb3Igd2hpY2ggd2UgdGVzdCBsaW5raW5n IGEgZHBkayBhcHBsaWNhdGlvbg0KPiBvdXQgb2YgbWVzb24uDQo+IA0KPiAkIG1lc29uIGNvbmZp Z3VyZSAkSE9NRS9idWlsZHMvYnVpbGQtYXJtNjQtYmx1ZWZpZWxkIC0NCj4gRGJfc2FuaXRpemU9 YWRkcmVzcw0KPiANCj4gVGhlbiByYW4gdGhlIGNoZWNrOg0KPiAkIC4vZGV2dG9vbHMvdGVzdC1t ZXNvbi1idWlsZHMuc2gNCj4gLi4uDQo+IC4uLg0KPiAuLi4NCj4gIyMgQnVpbGRpbmcgY21kbGlu ZQ0KPiAvdXNyL2Jpbi9sZDogL3Vzci9saWI2NC9saWJhc2FuLnNvLjY6IHdhcm5pbmc6IHRoZSB1 c2Ugb2YgYHRtcG5hbScgaXMNCj4gZGFuZ2Vyb3VzLCBiZXR0ZXIgdXNlIGBta3N0ZW1wJw0KPiAv dXNyL2Jpbi9sZDogL3Vzci9saWI2NC9saWJhc2FuLnNvLjY6IHdhcm5pbmc6IHRoZSB1c2Ugb2Yg YHRlbXBuYW0nIGlzDQo+IGRhbmdlcm91cywgYmV0dGVyIHVzZSBgbWtzdGVtcCcNCj4gL3Vzci9i aW4vbGQ6IC91c3IvbGliNjQvbGliYXNhbi5zby42OiB3YXJuaW5nOiB0aGUgdXNlIG9mIGB0bXBu YW1fcicNCj4gaXMgZGFuZ2Vyb3VzLCBiZXR0ZXIgdXNlIGBta3N0ZW1wJw0KPiAjIyBCdWlsZGlu ZyBoZWxsb3dvcmxkDQo+IC91c3IvYmluL2xkOiAvdXNyL2xpYjY0L2xpYmFzYW4uc28uNjogd2Fy bmluZzogdGhlIHVzZSBvZiBgdG1wbmFtJyBpcw0KPiBkYW5nZXJvdXMsIGJldHRlciB1c2UgYG1r c3RlbXAnDQo+IC91c3IvYmluL2xkOiAvdXNyL2xpYjY0L2xpYmFzYW4uc28uNjogd2FybmluZzog dGhlIHVzZSBvZiBgdGVtcG5hbScgaXMNCj4gZGFuZ2Vyb3VzLCBiZXR0ZXIgdXNlIGBta3N0ZW1w Jw0KPiAvdXNyL2Jpbi9sZDogL3Vzci9saWI2NC9saWJhc2FuLnNvLjY6IHdhcm5pbmc6IHRoZSB1 c2Ugb2YgYHRtcG5hbV9yJw0KPiBpcyBkYW5nZXJvdXMsIGJldHRlciB1c2UgYG1rc3RlbXAnDQo+ IC91c3IvYmluL2xkOiAvaG9tZS9kbWFyY2hhbi9idWlsZHMvYnVpbGQteDg2LQ0KPiBnZW5lcmlj L2luc3RhbGwvdXNyL2xvY2FsL2xpYi9saWJydGVfY29tbW9uX2RwYWF4LmEoY29tbW9uX2RwYWF4 X2RwYWF4DQo+IF9pb3ZhX3RhYmxlLmMubyk6DQo+IGluIGZ1bmN0aW9uIGByZWFkX21lbW9yeV9u b2RlJzoNCj4gL2hvbWUvZG1hcmNoYW4vYnVpbGRzL2J1aWxkLXg4Ni0NCj4gZ2VuZXJpYy8uLi8u Li9kcGRrL2RyaXZlcnMvY29tbW9uL2RwYWF4L2RwYWF4X2lvdmFfdGFibGUuYzo1NzoNCj4gdW5k ZWZpbmVkIHJlZmVyZW5jZSB0byBgX19hc2FuX29wdGlvbl9kZXRlY3Rfc3RhY2tfdXNlX2FmdGVy X3JldHVybicNCj4gL3Vzci9iaW4vbGQ6IC9ob21lL2RtYXJjaGFuL2J1aWxkcy9idWlsZC14ODYt DQo+IGdlbmVyaWMvLi4vLi4vZHBkay9kcml2ZXJzL2NvbW1vbi9kcGFheC9kcGFheF9pb3ZhX3Rh YmxlLmM6NjU6DQo+IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9fYXNhbl9yZXBvcnRfc3RvcmU0 Jw0KPiAvdXNyL2Jpbi9sZDogL2hvbWUvZG1hcmNoYW4vYnVpbGRzL2J1aWxkLXg4Ni0NCj4gZ2Vu ZXJpYy8uLi8uLi9kcGRrL2RyaXZlcnMvY29tbW9uL2RwYWF4L2RwYWF4X2lvdmFfdGFibGUuYzo2 MToNCj4gdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19hc2FuX3JlcG9ydF9zdG9yZV9uJw0KPiAv dXNyL2Jpbi9sZDogL2hvbWUvZG1hcmNoYW4vYnVpbGRzL2J1aWxkLXg4Ni0NCj4gZ2VuZXJpYy8u Li8uLi9kcGRrL2RyaXZlcnMvY29tbW9uL2RwYWF4L2RwYWF4X2lvdmFfdGFibGUuYzo2MDoNCj4g dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19hc2FuX3JlcG9ydF9zdG9yZV9uJw0KPiAvdXNyL2Jp bi9sZDogL2hvbWUvZG1hcmNoYW4vYnVpbGRzL2J1aWxkLXg4Ni0NCj4gZ2VuZXJpYy8uLi8uLi9k cGRrL2RyaXZlcnMvY29tbW9uL2RwYWF4L2RwYWF4X2lvdmFfdGFibGUuYzo1NzoNCj4gdW5kZWZp bmVkIHJlZmVyZW5jZSB0byBgX19hc2FuX3N0YWNrX21hbGxvY18zJw0KPiAvdXNyL2Jpbi9sZDog L2hvbWUvZG1hcmNoYW4vYnVpbGRzL2J1aWxkLXg4Ni0NCj4gZ2VuZXJpYy8uLi8uLi9kcGRrL2Ry aXZlcnMvY29tbW9uL2RwYWF4L2RwYWF4X2lvdmFfdGFibGUuYzo3NzoNCj4gdW5kZWZpbmVkIHJl ZmVyZW5jZSB0byBgX19hc2FuX3JlcG9ydF9sb2FkOCcNCj4gL3Vzci9iaW4vbGQ6IC9ob21lL2Rt YXJjaGFuL2J1aWxkcy9idWlsZC14ODYtDQo+IGdlbmVyaWMvLi4vLi4vZHBkay9kcml2ZXJzL2Nv bW1vbi9kcGFheC9kcGFheF9pb3ZhX3RhYmxlLmM6ODY6DQo+IHVuZGVmaW5lZCByZWZlcmVuY2Ug dG8gYF9fYXNhbl9yZXBvcnRfbG9hZDgnDQo+IC91c3IvYmluL2xkOiAvaG9tZS9kbWFyY2hhbi9i dWlsZHMvYnVpbGQteDg2LQ0KPiBnZW5lcmljLy4uLy4uL2RwZGsvZHJpdmVycy9jb21tb24vZHBh YXgvZHBhYXhfaW92YV90YWJsZS5jOjg2Og0KPiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX2Fz YW5fcmVwb3J0X2xvYWQ4Jw0KPiAvdXNyL2Jpbi9sZDogL2hvbWUvZG1hcmNoYW4vYnVpbGRzL2J1 aWxkLXg4Ni0NCj4gZ2VuZXJpYy8uLi8uLi9kcGRrL2RyaXZlcnMvY29tbW9uL2RwYWF4L2RwYWF4 X2lvdmFfdGFibGUuYzo4ODoNCj4gdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19hc2FuX3JlcG9y dF9sb2FkOCcNCj4gL3Vzci9iaW4vbGQ6IC9ob21lL2RtYXJjaGFuL2J1aWxkcy9idWlsZC14ODYt DQo+IGdlbmVyaWMvLi4vLi4vZHBkay9kcml2ZXJzL2NvbW1vbi9kcGFheC9kcGFheF9pb3ZhX3Rh YmxlLmM6ODg6DQo+IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9fYXNhbl9yZXBvcnRfbG9hZDgn DQo+IC91c3IvYmluL2xkOiAvaG9tZS9kbWFyY2hhbi9idWlsZHMvYnVpbGQteDg2LQ0KPiBnZW5l cmljL2luc3RhbGwvdXNyL2xvY2FsL2xpYi9saWJydGVfY29tbW9uX2RwYWF4LmEoY29tbW9uX2Rw YWF4X2RwYWF4DQo+IF9pb3ZhX3RhYmxlLmMubyk6L2hvbWUvZG1hcmNoYW4vYnVpbGRzL2J1aWxk LXg4Ni0NCj4gZ2VuZXJpYy8uLi8uLi9kcGRrL2RyaXZlcnMvY29tbW9uL2RwYWF4L2RwYWF4X2lv dmFfdGFibGUuYzoxMDI6DQo+IG1vcmUgdW5kZWZpbmVkIHJlZmVyZW5jZXMgdG8gYF9fYXNhbl9y ZXBvcnRfbG9hZDgnIGZvbGxvdw0KPiAvdXNyL2Jpbi9sZDogL2hvbWUvZG1hcmNoYW4vYnVpbGRz L2J1aWxkLXg4Ni0NCj4gZ2VuZXJpYy9pbnN0YWxsL3Vzci9sb2NhbC9saWIvbGlicnRlX2NvbW1v bl9kcGFheC5hKGNvbW1vbl9kcGFheF9kcGFheA0KPiBfaW92YV90YWJsZS5jLm8pOg0KPiBpbiBm dW5jdGlvbiBgcmVhZF9tZW1vcnlfbm9kZSc6DQo+IC9ob21lL2RtYXJjaGFuL2J1aWxkcy9idWls ZC14ODYtDQo+IGdlbmVyaWMvLi4vLi4vZHBkay9kcml2ZXJzL2NvbW1vbi9kcGFheC9kcGFheF9p b3ZhX3RhYmxlLmM6MTE5Og0KPiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX2FzYW5fcmVwb3J0 X3N0b3JlNCcNCj4gL3Vzci9iaW4vbGQ6IC9ob21lL2RtYXJjaGFuL2J1aWxkcy9idWlsZC14ODYt DQo+IGdlbmVyaWMvLi4vLi4vZHBkay9kcml2ZXJzL2NvbW1vbi9kcGFheC9kcGFheF9pb3ZhX3Rh YmxlLmM6MTQ1Og0KPiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX2FzYW5fcmVwb3J0X2xvYWQx NicNCj4gL3Vzci9iaW4vbGQ6IC9ob21lL2RtYXJjaGFuL2J1aWxkcy9idWlsZC14ODYtDQo+IGdl bmVyaWMvLi4vLi4vZHBkay9kcml2ZXJzL2NvbW1vbi9kcGFheC9kcGFheF9pb3ZhX3RhYmxlLmM6 MTM1Og0KPiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX2FzYW5fcmVwb3J0X3N0b3JlX24nDQo+ IC91c3IvYmluL2xkOiAvaG9tZS9kbWFyY2hhbi9idWlsZHMvYnVpbGQteDg2LQ0KPiBnZW5lcmlj Ly4uLy4uL2RwZGsvZHJpdmVycy9jb21tb24vZHBhYXgvZHBhYXhfaW92YV90YWJsZS5jOjE0MzoN Cj4gdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19hc2FuX3JlcG9ydF9sb2FkOCcNCj4gL3Vzci9i aW4vbGQ6IC9ob21lL2RtYXJjaGFuL2J1aWxkcy9idWlsZC14ODYtDQo+IGdlbmVyaWMvaW5zdGFs bC91c3IvbG9jYWwvbGliL2xpYnJ0ZV9jb21tb25fZHBhYXguYShjb21tb25fZHBhYXhfZHBhYXgN Cj4gX2lvdmFfdGFibGUuYy5vKToNCj4gaW4gZnVuY3Rpb24gYHJvdGF0ZV84JzoNCj4gL2hvbWUv ZG1hcmNoYW4vYnVpbGRzL2J1aWxkLXg4Ni0NCj4gZ2VuZXJpYy8uLi8uLi9kcGRrL2RyaXZlcnMv Y29tbW9uL2RwYWF4L2RwYWF4X2lvdmFfdGFibGUuYzo0MDoNCj4gdW5kZWZpbmVkIHJlZmVyZW5j ZSB0byBgX19hc2FuX3JlcG9ydF9zdG9yZTQnDQo+IC91c3IvYmluL2xkOiAvaG9tZS9kbWFyY2hh bi9idWlsZHMvYnVpbGQteDg2LQ0KPiBnZW5lcmljLy4uLy4uL2RwZGsvZHJpdmVycy9jb21tb24v ZHBhYXgvZHBhYXhfaW92YV90YWJsZS5jOjM5Og0KPiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBf X2FzYW5fcmVwb3J0X3N0b3JlNCcNCj4gL3Vzci9iaW4vbGQ6IC9ob21lL2RtYXJjaGFuL2J1aWxk cy9idWlsZC14ODYtDQo+IGdlbmVyaWMvLi4vLi4vZHBkay9kcml2ZXJzL2NvbW1vbi9kcGFheC9k cGFheF9pb3ZhX3RhYmxlLmM6NDA6DQo+IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9fYXNhbl9y ZXBvcnRfc3RvcmU0Jw0KPiAvdXNyL2Jpbi9sZDogL2hvbWUvZG1hcmNoYW4vYnVpbGRzL2J1aWxk LXg4Ni0NCj4gZ2VuZXJpYy9pbnN0YWxsL3Vzci9sb2NhbC9saWIvbGlicnRlX2NvbW1vbl9kcGFh eC5hKGNvbW1vbl9kcGFheF9kcGFheA0KPiBfaW92YV90YWJsZS5jLm8pOg0KPiBpbiBmdW5jdGlv biBgcmVhZF9tZW1vcnlfbm9kZSc6DQo+IC9ob21lL2RtYXJjaGFuL2J1aWxkcy9idWlsZC14ODYt DQo+IGdlbmVyaWMvLi4vLi4vZHBkay9kcml2ZXJzL2NvbW1vbi9kcGFheC9kcGFheF9pb3ZhX3Rh YmxlLmM6MTQzOg0KPiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX2FzYW5fcmVwb3J0X2xvYWQ4 Jw0KPiAqZmxvb2Qgb2YgZXJyb3JzIGFib3V0IHVuZGVmaW5lZCBzeW1ib2xzIGZyb20gbGliYXNh bioNCj4gDQo+IA0KPiBUcmllZCB0byBkZWJ1ZywgaW4tdHJlZSBjb21waWxlZCB0ZXN0cG1kIHNo b3dzOg0KPiAkIHJlYWRlbGYgLWQgJEhPTUUvYnVpbGRzL2J1aWxkLXg4Ni1nZW5lcmljL2FwcC9k cGRrLXRlc3RwbWQgfCBncmVwIGFzYW4NCj4gIDB4MDAwMDAwMDAwMDAwMDAwMSAoTkVFREVEKSAg ICAgICAgICAgICBTaGFyZWQgbGlicmFyeTogW2xpYmFzYW4uc28uNl0NCj4gQnV0IEkgc2VlIG5v dGhpbmcgaW4gbmluamE6DQo+ICQgZ3JlcCAtaSBhc2FuICRIT01FL2J1aWxkcy9idWlsZC14ODYt Z2VuZXJpYy9idWlsZC5uaW5qYQ0KPiANCj4gQW5kIGZvciBleHRlcm5hbCBsaW5rLCBsb29raW5n IGF0IGFuICJpbnN0YWxsZWQiIC5wYzoNCj4gJCBQS0dfQ09ORklHX1BBVEg9L2hvbWUvZG1hcmNo YW4vYnVpbGRzL2J1aWxkLXg4Ni0NCj4gZ2VuZXJpYy9pbnN0YWxsL3Vzci9sb2NhbC9saWIvcGtn Y29uZmlnDQo+IHBrZy1jb25maWcgbGliZHBkayAtLWxpYnMgfCBncmVwIGFzYW4NCg0KTmVlZCB0 byBsaW5rIC1sYXNhbiB3aGVuIHVzaW5nIGdjYywgYnV0IGRvbuKAmXQgbmVlZCB0byBsaW5rIHdo ZW4gdXNpbmcgY2xhbmcuIA0KWW91IGFkZGVkIGl0IGluIHRoZSB2NiB2ZXJzaW9uIGNvbW1lbnRz LCBidXQgbmVlZCB0byByZXN0cmljdCB3aGVuIHVzaW5nIGNsYW5nLg0KQWxsIGNvZGU6DQppZiBn ZXRfb3B0aW9uKCdiX3Nhbml0aXplJykgPT0gJ2FkZHJlc3MnIG9yIGdldF9vcHRpb24oJ2Jfc2Fu aXRpemUnKSA9PSAnYWRkcmVzcyx1bmRlZmluZWQnDQogICAgaWYgY2MuZ2V0X2lkKCkgPT0gJ2dj YycNCiAgICAgICAgYXNhbl9kZXAgPSBjYy5maW5kX2xpYnJhcnkoJ2FzYW4nLCByZXF1aXJlZDog dHJ1ZSkNCiAgICAgICAgaWYgKG5vdCBjYy5saW5rcygnaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkgeyByZXR1cm4gMDsgfScsDQogICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2ll czogYXNhbl9kZXApKQ0KICAgICAgICAgICAgZXJyb3IoJ2Jyb2tlbiBkZXBlbmRlbmN5LCAibGli YXNhbiInKQ0KICAgICAgICBlbmRpZg0KICAgICAgICBhZGRfcHJvamVjdF9saW5rX2FyZ3VtZW50 cygnLWxhc2FuJywgbGFuZ3VhZ2U6ICdjJykNCiAgICAgICAgZHBka19leHRyYV9sZGZsYWdzICs9 ICctbGFzYW4nDQogICAgZW5kaWYNCg0KICAgIGlmIGV4ZWNfZW52ID09ICdsaW51eCcgYW5kIGFy Y2hfc3ViZGlyID09ICd4ODYnDQogICAgICAgIGRwZGtfY29uZi5zZXQxMCgnUlRFX01BTExPQ19B U0FOJywgdHJ1ZSkNCiAgICBlbmRpZg0KZW5kaWYNCg0KPiANCj4gDQo+IFNvbWUgbW9yZSBjb21t ZW50cyBhYm91dCBzcGxpdHRpbmcgZG9jIHdpdGggcGF0Y2gyOg0KPiANCj4gDQo+ID4gLS0tDQo+ ID4gdjc6IDEpIFNwbGl0IGRvYyBhbmQgY29kZSBpbnRvIHR3by4NCj4gPiAgICAgMikgTW9kaWZ5 IGFzYW4ucnN0IGRvYw0KPiA+IHY4OiBObyBjaGFuZ2UuDQo+ID4gdjk6IDEpIEFkZCB0aGUgY2hl Y2sgb2YgbGliYXNhbiBsaWJyYXJ5Lg0KPiA+ICAgICAyKSBBZGQgcmVsZWFzZSBub3Rlcy4NCj4g PiAtLS0NCj4gPiAgY29uZmlnL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgfCAxMCAr KysNCj4gPiAgZGV2dG9vbHMvd29yZHMtY2FzZS50eHQgICAgICAgICAgICAgICAgfCAgMSArDQo+ ID4gIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9hc2FuLnJzdCAgICAgICAgIHwgOTcNCj4gKysrKysr KysrKysrKysrKysrKysrKysrKysNCj4gPiAgZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2luZGV4LnJz dCAgICAgICAgfCAgMSArDQo+ID4gIGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEu cnN0IHwgIDkgKysrDQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKykNCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9hc2FuLnJzdA0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL2NvbmZpZy9tZXNvbi5idWlsZCBiL2NvbmZpZy9tZXNvbi5idWls ZCBpbmRleA0KPiA+IDRjZGY1ODllMjAuLjUxNzBiNzlmZWQgMTAwNjQ0DQo+ID4gLS0tIGEvY29u ZmlnL21lc29uLmJ1aWxkDQo+ID4gKysrIGIvY29uZmlnL21lc29uLmJ1aWxkDQo+ID4gQEAgLTQx MSw2ICs0MTEsMTYgQEAgaWYgZ2V0X29wdGlvbignYl9sdG8nKQ0KPiA+ICAgICAgZW5kaWYNCj4g PiAgZW5kaWYNCj4gPg0KPiA+ICtpZiBnZXRfb3B0aW9uKCdiX3Nhbml0aXplJykgPT0gJ2FkZHJl c3MnDQo+ID4gKyAgICBpZiBjYy5nZXRfaWQoKSA9PSAnZ2NjJw0KPiA+ICsgICAgICAgIGFzYW5f ZGVwID0gY2MuZmluZF9saWJyYXJ5KCdhc2FuJywgcmVxdWlyZWQ6IHRydWUpDQo+ID4gKyAgICAg ICAgaWYgKG5vdCBjYy5saW5rcygnaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeyBy ZXR1cm4gMDsgfScsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzOiBhc2Fu X2RlcCkpDQo+ID4gKyAgICAgICAgICAgIGVycm9yKCdicm9rZW4gZGVwZW5kZW5jeSwgImxpYmFz YW4iJykNCj4gPiArICAgICAgICBlbmRpZg0KPiA+ICsgICAgZW5kaWYNCj4gPiArZW5kaWYNCj4g PiArDQo+ID4gIGlmIGdldF9vcHRpb24oJ2RlZmF1bHRfbGlicmFyeScpID09ICdib3RoJw0KPiA+ ICAgICAgZXJyb3IoICcnJw0KPiA+ICAgVW5zdXBwb3J0ZWQgdmFsdWUgImJvdGgiIGZvciAiZGVm YXVsdF9saWJyYXJ5IiBvcHRpb24uDQo+ID4gZGlmZiAtLWdpdCBhL2RldnRvb2xzL3dvcmRzLWNh c2UudHh0IGIvZGV2dG9vbHMvd29yZHMtY2FzZS50eHQgaW5kZXgNCj4gPiAwYmJhZDQ4NjI2Li5h ZGE2OTEwZmEwIDEwMDY0NA0KPiA+IC0tLSBhL2RldnRvb2xzL3dvcmRzLWNhc2UudHh0DQo+ID4g KysrIGIvZGV2dG9vbHMvd29yZHMtY2FzZS50eHQNCj4gPiBAQCAtNSw2ICs1LDcgQEAgQVBJDQo+ ID4gIEFybQ0KPiA+ICBhcm12Nw0KPiA+ICBhcm12OA0KPiA+ICtBU2FuDQo+ID4gIEJBUg0KPiA+ ICBDUkMNCj4gPiAgRENCDQo+ID4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9h c2FuLnJzdA0KPiA+IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2FzYW4ucnN0IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0IGluZGV4DQo+ID4gMDAwMDAwMDAwMC4uNjI3Njc1ZWY0Ng0KPiA+IC0tLSAvZGV2 L251bGwNCj4gPiArKysgYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvYXNhbi5yc3QNCj4gPiBAQCAt MCwwICsxLDk3IEBADQo+ID4gKy4uIENvcHlyaWdodCAoYykgPDIwMjE+LCBJbnRlbCBDb3Jwb3Jh dGlvbg0KPiA+ICsgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ICsNCj4gPiArTWVtb3J5IGVy cm9yIGRldGVjdCBzdGFuZGFyZCB0b29sIC0gQWRkcmVzc1Nhbml0aXplcihBU2FuKQ0KPiA+DQo+ ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCj4gPQ0KPiA+ICsNCj4gPiArYEFkZHJlc3NTYW5pdGl6ZXINCj4gPiArPGh0dHBzOi8vZ2l0 aHViLmNvbS9nb29nbGUvc2FuaXRpemVycy93aWtpL0FkZHJlc3NTYW5pdGl6ZXI+YCAoQVNhbikN Cj4gPiAraXMgYSB3aWRlbHktdXNlZCBkZWJ1Z2dpbmcgdG9vbCB0byBkZXRlY3QgbWVtb3J5IGFj Y2VzcyBlcnJvcnMuDQo+ID4gK0l0IGhlbHBzIGRldGVjdCBpc3N1ZXMgbGlrZSB1c2UtYWZ0ZXIt ZnJlZSwgdmFyaW91cyBraW5kcyBvZiBidWZmZXINCj4gPiArb3ZlcnJ1bnMgaW4gQy9DKysgcHJv Z3JhbXMsIGFuZCBvdGhlciBzaW1pbGFyIGVycm9ycywgYXMgd2VsbCBhcw0KPiA+ICtwcmludGlu ZyBvdXQgZGV0YWlsZWQgZGVidWcgaW5mb3JtYXRpb24gd2hlbmV2ZXIgYW4gZXJyb3IgaXMgZGV0 ZWN0ZWQuDQo+ID4gKw0KPiA+ICtBZGRyZXNzU2FuaXRpemVyIGlzIGEgcGFydCBvZiBMTFZNICgz LjErKSBhbmQgR0NDICg0LjgrKS4NCj4gDQo+IFNhbWUgcHJvYmxlbSwgYmVsb3cgc2hvdWxkIGJl IGluIHBhdGNoIDIsIGZyb20gaGVyZS4uLg0KDQpUaGUgdjEwIHZlcnNpb24gd2lsbCBiZSBmaXhl ZC4NCj4gDQo+ID4gKw0KPiA+ICtEUERLIEFTYW4gZnVuY3Rpb25hbGl0eSBpcyBjdXJyZW50bHkg b25seSBzdXBwb3J0ZWQgTGludXggeDg2XzY0Lg0KPiA+ICtTdXBwb3J0IG90aGVyIHBsYXRmb3Jt cywgbmVlZCB0byBkZWZpbmUgQVNBTl9TSEFET1dfT0ZGU0VUIHZhbHVlDQo+ID4gK2FjY29yZGlu ZyB0byBnb29nbGUgQVNhbiBkb2N1bWVudCwgYW5kIGNvbmZpZ3VyZSBtZXNvbg0KPiA+ICsoY29u ZmlnL21lc29uLmJ1aWxkKS4NCj4gPiArDQo+ID4gK0V4YW1wbGUgaGVhcC1idWZmZXItb3ZlcmZs b3cgZXJyb3INCj4gPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICsN Cj4gPiArRm9sbG93aW5nIGVycm9yIHdhcyByZXBvcnRlZCB3aGVuIEFTYW4gd2FzIGVuYWJsZWQ6 Og0KPiA+ICsNCj4gPiArICAgIEFwcGxpZWQgOSBieXRlcyBvZiBtZW1vcnksIGJ1dCBhY2Nlc3Nl ZCB0aGUgMTB0aCBieXRlIG9mIG1lbW9yeSwNCj4gPiArICAgIHNvIGhlYXAtYnVmZmVyLW92ZXJm bG93IGFwcGVhcmVkLg0KPiA+ICsNCj4gPiArQmVsb3cgY29kZSByZXN1bHRzIGluIHRoaXMgZXJy b3I6Og0KPiA+ICsNCj4gPiArICAgIEFkZCBjb2RlIHRvIGhlbGxvd29ybGQ6DQo+ID4gKyAgICBj aGFyICpwID0gcnRlX3ptYWxsb2MoTlVMTCwgOSwgMCk7DQo+ID4gKyAgICBpZiAoIXApIHsNCj4g PiArICAgICAgICBwcmludGYoInJ0ZV96bWFsbG9jIGVycm9yLiIpOw0KPiA+ICsgICAgICAgIHJl dHVybiAtMTsNCj4gPiArICAgIH0NCj4gPiArICAgIHBbOV0gPSAnYSc7DQo+ID4gKw0KPiA+ICtU aGUgZXJyb3IgbG9nOjoNCj4gPiArDQo+ID4gKyAgICA9PTM2OTk1Mz09RVJST1I6IEFkZHJlc3NT YW5pdGl6ZXI6IGhlYXAtYnVmZmVyLW92ZXJmbG93IG9uIGFkZHJlc3MNCj4gMHg3ZmIxN2Y0NjU4 MDkgYXQgcGMgMHg1NjUyZTY3MDdiODQgYnAgMHg3ZmZlYTcwZWVhMjAgc3AgMHg3ZmZlYTcwZWVh MTANCj4gV1JJVEUgb2Ygc2l6ZSAxIGF0IDB4N2ZiMTdmNDY1ODA5IHRocmVhZCBUMA0KPiA+ICsg ICAgIzAgMHg1NjUyZTY3MDdiODMgaW4gbWFpbiAuLi9leGFtcGxlcy9oZWxsb3dvcmxkL21haW4u Yzo0Nw0KPiA+ICsgICAgIzEgMHg3ZmI5NDk1M2MwYjIgaW4gX19saWJjX3N0YXJ0X21haW4gKC9s aWIveDg2XzY0LWxpbnV4LQ0KPiBnbnUvbGliYy5zby42KzB4MjcwYjIpDQo+ID4gKyAgICAjMiAw eDU2NTJlNjcwNzliZCBpbiBfc3RhcnQNCj4gPiArICgvaG9tZS9wemgvYXNhbl90ZXN0L3g4Nl82 NC1uYXRpdmUtbGludXhhcHAtZ2NjL2V4YW1wbGVzL2RwZGstDQo+IGhlbGxvdw0KPiA+ICsgb3Js ZCsweDgzMjliZCkNCj4gPiArDQo+ID4gKyAgICBBZGRyZXNzIDB4N2ZiMTdmNDY1ODA5IGlzIGEg d2lsZCBwb2ludGVyLg0KPiA+ICsgICAgU1VNTUFSWTogQWRkcmVzc1Nhbml0aXplcjogaGVhcC1i dWZmZXItb3ZlcmZsb3cNCj4gPiArIC4uL2V4YW1wbGVzL2hlbGxvd29ybGQvbWFpbi5jOjQ3IGlu IG1haW4NCj4gPiArDQo+ID4gK0V4YW1wbGUgdXNlLWFmdGVyLWZyZWUgZXJyb3INCj4gPiArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiArRm9sbG93aW5nIGVycm9yIHdh cyByZXBvcnRlZCB3aGVuIEFTYW4gd2FzIGVuYWJsZWQ6Og0KPiA+ICsNCj4gPiArICAgIEFwcGxp ZWQgZm9yIDkgYnl0ZXMgb2YgbWVtb3J5LCBhbmQgYWNjZXNzZWQgdGhlIGZpcnN0IGJ5dGUgYWZ0 ZXINCj4gPiArICAgIHJlbGVhc2VkLCBzbyBoZWFwLXVzZS1hZnRlci1mcmVlIGFwcGVhcmVkLg0K PiA+ICsNCj4gPiArQmVsb3cgY29kZSByZXN1bHRzIGluIHRoaXMgZXJyb3I6Og0KPiA+ICsNCj4g PiArICAgIEFkZCBjb2RlIHRvIGhlbGxvd29ybGQ6DQo+ID4gKyAgICBjaGFyICpwID0gcnRlX3pt YWxsb2MoTlVMTCwgOSwgMCk7DQo+ID4gKyAgICBpZiAoIXApIHsNCj4gPiArICAgICAgICBwcmlu dGYoInJ0ZV96bWFsbG9jIGVycm9yLiIpOw0KPiA+ICsgICAgICAgIHJldHVybiAtMTsNCj4gPiAr ICAgIH0NCj4gPiArICAgIHJ0ZV9mcmVlKHApOw0KPiA+ICsgICAgKnAgPSAnYSc7DQo+ID4gKw0K PiA+ICtUaGUgZXJyb3IgbG9nOjoNCj4gPiArDQo+ID4gKyAgICA9PTQxNzA0OD09RVJST1I6IEFk ZHJlc3NTYW5pdGl6ZXI6IGhlYXAtdXNlLWFmdGVyLWZyZWUgb24gYWRkcmVzcw0KPiAweDdmYzgz ZjQ2NTgwMCBhdCBwYyAweDU2NDMwOGEzOWI4OSBicCAweDdmZmM4Yzg1YmY1MCBzcCAweDdmZmM4 Yzg1YmY0MA0KPiBXUklURSBvZiBzaXplIDEgYXQgMHg3ZmM4M2Y0NjU4MDAgdGhyZWFkIFQwDQo+ ID4gKyAgICAjMCAweDU2NDMwOGEzOWI4OCBpbiBtYWluIC4uL2V4YW1wbGVzL2hlbGxvd29ybGQv bWFpbi5jOjQ4DQo+ID4gKyAgICAjMSAweDdmZDAwNzljNjBiMiBpbiBfX2xpYmNfc3RhcnRfbWFp biAoL2xpYi94ODZfNjQtbGludXgtDQo+IGdudS9saWJjLnNvLjYrMHgyNzBiMikNCj4gPiArICAg ICMyIDB4NTY0MzA4YTM5OWJkIGluIF9zdGFydA0KPiA+ICsgKC9ob21lL3B6aC9hc2FuX3Rlc3Qv eDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvZXhhbXBsZXMvZHBkay0NCj4gaGVsbG93DQo+ID4g KyBvcmxkKzB4ODMyOWJkKQ0KPiA+ICsNCj4gPiArICAgIEFkZHJlc3MgMHg3ZmM4M2Y0NjU4MDAg aXMgYSB3aWxkIHBvaW50ZXIuDQo+ID4gKyAgICBTVU1NQVJZOiBBZGRyZXNzU2FuaXRpemVyOiBo ZWFwLXVzZS1hZnRlci1mcmVlDQo+ID4gKyAuLi9leGFtcGxlcy9oZWxsb3dvcmxkL21haW4uYzo0 OCBpbiBtYWluDQo+IA0KPiAuLi4gdGlsbCBoZXJlLg0KPiANCj4gDQo+ID4gKw0KPiA+ICtVc2Fn ZQ0KPiA+ICstLS0tLQ0KPiA+ICsNCj4gPiArbWVzb24gYnVpbGQNCj4gPiArXl5eXl5eXl5eXl4N Cj4gPiArDQo+ID4gK1RvIGVuYWJsZSBBU2FuIGluIG1lc29uIGJ1aWxkIHN5c3RlbSwgdXNlIGZv bGxvd2luZyBtZXNvbiBidWlsZA0KPiBjb21tYW5kOg0KPiA+ICsNCj4gPiArRXhhbXBsZSB1c2Fn ZTo6DQo+ID4gKw0KPiA+ICsgbWVzb24gYnVpbGQgLURidWlsZHR5cGU9ZGVidWcgLURiX2x1bmRl Zj1mYWxzZSAtRGJfc2FuaXRpemU9YWRkcmVzcw0KPiANCj4gbF91bmRlZiB1bm5lY2Vzc2FyeSBm b3IgZ2NjLg0KDQpUaGUgdjEwIHZlcnNpb24gd2lsbCBiZSBmaXhlZC4NCj4gDQo+ID4gKyBuaW5q YSAtQyBidWlsZA0KPiA+ICsNCj4gPiArLi4gTm90ZTo6DQo+ID4gKw0KPiA+ICsgIGEpIFNvbWUg b2YgdGhlIGZlYXR1cmVzIG9mIEFTYW4gKGZvciBleGFtcGxlLCAnRGlzcGxheSBtZW1vcnkNCj4g YXBwbGljYXRpb24gbG9jYXRpb24sIGN1cnJlbnRseQ0KPiA+ICsgICAgIGRpc3BsYXllZCBhcyBh IHdpbGQgcG9pbnRlcicpIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSBEUERLJ3MNCj4g aW1wbGVtZW50YXRpb24uDQo+IA0KPiBUaGlzIGNvbW1lbnQgc2hvdWxkIGJlIGluIHBhdGNoIDIs IHRoZXJlIGlzIG5vdGhpbmcgc3BlY2lmaWMgaW4gcGF0Y2gNCj4gMSBhYm91dCBEUERLIHdydCBB U2FuLg0KDQpUaGUgdjEwIHZlcnNpb24gd2lsbCBiZSBmaXhlZC4NCj4gDQo+ID4gKyAgYikgRFBE SyB0ZXN0IGhhcyBiZWVuIGNvbXBsZXRlZCBpbg0KPiB1YnVudHUxOC4wNC91YnVudHUyMC4wNC9y ZWRoYXQ4LjMuIFRvIGNvbXBpbGUgd2l0aCBnY2MgaW4NCj4gPiArICAgICBjZW50b3MsIGxpYmFz YW4gbmVlZHMgdG8gYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkuDQo+ID4gKyAgYykgSWYgdGhlIHBy b2dyYW0gdXNlcyBjbWRsaW5lLCB3aGVuIGEgbWVtb3J5IGJ1ZyBvY2N1cnMsIG5lZWQgdG8NCj4g ZXhlY3V0ZSB0aGUgInN0dHkgZWNobyIgY29tbWFuZC4NCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1 aWRlcy9wcm9nX2d1aWRlL2luZGV4LnJzdA0KPiA+IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2lu ZGV4LnJzdCBpbmRleCAyZGNlNTA3ZjQ2Li5kZjhhNGI5M2UxIDEwMDY0NA0KPiA+IC0tLSBhL2Rv Yy9ndWlkZXMvcHJvZ19ndWlkZS9pbmRleC5yc3QNCj4gPiArKysgYi9kb2MvZ3VpZGVzL3Byb2df Z3VpZGUvaW5kZXgucnN0DQo+ID4gQEAgLTcxLDMgKzcxLDQgQEAgUHJvZ3JhbW1lcidzIEd1aWRl DQo+ID4gICAgICBsdG8NCj4gPiAgICAgIHByb2ZpbGVfYXBwDQo+ID4gICAgICBnbG9zc2FyeQ0K PiA+ICsgICAgYXNhbg0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxl YXNlXzIxXzExLnJzdA0KPiA+IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMV8xMS5y c3QNCj4gPiBpbmRleCA1MDM2NjQxODQyLi41OGM2Mzc3MTQ4IDEwMDY0NA0KPiA+IC0tLSBhL2Rv Yy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0DQo+ID4gKysrIGIvZG9jL2d1aWRl cy9yZWxfbm90ZXMvcmVsZWFzZV8yMV8xMS5yc3QNCj4gPiBAQCAtMTQxLDYgKzE0MSwxNSBAQCBO ZXcgRmVhdHVyZXMNCj4gPiAgICAqIEFkZGVkIHRlc3RzIHRvIHZhbGlkYXRlIHBhY2tldHMgaGFy ZCBleHBpcnkuDQo+ID4gICAgKiBBZGRlZCB0ZXN0cyB0byB2ZXJpZnkgdHVubmVsIGhlYWRlciB2 ZXJpZmljYXRpb24gaW4gSVBzZWMgaW5ib3VuZC4NCj4gPg0KPiA+ICsqICoqRW5hYmxlIEFTYW4g Zm9yIG1lbW9yeSBkZXRlY3RvciBvbiBEUERLLioqDQo+ID4gKw0KPiA+ICsgIGBBZGRyZXNzU2Fu aXRpemVyDQo+ID4gKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvc2FuaXRpemVycy93aWtp L0FkZHJlc3NTYW5pdGl6ZXI+YA0KPiA+ICsgKEFTYW4pICBpcyBhIHdpZGVseS11c2VkIGRlYnVn Z2luZyB0b29sIHRvIGRldGVjdCBtZW1vcnkgYWNjZXNzIGVycm9ycy4NCj4gPiArICBJdCBoZWxw cyBkZXRlY3QgaXNzdWVzIGxpa2UgdXNlLWFmdGVyLWZyZWUsIHZhcmlvdXMga2luZHMgb2YgYnVm ZmVyDQo+ID4gKyBvdmVycnVucyBpbiBDL0MrKyBwcm9ncmFtcywgYW5kIG90aGVyIHNpbWlsYXIg ZXJyb3JzLCBhcyB3ZWxsIGFzDQo+ID4gKyBwcmludGluZyBvdXQgZGV0YWlsZWQgZGVidWcgaW5m b3JtYXRpb24gd2hlbmV2ZXIgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuDQo+ID4gKw0KPiA+DQo+ID4g IFJlbW92ZWQgSXRlbXMNCj4gPiAgLS0tLS0tLS0tLS0tLQ0KPiA+IC0tDQo+ID4gMi4yNS4xDQo+ ID4NCj4gDQo+IA0KPiAtLQ0KPiBEYXZpZCBNYXJjaGFuZA0KDQo=