From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D0F0C433B4 for ; Wed, 28 Apr 2021 07:59:24 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C508D613C5 for ; Wed, 28 Apr 2021 07:59:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C508D613C5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6C86E6EABE; Wed, 28 Apr 2021 07:59:21 +0000 (UTC) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2060b.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe5a::60b]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5C8446EAB7; Wed, 28 Apr 2021 07:59:19 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E+adBs4tmyHGpLjWAjhrcx4w5pXqqn+BG6GFmNvkGU93iPZBzZl+PqKeXuRio0RjQ0Lee9MFQnt5ln+3ECaFtGweAZcNQ+xCxlkBStLfx7EbFRCvHvYIByFT3mQVMCNmxzZI8R+u3BVE6FR6PicrrsVbd+9X/oEmdUQLVq3u8a4YJEPe6K83rN/X+UvXgb44jBHYA3mNBktieKAi9SUQeYfVjc7WcAnNdNELBDdeVIvAtEca+xvbwiKxs2dNSR//mnqVfiey+7z/M8g3U7gU6MnwTH6TjeuIA7lqdtc/V9OUade8/mRuWW8ZW7RSS4NXpDB+RT1dnPGOLWIDKWaBWA== 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=xLcUqjiDhl65/Q/+g6zhG8BUnOFJQZxcvcW/LYVG+cU=; b=bcDMSR1fSetiXQD4sOFouTRXzwk9aOBbvmCyP49+sywNx9XA9tVDgbvexCDQPXXUJoB6brng2H8f+j9s8vH9sJS0vzZ7AEMixMTvI6e2o77ma+ex+mGSRQoc+SFOdCyxt4OU0mW4GJ7aEobAF3OlIaHwx5FtwmNG3SmplfWojU1ZJfuLAksJzsbomxNJD7++js0pJx4aJr+6MvJS6DocLopp1ka+UUhIQuqjpYIYFMNArisr/vKqXHMNthQYQzXBMdpHwY3V6qzTW+UaYPh0AqQs7zzAGl86aFPlDQhGmoZ2MESI2agAjonZbDpNC+OMqJZDKyI/3PeI686YfIbxYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xLcUqjiDhl65/Q/+g6zhG8BUnOFJQZxcvcW/LYVG+cU=; b=hsOheRYEf5TbJldPEu2yB8LCGJYYug0QifmFuGPlhaSncW6lz1VliROZ+1OvYKGayqMwMas7ZxsAsSOBXFpx6DoINauKoxR9RAHVcGjAH2fiQJlcy5uTE0L2GIdzQqMMLusQE6jTzl/Y4c2/fQJ0A7EZdk1kA+7fcpjWA02zS5Y= Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=amd.com; Received: from BYAPR12MB3126.namprd12.prod.outlook.com (2603:10b6:a03:df::28) by BY5PR12MB3793.namprd12.prod.outlook.com (2603:10b6:a03:1ad::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Wed, 28 Apr 2021 07:54:41 +0000 Received: from BYAPR12MB3126.namprd12.prod.outlook.com ([fe80::1855:9722:849:a7e0]) by BYAPR12MB3126.namprd12.prod.outlook.com ([fe80::1855:9722:849:a7e0%7]) with mapi id 15.20.4065.027; Wed, 28 Apr 2021 07:54:41 +0000 Message-ID: Date: Wed, 28 Apr 2021 13:24:27 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 Thunderbird/88.0 Subject: Re: [RFC PATCH 0/3] A drm_plane API to support HDR planes Content-Language: en-US To: Pekka Paalanen , Harry Wentland References: <20210426173852.484368-1-harry.wentland@amd.com> <20210427175005.5b92badc@eldfell> From: Shashank Sharma In-Reply-To: <20210427175005.5b92badc@eldfell> X-Originating-IP: [106.51.20.251] X-ClientProxiedBy: MA1PR01CA0152.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:71::22) To BYAPR12MB3126.namprd12.prod.outlook.com (2603:10b6:a03:df::28) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.68.111] (106.51.20.251) by MA1PR01CA0152.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:71::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.25 via Frontend Transport; Wed, 28 Apr 2021 07:54:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bac1b610-9a3b-415d-933a-08d90a1ae0c4 X-MS-TrafficTypeDiagnostic: BY5PR12MB3793: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KVlIsigNzh4U6hjdJvKP4vwYrhd91YiM0QpAVL9RtDjyXVmL/Q/57KKtHdmKNS1uH4Qyy+louP7LzeSZogO1378vF28PtRjYg7LF8gjwMJiFu+R1ZgrJxNaOiVTDQRs+nAj32c2/+BMPKI8ocnzUiT7uBvkYIRNFeJFoCh0Ad8l+ydR49DdpICwDhcYj0KcbsxLwUGDM4YL14m+qCqM5ifrur4geIB8gI4piz6PCXqcDLuUGrtlTDRznOnGClLGS2bVgtpNacz6CCRxBk1syJxf2k9tlHSGzxs6AoLxzYl77l7IerW7z/HwjEZqEqFaXVWm75KEXYU34VyANIUfD7Pq2ERkDdNE79XYUnc0eS02t8Vxk/BN5ObU5qYH0Dz0/vCA/0917b54w3HyNCL1eP+D7sDC8/NkIXUo2bQn5v7GHLoxTTA7QNdNEqj6tfRBXZsc3eb1KM6I+ttMr9iadl5Aa9m+Bhz4BCfr3LIEzubhe242NMWsQk9mtV0UQyzsP0N4uELUitqzCF9ZftRjT0r7hpGNar6j6sN0VN14/Ry+aIaBaRAFD0c4yLzIVEJsDNM3yaNJsrvt6nHWp4IbtaqSCNi4GIQwbSac8QQjpp/S8wCEOx9Gfq98uxkuPPIjbx4reMTh1Jo2aZSv3ejOvG2YvZTMXV15aube1ESEvT+rwAek8ES0GxtolHK3HhvRa0tsyRr1iVKAPeuj95Y6fvmrENUHQIwNxNRiiz84tqwAhYY2FZEHF7NpJCRIp+e5jGCXiOcVX9eb2Bg7bDr0XhYKLuOPG14tGORTTInu5HXk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR12MB3126.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(346002)(136003)(396003)(39860400002)(376002)(30864003)(66476007)(66556008)(36756003)(5660300002)(55236004)(4326008)(186003)(956004)(66946007)(86362001)(478600001)(31696002)(6486002)(31686004)(6636002)(16526019)(8936002)(110136005)(1006002)(6666004)(44832011)(8676002)(2616005)(2906002)(16576012)(53546011)(38100700002)(38350700002)(52116002)(316002)(26005)(966005)(83380400001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?TGdsTGprOXFUUDZhZDNMR1NVNzhkeEw1OHBCZ1h0NXFFN3Z0bFFFUEhxQ04r?= =?utf-8?B?VHUxYStTMUJvNzVUZUJwS3ZWWUR1bjllUTRhZmdkVjBVUmFhOXlpQmQwanFX?= =?utf-8?B?RWtEZXRrWHc2bmR5NER5c1BVU25xdENxMk1Hek5hUGlrd213aCsrejF1THRq?= =?utf-8?B?bVZvb3VTWTJraElrN1F0ZjFWQzJUVnhmYllaZnVmdmdQVGlSZGo5Z2N1RFdu?= =?utf-8?B?Unp3OVAzdUhwMTJVYVNJUmZ6K1hkLzJ5YjY0MlN6VVlMWUEyaEwwU3FBV3A4?= =?utf-8?B?bEJPME5hT1hnWkJBNExRUTFtaWExRUxwVytOOXh3YVBSdG9ma245ZXF1cmVo?= =?utf-8?B?cGpnMGVWL2d2bnBLVEVlaTQyUGNkamNtSC9kSis3N0ZBRXhKRGc3anA4bzdY?= =?utf-8?B?akZBOWwzYVF5OFZ4K3FsVGFQWkJpc1U3QlFoY0N4anpqK2dkVUM0WU5tcmVJ?= =?utf-8?B?Y05sbW5HajJLVnhad3ZlV05JR2dkS1pxTVViS3dEc0d5TEtONG8vbDh2SHI5?= =?utf-8?B?Sjc0QlZwZ1d6MjBsejNGMGxUOVlsMFpzTjdlSlhjaUpyM2cvUlJhZDAveDNk?= =?utf-8?B?KysvdlovOW5jcFZ1L3VBeFZqdDZEeTBKNjB1V3VYRnRaOElvZUN3MDhPZEFv?= =?utf-8?B?Z1FSR1VsUnpQWDRIT2U2aHZVNmNkcGFwQ1hGd0NwN3RJeFhDTlQzMFk2ZklE?= =?utf-8?B?dGZySkg0REJoOHN4c2phUVJjVzlXU0NyVzRlSTZCeXRMZS8xQlBUK04yaFpy?= =?utf-8?B?VGJYM0trL0wvOHdjbjZvdnZlYTh1dTRrNkluRkxYOTJiYjNNaGJtSzUwWTRQ?= =?utf-8?B?ZkpNUFY1VmxBWWF1dmIwa0NMQmxkbzJmTm5ZQlpyQVlLMnRCUTUvdDZTQ1RI?= =?utf-8?B?eDB2eklGcXFvelpWaGtXZmVhV1RROGtlNWE5cmsydXNDMDUwTFBid2xpZGlV?= =?utf-8?B?enBRUzRXUXBSekhqY1R3TENBSUY2d2FmK2NEQjZWTE5LaUh2RlBEdTQ2bUlW?= =?utf-8?B?SURleXZPaVgrUjloQUlEeW45ekhLSHVDWVQza0dUOGg2TXR3NXd2ZFB3M1ZG?= =?utf-8?B?N1hETnVicGx5Z3NlTUh0Ymtuc2Z6VC9YdDVyNk5PV3FCVHlwZEtKa2hTejFU?= =?utf-8?B?bEVRdzVxQkVSQS9UVHJpaElIUWFmWVRaekUvcDFNNmlEQ2FvRUhGOUNzMncv?= =?utf-8?B?QndTNWZPWlJMYThzSVBhK1dpUkpWcVFQSHNoTG45cGJMWVYvSk1GWSt5MER1?= =?utf-8?B?LzNkb0pKZG5kcEhZOUREQjBQaW01NzIvMWFUdFlCYXZzQnNTUE5oSkhVQjZR?= =?utf-8?B?QU9zK2FwdUtiQ1pXRFZKWG9vWXBpR21YdEM5cnZ4eHFTcG16WDFpcEZMc1lB?= =?utf-8?B?QjlIQmR0S25nK0p6d0JHOU5KcEFqTng2cnN6bjZNS3k1WlZlZS9oNm9pWEIx?= =?utf-8?B?eG1ic0twMk9Ya2d4ZVZwNmJaLzZ1UmlkQTM4S3pZS3J4a1JURlZLcUN1WTFy?= =?utf-8?B?bjN5cjFvNk1yZHRnTEt4b0hvczFCbkR4SS9YRFp3RVlBdURSeFRtVFlHTEd3?= =?utf-8?B?azNCKzkzc2MwbW81NWhiS3RiTlUzSnRkbElBYlVOZ2VQU08rdDYvTEsvNUZ6?= =?utf-8?B?OVBaYmMrR1c5SnlzcmtKZzVhVytQbjdFTmVjUnl2YVoxZzdpRXFxUEJkeTRL?= =?utf-8?B?T0Fpd2NROGVaVlA3UDFkdVoxcEhaQjVjbmppenpqL1pZTEFBS1lBZXpJY2ls?= =?utf-8?Q?48SW75+PIvBsW+8zru7EavcKYyUBmTseXnU6Hmr?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: bac1b610-9a3b-415d-933a-08d90a1ae0c4 X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB3126.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2021 07:54:41.1249 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /3WrtXWVAOpkTpmzWP9e3U4Txnzyyiad2eENXSLeX9SM66YpGXFPRq7nobkYtOIUzc91BKVObcrGHG32LoBXnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB3793 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Deepak.Sharma@amd.com, Krunoslav.Kovac@amd.com, mcasas@google.com, dri-devel@lists.freedesktop.org, Shirish.S@amd.com, sebastian@sebastianwick.net, hersenxs.wu@amd.com, amd-gfx@lists.freedesktop.org, laurentiu.palcu@oss.nxp.com, Bhawanpreet.Lakha@amd.com, Nicholas.Kazlauskas@amd.com, Vitaly.Prosyak@amd.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGVsbG8gSGFycnksCgpNYW55IG9mIHVzIGluIHRoZSBtYWlsIGNoYWluIGhhdmUgZGlzY3Vzc2Vk IHRoaXMgYmVmb3JlLCBvbiB3aGF0IGlzIHRoZSByaWdodCB3YXkgdG8gYmxlbmQgYW5kIHRvbmUg bWFwIGEgU0RSIGFuZCBhIEhEUiBidWZmZXIgZnJvbSBzYW1lL2RpZmZlcmVudCBjb2xvciBzcGFj ZXMsIGFuZCB3aGF0IGtpbmQgb2YgRFJNIHBsYW5lIHByb3BlcnRpZXMgd2lsbCBiZSBuZWVkZWQu CgpBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBwcmV2aW91cyBjb21tZW50cywgdGhhdCB0aGUgbWFq b3JpdHkgb2YgdGhlIGRlY2lzaW9uIG1ha2luZyB3aWxsIGhhcHBlbiBpbiB0aGUgQ29tcG9zaXRv ciwgYXMgaXQncyB0aGUgb25seSBTVyB1bml0LCB3aGljaCBoYXMgdGhlIG92ZXJhbGwgcGljdHVy ZSBjbGVhci4KClJlZmVyZW5jZTogKGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hp dmVzL3dheWxhbmQtZGV2ZWwvMjAxOS1KYW51YXJ5LzAzOTgwOC5odG1sICkKCklmIHdlIHNlZSBh IHN5c3RlbWF0aWMgYXBwcm9hY2ggb2YgaG93IGRvIHdlIG1ha2Ugc3VjaCBibGVuZGluZyBwb2xp Y3ksIGl0IHdpbGwgbG9vayBsaWtlOgoKCi0gQ29tcG9zaXRvciBuZWVkcyB0byB1bmRlcnN0YW5k IHRoZSBmb2xsb3dpbmcgdmFsdWVzIG9mIGVhY2ggb2YgdGhlIGJ1ZmZlcjoKCsKgwqDCoCAtIENv bG9yIHNwYWNlIG9yIEdhbXV0OiBCVDIwMjAvU1JHQi9EQ0ktUDMvQlQ3MDkvQlQ2MDEgZXRjCgrC oMKgwqAgLSBDb2xvciBmb3JtYXQgKFJHQi9ZQ0JDUikgYW5kIHN1YnNhbXBsaW5nICg0NDQvNDIy LzQyMCkKCsKgwqDCoCAtIFRvbmUgKFNEUi9IRFJfQS9IRFJfQikKCgotIFRoZW4gdGhlIENvbXBv c2l0b3IgbmVlZHMgdG8gdW5kZXJzdGFuZCB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBvdXRwdXQg ZGlzcGxheSwgYXMgdGhpcyB3aWxsIGJlIGEgY2xhbXBpbmcgdmFsdWUKCsKgwqDCoCAtIE91dHB1 dCBHYW11dCBzdXBwb3J0IChCVDIwMjAvU1JHQi9EQ0lQMykKCsKgwqDCoCAtIE91dHB1dCBtYXgg THVtaW5hbmNlIG9mIHRoZSBtb25pdG9yIGluIE5pdHMgKGV2ZW4gaW4gY2FzZSBvZiBIRFIgY29u dGVudCB0byBIRFIgZGlzcGxheSkKCsKgwqAKCkJhc2VkIG9mIGFsbCB0aGlzIGluZm9ybWF0aW9u IGFib3ZlLCB0aGUgY29tcG9zaXRvciBuZWVkcyB0byBzZXQgYSBibGVuZGluZyB0YXJnZXQsIHdo aWNoIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmc6CgrCoMKgwqAgLSBPdXRwdXQgQ29sb3JzcGFjZSBv ZiB0aGUgYmxlbmRlZCBvdXRwdXQ6IHNheSBCVDIwMjAKCsKgwqDCoCAtIE91dHB1dCBMdW1pbmFu Y2Ugb2YgdGhlIGJsZW5kZWQgb3V0cHV0OiBNYXRjaCBjb250ZW50LCBpZiBtb25pdG9yIGNhbiBz dXBwb3J0IGl0CgrCoMKgwqAgLSBPdXRwdXQgQ29sb3IgZm9ybWF0IG9mIHRoZSBibGVuZGVkIG91 dHB1dDogU2F5IFlDQkNSNDoyOjAKCgpMZXQncyBhc3N1bWUgY29tcG9zaXRvciBwcmVwYXJlcyBh IGJsZW5kaW5nIHBvbGljeSB3aXRoIG91dHB1dCBhczoKCsKgwqDCoCAtIE91dHB1dCBMdW1pbmFu Y2U6IEhEUiA1MDAgTml0cwoKwqDCoMKgIC0gT3V0cHV0IGNvbG9yIHNwYWNlOiBCVDIwMjAKCsKg wqDCoCAtIE91dHB1dCBjb2xvciBmb3JtYXQ6IFJHQjg4OAoKwqDCoMKgIC0gT3V0cHV0IGN1cnZl OiBTVDIwODQKCsKgwqAKCkFzc3VtaW5nIHRoZXNlIGRldGFpbHMsIEEgY29tcG9zaXRvciB3aWxs IGxvb2sgZm9yIERSTSBjb2xvciBwcm9wZXJ0aWVzIGxpa2UgdGhlc2U6CgoxLiBEZWdhbW1hIHBs YW5lIHByb3BlcnR5IDogVG8gbWFrZSBidWZmZXJzIGxpbmVhciBmb3IgR2FtdXQgbWFwcGluZwoK Mi4gR2FtdXQgbWFwcGluZyBwbGFuZSBwcm9wZXJ0eTrCoCBUbyBnYW11dCBtYXAgU1JHQiBidWZm ZXIgdG8gQlQyMDIwIGNvbG9yc3BhY2UKCjMuIENvbG9yIHNwYWNlIGNvbnZlcnNpb24gcGxhbmUg cHJvcGVydHk6IFRvIGNvbnZlcnQgZnJvbSBZQ0JDUi0+UkdCCgo0LiBUb25lIG1hcHBpbmcgcGxh bmUgcHJvcGVydHk6IFRvIHRvbmUgbWFwIFNEUiBidWZmZXIgUzJIIGFuZCBIRFIgYnVmZmVyIEgy SAoKNS4gR2FtbWEgcGxhbmUvQ1JUQyBwcm9wZXJ0eTogdG8gcmUtYXBwbHkgdGhlIG91dHB1dCBT VDIwODQgY3VydmUKCgpXZSB3aWxsIGFsc28gbmVlZCBjb25uZWN0b3IvQ1JUQyBwcm9wZXJ0aWVz IHRvIHNldCBBVkkgaW5mby1mcmFtZXMgYWNjb3JkaW5nbHkuCgpBIGhpZ2ggbGV2ZWwgYmxvY2sg ZGlhZ3JhbSBmb3IgYmxlbmRpbmcgb24gYSBnZW5lcmljIEhXIHNob3VsZCBsb29rIGxpa2UgdGhp czoKCi8qCsKgKsKgIFNEUiAyMDBOaXRz4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFNEUiAyMDAgTml0c8KgIOKUjOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCBTRFIgMjAwIOKUjOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkEhEUiA1MDDilIzi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgSERSIDUw MArCoCrCoMKgIEJUNzA5wqDCoMKgwqAg4pSCwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IOKUgiBCVDcwOcKgwqDCoMKgwqDCoMKgwqAg4pSCwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIOKUgiBCVDIwMjDCoCDilILCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIOKU gkJUMjAyMCDilILCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg4pSCIEJUMjAyMArCoCrC oMKgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWuiDilILCoMKgIERlZ2FtbWHCoMKgwqDCoMKg IOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWuiDilIIgR2FtdXQg TWFwcGluZ8KgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWuuKUgsKgIFRvbmUgbWFwcGlu Z8KgwqDCoCDilJzilIDilIDilIDilIDilIDilIDilrrilILCoCBHYW1tYcKgwqDCoMKgwqDCoMKg wqAg4pSCCsKgKsKgIFJHQjg4OMKgwqDCoMKgIOKUgsKgwqDCoMKgIDIuMsKgwqDCoMKgwqDCoMKg IOKUgiBSR0I4ODjCoMKgwqDCoMKgwqDCoCDilILCoCA3MDktPjIwMjDCoMKgwqDCoCDilIIgUkdC ODg4wqAg4pSCwqDCoMKgIFMySMKgwqDCoMKgwqDCoMKgwqDCoMKgIOKUglJHQjg4OCDilILCoCBT VDIwODTCoMKgwqDCoMKgwqDCoCDilIIgUkdCODg4CsKgKsKgIE5vbiBMaW5lYXIg4pSCwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIOKUgiBMaW5lYXLCoMKgwqDCoMKgwqDCoCDilILCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg4pSCIExpbmVhcsKgIOKUgsKgwqAgMjAwLT41MDDC oMKgwqDCoMKgwqAg4pSCTGluZWFyIOKUgsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDi lIIgU1QyMDg0CsKgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDilJTilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUmMKgwqDCoMKgwqDCoMKgwqAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYwqDCoMKgwqDCoMKgIOKUlOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmArCoCoKwqAqCsKgKgrCoCoKwqAqCsKg KgrCoCoKwqAqCsKgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDilIzilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSQwqDCoMKgwqDCoMKgwqDCoMKgwqAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQwqDCoMKgwqDCoMKgIOKUjOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkArCoCogSERSIDYwMCBOaXRz4pSC wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg4pSCSERSIDYwMCBOaXRzIOKUgsKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIOKUgkhEUjYwMMKgwqDCoMKgIOKUgsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIOKUgkhEUjUwMCDilILCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAg4pSCIEhEUjUwMArCoCrCoMKgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKW uiDilILCoCBEZWdhbW1hwqDCoMKgwqDCoMKgwqAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pa64pSCwqAgQ29sb3Igc3BhY2XCoMKgwqAg4pSc4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pa64pSCwqAgVG9uZSBtYXBwaW5nwqDCoCDilJzilIDilIDilIDilIDi lIDilIDilrrilILCoCBHYW1tYcKgwqDCoMKgwqDCoMKgwqAg4pSCCsKgKiBCVDIwMjDCoMKgwqDC oMKgIOKUgsKgIE9FVEYgU1QyMDg0wqDCoMKgIOKUgiBCVDIwMjDCoMKgwqDCoMKgIOKUgsKgIGNv bnZlcnNpb27CoMKgwqDCoCDilIJCVDIwMjDCoMKgwqDCoCDilILCoMKgIEgySMKgwqDCoMKgwqDC oMKgwqDCoMKgIOKUgkJUMjAyMCDilILCoCBTVDIwODTCoMKgwqDCoMKgwqDCoCDilIIgQlQyMDIw CsKgKiBZQ0JDUjQyMMKgwqDCoCDilILCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDi lIIgWUNCQ1I0MjDCoMKgwqAg4pSCIFlDQkNSLT5SR0LCoMKgwqDCoMKgIOKUglJHQjg4wqDCoMKg wqDCoCDilILCoMKgIDYwMC0+NTAwwqDCoMKgwqDCoCDilIJSR0I4ODgg4pSCwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIOKUgiBSR0I4ODgKwqAqIE5vbiBMaW5lYXLCoCDilJTilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggTGluZWFywqDC oMKgwqDCoCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilJhMaW5lYXLCoMKgwqDCoCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilJhMaW5lYXIg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIFNUMjA4NArCoCovCgoKSG9wZSB0aGlzIGhlbHBz IHRvIHJlZmluZSB0aGUgc2VyaWVzLgoKClJlZ2FyZHMKClNoYXNoYW5rCgpPbiAyNy8wNC8yMSAy MDoyMCwgUGVra2EgUGFhbGFuZW4gd3JvdGU6Cj4gT24gTW9uLCAyNiBBcHIgMjAyMSAxMzozODo0 OSAtMDQwMAo+IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50bGFuZEBhbWQuY29tPiB3cm90ZToK Pgo+PiAjIyBJbnRyb2R1Y3Rpb24KPj4KPj4gV2UgYXJlIGxvb2tpbmcgdG8gZW5hYmxlIEhEUiBz dXBwb3J0IGZvciBhIGNvdXBsZSBvZiBzaW5nbGUtcGxhbmUgYW5kCj4+IG11bHRpLXBsYW5lIHNj ZW5hcmlvcy4gVG8gZG8gdGhpcyBlZmZlY3RpdmVseSB3ZSByZWNvbW1lbmQgbmV3Cj4+IGludGVy ZmFjZXMgdG8gZHJtX3BsYW5lLiBCZWxvdyBJJ2xsIGdpdmUgYSBiaXQgb2YgYmFja2dyb3VuZCBv biBIRFIKPj4gYW5kIHdoeSB3ZSBwcm9wb3NlIHRoZXNlIGludGVyZmFjZXMuCj4+Cj4+Cj4+ICMj IERlZmluaW5nIGEgcGl4ZWwncyBsdW1pbmFuY2UKPj4KPj4gQ3VycmVudGx5IHRoZSBsdW1pbmFu Y2Ugc3BhY2Ugb2YgcGl4ZWxzIGluIGEgZnJhbWVidWZmZXIvcGxhbmUKPj4gcHJlc2VudGVkIHRv IHRoZSBkaXNwbGF5IGlzIG5vdCB3ZWxsIGRlZmluZWQuIEl0J3MgdXN1YWxseSBhc3N1bWVkIHRv Cj4+IGJlIGluIGEgMi4yIG9yIDIuNCBnYW1tYSBzcGFjZSBhbmQgaGFzIG5vIG1hcHBpbmcgdG8g YW4gYWJzb2x1dGUKPj4gbHVtaW5hbmNlIHZhbHVlIGJ1dCBpcyBpbnRlcnByZXRlZCBpbiByZWxh dGl2ZSB0ZXJtcy4KPj4KPj4gTHVtaW5hbmNlIGNhbiBiZSBtZWFzdXJlZCBhbmQgZGVzY3JpYmVk IGluIGFic29sdXRlIHRlcm1zIGFzIGNhbmRlbGEKPj4gcGVyIG1ldGVyIHNxdWFyZWQsIG9yIGNk L20yLCBvciBuaXRzLiBFdmVuIHRob3VnaCBhIHBpeGVsIHZhbHVlIGNhbgo+PiBiZSBtYXBwZWQg dG8gbHVtaW5hbmNlIGluIGEgbGluZWFyIGZhc2hpb24gdG8gZG8gc28gd2l0aG91dCBsb3Npbmcg YQo+PiBsb3Qgb2YgZGV0YWlsIHJlcXVpcmVzIDE2LWJwYyBjb2xvciBkZXB0aC4gVGhlIHJlYXNv biBmb3IgdGhpcyBpcwo+PiB0aGF0IGh1bWFuIHBlcmNlcHRpb24gY2FuIGRpc3Rpbmd1aXNoIHJv dWdobHkgYmV0d2VlbiBhIDAuNS0xJQo+PiBsdW1pbmFuY2UgZGVsdGEuIEEgbGluZWFyIHJlcHJl c2VudGF0aW9uIGlzIHN1Ym9wdGltYWwsIHdhc3RpbmcKPj4gcHJlY2lzaW9uIGluIHRoZSBoaWdo bGlnaHRzIGFuZCBsb3NpbmcgcHJlY2lzaW9uIGluIHRoZSBzaGFkb3dzLgo+Pgo+PiBBIGdhbW1h IGN1cnZlIGlzIGEgZGVjZW50IGFwcHJveGltYXRpb24gdG8gYSBodW1hbidzIHBlcmNlcHRpb24g b2YKPj4gbHVtaW5hbmNlLCBidXQgdGhlIFBRIChwZXJjZXB0dWFsIHF1YW50aXplcikgZnVuY3Rp b24gWzFdIGltcHJvdmVzIG9uCj4+IGl0LiBJdCBhbHNvIGRlZmluZXMgdGhlIGx1bWluYW5jZSB2 YWx1ZXMgaW4gYWJzb2x1dGUgdGVybXMsIHdpdGggdGhlCj4+IGhpZ2hlc3QgdmFsdWUgYmVpbmcg MTAsMDAwIG5pdHMgYW5kIHRoZSBsb3dlc3QgMC4wMDA1IG5pdHMuCj4+Cj4+IFVzaW5nIGEgY29u dGVudCB0aGF0J3MgZGVmaW5lZCBpbiBQUSBzcGFjZSB3ZSBjYW4gYXBwcm94aW1hdGUgdGhlCj4+ IHJlYWwgd29ybGQgaW4gYSBtdWNoIGJldHRlciB3YXkuCj4+Cj4+IEhlcmUgYXJlIHNvbWUgZXhh bXBsZXMgb2YgcmVhbC1saWZlIG9iamVjdHMgYW5kIHRoZWlyIGFwcHJveGltYXRlCj4+IGx1bWlu YW5jZSB2YWx1ZXM6Cj4+Cj4+IHwgT2JqZWN0ICAgICAgICAgICAgfCBMdW1pbmFuY2UgaW4gbml0 cyB8Cj4+IHwgLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLSB8Cj4+IHwgU3Vu ICAgICAgICAgICAgICAgfCAxLjYgbWlsbGlvbiAgICAgICB8Cj4+IHwgRmx1b3Jlc2NlbnQgbGln aHQgfCAxMCwwMDAgICAgICAgICAgICB8Cj4+IHwgSGlnaGxpZ2h0cyAgICAgICAgfCAxLDAwMCAt IHN1bmxpZ2h0ICB8Cj4+IHwgV2hpdGUgT2JqZWN0cyAgICAgfCAyNTAgLSAxLDAwMCAgICAgICB8 Cj4+IHwgVHlwaWNhbCBvYmplY3RzICAgfCAxIC0gMjUwICAgICAgICAgICB8Cj4+IHwgU2hhZG93 cyAgICAgICAgICAgfCAwLjAxIC0gMSAgICAgICAgICB8Cj4+IHwgVWx0cmEgQmxhY2tzICAgICAg fCAwIC0gMC4wMDA1ICAgICAgICB8Cj4+Cj4+Cj4+ICMjIERlc2NyaWJpbmcgdGhlIGx1bWluYW5j ZSBzcGFjZQo+Pgo+PiAqKldlIHByb3Bvc2UgYSBuZXcgZHJtX3BsYW5lIHByb3BlcnR5IHRvIGRl c2NyaWJlIHRoZSBFbGV0cm8tT3B0aWNhbAo+PiBUcmFuc2ZlciBGdW5jdGlvbiAoRU9URikgd2l0 aCB3aGljaCBpdHMgZnJhbWVidWZmZXIgd2FzIGNvbXBvc2VkLioqCj4+IEV4YW1wbGVzIG9mIEVP VEYgYXJlOgo+Pgo+PiB8IEVPVEYgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+PiB8IC0tLS0t LS0tLSB8Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAo+PiB8IEdhbW1hIDIuMiB8IGEgc2ltcGxlIDIuMiBn YW1tYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAo+PiB8IHNSR0IgICAgICB8IDIuNCBnYW1tYSB3aXRoIHNtYWxsIGluaXRpYWwgbGluZWFy IHNlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+PiB8IFBRIDIwODQgICB8 IFNNUFRFIFNUIDIwODQ7IHVzZWQgZm9yIEhEUiB2aWRlbyBhbmQgYWxsb3dzIGZvciB1cCB0byAx MCwwMDAgbml0IHN1cHBvcnQgfAo+PiB8IExpbmVhciAgICB8IExpbmVhciByZWxhdGlvbnNoaXAg YmV0d2VlbiBwaXhlbCB2YWx1ZSBhbmQgbHVtaW5hbmNlIHZhbHVlICAgICAgICAgICAgICAgfAo+ Pgo+IFRoZSBkZWZpbml0aW9ucyBhZ3JlZSB3aXRoIHdoYXQgSSBoYXZlIGxlYXJudCBzbyBmYXIu IEhvd2V2ZXIsIHdpdGgKPiB0aGVzZSBFT1RGIGRlZmluaXRpb25zLCBvbmx5IFBRIGRlZmluZXMg YWJzb2x1dGUgbHVtaW5hbmNlIHZhbHVlcwo+IHdoaWxlIHRoZSBvdGhlcnMgZG8gbm90LiBTbyB0 aGlzIGlzIG5vdCBlbm91Z2ggaW5mb3JtYXRpb24gdG8gYmxlbmQKPiBwbGFuZXMgdG9nZXRoZXIg aWYgdGhleSBkbyBub3QgYWxsIHVzZSB0aGUgc2FtZSBFT1RGIHdpdGggdGhlIHNhbWUKPiBkeW5h bWljIHJhbmdlLiBNb3JlIGJlbG93Lgo+Cj4KPj4gIyMgTWFzdGVyaW5nIEx1bWluYW5jZXMKPj4K Pj4gTm93IHdlIGFyZSBhYmxlIHRvIHVzZSB0aGUgUFEgMjA4NCBFT1RGIHRvIGRlZmluZSB0aGUg bHVtaW5hbmNlIG9mCj4+IHBpeGVscyBpbiBhYnNvbHV0ZSB0ZXJtcy4gVW5mb3J0dW5hdGVseSB3 ZSdyZSBhZ2FpbiBwcmVzZW50ZWQgd2l0aAo+PiBwaHlzaWNhbCBsaW1pdGF0aW9ucyBvZiB0aGUg ZGlzcGxheSB0ZWNobm9sb2dpZXMgb24gdGhlIG1hcmtldCB0b2RheS4KPj4gSGVyZSBhcmUgYSBm ZXcgZXhhbXBsZXMgb2YgbHVtaW5hbmNlIHJhbmdlcyBvZiBkaXNwbGF5cy4KPj4KPj4gfCBEaXNw bGF5ICAgICAgICAgICAgICAgICAgfCBMdW1pbmFuY2UgcmFuZ2UgaW4gbml0cyB8Cj4+IHwgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAo+PiB8IFR5 cGljYWwgUEMgZGlzcGxheSAgICAgICB8IDAuMyAtIDIwMCAgICAgICAgICAgICAgIHwKPj4gfCBF eGNlbGxlbnQgTENEIEhEVFYgICAgICAgfCAwLjMgLSA0MDAgICAgICAgICAgICAgICB8Cj4+IHwg SERSIExDRCB3LyBsb2NhbCBkaW1taW5nIHwgMC4wNSAtIDEsNTAwICAgICAgICAgICAgfAo+Pgo+ PiBTaW5jZSBubyBkaXNwbGF5IGNhbiBjdXJyZW50bHkgc2hvdyB0aGUgZnVsbCAwLjAwMDUgdG8g MTAsMDAwIG5pdHMKPj4gbHVtaW5hbmNlIHJhbmdlIHRoZSBkaXNwbGF5IHdpbGwgbmVlZCB0byB0 b25lbWFwIHRoZSBIRFIgY29udGVudCwgaS5lCj4+IHRvIGZpdCB0aGUgY29udGVudCB3aXRoaW4g YSBkaXNwbGF5J3MgY2FwYWJpbGl0aWVzLiBUbyBhc3Npc3Qgd2l0aAo+PiB0b25lbWFwcGluZyBI RFIgY29udGVudCBpcyB1c3VhbGx5IGFjY29tcGFuaWVkIHdpdGggYSBtZXRhZGF0YSB0aGF0Cj4+ IGRlc2NyaWJlcyAoYW1vbmcgb3RoZXIgdGhpbmdzKSB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBt YXN0ZXJpbmcKPj4gbHVtaW5hbmNlLCBpLmUuIHRoZSBtYXhpbXVtIGFuZCBtaW5pbXVtIGx1bWlu YW5jZSBvZiB0aGUgZGlzcGxheSB0aGF0Cj4+IHdhcyB1c2VkIHRvIG1hc3RlciB0aGUgSERSIGNv bnRlbnQuCj4+Cj4+IFRoZSBIRFIgbWV0YWRhdGEgaXMgY3VycmVudGx5IGRlZmluZWQgb24gdGhl IGRybV9jb25uZWN0b3IgdmlhIHRoZQo+PiBoZHJfb3V0cHV0X21ldGFkYXRhIGJsb2IgcHJvcGVy dHkuCj4+Cj4+IEl0IG1pZ2h0IGJlIHVzZWZ1bCB0byBkZWZpbmUgcGVyLXBsYW5lIGhkciBtZXRh ZGF0YSwgYXMgZGlmZmVyZW50Cj4+IHBsYW5lcyBtaWdodCBoYXZlIGJlZW4gbWFzdGVyZWQgZGlm ZmVyZW50bHkuCj4gSSBkb24ndCB0aGluayB0aGlzIHdvdWxkIGRpcmVjdGx5IGhlbHAgd2l0aCB0 aGUgZHluYW1pYyByYW5nZSBibGVuZGluZwo+IHByb2JsZW0uIFlvdSBzdGlsbCBuZWVkIHRvIGVz dGFibGlzaCB0aGUgbWFwcGluZyBiZXR3ZWVuIHRoZSBvcHRpY2FsCj4gdmFsdWVzIGZyb20gdHdv IGRpZmZlcmVudCBFT1RGcyBhbmQgZHluYW1pYyByYW5nZXMuIE9yIGNhbiB5b3Uga25vdwo+IHdo aWNoIG9wdGljYWwgdmFsdWVzIG1hdGNoIHRoZSBtYXN0ZXJpbmcgZGlzcGxheSBtYXhpbXVtIGFu ZCBtaW5pbXVtCj4gbHVtaW5hbmNlcyBmb3Igbm90LVBRPwo+Cj4KPj4gIyMgU0RSIEx1bWluYW5j ZQo+Pgo+PiBTaW5jZSBTRFIgY292ZXJzIGEgc21hbGxlciBsdW1pbmFuY2UgcmFuZ2UgdGhhbiBI RFIsIGFuIFNEUiBwbGFuZQo+PiBtaWdodCBsb29rIGRhcmsgd2hlbiBibGVuZGVkIHdpdGggSERS IGNvbnRlbnQuIFNpbmNlIHRoZSBtYXggSERSCj4+IGx1bWluYW5jZSBjYW4gYmUgcXVpdGUgdmFy aWFibGUgKDIwMC0xLDUwMCBuaXRzIG9uIGFjdHVhbCBkaXNwbGF5cykKPj4gaXQgaXMgYmVzdCB0 byBtYWtlIHRoZSBTRFIgbWF4aW11bSBsdW1pbmFuY2UgdmFsdWUgY29uZmlndXJhYmxlLgo+Pgo+ PiAqKldlIHByb3Bvc2UgYSBkcm1fcGxhbmUgcHJvcGVydHkgdG8gc3BlY2Z5IHRoZSBkZXNpcmVk IG1heGltdW0KPj4gbHVtaW5hbmNlIG9mIHRoZSBTRFIgcGxhbmUgaW4gbml0cy4qKiBUaGlzIGFs bG93cyB1cyB0byBtYXAgdGhlIFNEUgo+PiBjb250ZW50IHByZWRpY3RhYmx5IGludG8gSERSJ3Mg YWJzb2x1dGUgbHVtaW5hbmNlIHNwYWNlLgo+IFdoYXQgd291bGQgYmUgdGhlIG1hcHBpbmc/IFNp bXBsZSBsaW5lYXIgc2NhbGluZz8gQSBtb3JlIGNvbXBsaWNhdGVkCj4gdG9uZSBtYXBwaW5nPwo+ Cj4gUmF0aGVyIHRoYW4gIlNEUiBsdW1pbmFuY2UiLCBkbyB5b3UgcGVyaGFwcyBpbnRlbmQgdGhp cyB0byBjb25maWd1cmUKPiB0aGUgZHluYW1pYyByYW5nZSBvZiB0aGUgbm9uLWFic29sdXRlLWx1 bWluYW5jZSBFT1RGcz8KPiBJbiB0aGF0IGNhc2UgbWF5YmUgeW91J2QgbmVlZCBhIGJsYWNrIGx1 bWluYW5jZSBsZXZlbCB0b28/Cj4KPgo+PiAjIyBMZXQgVGhlcmUgQmUgQ29sb3IKPj4KPj4gU28g ZmFyIHdlJ3ZlIG9ubHkgdGFsa2VkIGFib3V0IGx1bWluYW5jZSwgaWdub3JpbmcgY29sb3JzIGFs dG9nZXRoZXIuCj4+IEp1c3QgbGlrZSBpbiB0aGUgbHVtaW5hbmNlIHNwYWNlLCB0cmFkaXRpb25h bGx5IHRoZSBjb2xvciBzcGFjZSBvZgo+PiBkaXNwbGF5IG91dHB1dHMgaGFzIG5vdCBiZWVuIHdl bGwgZGVmaW5lZC4gU2ltaWxhciB0byBob3cgYW4gRU9URgo+PiBkZWZpbmVzIGEgbWFwcGluZyBv ZiBwaXhlbCBkYXRhIHRvIGFuIGFic29sdXRlIGx1bWluYW5jZSB2YWx1ZSwgdGhlCj4+IGNvbG9y IHNwYWNlIG1hcHMgY29sb3IgaW5mb3JtYXRpb24gZm9yIGVhY2ggcGl4ZWwgb250byB0aGUgQ0lF IDE5MzEKPj4gY2hyb21hdGljaXR5IHNwYWNlLiBUaGlzIGNhbiBiZSB0aG91Z2h0IG9mIGFzIGEg bWFwcGluZyB0byBhbgo+PiBhYnNvbHV0ZSwgcmVhbC1saWZlLCBjb2xvciB2YWx1ZS4KPj4KPj4g QSBjb2xvciBzcGFjZSBpcyBkZWZpbmVkIGJ5IGl0cyBwcmltYXJpZXMgYW5kIHdoaXRlIHBvaW50 LiBUaGUKPj4gcHJpbWFyaWVzIGFuZCB3aGl0ZSBwb2ludCBhcmUgZXhwcmVzc2VkIGFzIGNvb3Jk aW5hdGVzIGluIHRoZSBDSUUKPj4gMTkzMSBjb2xvciBzcGFjZS4gVGhpbmsgb2YgdGhlIHJlZCBw cmltYXJ5IGFzIHRoZSByZWRkZXN0IHJlZCB0aGF0Cj4+IGNhbiBiZSBkaXNwbGF5ZWQgd2l0aGlu IHRoZSBjb2xvciBzcGFjZS4gU2FtZSBmb3IgZ3JlZW4gYW5kIGJsdWUuCj4+Cj4+IEV4YW1wbGVz IG9mIGNvbG9yIHNwYWNlcyBhcmU6Cj4+Cj4+IHwgQ29sb3IgU3BhY2UgfCBEZXNjcmlwdGlvbiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+PiB8IC0tLS0tLS0tLS0tIHwgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKPj4gfCBCVCA2MDEgICAgICB8 IHNpbWlsYXIgdG8gQlQgNzA5ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4+IHwgQlQgNzA5 ICAgICAgfCB1c2VkIGJ5IHNSR0IgY29udGVudDsgfjUzJSBvZiBCVCAyMDIwICAgICAgfAo+PiB8 IERDSS1QMyAgICAgIHwgdXNlZCBieSBtb3N0IEhEUiBkaXNwbGF5czsgfjcyJSBvZiBCVCAyMDIw IHwKPj4gfCBCVCAyMDIwICAgICB8IHN0YW5kYXJkIGZvciBtb3N0IEhEUiBjb250ZW50ICAgICAg ICAgICAgICB8Cj4+Cj4+IFRoZSBjb2xvciBzcGFjZSBpcyBkZWZpbmVkIGluIERSTSBmb3IgWUNi Q3IgcGxhbmVzIHZpYSB0aGUKPj4gY29sb3JfZW5jb2RpbmcgcHJvcGVydHkgb2YgdGhlIGRybV9w bGFuZS4gCj4gSSBkb24ndCB0aGluayB0aGF0IGlzIHF1aXRlIHJpZ2h0Lgo+Cj4gQXMgZmFyIEkg dW5kZXJzdGFuZCwgQ09MT1JfRU5DT0RJTkcgcHJvcGVydHkgY29udHJvbHMgd2hpY2ggbWF0cml4 IGlzCj4gdXNlZCB0byBjb252ZXJ0IGZyb20gWUNiQ3IgdG8gUkdCLCBidXQgdGhhdCBpcyBhbGwg aXQgZG9lcy4gSXQgaXMgbm90Cj4gdXNlZCBmb3IgdGhlIGFjdHVhbCBjb2xvciBzcGFjZS4gU28g d2hpbGUgdGhlc2UgQlQgc3RhbmRhcmRzIGRvCj4gc3BlY2lmeSB0aGUgY2hyb21hdGljaXRpZXMs IHRoZXkgYWxzbyBzcGVjaWZ5IHRoZSBZQ2JDciBlbmNvZGluZyB3aGljaAo+IGlzIHRoZSBwYXJ0 IHVzZWQgaW4gdGhpcyBwcm9wZXJ0eS4KPgo+IFlDYkNyIGFuZCBSR0IgYXJlIGNvbG9yIG1vZGVs cy4gVGhleSBhcmUgbm90IGNvbG9yIHNwYWNlcy4gUkdCIGlzIGFuCj4gYWRkaXRpdmUgY29sb3Ig bW9kZWwgd2hpbGUgWUNiQ3IgaXMgbm90LCBBRkFJVS4gQmxlbmRpbmcgcmVxdWlyZXMgYW4KPiBh ZGRpdGl2ZSBjb2xvciBtb2RlbCBhbmQgbGluZWFyIGx1bWluYW5jZSBlbmNvZGluZy4KPgo+IFlv dSBuZWVkIHR3byBjb2xvciBzcGFjZSBkZWZpbml0aW9ucyB0byBjcmVhdGUgb25lIGNvbG9yIHNw YWNlCj4gdHJhbnNmb3JtYXRpb246IHNvdXJjZSBjb2xvciBzcGFjZSBhbmQgZGVzdGluYXRpb24g Y29sb3Igc3BhY2UuIFlvdQo+IGFsc28gbmVlZCBhbiBpZGVhICpob3cqIHRoZSB0d28gY29sb3Ig c3BhY2VzIHNob3VsZCBiZSBtYXBwZWQsIHdoaWNoIGlzCj4gY2FsbGVkICJyZW5kZXJpbmcgaW50 ZW50Ii4gWW91IGNhbid0IGRvIGFueXRoaW5nIHdpdGgganVzdCBvbmUgY29sb3IKPiBzcGFjZSBk ZWZpbml0aW9uLCBleGNlcHQgdG8gcGFzcyBpdCBvbiBhbG9uZyB3aXRoIHRoZSBwaXhlbHMuCj4K PiBUbyBiZSBhYmxlIHRvIGJsZW5kIHBsYW5lcyB0b2dldGhlciwgYWxsIHBsYW5lcyBuZWVkIHRv IGJlIGNvbnZlcnRlZCB0bwo+IHRoZSBzYW1lIGNvbG9yIHNwYWNlIGZpcnN0OiB0aGUgYmxlbmRp bmcgY29sb3Igc3BhY2UsIHdoYXRldmVyIHlvdQo+IGNob29zZSBpdCB0byBiZS4gSSBkbyBub3Qg c2VlIHdoZXJlIEtNUyB3b3VsZCBkbyB0aGlzIGNvbG9yIHNwYWNlCj4gY29udmVyc2lvbiwgb3Ig d2hlcmUgaXQgd291bGQgZ2V0IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBibGVuZGluZyBjb2xvcgo+ IHNwYWNlLgo+Cj4+ICoqV2UgcHJvcG9zZSB0byBhZGQgZGVmaW5pdGlvbnMgZm9yIHRoZSBSR0Ig dmFyaWFudHMgb2YgdGhlIEJUIGNvbG9yCj4+IHNwYWNlcy4qKgo+IFRoZXJlZm9yZSBJJ20gbm90 IHN1cmUgdGhpcyBtYWtlcyBzZW5zZS4KPgo+Cj4+ICMjIENvbG9yIFByaW1hcmllcyBhbmQgV2hp dGUgUG9pbnQKPj4KPj4gSnVzdCBsaWtlIGRpc3BsYXlzIGNhbiBjdXJyZW50bHkgbm90IHJlcHJl c2VudCB0aGUgZW50aXJlIDAuMDAwNSAtCj4+IDEwLDAwMCBuaXRzIEhEUiByYW5nZSBvZiB0aGUg UFEgMjA4NCBFT1RGLCB0aGV5IGFyZSBjdXJyZW50bHkgbm90Cj4+IGNhcGFibGUgb2YgcmVwcmVz ZW50aW5nIHRoZSBlbnRpcmUgQlQuMjAyMCBjb2xvciBHYW11dC4gRm9yIHRoaXMKPj4gcmVhc29u IHZpZGVvIGNvbnRlbnQgd2lsbCBvZnRlbiBzcGVjaWZ5IHRoZSBjb2xvciBwcmltYXJpZXMgYW5k IHdoaXRlCj4+IHBvaW50IHVzZWQgdG8gbWFzdGVyIHRoZSB2aWRlbywgaW4gb3JkZXIgdG8gYWxs b3cgZGlzcGxheXMgdG8gYmUgYWJsZQo+PiB0byBtYXAgdGhlIGltYWdlIGFzIGJlc3QgYXMgcG9z c2libGUgb250byB0aGUgZGlzcGxheSdzIGdhbXV0Lgo+Pgo+Pgo+PiAjIyBEaXNwbGF5cyBhbmQg VG9uZW1hcHBpbmcKPj4KPj4gRXh0ZXJuYWwgZGlzcGxheXMgYXJlIGFibGUgdG8gZG8gdGhlaXIg b3duIHRvbmUgYW5kIGNvbG9yIG1hcHBpbmcsCj4+IGJhc2VkIG9uIHRoZSBtYXN0ZXJpbmcgbHVt aW5hbmNlLCBjb2xvciBwcmltYXJpZXMsIGFuZCB3aGl0ZSBzcGFjZQo+PiBkZWZpbmVkIGluIHRo ZSBIRFIgbWV0YWRhdGEuCj4+Cj4+IEludGVybmFsIHBhbmVscyAod2hpY2ggYXJlIGN1cnJlbnRs eSBmZXcgYW5kIGZhciBiZXR3ZWVuKSB1c3VhbGx5Cj4+IGRvbid0IGluY2x1ZGUgdGhlIGNvbXBs ZXggSFcgdG8gZG8gdG9uZSBhbmQgY29sb3IgbWFwcGluZyBvbiB0aGVpcgo+PiBvd24gYW5kIHdp bGwgcmVxdWlyZSB0aGUgZGlzcGxheSBkcml2ZXIgdG8gcGVyZm9ybSBhcHByb3ByaWF0ZQo+PiBt YXBwaW5nLgo+IEZXSVcsIHdoZW4gZGVzaWduaW5nIFdlc3RvbidzIGNvbG9yIG1hbmFnZW1lbnQs IHdlIGFyZSBhaW1pbmcgZm9yCj4gdGhlIGxhdHRlciAic2ltcGxlIiBwYW5lbHMgZm9yZW1vc3Qs IGJlY2F1c2UgdGhhdCBnaXZlcyB1cyBmdWxsIGNvbnRyb2wKPiBvZiBhbGwgY29sb3IgY29udmVy c2lvbnMgYW5kIHRvbmUgbWFwcGluZ3MuCj4KPiBPVE9ILCBpZiBXZXN0b24gaGFzIHRvIHByZXNl bnQgdG8gYSBkaXNwbGF5IHdoaWNoIG9ubHkgYWNjZXB0cyBlLmcuCj4gQlQuMjAyMC9QUSBzaWdu YWwsIHRoZSBkaXNwbGF5IG1pZ2h0IGFsd2F5cyBtYW5nbGUgdGhlIGltYWdlIGluCj4gdW5leHBl Y3RlZCB3YXlzLiBUaGVyZWZvcmUgSSBleHBlY3QgdGhhdCBieSBkZWZhdWx0IFdlc3RvbiB3aWxs IGRvCj4gZXZlcnl0aGluZyBpdCBjYW4gdG8gdHJ5IHRvIG1ha2UgdGhlIGRpc3BsYXkgbm90IGFw cGx5IGFueXRoaW5nIG1hZ2ljCj4gaW1hZ2UgZW5oYW5jZW1lbnQ6IHRydXN0IHRoYXQgRURJRCBk ZXNjcmlwdGlvbiBvZiB0aGUgZGlzcGxheSBnYW11dCBhbmQKPiBkeW5hbWljIHJhbmdlIGFyZSBj b3JyZWN0LCBhbmQgdXNlIEhEUiBtZXRhZGF0YSB0byB0ZWxsIHRoZSBkaXNwbGF5Cj4gdGhhdCB0 aG9zZSB2YWx1ZXMgYXJlIGV4YWN0bHkgd2hhdCB3ZSBhcmUgdXNpbmcuIEFuZCB3ZSB1c2UgdGhl bS4KPgo+IElNTywgYSBkaXNwbGF5IGRvaW5nIGl0cyB0b25lIG1hcHBpbmcgbWFnaWNhbGx5IGlz IG9ubHkgdXNlZnVsIHdoZW4geW91Cj4gd2FudCB0byBiZSBhYmxlIHRvIHVzZSAic2ltcGxlIiBw bGF5YmFjayBkZXZpY2VzIHRoYXQgY2Fubm90IGFkYXB0IHRvCj4gdGhlIGRpc3BsYXkgdGhleSBh cmUgZHJpdmluZy4gTWFnaWMgdG9uZSBtYXBwaW5nIGlzIGFsc28gYSB3YXkgZm9yCj4gaGFyZHdh cmUgdmVuZG9ycyB0byBkaWZmZXJlbnRpYXRlLCB3aGljaCBmcm9tIHRoZSBjb2xvciBtYW5hZ2Vt ZW50Cj4gcGVyc3BlY3RpdmUgaXMgaGFybWZ1bCBhcyBpdCBtYWtlcyBpdCBtb3JlIGRpZmZpY3Vs dCBvciBpbXBvc3NpYmxlIHRvCj4gcHJlZGljdCB0aGUgZGlzcGxheSBiZWhhdmlvdXIgb3IgdG8g a2VlcCBpdCBjb25zaXN0ZW50Lgo+Cj4gU28gdGhlcmUgYXJlIHR3byBvcHBvc2luZyBnb2FsczoK Pgo+IC0gVHJhZGl0aW9uYWwgY29sb3IgbWFuYWdlbWVudCB3YW50cyBhYnNvbHV0ZSBjb250cm9s IG9mIHRoZSBkaXNwbGF5LAo+ICAgbGVhdmluZyBub3RoaW5nIHVucHJlZGljdGFibGUgYW5kIHBy ZWZlcmFibHkgYWxzbyBub3RoaW5nIHVuZGVmaW5lZC4KPiAgIFVuZGVmaW5lZCBiZWhhdmlvdXIg Y2FuIGFsd2F5cyBiZSBtZWFzdXJlZCAocHJvZmlsZWQpIHdoaWNoIG1ha2VzIGl0Cj4gICBwcmVk aWN0YWJsZSBhbmQga25vd24uIFRoZSB2aWV3aW5nIGVudmlyb25tZW50IGlzIGNvbnRyb2xsZWQg YW5kCj4gICBjb25zdGFudC4KPgo+IC0gRW50ZXJ0YWlubWVudCB3YW50cyB0aGUgbW9zdCB2aXN1 YWxseSBpbXByZXNzaXZlIGltYWdlIHF1YWxpdHkgYnkKPiAgIGR5bmFtaWNhbGx5IGFkYXB0aW5n IHRvIGJvdGggZGlzcGxheWVkIGNvbnRlbnQgYW5kIHRvIHRoZSB2aWV3aW5nCj4gICBlbnZpcm9u bWVudCBjb25kaXRpb25zLgo+Cj4+ICMjIFBpeGVsIEZvcm1hdHMKPj4KPj4gVGhlIHBpeGVsIGZv cm1hdHMsIHN1Y2ggYXMgQVJHQjg4ODgsIEFSR0IyMTAxMDEwLCBQMDEwLCBvciBGUDE2IGFyZQo+ PiB1bnJlbGF0ZWQgdG8gY29sb3Igc3BhY2UgYW5kIEVPVEYgZGVmaW5pdGlvbnMuIEhEUiBwaXhl bHMgY2FuIGJlCj4+IGZvcm1hdHRlZCBpbiBkaWZmZXJlbnQgd2F5cyBidXQgaW4gb3JkZXIgdG8g bm90IGxvc2UgcHJlY2lzaW9uIEhEUgo+PiBjb250ZW50IHJlcXVpcmVzIGF0IGxlYXN0IDEwIGJw YyBwcmVjaXNpb24uIEZvciB0aGlzIHJlYXNvbgo+PiBBUkdCMjEwMTAxMCwgUDAxMCwgYW5kIEZQ MTYgYXJlIHRoZSBvYnZpb3VzIGNhbmRpZGF0ZXMgZm9yIEhEUi4KPj4gQVJHQjIxMDEwMTAgYW5k IFAwMTAgaGF2ZSB0aGUgYWR2YW50YWdlIG9mIHJlcXVpcmluZyBvbmx5IGhhbGYgdGhlCj4+IGJh bmR3aWR0aCBhcyBGUDE2LCB3aGlsZSBGUDE2IGhhcyB0aGUgYWR2YW50YWdlIG9mIGVub3VnaCBw cmVjaXNpb24KPj4gdG8gb3BlcmF0ZSBpbiBhIGxpbmVhciBzcGFjZSwgaS5lLiB3aXRob3V0IEVP VEYuCj4gUmlnaHQuCj4KPj4gIyMgUHJvcG9zZWQgdXNlLWNhc2VzCj4+Cj4+IEFsdGhvdWdoIHRo ZSB1c2Vyc3BhY2Ugc2lkZSBvZiB0aGlzIHdvcmsgaXMgc3RpbGwgaW4gdGhlIGVhcmx5IHN0YWdl cwo+PiBpdCBpcyBjbGVhciB0aGF0IHdlIHdpbGwgd2FudCB0byBzdXBwb3J0IHRoZSBmb2xsb3dp bmcgdHdvIHVzZS1jYXNlczoKPj4KPj4gKipPbmUgWFJHQjIxMDEwMTAgSERSIFBsYW5lOioqIEEg c2luZ2xlLCBjb21wb3NpdGVkIHBsYW5lIG9mIEhEUgo+PiBjb250ZW50LiBUaGUgdXNlLWNhc2Ug aXMgYSB2aWRlbyBwbGF5ZXIgb24gYSBkZXNrdG9wIHdpdGggdGhlCj4+IGNvbXBvc2l0b3Igb3du aW5nIHRoZSBjb21wb3NpdGlvbiBvZiBTRFIgYW5kIEhEUiBjb250ZW50LiBUaGUgY29udGVudAo+ PiBzaGFsbCBiZSBQUSBCVC4yMDIwIGZvcm1hdHRlZC4gVGhlIGRybV9jb25uZWN0b3Incwo+PiBo ZHJfb3V0cHV0X21ldGFkYXRhIHNoYWxsIGJlIHNldC4KPiBUaGlzIHVzZSBjYXNlIGlzIGFscmVh ZHkgcG9zc2libGUsIHJpZ2h0Pwo+Cj4+ICoqT25lIEFSR0I4ODg4IFNEUiBQbGFuZSArIE9uZSBQ MDEwIEhEUiBQbGFuZToqKiBBIG5vcm1hbCA4YnBjCj4+IGRlc2t0b3AgcGxhbmUsIHdpdGggYSBQ MDEwIEhEUiB2aWRlbyBwbGFuZSB1bmRlcmxheWVkLiBUaGUgSERSIHBsYW5lCj4+IHNoYWxsIGJl IFBRIEJULjIwMjAgZm9ybWF0dGVkLiBUaGUgZGVza3RvcCBwbGFuZSBzaGFsbCBzcGVjaWZ5IGFu IFNEUgo+PiBib29zdCB2YWx1ZS4gVGhlIGRybV9jb25uZWN0b3IncyBoZHJfb3V0cHV0X21ldGFk YXRhIHNoYWxsIGJlIHNldC4KPiBUaGlzIHVzZSBjYXNlIHJlcXVpcmVzIGJsZW5kaW5nIGluIEtN Uywgc28gaXMgdGhlIHByaW1hcnkgZ29hbCBJCj4gc3VwcG9zZS4KPgo+PiAqKk9uZSBYUkdCODg4 OCBTRFIgUGxhbmUgLSBIRFIgb3V0cHV0OioqIEluIG9yZGVyIHRvIHN1cHBvcnQgYSBzbW9vdGgK Pj4gdHJhbnNpdGlvbiB3ZSByZWNvbW1lbmQgYW4gT1MgdGhhdCBzdXBwb3J0cyBIRFIgb3V0cHV0 IHRvIHByb3ZpZGUgdGhlCj4+IGhkcl9vdXRwdXRfbWV0YWRhdGEgb24gdGhlIGRybV9jb25uZWN0 b3IgdG8gY29uZmlndXJlIHRoZSBvdXRwdXQgZm9yCj4+IEhEUiwgZXZlbiB3aGVuIHRoZSBjb250 ZW50IGlzIG9ubHkgU0RSLiBUaGlzIHdpbGwgYWxsb3cgZm9yIGEgc21vb3RoCj4+IHRyYW5zaXRp b24gYmV0d2VlbiBTRFItb25seSBhbmQgSERSIGNvbnRlbnQuIEluIHRoaXMgdXNlLWNhc2UgdGhl IFNEUgo+PiBtYXggbHVtaW5hbmNlIHZhbHVlIHNob3VsZCBiZSBwcm92aWRlZCBvbiB0aGUgZHJt X3BsYW5lLgo+IEkgdGhpbmsgdGhpcyBtaWdodCBiZSBhbHJlYWR5IHBvc3NpYmxlIGJ5IGNyYWZ0 aW5nIGEgQ1JUQyBHQU1NQSBMVVQ/IE5vdAo+IHN1cmUgYWJvdXQgcHJlY2lzaW9uLgo+Cj4+IElu IERDTiB3ZSB3aWxsIGRlLVBRIG9yIGRlLUdhbW1hIGFsbCBpbnB1dCBpbiBvcmRlciB0byBibGVu ZCBpbgo+PiBsaW5lYXIgc3BhY2UuIEZvciBTRFIgY29udGVudCB3ZSB3aWxsIGFsc28gYXBwbHkg YW55IGRlc2lyZWQgYm9vc3QKPj4gYmVmb3JlIGJsZW5kaW5nLiBBZnRlciBibGVuZGluZyB3ZSB3 aWxsIHRoZW4gcmUtYXBwbHkgdGhlIFBRIEVPVEYgYW5kCj4+IGRvIFJHQiB0byBZQ2JDciBjb252 ZXJzaW9uIGlmIG5lZWRlZC4KPiBUaGlzIGFzc3VtZXMgdGhlIHNhbWUgY29sb3Igc3BhY2Ugb3Zl ciBldmVyeXRoaW5nLgo+Cj4+ICMjIFN1bW1hcnkgb2YgcHJvcG9zZWQgaW50ZXJmYWNlIGNoYW5n ZXMKPj4KPj4gcGVyIGRybV9wbGFuZToKPj4gLSBuZXcgUkdCIGNvbG9yIHNwYWNlIGRlZmluaXRp b25zLCBtaXJyb3JpbmcgdGhlIGV4aXN0aW5nIFlVViBjb2xvcgo+PiBzcGFjZSBkZWZpbml0aW9u cwo+PiAtIG5ldyB0cmFuc2ZlciBmdW5jdGlvbiBwcm9wZXJ0eQo+PiAtIG5ldyBTRFIgbWF4aW11 bSB3aGl0ZSBsZXZlbCBwcm9wZXJ0eQo+IEhvdyB3aWxsIHRoZXNlIG5ldyBLTVMgcHJvcGVydGll cyBpbnRlcmFjdCB3aXRoIHBlci1wbGFuZSBERUdBTU1BLCBDVE0KPiBhbmQvb3IgR0FNTUEgcHJv cGVydGllcz8KPgo+IFdoeSBnbyB3aXRoIHlvdXIgcHJvcG9zYWwgaW5zdGVhZCBvZiBwZXItcGxh bmUgQ1RNIGFuZCBMVVQ/Cj4KPiBJIHRoaW5rIHRoZSBpZGVhbCBLTVMgcGlwZWxpbmUgZm9yIG1l LCBhc3N1bWluZyBJIGNhbm5vdCBoYXZlIDNEIExVVHMKPiBib3RoIHBlci1wbGFuZSBhbmQgb24g Q1JUQywgd291bGQgYmU6Cj4KPiBwbGFuZToKPiAJRkIgLT4gTTEgLT4gTFVUMSAtPiBNMiAtPiBi bGVuZGluZyBpbnB1dAo+Cj4gQ1JUQzoKPiAJYmxlbmRpbmcgb3V0cHV0IC0+IExVVDIgLT4gTTMg LT4gY29ubmVjdG9yCj4KPiBGQjogZnJhbWVidWZmZXIKPiBNMTogbWF0cml4IHRyYW5zZm9ybSwg Y2FwYWJsZSBvZiBjb252ZXJ0aW5nIGUuZy4gWUNiQ3IgdG8gUkdCCj4gTFVUMTogMUQgTFVUIGZv ciBjb250ZW50IEVPVEYsIHRvIHByb2R1Y2UgbGlnaHQtbGluZWFyIFJHQgo+IE0yOiBtYXRyaXgg dHJhbnNmb3JtIGZvciBjb2xvciBzcGFjZSB0cmFuc2Zvcm1hdGlvbgo+Cj4gTFVUMjogMUQgTFVU IGZvciBhcHBseWluZyBtb25pdG9yIEVPVEZeLTEKPiBNMzogbWF0cml4IHRyYW5zZm9ybSwgZS5n LiBpZiB5b3UgbmVlZCB0byBwdXNoIFlDYkNyIG9uIHRoZSBjb25uZWN0b3IKPgo+IFdlIGFsc28g bmVlZCB0byBrbm93IHdoZXJlIGFuZCBob3cgY2xpcHBpbmcgaGFwcGVucy4KPgo+IEkgdGhpbmsg dGhpcyBzY2hlbWUgd291bGQgYWxsb3cgaW1wbGVtZW50aW5nIGV2ZXJ5dGhpbmcgeW91IHdhbnQs IGFuZAo+IGl0IHdvdWxkIG5vdCBiZSB0aWVkIHRvIHJpZ2lkIGVudW1lcmF0aW9ucywgYW5kIGl0 IHdvbid0IGhhdmUgYW55Cj4gbWFnaWNhbCBjb252ZXJzaW9ucyBkb25lIHVuZGVyIHRoZSBob29k IGFzIHlvdSB3b3VsZCBuZWVkIHRvIGRvIHRvCj4gY29udmVydCBmcm9tIG9uZSBlbnVtIHNwYWNl IHRvIGFub3RoZXIuIEl0IGxlYXZlcyB0aGUgcmVuZGVyIGludGVudCB0bwo+IGJlIGRlZmluZWQg YnkgdGhlIHVzZXJzcGFjZSBjb21wb3NpdG9yLCByYXRoZXIgdGhhbiBidWlsZGluZyBhIGZpeGVk Cj4gcG9saWN5IGluIHRoZSBrZXJuZWwuCj4KPiBVc2Vyc3BhY2Ugd291bGQgYmUgc2V0dGluZyB0 cmFuc2Zvcm1hdGlvbiBvcGVyYXRvcnMsIG5vdCBjb2xvciBzcGFjZXMsCj4gdG8gdGhlIGtlcm5l bCwgYWxsb3dpbmcgdGhlIGJsZW5kaW5nIHNwYWNlIHRvIGJlIGNob3NlbiBieSB1c2Vyc3BhY2Uu Cj4gSW4gV2VzdG9uIHdlIGFpbSB0byBjaG9vc2UgdGhlbiBibGVuZGluZyBjb2xvciBzcGFjZSB0 byBiZSB0aGUgc2FtZSBhcwo+IHRoZSBvdXRwdXQgY29sb3Igc3BhY2UsIGV4Y2VwdCBpbiBvcHRp Y2FsIChsaW5lYXIpIGVuY29kaW5nLiBUaGUgb3V0cHV0Cj4gY29sb3Igc3BhY2UgY2FuIGJlIG5v bi1zdGFuZGFyZCwgZS5nLiBtZWFzdXJlZCB3aXRoIGEgZGlzcGxheSBwcm9maWxlcgo+IGVxdWlw bWVudC4KPgo+IEkgd291bGQgZXhwZWN0IGdhbXV0IG1hcHBpbmcsIGR5bmFtaWMgcmFuZ2UgbWFw cGluZyBhbmQgdG9uZSBtYXBwaW5nIHRvCj4gYmUgcGxhY2VzIHdoZXJlIG1vc3QgZXhwZXJpbWVu dGF0aW9uIGFuZCBpbm5vdmF0aW9uIGhhcHBlbnMsIHNvCj4gaW1wbGVtZW50aW5nIHRoZW0gaW4g dGhlIGtlcm5lbCB3aXRoIGp1c3QgZmV3IG9yIG5vIGNvbnRyb2xsYWJsZQo+IHBhcmFtZXRlcnMg YXQgdGhpcyB0aW1lIHNlZW1zIGxpa2UgaXQgY291bGQgYmVjb21lIHVzZWxlc3MgZmFzdC4KPgo+ Cj4gVGhhbmtzLAo+IHBxCj4KPj4gIyMgUmVmZXJlbmNlcwo+Pgo+PiBbMV0KPj4gaHR0cHM6Ly9l bi53aWtpcGVkaWEub3JnL3dpa2kvSGlnaC1keW5hbWljLXJhbmdlX3ZpZGVvI1BlcmNlcHR1YWxf UXVhbnRpemVyCj4+Cj4+Cj4+ICMjIEZ1cnRoZXIgUmVhZGluZwo+Pgo+PiBodHRwczovL2dpdGxh Yi5mcmVlZGVza3RvcC5vcmcvc3dpY2svd2F5bGFuZC1wcm90b2NvbHMvLS9ibG9iL2NvbG9yL3Vu c3RhYmxlL2NvbG9yLW1hbmFnZW1lbnQvY29sb3IucnN0Cj4+IGh0dHA6Ly9kb3dubG9hZHMuYmJj LmNvLnVrL3JkL3B1YnMvd2hwL3docC1wZGYtZmlsZXMvV0hQMzA5LnBkZgo+PiBodHRwczovL2Fw cC5zcGVjdHJhY2FsLmNvbS9Eb2N1bWVudHMvV2hpdGUlMjBQYXBlcnMvSERSX0RlbXlzdGlmaWVk LnBkZgo+Pgo+Pgo+PiBCaGF3YW5wcmVldCBMYWtoYSAoMyk6Cj4+ICAgZHJtL2NvbG9yOiBBZGQg UkdCIENvbG9yIGVuY29kaW5ncwo+PiAgIGRybS9jb2xvcjogQWRkIENvbG9yIHRyYW5zZmVyIGZ1 bmN0aW9ucyBmb3IgSERSL1NEUgo+PiAgIGRybS9jb2xvcjogQWRkIHNkciBib29zdCBwcm9wZXJ0 eQo+Pgo+PiAgLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIHwg IDQgKy0KPj4gIC4uLi9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYyB8 ICA0ICstCj4+ICBkcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyAgICAgICAgICAg fCAgNCArLQo+PiAgZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfb3ZlcmxheS5jICAgICAg IHwgIDQgKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyAgICAgICAgICAg ICB8ICA4ICsrCj4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYyAgICAgICAgICAg ICAgfCA4NAo+PiArKysrKysrKysrKysrKysrKy0tIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfc3ByaXRlLmMgICB8Cj4+IDQgKy0gLi4uL2RybS9pOTE1L2Rpc3BsYXkvc2tsX3Vu aXZlcnNhbF9wbGFuZS5jICAgIHwgIDQgKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rp c3BudjA0L292ZXJsYXkuYyAgICB8ICA0ICstCj4+ICBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9v bWFwX3BsYW5lLmMgICAgICAgICAgfCAgNCArLQo+PiAgZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1 bjhpX3ZpX2xheWVyLmMgICAgICAgIHwgIDQgKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS90aWRzcy90 aWRzc19wbGFuZS5jICAgICAgICAgICB8ICA2ICstCj4+ICBpbmNsdWRlL2RybS9kcm1fY29sb3Jf bWdtdC5oICAgICAgICAgICAgICAgICAgfCAyNSArKysrKy0KPj4gIGluY2x1ZGUvZHJtL2RybV9w bGFuZS5oICAgICAgICAgICAgICAgICAgICAgICB8IDMwICsrKysrKysKPj4gIDE0IGZpbGVzIGNo YW5nZWQsIDE3MyBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKPj4KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==