From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web12.536.1662744050541208361 for ; Fri, 09 Sep 2022 10:20:50 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=fBsBMq7p; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662744050; x=1694280050; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=75fA7kMu+sRkQoCRHKjuRq/+pUZizlQ9D8thU1RlOsc=; b=fBsBMq7p0zr4b16huuhUIDgC6phYvECi9lAU/+Ad4HtLCXKA1XCeoh5e 3xSHezdujQpMWHnpm+M9u/FvjFUeqo6QVEB5+dne51kS8AMrkVQFAQPbG ROUvUUbJmQwMlQXa9I3LfIPVqHFJEvR0Ldgfgx4T8SUmMpYlbPsc9szoN GN4Byma7lqQD3rsOlS3Hs7Yytw1Hj6SgAGSZZfR3fgDvEAw444quxUTna C9OUGribriR1yr853xGMVjJ9qUW5BMM+U2CaIgANIqBvphK/nlnDo5EBT PJdDBKtxaV7tZBfsPu+VeAo74L+rzVEEFT29C2Fesj6b8TXwHI4HaWVJj w==; X-IronPort-AV: E=McAfee;i="6500,9779,10465"; a="383823199" X-IronPort-AV: E=Sophos;i="5.93,303,1654585200"; d="scan'208";a="383823199" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Sep 2022 10:20:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,303,1654585200"; d="scan'208";a="566438851" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga003.jf.intel.com with ESMTP; 09 Sep 2022 10:20:42 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 9 Sep 2022 10:20:41 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Fri, 9 Sep 2022 10:20:41 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Fri, 9 Sep 2022 10:20:41 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LKkgKqD7PjUpPYvI32Ha7Uduldpa6YFuKgUToFf8Fm3vsjUeok1Jvrd0Q1o4xr/jdi30l3xw8DR7YDBdaPeHcOuFg1WSQ+1brwNhxEylxd2hjwQm0vfIrw0lxMcVWrlwnCI1k+vrfrq+/pw4W5HdfCmSWTYrWWf1EuSUh485+d+H/yQawD/5EdROJRa+0CyVjeUm2vxoBFk3UUG3vkvIyscQRX1cBvj7O1b/cjb3SscT2Hp8aVPu5IwZxiAHX9JYWMseqKR+LMFrvpsSjF8bXLEJ9AHHis48UeRbJoElaUVoE/jGK3T4mBD0K8BZqX3+LQky41ttConxSyD9Nm2dIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=75fA7kMu+sRkQoCRHKjuRq/+pUZizlQ9D8thU1RlOsc=; b=KurJTB0OZTeIl4R1qKkiXH0cp90Y35J5Noe0phTJPULv82H/j6gHN3qW+PyY5ABFwDeOk8Drv+A8i+joV66eJGiqkrj4FoZZsXL8UWQdSit/Pr8Rm71yluLpVcCSkWrOfKpqvkQAiseZwqMFHrXp/yHOPFEGHQjsF+It0XO+fcaW3rS1AbSIfhajQwdvZJYHA3S8AFIsaVUzP/AaHFG6YC4XZnH7bCcz2mDr1RrOVmypiRc71jo4H6MKBtnIw7MAEpcXoVhVWgtoLqOoYKHYw/XJkzfZPm+9gmmatXAcSKKlHAhBOfy6tiWLBSqSeXFfWjbeEeormY1HvdkC3jrqWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by BL1PR11MB6002.namprd11.prod.outlook.com (2603:10b6:208:386::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.19; Fri, 9 Sep 2022 17:20:37 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7890:343e:99cb:21c8]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7890:343e:99cb:21c8%7]) with mapi id 15.20.5612.020; Fri, 9 Sep 2022 17:20:37 +0000 From: "Michael D Kinney" To: Chao Li , "devel@edk2.groups.io" , "Kinney, Michael D" CC: "Gao, Liming" , "Liu, Zhiguang" , Baoqi Zhang Subject: Re: [PATCH v1 23/34] MdePkg/BaseLib: BaseLib for LOONGARCH64 architecture. Thread-Topic: [PATCH v1 23/34] MdePkg/BaseLib: BaseLib for LOONGARCH64 architecture. Thread-Index: AQHYwz69ylCsGdbxb0qyvMfFd4cyZa3XWiXw Date: Fri, 9 Sep 2022 17:20:37 +0000 Message-ID: References: <20220908045140.1191676-1-lichao@loongson.cn> In-Reply-To: <20220908045140.1191676-1-lichao@loongson.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|BL1PR11MB6002:EE_ x-ms-office365-filtering-correlation-id: 35beb01b-3aa1-43ea-ef8a-08da92879cbf x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FKN89bBMAqo64Tu9LfJ/AUBrOny5Xxrdo8T2TTXy0ZDaXMg3aimV5xn82gPcftfPQPLEYYsltzhsiLVR3cYvPNWEwbIQ6aa3erSjZ+eHwNRSsYkE0vAVIbrpYbp5ZnJqxwUZ5o7SuROf2iA2qcVsvD8CPpcGuZoWoweM1/3ZTHuGbYZkklzmkcytm8qzHczLj2wNLrKC4K1uXJZ7+QSKH7mWeE7IkwIrKV349S9B33l1MWZRCZdb1Y7Dk3+5F0cIRtzePZpYyne2akzU6Z/LNi6ShaY8ip2AjqWVxf1MaOWO2UjKq3R5yUH7q7kgk0GYh8+xOYerkIy2Lxdebw5ObaODd+gJ5RrXzrJaYgXYCRkWIZ/YP32XPHQFI6snSFuHvOflqEput7bZIbceQ66Wjw5jAwTRGCDS7a9Yx4vItCUUOZNHB4G51GpZyKETs9Bf1AucvXWStEzQhekDzEM/EHLsnpdblVeeIdgAyut5qFsMCw8zakDRHhYfiR0gknMvT/u6zqsnlI9FAn5x0pN3h1r3UKS2cd0MjwK1PoRrOlF48UfSXydeBvGs8GR1aoGdq5TFd6/XvaJwoWQo4nJsjsTW6aHi8LhVdX5qu72dggeYDgl4uuD5xaJR74zetE9PmPY8L4laOsBnNYJQeU2tH1M2QdmUtZf8iGBGoHGzp3Qg5ySHSeEjwGvCfVLeng7iJAZg097+pReJkh5TUbtfY0wuWCHGVBbg/89uS1UH8Hr13zzzSeD/oKq6oHZcvBqfQLIA69g566lkZtrr9yttYg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(136003)(396003)(39860400002)(376002)(366004)(346002)(30864003)(2906002)(5660300002)(8936002)(9686003)(55016003)(26005)(7696005)(33656002)(38100700002)(41300700001)(66556008)(53546011)(6506007)(38070700005)(66476007)(66446008)(66946007)(8676002)(4326008)(64756008)(52536014)(76116006)(71200400001)(19627235002)(82960400001)(45080400002)(86362001)(186003)(54906003)(110136005)(316002)(478600001)(122000001)(83380400001)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SGZIWit2RzE1WjdIQytabFRTZGVKSEZuQWVxVDQzbVFUekFjcndCZk54bTRt?= =?utf-8?B?TzcwK3JhajFTbWkxVEZYN0VqcDJPT1pBbXI2ZTQxTlZleG1oVE45NHQvL0Nh?= =?utf-8?B?UWNtT3JlSTY3NVRxWklPQjM5M1JNVGo5eWNWKzQyS1NnWW4wSGFyRkQ5UTh3?= =?utf-8?B?empNckhnSTdKQ0w2dEt1V2QzZGd1QVJiWWpFa2w2T3dqb09adk1Jc21KZFEv?= =?utf-8?B?Q0IzcExybTA2OTFqZWdCN1FRb0g5ZnVpSXRBbTFZNjgvUnRYc3VsTkpZYXpx?= =?utf-8?B?MUV6OUg2Q0pVbDVUNjVadU4xLzJtUStwTml3bnJiOGhuak5pcXArRmdNcmhO?= =?utf-8?B?TlB6NmdPVklKdUkzK0EwWmVDOERFSjY5Yy9mT1YwdnAzVXRoOGg3TU9sZG1J?= =?utf-8?B?WEpXay9TQWlLZEMwYXlWRExPWXozUUZLMyt4cjhCaDNZQzRqcENROHBiVDA5?= =?utf-8?B?WEEwZnQrelNRMUpob1N3WGplSWFuanBpN2o0N0JNSEwwdVhkTGN1aVpVL0tK?= =?utf-8?B?VzVyNTdVcUVJSnRVSU8vQWVuUlVNMU13R004TFpQSjNsaUZwb2NmYk9hUHRL?= =?utf-8?B?VmFFVXh1QTBWWWxUZTgzV2E0VXFsRmJxSzJia3NkZmRCNU9qZjFERDN3UkU4?= =?utf-8?B?ME5Ga2lGaHNwR1A4ZElONlhicFhXckp1TnFTeWVtb05wNlZXTnJSK01rY0J4?= =?utf-8?B?ZWE3UXNIWS90U0Yza2FsTENZWHlFNnNQQzE0UkptV3JRTW9GR3ZRWk9YZWxr?= =?utf-8?B?SVJPYUNlS0g1SjJmVDEwVDY0a0lvNUNCWGJObEJUNUhaWk1nQnZYa2FmR201?= =?utf-8?B?YkRIYThqSm0vZEE0anVMOUw5ZE9ZcEkvYitzWUJXekZjc09WbzUrNjF4SkxX?= =?utf-8?B?REJQRHdjN0w2MnRReFZiaUVlYzhTTFZQZHorU25rL2FlbndwRHlKcEY2aUMr?= =?utf-8?B?eExweE9UbGZnOERYRXRvbHRwcGx1YkszOE54M1dORlBDSWVROFRwRVBuTUFU?= =?utf-8?B?YTB0cGtKTVVhL3hUK2t0Qkk1V0x6N1V4VDVwOGJ3RzlvejYzMExNdkRNVHc2?= =?utf-8?B?QjBCQTJGdVkzR0d0anlVVCtyNU1FMVk5bmkwdmZKWFNqaEsreFdXUGFkQnFC?= =?utf-8?B?R1cyM3Q2Ym1YbFEyajhaaDl5aEFIT2RRaFR1MGZoV0l3c2hJWnNwL1NYbjRp?= =?utf-8?B?UmRHbzhIb1R0V1hjb2JqUDgyZDBKdld2b1k1REcyZnFRUGdGYy9lWUZBVzFs?= =?utf-8?B?NEdrMXpxQ0o3cExqNEhNcm5RWGdWazRRK05VbkMvb0JEK1FtRTQ1aWZraldJ?= =?utf-8?B?YVdJSlpiMW1mNmlsTC9BWjFLcUFRQURBaUNHdUw0ZWdxQ1JxdlRHWUVJbk9R?= =?utf-8?B?YkRxTjZkS0hJNCtDMVlBY0pJakFxNFFydWU5K1hoaGltMVBsVFkzRHBZR1Er?= =?utf-8?B?MjlQUURzSWJyTGs5VmRWcDBWeko0OWJrOGdwbHVpclcxR2VTQ01Mc3l5bk5U?= =?utf-8?B?WWpvV1ByM0xTajdnRFBXdjRMZUh0NzVkWWp4eDZPbnVXOC9LV3VpMHNpeVB0?= =?utf-8?B?MTAwZ2ZhZGY0anRwVkZCZmdiR0Y2b1FkWFFQK3pGTi9sQU9VcG9VOGgzMFhX?= =?utf-8?B?K0xlb2VtaG9QT1F6aDJaa3BnSnZGb0kxdjZTR2tIREp3MGRTSzNjcmZDeW9H?= =?utf-8?B?WnZ1cGdpMlQ0WVdQZDdzaG9RSXdWZ3dIZWs2TkpTOVp6RFNqc28yMEttMnJW?= =?utf-8?B?WDFWQ0poQnlkazVMdUlTeDg0TFFkbWdseGdreHE3SmNYeEdYUmZtN3RidTh2?= =?utf-8?B?WUZxc3pZM050WTJrYmRDNVl5b0QzUktzdE1QYVB4MWRqdGQ3d1hrZTJDWm9v?= =?utf-8?B?b3paY09QYlM0aUJiVHJhRjdmUll4dys4Z1cvbWJlNDYwT1F6QVIrcU4yRFAy?= =?utf-8?B?SnZsU1dWcDZBcFpEQWdIWTdENUlVT1lERmhycDlBMFBud0Q2ODhxMndwdDJn?= =?utf-8?B?a2YzZisvS2gyc3pYTElGTmZSbCtUYWRyWWN1YUJDSzZZS1lIQ0toUHdObmdV?= =?utf-8?B?T3pNMnhZQ1NFUnAzRGdMRFVlUEptVTl3WE1wRW5zV1BpTE4vMHFITHBNOWla?= =?utf-8?B?L2tIRHk0Uk9nM1FvZk1iRHRhVXZuczdXSlpNSkFxYndGeXlYWGxpUFBXRTh2?= =?utf-8?B?OEE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35beb01b-3aa1-43ea-ef8a-08da92879cbf X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Sep 2022 17:20:37.3942 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: VNKZhEhvNUv3OulukyUcf29bT6xu5+OjuElfgnrYg0aDxB5kuvcC4uwqLH5nsKjHpAfoUVmvZhTUq+bXCQgnfjSqD6lGWrF/HeVUy+6WuJc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB6002 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Rm9yIHVuYWxpZ25lZCByZWFkL3dyaXRlIGZ1bmN0aW9ucywgY2FuIHlvdSB1c2Ugb25lIG9mIHRo ZSBvdGhlciBCYXNlTGliIHNvdXJjZSBmaWxlcw0KdGhhdCBhbHJlYWR5IHByb3ZpZGVzIGEgZ2Vu ZXJpYyBpbXBsZW1lbnRhdGlvbj8NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IENoYW8gTGkgPGxpY2hhb0Bsb29uZ3Nvbi5jbj4NCj4gU2VudDogV2VkbmVz ZGF5LCBTZXB0ZW1iZXIgNywgMjAyMiA5OjUyIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsg R2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcNCj4g PHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBCYW9xaSBaaGFuZyA8emhhbmdiYW9xaUBsb29uZ3Nv bi5jbj4NCj4gU3ViamVjdDogW1BBVENIIHYxIDIzLzM0XSBNZGVQa2cvQmFzZUxpYjogQmFzZUxp YiBmb3IgTE9PTkdBUkNINjQgYXJjaGl0ZWN0dXJlLg0KPiANCj4gQWRkIExvb25nQXJjaCBMT09O R0FSQ0g2NCBCYXNlTGliIGZ1bmN0aW9ucy4NCj4gDQo+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0Bi eW9zb2Z0LmNvbS5jbj4NCj4gQ2M6IFpoaWd1YW5nIExpdSA8emhpZ3VhbmcubGl1QGludGVsLmNv bT4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IENoYW8gTGkgPGxpY2hhb0Bsb29uZ3Nvbi5jbj4NCj4g Q28tYXV0aG9yZWQtYnk6IEJhb3FpIFpoYW5nIDx6aGFuZ2Jhb3FpQGxvb25nc29uLmNuPg0KPiAt LS0NCj4gIE1kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUxpYi5oICAgICAgICAgICAgICB8ICAy NCArKw0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZiAgICAgICAgICAgIHwg IDEzICsNCj4gIC4uLi9CYXNlTGliL0xvb25nQXJjaDY0L0NwdUJyZWFrcG9pbnQuUyAgICAgICB8 ICAyNCArKw0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9Mb29uZ0FyY2g2NC9DcHVQYXVzZS5T IHwgIDMxICsrKw0KPiAgLi4uL0Jhc2VMaWIvTG9vbmdBcmNoNjQvRGlzYWJsZUludGVycnVwdHMu UyAgIHwgIDIxICsrDQo+ICAuLi4vQmFzZUxpYi9Mb29uZ0FyY2g2NC9FbmFibGVJbnRlcnJ1cHRz LlMgICAgfCAgMjEgKysNCj4gIC4uLi9CYXNlTGliL0xvb25nQXJjaDY0L0dldEludGVycnVwdFN0 YXRlLlMgICB8ICAzNSArKysNCj4gIC4uLi9CYXNlTGliL0xvb25nQXJjaDY0L0ludGVybmFsU3dp dGNoU3RhY2suYyB8ICA1OCArKysrKw0KPiAgLi4uL0xpYnJhcnkvQmFzZUxpYi9Mb29uZ0FyY2g2 NC9NZW1vcnlGZW5jZS5TIHwgIDE5ICsrDQo+ICAuLi4vQmFzZUxpYi9Mb29uZ0FyY2g2NC9TZXRK dW1wTG9uZ0p1bXAuUyAgICAgfCAgNDkgKysrKw0KPiAgLi4uL0xpYnJhcnkvQmFzZUxpYi9Mb29u Z0FyY2g2NC9Td2l0Y2hTdGFjay5TIHwgIDM5ICsrKw0KPiAgLi4uL0xpYnJhcnkvQmFzZUxpYi9M b29uZ0FyY2g2NC9VbmFsaWduZWQuYyAgIHwgMjQyICsrKysrKysrKysrKysrKysrKw0KPiAgMTIg ZmlsZXMgY2hhbmdlZCwgNTc2IGluc2VydGlvbnMoKykNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBN ZGVQa2cvTGlicmFyeS9CYXNlTGliL0xvb25nQXJjaDY0L0NwdUJyZWFrcG9pbnQuUw0KPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvQ3B1UGF1 c2UuUw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdB cmNoNjQvRGlzYWJsZUludGVycnVwdHMuUw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9M aWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvRW5hYmxlSW50ZXJydXB0cy5TDQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9Mb29uZ0FyY2g2NC9HZXRJbnRlcnJ1 cHRTdGF0ZS5TDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9M b29uZ0FyY2g2NC9JbnRlcm5hbFN3aXRjaFN0YWNrLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBN ZGVQa2cvTGlicmFyeS9CYXNlTGliL0xvb25nQXJjaDY0L01lbW9yeUZlbmNlLlMNCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0xvb25nQXJjaDY0L1NldEp1bXBM b25nSnVtcC5TDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9M b29uZ0FyY2g2NC9Td2l0Y2hTdGFjay5TDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xp YnJhcnkvQmFzZUxpYi9Mb29uZ0FyY2g2NC9VbmFsaWduZWQuYw0KPiANCj4gZGlmZiAtLWdpdCBh L01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUxpYi5oIGIvTWRlUGtnL0luY2x1ZGUvTGlicmFy eS9CYXNlTGliLmgNCj4gaW5kZXggYTZmOWExOTRlZi4uZjNmNTlmMjFjMiAxMDA2NDQNCj4gLS0t IGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4gKysrIGIvTWRlUGtnL0luY2x1 ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4gQEAgLTYsNiArNiw3IEBAIENvcHlyaWdodCAoYykgMjAw NiAtIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g IFBvcnRpb25zIGNvcHlyaWdodCAoYykgMjAwOCAtIDIwMDksIEFwcGxlIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+IA0KPiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRp b24uPEJSPg0KPiANCj4gIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAyMCwgSGV3bGV0dCBQYWNr YXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiANCj4gK1BvcnRpb25zIENvcHlyaWdodCAoYykgMjAyMiwgTG9vbmdzb24gVGVjaG5vbG9neSBD b3Jwb3JhdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+IA0KPiAN Cj4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiAN Cj4gDQo+IEBAIC0xNTIsNiArMTUzLDI5IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gDQo+IA0KPiAg I2VuZGlmIC8vIGRlZmluZWQgKE1ERV9DUFVfUklTQ1Y2NCkNCj4gDQo+IA0KPiANCj4gKyNpZiBk ZWZpbmVkIChNREVfQ1BVX0xPT05HQVJDSDY0KQ0KPiANCj4gKy8vLw0KPiANCj4gKy8vLyBUaGUg TG9vbmdBcmNoIGFyY2hpdGVjdHVyZSBjb250ZXh0IGJ1ZmZlciB1c2VkIGJ5IFNldEp1bXAoKSBh bmQgTG9uZ0p1bXAoKQ0KPiANCj4gKy8vLw0KPiANCj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gDQo+ ICsgIFVJTlQ2NCAgICBTMDsNCj4gDQo+ICsgIFVJTlQ2NCAgICBTMTsNCj4gDQo+ICsgIFVJTlQ2 NCAgICBTMjsNCj4gDQo+ICsgIFVJTlQ2NCAgICBTMzsNCj4gDQo+ICsgIFVJTlQ2NCAgICBTNDsN Cj4gDQo+ICsgIFVJTlQ2NCAgICBTNTsNCj4gDQo+ICsgIFVJTlQ2NCAgICBTNjsNCj4gDQo+ICsg IFVJTlQ2NCAgICBTNzsNCj4gDQo+ICsgIFVJTlQ2NCAgICBTODsNCj4gDQo+ICsgIFVJTlQ2NCAg ICBTUDsNCj4gDQo+ICsgIFVJTlQ2NCAgICBGUDsNCj4gDQo+ICsgIFVJTlQ2NCAgICBSQTsNCj4g DQo+ICt9IEJBU0VfTElCUkFSWV9KVU1QX0JVRkZFUjsNCj4gDQo+ICsNCj4gDQo+ICsjZGVmaW5l IEJBU0VfTElCUkFSWV9KVU1QX0JVRkZFUl9BTElHTk1FTlQgIDgNCj4gDQo+ICsNCj4gDQo+ICsj ZW5kaWYgLy8gZGVmaW5lZCAoTURFX0NQVV9MT09OR0FSQ0g2NCkNCj4gDQo+ICsNCj4gDQo+ICAv Lw0KPiANCj4gIC8vIFN0cmluZyBTZXJ2aWNlcw0KPiANCj4gIC8vDQo+IA0KPiBkaWZmIC0tZ2l0 IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZiBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VMaWIvQmFzZUxpYi5pbmYNCj4gaW5kZXggNmJlNWJlOTQyOC4uODZkZTNhZTdjZCAxMDA2NDQN Cj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZg0KPiArKysgYi9NZGVQ a2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+IEBAIC00MDIsNiArNDAyLDE5IEBADQo+ ICAgIFJpc2NWNjQvUmlzY1ZJbnRlcnJ1cHQuUyAgICAgICAgICB8IEdDQw0KPiANCj4gICAgUmlz Y1Y2NC9GbHVzaENhY2hlLlMgICAgICAgICAgICAgIHwgR0NDDQo+IA0KPiANCj4gDQo+ICtbU291 cmNlcy5MT09OR0FSQ0g2NF0NCj4gDQo+ICsgIE1hdGg2NC5jDQo+IA0KPiArICBMb29uZ0FyY2g2 NC9VbmFsaWduZWQuYw0KPiANCj4gKyAgTG9vbmdBcmNoNjQvSW50ZXJuYWxTd2l0Y2hTdGFjay5j DQo+IA0KPiArICBMb29uZ0FyY2g2NC9HZXRJbnRlcnJ1cHRTdGF0ZS5TICAgfCBHQ0MNCj4gDQo+ ICsgIExvb25nQXJjaDY0L0VuYWJsZUludGVycnVwdHMuUyAgICB8IEdDQw0KPiANCj4gKyAgTG9v bmdBcmNoNjQvRGlzYWJsZUludGVycnVwdHMuUyAgIHwgR0NDDQo+IA0KPiArICBMb29uZ0FyY2g2 NC9NZW1vcnlGZW5jZS5TICAgICAgICAgfCBHQ0MNCj4gDQo+ICsgIExvb25nQXJjaDY0L0NwdUJy ZWFrcG9pbnQuUyAgICAgICB8IEdDQw0KPiANCj4gKyAgTG9vbmdBcmNoNjQvQ3B1UGF1c2UuUyAg ICAgICAgICAgIHwgR0NDDQo+IA0KPiArICBMb29uZ0FyY2g2NC9TZXRKdW1wTG9uZ0p1bXAuUyAg ICAgfCBHQ0MNCj4gDQo+ICsgIExvb25nQXJjaDY0L1N3aXRjaFN0YWNrLlMgICAgICAgICB8IEdD Qw0KPiANCj4gKw0KPiANCj4gIFtQYWNrYWdlc10NCj4gDQo+ICAgIE1kZVBrZy9NZGVQa2cuZGVj DQo+IA0KPiANCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0xvb25n QXJjaDY0L0NwdUJyZWFrcG9pbnQuUyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNo NjQvQ3B1QnJlYWtwb2ludC5TDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAuLjRlMDIyZTliYjUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9NZGVQa2cvTGlicmFy eS9CYXNlTGliL0xvb25nQXJjaDY0L0NwdUJyZWFrcG9pbnQuUw0KPiBAQCAtMCwwICsxLDI0IEBA DQo+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0KPiArIw0KPiANCj4gKyMgQ3B1QnJlYWtw b2ludCBmb3IgTG9vbmdBcmNoDQo+IA0KPiArIw0KPiANCj4gKyMgQ29weXJpZ2h0IChjKSAyMDIy LCBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiANCj4gKyMNCj4gDQo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiArIw0KPiANCj4gKyMtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gDQo+ICsNCj4gDQo+ICtBU01fR0xPQkFMIEFTTV9QRlgoQ3B1QnJlYWtwb2ludCkNCj4g DQo+ICsNCj4gDQo+ICsjLyoqDQo+IA0KPiArIyAgR2VuZXJhdGVzIGEgYnJlYWtwb2ludCBvbiB0 aGUgQ1BVLg0KPiANCj4gKyMNCj4gDQo+ICsjICBHZW5lcmF0ZXMgYSBicmVha3BvaW50IG9uIHRo ZSBDUFUuIFRoZSBicmVha3BvaW50IG11c3QgYmUgaW1wbGVtZW50ZWQgc3VjaA0KPiANCj4gKyMg IHRoYXQgY29kZSBjYW4gcmVzdW1lIG5vcm1hbCBleGVjdXRpb24gYWZ0ZXIgdGhlIGJyZWFrcG9p bnQuDQo+IA0KPiArIw0KPiANCj4gKyMqKi8NCj4gDQo+ICsNCj4gDQo+ICtBU01fUEZYKENwdUJy ZWFrcG9pbnQpOg0KPiANCj4gKyAgYnJlYWsgMw0KPiANCj4gKyAgamlybCAgJHplcm8sICRyYSwg MA0KPiANCj4gKyAgLmVuZA0KPiANCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VM aWIvTG9vbmdBcmNoNjQvQ3B1UGF1c2UuUyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdB cmNoNjQvQ3B1UGF1c2UuUw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw MDAwLi5lOTE0MGU4NzQyDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvTWRlUGtnL0xpYnJhcnkv QmFzZUxpYi9Mb29uZ0FyY2g2NC9DcHVQYXVzZS5TDQo+IEBAIC0wLDAgKzEsMzEgQEANCj4gKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gDQo+ICsjDQo+IA0KPiArIyBDcHVQYXVzZSBmb3IgTG9v bmdBcmNoDQo+IA0KPiArIw0KPiANCj4gKyMgQ29weXJpZ2h0IChjKSAyMDIyLCBMb29uZ3NvbiBU ZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiANCj4gKyMNCj4gDQo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+IA0KPiArIw0KPiANCj4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gDQo+ICsN Cj4gDQo+ICtBU01fR0xPQkFMIEFTTV9QRlgoQ3B1UGF1c2UpDQo+IA0KPiArDQo+IA0KPiArIy8q Kg0KPiANCj4gKyMgIFJlcXVlc3RzIENQVSB0byBwYXVzZSBmb3IgYSBzaG9ydCBwZXJpb2Qgb2Yg dGltZS4NCj4gDQo+ICsjDQo+IA0KPiArIyAgUmVxdWVzdHMgQ1BVIHRvIHBhdXNlIGZvciBhIHNo b3J0IHBlcmlvZCBvZiB0aW1lLiBUeXBpY2FsbHkgdXNlZCBpbiBNUA0KPiANCj4gKyMgIHN5c3Rl bXMgdG8gcHJldmVudCBtZW1vcnkgc3RhcnZhdGlvbiB3aGlsZSB3YWl0aW5nIGZvciBhIHNwaW4g bG9jay4NCj4gDQo+ICsjDQo+IA0KPiArIyoqLw0KPiANCj4gKw0KPiANCj4gK0FTTV9QRlgoQ3B1 UGF1c2UpOg0KPiANCj4gKyAgbm9wDQo+IA0KPiArICBub3ANCj4gDQo+ICsgIG5vcA0KPiANCj4g KyAgbm9wDQo+IA0KPiArICBub3ANCj4gDQo+ICsgIG5vcA0KPiANCj4gKyAgbm9wDQo+IA0KPiAr ICBub3ANCj4gDQo+ICsgIGppcmwgJHplcm8sICRyYSwgMA0KPiANCj4gKyAgLmVuZA0KPiANCj4g ZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvRGlzYWJsZUlu dGVycnVwdHMuUyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvRGlzYWJsZUlu dGVycnVwdHMuUw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi4w ZjIyODMzOWFmDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxp Yi9Mb29uZ0FyY2g2NC9EaXNhYmxlSW50ZXJydXB0cy5TDQo+IEBAIC0wLDAgKzEsMjEgQEANCj4g KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gDQo+ICsjDQo+IA0KPiArIyBMb29uZ0FyY2ggaW50 ZXJydXB0IGRpc2FibGUNCj4gDQo+ICsjDQo+IA0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMjIsIExv b25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+IA0KPiArIw0KPiANCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCj4gDQo+ICsjDQo+IA0KPiArIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiANCj4gKw0KPiANCj4gK0FTTV9HTE9CQUwgQVNNX1BGWChEaXNhYmxlSW50ZXJydXB0cykNCj4g DQo+ICsNCj4gDQo+ICsjLyoqDQo+IA0KPiArIyAgRGlzYWJsZXMgQ1BVIGludGVycnVwdHMuDQo+ IA0KPiArIyoqLw0KPiANCj4gKw0KPiANCj4gK0FTTV9QRlgoRGlzYWJsZUludGVycnVwdHMpOg0K PiANCj4gKyAgbGkudyAgICAkdDAsIDB4NA0KPiANCj4gKyAgY3NyeGNoZyAkemVybywgJHQwLCAw eDANCj4gDQo+ICsgIGppcmwgICAgJHplcm8sICRyYSwgMA0KPiANCj4gKyAgLmVuZA0KPiANCj4g ZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvRW5hYmxlSW50 ZXJydXB0cy5TIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9Mb29uZ0FyY2g2NC9FbmFibGVJbnRl cnJ1cHRzLlMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uM2Mz NGZiMmNkZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIv TG9vbmdBcmNoNjQvRW5hYmxlSW50ZXJydXB0cy5TDQo+IEBAIC0wLDAgKzEsMjEgQEANCj4gKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gDQo+ICsjDQo+IA0KPiArIyBMb29uZ0FyY2ggaW50ZXJy dXB0IGVuYWJsZQ0KPiANCj4gKyMNCj4gDQo+ICsjIENvcHlyaWdodCAoYykgMjAyMiwgTG9vbmdz b24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gDQo+ICsjDQo+IA0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiANCj4gKyMNCj4gDQo+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0K PiArDQo+IA0KPiArQVNNX0dMT0JBTCBBU01fUEZYKEVuYWJsZUludGVycnVwdHMpDQo+IA0KPiAr DQo+IA0KPiArIy8qKg0KPiANCj4gKyMgIEVuYWJsZXMgQ1BVIGludGVycnVwdHMuDQo+IA0KPiAr IyoqLw0KPiANCj4gKw0KPiANCj4gK0FTTV9QRlgoRW5hYmxlSW50ZXJydXB0cyk6DQo+IA0KPiAr ICBsaS53ICAgICR0MCwgMHg0DQo+IA0KPiArICBjc3J4Y2hnICR0MCwgJHQwLCAweDANCj4gDQo+ ICsgIGppcmwgICAgJHplcm8sICRyYSwgMA0KPiANCj4gKyAgLmVuZA0KPiANCj4gZGlmZiAtLWdp dCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvR2V0SW50ZXJydXB0U3RhdGUu UyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvR2V0SW50ZXJydXB0U3RhdGUu Uw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi5iZmQxZjJkNWY3 DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9Mb29uZ0Fy Y2g2NC9HZXRJbnRlcnJ1cHRTdGF0ZS5TDQo+IEBAIC0wLDAgKzEsMzUgQEANCj4gKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gDQo+ICsjDQo+IA0KPiArIyBHZXQgTG9vbmdBcmNoIGludGVycnVw dCBzdGF0dXMNCj4gDQo+ICsjDQo+IA0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMjIsIExvb25nc29u IFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+IA0KPiArIw0KPiANCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gDQo+ICsjDQo+IA0KPiArIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiANCj4g Kw0KPiANCj4gK0FTTV9HTE9CQUwgQVNNX1BGWChHZXRJbnRlcnJ1cHRTdGF0ZSkNCj4gDQo+ICsN Cj4gDQo+ICsjLyoqDQo+IA0KPiArIyAgUmV0cmlldmVzIHRoZSBjdXJyZW50IENQVSBpbnRlcnJ1 cHQgc3RhdGUuDQo+IA0KPiArIw0KPiANCj4gKyMgIFJldHVybnMgVFJVRSBtZWFucyBpbnRlcnJ1 cHRzIGFyZSBjdXJyZW50bHkgZW5hYmxlZC4gT3RoZXJ3aXNlLA0KPiANCj4gKyMgIHJldHVybnMg RkFMU0UuDQo+IA0KPiArIw0KPiANCj4gKyMgIEByZXR2YWwgVFJVRSAgQ1BVIGludGVycnVwdHMg YXJlIGVuYWJsZWQuDQo+IA0KPiArIyAgQHJldHZhbCBGQUxTRSBDUFUgaW50ZXJydXB0cyBhcmUg ZGlzYWJsZWQuDQo+IA0KPiArIw0KPiANCj4gKyMqKi8NCj4gDQo+ICsNCj4gDQo+ICtBU01fUEZY KEdldEludGVycnVwdFN0YXRlKToNCj4gDQo+ICsgIGxpLncgICR0MSwgMHg0DQo+IA0KPiArICBj c3JyZCAkdDAsIDB4MA0KPiANCj4gKyAgYW5kICAgJHQwLCAkdDAsICR0MQ0KPiANCj4gKyAgYmVx eiAgJHQwLCAxZg0KPiANCj4gKyAgbGkudyAgJGEwLCAweDENCj4gDQo+ICsgIGIgICAgIDJmDQo+ IA0KPiArMToNCj4gDQo+ICsgIGxpLncgICRhMCwgMHgwDQo+IA0KPiArMjoNCj4gDQo+ICsgIGpp cmwgICR6ZXJvLCAkcmEsIDANCj4gDQo+ICsgIC5lbmQNCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVQ a2cvTGlicmFyeS9CYXNlTGliL0xvb25nQXJjaDY0L0ludGVybmFsU3dpdGNoU3RhY2suYw0KPiBi L01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvSW50ZXJuYWxTd2l0Y2hTdGFjay5j DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjg1OWJjOTYzMjkN Cj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0xvb25nQXJj aDY0L0ludGVybmFsU3dpdGNoU3RhY2suYw0KPiBAQCAtMCwwICsxLDU4IEBADQo+ICsvKiogQGZp bGUNCj4gDQo+ICsgIFN3aXRjaFN0YWNrKCkgZnVuY3Rpb24gZm9yIExvb25nQXJjaC4NCj4gDQo+ ICsNCj4gDQo+ICsgIENvcHlyaWdodCAoYykgMjAyMiwgTG9vbmdzb24gVGVjaG5vbG9neSBDb3Jw b3JhdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICsNCj4gDQo+ ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiAr KiovDQo+IA0KPiArDQo+IA0KPiArI2luY2x1ZGUgIkJhc2VMaWJJbnRlcm5hbHMuaCINCj4gDQo+ ICsNCj4gDQo+ICtVSU5UTg0KPiANCj4gK0VGSUFQSQ0KPiANCj4gK0ludGVybmFsU3dpdGNoU3Rh Y2tBc20gKA0KPiANCj4gKyAgSU4gICAgIEJBU0VfTElCUkFSWV9KVU1QX0JVRkZFUiAgKkp1bXBC dWZmZXINCj4gDQo+ICsgICk7DQo+IA0KPiArDQo+IA0KPiArLyoqDQo+IA0KPiArICBUcmFuc2Zl cnMgY29udHJvbCB0byBhIGZ1bmN0aW9uIHN0YXJ0aW5nIHdpdGggYSBuZXcgc3RhY2suDQo+IA0K PiArDQo+IA0KPiArICBUcmFuc2ZlcnMgY29udHJvbCB0byB0aGUgZnVuY3Rpb24gc3BlY2lmaWVk IGJ5IEVudHJ5UG9pbnQgdXNpbmcgdGhlDQo+IA0KPiArICBuZXcgc3RhY2sgc3BlY2lmaWVkIGJ5 IE5ld1N0YWNrIGFuZCBwYXNzaW5nIGluIHRoZSBwYXJhbWV0ZXJzIHNwZWNpZmllZA0KPiANCj4g KyAgYnkgQ29udGV4dDEgYW5kIENvbnRleHQyLiAgQ29udGV4dDEgYW5kIENvbnRleHQyIGFyZSBv cHRpb25hbCBhbmQgbWF5DQo+IA0KPiArICBiZSBOVUxMLiAgVGhlIGZ1bmN0aW9uIEVudHJ5UG9p bnQgbXVzdCBuZXZlciByZXR1cm4uDQo+IA0KPiArDQo+IA0KPiArICBJZiBFbnRyeVBvaW50IGlz IE5VTEwsIHRoZW4gQVNTRVJUKCkuDQo+IA0KPiArICBJZiBOZXdTdGFjayBpcyBOVUxMLCB0aGVu IEFTU0VSVCgpLg0KPiANCj4gKw0KPiANCj4gKyAgQHBhcmFtW2luXSAgRW50cnlQb2ludCAgQSBw b2ludGVyIHRvIGZ1bmN0aW9uIHRvIGNhbGwgd2l0aCB0aGUgbmV3IHN0YWNrLg0KPiANCj4gKyAg QHBhcmFtW2luXSAgQ29udGV4dDEgICAgQSBwb2ludGVyIHRvIHRoZSBjb250ZXh0IHRvIHBhc3Mg aW50byB0aGUgRW50cnlQb2ludA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlv bi4NCj4gDQo+ICsgIEBwYXJhbVtpbl0gIENvbnRleHQyICAgIEEgcG9pbnRlciB0byB0aGUgY29u dGV4dCB0byBwYXNzIGludG8gdGhlIEVudHJ5UG9pbnQNCj4gDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgZnVuY3Rpb24uDQo+IA0KPiArICBAcGFyYW1baW5dICBOZXdTdGFjayAgICBBIHBvaW50 ZXIgdG8gdGhlIG5ldyBzdGFjayB0byB1c2UgZm9yIHRoZSBFbnRyeVBvaW50DQo+IA0KPiArICAg ICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uLg0KPiANCj4gKyAgQHBhcmFtW2luXSAgTWFya2Vy ICAgICAgVkFfTElTVCBtYXJrZXIgZm9yIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0Lg0KPiAN Cj4gKw0KPiANCj4gKyoqLw0KPiANCj4gK1ZPSUQNCj4gDQo+ICtFRklBUEkNCj4gDQo+ICtJbnRl cm5hbFN3aXRjaFN0YWNrICgNCj4gDQo+ICsgIElOICAgICAgU1dJVENIX1NUQUNLX0VOVFJZX1BP SU5UICBFbnRyeVBvaW50LA0KPiANCj4gKyAgSU4gICAgICBWT0lEICAgICAgICAgICAgICAgICAg ICAgICpDb250ZXh0MSAgIE9QVElPTkFMLA0KPiANCj4gKyAgSU4gICAgICBWT0lEICAgICAgICAg ICAgICAgICAgICAgICpDb250ZXh0MiAgIE9QVElPTkFMLA0KPiANCj4gKyAgSU4gICAgICBWT0lE ICAgICAgICAgICAgICAgICAgICAgICpOZXdTdGFjaywNCj4gDQo+ICsgIElOICAgICAgVkFfTElT VCAgICAgICAgICAgICAgICAgICBNYXJrZXINCj4gDQo+ICsgICkNCj4gDQo+ICsNCj4gDQo+ICt7 DQo+IA0KPiArICBCQVNFX0xJQlJBUllfSlVNUF9CVUZGRVIgIEp1bXBCdWZmZXI7DQo+IA0KPiAr DQo+IA0KPiArICBKdW1wQnVmZmVyLlJBICAgICAgICAgICAgICAgICAgICAgID0gKFVJTlROKUVu dHJ5UG9pbnQ7DQo+IA0KPiArICBKdW1wQnVmZmVyLlNQICAgICAgICAgICAgICAgICAgICAgID0g KFVJTlROKU5ld1N0YWNrIC0gc2l6ZW9mIChWT0lEICopOw0KPiANCj4gKyAgSnVtcEJ1ZmZlci5T UCAgICAgICAgICAgICAgICAgICAgIC09IHNpemVvZiAoQ29udGV4dDEpICsgc2l6ZW9mIChDb250 ZXh0Mik7DQo+IA0KPiArICAoKFZPSUQgKiopKFVJTlROKUp1bXBCdWZmZXIuU1ApWzBdID0gQ29u dGV4dDE7DQo+IA0KPiArICAoKFZPSUQgKiopKFVJTlROKUp1bXBCdWZmZXIuU1ApWzFdID0gQ29u dGV4dDI7DQo+IA0KPiArDQo+IA0KPiArICBJbnRlcm5hbFN3aXRjaFN0YWNrQXNtICgmSnVtcEJ1 ZmZlcik7DQo+IA0KPiArfQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VM aWIvTG9vbmdBcmNoNjQvTWVtb3J5RmVuY2UuUyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9v bmdBcmNoNjQvTWVtb3J5RmVuY2UuUw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAw MDAwMDAwMDAwLi4wZDhkYzEwOTE0DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvTWRlUGtnL0xp YnJhcnkvQmFzZUxpYi9Mb29uZ0FyY2g2NC9NZW1vcnlGZW5jZS5TDQo+IEBAIC0wLDAgKzEsMTkg QEANCj4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gDQo+ICsjDQo+IA0KPiArIyBNZW1vcnlG ZW5jZSgpIGZvciBMb29uZ0FyY2g2NA0KPiANCj4gKyMNCj4gDQo+ICsjIENvcHlyaWdodCAoYykg MjAyMiwgTG9vbmdzb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gDQo+ICsjDQo+IA0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gKyMNCj4gDQo+ICsjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+IA0KPiArDQo+IA0KPiArQVNNX0dMT0JBTCBBU01fUEZYKE1lbW9yeUZlbmNlKQ0K PiANCj4gKw0KPiANCj4gKyMNCj4gDQo+ICsjIE1lbW9yeSBmZW5jZSBmb3IgTG9vbmdBcmNoNjQN Cj4gDQo+ICsjDQo+IA0KPiArQVNNX1BGWChNZW1vcnlGZW5jZSk6DQo+IA0KPiArICBkYmFyIDAN Cj4gDQo+ICsgIGppcmwgJHplcm8sICRyYSwgMA0KPiANCj4gKyAgLmVuZA0KPiANCj4gZGlmZiAt LWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvU2V0SnVtcExvbmdKdW1w LlMgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0xvb25nQXJjaDY0L1NldEp1bXBMb25nSnVtcC5T DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjFjNmVlNTRiNmYN Cj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0xvb25nQXJj aDY0L1NldEp1bXBMb25nSnVtcC5TDQo+IEBAIC0wLDAgKzEsNDkgQEANCj4gKyMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gDQo+ICsjDQo+IA0KPiArIyBTZXQvTG9uZyBqdW1wIGZvciBMb29uZ0Fy Y2gNCj4gDQo+ICsjDQo+IA0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMjIsIExvb25nc29uIFRlY2hu b2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0K PiArIw0KPiANCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gDQo+ICsjDQo+IA0KPiArIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiANCj4gKw0KPiAN Cj4gKyNkZWZpbmUgU1RPUkUgICBzdC5kICAgIC8qIDY0IGJpdCBtb2RlIHJlZ3NhdmUgaW5zdHJ1 Y3Rpb24gKi8NCj4gDQo+ICsjZGVmaW5lIExPQUQgICAgbGQuZCAgICAvKiA2NCBiaXQgbW9kZSBy ZWdsb2FkIGluc3RydWN0aW9uICovDQo+IA0KPiArI2RlZmluZSBSU0laRSAgIDggICAgICAgLyog NjQgYml0IG1vZGUgcmVnaXN0ZXIgc2l6ZSAqLw0KPiANCj4gKw0KPiANCj4gK0FTTV9HTE9CQUwg QVNNX1BGWChTZXRKdW1wKQ0KPiANCj4gK0FTTV9HTE9CQUwgQVNNX1BGWChJbnRlcm5hbExvbmdK dW1wKQ0KPiANCj4gKw0KPiANCj4gK0FTTV9QRlgoU2V0SnVtcCk6DQo+IA0KPiArICBTVE9SRSAg ICRzMCwgJGEwLCBSU0laRSAqIDANCj4gDQo+ICsgIFNUT1JFICAgJHMxLCAkYTAsIFJTSVpFICog MQ0KPiANCj4gKyAgU1RPUkUgICAkczIsICRhMCwgUlNJWkUgKiAyDQo+IA0KPiArICBTVE9SRSAg ICRzMywgJGEwLCBSU0laRSAqIDMNCj4gDQo+ICsgIFNUT1JFICAgJHM0LCAkYTAsIFJTSVpFICog NA0KPiANCj4gKyAgU1RPUkUgICAkczUsICRhMCwgUlNJWkUgKiA1DQo+IA0KPiArICBTVE9SRSAg ICRzNiwgJGEwLCBSU0laRSAqIDYNCj4gDQo+ICsgIFNUT1JFICAgJHM3LCAkYTAsIFJTSVpFICog Nw0KPiANCj4gKyAgU1RPUkUgICAkczgsICRhMCwgUlNJWkUgKiA4DQo+IA0KPiArICBTVE9SRSAg ICRzcCwgJGEwLCBSU0laRSAqIDkNCj4gDQo+ICsgIFNUT1JFICAgJGZwLCAkYTAsIFJTSVpFICog MTANCj4gDQo+ICsgIFNUT1JFICAgJHJhLCAkYTAsIFJTSVpFICogMTENCj4gDQo+ICsgIGxpLncg ICAgJGEwLCAwICAgICAgICAgICAgICAgICAgICAjIFNldGptcCByZXR1cm4NCj4gDQo+ICsgIGpp cmwgICAgJHplcm8sICRyYSwgMA0KPiANCj4gKw0KPiANCj4gK0FTTV9QRlgoSW50ZXJuYWxMb25n SnVtcCk6DQo+IA0KPiArICBMT0FEICAgICRyYSwgJGEwLCBSU0laRSAqIDExDQo+IA0KPiArICBM T0FEICAgICRzMCwgJGEwLCBSU0laRSAqIDANCj4gDQo+ICsgIExPQUQgICAgJHMxLCAkYTAsIFJT SVpFICogMQ0KPiANCj4gKyAgTE9BRCAgICAkczIsICRhMCwgUlNJWkUgKiAyDQo+IA0KPiArICBM T0FEICAgICRzMywgJGEwLCBSU0laRSAqIDMNCj4gDQo+ICsgIExPQUQgICAgJHM0LCAkYTAsIFJT SVpFICogNA0KPiANCj4gKyAgTE9BRCAgICAkczUsICRhMCwgUlNJWkUgKiA1DQo+IA0KPiArICBM T0FEICAgICRzNiwgJGEwLCBSU0laRSAqIDYNCj4gDQo+ICsgIExPQUQgICAgJHM3LCAkYTAsIFJT SVpFICogNw0KPiANCj4gKyAgTE9BRCAgICAkczgsICRhMCwgUlNJWkUgKiA4DQo+IA0KPiArICBM T0FEICAgICRzcCwgJGEwLCBSU0laRSAqIDkNCj4gDQo+ICsgIExPQUQgICAgJGZwLCAkYTAsIFJT SVpFICogMTANCj4gDQo+ICsgIG1vdmUgICAgJGEwLCAkYTENCj4gDQo+ICsgIGppcmwgICAgJHpl cm8sICRyYSwgMA0KPiANCj4gKyAgLmVuZA0KPiANCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJy YXJ5L0Jhc2VMaWIvTG9vbmdBcmNoNjQvU3dpdGNoU3RhY2suUyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VMaWIvTG9vbmdBcmNoNjQvU3dpdGNoU3RhY2suUw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAwMDAwMDAwMDAwLi5hZDlhYThiMzQzDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIv TWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9Mb29uZ0FyY2g2NC9Td2l0Y2hTdGFjay5TDQo+IEBAIC0w LDAgKzEsMzkgQEANCj4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gDQo+ICsjDQo+IA0KPiAr IyBJbnRlcm5hbFN3aXRjaFN0YWNrQXNtIGZvciBMb29uZ0FyY2gNCj4gDQo+ICsjDQo+IA0KPiAr IyBDb3B5cmlnaHQgKGMpIDIwMjIsIExvb25nc29uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGlt aXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0KPiArIw0KPiANCj4gKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gDQo+ICsjDQo+IA0KPiAr Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiANCj4gKw0KPiANCj4gKyNkZWZpbmUgU1RPUkUgICBz dC5kICAgIC8qIDY0IGJpdCBtb2RlIHJlZ3NhdmUgaW5zdHJ1Y3Rpb24gKi8NCj4gDQo+ICsjZGVm aW5lIExPQUQgICAgbGQuZCAgICAvKiA2NCBiaXQgbW9kZSByZWdsb2FkIGluc3RydWN0aW9uICov DQo+IA0KPiArI2RlZmluZSBSU0laRSAgIDggICAgICAgLyogNjQgYml0IG1vZGUgcmVnaXN0ZXIg c2l6ZSAqLw0KPiANCj4gKw0KPiANCj4gK0FTTV9HTE9CQUwgQVNNX1BGWChJbnRlcm5hbFN3aXRj aFN0YWNrQXNtKQ0KPiANCj4gKw0KPiANCj4gKy8qKg0KPiANCj4gKyAgVGhpcyBhbGxvd3MgdGhl IGNhbGxlciB0byBzd2l0Y2ggdGhlIHN0YWNrIGFuZCBnb2VzIHRvIHRoZSBuZXcgZW50cnkgcG9p bnQNCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbSAgSnVtcEJ1ZmZlciAgICBBIHBvaW50ZXIgdG8g Q1BVIGNvbnRleHQgYnVmZmVyLg0KPiANCj4gKyoqLw0KPiANCj4gKw0KPiANCj4gK0FTTV9QRlgo SW50ZXJuYWxTd2l0Y2hTdGFja0FzbSk6DQo+IA0KPiArICBMT0FEICAgICRyYSwgJGEwLCBSU0la RSAqIDExDQo+IA0KPiArICBMT0FEICAgICRzMCwgJGEwLCBSU0laRSAqIDANCj4gDQo+ICsgIExP QUQgICAgJHMxLCAkYTAsIFJTSVpFICogMQ0KPiANCj4gKyAgTE9BRCAgICAkczIsICRhMCwgUlNJ WkUgKiAyDQo+IA0KPiArICBMT0FEICAgICRzMywgJGEwLCBSU0laRSAqIDMNCj4gDQo+ICsgIExP QUQgICAgJHM0LCAkYTAsIFJTSVpFICogNA0KPiANCj4gKyAgTE9BRCAgICAkczUsICRhMCwgUlNJ WkUgKiA1DQo+IA0KPiArICBMT0FEICAgICRzNiwgJGEwLCBSU0laRSAqIDYNCj4gDQo+ICsgIExP QUQgICAgJHM3LCAkYTAsIFJTSVpFICogNw0KPiANCj4gKyAgTE9BRCAgICAkczgsICRhMCwgUlNJ WkUgKiA4DQo+IA0KPiArICBMT0FEICAgICRzcCwgJGEwLCBSU0laRSAqIDkNCj4gDQo+ICsgIExP QUQgICAgJGZwLCAkYTAsIFJTSVpFICogMTANCj4gDQo+ICsgIExPQUQgICAgJGEwLCAkc3AsIDAN Cj4gDQo+ICsgIExPQUQgICAgJGExLCAkc3AsIDgNCj4gDQo+ICsgIGppcmwgICAgJHplcm8sICRy YSwgMA0KPiANCj4gKyAgLmVuZA0KPiANCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jh c2VMaWIvTG9vbmdBcmNoNjQvVW5hbGlnbmVkLmMgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0xv b25nQXJjaDY0L1VuYWxpZ25lZC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAw MDAwMDAwMDAuLjMzNTM3OWVjYjENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9NZGVQa2cvTGli cmFyeS9CYXNlTGliL0xvb25nQXJjaDY0L1VuYWxpZ25lZC5jDQo+IEBAIC0wLDAgKzEsMjQyIEBA DQo+ICsvKiogQGZpbGUNCj4gDQo+ICsgIFVuYWxpZ25lZCBhY2Nlc3MgZnVuY3Rpb25zIG9mIEJh c2VMaWIgZm9yIExvb25nQXJjaC4NCj4gDQo+ICsNCj4gDQo+ICsgIENvcHlyaWdodCAoYykgMjAy MiwgTG9vbmdzb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCj4gDQo+ICsNCj4gDQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiArDQo+IA0KPiArKiovDQo+IA0KPiArDQo+IA0KPiAr I2luY2x1ZGUgIkJhc2VMaWJJbnRlcm5hbHMuaCINCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ ICsgIFJlYWRzIGEgMTYtYml0IHZhbHVlIGZyb20gbWVtb3J5IHRoYXQgbWF5IGJlIHVuYWxpZ25l ZC4NCj4gDQo+ICsNCj4gDQo+ICsgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgMTYtYml0IHZh bHVlIHBvaW50ZWQgdG8gYnkgQnVmZmVyLiBUaGUgZnVuY3Rpb24NCj4gDQo+ICsgIGd1YXJhbnRl ZXMgdGhhdCB0aGUgcmVhZCBvcGVyYXRpb24gZG9lcyBub3QgcHJvZHVjZSBhbiBhbGlnbm1lbnQg ZmF1bHQuDQo+IA0KPiArDQo+IA0KPiArICBJZiB0aGUgQnVmZmVyIGlzIE5VTEwsIHRoZW4gQVNT RVJUKCkuDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW1baW5dICBCdWZmZXIgIFRoZSBwb2ludGVy IHRvIGEgMTYtYml0IHZhbHVlIHRoYXQgbWF5IGJlIHVuYWxpZ25lZC4NCj4gDQo+ICsNCj4gDQo+ ICsgIEByZXR1cm4gVGhlIDE2LWJpdCB2YWx1ZSByZWFkIGZyb20gQnVmZmVyLg0KPiANCj4gKw0K PiANCj4gKyoqLw0KPiANCj4gK1VJTlQxNg0KPiANCj4gK0VGSUFQSQ0KPiANCj4gK1JlYWRVbmFs aWduZWQxNiAoDQo+IA0KPiArICBJTiAgICAgIENPTlNUIFVJTlQxNiAgKkJ1ZmZlcg0KPiANCj4g KyAgKQ0KPiANCj4gK3sNCj4gDQo+ICsgIHZvbGF0aWxlIFVJTlQ4ICBMb3dlckJ5dGU7DQo+IA0K PiArICB2b2xhdGlsZSBVSU5UOCAgSGlnaGVyQnl0ZTsNCj4gDQo+ICsNCj4gDQo+ICsgIEFTU0VS VCAoQnVmZmVyICE9IE5VTEwpOw0KPiANCj4gKw0KPiANCj4gKyAgTG93ZXJCeXRlICA9ICgoVUlO VDggKilCdWZmZXIpWzBdOw0KPiANCj4gKyAgSGlnaGVyQnl0ZSA9ICgoVUlOVDggKilCdWZmZXIp WzFdOw0KPiANCj4gKw0KPiANCj4gKyAgcmV0dXJuIChVSU5UMTYpKExvd2VyQnl0ZSB8IChIaWdo ZXJCeXRlIDw8IDgpKTsNCj4gDQo+ICt9DQo+IA0KPiArDQo+IA0KPiArLyoqDQo+IA0KPiArICBX cml0ZXMgYSAxNi1iaXQgdmFsdWUgdG8gbWVtb3J5IHRoYXQgbWF5IGJlIHVuYWxpZ25lZC4NCj4g DQo+ICsNCj4gDQo+ICsgIFRoaXMgZnVuY3Rpb24gd3JpdGVzIHRoZSAxNi1iaXQgdmFsdWUgc3Bl Y2lmaWVkIGJ5IFZhbHVlIHRvIEJ1ZmZlci4gVmFsdWUgaXMNCj4gDQo+ICsgIHJldHVybmVkLiBU aGUgZnVuY3Rpb24gZ3VhcmFudGVlcyB0aGF0IHRoZSB3cml0ZSBvcGVyYXRpb24gZG9lcyBub3Qg cHJvZHVjZQ0KPiANCj4gKyAgYW4gYWxpZ25tZW50IGZhdWx0Lg0KPiANCj4gKw0KPiANCj4gKyAg SWYgdGhlIEJ1ZmZlciBpcyBOVUxMLCB0aGVuIEFTU0VSVCgpLg0KPiANCj4gKw0KPiANCj4gKyAg QHBhcmFtW291dF0gIEJ1ZmZlciAgVGhlIHBvaW50ZXIgdG8gYSAxNi1iaXQgdmFsdWUgdGhhdCBt YXkgYmUgdW5hbGlnbmVkLg0KPiANCj4gKyAgQHBhcmFtW2luXSAgIFZhbHVlICAgMTYtYml0IHZh bHVlIHRvIHdyaXRlIHRvIEJ1ZmZlci4NCj4gDQo+ICsNCj4gDQo+ICsgIEByZXR1cm4gVGhlIDE2 LWJpdCB2YWx1ZSB0byB3cml0ZSB0byBCdWZmZXIuDQo+IA0KPiArDQo+IA0KPiArKiovDQo+IA0K PiArVUlOVDE2DQo+IA0KPiArRUZJQVBJDQo+IA0KPiArV3JpdGVVbmFsaWduZWQxNiAoDQo+IA0K PiArICBPVVQgICAgICBVSU5UMTYgICpCdWZmZXIsDQo+IA0KPiArICBJTiAgICAgICBVSU5UMTYg IFZhbHVlDQo+IA0KPiArICApDQo+IA0KPiArew0KPiANCj4gKyAgQVNTRVJUIChCdWZmZXIgIT0g TlVMTCk7DQo+IA0KPiArDQo+IA0KPiArICAoKHZvbGF0aWxlIFVJTlQ4ICopQnVmZmVyKVswXSA9 IChVSU5UOClWYWx1ZTsNCj4gDQo+ICsgICgodm9sYXRpbGUgVUlOVDggKilCdWZmZXIpWzFdID0g KFVJTlQ4KShWYWx1ZSA+PiA4KTsNCj4gDQo+ICsNCj4gDQo+ICsgIHJldHVybiBWYWx1ZTsNCj4g DQo+ICt9DQo+IA0KPiArDQo+IA0KPiArLyoqDQo+IA0KPiArICBSZWFkcyBhIDI0LWJpdCB2YWx1 ZSBmcm9tIG1lbW9yeSB0aGF0IG1heSBiZSB1bmFsaWduZWQuDQo+IA0KPiArDQo+IA0KPiArICBU aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIDI0LWJpdCB2YWx1ZSBwb2ludGVkIHRvIGJ5IEJ1ZmZl ci4gVGhlIGZ1bmN0aW9uDQo+IA0KPiArICBndWFyYW50ZWVzIHRoYXQgdGhlIHJlYWQgb3BlcmF0 aW9uIGRvZXMgbm90IHByb2R1Y2UgYW4gYWxpZ25tZW50IGZhdWx0Lg0KPiANCj4gKw0KPiANCj4g KyAgSWYgdGhlIEJ1ZmZlciBpcyBOVUxMLCB0aGVuIEFTU0VSVCgpLg0KPiANCj4gKw0KPiANCj4g KyAgQHBhcmFtW2luXSAgQnVmZmVyICBUaGUgcG9pbnRlciB0byBhIDI0LWJpdCB2YWx1ZSB0aGF0 IG1heSBiZSB1bmFsaWduZWQuDQo+IA0KPiArDQo+IA0KPiArICBAcmV0dXJuIFRoZSAyNC1iaXQg dmFsdWUgcmVhZCBmcm9tIEJ1ZmZlci4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtVSU5U MzINCj4gDQo+ICtFRklBUEkNCj4gDQo+ICtSZWFkVW5hbGlnbmVkMjQgKA0KPiANCj4gKyAgSU4g ICAgICBDT05TVCBVSU5UMzIgICpCdWZmZXINCj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiAr ICBBU1NFUlQgKEJ1ZmZlciAhPSBOVUxMKTsNCj4gDQo+ICsNCj4gDQo+ICsgIHJldHVybiAoVUlO VDMyKShSZWFkVW5hbGlnbmVkMTYgKChVSU5UMTYgKilCdWZmZXIpIHwNCj4gDQo+ICsgICAgICAg ICAgICAgICAgICAoKChVSU5UOCAqKUJ1ZmZlcilbMl0gPDwgMTYpKTsNCj4gDQo+ICt9DQo+IA0K PiArDQo+IA0KPiArLyoqDQo+IA0KPiArICBXcml0ZXMgYSAyNC1iaXQgdmFsdWUgdG8gbWVtb3J5 IHRoYXQgbWF5IGJlIHVuYWxpZ25lZC4NCj4gDQo+ICsNCj4gDQo+ICsgIFRoaXMgZnVuY3Rpb24g d3JpdGVzIHRoZSAyNC1iaXQgdmFsdWUgc3BlY2lmaWVkIGJ5IFZhbHVlIHRvIEJ1ZmZlci4gVmFs dWUgaXMNCj4gDQo+ICsgIHJldHVybmVkLiBUaGUgZnVuY3Rpb24gZ3VhcmFudGVlcyB0aGF0IHRo ZSB3cml0ZSBvcGVyYXRpb24gZG9lcyBub3QgcHJvZHVjZQ0KPiANCj4gKyAgYW4gYWxpZ25tZW50 IGZhdWx0Lg0KPiANCj4gKw0KPiANCj4gKyAgSWYgdGhlIEJ1ZmZlciBpcyBOVUxMLCB0aGVuIEFT U0VSVCgpLg0KPiANCj4gKw0KPiANCj4gKyAgQHBhcmFtW291dF0gIEJ1ZmZlciAgVGhlIHBvaW50 ZXIgdG8gYSAyNC1iaXQgdmFsdWUgdGhhdCBtYXkgYmUgdW5hbGlnbmVkLg0KPiANCj4gKyAgQHBh cmFtW2luXSAgIFZhbHVlICAgMjQtYml0IHZhbHVlIHRvIHdyaXRlIHRvIEJ1ZmZlci4NCj4gDQo+ ICsNCj4gDQo+ICsgIEByZXR1cm4gVGhlIDI0LWJpdCB2YWx1ZSB0byB3cml0ZSB0byBCdWZmZXIu DQo+IA0KPiArDQo+IA0KPiArKiovDQo+IA0KPiArVUlOVDMyDQo+IA0KPiArRUZJQVBJDQo+IA0K PiArV3JpdGVVbmFsaWduZWQyNCAoDQo+IA0KPiArICBPVVQgICAgICBVSU5UMzIgICpCdWZmZXIs DQo+IA0KPiArICBJTiAgICAgICBVSU5UMzIgIFZhbHVlDQo+IA0KPiArICApDQo+IA0KPiArew0K PiANCj4gKyAgQVNTRVJUIChCdWZmZXIgIT0gTlVMTCk7DQo+IA0KPiArDQo+IA0KPiArICBXcml0 ZVVuYWxpZ25lZDE2ICgoVUlOVDE2ICopQnVmZmVyLCAoVUlOVDE2KVZhbHVlKTsNCj4gDQo+ICsg ICooVUlOVDggKikoKFVJTlQxNiAqKUJ1ZmZlciArIDEpID0gKFVJTlQ4KShWYWx1ZSA+PiAxNik7 DQo+IA0KPiArICByZXR1cm4gVmFsdWU7DQo+IA0KPiArfQ0KPiANCj4gKw0KPiANCj4gKy8qKg0K PiANCj4gKyAgUmVhZHMgYSAzMi1iaXQgdmFsdWUgZnJvbSBtZW1vcnkgdGhhdCBtYXkgYmUgdW5h bGlnbmVkLg0KPiANCj4gKw0KPiANCj4gKyAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSAzMi1i aXQgdmFsdWUgcG9pbnRlZCB0byBieSBCdWZmZXIuIFRoZSBmdW5jdGlvbg0KPiANCj4gKyAgZ3Vh cmFudGVlcyB0aGF0IHRoZSByZWFkIG9wZXJhdGlvbiBkb2VzIG5vdCBwcm9kdWNlIGFuIGFsaWdu bWVudCBmYXVsdC4NCj4gDQo+ICsNCj4gDQo+ICsgIElmIHRoZSBCdWZmZXIgaXMgTlVMTCwgdGhl biBBU1NFUlQoKS4NCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbVtpbl0gIEJ1ZmZlciAgVGhlIHBv aW50ZXIgdG8gYSAzMi1iaXQgdmFsdWUgdGhhdCBtYXkgYmUgdW5hbGlnbmVkLg0KPiANCj4gKw0K PiANCj4gKyAgQHJldHVybiBUaGUgMzItYml0IHZhbHVlIHJlYWQgZnJvbSBCdWZmZXIuDQo+IA0K PiArDQo+IA0KPiArKiovDQo+IA0KPiArVUlOVDMyDQo+IA0KPiArRUZJQVBJDQo+IA0KPiArUmVh ZFVuYWxpZ25lZDMyICgNCj4gDQo+ICsgIElOICAgICAgQ09OU1QgVUlOVDMyICAqQnVmZmVyDQo+ IA0KPiArICApDQo+IA0KPiArew0KPiANCj4gKyAgVUlOVDE2ICBMb3dlckJ5dGVzOw0KPiANCj4g KyAgVUlOVDE2ICBIaWdoZXJCeXRlczsNCj4gDQo+ICsNCj4gDQo+ICsgIEFTU0VSVCAoQnVmZmVy ICE9IE5VTEwpOw0KPiANCj4gKw0KPiANCj4gKyAgTG93ZXJCeXRlcyAgPSBSZWFkVW5hbGlnbmVk MTYgKChVSU5UMTYgKilCdWZmZXIpOw0KPiANCj4gKyAgSGlnaGVyQnl0ZXMgPSBSZWFkVW5hbGln bmVkMTYgKChVSU5UMTYgKilCdWZmZXIgKyAxKTsNCj4gDQo+ICsNCj4gDQo+ICsgIHJldHVybiAo VUlOVDMyKShMb3dlckJ5dGVzIHwgKEhpZ2hlckJ5dGVzIDw8IDE2KSk7DQo+IA0KPiArfQ0KPiAN Cj4gKw0KPiANCj4gKy8qKg0KPiANCj4gKyAgV3JpdGVzIGEgMzItYml0IHZhbHVlIHRvIG1lbW9y eSB0aGF0IG1heSBiZSB1bmFsaWduZWQuDQo+IA0KPiArDQo+IA0KPiArICBUaGlzIGZ1bmN0aW9u IHdyaXRlcyB0aGUgMzItYml0IHZhbHVlIHNwZWNpZmllZCBieSBWYWx1ZSB0byBCdWZmZXIuIFZh bHVlIGlzDQo+IA0KPiArICByZXR1cm5lZC4gVGhlIGZ1bmN0aW9uIGd1YXJhbnRlZXMgdGhhdCB0 aGUgd3JpdGUgb3BlcmF0aW9uIGRvZXMgbm90IHByb2R1Y2UNCj4gDQo+ICsgIGFuIGFsaWdubWVu dCBmYXVsdC4NCj4gDQo+ICsNCj4gDQo+ICsgIElmIHRoZSBCdWZmZXIgaXMgTlVMTCwgdGhlbiBB U1NFUlQoKS4NCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbVtvdXRdICBCdWZmZXIgIFRoZSBwb2lu dGVyIHRvIGEgMzItYml0IHZhbHVlIHRoYXQgbWF5IGJlIHVuYWxpZ25lZC4NCj4gDQo+ICsgIEBw YXJhbVtpbl0gICBWYWx1ZSAgIDMyLWJpdCB2YWx1ZSB0byB3cml0ZSB0byBCdWZmZXIuDQo+IA0K PiArDQo+IA0KPiArICBAcmV0dXJuIFRoZSAzMi1iaXQgdmFsdWUgdG8gd3JpdGUgdG8gQnVmZmVy Lg0KPiANCj4gKw0KPiANCj4gKyoqLw0KPiANCj4gK1VJTlQzMg0KPiANCj4gK0VGSUFQSQ0KPiAN Cj4gK1dyaXRlVW5hbGlnbmVkMzIgKA0KPiANCj4gKyAgT1VUICAgICAgVUlOVDMyICAqQnVmZmVy LA0KPiANCj4gKyAgSU4gICAgICAgVUlOVDMyICBWYWx1ZQ0KPiANCj4gKyAgKQ0KPiANCj4gK3sN Cj4gDQo+ICsgIEFTU0VSVCAoQnVmZmVyICE9IE5VTEwpOw0KPiANCj4gKw0KPiANCj4gKyAgV3Jp dGVVbmFsaWduZWQxNiAoKFVJTlQxNiAqKUJ1ZmZlciwgKFVJTlQxNilWYWx1ZSk7DQo+IA0KPiAr ICBXcml0ZVVuYWxpZ25lZDE2ICgoVUlOVDE2ICopQnVmZmVyICsgMSwgKFVJTlQxNikoVmFsdWUg Pj4gMTYpKTsNCj4gDQo+ICsgIHJldHVybiBWYWx1ZTsNCj4gDQo+ICt9DQo+IA0KPiArDQo+IA0K PiArLyoqDQo+IA0KPiArICBSZWFkcyBhIDY0LWJpdCB2YWx1ZSBmcm9tIG1lbW9yeSB0aGF0IG1h eSBiZSB1bmFsaWduZWQuDQo+IA0KPiArDQo+IA0KPiArICBUaGlzIGZ1bmN0aW9uIHJldHVybnMg dGhlIDY0LWJpdCB2YWx1ZSBwb2ludGVkIHRvIGJ5IEJ1ZmZlci4gVGhlIGZ1bmN0aW9uDQo+IA0K PiArICBndWFyYW50ZWVzIHRoYXQgdGhlIHJlYWQgb3BlcmF0aW9uIGRvZXMgbm90IHByb2R1Y2Ug YW4gYWxpZ25tZW50IGZhdWx0Lg0KPiANCj4gKw0KPiANCj4gKyAgSWYgdGhlIEJ1ZmZlciBpcyBO VUxMLCB0aGVuIEFTU0VSVCgpLg0KPiANCj4gKw0KPiANCj4gKyAgQHBhcmFtW2luXSAgQnVmZmVy ICBUaGUgcG9pbnRlciB0byBhIDY0LWJpdCB2YWx1ZSB0aGF0IG1heSBiZSB1bmFsaWduZWQuDQo+ IA0KPiArDQo+IA0KPiArICBAcmV0dXJuIFRoZSA2NC1iaXQgdmFsdWUgcmVhZCBmcm9tIEJ1ZmZl ci4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtVSU5UNjQNCj4gDQo+ICtFRklBUEkNCj4g DQo+ICtSZWFkVW5hbGlnbmVkNjQgKA0KPiANCj4gKyAgSU4gICAgICBDT05TVCBVSU5UNjQgICpC dWZmZXINCj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBVSU5UMzIgIExvd2VyQnl0ZXM7 DQo+IA0KPiArICBVSU5UMzIgIEhpZ2hlckJ5dGVzOw0KPiANCj4gKw0KPiANCj4gKyAgQVNTRVJU IChCdWZmZXIgIT0gTlVMTCk7DQo+IA0KPiArDQo+IA0KPiArICBMb3dlckJ5dGVzICA9IFJlYWRV bmFsaWduZWQzMiAoKFVJTlQzMiAqKUJ1ZmZlcik7DQo+IA0KPiArICBIaWdoZXJCeXRlcyA9IFJl YWRVbmFsaWduZWQzMiAoKFVJTlQzMiAqKUJ1ZmZlciArIDEpOw0KPiANCj4gKw0KPiANCj4gKyAg cmV0dXJuIChVSU5UNjQpKExvd2VyQnl0ZXMgfCBMU2hpZnRVNjQgKEhpZ2hlckJ5dGVzLCAzMikp Ow0KPiANCj4gK30NCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIFdyaXRlcyBhIDY0LWJp dCB2YWx1ZSB0byBtZW1vcnkgdGhhdCBtYXkgYmUgdW5hbGlnbmVkLg0KPiANCj4gKw0KPiANCj4g KyAgVGhpcyBmdW5jdGlvbiB3cml0ZXMgdGhlIDY0LWJpdCB2YWx1ZSBzcGVjaWZpZWQgYnkgVmFs dWUgdG8gQnVmZmVyLiBWYWx1ZSBpcw0KPiANCj4gKyAgcmV0dXJuZWQuIFRoZSBmdW5jdGlvbiBn dWFyYW50ZWVzIHRoYXQgdGhlIHdyaXRlIG9wZXJhdGlvbiBkb2VzIG5vdCBwcm9kdWNlDQo+IA0K PiArICBhbiBhbGlnbm1lbnQgZmF1bHQuDQo+IA0KPiArDQo+IA0KPiArICBJZiB0aGUgQnVmZmVy IGlzIE5VTEwsIHRoZW4gQVNTRVJUKCkuDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW1bb3V0XSAg QnVmZmVyICBUaGUgcG9pbnRlciB0byBhIDY0LWJpdCB2YWx1ZSB0aGF0IG1heSBiZSB1bmFsaWdu ZWQuDQo+IA0KPiArICBAcGFyYW1baW5dICAgVmFsdWUgICA2NC1iaXQgdmFsdWUgdG8gd3JpdGUg dG8gQnVmZmVyLg0KPiANCj4gKw0KPiANCj4gKyAgQHJldHVybiBUaGUgNjQtYml0IHZhbHVlIHRv IHdyaXRlIHRvIEJ1ZmZlci4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtVSU5UNjQNCj4g DQo+ICtFRklBUEkNCj4gDQo+ICtXcml0ZVVuYWxpZ25lZDY0ICgNCj4gDQo+ICsgIE9VVCAgICAg IFVJTlQ2NCAgKkJ1ZmZlciwNCj4gDQo+ICsgIElOICAgICAgIFVJTlQ2NCAgVmFsdWUNCj4gDQo+ ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBBU1NFUlQgKEJ1ZmZlciAhPSBOVUxMKTsNCj4gDQo+ ICsNCj4gDQo+ICsgIFdyaXRlVW5hbGlnbmVkMzIgKChVSU5UMzIgKilCdWZmZXIsIChVSU5UMzIp VmFsdWUpOw0KPiANCj4gKyAgV3JpdGVVbmFsaWduZWQzMiAoKFVJTlQzMiAqKUJ1ZmZlciArIDEs IChVSU5UMzIpUlNoaWZ0VTY0IChWYWx1ZSwgMzIpKTsNCj4gDQo+ICsgIHJldHVybiBWYWx1ZTsN Cj4gDQo+ICt9DQo+IA0KPiAtLQ0KPiAyLjI3LjANCg0K