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 78CC9A0A0A; Thu, 6 May 2021 04:52:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EE0A9410DB; Thu, 6 May 2021 04:52:29 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70049.outbound.protection.outlook.com [40.107.7.49]) by mails.dpdk.org (Postfix) with ESMTP id BACFD40040; Thu, 6 May 2021 04:52:28 +0200 (CEST) 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=IHUrTdaoS5sBsVa/Z8cvESGETP3oc/dyRYeCv+/5R7o=; b=qT6+S4RB8hN5k/bO86dmIi3PT+qS3GBmpwydV4/Gb2wEEI03i38JgURRhzfmbVse6DPSmdJfya113HMCinvzpcCMtp6csW1Rjp04Q3F6yXRwclaHIkOC7e3mCOY5O5M15EkPlxkURVGu4PcWkKEtbiuxClnMVx6SVoRsS3XbZJg= Received: from AM5PR0202CA0005.eurprd02.prod.outlook.com (2603:10a6:203:69::15) by DB9PR08MB6859.eurprd08.prod.outlook.com (2603:10a6:10:26c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25; Thu, 6 May 2021 02:52:26 +0000 Received: from VE1EUR03FT018.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:69:cafe::46) by AM5PR0202CA0005.outlook.office365.com (2603:10a6:203:69::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Thu, 6 May 2021 02:52:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT018.mail.protection.outlook.com (10.152.18.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Thu, 6 May 2021 02:52:25 +0000 Received: ("Tessian outbound 9a5bb9d11315:v91"); Thu, 06 May 2021 02:52:25 +0000 X-CR-MTA-TID: 64aa7808 Received: from e7d54d9a96de.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 27F8538B-EADB-44EB-B217-C80574F90D3C.1; Thu, 06 May 2021 02:52:15 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e7d54d9a96de.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 06 May 2021 02:52:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lmNoYbaapEnn0KOwnoZYhZPabeS+fNBOlmzThtVt8cp7fgWu4m3IvpDSirHqggLkXXDlked16X0SxjIQ2EYcBmyOFkew6/6G5Pr+VaYLkRyDkmvq2I8Qmd0yJnnVdAcye7CHaAMKbHl+jiR1uxu1aaZN6umPFY32hhn+swv0/xPHDPVU8Vg3vFfbgELSvl8nWS/MZT/BS6TNbJU7Z5VgR9XMzBxZTnC4Vj/aCQRJTf2KJcf3Uef/vEMS34rkY/5muH6SrPXv9lv5VataBgGcVsim6qIP15S1N2OrErkS1MbY50ALGitPK4BVgQd3aL4ba+sXwWRAzwsZtGvYBY4RMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IHUrTdaoS5sBsVa/Z8cvESGETP3oc/dyRYeCv+/5R7o=; b=XAcMjD6LppdOuQLef+RXQGhLE3VEWreIqhubAaQTVTyQx5javJgzPD1EeXubSDOT0Eq0fE5ElKcrar1s7DX9hLNYJTj6+ui3W0o97zREJ4vGgoZNqI6H4gtFnqFYzk+dyyFF7A5s2czj82suzsf/PCzGXprCVIPQRi9LVt8S2b+tyNxUypR4qXKpK8T0xNIFZlzGlspaeVTY5c0BtmcWmGq97qg40frg65gkqciqlKbLHB7De8k4d0arSfI4G/4TdlAmETU9KO4k+LzlHkydc3XjTtVERz/Dis/kM5QRk74+J96b2Y+vAq2ZExA135nQSv7pVTMFL3CeeDVLKicBVA== 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=IHUrTdaoS5sBsVa/Z8cvESGETP3oc/dyRYeCv+/5R7o=; b=qT6+S4RB8hN5k/bO86dmIi3PT+qS3GBmpwydV4/Gb2wEEI03i38JgURRhzfmbVse6DPSmdJfya113HMCinvzpcCMtp6csW1Rjp04Q3F6yXRwclaHIkOC7e3mCOY5O5M15EkPlxkURVGu4PcWkKEtbiuxClnMVx6SVoRsS3XbZJg= Received: from DB9PR08MB6923.eurprd08.prod.outlook.com (2603:10a6:10:2ac::6) by DB7PR08MB3114.eurprd08.prod.outlook.com (2603:10a6:5:1b::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.43; Thu, 6 May 2021 02:52:03 +0000 Received: from DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::25e2:6eb9:f211:fa18]) by DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::25e2:6eb9:f211:fa18%7]) with mapi id 15.20.4108.025; Thu, 6 May 2021 02:52:03 +0000 From: Feifei Wang To: Slava Ovsiienko , Matan Azrad , Shahaf Shuler CC: "dev@dpdk.org" , nd , "stable@dpdk.org" , Ruifeng Wang , nd Thread-Topic: [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache Thread-Index: AQHXG8b7HnA5AJfI/UGBdB2hbGP3xaqws80AgAEoGSCACoZUgIAAtmJQgAAa2oCAAAmfAIAAAbAggBi7LuA= Date: Thu, 6 May 2021 02:52:03 +0000 Message-ID: References: <20210318071840.359957-1-feifei.wang2@arm.com> <20210318071840.359957-4-feifei.wang2@arm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: E0522E55728A634EA7CCB77F28B0549B.0 x-checkrecipientchecked: true Authentication-Results-Original: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.112] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 4aac8c5e-7c52-4515-0dda-08d91039fb0a x-ms-traffictypediagnostic: DB7PR08MB3114:|DB9PR08MB6859: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: ySNMZKQf6P2nK+mxlNz0nybJMDbFMOx0kfwx9cljtwR0f6Cl0j9EWVavDgtSQHCUJzXxBOgM6vAlifNfDL+eVvd44Z47Q13UPvoyxPCm9FtQLqiZKZO0XPLE+EbKS9P8gj9sJ9+/gzxy/rUwLv4AOCXQY6s1BabvWrFLs73fCXQCzMr34V4ybYuH7sxC3ZwIJg1X5FNPYx4Twu9Qw2+ANiBQE2RYPgk3aObS9M2cpxkf7lQ2fXm9Z7Njn3N205oc7SM9PwX61+nph9mUv5iY7jCjlQYpgT48zk9iwALspz2cs8uCJdncJv40Jvdef10FXUatcXTKcKPUbVh2MKxdk+f753r7/pdhGkfsCGrRwQomckfVV53UxSfNErfYPghVskVnn0fgoAR4VCNjjTjLoPJgD6t7bsLjOxRAsQYza+bkcvbuH/6w9BiLFxyCkkNcrfOfXKZsw+QUR79CjhtHGQPCIqP2DrL/MDWHys0lnSuxy9K8VwVRZID3+vXeZmlFmd84ktHy2c0oU6iiJA/sAGGjWR2biAlVse6LvdcRJ4CK4g1UY+5UFY1vanfcJVLSTFO4jZ5tXaUqtED7rsb/qNPwb9fwZfDAfR843z8H+iY= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6923.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(346002)(376002)(39850400004)(366004)(136003)(478600001)(66556008)(2906002)(66946007)(76116006)(71200400001)(83380400001)(7696005)(224303003)(33656002)(316002)(30864003)(186003)(86362001)(26005)(5660300002)(122000001)(38100700002)(53546011)(64756008)(4326008)(55016002)(66476007)(9686003)(66446008)(6506007)(8936002)(54906003)(110136005)(52536014)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?WWtXaHVSS0FiSnVVWCtWRVloMFdYZVlFYStzcHRnbENQTTlMNHRnQkhmNktn?= =?utf-8?B?ZDhpdXc4Wk52ODBVREc1c2pVN3Z1VUJZdk5PaVd6Y3JqMEtqSXRXTXpqMTNE?= =?utf-8?B?NlRQUEpaUTYrWWNxZlRhWlBZZnJLQzNnaHk3UmRNand5WkdDckM2NlhyR3BV?= =?utf-8?B?KzdTckJEdmtaYmxaSUpCVlJrWjRPbE50ZW9zenhnOW9PMm9BbTZqRFROZXNS?= =?utf-8?B?MGJqclBaelFHVU1JcFJRZ1FmRlBqRVNBalowNjVRNmM4MmhmU085elV2eEdX?= =?utf-8?B?bEpFeXNBclU5RzFsOUpYcXBiN3FCdSs0Y1o5TGQ4VXl3b2dtRGtQZHJJZjVm?= =?utf-8?B?RmhLOUZ2RnV2TWV1anF3TmRyN1MvTlVma0J0Yk9RNXhjZUlVVlhtTkhYMXkv?= =?utf-8?B?Vm0ySnlOUitlbUpwMTdKeHA1N1BkNzc0MjdmVDZmS09ZNHVsVStmekFvOXhw?= =?utf-8?B?bXBEYXdqV1doS2lZSDN4OCtkeEtGanBJZlljV1pXclVhRFJ6dGN5OFliV1pJ?= =?utf-8?B?b2kzSGpUZXNLdFNYK2N4Q0haajAxNDFiM3VJU2ZRaVNwU3NvTmIzOUU3VlFT?= =?utf-8?B?NHBNR0dVRmJTb1h5ZS82WEhvQXhldEprMEF5cnJoNVM5R3M2aWpIOUc3eURx?= =?utf-8?B?VjRTWmptaHJGUm14ck5CMXp2M1dRbnFWZTlYY1BScXRYV2JGTFQ3YityNjUv?= =?utf-8?B?ZStoemtSNEtpTGlOZVlWcjJuWmdsTWJLR0luWkU0azlkemhvSmZ3YU5OVGNR?= =?utf-8?B?SGhtd1lueUU4RlovSHUvNkhXZ2JzaVhwUmQrNnhXKytaMXlHNmtWRGlabXlC?= =?utf-8?B?L053V3dhL29MNWxCMWxaam9scHUzNzN6ajU0UnJ1SDNpcnNaSkxvYW1KNVpo?= =?utf-8?B?aElFMXFzallmMVZHQi9hZ1NIL1FKOFUyQ3dIU01Dam1WRWtPbjJmdytQMGEy?= =?utf-8?B?ZEYwdFQrVGJad0hZTHErYnV5V2FDT0twRm1YaEtyNEJrV0dIeCtTYXphYUJS?= =?utf-8?B?dEZGemFwRWFveXR5d2cxaVh3SHdnQ1JxWitSczFuOCtONEZZYU5RQmhycVQx?= =?utf-8?B?UE42Rll0em9hbXlXbkw3SDNWR3ZvcUNNQTZaTEdhNjBENDBPVTFpOHNWUUQ5?= =?utf-8?B?OEhoOHRRY3c0dStkallQanYvMURpUXd4SnViT0FUVE1OeVN0R3B5M2hTYUpu?= =?utf-8?B?cUM2ZEVyQ2UrUW45WHJEWXFxWVdLYmd6STAzRmNyNWV3ZjVHaDVJQXB3RWxF?= =?utf-8?B?MC9MMDBod09sd3htQlYzdkQ5M1QyUVBrRk4rbjVBa2VCbjNEdFZxZXRZZUV4?= =?utf-8?B?LzYwSU5hTFFteDI5UFk1WVpXMWpqSkR2cmlQSnhEYmFEdTZJZnpwM1lySHlG?= =?utf-8?B?aHQ1SFBqakw5ZXVVU3V3OVpkQTB5bzV3THpUVGVCSHJralN0WnB2eGVmcnpy?= =?utf-8?B?b1RyRitrdkg5Q1RwdGMxOEs4TWo1NXAwOEJCeDJLeTBncGg5UjlwVHM3UEdj?= =?utf-8?B?OHZLUnNBZ2EwNXB2MWZqUldNWVJKbzVpMkZnZHQvaWhqVjNBUE9qZ25DUUlB?= =?utf-8?B?cDBoaHFibHREOG5rVDhDQ1M0TGx2TXlNUEJ3RTlvbTJWL1pLSnpjUGFRckpG?= =?utf-8?B?VmhVNVRRTE44Tmh3ZzlGKzRxcHJXRkRZNzJ0VXcyQUxPbm40bmFnQVFDZXhC?= =?utf-8?B?YU8zNjhjNnh1dmJ3UGtNaXBjN0Mvb1JBc2IzOWJ3WCtZbnJtai85ck1xNENZ?= =?utf-8?Q?U9T4JFW5x6kNXJxHoqpCu1Yp8qOgp/Ion6axXxB?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3114 Original-Authentication-Results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: c1c512cc-a160-4cdf-c66b-08d91039eda7 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wNNKeYLQcbO04rYJv+dHPOocZY7/0TR6FCTpTZgLtIFfpoT3N1gwd5UaC6Hu/LA4fdsAxG94fMLEfPRq9qwZka7q6hVcvShAtRXEUcuDAa6Zetl7haVWmNEjlUmhcibgUt+l8AOr5aDAlBxdCgbTxrwfsc5vIFRd+0IDVBe+r4Tq/TW+3YN25q/GKBfeJ1pXBKEYkNhhRtTuKemOyBN2GYFrMfBDo/3jLv2WVNlsGcpLHswzSoYMCOqfEoqjkHMsuwgQmgpLI9RVTaFTcFWh9B/X5FveXvDCkd/+gwsk+xwVG4EAPC+CYCnd7KzXZrPH+HDVrjQHpDlciNONJ6c/NYTqPV9GtIVGr7WSpV8P8Elki8n7gVlkvCDIIFdtrVzexxKp7yYQwMn9RXXm+vHQMDo9GmZyzZHlOHX+9XEuMcmqbbC0gQBDjQV45Ytbe1yj0iInljPOO28Imeim3Z99FUJ/5LUG9XF15A7bMN6gbQs9UY/lWzAnjcn1Clb6a1GeP+YbDy1sHfG4dkwqKRT/W/zFFyfll8iSjY4hVkLzFpMJpwwHSnXZxiytClyyLmxBefzLT6D3op0InMS67+bMmdNsQemfHmIALAgMXgXOmS0R6k+3o4JlVhoF46MLuuh1lerBt/ro2KTR6QyZhHeg5MlgSoMPtta1TxMreCN4wOk= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(376002)(346002)(39850400004)(136003)(36840700001)(46966006)(47076005)(54906003)(82310400003)(82740400003)(53546011)(110136005)(30864003)(33656002)(9686003)(36860700001)(316002)(478600001)(7696005)(8936002)(4326008)(450100002)(2906002)(186003)(70586007)(26005)(55016002)(356005)(336012)(5660300002)(6506007)(81166007)(224303003)(70206006)(52536014)(83380400001)(86362001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2021 02:52:25.8397 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4aac8c5e-7c52-4515-0dda-08d91039fb0a 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: VE1EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6859 Subject: [dpdk-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjEgMy80XSBuZXQvbWx4?= =?utf-8?q?5=3A_fix_rebuild_bug_for_Memory_Region_cache?= 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" SGksIFNsYXZhDQoNCldvdWxkIHlvdSBoYXZlIG1vcmUgY29tbWVudHMgYWJvdXQgdGhpcyBwYXRj aD8gDQpGb3IgbXkgc2lnaHQsIG9ubHkgb25lIHdtYiBiZWZvcmUgImRldl9nZW4iIHVwZGF0aW5n IGlzIGVub3VnaCB0byBzeW5jaHJvbml6ZS4NCg0KVGhhbmtzIHZlcnkgbXVjaCBmb3IgeW91ciBh dHRlbnRpb24uDQoNCg0KQmVzdCBSZWdhcmRzDQpGZWlmZWkNCg0KPiAtLS0tLemCruS7tuWOn+S7 ti0tLS0tDQo+IOWPkeS7tuS6ujogRmVpZmVpIFdhbmcNCj4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0 NOaciDIw5pelIDE2OjQyDQo+IOaUtuS7tuS6ujogU2xhdmEgT3ZzaWllbmtvIDx2aWFjaGVzbGF2 b0BudmlkaWEuY29tPjsgTWF0YW4gQXpyYWQNCj4gPG1hdGFuQG52aWRpYS5jb20+OyBTaGFoYWYg U2h1bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+DQo+IOaKhOmAgTogZGV2QGRwZGsub3JnOyBuZCA8 bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZyBXYW5nDQo+IDxSdWlmZW5nLldh bmdAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPg0KPiDkuLvpopg6IOWbnuWkjTogW1BBVENIIHYx IDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5IFJlZ2lvbg0KPiBjYWNo ZQ0KPiANCj4gSGksIFNsYXZhDQo+IA0KPiBJIHRoaW5rIHRoZSBzZWNvbmQgd21iIGNhbiBiZSBy ZW1vdmVkLg0KPiBBcyBJIGtub3csIHdtYiBpcyBqdXN0IGEgYmFycmllciB0byBrZWVwIHRoZSBv cmRlciBiZXR3ZWVuIHdyaXRlIGFuZCB3cml0ZS4NCj4gYW5kIGl0IGNhbm5vdCB0ZWxsIHRoZSBD UFUgd2hlbiBpdCBzaG91bGQgY29tbWl0IHRoZSBjaGFuZ2VzLg0KPiANCj4gSXQgaXMgdXN1YWxs eSB1c2VkIGJlZm9yZSBndWFyZCB2YXJpYWJsZSB0byBrZWVwIHRoZSBvcmRlciB0aGF0IHVwZGF0 aW5nIGd1YXJkDQo+IHZhcmlhYmxlIGFmdGVyIHNvbWUgY2hhbmdlcywgd2hpY2ggeW91IHdhbnQg dG8gcmVsZWFzZSwgaGF2ZSBiZWVuIGRvbmUuDQo+IA0KPiBGb3IgZXhhbXBsZSwgZm9yIHRoZSB3 bWIgIGFmdGVyIGdsb2JhbCBjYWNoZSB1cGRhdGUvYmVmb3JlIGFsdGVyaW5nDQo+IGRldl9nZW4s IGl0IGNhbiBlbnN1cmUgdGhlIG9yZGVyIHRoYXQgdXBkYXRpbmcgZ2xvYmFsIGNhY2hlIGJlZm9y ZSBhbHRlcmluZw0KPiBkZXZfZ2VuOg0KPiAxKUlmIG90aGVyIGFnZW50IGxvYWQgdGhlIGNoYW5n ZWQgImRldl9nZW4iLCBpdCBjYW4ga25vdyB0aGUgZ2xvYmFsIGNhY2hlDQo+IGhhcyBiZWVuIHVw ZGF0ZWQuDQo+IDIpSWYgb3RoZXIgYWdlbnRzIGxvYWQgdGhlIHVuY2hhbmdlZCwgImRldl9nZW4i LCBpdCBtZWFucyB0aGUgZ2xvYmFsIGNhY2hlDQo+IGhhcyBub3QgYmVlbiB1cGRhdGVkLCBhbmQg dGhlIGxvY2FsIGNhY2hlIHdpbGwgbm90IGJlIGZsdXNoZWQuDQo+IA0KPiBBcyBhIHJlc3VsdCwg d2UgdXNlICB3bWIgYW5kIGd1YXJkIHZhcmlhYmxlICJkZXZfZ2VuIiB0byBlbnN1cmUgdGhlIGds b2JhbA0KPiBjYWNoZSB1cGRhdGluZyBpcyAidmlzaWJsZSIuDQo+IFRoZSAidmlzaWJsZSIgbWVh bnMgd2hlbiB1cGRhdGluZyBndWFyZCB2YXJpYWJsZSAiZGV2X2dlbiIgaXMga25vd24gYnkNCj4g b3RoZXIgYWdlbnRzLCB0aGV5IGFsc28gY2FuIGNvbmZpcm0gZ2xvYmFsIGNhY2hlIGhhcyBiZWVu IHVwZGF0ZWQgaW4gIHRoZQ0KPiBtZWFud2hpbGUuIFRodXMsIGp1c3Qgb25lIHdtYiBiZWZvcmUg YWx0ZXJpbmcgIGRldl9nZW4gY2FuIGVuc3VyZSB0aGlzLg0KPiANCj4gQmVzdCBSZWdhcmRzDQo+ IEZlaWZlaQ0KPiANCj4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R5Lu25Lq6OiBT bGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+DQo+ID4g5Y+R6YCB5pe26Ze0 OiAyMDIx5bm0NOaciDIw5pelIDE1OjU0DQo+ID4g5pS25Lu25Lq6OiBGZWlmZWkgV2FuZyA8RmVp ZmVpLldhbmcyQGFybS5jb20+OyBNYXRhbiBBenJhZA0KPiA+IDxtYXRhbkBudmlkaWEuY29tPjsg U2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29tPg0KPiA+IOaKhOmAgTogZGV2QGRwZGsu b3JnOyBuZCA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZyBXYW5nDQo+ID4g PFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT47 IG5kDQo+ID4gPG5kQGFybS5jb20+DQo+ID4g5Li76aKYOiBSRTogW1BBVENIIHYxIDMvNF0gbmV0 L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5IFJlZ2lvbg0KPiA+IGNhY2hlDQo+ID4N Cj4gPiBIaSwgRmVpZmVpDQo+ID4NCj4gPiBJbiBteSBvcGluaW9uLCB0aGVyZSBzaG91bGQgYmUg MiBiYXJyaWVyczoNCj4gPiAgLSBhZnRlciBnbG9iYWwgY2FjaGUgdXBkYXRlL2JlZm9yZSBhbHRl cmluZyBkZXZfZ2VuLCB0byBlbnN1cmUgdGhlDQo+ID4gY29ycmVjdCBvcmRlcg0KPiA+ICAtIGFm dGVyIGFsdGVyaW5nIGRldl9nZW4gdG8gbWFrZSB0aGlzIGNoYW5nZSB2aXNpYmxlIGZvciBvdGhl ciBhZ2VudHMNCj4gPiBhbmQgdG8gdHJpZ2dlciBsb2NhbCBjYWNoZSB1cGRhdGUNCj4gPg0KPiA+ IFdpdGggYmVzdCByZWdhcmRzLA0KPiA+IFNsYXZhDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBGZWlmZWkgV2FuZyA8RmVpZmVpLldhbmcyQGFybS5j b20+DQo+ID4gPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAyMCwgMjAyMSAxMDozMA0KPiA+ID4gVG86 IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFkDQo+ ID4gPiA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNv bT4NCj4gPiA+IENjOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsu b3JnOyBSdWlmZW5nIFdhbmcNCj4gPiA+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IG5kIDxuZEBh cm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBuZA0KPiA+ID4gPG5kQGFybS5jb20+DQo+ID4gPiBT dWJqZWN0OiDlm57lpI06IFtQQVRDSCB2MSAzLzRdIG5ldC9tbHg1OiBmaXggcmVidWlsZCBidWcg Zm9yIE1lbW9yeQ0KPiA+ID4gUmVnaW9uIGNhY2hlDQo+ID4gPg0KPiA+ID4gSGksIFNsYXZhDQo+ ID4gPg0KPiA+ID4gQW5vdGhlciBxdWVzdGlvbiBzdWRkZW5seSBvY2N1cnJlZCB0byBtZSwgaW4g b3JkZXIgdG8ga2VlcCB0aGUgb3JkZXINCj4gPiA+IHRoYXQgcmVidWlsZGluZyBnbG9iYWwgY2Fj aGUgYmVmb3JlIHVwZGF0aW5nIOKAnWRldl9nZW7igJwsIHRoZSB3bWINCj4gPiA+IHNob3VsZCBi ZSBiZWZvcmUgdXBkYXRpbmcgImRldl9nZW4iIHJhdGhlciB0aGFuIGFmdGVyIGl0Lg0KPiA+ID4g T3RoZXJ3aXNlLCBpbiB0aGUgb3V0LW9mLW9yZGVyIHBsYXRmb3JtcywgY3VycmVudCBvcmRlciBj YW5ub3QgYmUga2VwdC4NCj4gPiA+DQo+ID4gPiBUaHVzLCB3ZSBzaG91bGQgY2hhbmdlIHRoZSBj b2RlIGFzOg0KPiA+ID4gYSkgcmVidWlsZCBnbG9iYWwgY2FjaGU7DQo+ID4gPiBiKSBydGVfc21w X3dtYigpOw0KPiA+ID4gYykgdXBkYXRpbmcgZGV2X2dlbg0KPiA+ID4NCj4gPiA+IEJlc3QgUmVn YXJkcw0KPiA+ID4gRmVpZmVpDQo+ID4gPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiA+ ID4g5Y+R5Lu25Lq6OiBGZWlmZWkgV2FuZw0KPiA+ID4gPiDlj5HpgIHml7bpl7Q6IDIwMjHlubQ0 5pyIMjDml6UgMTM6NTQNCj4gPiA+ID4g5pS25Lu25Lq6OiBTbGF2YSBPdnNpaWVua28gPHZpYWNo ZXNsYXZvQG52aWRpYS5jb20+OyBNYXRhbiBBenJhZA0KPiA+ID4gPiA8bWF0YW5AbnZpZGlhLmNv bT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNvbT4NCj4gPiA+ID4g5oqE6YCBOiBk ZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsub3JnOyBSdWlmZW5nDQo+ ID4gV2FuZw0KPiA+ID4gPiA8UnVpZmVuZy5XYW5nQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT47 IG5kIDxuZEBhcm0uY29tPg0KPiA+ID4gPiDkuLvpopg6IOWbnuWkjTogW1BBVENIIHYxIDMvNF0g bmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5DQo+IFJlZ2lvbg0KPiA+ID4gPiBj YWNoZQ0KPiA+ID4gPg0KPiA+ID4gPiBIaSwgU2xhdmENCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtz IHZlcnkgbXVjaCBmb3IgeW91ciBleHBsYW5hdGlvbi4NCj4gPiA+ID4NCj4gPiA+ID4gSSBjYW4g dW5kZXJzdGFuZCB0aGUgYXBwIGNhbiB3YWl0IGFsbCBtYnVmcyBhcmUgcmV0dXJuZWQgdG8gdGhl DQo+ID4gPiA+IG1lbW9yeSBwb29sLCBhbmQgdGhlbiBpdCBjYW4gZnJlZSB0aGlzIG1idWZzLCBJ IGFncmVlIHdpdGggdGhpcy4NCj4gPiA+ID4NCj4gPiA+ID4gQXMgYSByZXN1bHQsIEkgd2lsbCBy ZW1vdmUgdGhlIGJ1ZyBmaXggcGF0Y2ggZnJvbSB0aGlzIHNlcmllcyBhbmQNCj4gPiA+ID4ganVz dCByZXBsYWNlIHRoZSBzbXAgYmFycmllciB3aXRoIEMxMSB0aHJlYWQgZmVuY2UuIFRoYW5rcyB2 ZXJ5DQo+ID4gPiA+IG11Y2ggZm9yIHlvdXIgcGF0aWVudCBleHBsYW5hdGlvbiBhZ2Fpbi4NCj4g PiA+ID4NCj4gPiA+ID4gQmVzdCBSZWdhcmRzDQo+ID4gPiA+IEZlaWZlaQ0KPiA+ID4gPg0KPiA+ ID4gPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiA+ID4gPiDlj5Hku7bkuro6IFNsYXZh IE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT4NCj4gPiA+ID4gPiDlj5HpgIHml7bp l7Q6IDIwMjHlubQ05pyIMjDml6UgMjo1MQ0KPiA+ID4gPiA+IOaUtuS7tuS6ujogRmVpZmVpIFdh bmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPjsgTWF0YW4gQXpyYWQNCj4gPiA+ID4gPiA8bWF0YW5A bnZpZGlhLmNvbT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNvbT4NCj4gPiA+ID4g PiDmioTpgIE6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBzdGFibGVAZHBkay5vcmc7 IFJ1aWZlbmcNCj4gPiA+IFdhbmcNCj4gPiA+ID4gPiA8UnVpZmVuZy5XYW5nQGFybS5jb20+OyBu ZCA8bmRAYXJtLmNvbT4NCj4gPiA+ID4gPiDkuLvpopg6IFJFOiBbUEFUQ0ggdjEgMy80XSBuZXQv bWx4NTogZml4IHJlYnVpbGQgYnVnIGZvciBNZW1vcnkNCj4gPiA+ID4gPiBSZWdpb24gY2FjaGUN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IEhpLCBGZWlmZWkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFBs ZWFzZSwgc2VlIGJlbG93DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAuLi4uDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gSGksIEZlaWZlaQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBTb3Jy eSwgSSBkbyBub3QgZm9sbG93IHdoYXQgdGhpcyBwYXRjaCBmaXhlcy4gRG8gd2UgaGF2ZQ0KPiA+ ID4gPiA+ID4gPiBzb21lIGlzc3VlL2J1ZyB3aXRoIE1SIGNhY2hlIGluIHByYWN0aWNlPw0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGJ1ZyB3aGljaCBpcyBi YXNlZCBvbiBsb2dpY2FsIGRlZHVjdGlvbiwNCj4gPiA+ID4gPiA+IGFuZCBpdCBkb2Vzbid0IGFj dHVhbGx5IGhhcHBlbi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ IEVhY2ggVHggcXVldWUgaGFzIGl0cyBvd24gZGVkaWNhdGVkICJsb2NhbCIgY2FjaGUgZm9yIE1S cyB0bw0KPiA+ID4gPiA+ID4gPiBjb252ZXJ0IGJ1ZmZlciBhZGRyZXNzIGluIG1idWZzIGJlaW5n IHRyYW5zbWl0dGVkIHRvIExLZXlzDQo+ID4gPiA+ID4gPiA+IChIVy1yZWxhdGVkIGVudGl0eQ0K PiA+ID4gPiA+ID4gPiBoYW5kbGUpIGFuZCB0aGUgImdsb2JhbCIgY2FjaGUgZm9yIGFsbCBNUiBy ZWdpc3RlcmVkIG9uIHRoZSBkZXZpY2UuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEFG QUlLLCBob3cgY29udmVyc2lvbiBoYXBwZW5zIGluIGRhdGFwYXRoOg0KPiA+ID4gPiA+ID4gPiAt IGNoZWNrIHRoZSBsb2NhbCBxdWV1ZSBjYWNoZSBmbHVzaCByZXF1ZXN0DQo+ID4gPiA+ID4gPiA+ IC0gbG9va3VwIGluIGxvY2FsIGNhY2hlDQo+ID4gPiA+ID4gPiA+IC0gaWYgbm90IGZvdW5kOg0K PiA+ID4gPiA+ID4gPiAtIGFjcXVpcmUgbG9jayBmb3IgZ2xvYmFsIGNhY2hlIHJlYWQgYWNjZXNz DQo+ID4gPiA+ID4gPiA+IC0gbG9va3VwIGluIGdsb2JhbCBjYWNoZQ0KPiA+ID4gPiA+ID4gPiAt IHJlbGVhc2UgbG9jayBmb3IgZ2xvYmFsIGNhY2hlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+IEhvdyBjYWNoZSB1cGRhdGUgb24gbWVtb3J5IGZyZWVpbmcvdW5yZWdpc3RlcmluZyBoYXBw ZW5zOg0KPiA+ID4gPiA+ID4gPiAtIGFjcXVpcmUgbG9jayBmb3IgZ2xvYmFsIGNhY2hlIHdyaXRl IGFjY2Vzcw0KPiA+ID4gPiA+ID4gPiAtIFthXSByZW1vdmUgcmVsZXZhbnQgTVJzIGZyb20gdGhl IGdsb2JhbCBjYWNoZQ0KPiA+ID4gPiA+ID4gPiAtIFtiXSBzZXQgbG9jYWwgY2FjaGVzIGZsdXNo IHJlcXVlc3QNCj4gPiA+ID4gPiA+ID4gLSBmcmVlIGdsb2JhbCBjYWNoZSBsb2NrDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+IElmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIHlvdXIgcGF0 Y2ggc3dhcHMgW2FdIGFuZCBbYl0sIGFuZA0KPiA+ID4gPiA+ID4gPiBsb2NhbCBjYWNoZXMgZmx1 c2ggaXMgcmVxdWVzdGVkIGVhcmxpZXIuIFdoYXQgcHJvYmxlbSBkb2VzIGl0IHNvbHZlPw0KPiA+ ID4gPiA+ID4gPiBJdCBpcyBub3Qgc3VwcG9zZWQgdGhlcmUgYXJlIGluIGRhdGFwYXRoIHNvbWUg bWJ1ZnMNCj4gPiA+ID4gPiA+ID4gcmVmZXJlbmNpbmcgdG8gdGhlIG1lbW9yeSBiZWluZyBmcmVl ZC4gQXBwbGljYXRpb24gbXVzdA0KPiA+ID4gPiA+ID4gPiBlbnN1cmUgdGhpcyBhbmQgbXVzdCBu b3QgYWxsb2NhdGUgbmV3IG1idWZzIGZyb20gdGhpcyBtZW1vcnkNCj4gPiA+ID4gPiA+ID4gcmVn aW9ucw0KPiA+IGJlaW5nIGZyZWVkLg0KPiA+ID4gPiA+ID4gPiBIZW5jZSwgdGhlIGxvb2t1cHMg Zm9yIHRoZXNlIE1ScyBpbiBjYWNoZXMgc2hvdWxkIG5vdCBvY2N1ci4NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBGb3IgeW91ciBmaXJzdCBwb2ludCB0aGF0LCBhcHBsaWNhdGlvbiBjYW4gdGFr ZSBjaGFyZ2Ugb2YNCj4gPiA+ID4gPiA+IHByZXZlbnRpbmcgTVIgZnJlZWQgbWVtb3J5IGJlaW5n IGFsbG9jYXRlZCB0byBkYXRhIHBhdGguDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRG9lcyBp dCBtZWFucyB0aGF0IElmIHRoZXJlIGlzIGFuIGVtZXJnZW5jeSBvZiBNUiBmcmFnbWVudCwNCj4g PiA+ID4gPiA+IHN1Y2ggYXMgaG90cGx1ZywgdGhlIGFwcGxpY2F0aW9uIG11c3QgaW5mb3JtIHRo ZWRhdGEgcGF0aCBpbg0KPiA+ID4gPiA+ID4gYWR2YW5jZSwgYW5kIHRoaXMgbWVtb3J5IHdpbGwg bm90IGJlIGFsbG9jYXRlZCwgYW5kIHRoZW4gdGhlDQo+ID4gPiA+ID4gPiBjb250cm9sIHBhdGgg d2lsbCBmcmVlIHRoaXMgbWVtb3J5PyBJZiBhcHBsaWNhdGlvbiAgY2FuIGRvDQo+ID4gPiA+ID4g PiBsaWtlIHRoaXMsIEkgYWdyZWUgdGhhdCB0aGlzIGJ1Zw0KPiA+ID4gPiBjYW5ub3QgaGFwcGVu Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQWN0dWFsbHksICB0aGlzIGlzIHRoZSBvbmx5IGNvcnJl Y3Qgd2F5IGZvciBhcHBsaWNhdGlvbiB0byBvcGVyYXRlLg0KPiA+ID4gPiA+IExldCdzIHN1cHBv c2Ugd2UgaGF2ZSBzb21lIG1lbW9yeSBhcmVhIHRoYXQgYXBwbGljYXRpb24gd2FudHMgdG8NCj4g PiBmcmVlLg0KPiA+ID4gPiA+IEFMTCByZWZlcmVuY2VzIHRvIHRoaXMgYXJlYSBtdXN0IGJlIHJl bW92ZWQuIElmIHdlIGhhdmUgc29tZQ0KPiA+ID4gPiA+IG1idWZzIGFsbG9jYXRlZCBmcm9tIHRo aXMgYXJlYSwgaXQgbWVhbnMgdGhhdCB3ZSBoYXZlIG1lbW9yeQ0KPiA+ID4gPiA+IHBvb2wgY3Jl YXRlZA0KPiA+ID4gdGhlcmUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBXaGF0IGFwcGxpY2F0aW9u IHNob3VsZCBkbzoNCj4gPiA+ID4gPiAtIG5vdGlmeSBhbGwgaXRzIGNvbXBvbmVudHMvYWdlbnRz IHRoZSBtZW1vcnkgYXJlYSBpcyBnb2luZyB0bw0KPiA+ID4gPiA+IGJlIGZyZWVkDQo+ID4gPiA+ ID4gLSBhbGwgY29tcG9uZW50cy9hZ2VudHMgZnJlZSB0aGUgbWJ1ZnMgdGhleSBtaWdodCBvd24N Cj4gPiA+ID4gPiAtIFBNRCBtaWdodCBub3Qgc3VwcG9ydCBmcmVlaW5nIGZvciBzb21lIG1idWZz IChmb3IgZXhhbXBsZQ0KPiA+ID4gPiA+IGJlaW5nIHNlbnQgYW5kIGF3YWl0aW5nIGZvciBjb21w bGV0aW9uKSwgc28gYXBwIHNob3VsZCBqdXN0IHdhaXQNCj4gPiA+ID4gPiAtIHdhaXQgdGlsbCBh bGwgbWJ1ZnMgYXJlIHJldHVybmVkIHRvIHRoZSBtZW1vcnkgcG9vbCAoYnkNCj4gPiA+ID4gPiBt b25pdG9yaW5nIGF2YWlsYWJsZSBvYmogPT0gcG9vbCBzaXplKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gT3RoZXJ3aXNlIC0gaXQgaXMgZGFuZ2Vyb3VzIHRvIGZyZWUgdGhlIG1lbW9yeS4gVGhlcmUg YXJlIGp1c3QNCj4gPiA+ID4gPiBzb21lIG1idWZzIHN0aWxsIGFsbG9jYXRlZCwgaXQgaXMgcmVn YXJkbGVzcyB0byBidWYgYWRkcmVzcyB0bw0KPiA+ID4gPiA+IE1SIHRyYW5zbGF0aW9uLiBXZSBq dXN0IGNhbid0IGZyZWUgdGhlIG1lbW9yeSAtIHRoZSBtYXBwaW5nIHdpbGwNCj4gPiA+ID4gPiBi ZSBkZXN0cm95ZWQgYW5kIG1pZ2h0IGNhdXNlIHRoZSBzZWdtZW50YXRpb24gZmF1bHQgYnkgU1cg b3INCj4gPiA+ID4gPiBzb21lIEhXIGlzc3VlcyBvbiBETUEgYWNjZXNzIHRvIHVubWFwcGVkIG1l bW9yeS4gIEl0IGlzIHZlcnkNCj4gPiA+ID4gPiBnZW5lcmljIHNhZmV0eSBhcHByb2FjaCAtIGRv IG5vdCBmcmVlIHRoZSBtZW1vcnkgdGhhdCBpcyBzdGlsbCBpbiB1c2UuDQo+ID4gPiA+ID4gSGVu Y2UsIGF0IHRoZSBtb21lbnQgb2YgZnJlZWluZyBhbmQgdW5yZWdpc3RlcmluZyB0aGUgTVIsIHRo ZXJlDQo+ID4gPiA+ID4gTVVTVCBCRSBOTyBhbnkNCj4gPiA+ID4gbWJ1ZnMgaW4gZmxpZ2h0IHJl ZmVyZW5jaW5nIHRvIHRoZSBhZGRyZXNzZXMgYmVpbmcgZnJlZWQuDQo+ID4gPiA+ID4gTm8gdHJh bnNsYXRpb24gdG8gTVIgYmVpbmcgaW52YWxpZGF0ZWQgY2FuIGhhcHBlbi4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gRm9yIG90aGVyIHNpZGUsIHRoZSBjYWNoZSBmbHVz aCBoYXMgbmVnYXRpdmUgZWZmZWN0IC0gdGhlDQo+ID4gPiA+ID4gPiA+IGxvY2FsIGNhY2hlIGlz IGdldHRpbmcgZW1wdHkgYW5kIGNhbid0IHByb3ZpZGUgdHJhbnNsYXRpb24NCj4gPiA+ID4gPiA+ ID4gZm9yIG90aGVyIHZhbGlkIChub3QgYmVpbmcgcmVtb3ZlZCkgTVJzLCBhbmQgdGhlIHRyYW5z bGF0aW9uDQo+ID4gPiA+ID4gPiA+IGhhcyB0byBsb29rIHVwIGluIHRoZSBnbG9iYWwgY2FjaGUs IHRoYXQgaXMgbG9ja2VkIG5vdyBmb3INCj4gPiA+ID4gPiA+ID4gcmVidWlsZGluZywgdGhpcyBj YXVzZXMgdGhlIGRlbGF5cyBpbiBkYXRhcGF0Y2gNCj4gPiA+ID4gPiA+IG9uIGFjcXVpcmluZyBn bG9iYWwgY2FjaGUgbG9jay4NCj4gPiA+ID4gPiA+ID4gU28sIEkgc2VlIHNvbWUgcG90ZW50aWFs IHBlcmZvcm1hbmNlIGltcGFjdC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJZiBhYm92ZSBh c3N1bXB0aW9uIGlzIHRydWUsIHdlIGNhbiBnbyB0byB5b3VyIHNlY29uZCBwb2ludC4gSQ0KPiA+ ID4gPiA+ID4gdGhpbmsgdGhpcyBpcyBhIHByb2JsZW0gb2YgdGhlIHRyYWRlb2ZmIGJldHdlZW4g Y2FjaGUNCj4gPiA+ID4gPiA+IGNvaGVyZW5jZSBhbmQNCj4gPiA+ID4gPiBwZXJmb3JtYW5jZS4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJIGNhbiB1bmRlcnN0YW5kIHlvdXIgbWVhbmluZyB0 aGF0IHRob3VnaCBnbG9iYWwgY2FjaGUgaGFzDQo+ID4gPiA+ID4gPiBiZWVuIGNoYW5nZWQsIHdl IHNob3VsZCBrZWVwIHRoZSB2YWxpZCBNUiBpbiBsb2NhbCBjYWNoZSBhcw0KPiA+ID4gPiA+ID4g bG9uZyBhcyBwb3NzaWJsZSB0byBlbnN1cmUgdGhlIGZhc3Qgc2VhcmNoaW5nIHNwZWVkLg0KPiA+ ID4gPiA+ID4gSW4gdGhlIG1lYW53aGlsZSwgdGhlIGxvY2FsIGNhY2hlIGNhbiBiZSByZWJ1aWx0 IGxhdGVyIHRvDQo+ID4gPiA+ID4gPiByZWR1Y2UgaXRzIHdhaXRpbmcgdGltZSBmb3IgYWNxdWly aW5nIHRoZSBnbG9iYWwgY2FjaGUgbG9jay4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBIb3dl dmVyLCAgdGhpcyBtZWNoYW5pc20ganVzdCBlbnN1cmVzIHRoZSBwZXJmb3JtYW5jZQ0KPiA+ID4g PiA+ID4gdW5jaGFuZ2VkIGZvciB0aGUgZmlyc3QgZmV3IG1idWZzLg0KPiA+ID4gPiA+ID4gRHVy aW5nIHRoZSBuZXh0IG1idWZzIGxrZXkgc2VhcmNoaW5nIGFmdGVyICdkZXZfZ2VuJyB1cGRhdGVk LA0KPiA+ID4gPiA+ID4gaXQgaXMgc3RpbGwgbmVjZXNzYXJ5IHRvIHVwZGF0ZSB0aGUgbG9jYWwg Y2FjaGUuIEFuZCB0aGUNCj4gPiA+ID4gPiA+IHBlcmZvcm1hbmNlIGNhbiBmaXJzdGx5IHJlZHVj ZSBhbmQgdGhlbiByZXR1cm5zLiBUaHVzLCBubw0KPiA+ID4gPiA+ID4gbWF0dGVyIHdoZXRoZXIg dGhlcmUgaXMgdGhpcyBwYXRjaCBvciBub3QsICB0aGUgcGVyZm9ybWFuY2UNCj4gPiA+ID4gPiA+ IHdpbGwgaml0dGVyIGluIGEgY2VydGFpbiBwZXJpb2Qgb2YNCj4gPiA+IHRpbWUuDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBMb2NhbCBjYWNoZSBzaG91bGQgYmUgdXBkYXRlZCB0byByZW1vdmUgTVJz IG5vIGxvbmdlciB2YWxpZC4gQnV0DQo+ID4gPiA+ID4gd2UganVzdCBmbHVzaCB0aGUgZW50aXJl IGNhY2hlLg0KPiA+ID4gPiA+IExldCdzIHN1cHBvc2Ugd2UgaGF2ZSB2YWxpZCBNUjAsIE1SMSwg YW5kIG5vdCB2YWxpZCBNUlggaW4gbG9jYWwNCj4gY2FjaGUuDQo+ID4gPiA+ID4gQW5kIHRoZXJl IGFyZSB0cmFmZmljIGluIHRoZSBkYXRhcGF0aCBmb3IgTVIwIGFuZCBNUjEsIGFuZCBubw0KPiA+ ID4gPiA+IHRyYWZmaWMgZm9yIE1SWCBhbnltb3JlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMSkg SWYgd2UgZG8gYXMgeW91IHByb3Bvc2U6DQo+ID4gPiA+ID4gYSkgdGFrZSBhIGxvY2sNCj4gPiA+ ID4gPiBiKSByZXF1ZXN0IGZsdXNoIGxvY2FsIGNhY2hlIGZpcnN0IC0gYWxsIE1SMCwgTVIxLCBN Ulggd2lsbCBiZQ0KPiA+ID4gPiA+IHJlbW92ZWQgb24gdHJhbnNsYXRpb24gaW4gZGF0YXBhdGgN Cj4gPiA+ID4gPiBjKSB1cGRhdGUgZ2xvYmFsIGNhY2hlLA0KPiA+ID4gPiA+IGQpIGZyZWUgbG9j aw0KPiA+ID4gPiA+IEFsbCB0aGUgdHJhZmZpYyBmb3IgdmFsaWQgTVIwLCBNUjEgQUxXQVlTIHdp bGwgYmUgYmxvY2tlZCBvbg0KPiA+ID4gPiA+IGxvY2sgdGFrZW4gZm9yIGNhY2hlIHVwZGF0ZSBz aW5jZSBwb2ludCBiKSB0aWxsIHBvaW50IGQpLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMikgSWYg d2UgZG8gYXMgaXQgaXMgaW1wbGVtZW50ZWQgbm93Og0KPiA+ID4gPiA+IGEpIHRha2UgYSBsb2Nr DQo+ID4gPiA+ID4gYikgdXBkYXRlIGdsb2JhbCBjYWNoZQ0KPiA+ID4gPiA+IGMpIHJlcXVlc3Qg Zmx1c2ggbG9jYWwgY2FjaGUNCj4gPiA+ID4gPiBkKSBmcmVlIGxvY2sNCj4gPiA+ID4gPiBUaGUg dHJhZmZpYyBNSUdIVCBiZSBsb2NrZWQgT05MWSBmb3IgTVJzIG5vbi1leGlzdGluZyBpbiBsb2Nh bA0KPiA+ID4gPiA+IGNhY2hlIChub3QgaGFwcGVucyBmb3IgTVIwIGFuZCBNUjEsIG11c3Qgbm90 IGhhcHBlbiBmb3IgTVJYKSwNCj4gPiA+ID4gPiBhbmQgcHJvYmFiaWxpdHkgc2hvdWxkIGJlIG1p bm9yLiBBbmQgbG9jayBtaWdodCBoYXBwZW4gc2luY2UgYykNCj4gPiA+ID4gPiB0aWxsDQo+ID4g PiA+ID4gZCkNCj4gPiA+ID4gPiAtIHF1aXRlIHNob3J0IHBlcmlvZCBvZiB0aW1lDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBTdW1tYXJ5LCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIDEpIGFuZCAyKQ0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gTG9jayBwcm9iYWJpbGl0eToNCj4gPiA+ID4gPiAtIDEpIGxv Y2sgQUxXQVlTIGhhcHBlbiBmb3IgQU5ZIE1SIHRyYW5zbGF0aW9uIGFmdGVyIGIpLA0KPiA+ID4g PiA+ICAgMikgbG9jayBNSUdIVCBoYXBwZW4sIGZvciBjYWNoZSBtaXNzIE9OTFksIGFmdGVyIGMp DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBMb2NrIGR1cmF0aW9uOg0KPiA+ID4gPiA+IC0gMSkgbG9j ayBzaW5jZSBiKSB0aWxsIGQpLA0KPiA+ID4gPiA+ICAgMikgbG9jayBzaW5jZSBjKSB0aWxsIGQp LCB0aGF0IHNlZW1zIHRvIGJlICBtdWNoIHNob3J0ZXIuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiBGaW5hbGx5LCBpbiBjb25jbHVzaW9uLCBJIHRlbmQgdG8gdGhpbmsgdGhh dCB0aGUgYm90dG9tIGxheWVyDQo+ID4gPiA+ID4gPiBjYW4gZG8gbW9yZSB0aGluZ3MgdG8gZW5z dXJlIHRoZSBjb3JyZWN0IGV4ZWN1dGlvbiBvZiB0aGUNCj4gPiA+ID4gPiA+IHByb2dyYW0sIHdo aWNoIG1heSBoYXZlIGEgbmVnYXRpdmUgaW1wYWN0IG9uIHRoZSBwZXJmb3JtYW5jZQ0KPiA+ID4g PiA+ID4gaW4gYSBzaG9ydCB0aW1lLCBidXQgaW4gdGhlIGxvbmcgcnVuLCB0aGUgcGVyZm9ybWFu Y2Ugd2lsbA0KPiA+ID4gPiA+ID4gZXZlbnR1YWxseQ0KPiA+IGNvbWUgYmFjay4NCj4gPiA+ID4g PiA+IEZ1cnRoZXJtb3JlLCBtYXliZSB3ZSBzaG91bGQgcGF5IGF0dGVudGlvbiB0byB0aGUgcGVy Zm9ybWFuY2UNCj4gPiA+ID4gPiA+IGluIHRoZSBzdGFibGUgcGVyaW9kLCBhbmQgdHJ5IG91ciBi ZXN0IHRvIGVuc3VyZSB0aGUNCj4gPiA+ID4gPiA+IGNvcnJlY3RuZXNzIG9mIHRoZSBwcm9ncmFt IGluIGNhc2Ugb2YNCj4gPiA+ID4gPiBlbWVyZ2VuY2llcy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IElmIHdlIGhhdmUgc29tZSBtYnVmcyBzdGlsbCBhbGxvY2F0ZWQgaW4gbWVtb3J5IGJlaW5nIGZy ZWVkIC0NCj4gPiA+ID4gPiB0aGVyZSBpcyBub3RoaW5nIHRvIHNheSBhYm91dCBjb3JyZWN0bmVz cywgaXQgaXMgdG90YWxseQ0KPiA+ID4gPiA+IGluY29ycmVjdC4gSW4gbXkgb3Bpbmlvbiwgd2Ug c2hvdWxkIG5vdCB0aGluayBob3cgdG8gbWl0aWdhdGUNCj4gPiA+ID4gPiB0aGlzIGluY29ycmVj dCBiZWhhdmlvciwgd2Ugc2hvdWxkIG5vdCBlbmNvdXJhZ2UgYXBwbGljYXRpb24NCj4gPiA+ID4g PiBkZXZlbG9wZXJzIHRvIGZvbGxvdyB0aGUgd3JvbmcNCj4gPiA+ID4gYXBwcm9hY2hlcy4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IFdpdGggYmVzdCByZWdhcmRzLA0KPiA+ID4gPiA+IFNsYXZhDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBCZXN0IFJlZ2FyZHMNCj4gPiA+ID4g PiA+IEZlaWZlaQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gV2l0aCBiZXN0IHJlZ2FyZHMs DQo+ID4gPiA+ID4gPiA+IFNsYXZhDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiBGcm9tOiBGZWlmZWkgV2Fu ZyA8ZmVpZmVpLndhbmcyQGFybS5jb20+DQo+ID4gPiA+ID4gPiA+ID4gU2VudDogVGh1cnNkYXks IE1hcmNoIDE4LCAyMDIxIDk6MTkNCj4gPiA+ID4gPiA+ID4gPiBUbzogTWF0YW4gQXpyYWQgPG1h dGFuQG52aWRpYS5jb20+OyBTaGFoYWYgU2h1bGVyDQo+ID4gPiA+ID4gPiA+ID4gPHNoYWhhZnNA bnZpZGlhLmNvbT47IFNsYXZhIE92c2lpZW5rbw0KPiA+ID4gPiA+ID4gPiA+IDx2aWFjaGVzbGF2 b0BudmlkaWEuY29tPjsgWW9uZ3Nlb2sgS29oDQo+ID4gPiA+ID4gPiA+ID4gPHlza29oQG1lbGxh bm94LmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBDYzogZGV2QGRwZGsub3JnOyBuZEBhcm0uY29tOyBG ZWlmZWkgV2FuZw0KPiA+ID4gPiA+IDxmZWlmZWkud2FuZzJAYXJtLmNvbT47DQo+ID4gPiA+ID4g PiA+ID4gc3RhYmxlQGRwZGsub3JnOyBSdWlmZW5nIFdhbmcgPHJ1aWZlbmcud2FuZ0Bhcm0uY29t Pg0KPiA+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFtQQVRDSCB2MSAzLzRdIG5ldC9tbHg1OiBmaXgg cmVidWlsZCBidWcgZm9yDQo+ID4gPiA+ID4gPiA+ID4gTWVtb3J5IFJlZ2lvbiBjYWNoZQ0KPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gJ2Rldl9nZW4nIGlzIGEgdmFyaWFibGUgdG8g aW5mb3JtIG90aGVyIGNvcmVzIHRvIGZsdXNoDQo+ID4gPiA+ID4gPiA+ID4gdGhlaXIgbG9jYWwg Y2FjaGUgd2hlbiBnbG9iYWwgY2FjaGUgaXMgcmVidWlsdC4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+IEhvd2V2ZXIsIGlmICdkZXZfZ2VuJyBpcyB1cGRhdGVkIGFmdGVyIGdsb2Jh bCBjYWNoZSBpcw0KPiA+ID4gPiA+ID4gPiA+IHJlYnVpbHQsIG90aGVyIGNvcmVzIG1heSBsb2Fk IGEgd3JvbmcgbWVtb3J5IHJlZ2lvbiBsa2V5DQo+ID4gPiA+ID4gPiA+ID4gdmFsdWUgZnJvbSBv bGQgbG9jYWwNCj4gPiA+ID4gPiA+IGNhY2hlLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gVGltZXNsb3QgICAgICAgIG1haW4gY29yZSAgICAgICAgICAgICAgIHdvcmtlciBjb3Jl DQo+ID4gPiA+ID4gPiA+ID4gICAxICAgICAgICAgcmVidWlsZCBnbG9iYWwgY2FjaGUNCj4gPiA+ ID4gPiA+ID4gPiAgIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZCB1bmNo YW5nZWQgZGV2X2dlbg0KPiA+ID4gPiA+ID4gPiA+ICAgMyAgICAgICAgICAgIHVwZGF0ZSBkZXZf Z2VuDQo+ID4gPiA+ID4gPiA+ID4gICA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxvb2sgdXAgb2xkIGxvY2FsIGNhY2hlDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiBGcm9tIHRoZSBleGFtcGxlIGFib3ZlLCB3ZSBjYW4gc2VlIHRoYXQgdGhvdWdoIGdsb2JhbA0K PiA+ID4gPiA+ID4gPiA+IGNhY2hlIGlzIHJlYnVpbHQsIGR1ZSB0byB0aGF0IGRldl9nZW4gaXMg bm90IHVwZGF0ZWQsIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IHdvcmtlciBjb3JlIG1heSBsb29rIHVw IG9sZCBjYWNoZSB0YWJsZSBhbmQgcmVjZWl2ZSBhDQo+ID4gPiA+ID4gPiA+ID4gd3JvbmcgbWVt b3J5IHJlZ2lvbg0KPiA+ID4gbGtleSB2YWx1ZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IFRvIGZpeCB0aGlzLCB1cGRhdGluZyAnZGV2X2dlbicgc2hvdWxkIGJlIG1vdmVkIGJl Zm9yZQ0KPiA+ID4gPiA+ID4gPiA+IHJlYnVpbGRpbmcgZ2xvYmFsIGNhY2hlIHRvIGluZm9ybSB3 b3JrZXIgY29yZXMgdG8gZmx1c2gNCj4gPiA+ID4gPiA+ID4gPiB0aGVpciBsb2NhbCBjYWNoZSB3 aGVuIGdsb2JhbCBjYWNoZSBzdGFydCByZWJ1aWxkaW5nLiBBbmQNCj4gPiA+ID4gPiA+ID4gPiB3 bWIgY2FuIGVuc3VyZSB0aGUgc2VxdWVuY2Ugb2YgdGhpcw0KPiA+ID4gPiA+ID4gPiBwcm9jZXNz Lg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gRml4ZXM6IDk3NGYxZTdlZjE0NiAo Im5ldC9tbHg1OiBhZGQgbmV3IG1lbW9yeSByZWdpb24NCj4gPiA+ID4gPiA+ID4gPiBzdXBwb3J0 IikNCj4gPiA+ID4gPiA+ID4gPiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gPiBTdWdnZXN0ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8cnVpZmVuZy53YW5n QGFybS5jb20+DQo+ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRmVpZmVpIFdhbmcgPGZl aWZlaS53YW5nMkBhcm0uY29tPg0KPiA+ID4gPiA+ID4gPiA+IFJldmlld2VkLWJ5OiBSdWlmZW5n IFdhbmcgPHJ1aWZlbmcud2FuZ0Bhcm0uY29tPg0KPiA+ID4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4g PiA+ID4gPiA+ICBkcml2ZXJzL25ldC9tbHg1L21seDVfbXIuYyB8IDM3DQo+ID4gPiA+ID4gPiA+ ID4gKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiA+ID4gPiA+ ICAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pDQo+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4 NS9tbHg1X21yLmMNCj4gPiA+ID4gPiA+ID4gPiBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9tci5j IGluZGV4DQo+ID4gPiA+ID4gPiA+ID4gZGE0ZTkxZmMyLi43Y2UxZDNlNjQgMTAwNjQ0DQo+ID4g PiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X21yLmMNCj4gPiA+ID4gPiA+ ID4gPiArKysgYi9kcml2ZXJzL25ldC9tbHg1L21seDVfbXIuYw0KPiA+ID4gPiA+ID4gPiA+IEBA IC0xMDMsMjAgKzEwMywxOCBAQCBtbHg1X21yX21lbV9ldmVudF9mcmVlX2NiKHN0cnVjdA0KPiA+ ID4gPiA+ID4gPiA+IG1seDVfZGV2X2N0eF9zaGFyZWQgKnNoLA0KPiA+ID4gPiA+ID4gPiA+ICAJ CXJlYnVpbGQgPSAxOw0KPiA+ID4gPiA+ID4gPiA+ICAJfQ0KPiA+ID4gPiA+ID4gPiA+ICAJaWYg KHJlYnVpbGQpIHsNCj4gPiA+ID4gPiA+ID4gPiAtCQltbHg1X21yX3JlYnVpbGRfY2FjaGUoJnNo LT5zaGFyZV9jYWNoZSk7DQo+ID4gPiA+ID4gPiA+ID4gKwkJKytzaC0+c2hhcmVfY2FjaGUuZGV2 X2dlbjsNCj4gPiA+ID4gPiA+ID4gPiArCQlERUJVRygiYnJvYWRjYXN0aW5nIGxvY2FsIGNhY2hl IGZsdXNoLCBnZW49JWQiLA0KPiA+ID4gPiA+ID4gPiA+ICsJCQlzaC0+c2hhcmVfY2FjaGUuZGV2 X2dlbik7DQo+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ICAJCS8qDQo+ID4gPiA+ ID4gPiA+ID4gIAkJICogRmx1c2ggbG9jYWwgY2FjaGVzIGJ5IHByb3BhZ2F0aW5nIGludmFsaWRh dGlvbg0KPiA+ID4gPiBhY3Jvc3MgY29yZXMuDQo+ID4gPiA+ID4gPiA+ID4gLQkJICogcnRlX3Nt cF93bWIoKSBpcyBlbm91Z2ggdG8gc3luY2hyb25pemUgdGhpcw0KPiA+ID4gPiBldmVudC4gSWYN Cj4gPiA+ID4gPiA+ID4gPiBvbmUgb2YNCj4gPiA+ID4gPiA+ID4gPiAtCQkgKiBmcmVlZCBtZW1z ZWdzIGlzIHNlZW4gYnkgb3RoZXIgY29yZSwgdGhhdCBtZWFucw0KPiA+ID4gPiB0aGUNCj4gPiA+ ID4gPiA+ID4gPiBtZW1zZWcNCj4gPiA+ID4gPiA+ID4gPiAtCQkgKiBoYXMgYmVlbiBhbGxvY2F0 ZWQgYnkgYWxsb2NhdG9yLCB3aGljaCB3aWxsIGNvbWUNCj4gPiA+ID4gYWZ0ZXIgdGhpcw0KPiA+ ID4gPiA+ID4gPiA+IC0JCSAqIGZyZWUgY2FsbC4gVGhlcmVmb3JlLCB0aGlzIHN0b3JlIGluc3Ry dWN0aW9uDQo+ID4gPiA+IChpbmNyZW1lbnRpbmcNCj4gPiA+ID4gPiA+ID4gPiAtCQkgKiBnZW5l cmF0aW9uIGJlbG93KSB3aWxsIGJlIGd1YXJhbnRlZWQgdG8gYmUgc2Vlbg0KPiA+ID4gPiBieSBv dGhlcg0KPiA+ID4gPiA+ID4gPiA+IGNvcmUNCj4gPiA+ID4gPiA+ID4gPiAtCQkgKiBiZWZvcmUg dGhlIGNvcmUgc2VlcyB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeS4NCj4gPiA+ID4gPiA+ID4g PiArCQkgKiBydGVfc21wX3dtYigpIGlzIHRvIGtlZXAgdGhlIG9yZGVyIHRoYXQgZGV2X2dlbg0K PiA+ID4gPiA+ID4gPiA+IHVwZGF0ZWQgYmVmb3JlDQo+ID4gPiA+ID4gPiA+ID4gKwkJICogcmVi dWlsZGluZyBnbG9iYWwgY2FjaGUuIFRoZXJlZm9yZSwgb3RoZXIgY29yZSBjYW4NCj4gPiA+ID4g Zmx1c2gNCj4gPiA+ID4gPiA+ID4gPiB0aGVpcg0KPiA+ID4gPiA+ID4gPiA+ICsJCSAqIGxvY2Fs IGNhY2hlIG9uIHRpbWUuDQo+ID4gPiA+ID4gPiA+ID4gIAkJICovDQo+ID4gPiA+ID4gPiA+ID4g LQkJKytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsNCj4gPiA+ID4gPiA+ID4gPiAtCQlERUJVRygi YnJvYWRjYXN0aW5nIGxvY2FsIGNhY2hlIGZsdXNoLCBnZW49JWQiLA0KPiA+ID4gPiA+ID4gPiA+ IC0JCSAgICAgIHNoLT5zaGFyZV9jYWNoZS5kZXZfZ2VuKTsNCj4gPiA+ID4gPiA+ID4gPiAgCQly dGVfc21wX3dtYigpOw0KPiA+ID4gPiA+ID4gPiA+ICsJCW1seDVfbXJfcmVidWlsZF9jYWNoZSgm c2gtPnNoYXJlX2NhY2hlKTsNCj4gPiA+ID4gPiA+ID4gPiAgCX0NCj4gPiA+ID4gPiA+ID4gPiAg CXJ0ZV9yd2xvY2tfd3JpdGVfdW5sb2NrKCZzaC0+c2hhcmVfY2FjaGUucndsb2NrKTsNCj4gPiA+ ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPiA+IEBAIC00MDcsMjAgKzQwNSwxOSBAQCBtbHg1 X2RtYV91bm1hcChzdHJ1Y3QNCj4gcnRlX3BjaV9kZXZpY2UNCj4gPiA+ID4gPiA+ICpwZGV2LA0K PiA+ID4gPiA+ID4gPiB2b2lkDQo+ID4gPiA+ID4gPiA+ID4gKmFkZHIsDQo+ID4gPiA+ID4gPiA+ ID4gIAltbHg1X21yX2ZyZWUobXIsIHNoLT5zaGFyZV9jYWNoZS5kZXJlZ19tcl9jYik7DQo+ID4g PiA+ID4gPiA+ID4gIAlERUJVRygicG9ydCAldSByZW1vdmUgTVIoJXApIGZyb20gbGlzdCIsIGRl di0+ZGF0YS0NCj4gPiA+ID4gPnBvcnRfaWQsDQo+ID4gPiA+ID4gPiA+ID4gIAkgICAgICAodm9p ZCAqKW1yKTsNCj4gPiA+ID4gPiA+ID4gPiAtCW1seDVfbXJfcmVidWlsZF9jYWNoZSgmc2gtPnNo YXJlX2NhY2hlKTsNCj4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gKwkrK3NoLT5z aGFyZV9jYWNoZS5kZXZfZ2VuOw0KPiA+ID4gPiA+ID4gPiA+ICsJREVCVUcoImJyb2FkY2FzdGlu ZyBsb2NhbCBjYWNoZSBmbHVzaCwgZ2VuPSVkIiwNCj4gPiA+ID4gPiA+ID4gPiArCQlzaC0+c2hh cmVfY2FjaGUuZGV2X2dlbik7DQo+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ICAJ LyoNCj4gPiA+ID4gPiA+ID4gPiAgCSAqIEZsdXNoIGxvY2FsIGNhY2hlcyBieSBwcm9wYWdhdGlu ZyBpbnZhbGlkYXRpb24gYWNyb3NzIGNvcmVzLg0KPiA+ID4gPiA+ID4gPiA+IC0JICogcnRlX3Nt cF93bWIoKSBpcyBlbm91Z2ggdG8gc3luY2hyb25pemUgdGhpcyBldmVudC4gSWYNCj4gPiA+ID4g b25lIG9mDQo+ID4gPiA+ID4gPiA+ID4gLQkgKiBmcmVlZCBtZW1zZWdzIGlzIHNlZW4gYnkgb3Ro ZXIgY29yZSwgdGhhdCBtZWFucyB0aGUNCj4gPiA+ID4gbWVtc2VnDQo+ID4gPiA+ID4gPiA+ID4g LQkgKiBoYXMgYmVlbiBhbGxvY2F0ZWQgYnkgYWxsb2NhdG9yLCB3aGljaCB3aWxsIGNvbWUgYWZ0 ZXIgdGhpcw0KPiA+ID4gPiA+ID4gPiA+IC0JICogZnJlZSBjYWxsLiBUaGVyZWZvcmUsIHRoaXMg c3RvcmUgaW5zdHJ1Y3Rpb24gKGluY3JlbWVudGluZw0KPiA+ID4gPiA+ID4gPiA+IC0JICogZ2Vu ZXJhdGlvbiBiZWxvdykgd2lsbCBiZSBndWFyYW50ZWVkIHRvIGJlIHNlZW4gYnkgb3RoZXINCj4g PiA+ID4gY29yZQ0KPiA+ID4gPiA+ID4gPiA+IC0JICogYmVmb3JlIHRoZSBjb3JlIHNlZXMgdGhl IG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkuDQo+ID4gPiA+ID4gPiA+ID4gKwkgKiBydGVfc21wX3dt YigpIGlzIHRvIGtlZXAgdGhlIG9yZGVyIHRoYXQgZGV2X2dlbg0KPiA+ID4gPiB1cGRhdGVkDQo+ ID4gPiA+ID4gPiA+ID4gYmVmb3JlDQo+ID4gPiA+ID4gPiA+ID4gKwkgKiByZWJ1aWxkaW5nIGds b2JhbCBjYWNoZS4gVGhlcmVmb3JlLCBvdGhlciBjb3JlIGNhbg0KPiA+ID4gPiA+ID4gPiA+ICtm bHVzaA0KPiA+ID4gPiB0aGVpcg0KPiA+ID4gPiA+ID4gPiA+ICsJICogbG9jYWwgY2FjaGUgb24g dGltZS4NCj4gPiA+ID4gPiA+ID4gPiAgCSAqLw0KPiA+ID4gPiA+ID4gPiA+IC0JKytzaC0+c2hh cmVfY2FjaGUuZGV2X2dlbjsNCj4gPiA+ID4gPiA+ID4gPiAtCURFQlVHKCJicm9hZGNhc3Rpbmcg bG9jYWwgY2FjaGUgZmx1c2gsIGdlbj0lZCIsDQo+ID4gPiA+ID4gPiA+ID4gLQkgICAgICBzaC0+ c2hhcmVfY2FjaGUuZGV2X2dlbik7DQo+ID4gPiA+ID4gPiA+ID4gIAlydGVfc21wX3dtYigpOw0K PiA+ID4gPiA+ID4gPiA+ICsJbWx4NV9tcl9yZWJ1aWxkX2NhY2hlKCZzaC0+c2hhcmVfY2FjaGUp Ow0KPiA+ID4gPiA+ID4gPiA+ICAJcnRlX3J3bG9ja19yZWFkX3VubG9jaygmc2gtPnNoYXJlX2Nh Y2hlLnJ3bG9jayk7DQo+ID4gPiA+ID4gPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+ID4gPiA+ID4g PiAgfQ0KPiA+ID4gPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gPiA+ID4gMi4yNS4xDQoNCg==