From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (EUR05-VI1-obe.outbound.protection.outlook.com [40.107.21.80]) by mx.groups.io with SMTP id smtpd.web09.33277.1629996574125345324 for ; Thu, 26 Aug 2021 09:49:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=yhY6kFuw; spf=pass (domain: arm.com, ip: 40.107.21.80, mailfrom: samer.el-haj-mahmoud@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=NBBXpbks6KFnrkZR8wPnrG14QlrpbCXjDZ/dXPdzUjE=; b=yhY6kFuwjZEUH6OYlZuy7PRJe4ukTjXGSiIz7M9uhs6yGVwFWqqmR+QZk2dClVkgYVNK2bhmqB5LzhAyDqPxbWw6WQxfMongLPfMY1FQ4N3mjGXDenT3MhLL/Jz+iONXOI9JAeZZPSP+n7/fCnKcT0HvpbLgB+2EdckEeb9GBts= Received: from DB3PR08CA0002.eurprd08.prod.outlook.com (2603:10a6:8::15) by AM5PR0801MB1907.eurprd08.prod.outlook.com (2603:10a6:203:4a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 26 Aug 2021 16:49:30 +0000 Received: from DB5EUR03FT064.eop-EUR03.prod.protection.outlook.com (2603:10a6:8:0:cafe::c6) by DB3PR08CA0002.outlook.office365.com (2603:10a6:8::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17 via Frontend Transport; Thu, 26 Aug 2021 16:49:30 +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 DB5EUR03FT064.mail.protection.outlook.com (10.152.21.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17 via Frontend Transport; Thu, 26 Aug 2021 16:49:30 +0000 Received: ("Tessian outbound f11f34576ce3:v103"); Thu, 26 Aug 2021 16:49:30 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2c7b0b46eba343fc X-CR-MTA-TID: 64aa7808 Received: from ae29ffe612ca.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 949DD9F7-9398-46AB-A9B1-99D35BAB7F03.1; Thu, 26 Aug 2021 16:49:23 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ae29ffe612ca.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 26 Aug 2021 16:49:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SfL/1a4zFM7hQgXHqOqMsPCiEx+XLen0KMPL8aRzSKrU3rOl32tSSK9SlXTMUQVRp+Dbxw1algWLp4Gsd5awl+rlU+Tdhl+Ydn7644hQ6CmXzyv1rzpgcviX2XV2aXHfZ6jJGI6Y3S+FGSySUDvsH3evZF0WZfXHsMtCqE7efk5X80ixujb0oSBJCvoymoj63sfqZN9X/uTqiGHXhpMeo41VYa9tQwUvuQM/e6l9YG/BxIf3L1EcCCyIZGlxCYinNj/fSByb4ApJPMYio8CCNo9OpYJqYLpjFeJN5+crMEKJ3vY9q+ZWQa1Fzysi4JHRJtlDLOoEgm/gXkgPUVP4zA== 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=NBBXpbks6KFnrkZR8wPnrG14QlrpbCXjDZ/dXPdzUjE=; b=LxpxbWO/kg1g6ub52JaB076Rr+AcXO0JvQ8a/ujhYiwyvQ476x+iHH6Cegm390bfWvYmx1wxfavU8E5PVu+U83f7b52yE/FDFXdkTQ3OgP4JOnYGmAd7JaAyHOUv7QSG08PQYmA76q2t9KLqIa5zHlDOW5A/T5X0FmF6stX0wY8LeGzd274U5UOOQZmHKAHzYPlV9JsNwzjrJMZTiZs813JQLwPNkrqO9roU8xZUpPd7miKx/xf+nqInJI+nzS+H7vI+G+d531kODAkAd/tfXfhT5VQgDC0/K+qgiqZmZELVeCUe1/YQ0RPh/TeWMHCWuQtuee9y+2Ra8lL4ruw6cQ== 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=NBBXpbks6KFnrkZR8wPnrG14QlrpbCXjDZ/dXPdzUjE=; b=yhY6kFuwjZEUH6OYlZuy7PRJe4ukTjXGSiIz7M9uhs6yGVwFWqqmR+QZk2dClVkgYVNK2bhmqB5LzhAyDqPxbWw6WQxfMongLPfMY1FQ4N3mjGXDenT3MhLL/Jz+iONXOI9JAeZZPSP+n7/fCnKcT0HvpbLgB+2EdckEeb9GBts= Received: from PAXPR08MB6987.eurprd08.prod.outlook.com (2603:10a6:102:1df::15) by PAXPR08MB6607.eurprd08.prod.outlook.com (2603:10a6:102:152::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 26 Aug 2021 16:49:21 +0000 Received: from PAXPR08MB6987.eurprd08.prod.outlook.com ([fe80::8888:874d:364:7237]) by PAXPR08MB6987.eurprd08.prod.outlook.com ([fe80::8888:874d:364:7237%6]) with mapi id 15.20.4436.025; Thu, 26 Aug 2021 16:49:21 +0000 From: "Samer El-Haj-Mahmoud" To: "devel@edk2.groups.io" , "mhaeuser@posteo.de" , "tim.lewis@insyde.com" , "michael.d.kinney@intel.com" CC: 'Andrew Fish' , "leif@nuviainc.com" , "'Ni, Ray'" , "'Gao, Zhichao'" , "'Wang, Jian J'" , "'Wu, Hao A'" , "'Bi, Dandan'" , "'Dong, Eric'" , 'Bret Barkelew' , 'Vitaly Cheptsov' , Samer El-Haj-Mahmoud Subject: Re: [edk2-devel] [RFC] Expose HII package list via C variables Thread-Topic: [edk2-devel] [RFC] Expose HII package list via C variables Thread-Index: AQHXmfc2LWKoU/gOxke2JH9dHQcjhquEzpwAgACsX4CAAGDQgIAAF6qAgAABdICAAApBgA== Date: Thu, 26 Aug 2021 16:49:21 +0000 Message-ID: References: <1e7201d79a93$b5386140$1fa923c0$@insyde.com> <8ea3fa57-3091-b2c5-dba2-c3eca153b697@posteo.de> In-Reply-To: <8ea3fa57-3091-b2c5-dba2-c3eca153b697@posteo.de> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 517f5144-9f49-44ed-4119-08d968b17935 x-ms-traffictypediagnostic: PAXPR08MB6607:|AM5PR0801MB1907: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: nTZz+XvwNQQ/DQcPk1lgJ0Gax/e6IFcVkpih8pw6oF/kqmhcyOz02T2zTFFBfHKvFNPAvC2VkHxFD706k+PtINZnl6QmICtbERtCYuvrQKhsJdnpsvVJka+d7aTjwEcrP28Y5V3EJU2YacX8ONRuZBWFy306DRsab8hzArHXUg7ubMP7k+w3rWjbgjIvGD5Uo2euWvTj2GRkYA1Ngak+oxZ5rsw5Slxv2aQ/1rg5TGs85a6DC0isgu10/AnT2Ji9Qmk0MHM/kN8jsvZn3fkJycvGpoD+0FXbxe4LcBRRXwmJJpdY7XWlVGRkp7A1lq9VXK7ODejrayo//sp7Fvoo/BELYbmtn2JNV4XIaskyrXfonYstOspqBXWa4fvv59e/dMWt1sOqg8l0maY6Wo+h/1t/4oFpb7r9PQD38rrQnjECz48pOFZmBpgQZzSBefVyvm0wTgOX140xrGbbcdXqYxfyLjBGgCzdt7kT2zyODVCRN18HPhN05B3UzMedxXiq3c59B9TdVpdQt6K4HGuyiaAqpkq8f/HoTPbvzfNFtPDqhiVrEkp2thCC8KA6J7FiCbA0fiFzFHe/1mkOiz/B7m59VSVjayNfqBVXqM1IYw9x/XH16K/b0qKtJJm2Rl5ck+XvZGV44YYNZ/kin0C9OB6jqbSkUkAo3r/3kcMMwC+w6QRlbeaUpHkegFAcwSBpnIS7YoVppFssWutKNxdDNpn8n4ja91zwd2feAe57ezDgIICKTo18hk+5VJj1Z5aUwqe9PWcUF40wbgv4AN2/qBGN5ExhsQXlhbPZp3EaDEBM8kQ3PXpvYxMLxBtQRRZaS2HV6gxM4I2JTfM38fHyuw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6987.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(366004)(396003)(136003)(376002)(346002)(8676002)(966005)(38100700002)(33656002)(15974865002)(316002)(86362001)(54906003)(83380400001)(8936002)(478600001)(110136005)(53546011)(7696005)(71200400001)(186003)(26005)(66574015)(7416002)(19627235002)(76116006)(122000001)(5660300002)(2906002)(30864003)(38070700005)(66446008)(55016002)(52536014)(66946007)(6506007)(66556008)(9686003)(64756008)(4326008)(66476007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Tjk5NUNyOWJ2NEFvdUVSNnlKQXROcFdmNVppaDZqN2JQWVBFVVhMQk5CV0lN?= =?utf-8?B?eStBajRsYUU0b283VWtiU21KSzZROUtJK2xZY20zQmZFcndlTC8zM1h5OCtW?= =?utf-8?B?L0hQQnZlNmhvTDhXODRQQy9BUEYvdjdpbTFIeUhNMzhybjIrSUk0UTFFTnRx?= =?utf-8?B?NGhmWHdIZC9rMmhRZjVKTiszZ2FGQ3VwY1JLU3lsNm9ldXRWcllKUTBtT3pn?= =?utf-8?B?d1NtNlJiTmtGUjZJd2ZDWFZlU2l2akZBMTNaQnB2KzJGd2lBL3ptdmxSNXZ0?= =?utf-8?B?ZjZFV2hmeEVQbThyWXFINHJkYWtVUVdVSEY1UEo1SUpSTkxmUFFnRCtIK0x6?= =?utf-8?B?Ykk5SUtHOGlsemE5WU1XaG5oWVR4S2ZvSTFMYlR5b3RjS1JNdnJ2cUZrMXcy?= =?utf-8?B?c3RpMVRVSlZZS2lCRUdDNUtzK3pMWUVsSGtHUStzU0tvNG9CNWRiTlVKb2ZU?= =?utf-8?B?R2pQaEVpU281L282K1ZwUmNuekY0TndxdmpzVWsvc1BNckdzK1BSaUp3aGNu?= =?utf-8?B?cmlLd1Y0ckdlYUlvT0lIeWR2Z2w0VjNxdUZPNERKbVZYcy91YzFpV2xXQ2E4?= =?utf-8?B?Q1QwNm1PaVZoczArV1BFN3lwSlFoLzJlV0FueklHeSt0VU9VeUhBcHloS1hW?= =?utf-8?B?dmU0NXpva3h2NlVCUHpOdEo5dDRxVTI1VUJ6dkxQZWhobk4zVmJUV0ZaQ0RI?= =?utf-8?B?NXRKU2RsbzRGNCtkNjlrRjRwbVdiZEczanliRE9yOFlDNk9hOCtocUEyNkNp?= =?utf-8?B?SFQ2Nkd3eE5Ubm5oVkFMRFFOYzFVOE12QUVVaFBEU0ZUL21WMk9qV2VQRGNX?= =?utf-8?B?d2F3bUJxNkpnN2NUZmRIVHVEekdVWWs1OXJySE9nM1JtYmZ2UDRIdWhEdDdQ?= =?utf-8?B?QWwvUHYyaUQzNTVJakw2WVI2SXdmU1BLMlJlVUpseUNqWjNuTTFHWU9CMVBD?= =?utf-8?B?N3llYjJramxhTlN0TVJIcXBnTWJDMHMxK3ZDZWdXa3pjc0JjWG5RblZVV2dX?= =?utf-8?B?dFFHMHVHR0U1YkRsdTR6cDF2Mjl5bmZZWXBHZHVlSWNHL253WkJmdGFmKzJa?= =?utf-8?B?VnlkMTNhRGxEZENnaWZVK0lqZlFWN0xvMXBpcnZ6eTZKcG5mWFB1K2h1ZnhT?= =?utf-8?B?SDJtYkI1ZXNYWk1QbFA4TUdVeUtoRDRRT1owK0lrL2FOeUt4d1c1MEE4S3c3?= =?utf-8?B?MU1ZUTR0L1NFZFlFK0cxQ0JEUUVvM1RHYVFyMGhuNTkxdnR3clhmQ2d0am9h?= =?utf-8?B?WmR2SDZSZmRETmpBdFVhRmxudElxeEIxNXN0dllNQ2pVT0NvbThzSmwwWjNh?= =?utf-8?B?N2RmU3o2MVBlM21WUW9vR0pxdC9NNVliUnc3aGhrOGtpbXdPUnA5TDF4eWlO?= =?utf-8?B?Nm9PejFmNGNnTDRiVkVMUCtIRldhZGs1b0NOREhjakx2QWFqSUh0SnpQUEZC?= =?utf-8?B?clp4VjNKTjA4QkNmcmw0dXdGWVV3aEhHenFjNEZzeU1BZG5PdHNDT1lVWEov?= =?utf-8?B?eTgyc3ArOU9tdG0zT3JlWmMydE9tejJMbVVvMGVhWDRwYUVaWHp3aEtJMTMy?= =?utf-8?B?aVg1dWtFWW15Qys3T2IvZGlGejFCYzJyRUYwUGxQdFVTbzg5U3V0Uy9mYTQ4?= =?utf-8?B?d0lXS3dKUG1QWXRKem5HZlVZb2ltaVhiZWpLbDlnSno1R2VqUGRHS0hPR0c0?= =?utf-8?B?dzJwYllJOEtsRE9NaHpORWRXR1hPQUR5VTFCelRKSzNCRnNOTnVsLzA5TUhZ?= =?utf-8?Q?c8pV+5AJndb6jSVsF6mek0TJ2s/X2bphGEb6iVu?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6607 Original-Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; Return-Path: Samer.El-Haj-Mahmoud@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT064.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 4141d3d0-4996-49f1-5564-08d968b17424 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bEummSO0X2hmpdJZvcF980UIt3BaOMhU1c+4Mngu/PLx2RYdJpIrmFE4dP/1CETHVOUU9SUyYz6Sr7IftTVbkz4zv8i11JYszB+xOhAxDCuO3dizxoFTnvHJbUiazSK7ZvCYjhMD7DLoA7ZM2KOJ1PJBVTGu9v7NH5vx5izsWGAAEn+UKVPZVn46gyshuluPOhd1Ct6d4r1t/ciLE3VBzoSPnTGG2MuB6pTFmTNb+MU61Fq9kI+u7onbr6xnJ4/JE6Oil2UC1Zca95lh+pXm63kgsthT6YDryXyJtWRY/VWfePEtFlkMcJP1EYqAwwLPyboWPDFbb8dAvNwooh1iBQcDfPJijt1nNFcZRa55SDmw6HNPwUJExdsCyvwl6ox8agH5BpKjd2wdu4OdkotAVm/35hlHIyaWdj37CoLULs6kLJzzJ9ajcmy2Fk0VVqrDYWAsJ6JSi/gLLaZfY0wGcc4kSRt6Vx/2Phc6CC8i1rvBETjkDTygkoM6ph6XTAy4jaQAzLg6RAJDxxUVNfHoxEN7I4JDiytOh/7E4bit0DVbGIMu9/XQFCjnF9g87H1z5mZDl1XC5th+WB/nDbJvpRGM6IGb5reHMkg591VK9VzoAgMZSbyenCipARyOyYzmsHjm4nLeMeZTDKeciDGCC8jKkhGEjNTbUW3HrTHKRRX9GCD+UoobwRMFhjPRJtte8TVrzyDX1WCK8Wy6wAuOKE7bfowmaGxMc11rOoTippf3cL3GjdA9LpFYmf4CJPZFa1y5w3ar7b1+C5LagLfwJ+fa1it/oWTmZLOqZEfrmDuQ3KX2XHOXEkYmAD7LzhRK/Jvv4wyH9q6YNqEAoo4shw== 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)(346002)(376002)(136003)(39860400002)(396003)(46966006)(36840700001)(15974865002)(82740400003)(66574015)(8676002)(316002)(7696005)(8936002)(356005)(478600001)(110136005)(81166007)(54906003)(83380400001)(70206006)(26005)(70586007)(2906002)(9686003)(55016002)(33656002)(30864003)(4326008)(82310400003)(5660300002)(336012)(19627235002)(966005)(45080400002)(52536014)(6506007)(36860700001)(53546011)(47076005)(186003)(86362001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2021 16:49:30.1589 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 517f5144-9f49-44ed-4119-08d968b17935 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: DB5EUR03FT064.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1907 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhbSBhd2FyZSBvZiBzb21lIHByb3ByaWV0YXJ5IHRvb2xzIChub3Qgb3BlbiBzb3VyY2UpIHRo YXQgZGVwZW5kIG9uIHRoaXMgZnVuY3Rpb25hbGl0eS4NCg0KVGhlIGZlYXR1cmUgaGFzIGJlZW4g dXNlZCwgZXNwZWNpYWxseSBvbiBzb21lIHNlcnZlciBkZXNpZ25zLCB0byBhbGxvdyBleHBvcnRp bmcgSElJIHBhY2thZ2VzIGFuZCBjb25zdW1pbmcgdGhlbSBvZmZsaW5lIGJ5IG91dC1vZi1iYW5k IG9yIE9TLWJhc2VkIG1hbmFnZW1lbnQgYXBwbGljYXRpb25zIGZvciBpbnN0YW5jZS4gVGhlIG5l ZWQgZm9yIHRoaXMgc2VlbXMgdG8gYmUgZGVjbGluaW5nIHRob3VnaCwgYXMgaW1wbGVtZW50YXRp b25zIG1vdmUgdG8gdXNpbmcgc3RhbmRhcmQgUmVkZmlzaCBkYXRhIGluc3RlYWQsIHdoaWNoIGlu IHR1cm4gY2FuIGJlIHByb2R1Y2VkIGZyb20gSElJIHBhY2thZ2VzLCBlaXRoZXIgZHVyaW5nIGJv b3QgKGxpa2Ugd2hhdCBpcyBkb25lIGluIEVESzIgUmVkZmlzaFBrZyksIG9yIGF0IGJ1aWxkIC8g cmVsZWFzZSB0aW1lLg0KDQpUaGFua3MsDQotLVNhbWVyDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZiBPZiBNYXJ2aW4NCj4gSMOkdXNlciB2aWEgZ3JvdXBzLmlvDQo+IFNl bnQ6IFRodXJzZGF5LCBBdWd1c3QgMjYsIDIwMjEgMTI6MDcgUE0NCj4gVG86IHRpbS5sZXdpc0Bp bnN5ZGUuY29tOyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsNCj4gbWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20NCj4gQ2M6ICdBbmRyZXcgRmlzaCcgPGFmaXNoQGFwcGxlLmNvbT47IGxlaWZAbnV2aWFp bmMuY29tOyAnTmksIFJheScNCj4gPHJheS5uaUBpbnRlbC5jb20+OyAnR2FvLCBaaGljaGFvJyA8 emhpY2hhby5nYW9AaW50ZWwuY29tPjsgJ1dhbmcsIEppYW4gSicNCj4gPGppYW4uai53YW5nQGlu dGVsLmNvbT47ICdXdSwgSGFvIEEnIDxoYW8uYS53dUBpbnRlbC5jb20+OyAnQmksIERhbmRhbicN Cj4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyAnRG9uZywgRXJpYycgPGVyaWMuZG9uZ0BpbnRlbC5j b20+OyAnQnJldCBCYXJrZWxldycNCj4gPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT47ICdW aXRhbHkgQ2hlcHRzb3YnDQo+IDx2aXQ5Njk2QHByb3Rvbm1haWwuY29tPg0KPiBTdWJqZWN0OiBS ZTogW2VkazItZGV2ZWxdIFtSRkNdIEV4cG9zZSBISUkgcGFja2FnZSBsaXN0IHZpYSBDIHZhcmlh Ymxlcw0KPg0KPiBIZXkgVGltLA0KPg0KPiBJbnRlcmVzdGluZywgZG8geW91IGhhcHBlbiB0byBo YXZlIHNvbWUgdG9vbCBvciBjb2RlIHRoYXQgcGVyZm9ybXMgc3VjaA0KPiBlZGl0cyBhdCBoYW5k IHRvIHRha2UgYSBsb29rIGF0PyBTZWVtcyBsaWtlIG1vc3QgbW9kdWxlcyBhbHJlYWR5IHVzZQ0K PiB2YXJpYWJsZXMgYW5kIHRodXMgY2Fubm90IGJlIG1vZGlmaWVkIGluIHN1Y2ggYSB3YXkgZXZl biByaWdodCBub3c/DQo+DQo+IFRoYXQncyB0aGUga2luZCBvZiBpbmZvcm1hdGlvbiBJIGFtIGxv b2tpbmcgZm9yLCB0aGFua3MgYSBsb3QhDQo+DQo+IEJlc3QgcmVnYXJkcywNCj4gTWFydmluDQo+ DQo+IE9uIDI2LzA4LzIwMjEgMTg6MDEsIHRpbS5sZXdpc0BpbnN5ZGUuY29tIHdyb3RlOg0KPiA+ IEhpIE1hcnZpbiAtLQ0KPiA+DQo+ID4gSSB3b3VsZCBsaWtlIHRvIGFkZCBzb21lIGhpc3Rvcmlj YWwgcGVyc3BlY3RpdmUgb24gdGhpcy4gT25lIG9mIHRoZSBkZXNpZ24NCj4gcmVxdWlyZW1lbnRz IGJhY2sgd2hlbiBISUkgd2FzIGZpcnN0IGludHJvZHVjZWQgaW50byB0aGUgVUVGSSBzcGVjaWZp Y2F0aW9uDQo+IGFmdGVyIEludGVsJ3MgaW5pdGlhbCBjb250cmlidXRpb24gd2FzIHRoYXQgb2Yg YmluYXJ5IGVkaXRhYmlsaXR5LiBJbiBvcmRlciB0byBiZQ0KPiBhYmxlIHRvIHJlbGlhYmx5IGZp bmQsIGV4dHJhY3QgYW5kIHRoZW4gcmUtaW5zZXJ0IHRoZSBISUkgZGF0YSBpbnRvIHRoZSBiaW5h cnksIGl0DQo+IG5lZWRlZCB0byBiZSBkaXNjb3ZlcmFibGUgYW5kIG5vdCBhZmZlY3QgdGhlIG9m ZnNldHMgb2YgdGhlIGNvZGUgYW5kIGRhdGEgaW4NCj4gdGhlIGJpbmFyeS4NCj4gPg0KPiA+IFdo aWxlIGl0IHdhcyBwb3NzaWJsZSB0byBwdXQgc29tZSBzb3J0IG9mIHNpZ25hdHVyZSBpbiB0aGUg cmVhZC1vbmx5IGRhdGENCj4gc2VjdGlvbnMgb2YgdGhlIGJpbmFyeSBhbmQgbGVhdmUgcGFkZGlu ZyBmb3IgcG9zc2libGUgZnV0dXJlIGVkaXRzLCBpdCB3YXMgZmVsdA0KPiB0aGF0IHVzaW5nIGEg UEUvQ09GRiBzZWN0aW9uIHNpbWlsYXIgdG8gdGhlIHJlc291cmNlIHNlY3Rpb25zIHdhcyBiZXR0 ZXIuDQo+IFJlc291cmNlIHNlY3Rpb25zIGFyZSBjb21tb25seSBpbiB1c2UgZm9yIFBFL0NPRkYg ZmlsZXMgKGluIFdpbmRvd3MpIGFuZA0KPiB0aGUgc2ltaWxhciBpZGVhIGV4aXN0ZWQgaW4gdGhl IHRoZW4tZXh0YW50IE1hYyBiaW5hcnkgZm9ybWF0IChyZXNvdXJjZQ0KPiBmb3JrPykuDQo+ID4N Cj4gPiBUaGFua3MsDQo+ID4NCj4gPiBUaW0gTGV3aXMNCj4gPiBDVE8sIEluc3lkZSBTb2Z0d2Fy ZQ0KPiA+IHd3dy5pbnN5ZGUuY29tDQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g T24gQmVoYWxmIE9mDQo+IE1pY2hhZWwgRCBLaW5uZXkNCj4gPiBTZW50OiBUaHVyc2RheSwgQXVn dXN0IDI2LCAyMDIxIDc6MzcgQU0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IG1oYWV1 c2VyQHBvc3Rlby5kZTsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPg0KPiA+IENjOiBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPjsgbGVpZkBudXZp YWluYy5jb207IE5pLCBSYXkNCj4gPHJheS5uaUBpbnRlbC5jb20+OyBHYW8sIFpoaWNoYW8gPHpo aWNoYW8uZ2FvQGludGVsLmNvbT47IFdhbmcsIEppYW4gSg0KPiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBCaSwgRGFuZGFuDQo+IDxkYW5k YW4uYmlAaW50ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IEJyZXQg QmFya2VsZXcNCj4gPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT47IFZpdGFseSBDaGVwdHNv dg0KPiA8dml0OTY5NkBwcm90b25tYWlsLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2 ZWxdIFtSRkNdIEV4cG9zZSBISUkgcGFja2FnZSBsaXN0IHZpYSBDIHZhcmlhYmxlcw0KPiA+DQo+ ID4gTWFydmluLA0KPiA+DQo+ID4gT25lIGNvbnN0cmFpbnQgaW4gdGhpcyBkaXNjdXNzaW9uIGlz IHRoYXQgdGhlIEhJSSBjb250ZW50IGluIGEgUEUvQ09GRg0KPiByZXNvdXJjZSBzZWN0aW9uIGlz IGRlZmluZWQgaW4gdGhlIFVFRkkgU3BlY2lmaWNhdGlvbiwgV2hpY2ggbWVhbnMgVUVGSSBBcHBz DQo+IGFuZCBVRUZJIERyaXZlcnMgZnJvbSBtZWRpYSBhbmQgb3B0aW9uIFJPTXMgdGhhdCBhcmUg bm90IHBhcnQgb2YgdGhlDQo+IHN5c3RlbSBGVyBpbWFnZSBhcmUgYWxsb3dlZCB0byB1c2UgdGhp cyBmZWF0dXJlLCAgVGhpcyBtZWFucyB0aGUgc3lzdGVtIEZXDQo+IFBFL0NPRkYgbG9hZGVyIG11 c3Qgc3VwcG9ydCBsb2FkaW5nIEhJSSBjb250ZW50IGZyb20gdGhpcyBQRS9DT0ZGIHJlc291cmNl DQo+IHNlY3Rpb24gdG8gYmUgVUVGSSBjb25mb3JtYW50LiAgU28gd2UgY2Fubm90IHJlbW92ZSB0 aGlzIGZlYXR1cmUgZnJvbSB0aGUNCj4gUEUvQ09GRiBsb2FkZXIgd2l0aG91dCBjaGFuZ2VzIHRv IHRoZSBVRUZJIFNwZWNpZmljYXRpb24uICBFdmVuIGlmIGNoYW5nZXMgdG8NCj4gdGhlIFVFRkkg U3BlY2lmaWNhdGlvbiB3ZSBtYWRlLCB3ZSB3b3VsZCBoYXZlIHRvIGNvbnRpbnVlIHRvIHN1cHBv cnQgdGhpcw0KPiBmZWF0dXJlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3Rp bmcgVUVGSSBBcHBzL0RyaXZlcnMgdGhhdCBtYXkNCj4gYmUgdXNpbmcgdGhpcyBmZWF0dXJlLg0K PiA+DQo+ID4gVGhhbmtzLA0KPiA+DQo+ID4gTWlrZQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsy Lmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+IE1hcnZpbg0KPiA+PiBIw6R1c2VyDQo+ID4+IFNl bnQ6IFRodXJzZGF5LCBBdWd1c3QgMjYsIDIwMjEgMTo1MSBBTQ0KPiA+PiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEDQo+ID4+IDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gPj4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBBbmRyZXcgRmlzaCA8YWZp c2hAYXBwbGUuY29tPjsNCj4gPj4gbGVpZkBudXZpYWluYy5jb207IE5pLCBSYXkgPHJheS5uaUBp bnRlbC5jb20+OyBHYW8sIFpoaWNoYW8NCj4gPj4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IFdh bmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgV3UsDQo+IEhhbw0KPiA+PiBBIDxo YW8uYS53dUBpbnRlbC5jb20+OyBCaSwgRGFuZGFuIDxkYW5kYW4uYmlAaW50ZWwuY29tPjsgRG9u ZywgRXJpYw0KPiA+PiA8ZXJpYy5kb25nQGludGVsLmNvbT47IEJyZXQgQmFya2VsZXcgPEJyZXQu QmFya2VsZXdAbWljcm9zb2Z0LmNvbT47DQo+ID4+IFZpdGFseSBDaGVwdHNvdiA8dml0OTY5NkBw cm90b25tYWlsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUkZDXSBFeHBv c2UgSElJIHBhY2thZ2UgbGlzdCB2aWEgQw0KPiA+PiB2YXJpYWJsZXMNCj4gPj4NCj4gPj4gSGV5 IE1pa2UsDQo+ID4+DQo+ID4+IFRoYW5rcyBmb3IgeW91ciByZXBseSENCj4gPj4NCj4gPj4gV2Vs bCwgdGhpcyBzd2l0Y2ggaXMgbm90IHdlbGwtZG9jdW1lbnRlZC4gTG9va2luZyBub3cgYXQgYm90 aCB0aGUNCj4gPj4gZ2VuZXJhdGlvbiBjb2RlIGFuZCB0aGUgZW1pdHRlZCBjb2RlLCBpdCBkb2Vz IG5vdCBnZW5lcmF0ZSBhIHBhY2thZ2UNCj4gPj4gbGlzdCBsaWtlIG15IGNvZGUgZG9lcywgYnV0 IHNlcGFyYXRlIGRhdGEgdmFyaWFibGVzIChzdHJpbmdzIGFuZA0KPiA+PiBpbWFnZXMpIHRoYXQg Y2Fubm90IGVhc2lseSBiZSBwYXNzZWQgdG8gSGlpRGF0YWJhc2UgYXMtaXMuIEhvd2V2ZXINCj4g Pj4gYXBwYXJlbnRseSB0aGVyZSBhcmUgZHJpdmVycyB0aGF0IHVzZSB0aGlzIGZ1bmN0aW9uYWxp dHkgc3VjY2Vzc2Z1bGx5DQo+ID4+IGJ5IGNvbXBvc2luZyB0aGUgcGFja2FnZSBsaXN0IGF0IHJ1 bnRpbWUgWzFdLg0KPiA+Pg0KPiA+PiBMb29raW5nIHdpdGggdGhpcyBpbmZvcm1hdGlvbiBub3cg YXQgdGhlIHBhdHRlcm4gb2YgdXNpbmcgSElJIEMNCj4gPj4gdmFyaWFibGVzICh3aGljaCBJIGRp ZCBub3Qga25vdyBleGlzdGVkIGJlZm9yZSkgdnMgdGhlIFBFL0NPRkYgSElJDQo+ID4+IHNlY3Rp b24sIG1vc3QgdGhhdCB1c2UgbGF0dGVyIGFyZSBTaGVsbCBhcHBsaWNhdGlvbnMsIHdoaWNoIEkg Z3Vlc3MNCj4gPj4gbWVhbnMgdGhlIHNlY3Rpb24gaGFzIGFjdHVhbGx5IGJlZW4gaW50cm9kdWNl ZCB0byByZXNvbHZlIEQuPyBUaGVyZQ0KPiA+PiBhcmUgZXhjZXB0aW9ucyBzdWNoIGFzIExvZ29E eGUgWzJdLCB3aGljaCB1c2UgdGhlIFBFL0NPRkYgc2VjdGlvbiB3aGlsZQ0KPiBELg0KPiA+PiBp cyBub3QgYSBwcm9ibGVtLCBoZW5jZSBJIGdvdCBjb25mdXNlZCwgc29ycnkuIEkgdGhpbmsgdGhl c2UgbW9kdWxlcw0KPiA+PiBzaG91bGQgYmUgdXBkYXRlZCBpbiBhbnkgY2FzZS4gRG8geW91IGFn cmVlPw0KPiA+Pg0KPiA+PiBTbywgZm9yIG1vZHVsZXMgdGhhdCB1c2UgQyB2YXJpYWJsZXMgYWxy ZWFkeSwgbXkgcGF0Y2ggd291bGQgc2F2ZSBzb21lDQo+ID4+IHJ1bnRpbWUgZ2VuZXJhdGlvbiBj b2RlIGFuZCBkeW5hbWljIG1lbW9yeSBhbGxvY2F0aW9uIGZvciB0aGUgSElJDQo+ID4+IHBhY2th Z2UgbGlzdC4gVGhpcyB3YXMgbm90IG15IGdvYWwgKGFzIEkgc2FpZCwgSSBkaWRuJ3QgcmVhbGlz ZSBISUkgQw0KPiA+PiB2YXJpYWJsZXMgYWxyZWFkeSB3ZXJlIGEgdGhpbmcgaW4gdGhlIGZpcnN0 IHBsYWNlKSwgYnV0IHRoZSBjaGFuZ2VzDQo+ID4+IGFyZSBzbWFsbCBlbm91Z2ggdGhhdCBpdCBt aWdodCBiZSB3b3J0aCBjb25zaWRlcmluZyBhbnl3YXksIGluIG15DQo+IG9waW5pb24uDQo+ID4+ IElmIGEgSElJIHBhY2thZ2UgbGlzdCBpcyBnZW5lcmF0ZWQgZm9yIGJvdGggU2hlbGwgYW5kIG5v bi1TaGVsbCBhcHBzLA0KPiA+PiB0aGlzIGFsc28gbWVhbnMgY29kZSBwYXRocyBjYW4gYmUgdW5p ZmllZC4gRm9yIGV4YW1wbGUsIHRoZXJlIGNvdWxkIGJlDQo+ID4+IGEgbGlicmFyeSBjbGFzcyB3 aXRoIGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yIHRvIGFkZC9yZW1vdmUgcGFja2FnZXMNCj4g Pj4gZnJvbSB0aGUgSElJIGRhdGFiYXNlIGZvciBhbGwgbW9kdWxlcyB0aGF0IHVzZSBzdWNoLCBT aGVsbCBvciBub3QuIEZvcg0KPiA+PiBCYXNlVG9vbHMgaXQgbWVhbnMgdGhhdCB0aGVyZSBpcyBu byByZWFsIG5lZWQgZm9yIHNlcGFyYXRlIFB5dGhvbiBhbmQNCj4gPj4gQyBwYXRocyBhcyBpZGVh bGx5IHRoZXkganVzdCBnZW5lcmF0ZSB0aGUgZXhhY3Qgc2FtZSBkYXRhLg0KPiA+Pg0KPiA+PiBO b3cgdG8gRC4sIHRoZSBvbmx5IHVzYWdlIGZvciB0aGlzIHNlZW1zIHRvIGJlIHRoYXQgU2hlbGwg Y2FuIGxvY2F0ZQ0KPiA+PiB0aGUgaGVscCB0ZXh0IGluIHRoZSBleGVjdXRhYmxlIHdpdGhvdXQg ZXhlY3V0aW5nIGl0LCB5ZXQgaXQgaXMgZnVsbHkNCj4gPj4gbG9hZGVkIGFueXdheSBbM10uIFRv IGJlIGhvbmVzdCwgSSBmaW5kIGl0IGhhcmQgdG8ganVzdGlmeSBsb2FkaW5nIGFuDQo+ID4+IGV4 ZWN1dGFibGUgKFBFL0NPRkYgbG9hZGluZywgbWVtb3J5IHBlcm1pc3Npb24gYXBwbGljYXRpb24s IHRoZSBmdWxsDQo+ID4+IHByb2Nlc3MpIHRvIHJldHJpZXZlIGEgaGVscCB0ZXh0IGFuZCB0aGVu IHVubG9hZGluZyBpdCBhZ2FpbiwNCj4gPj4gZXNwZWNpYWxseSB3aXRoIHRoZSBISUkgY29kZSBi ZWluZyBvbiBhIGNvcmUgZGlzcGF0Y2hlciBsZXZlbC4gMS4gdG8NCj4gPj4gNy4gc3RpbGwgaG9s ZCB0cnVlIGluIG15IG9waW5pb24uIFdhcyB0aGVyZSBhbnkgZGlzY3Vzc2lvbiBJIGNvdWxkDQo+ ID4+IHJlYWQgdGhyb3VnaCB3aHkgU2hlbGwgYXBwcyBjYW5ub3Qgc2ltcGx5IHN1cHBvcnQgYSAi LS1oZWxwIiBvciAiLT8iDQo+ID4+IGNvbW1hbmQgYW5kIG91dHB1dCB0aGUgc3RyaW5nIHRoZW1z ZWx2ZXM/IFB1c2hpbmcgdGhlIGJ1cmRlbiB0byB0aGUNCj4gPj4gU2hlbGwgYXBwcyBkb2VzIHBy ZXNlcnZlIHRoZSAiZHJhd2JhY2siIHRoYXQgYSBmdWxsIGxvYWRpbmcgaXMNCj4gPj4gcmVxdWly ZWQgKHdoaWNoIGhvbmVzdGx5IGRvZXMgbm90IG1hdHRlciBmb3IgYSBkZWJ1Z2dpbmcgYXBwbGlj YXRpb24NCj4gPj4gbGlrZSBTaGVsbCksIGhvd2V2ZXIgaXQgZG9lcyByZWxpZXZlIHRoZSBidXJk ZW4gb2YgUEUvQ09GRiBISUkgcGFyc2luZw0KPiA+PiBmcm9tIHRoZSBjb3JlIGRpc3BhdGNoZXIg KHdoaWNoIG1hdHRlcnMgYSBsb3QgaW4gbXkgb3BpbmlvbiB0byBrZWVwDQo+ID4+IHRoZSBjb3Jl IHNpbXBsZSkuIEl0IHdvdWxkIHNpbXBseSBiZSBhIG5vcm1hbCBTaGVsbCBhcHAgZXhlY3V0aW9u IGFzDQo+ID4+IGFueSBvdGhlciBob3dldmVyLiBJZiBzb21lb25lIHdhbnRzIHRvIGF2b2lkIHRo ZSBQRS9DT0ZGIGJ1cmRlbg0KPiA+PiBhbHRvZ2V0aGVyLCB0aGV5IGNhbiBzdGlsbCBwcm92aWRl IGEgLm1hbiBmaWxlLg0KPiA+Pg0KPiA+PiBBcyBmb3IgbXkgcG9pbnRzIDYuIGFuZCA3LiwgbWF5 YmUgSSBzaG91bGQgcHJvdmlkZSBzb21lIGNvbnRleHQuIER1ZQ0KPiA+PiB0byBtYW55IGlzc3Vl cyB3aXRoIFRFIGZpbGVzLCBwbGF0Zm9ybXMgc3RhcnRlZCBhYmFuZG9uaW5nIHRoZW0gYW5kDQo+ ID4+IHJldHVybmVkIHRvIFBFL0NPRkYgSW1hZ2VzLiBJIHRoaW5rIGEgYmlnIHJlYXNvbiBmb3Ig dGhpcyBpcyB0aGF0IFRFDQo+ID4+IGlzIG5vdCByZWFsbHkgYSBzb3VuZCBhbmQgY29tcGxldGUg Zm9ybWF0LCBidXQgYSBzdHJpcHBlZCB2ZXJzaW9uIG9mDQo+ID4+IFBFL0NPRkYgd2l0aCBub25l IG9mIHRoZSBuZWNlc3NhcnkgZml4dXBzIGFwcGxpZWQuIEknbSBjdXJyZW50bHkNCj4gPj4gc2tl dGNoaW5nIGEgcG9zc2libGUgYWx0ZXJuYXRpdmUgWzRdLCBhbmQgSSB3b3VsZCByZWFsbHkgbGlr ZSB0byBub3QNCj4gPj4gaGF2aW5nIHRvIHNwZWNpZnkgYSBISUkgc2VjdGlvbiB0eXBlLCB3aGls ZSBzdGlsbCBwcmVzZXJ2aW5nDQo+ID4+IGNvbXBhdGliaWxpdHkgd2l0aCBhbGwgb2YgdGhlIFVF RkkgSW1hZ2UgdHlwZXMgYW5kIHVzZS1jYXNlcyBbNF0uDQo+ID4+DQo+ID4+IFRoYW5rcyBhZ2Fp biENCj4gPj4NCj4gPj4gQmVzdCByZWdhcmRzLA0KPiA+PiBNYXJ2aW4NCj4gPj4NCj4gPj4NCj4g Pj4gWzFdDQo+ID4+DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iLzdi NGE5OWJlOGEzOWMxMmQzYTdmYzRiOGRiOWYwZQ0KPiBhDQo+ID4+IGI0YWM2ODhkNS9NZGVNb2R1 bGVQa2cvQXBwbGljYXRpb24vQm9vdE1hbmFnZXJNZW51QXANCj4gPj4gcC9Cb290TWFuYWdlck1l bnUuYyNMOTI5LUw5MzQNCj4gPj4NCj4gPj4gWzJdDQo+ID4+DQo+IGh0dHBzOi8vZ2l0aHViLmNv bS90aWFub2NvcmUvZWRrMi9ibG9iLzdiNGE5OWJlOGEzOWMxMmQzYTdmYzRiOGRiOWYwZQ0KPiBh DQo+ID4+IGI0YWM2ODhkNS9NZGVNb2R1bGVQa2cvTG9nby9Mb2dvRHhlLmluZiNMMjMNCj4gPj4N Cj4gPj4gWzNdDQo+ID4+DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9i LzdiNGE5OWJlOGEzOWMxMmQzYTdmYzRiOGRiOWYwZQ0KPiBhYjRhYzY4OGQ1L1NoZWxsUGtnL0Fw cGxpY2F0aW9uL1NoZWxsL1NoZWxsTWFuUGFyc2VyLg0KPiA+PiBjI0w2NDYtTDY3MQ0KPiA+Pg0K PiA+PiBbNF0NCj4gPj4NCj4gaHR0cHM6Ly9naXRodWIuY29tL21oYWV1c2VyL2VkazIvYmxvYi91 ZV9wb2MvTWRlUGtnL0luY2x1ZGUvSW5kdXN0cg0KPiB5U3QNCj4gPj4gYW5kYXJkL1VlSW1hZ2Uu aA0KPiA+Pg0KPiA+PiAyNi4wOC4yMDIxIDAwOjM0OjEyIE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPjoNCj4gPj4NCj4gPj4+IEhpIE1hcnZpbiwNCj4gPj4+DQo+ ID4+PiBJIHRoaW5rIHRoaXMgZmVhdHVyZSBpcyBhbHJlYWR5IHRoZXJlIGFuZCBzdXBwb3J0ZWQu DQo+ID4+Pg0KPiA+Pj4gSElJIGNhbiBlaXRoZXIgYmUgaW4gYSBnbG9iYWwgdmFyaWFibGUgb3Ig aW4gYSBQRS9DT0ZGIHJlc291cmNlIHNlY3Rpb24uDQo+ID4+PiBUaGUgZGVmYXVsdCBpcyBhIGds b2JhbCB2YXJpYWJsZSBiZWNhdXNlIEhJSSB3YXMgaW1wbGVtZW50ZWQgYmVmb3JlDQo+ID4+PiB0 aGUgUEUvQ09GRiByZXNvdXJjZSBzZWN0aW9uIGZlYXR1cmUgd2FzIGFkZGVkIHRvIHRoZSBVRUZJ DQo+IFNwZWNpZmljYXRpb24uDQo+ID4+Pg0KPiA+Pj4gVGhlcmUgaXMgYW4gSU5GIFtEZWZpbmVz XSBzZWN0aW9uIHN0YXRlbWVudCB0byBlbmFibGUgdGhlIFBFL0NPRkYNCj4gPj4+IHNlY3Rpb24u IFNlZSBVZWZpSGlpUmVzb3VyY2UgaW4gdGhlIGZvbGxvd2luZyBsaW5rLg0KPiA+Pj4NCj4gPj4+ IGh0dHBzOi8vdGlhbm9jb3JlLWRvY3MuZ2l0aHViLmlvL2VkazItSW5mU3BlY2lmaWNhdGlvbi9k cmFmdC8zX2Vka19pDQo+ID4+PiBpX2luZl9maWxlX2Zvcm1hdC8zNF9bZGVmaW5lc11fc2VjdGlv bi5odG1sIzM0LQ0KPiA+PiBkZWZpbmVzLXNlY3Rpb24NCj4gPj4+IEhvdyBpcyB5b3VyIHByb3Bv c2FsIGRpZmZlcmVudCB0aGFuIHRoaXMgZXhpc3RpbmcgY2FwYWJpbGl0eT8NCj4gPj4+DQo+ID4+ PiBUaGFua3MsDQo+ID4+Pg0KPiA+Pj4gTWlrZQ0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBl ZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+ID4+Pj4gTWFydmluIEjDpHVzZXINCj4gPj4+ PiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyNSwgMjAyMSAyOjIxIFBNDQo+ID4+Pj4gVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+Pj4gQ2M6IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5j b20+OyBsZWlmQG51dmlhaW5jLmNvbTsgS2lubmV5LA0KPiA+Pj4+IE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsNCj4gPj4+ PiBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IFdhbmcsIEppYW4gSg0KPiA+ Pj4+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNv bT47IEJpLA0KPiBEYW5kYW4NCj4gPj4+PiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IERvbmcsIEVy aWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBCcmV0DQo+ID4+Pj4gQmFya2VsZXcgPEJyZXQuQmFy a2VsZXdAbWljcm9zb2Z0LmNvbT47IFZpdGFseSBDaGVwdHNvdg0KPiA+Pj4+IDx2aXQ5Njk2QHBy b3Rvbm1haWwuY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUkZDXSBFeHBvc2Ug SElJIHBhY2thZ2UgbGlzdCB2aWEgQyB2YXJpYWJsZXMNCj4gPj4+Pg0KPiA+Pj4+IEdvb2QgZGF5 IGV2ZXJ5b25lLA0KPiA+Pj4+DQo+ID4+Pj4gQ3VycmVudGx5LCB0aGUgSElJIHBhY2thZ2UgbGlz dCBpcyBzdG9yZWQgaW4gYSBQRS9DT0ZGIHJlc291cmNlDQo+ID4+Pj4gc2VjdGlvbiBbMV0uIEkg cHJvcG9zZSB0byBzdG9yZSBpdCBpbiBhIEMgdmFyaWFibGUgKGJ5dGUgYXJyYXkgd2l0aA0KPiA+ Pj4+IGEgcG9pbnRlciB0byBpdCBhbmQgaXRzIHNpemUgZXhwb3NlZCkgaW5zdGVhZC4gRHhlQ29y ZSB3b3VsZCBoYXZlIGENCj4gPj4+PiBndWFyZCB0byB0b2dnbGUgdGhlIGRlcHJlY2F0ZWQgc3Vw cG9ydCBmb3IgdGhlIGF1dG9tYXRpYyBwcm90b2NvbA0KPiA+Pj4+IGluc3RhbGxhdGlvbi4gVGhp cyBoYXMgdGhlIGZvbGxvd2luZyBhZHZhbnRhZ2VzOg0KPiA+Pj4+DQo+ID4+Pj4gMS4gRml4ZXMg QlogKGluY2wuIGZ1dHVyZSB0b29sY2hhaW5zKToNCj4gPj4+PiBodHRwczovL2J1Z3ppbGxhLnRp YW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1Nw0KPiA+Pj4+IDIuIFVuaXZlcnNhbCBtZXRo b2QgYWNyb3NzIGFsbCB0b29sY2hhaW5zIGFuZCBvdXRwdXQgZmlsZSBmb3JtYXRzDQo+ID4+Pj4g My4gU2F2ZXMgZXJyb3ItcHJvbmUgcGFyc2luZyB3b3JrIDQuIFNhdmVzIHByb3RvY29sIGluc3Rh bGwvbG9jYXRlDQo+ID4+Pj4gd29yaywgdGhlIGRhdGEgaXMgYXZhaWxhYmxlIHJpZ2h0IGF3YXkg NS4gVGhlIG9taXNzaW9uIG9mIGENCj4gPj4+PiBkZWRpY2F0ZWQgc2VjdGlvbiBjYW4gc2F2ZSBz cGFjZSA2LiBUZXJzZSBmaWxlIGZvcm1hdHMgY2FuIHN1cHBvcnQNCj4gPj4+PiB0aGlzIGFuZCBy ZW1haW4gdGVyc2UgOikgNy4gUmVtb3ZlcyBhIGRlcGVuZGVuY3kgb24gdGhlIFBFL0NPRkYNCj4g Pj4+PiBmb3JtYXQgc3BlY2lmaWNhbGx5DQo+ID4+Pj4NCj4gPj4+PiBBICp2ZXJ5IHJvdWdoKiBQ b0MgZGlmZiBjYW4gYmUgZm91bmQgaGVyZToNCj4gPj4+PiBodHRwczovL2dpdGh1Yi5jb20vbWhh ZXVzZXIvZWRrMi9jb21wYXJlL21hc3Rlci4uLndpcF9oaWlfY3Zhcg0KPiA+Pj4+IElmIHRoZSBm ZWVkYmFjayBpcyBwb3NpdGl2ZSwgSSB3aWxsIGNsZWFuIGl0IHVwIG9mIGNvdXJzZS4gT1ZNRg0K PiA+Pj4+IGJvb3RzIHdpdGggZXZlcnl0aGluZyB3b3JraW5nIGZpbmUuDQo+ID4+Pj4NCj4gPj4+ PiBJJ2QgZXhwbGljaXRseSBsaWtlIGZlZWRiYWNrIG9uIHRoZSBmb2xsb3dpbmc6DQo+ID4+Pj4g QS4gSXMgdGhpcyBhbiBhY2NlcHRhYmxlIHNvbHV0aW9uIHRvIEJaIDU1NyAoQW5kcmV3Pyk/DQo+ ID4+Pj4gQi4gSXMgdGhpcyBhbiBhY2NlcHRhYmxlIHNvbHV0aW9uIGZvciB0aGUgIkhJSSB3b3Jr ZmxvdyIgKE1kZU1vZHVsZQ0KPiA+Pj4+IG1haW50YWluZXJzPyk/DQo+ID4+Pj4gQy4gSXMgaXQg YWNjZXB0YWJsZSB0byBtYWtlIHN1cHBvcnQgVUVGSS1zaWRlIHN1cHBvcnQgZm9yIHRoZSBvbGQN Cj4gPj4+PiBtZWNoYW5pc20gb3B0aW9uYWwgKFN0ZXdhcmRzPyk/DQo+ID4+Pj4gRC4gQ2FuIGFu IGFjY2VwdGFibGUgYWx0ZXJuYXRpdmUgYmUgZm91bmQgZm9yIHRoZSByZW1vdmVkIFNoZWxsUGtn DQo+ID4+Pj4gY29kZSAoU2hlbGwgbWFpbnRhaW5lcnM/KT8NCj4gPj4+Pg0KPiA+Pj4+IEFzIHlv dSBjYW4gc2VlIHRoZSBCYXNlVG9vbHMgcGFydCBhbHNvIGlzIHJvdWdoLCBidXQgdGhhdCBpcyBt b3JlIGENCj4gPj4+PiBxdWVzdGlvbiBvZiAiaG93IiByYXRoZXIgdGhhbiAid2hldGhlciIsIHNv IEknbGwgcG9zdHBvbmUgYXNraW5nIGFib3V0DQo+IGl0Lg0KPiA+Pj4+DQo+ID4+Pj4gVGhhbmtz IGZvciB5b3VyIHRpbWUgYW5kIGZlZWRiYWNrIQ0KPiA+Pj4+DQo+ID4+Pj4gQmVzdCByZWdhcmRz LA0KPiA+Pj4+IE1hcnZpbg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBbMV0gIk9uY2UgdGhlIGlt YWdlIGlzIGxvYWRlZCwgTG9hZEltYWdlKCkgaW5zdGFsbHMNCj4gPj4+PiBFRklfSElJX1BBQ0tB R0VfTElTVF9QUk9UT0NPTCBvbiB0aGUgaGFuZGxlIGlmIHRoZSBpbWFnZSBjb250YWlucw0KPiBh DQo+ID4+Pj4gY3VzdG9tIFBFL0NPRkYgcmVzb3VyY2Ugd2l0aCB0aGUgdHlwZSAnSElJJy4iDQo+ ID4+Pj4gLSBVRUZJIDIuOSwgNy40LCAiRUZJX0JPT1RfU0VSVklDRVMuTG9hZEltYWdlKCkiDQo+ ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4N Cj4gPj4NCj4gPj4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4NCj4NCj4NCj4gDQo+ DQoNCklNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFuZCBhbnkg YXR0YWNobWVudHMgYXJlIGNvbmZpZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmlsZWdlZC4g SWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIG5vdGlmeSB0aGUg c2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRvIGFu eSBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9yIHN0b3JlIG9yIGNvcHkg dGhlIGluZm9ybWF0aW9uIGluIGFueSBtZWRpdW0uIFRoYW5rIHlvdS4NCg==