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 035A9ECAAD3 for ; Sun, 4 Sep 2022 12:08:00 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1423810E044; Sun, 4 Sep 2022 12:07:59 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 044E810E044; Sun, 4 Sep 2022 12:07:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662293273; x=1693829273; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=M5hZu0bBVs7/mdrqTWA1I4LIZxc4L9qoRYieJDq6o3U=; b=Pf5dp6+29TqghH64KKb42VCSMQ3T+NosbaD8vJsoJ+xfrqw2sK0wLvoC yW1aO8qBpLf8U9wvg//dUEEua9QVGLqQkUe2PRwjb4RE02VogVlGFfjj1 2Z6L57djtWpjfG9Gw3ert25pyy3NoDcFcukv3xJ5jIHibWH8fDpeiZo8H uOwow6NT8bgkpXL9PV4+697T0tmHppJY8+4QSc5OVk4ydfGQPjGh+oofq AHl5IXv6//nMtLyWmPqb8cZa0GQRKOUH5g/I39vvsGXNANxeYGxxGVgAv W440seUVww8isQfa4zLXHbmjnDRVHCWq/6oFZ64DtnHZQU3h0rujKYOm4 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10459"; a="322400322" X-IronPort-AV: E=Sophos;i="5.93,289,1654585200"; d="scan'208";a="322400322" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2022 05:07:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,289,1654585200"; d="scan'208";a="613503513" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP; 04 Sep 2022 05:07:51 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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; Sun, 4 Sep 2022 05:07:51 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sun, 4 Sep 2022 05:07:50 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Sun, 4 Sep 2022 05:07:50 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.102) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Sun, 4 Sep 2022 05:07:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YdDwxyUAKGdvr6IBuhO/Ns6J1+8CeXInVr/IzgsdOwKERLWGvTbG1mQTBkDtuUK2d9u0omG3TE4BaSIqWW0Pkke4iTQ/xqPhp6KOqXrN2Rt5UKIHTjfZbVxKvyvNGE4bjfDO5X2ce9njkP0kVwzID6uSk+lXChM1dPJgNwE0f/gcPRQf8m52kT4xwsQOpnGgFddljVqtI3S8VVVkeKFxTNYuTgtsupgEhV/5ECYMXdOhlqiIDl7NQinAAEETiQJAnE26K5ZV47Wv2LYQmLly82JhbYytIQoet+uAVBWP2KmlymtrIzzrYtK/aJtN4umMv4Rw0kSiQGH5nf3fjxMKog== 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=M5hZu0bBVs7/mdrqTWA1I4LIZxc4L9qoRYieJDq6o3U=; b=UZBBLnocqhRuoC6LxhpWmmtjapgMpkDpr4wCTdn59vRsrcYetKGILTyZYV4hTepFvC2K/EkcJZFD8lvwOe0iP3QTub4AAI7AEdR4Wg3yRL85xuwncdk/df9qKnCVcWsiHDkCAwB2GzpGUI/DPaGQRbxTNw6pRPv/S3oDtbHo6AUkBSr1C1hUy5eCaiJ/Zn4+Fayx+uRwbYIm5EjvJu1E3McmE0Ktvg8Etacy5fLG0/JzEb1ziL1lOwTIqGOG2QOIcz4q7yOyaUNiq2c+IDFZ9U6s0dxyglHfx/59TEuI1D5ggbZ2g44FmJgiyO7ikwFTkYNmWG2Y96arlDPnUPeT3w== 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 CO1PR11MB4962.namprd11.prod.outlook.com (2603:10b6:303:99::23) by BL0PR11MB2914.namprd11.prod.outlook.com (2603:10b6:208:77::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10; Sun, 4 Sep 2022 12:07:46 +0000 Received: from CO1PR11MB4962.namprd11.prod.outlook.com ([fe80::cc64:11a0:a0c1:93af]) by CO1PR11MB4962.namprd11.prod.outlook.com ([fe80::cc64:11a0:a0c1:93af%9]) with mapi id 15.20.5588.018; Sun, 4 Sep 2022 12:07:46 +0000 From: "Govindapillai, Vinod" To: "Lisovskiy, Stanislav" , "intel-gfx@lists.freedesktop.org" Thread-Topic: [PATCH 4/4] drm/i915: Add DSC support to MST path Thread-Index: AQHYvesxxd3qXBelMkqFCVb9maQUb63PMgcA Date: Sun, 4 Sep 2022 12:07:46 +0000 Message-ID: <40bcee2a263b30d7b9b2585d40aeb19ebdacc741.camel@intel.com> References: <20220901101143.32316-1-stanislav.lisovskiy@intel.com> <20220901101143.32316-5-stanislav.lisovskiy@intel.com> In-Reply-To: <20220901101143.32316-5-stanislav.lisovskiy@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.1-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8aceb747-ed0c-489f-b842-08da8e6e1417 x-ms-traffictypediagnostic: BL0PR11MB2914:EE_ 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: B8MZyfVpn+OuSy8daxeDJIxNDsNgRN120QNscSx0pQMg30T7j/H367I1f3hpHYp106jrSDXbwr224S9iwkC3WtLJ7JskEM9QjvfWfHIeD3fd1kYsdtoZspaQN8cfK1Cfvrb4nilrmrwyI+fYHD8gku0bCkbvdd1CZZRwo6VU1FZ47QGLm8nlk/gNcSObSTphnK0xpAyFsatS3gaLxhfy+O9FRauO7iH7mhNmwdd8kFZODzElI94NXyWThLtWAPco2BBq2iFRRZR5W5qIl1NXbNX4KZXIyG49n1XjQJaN3+s2sFb819XNZSQ2kdb9DiACeIndI2/ts6fM+dgZ1Z5d4vdYaJuf6HFAurMdP5DIJ6UlwLnO4vu73JpOiD3rDqzcWmZkUnKWSc3TuCP6SG25gWec7yBVQk5blAGD+oJg+cJEGAl3SUOkYbWKxl3NrZ1qt07e/CoP7pDJQuj50ViDELHgTCr7HVeducam7ncxgWHfAzYOsM37OvwLEQZlGznJumBtkG1CJKPT3a1icYhY9v8jvJ8gjpVtMVlCUP1U0UN/tBcjkR4MLPopSg56sg3Nio6R4ka3ERzssSrgYMGB0K8EIFOv9BMuUceyfEW24RHygzfssfPyRvERDtgp8eesyLOpVDZhQylECAuKPbJ0crQN8KVEDsElrgjrBTLXdut1NSqi33rQY9yKJ19rOpV8dC9Kqq0qxB+WmPapfgKvND7BvwyJzxBMbdaBbf9yqOsQJVTbwiBKs06Hqp7YyCLeoL1GSget/h3h4MawiYLCqQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR11MB4962.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(346002)(39860400002)(376002)(396003)(366004)(136003)(6486002)(450100002)(4326008)(8676002)(82960400001)(122000001)(66556008)(66476007)(66446008)(64756008)(66946007)(76116006)(38100700002)(2616005)(186003)(91956017)(8936002)(38070700005)(478600001)(83380400001)(36756003)(5660300002)(30864003)(41300700001)(107886003)(71200400001)(26005)(86362001)(6506007)(66574015)(54906003)(110136005)(2906002)(316002)(6512007)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WWxXN3VBakV1MW41ZEg5MFQ4QnVOaE9LLzI4U0dEbmVkNXNsZGpnWDVxblFF?= =?utf-8?B?czJrKzg0V3lIaDVFczZVY25NT3QxTnNzUlNqTVNNVmU4OUZpMHAyekR6WVRu?= =?utf-8?B?eVdFQU5uT3V2a2ZuTDlZNmF6UG1xc0Zvb1EvM0M4cWx6TUlzMHN2NWlJM0ht?= =?utf-8?B?YUd1aDRPZisydk56a1A3aW5GL3RUcmdzcmI5OXRubjdZZ0JvV3FGQTRZT082?= =?utf-8?B?Y2ZHVytLeXEvY0RZZmhFWldseEd0N2xNdEYwa0svdnRqcUpHeU1jQWl0bHdu?= =?utf-8?B?TWZ5cGc0cDhqdUJGcmZHOWNnWkJLS3FieEN1czVaSUErRW1WQmFZOGdSY3ZO?= =?utf-8?B?Zm9DcVFrKys0V0NsbEMvZkVnV0IwN3o1Zk5jTitWWXhMRkZFM29QaTF1clNQ?= =?utf-8?B?WUh2Yi82dFJVdEU1UFc3S2M4OUZUak5RY1RSWnhkM0Nycmx3Z3hIcUNSZzdU?= =?utf-8?B?b3BPcnBydGxoTHUxd1kvYVFuSmp0QVhaVkZRRmwzZ0ovc1FLLzJObHVpc0N5?= =?utf-8?B?NVVUVHMrMDV6WlZOZm0raDBhSVdaU3paaDRCTkNTZCtad0FCV2FESzVVZlNL?= =?utf-8?B?SWhhTmxDTzAzK0R5cjIrMFpuTUl3TUhNalB0emFEWXN3MzIvWWRKczRXeFVj?= =?utf-8?B?WDluR0U1LzRGejZibW96S043SFVITTFQcnZ1NnA3dG1IQnREMG1MUTcwQmZ4?= =?utf-8?B?MEtpY2JmRTFobUxrY0JnQU9wWW5YUmhnUktuRmUxa1kwKzM1eVBPd0dUS1g2?= =?utf-8?B?QWZlV3dNMWd6Qjg5emhxOGx0cDE3b2cvazJmWGZMK0NnS1FmQW9MMzVGYmVi?= =?utf-8?B?eU82R3Q0MXhlaHpNT1gwQ1pMeG9KSkFiTEY2OGFSeFdLdEQyTGlxcEE2QzZ1?= =?utf-8?B?VDdBUzd3RzExRUFIejZWT3I1U3Nsc2xtUXBYNzI0RjN6Q2lIeXV4K1pJR3VS?= =?utf-8?B?MU4wdWxBRXdkUGJzWjdmbU0ra1JzenN6OUFnKzd0SG45Mm9NOU9tV00zMlp4?= =?utf-8?B?TTNNUVlUOHlLTXlBcnVQS0lKSStydnNGSmYrU1Vwc1FpajN2VzRqSE9iOFMz?= =?utf-8?B?Rm9pVUdha2VSWnhzU01yeDc4S2pkY2RKaWhTWWVpYTUvMlF5aXRjN0JyYkZO?= =?utf-8?B?ZjdkRmE5N1lnSWxaV0w0TUdWM1UyN0ZGQkU4dTQvTlhsYmQ0cFplRTVRWXNl?= =?utf-8?B?UE5ORk4zMFlNZzZTZE1wSXlNcjhaTUFCL003ZWFxSGYyVXN5MTUwWG91S29i?= =?utf-8?B?bkk1akR6QkRhRlZsbTJ6UkNFZnNqeUh0RFVrT0JmbzNScndIS01kY3k2MUI3?= =?utf-8?B?QlZDSEF2ZituZFNnOWdTVGdVQS9XZzkzTUZEY05hYjVIaGI2eENVWU52djQw?= =?utf-8?B?MkhYMFpsSGV6ekgvaEtTZEg5V0E0b0Q4Zm03cFpoSlNMbm9wWnhUaTVPV0h2?= =?utf-8?B?SE5nQnF6NGJSeGREaWNYZU9Bdy94SXhLUXpacVZjSHZlZlRadGd2cFROSTVD?= =?utf-8?B?emtLN3FSVkJLR05UZ21jUVI4MFl0eG5mb0hWSUs0d05YOGFoMlJNTUtheGVN?= =?utf-8?B?cTE2M1Z6Y2hkWEswZlBkOFg5SFVwM0dJSHdlRjBHVW43c1dvMC9PZ2R3TktM?= =?utf-8?B?RWhWRm90OFRuR0NXRVZxUWRTRkpoT2hMSFhabHNOL3BGWlNUSGRxZ1N0bnBu?= =?utf-8?B?MXNLbTdFZWpBOXVRbkRQU3luUHJsUWVDZEFzTkhLS3dObEs5VnRQTFVWK3I1?= =?utf-8?B?NmlqdGlaa2Z0WFJkVitlYjVoMXQvdWNOZi9QTjRoNCtLQS9CbC93b3h5eWlC?= =?utf-8?B?UzFsaVdHcUNySHZwa010Y2o3c0RZUDNRNmk5V0xZeG9mNDVSS25wVXdrMXZI?= =?utf-8?B?eDJ2UFhOa04yV2FvSllyR0ZnSXp2UGR0YjRoMFZlcG8rMHNrQVQ0WjN2T2tv?= =?utf-8?B?UW8rUzdEWklVbkt2VmsrZWJQeW9Td0VvcmhKaGlwNVZsbFdrQ0JhRjFoazJ6?= =?utf-8?B?Zm5kQ3dqMVYwT3Y0TEp3NSs0a2NscXc0NC9WanVZNjdZTC94QjVLRmNSdnlx?= =?utf-8?B?NWFKOGk5cmFzSzk5SFhEcXhseHAwSXd1bFp6S2U1ditPMWZmS2p4aW42WGlD?= =?utf-8?B?cmZlUnIvYU9PcTZxcTJidXFkOEIvWWo5azkyQVg1aXZaaGgxdFdsT0lHYmwx?= =?utf-8?Q?E0qpc2ht8Ec+x1GhRMHTIj0=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4962.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8aceb747-ed0c-489f-b842-08da8e6e1417 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Sep 2022 12:07:46.0835 (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: WKTgkjLR9T68lS20Q8bVtHAFrbPninPoqOXAE88DagWgsLrkJL7JHhsUiSgoJccf4rndvZO9FvS3My+6KK2RaL3tqDsRPTx3zIeigrNOmHU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB2914 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [PATCH 4/4] drm/i915: Add DSC support to MST path X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Nikula, Jani" , "dri-devel@lists.freedesktop.org" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVGh1LCAyMDIyLTA5LTAxIGF0IDEzOjExICswMzAwLCBTdGFuaXNsYXYgTGlzb3Zza2l5IHdy b3RlOgo+IFdoZW5ldmVyIHdlIGFyZSBub3QgYWJsZSB0byBnZXQgZW5vdWdoIHRpbWVzbG90cwo+ IGZvciByZXF1aXJlZCBQQk4sIGxldCdzIHRyeSB0byBhbGxvY2F0ZSB0aG9zZQo+IHVzaW5nIERT QywganVzdCBzYW1lIHdheSBhcyB3ZSBkbyBmb3IgU1NULgo+IAo+IHYyOiBSZW1vdmVkIGludGVs X2RwX21zdF9kc2NfY29tcHV0ZV9jb25maWcgYW5kIHJlZmFjdG9yZWQKPiDCoMKgwqAgaW50ZWxf ZHBfZHNjX2NvbXB1dGVfY29uZmlnIHRvIHN1cHBvcnQgdGltZXNsb3RzIGFzIGEKPiDCoMKgwqAg cGFyYW1ldGVyKFZpbGxlIFN5cmrDpGzDpCkKPiAKPiB2MzogLSBSZWJhc2VkCj4gwqDCoMKgIC0g QWRkZWQgYSBkZWJ1ZyB0byBzZWUgdGhhdCB3ZSBhdCBsZWFzdCB0cnkgcmVzZXJ2aW5nCj4gwqDC oMKgwqDCoCBWQ1BJIHNsb3RzIHVzaW5nIERTQywgYmVjYXVzZSBjdXJyZW50bHkgaXRzIG5vdCB2 aXNpYmxlCj4gwqDCoMKgwqDCoCBmcm9tIHRoZSBsb2dzLCB0aHVzIG1ha2luZyBkZWJ1Z2dpbmcg bW9yZSB0cmlja3kuCj4gwqDCoMKgIC0gTW92ZWQgdGltZXNsb3RzIHRvIG51bWVyYXRvciwgd2hl cmUgaXQgc2hvdWxkIGJlLgo+IAo+IHY0OiAtIENhbGwgZHJtX2RwX21zdF9hdG9taWNfY2hlY2sg YWxyZWFkeSBkdXJpbmcgbGluawo+IMKgwqDCoMKgwqAgY29uZmlnIGNvbXB1dGF0aW9uLCBiZWNh dXNlIHdlIG5lZWQgdG8ga25vdyBhbHJlYWR5Cj4gwqDCoMKgwqDCoCBieSB0aGlzIG1vbWVudCBp ZiB1bmNvbXByZXNzZWQgYW1vdW50IG9mIFZDUEkgc2xvdHMKPiDCoMKgwqDCoMKgIG5lZWRlZCBj YW4gZml0LCBvdGhlcndpc2Ugd2UgbmVlZCB0byB1c2UgRFNDLgo+IMKgwqDCoMKgwqAgKHRoYW5r cyB0byBWaW5vZCBHb3ZpbmRhcGlsbGFpIGZvciBwb2ludGluZyB0aGlzIG91dCkKPiAKPiB2NTog LSBQdXQgcGlwZV9jb25maWctPmJpZ2pvaW5lcl9waXBlcyBiYWNrIHRvIG9yaWdpbmFsCj4gwqDC oMKgwqDCoCBjb25kaXRpb24gaW4gaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnCj4gwqDCoMKg wqDCoCAoZG9uJ3QgcmVtZW1iZXIgd2hlbiBJIGxvc3QgaXQpCj4gCj4gU2lnbmVkLW9mZi1ieTog U3RhbmlzbGF2IExpc292c2tpeSA8c3RhbmlzbGF2Lmxpc292c2tpeUBpbnRlbC5jb20+Cj4gLS0t Cj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmPCoMKgwqDCoCB8wqAg NzMgKysrKystLS0tLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAu aMKgwqDCoMKgIHzCoCAxNyArKysKPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZHBfbXN0LmMgfCAxMzYgKysrKysrKysrKysrKysrKysrKysKPiDCoDMgZmlsZXMgY2hhbmdl ZCwgMTg0IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiBpbmRleCBkNGUwMzc0NTBhYzUuLmExNTVjMzlmZjI4 NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiBAQCAtMTE2 LDcgKzExNiw2IEBAIGJvb2wgaW50ZWxfZHBfaXNfZWRwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyB2b2lkIGludGVsX2RwX3Vuc2V0X2VkaWQoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCk7Cj4gLXN0YXRpYyBpbnQgaW50ZWxfZHBfZHNjX2NvbXB1dGVf YnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHU4IGRzY19tYXhfYnBjKTsKPiDCoAo+IMKg LyogSXMgbGluayByYXRlIFVIQlIgYW5kIHRodXMgMTI4Yi8xMzJiPyAqLwo+IMKgYm9vbCBpbnRl bF9kcF9pc191aGJyKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ IEBAIC02ODcsMTEgKzY4NiwxMiBAQCBzbWFsbF9qb2luZXJfcmFtX3NpemVfYml0cyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHJldHVybiA2MTQ0ICogODsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgdTE2IGludGVsX2RwX2RzY19n ZXRfb3V0cHV0X2JwcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdTMyIGxpbmtfY2xvY2ssIHUzMiBsYW5lX2NvdW50LAo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB1MzIgbW9kZV9jbG9jaywgdTMyIG1vZGVfaGRpc3BsYXksCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGJvb2wgYmlnam9pbmVyLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1MzIgcGlwZV9icHApCj4g K3UxNiBpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgdTMyIGxpbmtfY2xvY2ssIHUzMiBsYW5lX2NvdW50LAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHUz MiBtb2RlX2Nsb2NrLCB1MzIgbW9kZV9oZGlzcGxheSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBib29sIGJpZ2pvaW5lciwK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB1MzIgcGlwZV9icHAsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTMyIHRpbWVzbG90cykKPiDCoHsKPiDCoMKg wqDCoMKgwqDCoMKgdTMyIGJpdHNfcGVyX3BpeGVsLCBtYXhfYnBwX3NtYWxsX2pvaW5lcl9yYW07 Cj4gwqDCoMKgwqDCoMKgwqDCoGludCBpOwo+IEBAIC03MDIsOCArNzAyLDkgQEAgc3RhdGljIHUx NiBpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCj4gwqDCoMKgwqDCoMKgwqDCoCAqIGZvciBTU1QgLT4gVGltZVNsb3RzUGVyTVRQIGlzIDEs Cj4gwqDCoMKgwqDCoMKgwqDCoCAqIGZvciBNU1QgLT4gVGltZVNsb3RzUGVyTVRQIGhhcyB0byBi ZSBjYWxjdWxhdGVkCj4gwqDCoMKgwqDCoMKgwqDCoCAqLwo+IC3CoMKgwqDCoMKgwqDCoGJpdHNf cGVyX3BpeGVsID0gKGxpbmtfY2xvY2sgKiBsYW5lX2NvdW50ICogOCkgLwo+ICvCoMKgwqDCoMKg wqDCoGJpdHNfcGVyX3BpeGVsID0gKGxpbmtfY2xvY2sgKiBsYW5lX2NvdW50ICogOCkgKiB0aW1l c2xvdHMgLwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBpbnRlbF9kcF9tb2RlX3RvX2ZlY19jbG9jayhtb2RlX2Nsb2NrKTsKPiArwqDCoMKgwqDCoMKg wqBkcm1fZGJnX2ttcygmaTkxNS0+ZHJtLCAiTWF4IGxpbmsgYnBwOiAldVxuIiwgYml0c19wZXJf cGl4ZWwpOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoC8qIFNtYWxsIEpvaW5lciBDaGVjazogb3V0 cHV0IGJwcCA8PSBqb2luZXIgUkFNIChiaXRzKSAvIEhvcml6LiB3aWR0aCAqLwo+IMKgwqDCoMKg wqDCoMKgwqBtYXhfYnBwX3NtYWxsX2pvaW5lcl9yYW0gPSBzbWFsbF9qb2luZXJfcmFtX3NpemVf Yml0cyhpOTE1KSAvCj4gQEAgLTc1Miw5ICs3NTMsOSBAQCBzdGF0aWMgdTE2IGludGVsX2RwX2Rz Y19nZXRfb3V0cHV0X2JwcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuIGJpdHNfcGVyX3BpeGVsIDw8IDQ7Cj4gwqB9Cj4gwqAKPiAtc3RhdGlj IHU4IGludGVsX2RwX2RzY19nZXRfc2xpY2VfY291bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IG1vZGVfY2xvY2ssIGludCBtb2RlX2hkaXNwbGF5 LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib29sIGJpZ2pvaW5lcikKPiArdTggaW50ZWxfZHBfZHNj X2dldF9zbGljZV9jb3VudChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCBt b2RlX2Nsb2NrLCBpbnQgbW9kZV9oZGlzcGxheSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBib29sIGJpZ2pvaW5lcikKPiDC oHsKPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBkcF90 b19pOTE1KGludGVsX2RwKTsKPiDCoMKgwqDCoMKgwqDCoMKgdTggbWluX3NsaWNlX2NvdW50LCBp Owo+IEBAIC05NjEsOCArOTYyLDggQEAgaW50ZWxfZHBfbW9kZV92YWxpZF9kb3duc3RyZWFtKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu IE1PREVfT0s7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGJvb2wgaW50ZWxfZHBfbmVlZF9iaWdqb2lu ZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGhkaXNwbGF5 LCBpbnQgY2xvY2spCj4gK2Jvb2wgaW50ZWxfZHBfbmVlZF9iaWdqb2luZXIoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGludCBoZGlzcGxheSwgaW50IGNsb2NrKQo+IMKgewo+IMKgwqDCoMKg wqDCoMKgwqBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGRwX3RvX2k5MTUoaW50ZWxf ZHApOwo+IMKgCj4gQEAgLTEwNDksNyArMTA1MCw3IEBAIGludGVsX2RwX21vZGVfdmFsaWQoc3Ry dWN0IGRybV9jb25uZWN0b3IgKl9jb25uZWN0b3IsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0YXJnZXRfY2xvY2ssCj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBtb2RlLT5oZGlzcGxheSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJpZ2pvaW5lciwKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGlwZV9icHApID4+IDQ7 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHBpcGVfYnBwLCAxKSA+PiA0Owo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGRzY19zbGljZV9jb3VudCA9Cj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludGVsX2RwX2Rz Y19nZXRfc2xpY2VfY291bnQoaW50ZWxfZHAsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRhcmdldF9jbG9jaywKPiBAQCAt MTM1NCw3ICsxMzU1LDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRUlOVkFMOwo+ IMKgfQo+IMKgCj4gLXN0YXRpYyBpbnQgaW50ZWxfZHBfZHNjX2NvbXB1dGVfYnBwKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsIHU4IG1heF9yZXFfYnBjKQo+ICtpbnQgaW50ZWxfZHBfZHNjX2Nv bXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHU4IG1heF9yZXFfYnBjKQo+IMKg ewo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGRwX3Rv X2k5MTUoaW50ZWxfZHApOwo+IMKgwqDCoMKgwqDCoMKgwqBpbnQgaSwgbnVtX2JwYzsKPiBAQCAt MTQ1NCwxMCArMTQ1NSwxMSBAQCBzdGF0aWMgaW50IGludGVsX2RwX2RzY19jb21wdXRlX3BhcmFt cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu IGRybV9kc2NfY29tcHV0ZV9yY19wYXJhbWV0ZXJzKHZkc2NfY2ZnKTsKPiDCoH0KPiDCoAo+IC1z dGF0aWMgaW50IGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgbGlua19jb25maWdfbGlt aXRzICpsaW1pdHMpCj4gK2ludCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyAqbGltaXRzLAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCB0aW1l c2xvdHMpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IMKgwqDCoMKgwqDCoMKgwqBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNl LmJhc2UuZGV2KTsKPiBAQCAtMTUwOCw3ICsxNTEwLDggQEAgc3RhdGljIGludCBpbnRlbF9kcF9k c2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jaywKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWRq dXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcGlwZV9jb25maWctPmJpZ2pvaW5lcl9waXBlcywKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaXBlX2JwcCk7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGlwZV9icHAsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGltZXNsb3RzKTsKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRzY19kcF9zbGljZV9jb3VudCA9Cj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfZHBfZHNjX2dl dF9zbGljZV9jb3VudChpbnRlbF9kcCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+IEBAIC0xNTIwLDI3 ICsxNTIzLDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FSU5WQUw7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB9Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwaXBlX2NvbmZpZy0+ ZHNjLmNvbXByZXNzZWRfYnBwID0gbWluX3QodTE2LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkc2NfbWF4X291dHB1 dF9icHAgPj4gNCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkc2NfbWF4X291 dHB1dF9icHAgPj4gNCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcGlwZV9jb25maWctPmRzYy5zbGljZV9jb3VudCA9IGRzY19kcF9zbGlj ZV9jb3VudDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZHJtX2RiZ19rbXMoJmRl dl9wcml2LT5kcm0sICJEU0M6IGNvbXByZXNzZWQgYnBwICVkIHNsaWNlIGNvdW50ICVkXG4iLAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBp cGVfY29uZmlnLT5kc2MuY29tcHJlc3NlZF9icHAsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGlwZV9jb25maWctPmRzYy5zbGljZV9jb3Vu dCk7Cj4gwqDCoMKgwqDCoMKgwqDCoH0KPiAtCj4gLcKgwqDCoMKgwqDCoMKgLyogQXMgb2YgdG9k YXkgd2Ugc3VwcG9ydCBEU0MgZm9yIG9ubHkgUkdCICovCj4gLcKgwqDCoMKgwqDCoMKgaWYgKGlu dGVsX2RwLT5mb3JjZV9kc2NfYnBwKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlmIChpbnRlbF9kcC0+Zm9yY2VfZHNjX2JwcCA+PSA4ICYmCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlbF9kcC0+Zm9yY2VfZHNjX2JwcCA8IHBpcGVfYnBwKSB7 Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkcm1fZGJn X2ttcygmZGV2X3ByaXYtPmRybSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIkRTQyBCUFAgZm9yY2VkIHRvICVk IiwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaW50ZWxfZHAtPmZvcmNlX2RzY19icHApOwo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGlwZV9jb25maWctPmRzYy5jb21w cmVzc2VkX2JwcCA9Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnRl bF9kcC0+Zm9yY2VfZHNjX2JwcDsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSBl bHNlIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRy bV9kYmdfa21zKCZkZXZfcHJpdi0+ZHJtLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiSW52YWxpZCBEU0MgQlBQ ICVkIiwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZWxfZHAtPmZvcmNlX2RzY19icHApOwo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gLcKgwqDCoMKgwqDCoMKgfQo+IC0KPiDCoMKgwqDC oMKgwqDCoMKgLyoKPiDCoMKgwqDCoMKgwqDCoMKgICogVkRTQyBlbmdpbmUgb3BlcmF0ZXMgYXQg MSBQaXhlbCBwZXIgY2xvY2ssIHNvIGlmIHBlYWsgcGl4ZWwgcmF0ZQo+IMKgwqDCoMKgwqDCoMKg wqAgKiBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gQ2RjbG9jayBhbmQgaWYgc2xpY2UgY291 bnQgaXMgZXZlbgo+IEBAIC0xNTQ4LDEzICsxNTM3LDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBf ZHNjX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gwqDCoMKgwqDC oMKgwqDCoCAqLwo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j ayA+IGRldl9wcml2LT5kaXNwbGF5LmNkY2xrLm1heF9jZGNsa19mcmVxIHx8Cj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBwaXBlX2NvbmZpZy0+Ymlnam9pbmVyX3BpcGVzKSB7Cj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChwaXBlX2NvbmZpZy0+ZHNjLnNsaWNlX2NvdW50IDwg Mikgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocGlwZV9jb25maWctPmRz Yy5zbGljZV9jb3VudCA+IDEpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHBpcGVfY29uZmlnLT5kc2MuZHNjX3NwbGl0ID0gdHJ1ZTsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICJDYW5ub3Qgc3BsaXQgc3RyZWFtIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2Vz XG4iKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBy ZXR1cm4gLUVJTlZBTDsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiAtCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBpcGVfY29uZmlnLT5kc2MuZHNjX3NwbGl0 ID0gdHJ1ZTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoHJldCA9 IGludGVsX2RwX2RzY19jb21wdXRlX3BhcmFtcygmZGlnX3BvcnQtPmJhc2UsIHBpcGVfY29uZmln KTsKPiBAQCAtMTY0Myw3ICsxNjMyLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RyX3llc19ubyhyZXQpLCBzdHJfeWVzX25v KGpvaW5lcl9uZWVkc19kc2MpLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJfeWVzX25vKGludGVsX2RwLT5mb3JjZV9kc2NfZW4pKTsK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9IGludGVsX2RwX2RzY19jb21w dXRlX2NvbmZpZyhpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBjb25uX3N0YXRlLCAmbGltaXRzKTsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbm5fc3RhdGUsICZsaW1pdHMsIDEpOwo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCA8IDApCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiDCoMKgwqDC oMKgwqDCoMKgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmgKPiBpbmRl eCBhNTQ5MDJjNzEzYTMuLmM2NTM5YTY5MTVlOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwLmgKPiBAQCAtNTYsNiArNTYsMTEgQEAgdm9pZCBpbnRlbF9kcF9lbmNv ZGVyX2ZsdXNoX3dvcmsoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiDCoGludCBpbnRl bF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSk7Cj4gK2ludCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUs Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyAqbGltaXRzLAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCB0 aW1lc2xvdHMpOwo+IMKgYm9vbCBpbnRlbF9kcF9pc19lZHAoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCk7Cj4gwqBib29sIGludGVsX2RwX2lzX3VoYnIoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpOwo+IMKgYm9vbCBpbnRlbF9kcF9pc19wb3J0X2VkcChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKPiBAQCAtOTYsNiAr MTAxLDE4IEBAIHZvaWQgaW50ZWxfcmVhZF9kcF9zZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHR5cGUpOwo+IMKgYm9vbCBpbnRl bF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsK PiAraW50IGludGVsX2RwX2RzY19jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LCB1OCBkc2NfbWF4X2JwYyk7Cj4gK3UxNiBpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTMyIGxpbmtfY2xvY2ssIHUzMiBs YW5lX2NvdW50LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHUzMiBtb2RlX2Nsb2NrLCB1MzIgbW9kZV9oZGlzcGxheSwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBib29sIGJpZ2pvaW5lciwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1MzIgcGlwZV9icHAsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTMyIHRp bWVzbG90cyk7Cj4gK3U4IGludGVsX2RwX2RzY19nZXRfc2xpY2VfY291bnQoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQgbW9kZV9jbG9jaywgaW50IG1vZGVfaGRpc3BsYXks Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgYm9vbCBiaWdqb2luZXIpOwo+ICtib29sIGludGVsX2RwX25lZWRfYmlnam9pbmVy KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgaGRpc3BsYXksIGludCBjbG9jayk7Cj4g wqAKPiDCoHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGludGVsX2RwX3VudXNlZF9sYW5lX21h c2soaW50IGxhbmVfY291bnQpCj4gwqB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZHBfbXN0LmMKPiBpbmRleCA3MmQ2M2YyOTM5ODcuLmQ3M2JkNTI5Y2Q2ZCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+IEBAIC0x NDQsNiArMTQ0LDYzIEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfbGlua19jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gwqDCoMKgwqDCoMKgwqDCoHJldHVy biAwOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyBpbnQgaW50ZWxfZHBfZHNjX21zdF9jb21wdXRlX2xp bmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgKmxpbWl0cykKPiArewo+ICvCoMKg wqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3Rv X21zdChlbmNvZGVyKTsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gJmludGVsX21zdC0+cHJpbWFyeS0+ZHA7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yID0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg dG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Cj4gK8KgwqDCoMKgwqDC oMKgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFz ZS5kZXYpOwo+ICvCoMKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgJmNydGNfc3Rh dGUtPmh3LmFkanVzdGVkX21vZGU7Cj4gK8KgwqDCoMKgwqDCoMKgYm9vbCBjb25zdGFudF9uID0g ZHJtX2RwX2hhc19xdWlyaygmaW50ZWxfZHAtPmRlc2MsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgRFBfRFBDRF9RVUlSS19DT05TVEFOVF9OKTsKPiArwqDCoMKgwqDCoMKgwqBpbnQgc2xv dHMgPSAtRUlOVkFMOwo+ICvCoMKgwqDCoMKgwqDCoGludCBpLCBudW1fYnBjOwo+ICvCoMKgwqDC oMKgwqDCoHU4IGRzY19icGNbM10gPSB7MH07Cj4gK8KgwqDCoMKgwqDCoMKgaW50IG1pbl9icHAs IG1heF9icHA7Cj4gK8KgwqDCoMKgwqDCoMKgdTggZHNjX21heF9icGM7Cj4gKwo+ICvCoMKgwqDC oMKgwqDCoC8qIE1heCBEU0MgSW5wdXQgQlBDIGZvciBJQ0wgaXMgMTAgYW5kIGZvciBUR0wrIGlz IDEyICovCj4gK8KgwqDCoMKgwqDCoMKgaWYgKERJU1BMQVlfVkVSKGk5MTUpID49IDEyKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkc2NfbWF4X2JwYyA9IG1pbl90KHU4LCAxMiwg Y29ubl9zdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGMpOwo+ICvCoMKgwqDCoMKgwqDCoGVsc2UKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZHNjX21heF9icGMgPSBtaW5fdCh1OCwgMTAs IGNvbm5fc3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgbWF4 X2JwcCA9IG1pbl90KHU4LCBkc2NfbWF4X2JwYyAqIDMsIGxpbWl0cy0+bWF4X2JwcCk7Cj4gK8Kg wqDCoMKgwqDCoMKgbWluX2JwcCA9IGxpbWl0cy0+bWluX2JwcDsKPiArCj4gK8KgwqDCoMKgwqDC oMKgbnVtX2JwYyA9IGRybV9kcF9kc2Nfc2lua19zdXBwb3J0ZWRfaW5wdXRfYnBjcyhpbnRlbF9k cC0+ZHNjX2RwY2QsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZHNjX2JwYyk7Cj4gK8KgwqDCoMKgwqDCoMKgZm9yIChpID0gMDsgaSA8IG51bV9i cGM7IGkrKykgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAobWF4X2JwcCA+ PSBkc2NfYnBjW2ldICogMykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlmIChtaW5fYnBwID4gZHNjX2JwY1tpXSAqIDMpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWluX2JwcCA9 IGRzY19icGNbaV0gKiAzOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKg ZHJtX2RiZ19rbXMoJmk5MTUtPmRybSwgIkRTQyBTaW5rIHN1cHBvcnRlZCBtaW4gYnBwICVkIG1h eCBicHAgJWRcbiIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtaW5f YnBwLCBtYXhfYnBwKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgc2xvdHMgPSBpbnRlbF9kcF9tc3Rf ZmluZF92Y3BpX3Nsb3RzX2Zvcl9icHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwgbWF4X2JwcCwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1pbl9icHAsIGxp bWl0cywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNv bm5fc3RhdGUsIDIgKiAzLCB0cnVlKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaWYgKHNsb3RzIDwg MCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHNsb3RzOwo+ICsKPiAr wqDCoMKgwqDCoMKgwqBpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGNydGNfc3RhdGUtPnBpcGVfYnBw LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGNydGNfc3RhdGUtPmxhbmVfY291bnQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jaywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZjcnRjX3N0YXRlLT5kcF9t X24sCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgY29uc3RhbnRfbiwgY3J0Y19zdGF0ZS0+ZmVjX2VuYWJsZSk7Cj4gK8KgwqDCoMKg wqDCoMKgY3J0Y19zdGF0ZS0+ZHBfbV9uLnR1ID0gc2xvdHM7Cj4gKwo+ICvCoMKgwqDCoMKgwqDC oHJldHVybiAwOwo+ICt9Cj4gwqBzdGF0aWMgaW50IGludGVsX2RwX21zdF91cGRhdGVfc2xvdHMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiBAQCAtMTcyLDYgKzIyOSw3IEBAIHN0YXRp YyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICvCoMKgwqDCoMKg wqDCoHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT51YXBpLnN0 YXRlOwo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVs X21zdCA9IGVuY190b19tc3QoZW5jb2Rlcik7Cj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfbXN0LT5wcmltYXJ5LT5kcDsKPiDCoMKgwqDCoMKgwqDC oMKgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0KPiBAQCAtMjIwLDYgKzI3OCwz OCBAQCBzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqByZXQgPSBpbnRlbF9kcF9t c3RfY29tcHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZywKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25uX3N0YXRlLCAmbGltaXRzKTsKPiArCj4gK8Kg wqDCoMKgwqDCoMKgaWYgKHJldCA9PSAtRURFQURMSykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuIHJldDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgLyoKPiArwqDCoMKgwqDC oMKgwqAgKiBXZSBuZWVkIHRvIGNoZWNrIGlmIFZDUEkgc2xvdHMgYWxsb2NhdGVkIGNhbiBhY3R1 YWxseSBmaXQgYWxyZWFkeQo+ICvCoMKgwqDCoMKgwqDCoCAqIGhlcmUsIHRvIGRlY2lkZSB3aGV0 aGVyIHdlIHVzZSBEU0Mgb3Igbm90Lgo+ICvCoMKgwqDCoMKgwqDCoCAqIElmIGVpdGhlciBpbnRl bF9kcF9tc3RfY29tcHV0ZV9saW5rX2NvbmZpZyBvciB0aGF0IG9uZSBmYWlscywKPiArwqDCoMKg wqDCoMKgwqAgKiB0aGVuIHdlIHRyeSBEU0MgYXMgbGFzdCByZXNvcnQuCj4gK8KgwqDCoMKgwqDC oMKgICovCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFyZXQpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHJldCA9IGRybV9kcF9tc3RfYXRvbWljX2NoZWNrKHN0YXRlKTsKCkkgdGhpbmsg dGhlIGFib3ZlIGNoZWNrIGlzIHJlZHVuZGFudCBhcyBpdCBpcyBhbHJlYWR5IGRvbmUgYXMgcGFy dCBvZgppbnRlbF9kcF9tc3RfY29tcHV0ZV9saW5rX2NvbmZpZygpLiBvdGhlcndpc2UswqAKUmV2 aWV3ZWQtYnk6IFZpbm9kIEdvdmluZGFwaWxsYWkgPHZpbm9kLmdvdmluZGFwaWxsYWlAaW50ZWwu Y29tPgoKPiArCj4gK8KgwqDCoMKgwqDCoMKgLyogZW5hYmxlIGNvbXByZXNzaW9uIGlmIHRoZSBt b2RlIGRvZXNuJ3QgZml0IGF2YWlsYWJsZSBCVyAqLwo+ICvCoMKgwqDCoMKgwqDCoGRybV9kYmdf a21zKCZkZXZfcHJpdi0+ZHJtLCAiRm9yY2UgRFNDIGVuID0gJWRcbiIsIGludGVsX2RwLT5mb3Jj ZV9kc2NfZW4pOwo+ICvCoMKgwqDCoMKgwqDCoGlmIChyZXQgfHwgaW50ZWxfZHAtPmZvcmNlX2Rz Y19lbikgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBUcnkgdG8gZ2V0IGF0IGxlYXN0IHNvbWUgdGltZXNsb3Rz IGFuZCB0aGVuIHNlZSwgaWYKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogd2Ug Y2FuIGZpdCB0aGVyZSB3aXRoIERTQy4KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRybV9kYmdfa21zKCZkZXZfcHJp di0+ZHJtLCAiVHJ5aW5nIHRvIGZpbmQgVkNQSSBzbG90cyBpbiBEU0MgbW9kZVxuIik7Cj4gKwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBpbnRlbF9kcF9kc2NfbXN0X2Nv bXB1dGVfbGlua19jb25maWcoZW5jb2RlciwgcGlwZV9jb25maWcsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25uX3N0YXRlLCAm bGltaXRzKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCA8IDApCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcmV0 Owo+ICsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gaW50ZWxfZHBfZHNj X2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbm5fc3RhdGUsICZsaW1pdHMsCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaXBlX2NvbmZpZy0+ZHBfbV9uLnR1KTsK PiArwqDCoMKgwqDCoMKgwqB9Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0KQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiDCoAo+IEBAIC03MjksNiAr ODE5LDEwIEBAIGludGVsX2RwX21zdF9tb2RlX3ZhbGlkX2N0eChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+IMKgwqDCoMKgwqDCoMKgwqBpbnQgbWF4X2RvdGNsayA9IHRvX2k5MTUo Y29ubmVjdG9yLT5kZXYpLT5tYXhfZG90Y2xrX2ZyZXE7Cj4gwqDCoMKgwqDCoMKgwqDCoGludCBt YXhfcmF0ZSwgbW9kZV9yYXRlLCBtYXhfbGFuZXMsIG1heF9saW5rX2Nsb2NrOwo+IMKgwqDCoMKg wqDCoMKgwqBpbnQgcmV0Owo+ICvCoMKgwqDCoMKgwqDCoGJvb2wgZHNjID0gZmFsc2UsIGJpZ2pv aW5lciA9IGZhbHNlOwo+ICvCoMKgwqDCoMKgwqDCoHUxNiBkc2NfbWF4X291dHB1dF9icHAgPSAw Owo+ICvCoMKgwqDCoMKgwqDCoHU4IGRzY19zbGljZV9jb3VudCA9IDA7Cj4gK8KgwqDCoMKgwqDC oMKgaW50IHRhcmdldF9jbG9jayA9IG1vZGUtPmNsb2NrOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDC oGlmIChkcm1fY29ubmVjdG9yX2lzX3VucmVnaXN0ZXJlZChjb25uZWN0b3IpKSB7Cj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqc3RhdHVzID0gTU9ERV9FUlJPUjsKPiBAQCAtNzY2 LDYgKzg2MCw0OCBAQCBpbnRlbF9kcF9tc3RfbW9kZV92YWxpZF9jdHgoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy biAwOwo+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqAKPiArwqDCoMKgwqDCoMKgwqBpZiAoaW50ZWxf ZHBfbmVlZF9iaWdqb2luZXIoaW50ZWxfZHAsIG1vZGUtPmhkaXNwbGF5LCB0YXJnZXRfY2xvY2sp KSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJpZ2pvaW5lciA9IHRydWU7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1heF9kb3RjbGsgKj0gMjsKPiArwqDCoMKg wqDCoMKgwqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlmIChESVNQTEFZX1ZFUihkZXZfcHJpdikg Pj0gMTAgJiYKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNj KGludGVsX2RwLT5kc2NfZHBjZCkpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg LyoKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogVEJEIHBhc3MgdGhlIGNvbm5l Y3RvciBCUEMsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGZvciBub3cgVThf TUFYIHNvIHRoYXQgbWF4IEJQQyBvbiB0aGF0IHBsYXRmb3JtIHdvdWxkIGJlIHBpY2tlZAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgaW50IHBpcGVfYnBwID0gaW50ZWxfZHBfZHNjX2NvbXB1dGVfYnBwKGludGVsX2Rw LCBVOF9NQVgpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGRybV9k cF9zaW5rX3N1cHBvcnRzX2ZlYyhpbnRlbF9kcC0+ZmVjX2NhcGFibGUpKSB7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkc2NfbWF4X291dHB1dF9icHAg PQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGludGVsX2RwX2RzY19nZXRfb3V0cHV0X2JwcChkZXZfcHJpdiwKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWF4 X2xpbmtfY2xvY2ssCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG1heF9sYW5lcywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGFyZ2V0X2Nsb2NrLAo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBt b2RlLT5oZGlzcGxheSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgYmlnam9pbmVyLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaXBlX2JwcCwgMSkgPj4gNDsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRzY19zbGlj ZV9jb3VudCA9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfZHBfZHNjX2dldF9zbGljZV9jb3VudChpbnRlbF9kcCwK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB0YXJnZXRfY2xvY2ssCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbW9kZS0+aGRpc3BsYXksCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYmln am9pbmVyKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ICsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZHNjID0gZHNjX21heF9vdXRwdXRfYnBwICYmIGRzY19z bGljZV9jb3VudDsKPiArwqDCoMKgwqDCoMKgwqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoC8qCj4g K8KgwqDCoMKgwqDCoMKgICogQmlnIGpvaW5lciBjb25maWd1cmF0aW9uIG5lZWRzIERTQyBmb3Ig VEdMIHdoaWNoIGlzIG5vdCB0cnVlIGZvcgo+ICvCoMKgwqDCoMKgwqDCoCAqIFhFX0xQRCB3aGVy ZSB1bmNvbXByZXNzZWQgam9pbmVyIGlzIHN1cHBvcnRlZC4KPiArwqDCoMKgwqDCoMKgwqAgKi8K PiArwqDCoMKgwqDCoMKgwqBpZiAoRElTUExBWV9WRVIoZGV2X3ByaXYpIDwgMTMgJiYgYmlnam9p bmVyICYmICFkc2MpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBNT0RF X0NMT0NLX0hJR0g7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlmIChtb2RlX3JhdGUgPiBtYXhfcmF0 ZSAmJiAhZHNjKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gTU9ERV9D TE9DS19ISUdIOwo+ICsKPiDCoMKgwqDCoMKgwqDCoMKgKnN0YXR1cyA9IGludGVsX21vZGVfdmFs aWRfbWF4X3BsYW5lX3NpemUoZGV2X3ByaXYsIG1vZGUsIGZhbHNlKTsKPiDCoMKgwqDCoMKgwqDC oMKgcmV0dXJuIDA7Cj4gwqB9Cgo=