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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 5AD45C001DF for ; Wed, 2 Aug 2023 06:24:33 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1E85410E499; Wed, 2 Aug 2023 06:24:32 +0000 (UTC) Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by gabe.freedesktop.org (Postfix) with ESMTPS id 03C5710E499 for ; Wed, 2 Aug 2023 06:24:28 +0000 (UTC) X-UUID: 38dd384830fd11ee9cb5633481061a41-20230802 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:Content-Transfer-Encoding:Content-ID:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=3fzLT66yf0ozd+fHFDpAZfd/+5JDZgiAvPPDKJDEWB8=; b=pXsci4IA2TFVN9saUnUsPUvq5h35CIkqO47mDhjlUp7fzWyf1vSan3h5tcfbGnJ/IoDiAQPyUU7p8di6JXZD3kbU7hik6GwkrBvGFHIMJ8drYcmZOlTY8IZBERzYEZHCYXVPbcDGd3eZt8p9akxn9GUgtU11T77k4ckZKyJn45o=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.30, REQID:0a1afd93-fd81-413f-8998-39b1f4d0a6e7, IP:0, U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:1fcc6f8, CLOUDID:4c5eb942-d291-4e62-b539-43d7d78362ba, B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR: NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_ULN X-UUID: 38dd384830fd11ee9cb5633481061a41-20230802 Received: from mtkmbs10n2.mediatek.inc [(172.21.101.183)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1598135353; Wed, 02 Aug 2023 14:24:23 +0800 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by MTKMBS14N1.mediatek.inc (172.21.101.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Wed, 2 Aug 2023 14:24:22 +0800 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Wed, 2 Aug 2023 14:24:21 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XWI/Tk8N0QPqV4NvCgZdXFTOJrSbhw3DgignAl13T91zzGAivNz80tt5X6SrqGB570UXk9412cjAVRR7lejGHfz+hNxXPle+ORmnQhFPhlwf5Mc9RqsjbUdqLzewI3XWgahhN8QWS9kjmmcO2noo1mrmVfEhapBCR91F2tyHjVEwve/UCvfRRjH0igz+srRD7bw9Ld66eAbVDqFEoxhO2Cg6YrwomCcNC/ISGQPrjKTkK8I5kPB2NybnbOQb7+j5B0WcX7BNva/bD/YRKAIyU/jTpjxi05Oljpd+i+LkM6BOps7ZhaI6v4oY/X6oik2EMCS5KNX0/X6qjEzge0+wfw== 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=/YS+SB/FfXOYnpztP83wgb9z8FCijh6hyXvrAOLCpL4=; b=c7QtZDKZmlLWo6hnza/zGvxFthLwJV6gp9ir+HD+De+uWS6+Ut8XjZx0YNFeWQANuYH6KafdleKBZWTNyKMFVEwILu4el7Y9M4Nw8qNlTpVsCQNHU7sCREQ4n3MRiJjLhLu640El8qmYGirsb6nUPyHnVNJ08HdSmRKlrs2pvWP3lKb12FtuP7vFCrWYX0HAsiXpb97YEUMRKF+8OIQjfGq88ZZ/3vCsGd7DVAJ4pL1bIIiq8hXQh23d7MNxcC+axwxALnce097/APOSOiIdiMOw45MIyf870GPUznzhnUolH1p9eI6ouYhqk5fFSq4gqxGzbQGiJK4rh7UWaKyoSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/YS+SB/FfXOYnpztP83wgb9z8FCijh6hyXvrAOLCpL4=; b=JBVHtjKJAbrsg9waEixTWK1XKDNB4nH5w5TiSCkAPr+P6D8TKm4jgd5BTqmVGeWf73MuCX0yRTQ0Is/vueMHgdETNUptB1fttSZ4JIwHMpKwYxrAYAEJI1SaxSNkcqgGlmZsp+t8GGsABpW3FB13rq/Wcd/pNxXFiFC0hDdDYU0= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by KL1PR03MB6170.apcprd03.prod.outlook.com (2603:1096:820:91::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.45; Wed, 2 Aug 2023 06:24:20 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::d126:7f34:9e4f:a95]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::d126:7f34:9e4f:a95%4]) with mapi id 15.20.6631.045; Wed, 2 Aug 2023 06:24:19 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: "angelogioacchino.delregno@collabora.com" , "chunkuang.hu@kernel.org" Subject: Re: [PATCH 1/3] drm/mediatek: Dynamically allocate CMDQ and use helper functions Thread-Topic: [PATCH 1/3] drm/mediatek: Dynamically allocate CMDQ and use helper functions Thread-Index: AQHZpbghA43V0G2y6EGRogXrDPk526/WyH+A Date: Wed, 2 Aug 2023 06:24:19 +0000 Message-ID: References: <20230623094931.117918-1-angelogioacchino.delregno@collabora.com> <20230623094931.117918-2-angelogioacchino.delregno@collabora.com> In-Reply-To: <20230623094931.117918-2-angelogioacchino.delregno@collabora.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB6624:EE_|KL1PR03MB6170:EE_ x-ms-office365-filtering-correlation-id: c3f8c1d1-c368-489d-d010-08db93211af1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WKVWIsOAH3c5rpnSiCF5Ura+ACwqM/SIFOw+J6uvVMFG2jBsMwfAWEeGzWee/+JmmN9j5oVxENXbQMJ6Lt4kUi9Wk+ctPJfjEoptd9J0RzFjeuhHKrde5XiEoFj8mGsaq/VvmsCnM1cCvqvWh/aqj54bHxDOfcZSDxRtZTcOlcBurH0wevmZkdTg/CNiCezi1WNuFRs1Vo0X+dL5+1dFuxcXXLpLGt0N1KB/Ad6MGTHCkN4Zh1raff6Rda7oQrUrB+takUCZ4abWZOSYhWga6UaZpYe6ReklODODfgmLOwDxrAkDu5XhhW/wkL2cqNOZ3p07AqFskwgosDgg2xFm5ft/AY2xGpePzLDuCydRkTzqGlNX9k5lb3c09zgqULaEEP7Rcsq94RAJED+aRGGmpWpfWA2KAsq6Ct+kCrLqD5FO3BDeQ7RpZcat7/a3qf68Hqdplr5G3cth6g5rovh/NdRZxM2YzWaCAxNSj1xXPTwKxQl9z0BaUh89Qqp6hmaGAhYr+vscCGLdyZXxcjprztYxOxB0fIDVVK9DbyrWh8QYNanuY3artetRKWS/pZQMJfVAxL+rCRBzEgRQfsrOI2rS6BKZ7o+inq1kzkBpSHM0kX13CDbJpAN2QwHmXGbaIgQSeekySJnGLggzREidPkrIVQK0Dc2WCyB2nftE05M= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYZPR03MB6624.apcprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(376002)(346002)(136003)(396003)(39860400002)(366004)(451199021)(54906003)(110136005)(122000001)(36756003)(71200400001)(38070700005)(38100700002)(6486002)(83380400001)(478600001)(2616005)(6512007)(2906002)(76116006)(86362001)(316002)(4326008)(66946007)(66556008)(66476007)(64756008)(66446008)(26005)(6506007)(8936002)(41300700001)(186003)(85182001)(5660300002)(8676002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NkJoTm01TnQzREJDZHVlN1owa0lzVzZQdit5TmhOQ3MzWkhzaHEzbEFzdTFp?= =?utf-8?B?VW9uVjlOMThoWUlXR0VibmY4a0NCekhHWlRtRThWS2hrMzM2cHFiWEZZa1F3?= =?utf-8?B?bC9QVTk4UytJZGoyMXhSK0JRZHBka21pRWlTckFBNVd0RlJmK2Y5VUVYbXFl?= =?utf-8?B?VDZ4eHJXbFBHdThYZUo0R1pMZjFrNXhDRVk2eU9lTjl3d1FoZXZVUHV2aHQ5?= =?utf-8?B?WUVOSVRvMmZYL2VHN3NFSGVBeVllTWVEaTdIYkVZcDVITy90d085cy9kRlBw?= =?utf-8?B?ZXY1TWNnREkxcGgvQkJJU0NVUGI3Y1poWHdLZEZhc2RaWDMvOStMekF4UG9O?= =?utf-8?B?N05rUElpTzJZT1cwV1ZGcVJqUnM4WnhEZTJ1T3o5VHZ6V2psVThWZXlOTEVm?= =?utf-8?B?MU1oN3FnR1F5QUcrRDIrc0xPVXRVbUgyYlhGZFVXcFlzbFFRZStZVjZpRWVC?= =?utf-8?B?ZURNaGZjMzdOQ0lHSzkyN3dhYW9KMjBJejQzYk9jaDJISzlkbTZRM0tpQ2xD?= =?utf-8?B?UEtkZmc1aURjUlI4RGJOaXE2VHlOS3d5dmpHM3B4UUh1d1BhaDErVUo2Q0Q0?= =?utf-8?B?QWRBbGFXVU5tNjk1YllrUWJWa1pheUFKN21ubVpxK1N2OWQ4ZEx0a2FyMDJN?= =?utf-8?B?U1oxTkxZK0piUmp0NFJiVXBSR2lxRFpKOGo0WEpTK201TWVBM1p2V3ZEcVJC?= =?utf-8?B?RU9nMTU0RXVCcmhTZHk1M1ZPNVl2a2tIZnNwRVA1QU12alIwR1IxRm0xVitL?= =?utf-8?B?czkvRnhKaHBHQ25CajIxU0ZvVjVQVHVONm1xUlN0bUtRL2JFSWZzWlkyZHpo?= =?utf-8?B?eVpmdTlBL3lYbC9VazVXWXNQdlcwNEtFdUR2VkQzckNEOENSQm5HQ3BEWlVx?= =?utf-8?B?ZDFDd2FqMktGZXR6b2NPYkQxTERnSmhzY29QOGVuUGtkN1NDS0tOTTVSNDUy?= =?utf-8?B?eEsxY3hHbkVNelV2akZoYWxuZHBXV0YwNnZOKzRLeit4TDVEc2h0WHh5cXRw?= =?utf-8?B?YXBSRVJlZXVLYkl4bnl2aFd3bW1VYzVacDBCeEdoUEVtQVNKUkovTk9HdEJS?= =?utf-8?B?cEtpSkI1aWpCL3NaMFlVOGVocUlkTmVsZWdJQzNpbW90SVhIZ3R3TVJhci93?= =?utf-8?B?QnArMi9OTGpKQUttWW1mWlYwY0l2UDF5MzJnbzBEV2gwSVFIelVhd3JWcngy?= =?utf-8?B?SjE4NlkxOUJ6VCtzbmlUMk5tUURDNko5ZXU3MFIyaVJwVXRPRXJ2c091SEZk?= =?utf-8?B?S2ZxWnFWcGNxcHJreWtUTTd0Wjh1elZia2FvajdTKzBMYmRSRkMyc0FMMy9H?= =?utf-8?B?cVU2MldCdk1UdW91L2hGSGNWZVdrYkxsSlRxb05PdVBtM3hXSTVYd2ZXazQw?= =?utf-8?B?OFE4YzhrUC9lSnYxZVpDSjAxbWtUOG51WDE0UktXYUg0TUxacnJpbUZUaEVU?= =?utf-8?B?UWV0ekkybjZiV0IzcXBlQW1XYmRSQUh4R00ySmUxVE5KTjRPY2J6a1U3dE94?= =?utf-8?B?MGNQejlFUmtpaXZqVFZxUDdrZmtuQXlZNllkTUtYVE10UXZsZTl5UGtQWEQv?= =?utf-8?B?OVdaaVdqMnlhVmt6K1RzZnJ2OUtsQm5FR1VqZGwwbXdLR0s4SHVzb0lXQS9t?= =?utf-8?B?a1NSMnlBSzAxR3RIVC9VM2czbDRDNHdyeU93ak1RLzBoNU9acmNCT204dnZo?= =?utf-8?B?R3IxUVl1Umw0b1ROVlMvcjhvQ0tadXZVUE9SNTJVTzBYSE80eWRYbE5mT1pt?= =?utf-8?B?UUhCL3EzZWJRdHo3b0ozeGhuSDl3SzUvWnAxY1hKdTdiRHJ1RHA3QnRrSktC?= =?utf-8?B?RVNQdVNsSjU1ODFwMEZvZ2prb2N0Vk5VY2QweUNEek5FVHNHOUNRU3YyYVpL?= =?utf-8?B?SzIveVYxL1VpS1dQektjMDg0VzJBd0k1V0ZFV3FQMTNDVzMwQjZvOE50byti?= =?utf-8?B?SmR0TWN5YktPNERvSVlNaUhkU0UrcXJFejVhZnVkdjk0QUJYRG1BWXhkWG1i?= =?utf-8?B?clBJQUdaM0dQc2F6dVFZSjZNVFpXaUZJOVRROFdVcUdBcVhlVFF1ZnZzbGZE?= =?utf-8?B?dTV2UmJkNVhoRkJlOHFaY285Y1RNSklJTDArMnN6aUZCUFRKVnRGTXBENWlB?= =?utf-8?Q?2U19+IFLyWeHX30oIjnNlwlhH?= Content-ID: <860CDBA8044222428B8D1C6F8556CFBF@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6624.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3f8c1d1-c368-489d-d010-08db93211af1 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2023 06:24:19.7860 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: q/sQQG7Y0cckRngk5xuf75ZUYY0iHY7qSwHvLSOVz8bBjrOr3oFiwg7bYFYeUjMdC77myf5p5gAu+50oCF2evg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR03MB6170 Content-Type: multipart/alternative; boundary="__=_Part_Boundary_002_133446439.743839338" 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: "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-mediatek@lists.infradead.org" , "wenst@chromium.org" , "matthias.bgg@gmail.com" , "kernel@collabora.com" , "linux-arm-kernel@lists.infradead.org" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" --__=_Part_Boundary_002_133446439.743839338 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PHByZT4NCkhpLCYjMzI7QW5nZWxvOg0KDQpPbiYjMzI7RnJpLCYjMzI7MjAyMy0wNi0yMyYjMzI7 YXQmIzMyOzExOjQ5JiMzMjsrMDIwMCwmIzMyO0FuZ2Vsb0dpb2FjY2hpbm8mIzMyO0RlbCYjMzI7 UmVnbm8mIzMyO3dyb3RlOg0KJmd0OyYjMzI7JiMzMjsmIzMyOw0KJmd0OyYjMzI7RXh0ZXJuYWwm IzMyO2VtYWlsJiMzMjs6JiMzMjtQbGVhc2UmIzMyO2RvJiMzMjtub3QmIzMyO2NsaWNrJiMzMjts aW5rcyYjMzI7b3ImIzMyO29wZW4mIzMyO2F0dGFjaG1lbnRzJiMzMjt1bnRpbA0KJmd0OyYjMzI7 eW91JiMzMjtoYXZlJiMzMjt2ZXJpZmllZCYjMzI7dGhlJiMzMjtzZW5kZXImIzMyO29yJiMzMjt0 aGUmIzMyO2NvbnRlbnQuDQomZ3Q7JiMzMjsmIzMyO0luc3RlYWQmIzMyO29mJiMzMjtzdGFjayYj MzI7YWxsb2NhdGluZyYjMzI7dGhlJiMzMjtjbWRxX2NsaWVudCYjMzI7YW5kJiMzMjtjbWRxX2hh bmRsZQ0KJmd0OyYjMzI7c3RydWN0dXJlcw0KJmd0OyYjMzI7c3dpdGNoJiMzMjt0aGVtJiMzMjt0 byYjMzI7cG9pbnRlcnMsJiMzMjthbGxvd2luZyYjMzI7dXMmIzMyO3RvJiMzMjttaWdyYXRlJiMz Mjt0aGlzJiMzMjtkcml2ZXImIzMyO3RvJiMzMjt1c2UNCiZndDsmIzMyO3RoZQ0KJmd0OyYjMzI7 Y29tbW9uJiMzMjtmdW5jdGlvbnMmIzMyO3Byb3ZpZGVkJiMzMjtieSYjMzI7bXRrLWNtZHEtaGVs cGVyLg0KJmd0OyYjMzI7SW4mIzMyO29yZGVyJiMzMjt0byYjMzI7ZG8mIzMyO3RoaXMsJiMzMjtp dCYjMzI7d2FzJiMzMjthbHNvJiMzMjtuZWNlc3NhcnkmIzMyO3RvJiMzMjthZGQmIzMyO2EmIzMy OyYjOTY7cHJpdiYjOTY7JiMzMjtwb2ludGVyJiMzMjt0bw0KJmd0OyYjMzI7c3RydWN0JiMzMjtj bWRxX2NsaWVudCwmIzMyO2FzJiMzMjt0aGF0JiMzOTtzJiMzMjt1c2VkJiMzMjt0byYjMzI7cGFz cyYjMzI7KGluJiMzMjt0aGlzJiMzMjtjYXNlKSYjMzI7YSYjMzI7bXRrX2NydGMNCiZndDsmIzMy O2hhbmRsZSYjMzI7dG8mIzMyO3RoZSYjMzI7ZGRwX2NtZHFfY2IoKSYjMzI7bWFpbGJveCYjMzI7 UlgmIzMyO2NhbGxiYWNrJiMzMjtmdW5jdGlvbi4NCiZndDsmIzMyOw0KJmd0OyYjMzI7U2lnbmVk LW9mZi1ieTomIzMyO0FuZ2Vsb0dpb2FjY2hpbm8mIzMyO0RlbCYjMzI7UmVnbm8mIzMyOyZsdDsN CiZndDsmIzMyO2FuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbSZndDsNCiZn dDsmIzMyOy0tLQ0KJmd0OyYjMzI7JiMzMjtkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Ry bV9jcnRjLmMmIzMyO3wmIzMyOzEwNyYjMzI7KysrKysrKy0tLS0tLS0tLS0tLS0tLQ0KJmd0OyYj MzI7LS0NCiZndDsmIzMyOyYjMzI7aW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEu aCYjMzI7JiMzMjsmIzMyO3wmIzMyOyYjMzI7JiMzMjsxJiMzMjsrDQomZ3Q7JiMzMjsmIzMyOzIm IzMyO2ZpbGVzJiMzMjtjaGFuZ2VkLCYjMzI7MzImIzMyO2luc2VydGlvbnMoKyksJiMzMjs3NiYj MzI7ZGVsZXRpb25zKC0pDQomZ3Q7JiMzMjsNCiZndDsmIzMyO2RpZmYmIzMyOy0tZ2l0JiMzMjth L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYw0KJmd0OyYjMzI7Yi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCiZndDsmIzMyO2luZGV4JiMzMjsw ZGY2MmIwNzZmNDkuLmI2MzI4OWFiNjc4NyYjMzI7MTAwNjQ0DQomZ3Q7JiMzMjstLS0mIzMyO2Ev ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jDQomZ3Q7JiMzMjsrKysmIzMy O2IvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jDQomZ3Q7JiMzMjtAQCYj MzI7LTUwLDgmIzMyOys1MCw4JiMzMjtAQCYjMzI7c3RydWN0JiMzMjttdGtfZHJtX2NydGMmIzMy O3sNCiZndDsmIzMyOyYjMzI7Ym9vbHBlbmRpbmdfYXN5bmNfcGxhbmVzOw0KJmd0OyYjMzI7JiMz MjsNCiZndDsmIzMyOyYjMzI7I2lmJiMzMjtJU19SRUFDSEFCTEUoQ09ORklHX01US19DTURRKQ0K Jmd0OyYjMzI7LXN0cnVjdCYjMzI7Y21kcV9jbGllbnRjbWRxX2NsaWVudDsNCiZndDsmIzMyOy1z dHJ1Y3QmIzMyO2NtZHFfcGt0Y21kcV9oYW5kbGU7DQomZ3Q7JiMzMjsrc3RydWN0JiMzMjtjbWRx X2NsaWVudCpjbWRxX2NsaWVudDsNCiZndDsmIzMyOytzdHJ1Y3QmIzMyO2NtZHFfcGt0KmNtZHFf aGFuZGxlOw0KJmd0OyYjMzI7JiMzMjt1MzJjbWRxX2V2ZW50Ow0KJmd0OyYjMzI7JiMzMjt1MzJj bWRxX3ZibGFua19jbnQ7DQomZ3Q7JiMzMjsmIzMyO3dhaXRfcXVldWVfaGVhZF90Y2JfYmxvY2tp bmdfcXVldWU7DQomZ3Q7JiMzMjtAQCYjMzI7LTEwOCw0NyYjMzI7KzEwOCw2JiMzMjtAQCYjMzI7 c3RhdGljJiMzMjt2b2lkJiMzMjttdGtfZHJtX2ZpbmlzaF9wYWdlX2ZsaXAoc3RydWN0DQomZ3Q7 JiMzMjttdGtfZHJtX2NydGMmIzMyOyptdGtfY3J0YykNCiZndDsmIzMyOyYjMzI7fQ0KJmd0OyYj MzI7JiMzMjt9DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7LSNpZiYjMzI7SVNfUkVBQ0hBQkxF KENPTkZJR19NVEtfQ01EUSkNCiZndDsmIzMyOy1zdGF0aWMmIzMyO2ludCYjMzI7bXRrX2RybV9j bWRxX3BrdF9jcmVhdGUoc3RydWN0JiMzMjtjbWRxX2NsaWVudCYjMzI7KmNsaWVudCwNCiZndDsm IzMyO3N0cnVjdCYjMzI7Y21kcV9wa3QmIzMyOypwa3QsDQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYj MzI7c2l6ZV90JiMzMjtzaXplKQ0KJmd0OyYjMzI7LXsNCiZndDsmIzMyOy1zdHJ1Y3QmIzMyO2Rl dmljZSYjMzI7KmRldjsNCiZndDsmIzMyOy1kbWFfYWRkcl90JiMzMjtkbWFfYWRkcjsNCiZndDsm IzMyOy0NCiZndDsmIzMyOy1wa3QtJmd0O3ZhX2Jhc2UmIzMyOz0mIzMyO2t6YWxsb2Moc2l6ZSwm IzMyO0dGUF9LRVJORUwpOw0KJmd0OyYjMzI7LWlmJiMzMjsoIXBrdC0mZ3Q7dmFfYmFzZSkmIzMy O3sNCiZndDsmIzMyOy1rZnJlZShwa3QpOw0KJmd0OyYjMzI7LXJldHVybiYjMzI7LUVOT01FTTsN CiZndDsmIzMyOy19DQomZ3Q7JiMzMjstcGt0LSZndDtidWZfc2l6ZSYjMzI7PSYjMzI7c2l6ZTsN CiZndDsmIzMyOy1wa3QtJmd0O2NsJiMzMjs9JiMzMjsodm9pZCYjMzI7KiljbGllbnQ7DQoNCkkm IzMyO2hhdmUmIzMyO2EmIzMyO3BsYW4mIzMyO3RvJiMzMjtyZW1vdmUmIzMyO2NsJiMzMjtpbiYj MzI7c3RydWN0JiMzMjtjbWRxX3BrdC4mIzMyO0J1dCYjMzI7dGhpcyYjMzI7bW9kaWZpY2F0aW9u DQp3b3VsZCYjMzI7bWFrZSYjMzI7dGhpcyYjMzI7cGxhbiYjMzI7bW9yZSYjMzI7ZGlmZmljdWx0 LiYjMzI7U28mIzMyO0kmIzMyO3dvdWxkJiMzMjtwZW5kaW5nJiMzMjt0aGlzJiMzMjtwYXRjaA0K dW50aWwmIzMyO2NsJiMzMjtpcyYjMzI7cmVtb3ZlZCYjMzI7ZnJvbSYjMzI7c3RydWN0JiMzMjtj bWRxX3BrdC4NCg0KUmVnYXJkcywNCkNLDQoNCiZndDsmIzMyOy0NCiZndDsmIzMyOy1kZXYmIzMy Oz0mIzMyO2NsaWVudC0mZ3Q7Y2hhbi0mZ3Q7bWJveC0mZ3Q7ZGV2Ow0KJmd0OyYjMzI7LWRtYV9h ZGRyJiMzMjs9JiMzMjtkbWFfbWFwX3NpbmdsZShkZXYsJiMzMjtwa3QtJmd0O3ZhX2Jhc2UsJiMz Mjtwa3QtJmd0O2J1Zl9zaXplLA0KJmd0OyYjMzI7LSYjMzI7JiMzMjtETUFfVE9fREVWSUNFKTsN CiZndDsmIzMyOy1pZiYjMzI7KGRtYV9tYXBwaW5nX2Vycm9yKGRldiwmIzMyO2RtYV9hZGRyKSkm IzMyO3sNCiZndDsmIzMyOy1kZXZfZXJyKGRldiwmIzMyOyZxdW90O2RtYSYjMzI7bWFwJiMzMjtm YWlsZWQsJiMzMjtzaXplPSV1JiM5MjtuJnF1b3Q7LA0KJmd0OyYjMzI7KHUzMikodTY0KXNpemUp Ow0KJmd0OyYjMzI7LWtmcmVlKHBrdC0mZ3Q7dmFfYmFzZSk7DQomZ3Q7JiMzMjsta2ZyZWUocGt0 KTsNCiZndDsmIzMyOy1yZXR1cm4mIzMyOy1FTk9NRU07DQomZ3Q7JiMzMjstfQ0KJmd0OyYjMzI7 LQ0KJmd0OyYjMzI7LXBrdC0mZ3Q7cGFfYmFzZSYjMzI7PSYjMzI7ZG1hX2FkZHI7DQomZ3Q7JiMz MjstDQomZ3Q7JiMzMjstcmV0dXJuJiMzMjswOw0KJmd0OyYjMzI7LX0NCiZndDsmIzMyOy0NCiZn dDsmIzMyOy1zdGF0aWMmIzMyO3ZvaWQmIzMyO210a19kcm1fY21kcV9wa3RfZGVzdHJveShzdHJ1 Y3QmIzMyO2NtZHFfcGt0JiMzMjsqcGt0KQ0KJmd0OyYjMzI7LXsNCiZndDsmIzMyOy1zdHJ1Y3Qm IzMyO2NtZHFfY2xpZW50JiMzMjsqY2xpZW50JiMzMjs9JiMzMjsoc3RydWN0JiMzMjtjbWRxX2Ns aWVudCYjMzI7Kilwa3QtJmd0O2NsOw0KJmd0OyYjMzI7LQ0KJmd0OyYjMzI7LWRtYV91bm1hcF9z aW5nbGUoY2xpZW50LSZndDtjaGFuLSZndDttYm94LSZndDtkZXYsJiMzMjtwa3QtJmd0O3BhX2Jh c2UsJiMzMjtwa3QtDQomZ3Q7JiMzMjsmZ3Q7YnVmX3NpemUsDQomZ3Q7JiMzMjstJiMzMjtETUFf VE9fREVWSUNFKTsNCiZndDsmIzMyOy1rZnJlZShwa3QtJmd0O3ZhX2Jhc2UpOw0KJmd0OyYjMzI7 LWtmcmVlKHBrdCk7DQomZ3Q7JiMzMjstfQ0KJmd0OyYjMzI7LSNlbmRpZg0KJmd0OyYjMzI7LQ0K Jmd0OyYjMzI7JiMzMjtzdGF0aWMmIzMyO3ZvaWQmIzMyO210a19kcm1fY3J0Y19kZXN0cm95KHN0 cnVjdCYjMzI7ZHJtX2NydGMmIzMyOypjcnRjKQ0KJmd0OyYjMzI7JiMzMjt7DQomZ3Q7JiMzMjsm IzMyO3N0cnVjdCYjMzI7bXRrX2RybV9jcnRjJiMzMjsqbXRrX2NydGMmIzMyOz0mIzMyO3RvX210 a19jcnRjKGNydGMpOw0KJmd0OyYjMzI7QEAmIzMyOy0xNTYsMTImIzMyOysxMTUsOSYjMzI7QEAm IzMyO3N0YXRpYyYjMzI7dm9pZCYjMzI7bXRrX2RybV9jcnRjX2Rlc3Ryb3koc3RydWN0JiMzMjtk cm1fY3J0Yw0KJmd0OyYjMzI7KmNydGMpDQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7JiMzMjtt dGtfbXV0ZXhfcHV0KG10a19jcnRjLSZndDttdXRleCk7DQomZ3Q7JiMzMjsmIzMyOyNpZiYjMzI7 SVNfUkVBQ0hBQkxFKENPTkZJR19NVEtfQ01EUSkNCiZndDsmIzMyOy1tdGtfZHJtX2NtZHFfcGt0 X2Rlc3Ryb3koJmFtcDttdGtfY3J0Yy0mZ3Q7Y21kcV9oYW5kbGUpOw0KJmd0OyYjMzI7LQ0KJmd0 OyYjMzI7LWlmJiMzMjsobXRrX2NydGMtJmd0O2NtZHFfY2xpZW50LmNoYW4pJiMzMjt7DQomZ3Q7 JiMzMjstbWJveF9mcmVlX2NoYW5uZWwobXRrX2NydGMtJmd0O2NtZHFfY2xpZW50LmNoYW4pOw0K Jmd0OyYjMzI7LW10a19jcnRjLSZndDtjbWRxX2NsaWVudC5jaGFuJiMzMjs9JiMzMjtOVUxMOw0K Jmd0OyYjMzI7LX0NCiZndDsmIzMyOytjbWRxX3BrdF9kZXN0cm95KG10a19jcnRjLSZndDtjbWRx X2hhbmRsZSk7DQomZ3Q7JiMzMjsrY21kcV9tYm94X2Rlc3Ryb3kobXRrX2NydGMtJmd0O2NtZHFf Y2xpZW50KTsNCiZndDsmIzMyOyttdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQmIzMyOz0mIzMyO05V TEw7DQomZ3Q7JiMzMjsmIzMyOyNlbmRpZg0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7 Zm9yJiMzMjsoaSYjMzI7PSYjMzI7MDsmIzMyO2kmIzMyOyZsdDsmIzMyO210a19jcnRjLSZndDtk ZHBfY29tcF9ucjsmIzMyO2krKykmIzMyO3sNCiZndDsmIzMyO0BAJiMzMjstMjg4LDcmIzMyOysy NDQsNyYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7dm9pZCYjMzI7ZGRwX2NtZHFfY2Ioc3RydWN0JiMz MjttYm94X2NsaWVudCYjMzI7KmNsLA0KJmd0OyYjMzI7dm9pZCYjMzI7Km1zc2cpDQomZ3Q7JiMz MjsmIzMyO3sNCiZndDsmIzMyOyYjMzI7c3RydWN0JiMzMjtjbWRxX2NiX2RhdGEmIzMyOypkYXRh JiMzMjs9JiMzMjttc3NnOw0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO2NtZHFfY2xpZW50JiMz MjsqY21kcV9jbCYjMzI7PSYjMzI7Y29udGFpbmVyX29mKGNsLCYjMzI7c3RydWN0DQomZ3Q7JiMz MjtjbWRxX2NsaWVudCwmIzMyO2NsaWVudCk7DQomZ3Q7JiMzMjstc3RydWN0JiMzMjttdGtfZHJt X2NydGMmIzMyOyptdGtfY3J0YyYjMzI7PSYjMzI7Y29udGFpbmVyX29mKGNtZHFfY2wsJiMzMjtz dHJ1Y3QNCiZndDsmIzMyO210a19kcm1fY3J0YywmIzMyO2NtZHFfY2xpZW50KTsNCiZndDsmIzMy OytzdHJ1Y3QmIzMyO210a19kcm1fY3J0YyYjMzI7Km10a19jcnRjJiMzMjs9JiMzMjsoc3RydWN0 JiMzMjttdGtfZHJtX2NydGMmIzMyOyopY21kcV9jbC0NCiZndDsmIzMyOyZndDtwcml2Ow0KJmd0 OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO210a19jcnRjX3N0YXRlJiMzMjsqc3RhdGU7DQomZ3Q7JiMz MjsmIzMyO3Vuc2lnbmVkJiMzMjtpbnQmIzMyO2k7DQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYjMzI7 QEAmIzMyOy01NDYsNyYjMzI7KzUwMiw3JiMzMjtAQCYjMzI7c3RhdGljJiMzMjt2b2lkJiMzMjtt dGtfZHJtX2NydGNfdXBkYXRlX2NvbmZpZyhzdHJ1Y3QNCiZndDsmIzMyO210a19kcm1fY3J0YyYj MzI7Km10a19jcnRjLA0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyO2Jvb2wmIzMyO25lZWRzX3ZibGFuaykNCiZndDsmIzMyOyYjMzI7ew0KJmd0OyYjMzI7 JiMzMjsjaWYmIzMyO0lTX1JFQUNIQUJMRShDT05GSUdfTVRLX0NNRFEpDQomZ3Q7JiMzMjstc3Ry dWN0JiMzMjtjbWRxX3BrdCYjMzI7KmNtZHFfaGFuZGxlJiMzMjs9JiMzMjsmYW1wO210a19jcnRj LSZndDtjbWRxX2hhbmRsZTsNCiZndDsmIzMyOytzdHJ1Y3QmIzMyO2NtZHFfcGt0JiMzMjsqY21k cV9oYW5kbGUmIzMyOz0mIzMyO210a19jcnRjLSZndDtjbWRxX2hhbmRsZTsNCiZndDsmIzMyOyYj MzI7I2VuZGlmDQomZ3Q7JiMzMjsmIzMyO3N0cnVjdCYjMzI7ZHJtX2NydGMmIzMyOypjcnRjJiMz Mjs9JiMzMjsmYW1wO210a19jcnRjLSZndDtiYXNlOw0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMy O210a19kcm1fcHJpdmF0ZSYjMzI7KnByaXYmIzMyOz0mIzMyO2NydGMtJmd0O2Rldi0mZ3Q7ZGV2 X3ByaXZhdGU7DQomZ3Q7JiMzMjtAQCYjMzI7LTU4NCwxNCYjMzI7KzU0MCwxNCYjMzI7QEAmIzMy O3N0YXRpYyYjMzI7dm9pZCYjMzI7bXRrX2RybV9jcnRjX3VwZGF0ZV9jb25maWcoc3RydWN0DQom Z3Q7JiMzMjttdGtfZHJtX2NydGMmIzMyOyptdGtfY3J0YywNCiZndDsmIzMyOyYjMzI7bXRrX211 dGV4X3JlbGVhc2UobXRrX2NydGMtJmd0O211dGV4KTsNCiZndDsmIzMyOyYjMzI7fQ0KJmd0OyYj MzI7JiMzMjsjaWYmIzMyO0lTX1JFQUNIQUJMRShDT05GSUdfTVRLX0NNRFEpDQomZ3Q7JiMzMjst aWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQuY2hhbikmIzMyO3sNCiZndDsmIzMyOy1t Ym94X2ZsdXNoKG10a19jcnRjLSZndDtjbWRxX2NsaWVudC5jaGFuLCYjMzI7MjAwMCk7DQomZ3Q7 JiMzMjsraWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQpJiMzMjt7DQomZ3Q7JiMzMjsr bWJveF9mbHVzaChtdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQtJmd0O2NoYW4sJiMzMjsyMDAwKTsN CiZndDsmIzMyOyYjMzI7Y21kcV9oYW5kbGUtJmd0O2NtZF9idWZfc2l6ZSYjMzI7PSYjMzI7MDsN CiZndDsmIzMyOyYjMzI7Y21kcV9wa3RfY2xlYXJfZXZlbnQoY21kcV9oYW5kbGUsJiMzMjttdGtf Y3J0Yy0NCiZndDsmIzMyOyZndDtjbWRxX2V2ZW50KTsNCiZndDsmIzMyOyYjMzI7Y21kcV9wa3Rf d2ZlKGNtZHFfaGFuZGxlLCYjMzI7bXRrX2NydGMtJmd0O2NtZHFfZXZlbnQsJiMzMjtmYWxzZSk7 DQomZ3Q7JiMzMjsmIzMyO210a19jcnRjX2RkcF9jb25maWcoY3J0YywmIzMyO2NtZHFfaGFuZGxl KTsNCiZndDsmIzMyOyYjMzI7Y21kcV9wa3RfZmluYWxpemUoY21kcV9oYW5kbGUpOw0KJmd0OyYj MzI7LWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKG10a19jcnRjLSZndDtjbWRxX2NsaWVudC5j aGFuLQ0KJmd0OyYjMzI7Jmd0O21ib3gtJmd0O2RldiwNCiZndDsmIzMyOytkbWFfc3luY19zaW5n bGVfZm9yX2RldmljZShtdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQtJmd0O2NoYW4tDQomZ3Q7JiMz MjsmZ3Q7bWJveC0mZ3Q7ZGV2LA0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjtjbWRxX2hh bmRsZS0mZ3Q7cGFfYmFzZSwNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7Y21kcV9oYW5k bGUtJmd0O2NtZF9idWZfc2l6ZSwNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7RE1BX1RP X0RFVklDRSk7DQomZ3Q7JiMzMjtAQCYjMzI7LTYwNCw4JiMzMjsrNTYwLDgmIzMyO0BAJiMzMjtz dGF0aWMmIzMyO3ZvaWQmIzMyO210a19kcm1fY3J0Y191cGRhdGVfY29uZmlnKHN0cnVjdA0KJmd0 OyYjMzI7bXRrX2RybV9jcnRjJiMzMjsqbXRrX2NydGMsDQomZ3Q7JiMzMjsmIzMyOyYjMzI7Ki8N CiZndDsmIzMyOyYjMzI7bXRrX2NydGMtJmd0O2NtZHFfdmJsYW5rX2NudCYjMzI7PSYjMzI7MzsN CiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjstbWJveF9zZW5kX21lc3NhZ2UobXRrX2NydGMtJmd0 O2NtZHFfY2xpZW50LmNoYW4sDQomZ3Q7JiMzMjtjbWRxX2hhbmRsZSk7DQomZ3Q7JiMzMjstbWJv eF9jbGllbnRfdHhkb25lKG10a19jcnRjLSZndDtjbWRxX2NsaWVudC5jaGFuLCYjMzI7MCk7DQom Z3Q7JiMzMjsrbWJveF9zZW5kX21lc3NhZ2UobXRrX2NydGMtJmd0O2NtZHFfY2xpZW50LSZndDtj aGFuLA0KJmd0OyYjMzI7Y21kcV9oYW5kbGUpOw0KJmd0OyYjMzI7K21ib3hfY2xpZW50X3R4ZG9u ZShtdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQtJmd0O2NoYW4sJiMzMjswKTsNCiZndDsmIzMyOyYj MzI7fQ0KJmd0OyYjMzI7JiMzMjsjZW5kaWYNCiZndDsmIzMyOyYjMzI7bXRrX2NydGMtJmd0O2Nv bmZpZ191cGRhdGluZyYjMzI7PSYjMzI7ZmFsc2U7DQomZ3Q7JiMzMjtAQCYjMzI7LTYxOSw3JiMz MjsrNTc1LDcmIzMyO0BAJiMzMjtzdGF0aWMmIzMyO3ZvaWQmIzMyO210a19jcnRjX2RkcF9pcnEo dm9pZCYjMzI7KmRhdGEpDQomZ3Q7JiMzMjsmIzMyO3N0cnVjdCYjMzI7bXRrX2RybV9wcml2YXRl JiMzMjsqcHJpdiYjMzI7PSYjMzI7Y3J0Yy0mZ3Q7ZGV2LSZndDtkZXZfcHJpdmF0ZTsNCiZndDsm IzMyOyYjMzI7DQomZ3Q7JiMzMjsmIzMyOyNpZiYjMzI7SVNfUkVBQ0hBQkxFKENPTkZJR19NVEtf Q01EUSkNCiZndDsmIzMyOy1pZiYjMzI7KCFwcml2LSZndDtkYXRhLSZndDtzaGFkb3dfcmVnaXN0 ZXImIzMyOyZhbXA7JmFtcDsmIzMyOyFtdGtfY3J0Yy0NCiZndDsmIzMyOyZndDtjbWRxX2NsaWVu dC5jaGFuKQ0KJmd0OyYjMzI7K2lmJiMzMjsoIXByaXYtJmd0O2RhdGEtJmd0O3NoYWRvd19yZWdp c3RlciYjMzI7JmFtcDsmYW1wOyYjMzI7IW10a19jcnRjLSZndDtjbWRxX2NsaWVudCkNCiZndDsm IzMyOyYjMzI7bXRrX2NydGNfZGRwX2NvbmZpZyhjcnRjLCYjMzI7TlVMTCk7DQomZ3Q7JiMzMjsm IzMyO2Vsc2UmIzMyO2lmJiMzMjsobXRrX2NydGMtJmd0O2NtZHFfdmJsYW5rX2NudCYjMzI7Jmd0 OyYjMzI7MCYjMzI7JmFtcDsmYW1wOyYjMzI7LS1tdGtfY3J0Yy0NCiZndDsmIzMyOyZndDtjbWRx X3ZibGFua19jbnQmIzMyOz09JiMzMjswKQ0KJmd0OyYjMzI7JiMzMjtEUk1fRVJST1IoJnF1b3Q7 bXRrX2NydGMmIzMyOyVkJiMzMjtDTURRJiMzMjtleGVjdXRlJiMzMjtjb21tYW5kDQomZ3Q7JiMz Mjt0aW1lb3V0ISYjOTI7biZxdW90OywNCiZndDsmIzMyO0BAJiMzMjstNzIyLDcmIzMyOys2Nzgs NyYjMzI7QEAmIzMyO3N0YXRpYyYjMzI7dm9pZCYjMzI7bXRrX2RybV9jcnRjX2F0b21pY19kaXNh YmxlKHN0cnVjdA0KJmd0OyYjMzI7ZHJtX2NydGMmIzMyOypjcnRjLA0KJmd0OyYjMzI7JiMzMjtt dGtfZHJtX2NydGNfdXBkYXRlX2NvbmZpZyhtdGtfY3J0YywmIzMyO2ZhbHNlKTsNCiZndDsmIzMy OyYjMzI7I2lmJiMzMjtJU19SRUFDSEFCTEUoQ09ORklHX01US19DTURRKQ0KJmd0OyYjMzI7JiMz MjsvKiYjMzI7V2FpdCYjMzI7Zm9yJiMzMjtwbGFuZXMmIzMyO3RvJiMzMjtiZSYjMzI7ZGlzYWJs ZWQmIzMyO2J5JiMzMjtjbWRxJiMzMjsqLw0KJmd0OyYjMzI7LWlmJiMzMjsobXRrX2NydGMtJmd0 O2NtZHFfY2xpZW50LmNoYW4pDQomZ3Q7JiMzMjsraWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7Y21kcV9j bGllbnQpDQomZ3Q7JiMzMjsmIzMyO3dhaXRfZXZlbnRfdGltZW91dChtdGtfY3J0Yy0mZ3Q7Y2Jf YmxvY2tpbmdfcXVldWUsDQomZ3Q7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO210a19jcnRjLSZn dDtjbWRxX3ZibGFua19jbnQmIzMyOz09JiMzMjswLA0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjttc2Vjc190b19qaWZmaWVzKDUwMCkpOw0KJmd0OyYjMzI7QEAmIzMyOy0xMDAyLDE5JiMz MjsrOTU4LDIwJiMzMjtAQCYjMzI7aW50JiMzMjttdGtfZHJtX2NydGNfY3JlYXRlKHN0cnVjdCYj MzI7ZHJtX2RldmljZQ0KJmd0OyYjMzI7KmRybV9kZXYsDQomZ3Q7JiMzMjsmIzMyOw0KJmd0OyYj MzI7JiMzMjsjaWYmIzMyO0lTX1JFQUNIQUJMRShDT05GSUdfTVRLX0NNRFEpDQomZ3Q7JiMzMjsm IzMyO2kmIzMyOz0mIzMyO3ByaXYtJmd0O21ib3hfaW5kZXgrKzsNCiZndDsmIzMyOy1tdGtfY3J0 Yy0mZ3Q7Y21kcV9jbGllbnQuY2xpZW50LmRldiYjMzI7PSYjMzI7bXRrX2NydGMtJmd0O21tc3lz X2RldjsNCiZndDsmIzMyOy1tdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQuY2xpZW50LnR4X2Jsb2Nr JiMzMjs9JiMzMjtmYWxzZTsNCiZndDsmIzMyOy1tdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQuY2xp ZW50Lmtub3dzX3R4ZG9uZSYjMzI7PSYjMzI7dHJ1ZTsNCiZndDsmIzMyOy1tdGtfY3J0Yy0mZ3Q7 Y21kcV9jbGllbnQuY2xpZW50LnJ4X2NhbGxiYWNrJiMzMjs9JiMzMjtkZHBfY21kcV9jYjsNCiZn dDsmIzMyOy1tdGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQuY2hhbiYjMzI7PQ0KJmd0OyYjMzI7LW1i b3hfcmVxdWVzdF9jaGFubmVsKCZhbXA7bXRrX2NydGMtDQomZ3Q7JiMzMjsmZ3Q7Y21kcV9jbGll bnQuY2xpZW50LCYjMzI7aSk7DQomZ3Q7JiMzMjstaWYmIzMyOyhJU19FUlIobXRrX2NydGMtJmd0 O2NtZHFfY2xpZW50LmNoYW4pKSYjMzI7ew0KJmd0OyYjMzI7LWRldl9kYmcoZGV2LCYjMzI7JnF1 b3Q7bXRrX2NydGMmIzMyOyVkJiMzMjtmYWlsZWQmIzMyO3RvJiMzMjtjcmVhdGUmIzMyO21haWxi b3gNCiZndDsmIzMyO2NsaWVudCwmIzMyO3dyaXRpbmcmIzMyO3JlZ2lzdGVyJiMzMjtieSYjMzI7 Q1BVJiMzMjtub3cmIzkyO24mcXVvdDssDQomZ3Q7JiMzMjstZHJtX2NydGNfaW5kZXgoJmFtcDtt dGtfY3J0Yy0mZ3Q7YmFzZSkpOw0KJmd0OyYjMzI7LW10a19jcnRjLSZndDtjbWRxX2NsaWVudC5j aGFuJiMzMjs9JiMzMjtOVUxMOw0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7K210a19jcnRjLSZndDtj bWRxX2NsaWVudCYjMzI7PSYjMzI7Y21kcV9tYm94X2NyZWF0ZShtdGtfY3J0Yy0mZ3Q7bW1zeXNf ZGV2LA0KJmd0OyYjMzI7aSk7DQomZ3Q7JiMzMjsraWYmIzMyOyhJU19FUlIobXRrX2NydGMtJmd0 O2NtZHFfY2xpZW50KSkmIzMyO3sNCiZndDsmIzMyOytyZXQmIzMyOz0mIzMyO1BUUl9FUlIobXRr X2NydGMtJmd0O2NtZHFfY2xpZW50KTsNCiZndDsmIzMyOytkZXZfZGJnKGRldiwmIzMyOyZxdW90 O0ZhaWxlZCYjMzI7dG8mIzMyO2NyZWF0ZSYjMzI7Q01EUSYjMzI7Y2xpZW50OiYjMzI7JWQmIzky O24mcXVvdDssDQomZ3Q7JiMzMjtyZXQpOw0KJmd0OyYjMzI7K210a19jcnRjLSZndDtjbWRxX2Ns aWVudCYjMzI7PSYjMzI7TlVMTDsNCiZndDsmIzMyOytyZXR1cm4mIzMyOzA7DQomZ3Q7JiMzMjsm IzMyO30NCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjstaWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7Y21k cV9jbGllbnQuY2hhbikmIzMyO3sNCiZndDsmIzMyOysvKiYjMzI7U2V0dXAmIzMyO3RoZSYjMzI7 Q01EUSYjMzI7aGFuZGxlciYjMzI7Y2FsbGJhY2smIzMyOyovDQomZ3Q7JiMzMjsrbXRrX2NydGMt Jmd0O2NtZHFfY2xpZW50LSZndDtwcml2JiMzMjs9JiMzMjttdGtfY3J0YzsNCiZndDsmIzMyOytt dGtfY3J0Yy0mZ3Q7Y21kcV9jbGllbnQtJmd0O2NsaWVudC5yeF9jYWxsYmFjayYjMzI7PSYjMzI7 ZGRwX2NtZHFfY2I7DQomZ3Q7JiMzMjsrDQomZ3Q7JiMzMjsraWYmIzMyOyhtdGtfY3J0Yy0mZ3Q7 Y21kcV9jbGllbnQpJiMzMjt7DQomZ3Q7JiMzMjsmIzMyO3JldCYjMzI7PSYjMzI7b2ZfcHJvcGVy dHlfcmVhZF91MzJfaW5kZXgocHJpdi0mZ3Q7bXV0ZXhfbm9kZSwNCiZndDsmIzMyOyYjMzI7JiMz MjsmcXVvdDttZWRpYXRlayxnY2UtZXZlbnRzJnF1b3Q7LA0KJmd0OyYjMzI7JiMzMjsmIzMyO2ks DQomZ3Q7JiMzMjtAQCYjMzI7LTEwMjIsMTcmIzMyOys5NzksMTUmIzMyO0BAJiMzMjtpbnQmIzMy O210a19kcm1fY3J0Y19jcmVhdGUoc3RydWN0JiMzMjtkcm1fZGV2aWNlDQomZ3Q7JiMzMjsqZHJt X2RldiwNCiZndDsmIzMyOyYjMzI7aWYmIzMyOyhyZXQpJiMzMjt7DQomZ3Q7JiMzMjsmIzMyO2Rl dl9kYmcoZGV2LCYjMzI7JnF1b3Q7bXRrX2NydGMmIzMyOyVkJiMzMjtmYWlsZWQmIzMyO3RvJiMz MjtnZXQNCiZndDsmIzMyO21lZGlhdGVrLGdjZS1ldmVudHMmIzMyO3Byb3BlcnR5JiM5MjtuJnF1 b3Q7LA0KJmd0OyYjMzI7JiMzMjtkcm1fY3J0Y19pbmRleCgmYW1wO210a19jcnRjLSZndDtiYXNl KSk7DQomZ3Q7JiMzMjstbWJveF9mcmVlX2NoYW5uZWwobXRrX2NydGMtJmd0O2NtZHFfY2xpZW50 LmNoYW4pOw0KJmd0OyYjMzI7LW10a19jcnRjLSZndDtjbWRxX2NsaWVudC5jaGFuJiMzMjs9JiMz MjtOVUxMOw0KJmd0OyYjMzI7K2NtZHFfbWJveF9kZXN0cm95KG10a19jcnRjLSZndDtjbWRxX2Ns aWVudCk7DQomZ3Q7JiMzMjsrbXRrX2NydGMtJmd0O2NtZHFfY2xpZW50JiMzMjs9JiMzMjtOVUxM Ow0KJmd0OyYjMzI7JiMzMjt9JiMzMjtlbHNlJiMzMjt7DQomZ3Q7JiMzMjstcmV0JiMzMjs9JiMz MjttdGtfZHJtX2NtZHFfcGt0X2NyZWF0ZSgmYW1wO210a19jcnRjLQ0KJmd0OyYjMzI7Jmd0O2Nt ZHFfY2xpZW50LA0KJmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyZhbXA7 bXRrX2NydGMtDQomZ3Q7JiMzMjsmZ3Q7Y21kcV9oYW5kbGUsDQomZ3Q7JiMzMjstJiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOyYjMzI7UEFHRV9TSVpFKTsNCiZndDsmIzMyOyttdGtfY3J0Yy0mZ3Q7 Y21kcV9oYW5kbGUmIzMyOz0NCiZndDsmIzMyO2NtZHFfcGt0X2NyZWF0ZShtdGtfY3J0Yy0mZ3Q7 Y21kcV9jbGllbnQsJiMzMjtQQUdFX1NJWkUpOw0KJmd0OyYjMzI7JiMzMjtpZiYjMzI7KHJldCkm IzMyO3sNCiZndDsmIzMyOyYjMzI7ZGV2X2RiZyhkZXYsJiMzMjsmcXVvdDttdGtfY3J0YyYjMzI7 JWQmIzMyO2ZhaWxlZCYjMzI7dG8NCiZndDsmIzMyO2NyZWF0ZSYjMzI7Y21kcSYjMzI7cGFja2V0 JiM5MjtuJnF1b3Q7LA0KJmd0OyYjMzI7JiMzMjtkcm1fY3J0Y19pbmRleCgmYW1wO210a19jcnRj LQ0KJmd0OyYjMzI7Jmd0O2Jhc2UpKTsNCiZndDsmIzMyOy1tYm94X2ZyZWVfY2hhbm5lbChtdGtf Y3J0Yy0NCiZndDsmIzMyOyZndDtjbWRxX2NsaWVudC5jaGFuKTsNCiZndDsmIzMyOy1tdGtfY3J0 Yy0mZ3Q7Y21kcV9jbGllbnQuY2hhbiYjMzI7PSYjMzI7TlVMTDsNCiZndDsmIzMyOytjbWRxX21i b3hfZGVzdHJveShtdGtfY3J0Yy0NCiZndDsmIzMyOyZndDtjbWRxX2NsaWVudCk7DQomZ3Q7JiMz MjsrbXRrX2NydGMtJmd0O2NtZHFfY2xpZW50JiMzMjs9JiMzMjtOVUxMOw0KJmd0OyYjMzI7JiMz Mjt9DQomZ3Q7JiMzMjsmIzMyO30NCiZndDsmIzMyOyYjMzI7DQomZ3Q7JiMzMjtkaWZmJiMzMjst LWdpdCYjMzI7YS9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oDQomZ3Q7JiMz MjtiL2luY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210ay1jbWRxLmgNCiZndDsmIzMyO2luZGV4 JiMzMjs2NDk5NTVkMmNmNWMuLjJhMWRjOGIxMmRiMyYjMzI7MTAwNjQ0DQomZ3Q7JiMzMjstLS0m IzMyO2EvaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEuaA0KJmd0OyYjMzI7Kysr JiMzMjtiL2luY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210ay1jbWRxLmgNCiZndDsmIzMyO0BA JiMzMjstMjUsNiYjMzI7KzI1LDcmIzMyO0BAJiMzMjtzdHJ1Y3QmIzMyO2NtZHFfY2xpZW50X3Jl ZyYjMzI7ew0KJmd0OyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO2NtZHFfY2xpZW50JiMzMjt7DQomZ3Q7 JiMzMjsmIzMyO3N0cnVjdCYjMzI7bWJveF9jbGllbnQmIzMyO2NsaWVudDsNCiZndDsmIzMyOyYj MzI7c3RydWN0JiMzMjttYm94X2NoYW4mIzMyOypjaGFuOw0KJmd0OyYjMzI7K3ZvaWQmIzMyOypw cml2Ow0KJmd0OyYjMzI7JiMzMjt9Ow0KJmd0OyYjMzI7JiMzMjsNCiZndDsmIzMyOyYjMzI7I2lm JiMzMjtJU19FTkFCTEVEKENPTkZJR19NVEtfQ01EUSkNCiZndDsmIzMyOy0tJiMzMjsNCiZndDsm IzMyOzIuNDAuMQ0KDQo8L3ByZT48IS0tdHlwZTp0ZXh0LS0+PCEtLXstLT48cHJlPioqKioqKioq KioqKiogTUVESUFURUsgQ29uZmlkZW50aWFsaXR5IE5vdGljZSAqKioqKioqKioqKioqKioqKioq Kg0KVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBpbiB0aGlzIGUtbWFpbCBtZXNzYWdlIChpbmNs dWRpbmcgYW55IA0KYXR0YWNobWVudHMpIG1heSBiZSBjb25maWRlbnRpYWwsIHByb3ByaWV0YXJ5 LCBwcml2aWxlZ2VkLCBvciBvdGhlcndpc2UNCmV4ZW1wdCBmcm9tIGRpc2Nsb3N1cmUgdW5kZXIg YXBwbGljYWJsZSBsYXdzLiBJdCBpcyBpbnRlbmRlZCB0byBiZSANCmNvbnZleWVkIG9ubHkgdG8g dGhlIGRlc2lnbmF0ZWQgcmVjaXBpZW50KHMpLiBBbnkgdXNlLCBkaXNzZW1pbmF0aW9uLCANCmRp c3RyaWJ1dGlvbiwgcHJpbnRpbmcsIHJldGFpbmluZyBvciBjb3B5aW5nIG9mIHRoaXMgZS1tYWls IChpbmNsdWRpbmcgaXRzIA0KYXR0YWNobWVudHMpIGJ5IHVuaW50ZW5kZWQgcmVjaXBpZW50KHMp IGlzIHN0cmljdGx5IHByb2hpYml0ZWQgYW5kIG1heSANCmJlIHVubGF3ZnVsLiBJZiB5b3UgYXJl IG5vdCBhbiBpbnRlbmRlZCByZWNpcGllbnQgb2YgdGhpcyBlLW1haWwsIG9yIGJlbGlldmUgDQp0 aGF0IHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZS1tYWlsIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5 IHRoZSBzZW5kZXIgDQppbW1lZGlhdGVseSAoYnkgcmVwbHlpbmcgdG8gdGhpcyBlLW1haWwpLCBk ZWxldGUgYW55IGFuZCBhbGwgY29waWVzIG9mIA0KdGhpcyBlLW1haWwgKGluY2x1ZGluZyBhbnkg YXR0YWNobWVudHMpIGZyb20geW91ciBzeXN0ZW0sIGFuZCBkbyBub3QNCmRpc2Nsb3NlIHRoZSBj b250ZW50IG9mIHRoaXMgZS1tYWlsIHRvIGFueSBvdGhlciBwZXJzb24uIFRoYW5rIHlvdSENCjwv cHJlPjwhLS19LS0+ --__=_Part_Boundary_002_133446439.743839338 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIEFuZ2VsbzoNCg0KT24gRnJpLCAyMDIzLTA2LTIzIGF0IDExOjQ5ICswMjAwLCBBbmdlbG9H aW9hY2NoaW5vIERlbCBSZWdubyB3cm90ZToNCj4gIAkgDQo+IEV4dGVybmFsIGVtYWlsIDogUGxl YXNlIGRvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVudGlsDQo+IHlvdSBo YXZlIHZlcmlmaWVkIHRoZSBzZW5kZXIgb3IgdGhlIGNvbnRlbnQuDQo+ICBJbnN0ZWFkIG9mIHN0 YWNrIGFsbG9jYXRpbmcgdGhlIGNtZHFfY2xpZW50IGFuZCBjbWRxX2hhbmRsZQ0KPiBzdHJ1Y3R1 cmVzDQo+IHN3aXRjaCB0aGVtIHRvIHBvaW50ZXJzLCBhbGxvd2luZyB1cyB0byBtaWdyYXRlIHRo aXMgZHJpdmVyIHRvIHVzZQ0KPiB0aGUNCj4gY29tbW9uIGZ1bmN0aW9ucyBwcm92aWRlZCBieSBt dGstY21kcS1oZWxwZXIuDQo+IEluIG9yZGVyIHRvIGRvIHRoaXMsIGl0IHdhcyBhbHNvIG5lY2Vz c2FyeSB0byBhZGQgYSBgcHJpdmAgcG9pbnRlciB0bw0KPiBzdHJ1Y3QgY21kcV9jbGllbnQsIGFz IHRoYXQncyB1c2VkIHRvIHBhc3MgKGluIHRoaXMgY2FzZSkgYSBtdGtfY3J0Yw0KPiBoYW5kbGUg dG8gdGhlIGRkcF9jbWRxX2NiKCkgbWFpbGJveCBSWCBjYWxsYmFjayBmdW5jdGlvbi4NCj4gDQo+ IFNpZ25lZC1vZmYtYnk6IEFuZ2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25vIDwNCj4gYW5nZWxvZ2lv YWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYyB8IDEwNyArKysrKysrLS0tLS0tLS0tLS0tLS0tDQo+ IC0tDQo+ICBpbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oICAgfCAgIDEgKw0K PiAgMiBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMoLSkNCj4g DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMN Cj4gYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCj4gaW5kZXggMGRm NjJiMDc2ZjQ5Li5iNjMyODlhYjY3ODcgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2NydGMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9jcnRjLmMNCj4gQEAgLTUwLDggKzUwLDggQEAgc3RydWN0IG10a19kcm1fY3J0YyB7 DQo+ICAJYm9vbAkJCQlwZW5kaW5nX2FzeW5jX3BsYW5lczsNCj4gIA0KPiAgI2lmIElTX1JFQUNI QUJMRShDT05GSUdfTVRLX0NNRFEpDQo+IC0Jc3RydWN0IGNtZHFfY2xpZW50CQljbWRxX2NsaWVu dDsNCj4gLQlzdHJ1Y3QgY21kcV9wa3QJCQljbWRxX2hhbmRsZTsNCj4gKwlzdHJ1Y3QgY21kcV9j bGllbnQJCSpjbWRxX2NsaWVudDsNCj4gKwlzdHJ1Y3QgY21kcV9wa3QJCQkqY21kcV9oYW5kbGU7 DQo+ICAJdTMyCQkJCWNtZHFfZXZlbnQ7DQo+ICAJdTMyCQkJCWNtZHFfdmJsYW5rX2NudDsNCj4g IAl3YWl0X3F1ZXVlX2hlYWRfdAkJY2JfYmxvY2tpbmdfcXVldWU7DQo+IEBAIC0xMDgsNDcgKzEw OCw2IEBAIHN0YXRpYyB2b2lkIG10a19kcm1fZmluaXNoX3BhZ2VfZmxpcChzdHJ1Y3QNCj4gbXRr X2RybV9jcnRjICptdGtfY3J0YykNCj4gIAl9DQo+ICB9DQo+ICANCj4gLSNpZiBJU19SRUFDSEFC TEUoQ09ORklHX01US19DTURRKQ0KPiAtc3RhdGljIGludCBtdGtfZHJtX2NtZHFfcGt0X2NyZWF0 ZShzdHJ1Y3QgY21kcV9jbGllbnQgKmNsaWVudCwNCj4gc3RydWN0IGNtZHFfcGt0ICpwa3QsDQo+ IC0JCQkJICAgc2l6ZV90IHNpemUpDQo+IC17DQo+IC0Jc3RydWN0IGRldmljZSAqZGV2Ow0KPiAt CWRtYV9hZGRyX3QgZG1hX2FkZHI7DQo+IC0NCj4gLQlwa3QtPnZhX2Jhc2UgPSBremFsbG9jKHNp emUsIEdGUF9LRVJORUwpOw0KPiAtCWlmICghcGt0LT52YV9iYXNlKSB7DQo+IC0JCWtmcmVlKHBr dCk7DQo+IC0JCXJldHVybiAtRU5PTUVNOw0KPiAtCX0NCj4gLQlwa3QtPmJ1Zl9zaXplID0gc2l6 ZTsNCj4gLQlwa3QtPmNsID0gKHZvaWQgKiljbGllbnQ7DQoNCkkgaGF2ZSBhIHBsYW4gdG8gcmVt b3ZlIGNsIGluIHN0cnVjdCBjbWRxX3BrdC4gQnV0IHRoaXMgbW9kaWZpY2F0aW9uDQp3b3VsZCBt YWtlIHRoaXMgcGxhbiBtb3JlIGRpZmZpY3VsdC4gU28gSSB3b3VsZCBwZW5kaW5nIHRoaXMgcGF0 Y2gNCnVudGlsIGNsIGlzIHJlbW92ZWQgZnJvbSBzdHJ1Y3QgY21kcV9wa3QuDQoNClJlZ2FyZHMs DQpDSw0KDQo+IC0NCj4gLQlkZXYgPSBjbGllbnQtPmNoYW4tPm1ib3gtPmRldjsNCj4gLQlkbWFf YWRkciA9IGRtYV9tYXBfc2luZ2xlKGRldiwgcGt0LT52YV9iYXNlLCBwa3QtPmJ1Zl9zaXplLA0K PiAtCQkJCSAgRE1BX1RPX0RFVklDRSk7DQo+IC0JaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGRldiwg ZG1hX2FkZHIpKSB7DQo+IC0JCWRldl9lcnIoZGV2LCAiZG1hIG1hcCBmYWlsZWQsIHNpemU9JXVc biIsDQo+ICh1MzIpKHU2NClzaXplKTsNCj4gLQkJa2ZyZWUocGt0LT52YV9iYXNlKTsNCj4gLQkJ a2ZyZWUocGt0KTsNCj4gLQkJcmV0dXJuIC1FTk9NRU07DQo+IC0JfQ0KPiAtDQo+IC0JcGt0LT5w YV9iYXNlID0gZG1hX2FkZHI7DQo+IC0NCj4gLQlyZXR1cm4gMDsNCj4gLX0NCj4gLQ0KPiAtc3Rh dGljIHZvaWQgbXRrX2RybV9jbWRxX3BrdF9kZXN0cm95KHN0cnVjdCBjbWRxX3BrdCAqcGt0KQ0K PiAtew0KPiAtCXN0cnVjdCBjbWRxX2NsaWVudCAqY2xpZW50ID0gKHN0cnVjdCBjbWRxX2NsaWVu dCAqKXBrdC0+Y2w7DQo+IC0NCj4gLQlkbWFfdW5tYXBfc2luZ2xlKGNsaWVudC0+Y2hhbi0+bWJv eC0+ZGV2LCBwa3QtPnBhX2Jhc2UsIHBrdC0NCj4gPmJ1Zl9zaXplLA0KPiAtCQkJIERNQV9UT19E RVZJQ0UpOw0KPiAtCWtmcmVlKHBrdC0+dmFfYmFzZSk7DQo+IC0Ja2ZyZWUocGt0KTsNCj4gLX0N Cj4gLSNlbmRpZg0KPiAtDQo+ICBzdGF0aWMgdm9pZCBtdGtfZHJtX2NydGNfZGVzdHJveShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpDQo+ICB7DQo+ICAJc3RydWN0IG10a19kcm1fY3J0YyAqbXRrX2Ny dGMgPSB0b19tdGtfY3J0YyhjcnRjKTsNCj4gQEAgLTE1NiwxMiArMTE1LDkgQEAgc3RhdGljIHZv aWQgbXRrX2RybV9jcnRjX2Rlc3Ryb3koc3RydWN0IGRybV9jcnRjDQo+ICpjcnRjKQ0KPiAgDQo+ ICAJbXRrX211dGV4X3B1dChtdGtfY3J0Yy0+bXV0ZXgpOw0KPiAgI2lmIElTX1JFQUNIQUJMRShD T05GSUdfTVRLX0NNRFEpDQo+IC0JbXRrX2RybV9jbWRxX3BrdF9kZXN0cm95KCZtdGtfY3J0Yy0+ Y21kcV9oYW5kbGUpOw0KPiAtDQo+IC0JaWYgKG10a19jcnRjLT5jbWRxX2NsaWVudC5jaGFuKSB7 DQo+IC0JCW1ib3hfZnJlZV9jaGFubmVsKG10a19jcnRjLT5jbWRxX2NsaWVudC5jaGFuKTsNCj4g LQkJbXRrX2NydGMtPmNtZHFfY2xpZW50LmNoYW4gPSBOVUxMOw0KPiAtCX0NCj4gKwljbWRxX3Br dF9kZXN0cm95KG10a19jcnRjLT5jbWRxX2hhbmRsZSk7DQo+ICsJY21kcV9tYm94X2Rlc3Ryb3ko bXRrX2NydGMtPmNtZHFfY2xpZW50KTsNCj4gKwltdGtfY3J0Yy0+Y21kcV9jbGllbnQgPSBOVUxM Ow0KPiAgI2VuZGlmDQo+ICANCj4gIAlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21w X25yOyBpKyspIHsNCj4gQEAgLTI4OCw3ICsyNDQsNyBAQCBzdGF0aWMgdm9pZCBkZHBfY21kcV9j YihzdHJ1Y3QgbWJveF9jbGllbnQgKmNsLA0KPiB2b2lkICptc3NnKQ0KPiAgew0KPiAgCXN0cnVj dCBjbWRxX2NiX2RhdGEgKmRhdGEgPSBtc3NnOw0KPiAgCXN0cnVjdCBjbWRxX2NsaWVudCAqY21k cV9jbCA9IGNvbnRhaW5lcl9vZihjbCwgc3RydWN0DQo+IGNtZHFfY2xpZW50LCBjbGllbnQpOw0K PiAtCXN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19jcnRjID0gY29udGFpbmVyX29mKGNtZHFfY2ws IHN0cnVjdA0KPiBtdGtfZHJtX2NydGMsIGNtZHFfY2xpZW50KTsNCj4gKwlzdHJ1Y3QgbXRrX2Ry bV9jcnRjICptdGtfY3J0YyA9IChzdHJ1Y3QgbXRrX2RybV9jcnRjICopY21kcV9jbC0NCj4gPnBy aXY7DQo+ICAJc3RydWN0IG10a19jcnRjX3N0YXRlICpzdGF0ZTsNCj4gIAl1bnNpZ25lZCBpbnQg aTsNCj4gIA0KPiBAQCAtNTQ2LDcgKzUwMiw3IEBAIHN0YXRpYyB2b2lkIG10a19kcm1fY3J0Y191 cGRhdGVfY29uZmlnKHN0cnVjdA0KPiBtdGtfZHJtX2NydGMgKm10a19jcnRjLA0KPiAgCQkJCSAg ICAgICBib29sIG5lZWRzX3ZibGFuaykNCj4gIHsNCj4gICNpZiBJU19SRUFDSEFCTEUoQ09ORklH X01US19DTURRKQ0KPiAtCXN0cnVjdCBjbWRxX3BrdCAqY21kcV9oYW5kbGUgPSAmbXRrX2NydGMt PmNtZHFfaGFuZGxlOw0KPiArCXN0cnVjdCBjbWRxX3BrdCAqY21kcV9oYW5kbGUgPSBtdGtfY3J0 Yy0+Y21kcV9oYW5kbGU7DQo+ICAjZW5kaWYNCj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAm bXRrX2NydGMtPmJhc2U7DQo+ICAJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdiA9IGNydGMt PmRldi0+ZGV2X3ByaXZhdGU7DQo+IEBAIC01ODQsMTQgKzU0MCwxNCBAQCBzdGF0aWMgdm9pZCBt dGtfZHJtX2NydGNfdXBkYXRlX2NvbmZpZyhzdHJ1Y3QNCj4gbXRrX2RybV9jcnRjICptdGtfY3J0 YywNCj4gIAkJbXRrX211dGV4X3JlbGVhc2UobXRrX2NydGMtPm11dGV4KTsNCj4gIAl9DQo+ICAj aWYgSVNfUkVBQ0hBQkxFKENPTkZJR19NVEtfQ01EUSkNCj4gLQlpZiAobXRrX2NydGMtPmNtZHFf Y2xpZW50LmNoYW4pIHsNCj4gLQkJbWJveF9mbHVzaChtdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2hh biwgMjAwMCk7DQo+ICsJaWYgKG10a19jcnRjLT5jbWRxX2NsaWVudCkgew0KPiArCQltYm94X2Zs dXNoKG10a19jcnRjLT5jbWRxX2NsaWVudC0+Y2hhbiwgMjAwMCk7DQo+ICAJCWNtZHFfaGFuZGxl LT5jbWRfYnVmX3NpemUgPSAwOw0KPiAgCQljbWRxX3BrdF9jbGVhcl9ldmVudChjbWRxX2hhbmRs ZSwgbXRrX2NydGMtDQo+ID5jbWRxX2V2ZW50KTsNCj4gIAkJY21kcV9wa3Rfd2ZlKGNtZHFfaGFu ZGxlLCBtdGtfY3J0Yy0+Y21kcV9ldmVudCwgZmFsc2UpOw0KPiAgCQltdGtfY3J0Y19kZHBfY29u ZmlnKGNydGMsIGNtZHFfaGFuZGxlKTsNCj4gIAkJY21kcV9wa3RfZmluYWxpemUoY21kcV9oYW5k bGUpOw0KPiAtCQlkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShtdGtfY3J0Yy0+Y21kcV9jbGll bnQuY2hhbi0NCj4gPm1ib3gtPmRldiwNCj4gKwkJZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2Uo bXRrX2NydGMtPmNtZHFfY2xpZW50LT5jaGFuLQ0KPiA+bWJveC0+ZGV2LA0KPiAgCQkJCQkgICBj bWRxX2hhbmRsZS0+cGFfYmFzZSwNCj4gIAkJCQkJICAgY21kcV9oYW5kbGUtPmNtZF9idWZfc2l6 ZSwNCj4gIAkJCQkJICAgRE1BX1RPX0RFVklDRSk7DQo+IEBAIC02MDQsOCArNTYwLDggQEAgc3Rh dGljIHZvaWQgbXRrX2RybV9jcnRjX3VwZGF0ZV9jb25maWcoc3RydWN0DQo+IG10a19kcm1fY3J0 YyAqbXRrX2NydGMsDQo+ICAJCSAqLw0KPiAgCQltdGtfY3J0Yy0+Y21kcV92YmxhbmtfY250ID0g MzsNCj4gIA0KPiAtCQltYm94X3NlbmRfbWVzc2FnZShtdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2hh biwNCj4gY21kcV9oYW5kbGUpOw0KPiAtCQltYm94X2NsaWVudF90eGRvbmUobXRrX2NydGMtPmNt ZHFfY2xpZW50LmNoYW4sIDApOw0KPiArCQltYm94X3NlbmRfbWVzc2FnZShtdGtfY3J0Yy0+Y21k cV9jbGllbnQtPmNoYW4sDQo+IGNtZHFfaGFuZGxlKTsNCj4gKwkJbWJveF9jbGllbnRfdHhkb25l KG10a19jcnRjLT5jbWRxX2NsaWVudC0+Y2hhbiwgMCk7DQo+ICAJfQ0KPiAgI2VuZGlmDQo+ICAJ bXRrX2NydGMtPmNvbmZpZ191cGRhdGluZyA9IGZhbHNlOw0KPiBAQCAtNjE5LDcgKzU3NSw3IEBA IHN0YXRpYyB2b2lkIG10a19jcnRjX2RkcF9pcnEodm9pZCAqZGF0YSkNCj4gIAlzdHJ1Y3QgbXRr X2RybV9wcml2YXRlICpwcml2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsNCj4gIA0KPiAgI2lm IElTX1JFQUNIQUJMRShDT05GSUdfTVRLX0NNRFEpDQo+IC0JaWYgKCFwcml2LT5kYXRhLT5zaGFk b3dfcmVnaXN0ZXIgJiYgIW10a19jcnRjLQ0KPiA+Y21kcV9jbGllbnQuY2hhbikNCj4gKwlpZiAo IXByaXYtPmRhdGEtPnNoYWRvd19yZWdpc3RlciAmJiAhbXRrX2NydGMtPmNtZHFfY2xpZW50KQ0K PiAgCQltdGtfY3J0Y19kZHBfY29uZmlnKGNydGMsIE5VTEwpOw0KPiAgCWVsc2UgaWYgKG10a19j cnRjLT5jbWRxX3ZibGFua19jbnQgPiAwICYmIC0tbXRrX2NydGMtDQo+ID5jbWRxX3ZibGFua19j bnQgPT0gMCkNCj4gIAkJRFJNX0VSUk9SKCJtdGtfY3J0YyAlZCBDTURRIGV4ZWN1dGUgY29tbWFu ZA0KPiB0aW1lb3V0IVxuIiwNCj4gQEAgLTcyMiw3ICs2NzgsNyBAQCBzdGF0aWMgdm9pZCBtdGtf ZHJtX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0DQo+IGRybV9jcnRjICpjcnRjLA0KPiAgCW10 a19kcm1fY3J0Y191cGRhdGVfY29uZmlnKG10a19jcnRjLCBmYWxzZSk7DQo+ICAjaWYgSVNfUkVB Q0hBQkxFKENPTkZJR19NVEtfQ01EUSkNCj4gIAkvKiBXYWl0IGZvciBwbGFuZXMgdG8gYmUgZGlz YWJsZWQgYnkgY21kcSAqLw0KPiAtCWlmIChtdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2hhbikNCj4g KwlpZiAobXRrX2NydGMtPmNtZHFfY2xpZW50KQ0KPiAgCQl3YWl0X2V2ZW50X3RpbWVvdXQobXRr X2NydGMtPmNiX2Jsb2NraW5nX3F1ZXVlLA0KPiAgCQkJCSAgIG10a19jcnRjLT5jbWRxX3ZibGFu a19jbnQgPT0gMCwNCj4gIAkJCQkgICBtc2Vjc190b19qaWZmaWVzKDUwMCkpOw0KPiBAQCAtMTAw MiwxOSArOTU4LDIwIEBAIGludCBtdGtfZHJtX2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl DQo+ICpkcm1fZGV2LA0KPiAgDQo+ICAjaWYgSVNfUkVBQ0hBQkxFKENPTkZJR19NVEtfQ01EUSkN Cj4gIAlpID0gcHJpdi0+bWJveF9pbmRleCsrOw0KPiAtCW10a19jcnRjLT5jbWRxX2NsaWVudC5j bGllbnQuZGV2ID0gbXRrX2NydGMtPm1tc3lzX2RldjsNCj4gLQltdGtfY3J0Yy0+Y21kcV9jbGll bnQuY2xpZW50LnR4X2Jsb2NrID0gZmFsc2U7DQo+IC0JbXRrX2NydGMtPmNtZHFfY2xpZW50LmNs aWVudC5rbm93c190eGRvbmUgPSB0cnVlOw0KPiAtCW10a19jcnRjLT5jbWRxX2NsaWVudC5jbGll bnQucnhfY2FsbGJhY2sgPSBkZHBfY21kcV9jYjsNCj4gLQltdGtfY3J0Yy0+Y21kcV9jbGllbnQu Y2hhbiA9DQo+IC0JCQltYm94X3JlcXVlc3RfY2hhbm5lbCgmbXRrX2NydGMtDQo+ID5jbWRxX2Ns aWVudC5jbGllbnQsIGkpOw0KPiAtCWlmIChJU19FUlIobXRrX2NydGMtPmNtZHFfY2xpZW50LmNo YW4pKSB7DQo+IC0JCWRldl9kYmcoZGV2LCAibXRrX2NydGMgJWQgZmFpbGVkIHRvIGNyZWF0ZSBt YWlsYm94DQo+IGNsaWVudCwgd3JpdGluZyByZWdpc3RlciBieSBDUFUgbm93XG4iLA0KPiAtCQkJ ZHJtX2NydGNfaW5kZXgoJm10a19jcnRjLT5iYXNlKSk7DQo+IC0JCW10a19jcnRjLT5jbWRxX2Ns aWVudC5jaGFuID0gTlVMTDsNCj4gKw0KPiArCW10a19jcnRjLT5jbWRxX2NsaWVudCA9IGNtZHFf bWJveF9jcmVhdGUobXRrX2NydGMtPm1tc3lzX2RldiwNCj4gaSk7DQo+ICsJaWYgKElTX0VSUiht dGtfY3J0Yy0+Y21kcV9jbGllbnQpKSB7DQo+ICsJCXJldCA9IFBUUl9FUlIobXRrX2NydGMtPmNt ZHFfY2xpZW50KTsNCj4gKwkJZGV2X2RiZyhkZXYsICJGYWlsZWQgdG8gY3JlYXRlIENNRFEgY2xp ZW50OiAlZFxuIiwNCj4gcmV0KTsNCj4gKwkJbXRrX2NydGMtPmNtZHFfY2xpZW50ID0gTlVMTDsN Cj4gKwkJcmV0dXJuIDA7DQo+ICAJfQ0KPiAgDQo+IC0JaWYgKG10a19jcnRjLT5jbWRxX2NsaWVu dC5jaGFuKSB7DQo+ICsJLyogU2V0dXAgdGhlIENNRFEgaGFuZGxlciBjYWxsYmFjayAqLw0KPiAr CW10a19jcnRjLT5jbWRxX2NsaWVudC0+cHJpdiA9IG10a19jcnRjOw0KPiArCW10a19jcnRjLT5j bWRxX2NsaWVudC0+Y2xpZW50LnJ4X2NhbGxiYWNrID0gZGRwX2NtZHFfY2I7DQo+ICsNCj4gKwlp ZiAobXRrX2NydGMtPmNtZHFfY2xpZW50KSB7DQo+ICAJCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRf dTMyX2luZGV4KHByaXYtPm11dGV4X25vZGUsDQo+ICAJCQkJCQkgIm1lZGlhdGVrLGdjZS1ldmVu dHMiLA0KPiAgCQkJCQkJIGksDQo+IEBAIC0xMDIyLDE3ICs5NzksMTUgQEAgaW50IG10a19kcm1f Y3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UNCj4gKmRybV9kZXYsDQo+ICAJCWlmIChyZXQp IHsNCj4gIAkJCWRldl9kYmcoZGV2LCAibXRrX2NydGMgJWQgZmFpbGVkIHRvIGdldA0KPiBtZWRp YXRlayxnY2UtZXZlbnRzIHByb3BlcnR5XG4iLA0KPiAgCQkJCWRybV9jcnRjX2luZGV4KCZtdGtf Y3J0Yy0+YmFzZSkpOw0KPiAtCQkJbWJveF9mcmVlX2NoYW5uZWwobXRrX2NydGMtPmNtZHFfY2xp ZW50LmNoYW4pOw0KPiAtCQkJbXRrX2NydGMtPmNtZHFfY2xpZW50LmNoYW4gPSBOVUxMOw0KPiAr CQkJY21kcV9tYm94X2Rlc3Ryb3kobXRrX2NydGMtPmNtZHFfY2xpZW50KTsNCj4gKwkJCW10a19j cnRjLT5jbWRxX2NsaWVudCA9IE5VTEw7DQo+ICAJCX0gZWxzZSB7DQo+IC0JCQlyZXQgPSBtdGtf ZHJtX2NtZHFfcGt0X2NyZWF0ZSgmbXRrX2NydGMtDQo+ID5jbWRxX2NsaWVudCwNCj4gLQkJCQkJ CSAgICAgICZtdGtfY3J0Yy0NCj4gPmNtZHFfaGFuZGxlLA0KPiAtCQkJCQkJICAgICAgUEFHRV9T SVpFKTsNCj4gKwkJCW10a19jcnRjLT5jbWRxX2hhbmRsZSA9DQo+IGNtZHFfcGt0X2NyZWF0ZSht dGtfY3J0Yy0+Y21kcV9jbGllbnQsIFBBR0VfU0laRSk7DQo+ICAJCQlpZiAocmV0KSB7DQo+ICAJ CQkJZGV2X2RiZyhkZXYsICJtdGtfY3J0YyAlZCBmYWlsZWQgdG8NCj4gY3JlYXRlIGNtZHEgcGFj a2V0XG4iLA0KPiAgCQkJCQlkcm1fY3J0Y19pbmRleCgmbXRrX2NydGMtDQo+ID5iYXNlKSk7DQo+ IC0JCQkJbWJveF9mcmVlX2NoYW5uZWwobXRrX2NydGMtDQo+ID5jbWRxX2NsaWVudC5jaGFuKTsN Cj4gLQkJCQltdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2hhbiA9IE5VTEw7DQo+ICsJCQkJY21kcV9t Ym94X2Rlc3Ryb3kobXRrX2NydGMtDQo+ID5jbWRxX2NsaWVudCk7DQo+ICsJCQkJbXRrX2NydGMt PmNtZHFfY2xpZW50ID0gTlVMTDsNCj4gIAkJCX0NCj4gIAkJfQ0KPiAgDQo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oDQo+IGIvaW5jbHVkZS9saW51 eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEuaA0KPiBpbmRleCA2NDk5NTVkMmNmNWMuLjJhMWRjOGIx MmRiMyAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEu aA0KPiArKysgYi9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oDQo+IEBAIC0y NSw2ICsyNSw3IEBAIHN0cnVjdCBjbWRxX2NsaWVudF9yZWcgew0KPiAgc3RydWN0IGNtZHFfY2xp ZW50IHsNCj4gIAlzdHJ1Y3QgbWJveF9jbGllbnQgY2xpZW50Ow0KPiAgCXN0cnVjdCBtYm94X2No YW4gKmNoYW47DQo+ICsJdm9pZCAqcHJpdjsNCj4gIH07DQo+ICANCj4gICNpZiBJU19FTkFCTEVE KENPTkZJR19NVEtfQ01EUSkNCj4gLS0gDQo+IDIuNDAuMQ0K --__=_Part_Boundary_002_133446439.743839338--