From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (EUR04-DB3-obe.outbound.protection.outlook.com [40.107.6.55]) by mx.groups.io with SMTP id smtpd.web12.1212.1626852450530432462 for ; Wed, 21 Jul 2021 00:27:31 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=BC3+hN31; spf=pass (domain: arm.com, ip: 40.107.6.55, mailfrom: sunny.wang@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=8gQmCOh+iNl8XNSJs0mQr3xkGlFPTAlKP/gIJPqlDAI=; b=BC3+hN31Lfm3vSl23bbgE0Ges16WYZfoNqkvNQUkEKWOYLdIa/onAJsWxSje/FAx7Gxm2dwZbyVbBSKx42VB5J3qtZH7ohSAberWN7un9Atj3dw//Cbz53l4ntNsZwMbTfsA0NnBegGnl1DDpr9uJBBeO00O3kCYPhn4ZIbSVlY= Received: from AM6PR08CA0045.eurprd08.prod.outlook.com (2603:10a6:20b:c0::33) by AM4PR0802MB2260.eurprd08.prod.outlook.com (2603:10a6:200:5f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.29; Wed, 21 Jul 2021 07:27:27 +0000 Received: from VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:c0:cafe::87) by AM6PR08CA0045.outlook.office365.com (2603:10a6:20b:c0::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.22 via Frontend Transport; Wed, 21 Jul 2021 07:27:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; 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 VE1EUR03FT007.mail.protection.outlook.com (10.152.18.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.24 via Frontend Transport; Wed, 21 Jul 2021 07:27:27 +0000 Received: ("Tessian outbound 57330d0f8f60:v99"); Wed, 21 Jul 2021 07:27:26 +0000 X-CR-MTA-TID: 64aa7808 Received: from 6f6dd2d8a648.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F5EF93E9-2DB3-4979-96B5-BC1C289CE7DE.1; Wed, 21 Jul 2021 07:27:21 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6f6dd2d8a648.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 21 Jul 2021 07:27:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KdIoHbbjNAZuYz9ZdLQK1OfEgpS3PcOmEf5eZbnu4vvT4t08G4wHa4xpjilEC/GAMTApW1FrvNGql3VH4bdEtJKBctaniesKv+XWoA66OEaJlJOYlF5m+q0XpIO5EwI4nM1KtDYiqkNNtJ3nR5hiPBsY04BDy9QKcOyg/n+Koqafhx/2+yHawiUbwV+60hc9zywir+z66R/Xx3muGL5Ig+oZsFdKkazQQh68ZJvTY4nKHAEQArxpeAlX4ibLKQc7LO2v7D98pzc+N6GJvSNsGgL6horA4hR5siuG+GzN9sUSI+fJ4PHBzwNyYQdDJAwDitp5ftvLfM8gy9k+MPUrgA== 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=8gQmCOh+iNl8XNSJs0mQr3xkGlFPTAlKP/gIJPqlDAI=; b=FqVLalQqodB6jO5FetR7khS3MRrHVEekrE+JMyF0EchOuSi1fbzZiYoJYoDiGOJS2I34tPlaCI/sYq9TzeoasFZRcX5+Kk/xIue51crS0R29gN+SjX1a57uek2c+sz4J+3b+9KLUR1MhgXmLW8VXcsJyp1fzWVvpghpVYWdlRGwVthryPbpOa6UPs/XyzPIE3kLgpK2eTE9ftNB9xXsxJSs7XGqgyM6VSfHtZNXGsPI+Ejsh3uAyj3G4MunMlUyycRdVQ7zkJ4HmvzgU5Rookqq1BckyOSyrByk0FEeuv/amAYVN84gCI7p75VB3aVUFuUhQqhFkieQjJ9kKydsbrw== 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=8gQmCOh+iNl8XNSJs0mQr3xkGlFPTAlKP/gIJPqlDAI=; b=BC3+hN31Lfm3vSl23bbgE0Ges16WYZfoNqkvNQUkEKWOYLdIa/onAJsWxSje/FAx7Gxm2dwZbyVbBSKx42VB5J3qtZH7ohSAberWN7un9Atj3dw//Cbz53l4ntNsZwMbTfsA0NnBegGnl1DDpr9uJBBeO00O3kCYPhn4ZIbSVlY= Received: from DB8PR08MB3993.eurprd08.prod.outlook.com (2603:10a6:10:ad::26) by DB6PR08MB2694.eurprd08.prod.outlook.com (2603:10a6:6:1f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.29; Wed, 21 Jul 2021 07:27:19 +0000 Received: from DB8PR08MB3993.eurprd08.prod.outlook.com ([fe80::14b0:85d6:deeb:9ee0]) by DB8PR08MB3993.eurprd08.prod.outlook.com ([fe80::14b0:85d6:deeb:9ee0%7]) with mapi id 15.20.4331.034; Wed, 21 Jul 2021 07:27:19 +0000 From: "Sunny Wang" To: "Gao, Zhichao" , Grzegorz Bernacki CC: "devel@edk2.groups.io" , "leif@nuviainc.com" , "ardb+tianocore@kernel.org" , Samer El-Haj-Mahmoud , "mw@semihalf.com" , "upstream@semihalf.com" , "pete@akeo.ie" , "Wang, Jian J" , "Wu, Hao A" , "Bi, Dandan" , "Dong, Eric" , Sunny Wang Subject: Re: [edk2-devel] [PATCH v2 1/1] MdeModulePkg: Add BootDiscoveryPolicyUiLib. Thread-Topic: [edk2-devel] [PATCH v2 1/1] MdeModulePkg: Add BootDiscoveryPolicyUiLib. Thread-Index: AQHXclQbOj8XuP3jcUaHzo5tMXyWkas4vBWAgAGwUwCAEo1vgIAAGnig Date: Wed, 21 Jul 2021 07:27:19 +0000 Message-ID: References: <20210706104432.1239133-1-gjb@semihalf.com> <20210706104432.1239133-2-gjb@semihalf.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: EFB4F92B5345D14E880470EB62BE4567.0 x-checkrecipientchecked: true Authentication-Results-Original: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 4a96c4d5-7f41-426e-3296-08d94c18fe08 x-ms-traffictypediagnostic: DB6PR08MB2694:|AM4PR0802MB2260: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 59/1ltZregOwHMekxncrV4mNR9UeL3cztYVsb1WxPYtNM7fB2sfLTq9k23S0XEdxp1r0/eCtW6PiKw0fYIG4hL6poyaTNA7IoeArSN+1vzNFyJhVW8SahyQNgAIrUHnsCXIehZPr2+jYp9aIGwZ662KPiocmDvJbl1GjjXHrbbkC2LKV1sbbkRcB5JibINcFWbJ+HUtY+AfbDIg510coVa6rO8Ykd9hSFXW2axssnD/DZxcLKCqBX0mB3K6OJ4WcEPbSAm6RavK3oosVxCqnItxKdOAIV3zEhYylUhBlABF8e1e3WR4VeCh/1zDLOOgSipHssSFYYrvzLLB8CkziU4pZs/XozwPWho1kSA0OI9g7V/b/e5vmgPaO4Nni1Oi+gVogstUY5zdufcrQukRVr1RVhaA78xirnBACyD7rBFAx2WJATo0Awj2sCrqJridiC7slWs/trRthAxBpKfgx9jZekDmxFlgHhgwk3buh8hUHOC/iBuQKeeORR9GPXHghboZBtDxdU/FzMpSVEQ7kNsmxp1Rm5gKshEc2AGR/OeMovS1NrWNIu4h6GK0vBJmwG5KM+reaFUgz1wS/LL3i4soZIue7pt4mLbHEMLtSffqEv0oxP0yte91NfPzDm0i2wlGjG2S+P0odVuVYLi35ogQZ9GofBFevcNEfXJq0eWqIEHcXkG7F1ycBeSNYtw0KYXuM/bYMf8CW8M/Yr5/THESnqoC2WL63MGHS6INMgNwAHuvfX3JHlBRJvb9oEz3MxUCsfjTIgxmGKxvvDgHzuFTVRqNqqXHfjO9UvqB1iYLBQ9xT0s0ak3cNrOjGZA9cYTQDJ6RrJt1k+/iHqySjFbKOYCkUOHFvSFnvB1EqV8U= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB8PR08MB3993.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(4636009)(366004)(5660300002)(52536014)(86362001)(4326008)(2906002)(316002)(110136005)(83380400001)(9686003)(966005)(508600001)(54906003)(71200400001)(186003)(53546011)(8936002)(55016002)(30864003)(38100700002)(6506007)(7416002)(26005)(66446008)(66476007)(76116006)(33656002)(122000001)(64756008)(66946007)(66556008)(8676002)(7696005)(38070700004)(579004)(44824005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cXpZY2NUeXFhRjh3Y1FCb1pPRzMwc2VQODZwNE1BZnhjN3JTTEdUYkhPVmYw?= =?utf-8?B?L0ovd2puUmJJald3cWpyWE9LOTdROHI3MDRmRVk1MWpLWFlGSG9SQmRpRjdT?= =?utf-8?B?cXFMUzUwZy9HQm4wa1pqZEx1a05aUmUxQWNUc3dXTUc2T0NNR2diYzdoSmNH?= =?utf-8?B?OHIxa3prZDZSUjQ3MkhWeXdKRFZXSWFNcHVmOFZRVHFiYTZMd3VlakFLVFpL?= =?utf-8?B?VDFuVDlqNVNqR0J3c3B3b2FFVTFKZzVSYnpESTBqc25IL3VnUWJ5T3hRcW1G?= =?utf-8?B?MU9aY3pqNGpvazFuTzlYb01sT0pUbElNZ2tzSEJwNnZNT2RXTXVwbEt3aDlS?= =?utf-8?B?c05MK3h5anZ0MVJ5ZzFjYWI5NEorakwzcjhjcUJrU3JPY2hDVDFjYW1mTlFN?= =?utf-8?B?Y3dyOEtmOERYVTIxTmR6UDB3MFYyL2kwNjdvSWh3eTh1MUl3L20zWDNmZDdX?= =?utf-8?B?bUtqTmRNSG1kZytSMDFPaGFZaFNxVnhaeEVJUzY4d1VjcC9pMFUwVzJPQWw4?= =?utf-8?B?V2NadEp4Rm9HSVNXT3NRRFJabHVaNXN2NDF0SUZFNnFRdm5RaWRPVmNWOWZ6?= =?utf-8?B?YkdMN0YwMFd6TjFXalBrS3llM3NQbEhSZDJLMnJPOHczQS9UUmpBQXhKT0JL?= =?utf-8?B?dlhNWlRnWjQrTXI5V2hDeEZlUnYxVFVXNCt1L0xzSmdGQ3ZJalNHWW9Fd0Fh?= =?utf-8?B?ZGg4aStNdndDaFZ3U3Rlem00enZ5RHF0RmxmckE4YjJwSU1QMXlDazJpODFG?= =?utf-8?B?SFdHNmdqVTJJanBCTlh6YXd0VWZYSFMxSGduNHJRNG1XcUp5OEVkWmhtY21R?= =?utf-8?B?R0pOanZzcS90dEV6elZWM1ZUYWt5M2o5RHNtcUhJZjQ2R3BlODNPVS9uN1RX?= =?utf-8?B?SGdjVERGR2hCRnJ0aGxTbjd5cWZFb0V1clMxZktqK1NHc3JwamhXVVBnUVZa?= =?utf-8?B?Wi82MXpZbVhFTkV6KzlaQ29rakc4cXcycUNhcjJNR2w0K3YxdU12TS9SSGtp?= =?utf-8?B?U2JnVWNkbkhWK2RZWHc2SWl0d3YwUWJzSGNXb0lKaVVzWWVCZ295M1UzTExY?= =?utf-8?B?K1FFalF0TlhIeHViN1pLM0RDbGI0UFhjTGpGL3Z4S2RQbTFIQVRZb1E1M2w0?= =?utf-8?B?WjhRQ1AvbE5LYUg1WnVzN3h4cEdBbGpENmxOWDEydU5nK1I4a3dFdUtOTzVo?= =?utf-8?B?dEhIczVNWDZwQURKRDB5bHkwaXp6d1RSeXpMRURRbWVUc1FaTFlXNzNvczZK?= =?utf-8?B?WExnam9YYk9xRVI2WEtnaGFLOU8xdjlZTDUrNmpqZS9tSzU3eHJwTnJtRG9Z?= =?utf-8?B?RGN3TEl0Rk1TVlptcjdJd3Z3R0J4ZmsrcjZzaHVIWjErbTJTWFg5blk3YWVm?= =?utf-8?B?eVAxUG83YXozbTRIbkI3MFZTRzJWYmJFZlY2T2RMQ0VKNGMvRlI5eDExKzlC?= =?utf-8?B?RDZZeW53L094Mkg5cW0xTDgrVmlzeTNYbTY3NkVib28zQmx3a0pxeTd5YUVx?= =?utf-8?B?dE9nNHVhT1hJdGROMllwNWpYb3ZkWjYxemFrczBmYzdwcG5MS2hNTG56ZHMw?= =?utf-8?B?Y0ZwcGxSaFFXdHFMNG9pTm04NjZFWE9aK0JKckg2clJwNm1EdGtqUXRXZi82?= =?utf-8?B?UUd0QTNUQys4NkVkbFNnaGJTVjg4VmJyR1BtQThmR041WVZQSmt6OFlDM1ZN?= =?utf-8?B?ckpyYnlvWGxJVDBDclN2aE0xd1ZpRTNuV0ZtZEQ2dDhKWEw1ZjcvMk1KSk5q?= =?utf-8?Q?5fnPsUobXnq+iABbbs=3D?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2694 Original-Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; Return-Path: Sunny.Wang@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 418bb32c-2b1c-4633-054e-08d94c18f961 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nPNiNh902KdAUUaI6iDi/5e00xf5udW6/mfM9FIBXchFwCyStv5eDamiR6BNBANsgSW3gFTKht75oaAQvdbT1hQeUeuoqU2RKJDGDBjzXUiybqZVA24Pkuu69r9H0UAp9PjCC1B1+ljjw881qsYv48+Ax4vL9B5ko2BLb4c0ah/u3XQGQv9CmtjQmGICQ36/0FTecDGG7bEHuavu1fDdwTbHCDGdJ+QXkqA8ZlbvXpnA7g75VxeL/erPpTBzu75a6PIDQ81BBBAnQXm4DTWeLlTpsLbJF6DExEWonUfTiA5uj5jvrJn298YdwL8KcJsc6fq+TkqWI3ABAKO5wx4bo3MM6pGFBLqoucDp7CE5P6X08R1G988zGk4my5zJSuobR8NACrGuqNM5zzgiUCAoBPjDpnQjgIm2Z4uHh2VD0NY4O/MIPAZqVRuehQUyWUXWG8Bg55qQ2lf0tosIs6qYjeMnkh39keBBX9XWsbnNUxsQUK9ZtTfuZJhrXoD8Ge3aOFzGPVQxh00dUirNtk161ab+HzvNtdzXSbGt+qgoRdwSKrRrYPRBNaQh2ORY4adFjmin8wCFQke6EONjYlCzcZM5J56iyshLkKBdLTIrWPIy2gK+2sK+5aZnHwSVqK7Cp3e949rPQ3JAIJ0MCR8xH52wYJlKdxrpLQ8TdWlpf14tyEcG5f+IFW+X9c5u8ZufccWreKFVu2RyVp9HCtFpDHCoFY+TojRIXur8ZgqL8W4TUrNS2y/PT4zmIzN24wfiHigszjpmOWrGYrnDy023N4NQVxNUCC3CJVJ45YQPn9ddkOtZ+qFVKzbG8OiKNtbZtJEIJy8SW1EQMINaSHvmecMfX2VBzBIZA8M+SbbOmvY= 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:(6029001)(4636009)(346002)(39850400004)(376002)(136003)(396003)(36840700001)(46966006)(356005)(8676002)(81166007)(966005)(54906003)(110136005)(33656002)(9686003)(52536014)(36860700001)(83380400001)(336012)(55016002)(478600001)(5660300002)(2906002)(82310400003)(8936002)(86362001)(70206006)(30864003)(26005)(4326008)(316002)(186003)(82740400003)(70586007)(47076005)(53546011)(6506007)(7696005)(44824005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2021 07:27:27.2984 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4a96c4d5-7f41-426e-3296-08d94c18fe08 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: VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2260 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgR3JlZywNCg0KSSBqdXN0IGhhZCBhbiBvZmZsaW5lIGRpc2N1c3Npb24gd2l0aCBaaGljaGFv LiBaaGljaGFvIG1hZGUgYSBnb29kIHBvaW50LiBJdCBsb29rcyBsaWtlIHRoaXMgZmVhdHVyZSBy ZXF1aXJlcyBwbGF0Zm9ybSBjb2RlIHRvIGFkZCBQQ0Qgb3ZlcnJpZGUgaW4gRHluYW1pY0hpaSB0 eXBlIGluIGl0cyBwbGF0Zm9ybSAuZHNjIGZpbGUuIE90aGVyd2lzZSwgdGhlICBQY2RTZXQzMlMo KSBjYWxsIHdvbid0IGluaXRpYXRlIHRoZSAiQm9vdERpc2NvdmVyeVBvbGljeSIgdmFyaWFibGUu DQpUaGVyZWZvcmUsIGNvdWxkIHlvdSBhZGQgYSBjb21tZW50IHRvIHRoZSBkZWMgZmlsZSB0byBz YXkgdGhhdCB0aGUgUENEIG92ZXJyaWRlIGluIER5bmFtaWNIaWkgdHlwZSBpcyByZXF1aXJlZCBm b3IgZW5hYmxpbmcgdGhpcyBmZWF0dXJlPyAgWW91IGNhbiB0YWtlIHRoZSBjb21tZW50IGZvciBQ Y2RUY2dQaHlzaWNhbFByZXNlbmNlSW50ZXJmYWNlVmVyIGluIFxTZWN1cml0eVBrZ1xTZWN1cml0 eVBrZy5kZWMgYmVsb3cgYXMgYSByZWZlcmVuY2UgZm9yIGFkZGluZyB5b3VyIGNvbW1lbnQgZm9y IFBjZEJvb3REaXNjb3ZlcnlQb2xpY3kgaW4gTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMu DQoNCiAgIyBUbyBzdXBwb3J0IGNvbmZpZ3VyaW5nIGZyb20gc2V0dXAgcGFnZSwgdGhpcyBQQ0Qg Y2FuIGJlIER5bmFtaWNIaWkgdHlwZSBhbmQgbWFwIHRvIGEgc2V0dXAgb3B0aW9uLjxCUj4NCiAg IyBGb3IgZXhhbXBsZSwgbWFwIHRvIFRDRzJfVkVSU0lPTi5QcGlWZXJzaW9uIHRvIGJlIGNvbmZp Z3VyZWQgYnkgVGNnMkNvbmZpZ0R4ZSBkcml2ZXIuPEJSPg0KICAjIGdFZmlTZWN1cml0eVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZFRjZ1BoeXNpY2FsUHJlc2VuY2VJbnRlcmZhY2VWZXJ8TCJUQ0cyX1ZF UlNJT04ifGdUY2cyQ29uZmlnRm9ybVNldEd1aWR8MHgwfCIxLjMifE5WLEJTPEJSPg0KDQpCZXN0 IFJlZ2FyZHMsDQpTdW5ueSBXYW5nDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t OiBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NClNlbnQ6IFdlZG5lc2RheSwg SnVseSAyMSwgMjAyMSAxOjE0IFBNDQpUbzogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFs Zi5jb20+DQpDYzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGxlaWZAbnV2aWFpbmMuY29tOyBhcmRi K3RpYW5vY29yZUBrZXJuZWwub3JnOyBTYW1lciBFbC1IYWotTWFobW91ZCA8U2FtZXIuRWwtSGFq LU1haG1vdWRAYXJtLmNvbT47IFN1bm55IFdhbmcgPFN1bm55LldhbmdAYXJtLmNvbT47IG13QHNl bWloYWxmLmNvbTsgdXBzdHJlYW1Ac2VtaWhhbGYuY29tOyBwZXRlQGFrZW8uaWU7IFdhbmcsIEpp YW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5j b20+OyBCaSwgRGFuZGFuIDxkYW5kYW4uYmlAaW50ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5k b25nQGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEvMV0g TWRlTW9kdWxlUGtnOiBBZGQgQm9vdERpc2NvdmVyeVBvbGljeVVpTGliLg0KDQpPSy4gSSBhbSBu b3QgZmFtaWxpYXIgd2l0aCBQQ0QsIGl0IGlzIG5ldyB1c2FnZSBmb3IgbWUuIEFuZCBub3cgSSBn b3QgdG8ga25vdyB0aGUgcmVhc29uLiBCdXQgc2VlbXMgdGhlIGJlaGF2aW9yIHdvdWxkIGJlIGRp ZmZlcmVudCBiYXNlIG9uIHRoZSBpbml0aWFsaXphdGlvbiBvbiBEU0MgZmlsZS4NCldoYXRldmVy LCB0aGlzIHBhdGNoIGlzIE9LIHRvIG1lLiBSZXZpZXdlZC1ieTogWmhpY2hhbyBHYW8gPHpoaWNo YW8uZ2FvQGludGVsLmNvbT4NCg0KVGhhbmtzLA0KWmhpY2hhbw0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29t Pg0KPiBTZW50OiBGcmlkYXksIEp1bHkgOSwgMjAyMSA1OjU1IFBNDQo+IFRvOiBHYW8sIFpoaWNo YW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBs ZWlmQG51dmlhaW5jLmNvbTsgYXJkYit0aWFub2NvcmVAa2VybmVsLm9yZzsNCj4gU2FtZXIuRWwt SGFqLU1haG1vdWRAYXJtLmNvbTsgc3VubnkuV2FuZ0Bhcm0uY29tOw0KPiBtd0BzZW1paGFsZi5j b207IHVwc3RyZWFtQHNlbWloYWxmLmNvbTsgcGV0ZUBha2VvLmllOyBXYW5nLCBKaWFuIEoNCj4g PGppYW4uai53YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsg QmksIERhbmRhbg0KPiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IERvbmcsIEVyaWMgPGVyaWMuZG9u Z0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEvMV0g TWRlTW9kdWxlUGtnOiBBZGQNCj4gQm9vdERpc2NvdmVyeVBvbGljeVVpTGliLg0KPg0KPiBIaSBa aGljaGFvLA0KPg0KPiBTZXR0aW5nIEhJSS10eXBlIFBDRCBjYXVzZXMgdmFyaWFibGUgaW5pdGlh bGl6YXRpb24sIHNvIGlmDQo+IEdldFZhcmlhYmxlKCkgZmFpbHMgZHVlIHRvIHZhcmlhYmxlIG5v dCBiZWluZyBmb3VuZCwgaXQgd2lsbCBiZQ0KPiBpbml0aWFsaXplZCBieSBQY2RTZXQzMlMoKSBm dW5jdGlvbi4NCj4gdGhhbmtzLA0KPiBncmVnDQo+DQo+IGN6dy4sIDggbGlwIDIwMjEgbyAxMDow OCBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4gbmFwaXNhxYIoYSk6DQo+ID4N Cj4gPiBTZWUgYmVsb3cgY29tbWVudHMuDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+ID4gR3J6ZWdvcnogQmVybmFja2kNCj4gPiA+IFNlbnQ6 IFR1ZXNkYXksIEp1bHkgNiwgMjAyMSA2OjQ1IFBNDQo+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91 cHMuaW8NCj4gPiA+IENjOiBsZWlmQG51dmlhaW5jLmNvbTsgYXJkYit0aWFub2NvcmVAa2VybmVs Lm9yZzsgU2FtZXIuRWwtSGFqLQ0KPiA+ID4gTWFobW91ZEBhcm0uY29tOyBzdW5ueS5XYW5nQGFy bS5jb207IG13QHNlbWloYWxmLmNvbTsNCj4gPiA+IHVwc3RyZWFtQHNlbWloYWxmLmNvbTsgcGV0 ZUBha2VvLmllOyBXYW5nLCBKaWFuIEoNCj4gPiA+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBX dSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IEJpLCBEYW5kYW4NCj4gPiA+IDxkYW5kYW4u YmlAaW50ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IEdyemVnb3J6 DQo+ID4gPiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT47IFN1bm55IFdhbmcgPHN1bm55Lndh bmdAYXJtLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjIgMS8xXSBN ZGVNb2R1bGVQa2c6IEFkZA0KPiA+ID4gQm9vdERpc2NvdmVyeVBvbGljeVVpTGliLg0KPiA+ID4N Cj4gPiA+IFRoaXMgbGlicmFyeSBleHRlbmRzIEJvb3QgTWFpbnRlbmFuY2UgTWVudSBhbmQgYWxs b3dzIHRvIHNlbGVjdCBCb290DQo+ID4gPiBEaXNjb3ZlcnkgUG9saWN5LiBXaGVuIGNob2ljZSBp cyBtYWRlIEJvb3REaXNjb3ZlcnlQb2xpY3kgdmFyaWFibGUgaXMgc2V0Lg0KPiA+ID4gUGxhdGZv cm0gY29kZSBjYW4gdXNlIHRoaXMgdmFyaWFibGUgdG8gZGVjaWRlIHdoaWNoIGNsYXNzIG9mIGRl dmljZSBzaGFsbCBiZQ0KPiA+ID4gY29ubmVjdGVkLg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYt Ynk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPg0KPiA+ID4gUmV2aWV3ZWQt Ynk6IFN1bm55IFdhbmcgPHN1bm55LndhbmdAYXJtLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIE1k ZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArDQo+ID4gPg0KPiA+ID4gTWRlTW9kdWxlUGtn L0xpYnJhcnkvQm9vdERpc2NvdmVyeVBvbGljeVVpTGliL0Jvb3REaXNjb3ZlcnlQb2xpY3lVaUxp Yi4NCj4gPiA+IGluZiAgICAgICAgfCAgNTIgKysrKysrKw0KPiA+ID4gIE1kZU1vZHVsZVBrZy9J bmNsdWRlL0d1aWQvQm9vdERpc2NvdmVyeVBvbGljeS5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8DQo+IDIyDQo+ID4gPiArKysNCj4gPiA+DQo+ID4gPiBNZGVNb2R1bGVQa2cv TGlicmFyeS9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVVpTGli Lg0KPiA+ID4gYyAgICAgICAgICB8IDE2MCArKysrKysrKysrKysrKysrKysrKw0KPiA+ID4NCj4g PiA+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jvb3REaXNjb3ZlcnlQb2xpY3lVaUxpYi9Cb290RGlz Y292ZXJ5UG9saWN5VWlMaWIuDQo+ID4gPiB1bmkgICAgICAgIHwgIDE2ICsrDQo+ID4gPg0KPiA+ ID4gTWRlTW9kdWxlUGtnL0xpYnJhcnkvQm9vdERpc2NvdmVyeVBvbGljeVVpTGliL0Jvb3REaXNj b3ZlcnlQb2xpY3lVaUxpYg0KPiA+ID4gU3RyaW5ncy51bmkgfCAgMjkgKysrKw0KPiA+ID4NCj4g PiA+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jvb3REaXNjb3ZlcnlQb2xpY3lVaUxpYi9Cb290RGlz Y292ZXJ5UG9saWN5VWlMaWINCj4gPiA+IFZmci5WZnIgICAgIHwgIDQ0ICsrKysrKw0KPiA+ID4g IDcgZmlsZXMgY2hhbmdlZCwgMzI5IGluc2VydGlvbnMoKykNCj4gPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQNCj4gPiA+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jvb3REaXNjb3ZlcnlQb2xpY3lVaUxp Yi9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIuDQo+ID4gPiBpbmYNCj4gPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgTWRlTW9kdWxlUGtnL0luY2x1ZGUvR3VpZC9Cb290RGlzY292ZXJ5UG9saWN5LmgN Cj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jv b3REaXNjb3ZlcnlQb2xpY3lVaUxpYi9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIuDQo+ID4gPiBj DQo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiBNZGVNb2R1bGVQa2cvTGlicmFyeS9C b290RGlzY292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVVpTGliLg0KPiA+ID4g dW5pDQo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiBNZGVNb2R1bGVQa2cvTGlicmFy eS9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVVpTGliDQo+ID4g PiBTdHJpbmdzLnVuaQ0KPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gTWRlTW9kdWxl UGtnL0xpYnJhcnkvQm9vdERpc2NvdmVyeVBvbGljeVVpTGliL0Jvb3REaXNjb3ZlcnlQb2xpY3lV aUxpYg0KPiA+ID4gVmZyLlZmcg0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQ a2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRl YyBpbmRleCBhZDg0NDIxY2YzLi40ZTFjMjkxNzY4DQo+ID4gPiAxMDA2NDQNCj4gPiA+IC0tLSBh L01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cv TWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gQEAgLTQyNSw2ICs0MjUsOSBAQA0KPiA+ID4gICAgIyMg SW5jbHVkZS9Vbml2ZXJzYWxQYXlsb2FkL1NlcmlhbFBvcnRJbmZvLmgNCj4gPiA+ICAgIGdVbml2 ZXJzYWxQYXlsb2FkU2VyaWFsUG9ydEluZm9HdWlkID0geyAweGFhN2UxOTBkLCAweGJlMjEsIDB4 NDQwOSwNCj4gPiA+IHsgMHg4ZSwgMHg2NywgMHhhMiwgMHhjZCwgMHhmLCAweDYxLCAweGUxLCAw eDcwIH0gfQ0KPiA+ID4NCj4gPiA+ICsgICMjIEdVSUQgdXNlZCBmb3IgQm9vdCBEaXNjb3Zlcnkg UG9saWN5IEZvcm1TZXQgZ3VpZCBhbmQgcmVsYXRlZCB2YXJpYWJsZXMuDQo+ID4gPiArICBnQm9v dERpc2NvdmVyeVBvbGljeU1nckZvcm1zZXRHdWlkID0geyAweDViNmY3MTA3LCAweGJiM2MsIDB4 NDY2MCwgew0KPiA+ID4gKyAweDkyLCAweGNkLCAweDU0LCAweDI2LCAweDkwLCAweDI4LCAweDBi LCAweGJkIH0gfQ0KPiA+ID4gKw0KPiA+ID4gIFtQcGlzXQ0KPiA+ID4gICAgIyMgSW5jbHVkZS9Q cGkvQXRhQ29udHJvbGxlci5oDQo+ID4gPiAgICBnUGVpQXRhQ29udHJvbGxlclBwaUd1aWQgICAg ICAgPSB7IDB4YTQ1ZTYwZDEsIDB4YzcxOSwgMHg0NGFhLCB7IDB4YjAsIDB4N2EsDQo+ID4gPiAw eGFhLCAweDc3LCAweDdmLCAweDg1LCAweDkwLCAweDZkIH19DQo+ID4gPiBAQCAtMTYwMCw2ICsx NjAzLDkgQEANCj4gPiA+ICAgICMgQFByb21wdCBDb25zb2xlIE91dHB1dCBSb3cgb2YgVGV4dCBT ZXR1cA0KPiA+ID4NCj4gPiA+IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTZXR1 cENvbk91dFJvd3wyNXxVSU5UMzJ8MHg0MA0KPiA+ID4gMDAwMDBlDQo+ID4gPg0KPiA+ID4gKyAg IyMgU3BlY2lmeSB0aGUgQm9vdCBEaXNjb3ZlcnkgUG9saWN5IHNldHRpbmdzDQo+ID4gPiArDQo+ ID4gPiBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQm9vdERpc2NvdmVyeVBvbGlj eXwyfFVJTlQzMnwweDQNCj4gPiA+IDAwMDANCj4gPiA+ICsgMDBmDQo+ID4gPiArDQo+ID4gPiAg W1BjZHNGaXhlZEF0QnVpbGQuQUFSQ0g2NCwgUGNkc1BhdGNoYWJsZUluTW9kdWxlLkFBUkNINjRd DQo+ID4gPg0KPiA+ID4gZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEFjcGlFeHBv c2VkVGFibGVWZXJzaW9uc3wweDIwfFVJDQo+ID4gPiBOVDMyfDB4MDAwMTAwNGMNCj4gPiA+DQo+ ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPg0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jvb3REaXNj b3ZlcnlQb2xpY3lVaUxpYi9Cb290RGlzY292ZXJ5UG9saWN5VWlMaQ0KPiA+ID4gYi5pbmYNCj4g PiA+DQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvQm9vdERpc2NvdmVyeVBvbGljeVVpTGliL0Jv b3REaXNjb3ZlcnlQb2xpY3lVaUxpDQo+ID4gPiBiLmluZg0KPiA+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAuLjFmYjRkNDNjYWENCj4gPiA+IC0tLSAvZGV2 L251bGwNCj4gPiA+ICsrKw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9Cb290RGlzY292 ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVUNCj4gPiA+ICsrKyBpTGliLmluZg0K PiA+ID4gQEAgLTAsMCArMSw1MiBAQA0KPiA+ID4gKyMjIEBmaWxlDQo+ID4gPiArIyAgTGlicmFy eSBmb3IgQkRTIHBoYXNlIHRvIHVzZSBCb290IERpc2NvdmVyeSBQb2xpY3kgIyAjICBDb3B5cmln aHQNCj4gPiA+ICsoYykgMjAyMSwgQVJNIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ICMg IENvcHlyaWdodCAoYykgMjAyMSwNCj4gPiA+ICtTZW1paGFsZiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4gIyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6DQo+ID4gPiArQlNELTItQ2xhdXNlLVBh dGVudCAjICMjDQo+ID4gPiArDQo+ID4gPiArW0RlZmluZXNdDQo+ID4gPiArICBJTkZfVkVSU0lP TiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1DQo+ID4gPiArICBCQVNFX05BTUUgICAg ICAgICAgICAgICAgICAgICAgPSBCb290RGlzY292ZXJ5UG9saWN5VWlMaWINCj4gPiA+ICsgIE1P RFVMRV9VTklfRklMRSAgICAgICAgICAgICAgICA9IEJvb3REaXNjb3ZlcnlQb2xpY3lVaUxpYi51 bmkNCj4gPiA+ICsgIEZJTEVfR1VJRCAgICAgICAgICAgICAgICAgICAgICA9IEJFNzMxMDVBLUIx M0QtNEI1Ny1BNDFBLTQ2M0RCRDE1RkUxMA0KPiA+ID4gKyAgTU9EVUxFX1RZUEUgICAgICAgICAg ICAgICAgICAgID0gRFhFX0RSSVZFUg0KPiA+ID4gKyAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAg ICAgICAgID0gMS4wDQo+ID4gPiArICBMSUJSQVJZX0NMQVNTICAgICAgICAgICAgICAgICAgPSBO VUxMfERYRV9EUklWRVIgVUVGSV9BUFBMSUNBVElPTg0KPiA+ID4gKyAgQ09OU1RSVUNUT1IgICAg ICAgICAgICAgICAgICAgID0gQm9vdERpc2NvdmVyeVBvbGljeVVpTGliQ29uc3RydWN0b3INCj4g PiA+ICsgIERFU1RSVUNUT1IgICAgICAgICAgICAgICAgICAgICA9IEJvb3REaXNjb3ZlcnlQb2xp Y3lVaUxpYkRlc3RydWN0b3INCj4gPiA+ICsjDQo+ID4gPiArIyBUaGUgZm9sbG93aW5nIGluZm9y bWF0aW9uIGlzIGZvciByZWZlcmVuY2Ugb25seSBhbmQgbm90IHJlcXVpcmVkIGJ5IHRoZQ0KPiA+ ID4gYnVpbGQgdG9vbHMuDQo+ID4gPiArIw0KPiA+ID4gKyMgIFZBTElEX0FSQ0hJVEVDVFVSRVMg ICAgICAgICAgID0gSUEzMiBYNjQgQUFSQ0g2NA0KPiA+ID4gKyMNCj4gPiA+ICsNCj4gPiA+ICtb U291cmNlc10NCj4gPiA+ICsgIEJvb3REaXNjb3ZlcnlQb2xpY3lVaUxpYi5jDQo+ID4gPiArICBC b290RGlzY292ZXJ5UG9saWN5VWlMaWJTdHJpbmdzLnVuaQ0KPiA+ID4gKyAgQm9vdERpc2NvdmVy eVBvbGljeVVpTGliVmZyLlZmcg0KPiA+ID4gKw0KPiA+ID4gK1tQYWNrYWdlc10NCj4gPiA+ICsg IE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4gPiArICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRl Yw0KPiA+ID4gKw0KPiA+ID4gK1tMaWJyYXJ5Q2xhc3Nlc10NCj4gPiA+ICsgIERldmljZVBhdGhM aWINCj4gPiA+ICsgIEJhc2VMaWINCj4gPiA+ICsgIFVlZmlSdW50aW1lU2VydmljZXNUYWJsZUxp Yg0KPiA+ID4gKyAgVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliDQo+ID4gPiArICBEZWJ1Z0xpYg0K PiA+ID4gKyAgSGlpTGliDQo+ID4gPiArICBVZWZpTGliDQo+ID4gPiArICBCYXNlTWVtb3J5TGli DQo+ID4gPiArDQo+ID4gPiArW0d1aWRzXQ0KPiA+ID4gKyAgZ0Jvb3REaXNjb3ZlcnlQb2xpY3lN Z3JGb3Jtc2V0R3VpZA0KPiA+ID4gKw0KPiA+ID4gK1tQY2RdDQo+ID4gPiArICBnRWZpTWRlTW9k dWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQm9vdERpc2NvdmVyeVBvbGljeSAgIyMNCj4gPiA+IFBS T0RVQ0VTDQo+ID4gPiArDQo+ID4gPiArW0RlcGV4XQ0KPiA+ID4gKyAgZ0VmaUhpaURhdGFiYXNl UHJvdG9jb2xHdWlkIEFORCBnUGNkUHJvdG9jb2xHdWlkDQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRl TW9kdWxlUGtnL0luY2x1ZGUvR3VpZC9Cb290RGlzY292ZXJ5UG9saWN5LmgNCj4gPiA+IGIvTWRl TW9kdWxlUGtnL0luY2x1ZGUvR3VpZC9Cb290RGlzY292ZXJ5UG9saWN5LmgNCj4gPiA+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAwLi44ZWIwOTY4YTE2DQo+ID4g PiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cvSW5jbHVkZS9HdWlkL0Jv b3REaXNjb3ZlcnlQb2xpY3kuaA0KPiA+ID4gQEAgLTAsMCArMSwyMiBAQA0KPiA+ID4gKy8qKiBA ZmlsZQ0KPiA+ID4gKyAgRGVmaW5pdGlvbiBmb3Igc3RydWN0dXJlICYgZGVmaW5lcyBleHBvcnRl ZCBieSBCb290IERpc2NvdmVyeSBQb2xpY3kNCj4gPiA+ICtVSQ0KPiA+ID4gKw0KPiA+ID4gKyAg Q29weXJpZ2h0IChjKSAyMDIxLCBBUk0gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gIENv cHlyaWdodCAoYykNCj4gPiA+ICsgMjAyMSwgU2VtaWhhbGYgQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ID4gPiArDQo+ID4gPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiA+ID4gKw0KPiA+ID4gKyoqLw0KPiA+ID4gKw0KPiA+ID4gKyNpZm5kZWYg X0JPT1RfRElTQ09WRVJZX1BPTElDWV9VSV9MSUJfSF8gI2RlZmluZQ0KPiA+ID4gK19CT09UX0RJ U0NPVkVSWV9QT0xJQ1lfVUlfTElCX0hfDQo+ID4gPiArDQo+ID4gPiArI2RlZmluZSBCRFBfQ09O TkVDVF9NSU5JTUFMIDAgIC8qIERvIG5vdCBjb25uZWN0IGFueSBhZGRpdGlvbmFsDQo+ID4gPiBk ZXZpY2VzICovDQo+ID4gPiArI2RlZmluZSBCRFBfQ09OTkVDVF9ORVQgICAgIDENCj4gPiA+ICsj ZGVmaW5lIEJEUF9DT05ORUNUX0FMTCAgICAgMg0KPiA+ID4gKw0KPiA+ID4gKyNkZWZpbmUgQk9P VF9ESVNDT1ZFUllfUE9MSUNZX01HUl9GT1JNU0VUX0dVSUQgIHsgMHg1YjZmNzEwNywNCj4gPiA+ IDB4YmIzYywNCj4gPiA+ICsweDQ2NjAsIHsgMHg5MiwgMHhjZCwgMHg1NCwgMHgyNiwgMHg5MCwg MHgyOCwgMHgwYiwgMHhiZCB9IH0NCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIEJPT1RfRElTQ09W RVJZX1BPTElDWV9WQVIgTCJCb290RGlzY292ZXJ5UG9saWN5Ig0KPiA+ID4gKw0KPiA+ID4gKyNl bmRpZg0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4NCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9C b290RGlzY292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVVpTGkNCj4gPiA+IGIu Yw0KPiA+ID4NCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9Cb290RGlzY292ZXJ5UG9saWN5VWlM aWIvQm9vdERpc2NvdmVyeVBvbGljeVVpTGkNCj4gPiA+IGIuYw0KPiA+ID4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAuLjY4MTRkMGJiOGYNCj4gPiA+IC0tLSAv ZGV2L251bGwNCj4gPiA+ICsrKw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9Cb290RGlz Y292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVUNCj4gPiA+ICsrKyBpTGliLmMN Cj4gPiA+IEBAIC0wLDAgKzEsMTYwIEBADQo+ID4gPiArLyoqIEBmaWxlDQo+ID4gPiArICBCb290 IERpc2NvdmVyeSBQb2xpY3kgVUkgZm9yIEJvb3QgTWFpbnRlbmFuY2UgbWVudS4NCj4gPiA+ICsN Cj4gPiA+ICsgIENvcHlyaWdodCAoYykgMjAyMSwgQVJNIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+ICBDb3B5cmlnaHQgKGMpDQo+ID4gPiArIDIwMjEsIFNlbWloYWxmIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiA+ID4gKw0KPiA+ID4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICsNCj4gPiA+ ICsjaW5jbHVkZSA8R3VpZC9Cb290RGlzY292ZXJ5UG9saWN5Lmg+DQo+ID4gPiArI2luY2x1ZGUg PExpYnJhcnkvVWVmaURyaXZlckVudHJ5UG9pbnQuaD4gI2luY2x1ZGUNCj4gPiA+ICs8TGlicmFy eS9VZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9V ZWZpUnVudGltZVNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9C YXNlTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvRGV2aWNlUGF0aExpYi5oPg0KPiA+ ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJh cnkvSGlpTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvVWVmaUxpYi5oPg0KPiA+ID4g KyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4gPiA+ICsjaW5jbHVkZSA8SW5j bHVkZS9MaWJyYXJ5L1BjZExpYi5oPg0KPiA+ID4gKw0KPiA+ID4gKy8vLw0KPiA+ID4gKy8vLyBI SUkgc3BlY2lmaWMgVmVuZG9yIERldmljZSBQYXRoIGRlZmluaXRpb24uDQo+ID4gPiArLy8vDQo+ ID4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gKyAgVkVORE9SX0RFVklDRV9QQVRIICAgICAg ICAgICAgIFZlbmRvckRldmljZVBhdGg7DQo+ID4gPiArICBFRklfREVWSUNFX1BBVEhfUFJPVE9D T0wgICAgICAgRW5kOw0KPiA+ID4gK30gSElJX1ZFTkRPUl9ERVZJQ0VfUEFUSDsNCj4gPiA+ICsN Cj4gPiA+ICtleHRlcm4gdW5zaWduZWQgY2hhciBCb290RGlzY292ZXJ5UG9saWN5VWlMaWJWZnJC aW5bXTsNCj4gPiA+ICsNCj4gPiA+ICtFRklfSElJX0hBTkRMRSAgbUJQSGlpSGFuZGxlID0gTlVM TDsNCj4gPiA+ICtFRklfSEFORExFICAgICAgbUJQRHJpdmVySGFuZGxlID0gTlVMTDsNCj4gPiA+ ICsNCj4gPiA+ICtTVEFUSUMgSElJX1ZFTkRPUl9ERVZJQ0VfUEFUSCBtVmVuZG9yRGV2aWNlUGF0 aCA9IHsNCj4gPiA+ICsgIHsNCj4gPiA+ICsgICAgew0KPiA+ID4gKyAgICAgIEhBUkRXQVJFX0RF VklDRV9QQVRILA0KPiA+ID4gKyAgICAgIEhXX1ZFTkRPUl9EUCwNCj4gPiA+ICsgICAgICB7DQo+ ID4gPiArICAgICAgICAoVUlOVDgpKHNpemVvZiAoVkVORE9SX0RFVklDRV9QQVRIKSksDQo+ID4g PiArICAgICAgICAoVUlOVDgpKChzaXplb2YgKFZFTkRPUl9ERVZJQ0VfUEFUSCkpID4+IDgpDQo+ ID4gPiArICAgICAgfQ0KPiA+ID4gKyAgICB9LA0KPiA+ID4gKyAgICBCT09UX0RJU0NPVkVSWV9Q T0xJQ1lfTUdSX0ZPUk1TRVRfR1VJRA0KPiA+ID4gKyAgfSwNCj4gPiA+ICsgIHsNCj4gPiA+ICsg ICAgRU5EX0RFVklDRV9QQVRIX1RZUEUsDQo+ID4gPiArICAgIEVORF9FTlRJUkVfREVWSUNFX1BB VEhfU1VCVFlQRSwNCj4gPiA+ICsgICAgew0KPiA+ID4gKyAgICAgIChVSU5UOCkoRU5EX0RFVklD RV9QQVRIX0xFTkdUSCksDQo+ID4gPiArICAgICAgKFVJTlQ4KSgoRU5EX0RFVklDRV9QQVRIX0xF TkdUSCkgPj4gOCkNCj4gPiA+ICsgICAgfQ0KPiA+ID4gKyAgfQ0KPiA+ID4gK307DQo+ID4gPiAr DQo+ID4gPiArLyoqDQo+ID4gPiArDQo+ID4gPiArICBJbml0aWFsaXplIEJvb3QgTWFpbnRlbmFu Y2UgTWVudSBsaWJyYXJ5Lg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtIEltYWdlSGFuZGxlICAg ICBUaGUgaW1hZ2UgaGFuZGxlLg0KPiA+ID4gKyAgQHBhcmFtIFN5c3RlbVRhYmxlICAgICBUaGUg c3lzdGVtIHRhYmxlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgIElu c3RhbGwgQm9vdCBtYW5hZ2VyIG1lbnUgc3VjY2Vzcy4NCj4gPiA+ICsgIEByZXR2YWwgIE90aGVy ICAgICAgICBSZXR1cm4gZXJyb3Igc3RhdHVzLmdCUERpc3BsYXlMaWJHdWlkDQo+ID4gPiArDQo+ ID4gPiArKiovDQo+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4gK0Jvb3RE aXNjb3ZlcnlQb2xpY3lVaUxpYkNvbnN0cnVjdG9yICgNCj4gPiA+ICsgIElOIEVGSV9IQU5ETEUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW1hZ2VIYW5kbGUsDQo+ID4gPiArICBJTiBFRklf U1lTVEVNX1RBQkxFICAgICAgICAgICAgICAgICAgICAgICpTeXN0ZW1UYWJsZQ0KPiA+ID4gKyAg KQ0KPiA+ID4gK3sNCj4gPiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgU3RhdHVzOw0K PiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTaXplOw0KPiA+ID4gKyAgVUlOVDMy ICAgICAgICAgICAgICAgICAgICBCb290RGlzY292ZXJ5UG9saWN5Ow0KPiA+ID4gKw0KPiA+ID4g KyAgU2l6ZSA9IHNpemVvZiAoVUlOVDMyKTsNCj4gPiA+ICsgIFN0YXR1cyA9IGdSVC0+R2V0VmFy aWFibGUgKA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgIEJPT1RfRElTQ09WRVJZX1BPTElDWV9W QVIsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgJmdCb290RGlzY292ZXJ5UG9saWN5TWdyRm9y bXNldEd1aWQsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAmU2l6ZSwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAmQm9vdERpc2NvdmVy eVBvbGljeQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiArICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQo+ID4gPiArICAgIFN0YXR1cyA9IFBjZFNldDMyUyAoUGNkQm9vdERp c2NvdmVyeVBvbGljeSwgUGNkR2V0MzINCj4gPiA+IChQY2RCb290RGlzY292ZXJ5UG9saWN5KSk7 DQo+ID4gPiArICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4gPiArICB9DQo+ID4N Cj4gPiBJIGRvbid0IHVuZGVyc3RhbmQgdGhlIGFib3ZlIGNoZWNrLiBTZWVtcyB0aGUgdmFsdWUg b2YgdGhlIHZhcmlhYmxlIGlzIG5vdCB1c2VkDQo+IGFuZCB0aGUgUGNkIHZhbHVlIGlzIG5vdCBj aGFuZ2VkLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IFpoaWNoYW8NCj4gPg0KPiA+ID4gKw0KPiA+ ID4gKyAgU3RhdHVzID0gZ0JTLT5JbnN0YWxsTXVsdGlwbGVQcm90b2NvbEludGVyZmFjZXMgKA0K PiA+ID4gKyAgICAgICAgICAgICAgICAgICZtQlBEcml2ZXJIYW5kbGUsDQo+ID4gPiArICAgICAg ICAgICAgICAgICAgJmdFZmlEZXZpY2VQYXRoUHJvdG9jb2xHdWlkLA0KPiA+ID4gKyAgICAgICAg ICAgICAgICAgICZtVmVuZG9yRGV2aWNlUGF0aCwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICBO VUxMDQo+ID4gPiArICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+ICsgIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCj4gPiA+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ICsgIH0NCj4gPiA+ ICsNCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyBQdWJsaXNoIG91ciBISUkgZGF0YQ0KPiA+ID4g KyAgLy8NCj4gPiA+ICsgIG1CUEhpaUhhbmRsZSA9IEhpaUFkZFBhY2thZ2VzICgNCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgJmdCb290RGlzY292ZXJ5UG9saWN5TWdyRm9ybXNldEd1aWQsDQo+ ID4gPiArICAgICAgICAgICAgICAgICAgIG1CUERyaXZlckhhbmRsZSwNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgQm9vdERpc2NvdmVyeVBvbGljeVVpTGliVmZyQmluLA0KPiA+ID4gKyAgICAg ICAgICAgICAgICAgICBCb290RGlzY292ZXJ5UG9saWN5VWlMaWJTdHJpbmdzLA0KPiA+ID4gKyAg ICAgICAgICAgICAgICAgICBOVUxMDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICk7DQo+ID4g PiArICBpZiAobUJQSGlpSGFuZGxlID09IE5VTEwpIHsNCj4gPiA+ICsgICAgZ0JTLT5Vbmluc3Rh bGxNdWx0aXBsZVByb3RvY29sSW50ZXJmYWNlcyAoDQo+ID4gPiArICAgICAgICAgICBtQlBEcml2 ZXJIYW5kbGUsDQo+ID4gPiArICAgICAgICAgICAmZ0VmaURldmljZVBhdGhQcm90b2NvbEd1aWQs DQo+ID4gPiArICAgICAgICAgICAmbVZlbmRvckRldmljZVBhdGgsDQo+ID4gPiArICAgICAgICAg ICBOVUxMDQo+ID4gPiArICAgICAgICAgICApOw0KPiA+ID4gKw0KPiA+ID4gKyAgICByZXR1cm4g RUZJX09VVF9PRl9SRVNPVVJDRVM7DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICByZXR1 cm4gRUZJX1NVQ0NFU1M7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAg RGVzdHJ1Y3RvciBvZiBCb290IE1haW50ZW5hbmNlIG1lbnUgbGlicmFyeS4NCj4gPiA+ICsNCj4g PiA+ICsgIEBwYXJhbSAgSW1hZ2VIYW5kbGUgICBUaGUgZmlybXdhcmUgYWxsb2NhdGVkIGhhbmRs ZSBmb3IgdGhlIEVGSSBpbWFnZS4NCj4gPiA+ICsgIEBwYXJhbSAgU3lzdGVtVGFibGUgICBBIHBv aW50ZXIgdG8gdGhlIEVGSSBTeXN0ZW0gVGFibGUuDQo+ID4gPiArDQo+ID4gPiArICBAcmV0dmFs IEVGSV9TVUNDRVNTICAgVGhlIGRlc3RydWN0b3IgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4NCj4g PiA+ICsgIEByZXR2YWwgT3RoZXIgdmFsdWUgICBUaGUgZGVzdHJ1Y3RvciBkaWQgbm90IGNvbXBs ZXRlIHN1Y2Nlc3NmdWxseS4NCj4gPiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICtFRklfU1RBVFVT DQo+ID4gPiArRUZJQVBJDQo+ID4gPiArQm9vdERpc2NvdmVyeVBvbGljeVVpTGliRGVzdHJ1Y3Rv ciAoDQo+ID4gPiArICBJTiBFRklfSEFORExFICAgICAgICBJbWFnZUhhbmRsZSwNCj4gPiA+ICsg IElOIEVGSV9TWVNURU1fVEFCTEUgICpTeXN0ZW1UYWJsZQ0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sN Cj4gPiA+ICsNCj4gPiA+ICsgIGlmIChtQlBEcml2ZXJIYW5kbGUgIT0gTlVMTCkgew0KPiA+ID4g KyAgICBnQlMtPlVuaW5zdGFsbFByb3RvY29sSW50ZXJmYWNlICgNCj4gPiA+ICsgICAgICAgICAg IG1CUERyaXZlckhhbmRsZSwNCj4gPiA+ICsgICAgICAgICAgICZnRWZpRGV2aWNlUGF0aFByb3Rv Y29sR3VpZCwNCj4gPiA+ICsgICAgICAgICAgICZtVmVuZG9yRGV2aWNlUGF0aA0KPiA+ID4gKyAg ICAgICAgICAgKTsNCj4gPiA+ICsgICAgbUJQRHJpdmVySGFuZGxlID0gTlVMTDsNCj4gPiA+ICsg IH0NCj4gPiA+ICsNCj4gPiA+ICsgIGlmIChtQlBIaWlIYW5kbGUgIT0gTlVMTCkgew0KPiA+ID4g KyAgICBIaWlSZW1vdmVQYWNrYWdlcyAobUJQSGlpSGFuZGxlKTsNCj4gPiA+ICsgICAgbUJQSGlp SGFuZGxlID0gTlVMTDsNCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICsgIHJldHVybiBFRklf U1VDQ0VTUzsNCj4gPiA+ICt9DQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPg0KPiBhL01kZU1vZHVs ZVBrZy9MaWJyYXJ5L0Jvb3REaXNjb3ZlcnlQb2xpY3lVaUxpYi9Cb290RGlzY292ZXJ5UG9saWN5 VWlMaQ0KPiA+ID4gYi51bmkNCj4gPiA+DQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvQm9vdERp c2NvdmVyeVBvbGljeVVpTGliL0Jvb3REaXNjb3ZlcnlQb2xpY3lVaUxpDQo+ID4gPiBiLnVuaQ0K PiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAuLjg5MjMx YmMyZDcNCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKw0KPiA+ID4gYi9NZGVNb2R1bGVQ a2cvTGlicmFyeS9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVUN Cj4gPiA+ICsrKyBpTGliLnVuaQ0KPiA+ID4gQEAgLTAsMCArMSwxNiBAQA0KPiA+ID4gKy8vIC8q KiBAZmlsZQ0KPiA+ID4gKy8vIEJvb3QgRGlzY292ZXJ5IFBvbGljeSBVSSBtb2R1bGUuDQo+ID4g PiArLy8NCj4gPiA+ICsvLyBDb3B5cmlnaHQgKGMpIDIwMjEsIEFSTSBMdGQuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPiAvLyBDb3B5cmlnaHQNCj4gPiA+ICsoYykgMjAyMSwgU2VtaWhhbGYgQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+IC8vIC8vDQo+ID4gPiArU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgLy8gLy8gKiovDQo+ID4gPiArDQo+ID4gPiArDQo+ID4g PiArI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUDQo+ID4gPiArI2xhbmd1YWdlIGVuLVVTICJC b290IERpc2NvdmVyeSBQb2xpY3kgVUkgbW9kdWxlLiINCj4gPiA+ICsNCj4gPiA+ICsjc3RyaW5n IFNUUl9NT0RVTEVfREVTQ1JJUFRJT04NCj4gPiA+ICsjbGFuZ3VhZ2UgZW4tVVMgIkJvb3QgRGlz Y292ZXJ5IFBvbGljeSBVSSBtb2R1bGUuIg0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4NCj4gYS9N ZGVNb2R1bGVQa2cvTGlicmFyeS9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVy eVBvbGljeVVpTGkNCj4gPiA+IGJTdHJpbmdzLnVuaQ0KPiA+ID4NCj4gYi9NZGVNb2R1bGVQa2cv TGlicmFyeS9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVVpTGkN Cj4gPiA+IGJTdHJpbmdzLnVuaQ0KPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGlu ZGV4IDAwMDAwMDAwMDAuLjczNjAxMWM5YmINCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsr Kw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIv Qm9vdERpc2NvdmVyeVBvbGljeVUNCj4gPiA+ICsrKyBpTGliU3RyaW5ncy51bmkNCj4gPiA+IEBA IC0wLDAgKzEsMjkgQEANCj4gPiA+ICsvLyAqKysNCj4gPiA+ICsvLw0KPiA+ID4gKy8vICBDb3B5 cmlnaHQgKGMpIDIwMjEsIEFSTSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiAvLyAgQ29w eXJpZ2h0DQo+ID4gPiArKGMpIDIwMjEsIFNlbWloYWxmIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS PiAvLw0KPiA+ID4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 IC8vIC8vICBNb2R1bGUgTmFtZToNCj4gPiA+ICsvLw0KPiA+ID4gKy8vICAgQm9vdERpc2NvdmVy eVBvbGljeVVpTGliU3RyaW5ncy51bmkNCj4gPiA+ICsvLw0KPiA+ID4gKy8vICBBYnN0cmFjdDoN Cj4gPiA+ICsvLw0KPiA+ID4gKy8vICAgIFN0cmluZyBkZWZpbml0aW9ucyBmb3IgQm9vdCBEaXNj b3ZlcnkgUG9saWN5IFVJLg0KPiA+ID4gKy8vDQo+ID4gPiArLy8gLS0qLw0KPiA+ID4gKw0KPiA+ ID4gKy89Iw0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+ID4gKyNsYW5nZGVmIGVuLVVTICJFbmdsaXNo Ig0KPiA+ID4gKw0KPiA+ID4gKyNzdHJpbmcgU1RSX0ZPUk1fQkRQX01BSU5fVElUTEUgICAgICAg ICNsYW5ndWFnZSBlbi1VUyAgIkJvb3QNCj4gRGlzY292ZXJ5DQo+ID4gPiBQb2xpY3kiDQo+ID4g PiArDQo+ID4gPiArI3N0cmluZyBTVFJfRk9STV9CRFBfQ09OTl9NSU4gICAgICAgICAgI2xhbmd1 YWdlIGVuLVVTICAiTWluaW1hbCINCj4gPiA+ICsNCj4gPiA+ICsjc3RyaW5nIFNUUl9GT1JNX0JE UF9DT05OX05FVCAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgICJDb25uZWN0DQo+ID4gPiBOZXR3 b3JrIERldmljZXMiDQo+ID4gPiArDQo+ID4gPiArI3N0cmluZyBTVFJfRk9STV9CRFBfQ09OTl9B TEwgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICAiQ29ubmVjdCBBbGwNCj4gPiA+IERldmljZXMi DQo+ID4gPiArDQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPg0KPiBhL01kZU1vZHVsZVBrZy9MaWJy YXJ5L0Jvb3REaXNjb3ZlcnlQb2xpY3lVaUxpYi9Cb290RGlzY292ZXJ5UG9saWN5VWlMaQ0KPiA+ ID4gYlZmci5WZnINCj4gPiA+DQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvQm9vdERpc2NvdmVy eVBvbGljeVVpTGliL0Jvb3REaXNjb3ZlcnlQb2xpY3lVaUxpDQo+ID4gPiBiVmZyLlZmcg0KPiA+ ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAuLjBkZTg3ZWMz NGYNCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cv TGlicmFyeS9Cb290RGlzY292ZXJ5UG9saWN5VWlMaWIvQm9vdERpc2NvdmVyeVBvbGljeVUNCj4g PiA+ICsrKyBpTGliVmZyLlZmcg0KPiA+ID4gQEAgLTAsMCArMSw0NCBAQA0KPiA+ID4gKy8vLyoq IEBmaWxlDQo+ID4gPiArLy8NCj4gPiA+ICsvLyAgRm9ybXNldCBmb3IgQm9vdCBEaXNjb3Zlcnkg UG9saWN5IFVJIC8vIC8vICBDb3B5cmlnaHQgKGMpIDIwMjEsIEFSTQ0KPiA+ID4gK0x0ZC4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+IC8vICBDb3B5cmlnaHQgKGMpIDIwMjEsIFNlbWloYWxmIEFs bA0KPiA+ID4gK3JpZ2h0cyByZXNlcnZlZC48QlI+IC8vIC8vICBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjoNCj4gPiA+ICtCU0QtMi1DbGF1c2UtUGF0ZW50IC8vIC8vKiovDQo+ID4gPiArDQo+ID4g PiArI2luY2x1ZGUgPFVlZmkvVWVmaU11bHRpUGhhc2UuaD4NCj4gPiA+ICsjaW5jbHVkZSAiR3Vp ZC9Cb290RGlzY292ZXJ5UG9saWN5LmgiDQo+ID4gPiArI2luY2x1ZGUgPEd1aWQvSGlpQm9vdE1h aW50ZW5hbmNlRm9ybXNldC5oPg0KPiA+ID4gKw0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4g PiA+ICsgIFVJTlQzMiBCb290RGlzY292ZXJ5UG9saWN5Ow0KPiA+ID4gK30gQk9PVF9ESVNDT1ZF UllfUE9MSUNZX1ZBUlNUT1JFX0RBVEE7DQo+ID4gPiArDQo+ID4gPiArZm9ybXNldA0KPiA+ID4g KyAgZ3VpZCAgICAgID0gQk9PVF9ESVNDT1ZFUllfUE9MSUNZX01HUl9GT1JNU0VUX0dVSUQsDQo+ ID4gPiArICB0aXRsZSAgICAgPSBTVFJJTkdfVE9LRU4oU1RSX0ZPUk1fQkRQX01BSU5fVElUTEUp LA0KPiA+ID4gKyAgaGVscCAgICAgID0gU1RSSU5HX1RPS0VOKFNUUl9GT1JNX0JEUF9NQUlOX1RJ VExFKSwNCj4gPiA+ICsgIGNsYXNzZ3VpZCA9IEVGSV9JRlJfQk9PVF9NQUlOVEVOQU5DRV9HVUlE LA0KPiA+ID4gKw0KPiA+ID4gKyAgZWZpdmFyc3RvcmUgQk9PVF9ESVNDT1ZFUllfUE9MSUNZX1ZB UlNUT1JFX0RBVEEsDQo+ID4gPiArICAgIGF0dHJpYnV0ZSA9IEVGSV9WQVJJQUJMRV9CT09UU0VS VklDRV9BQ0NFU1MgfA0KPiA+ID4gRUZJX1ZBUklBQkxFX1JVTlRJTUVfQUNDRVNTIHwgRUZJX1ZB UklBQkxFX05PTl9WT0xBVElMRSwNCj4gPiA+ICsgICAgbmFtZSAgPSBCb290RGlzY292ZXJ5UG9s aWN5LA0KPiA+ID4gKyAgICBndWlkICA9IEJPT1RfRElTQ09WRVJZX1BPTElDWV9NR1JfRk9STVNF VF9HVUlEOw0KPiA+ID4gKw0KPiA+ID4gKyAgZm9ybSBmb3JtaWQgPSAweDAwMDEsDQo+ID4gPiAr ICAgIHRpdGxlICA9IFNUUklOR19UT0tFTihTVFJfRk9STV9CRFBfTUFJTl9USVRMRSk7DQo+ID4g PiArDQo+ID4gPiArICBvbmVvZiB2YXJpZCA9IEJvb3REaXNjb3ZlcnlQb2xpY3kuQm9vdERpc2Nv dmVyeVBvbGljeSwNCj4gPiA+ICsgICAgcHJvbXB0ICAgICAgPSBTVFJJTkdfVE9LRU4oU1RSX0ZP Uk1fQkRQX01BSU5fVElUTEUpLA0KPiA+ID4gKyAgICBoZWxwICAgICAgICA9IFNUUklOR19UT0tF TihTVFJfRk9STV9CRFBfTUFJTl9USVRMRSksDQo+ID4gPiArICAgIGZsYWdzICAgICAgID0gTlVN RVJJQ19TSVpFXzQgfCBJTlRFUkFDVElWRSB8IFJFU0VUX1JFUVVJUkVELA0KPiA+ID4gKyAgICBv cHRpb24gdGV4dCA9IFNUUklOR19UT0tFTihTVFJfRk9STV9CRFBfQ09OTl9NSU4pLCB2YWx1ZSA9 DQo+ID4gPiBCRFBfQ09OTkVDVF9NSU5JTUFMLCBmbGFncyA9IERFRkFVTFQ7DQo+ID4gPiArICAg IG9wdGlvbiB0ZXh0ID0gU1RSSU5HX1RPS0VOKFNUUl9GT1JNX0JEUF9DT05OX05FVCksIHZhbHVl ID0NCj4gPiA+IEJEUF9DT05ORUNUX05FVCwgZmxhZ3MgPSAwOw0KPiA+ID4gKyAgICBvcHRpb24g dGV4dCA9IFNUUklOR19UT0tFTihTVFJfRk9STV9CRFBfQ09OTl9BTEwpLCB2YWx1ZSA9DQo+ID4g PiArIEJEUF9DT05ORUNUX0FMTCwgZmxhZ3MgPSAwOyAgZW5kb25lb2Y7DQo+ID4gPiArDQo+ID4g PiArICBlbmRmb3JtOw0KPiA+ID4gK2VuZGZvcm1zZXQ7DQo+ID4gPiAtLQ0KPiA+ID4gMi4yNS4x DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiANCj4gPiA+DQo+ID4NCklNUE9SVEFOVCBOT1RJ Q0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFuZCBhbnkgYXR0YWNobWVudHMgYXJlIGNv bmZpZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmlsZWdlZC4gSWYgeW91IGFyZSBub3QgdGhl IGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5 IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRvIGFueSBvdGhlciBwZXJzb24sIHVz ZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9yIHN0b3JlIG9yIGNvcHkgdGhlIGluZm9ybWF0aW9uIGlu IGFueSBtZWRpdW0uIFRoYW5rIHlvdS4NCg==