From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B4716C4743C for ; Mon, 14 Jun 2021 17:04:13 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 846DF61209 for ; Mon, 14 Jun 2021 17:04:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 846DF61209 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=N+Ldt/pWPkuvjSyBEuq/N9Yh0FPIdHrB7OPgO2pp/VI=; b=dmiJta/Z/lo+Qm44jhmcO8dLZ8 dREP5fJsIqLGRV+skIcW0yqNaVskxAwJFfTYs3qj7zkfMqeuRnYf6e6POO3epFEawaKorTU+RZ4LS soNXvBsreUTeVTkVCqfuzU05D9Ogf7Y4QaU3vfejs894j1AhhN8bMBl0SMcjczAYBP86l1+ItWcol JdFn8lJSbymtrR+/JGLNCZDD9Y8Ph9s2y1nBqfX/hYpRVHEMGSCT3fquznoi2Befvn8egBa8Q7zeq 0Xmvd5JQRZ2kWucA8idrrEO3oYvu48exNx9QLCa9i7+mLeK/aeyT5YS8vCZ5aVw78j+SBZKQYJapA KZ6QDQcg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lspyo-00FIQf-W9; Mon, 14 Jun 2021 17:02:31 +0000 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lspyi-00FIOh-7x; Mon, 14 Jun 2021 17:02:26 +0000 Received: by mail-wr1-x432.google.com with SMTP id i94so15277388wri.4; Mon, 14 Jun 2021 10:02:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=H7yznGHlzfPxvDpvZSbqFd5fVDqQ5LFFKjpUq3W88rg=; b=eQzf6PJn6Zk1h/GN3B0JmHx0rAjPNLihmapVuV7mJKiCo3bhpaST/DcK68HSBsBf9D yXYoRlPQkhGh3DRxeuzzAxfmsYyrhLaB/feUN0ym1TwyNSPGph3eElvlw6WFShiRbv+F gEzkzGHGMzREQQYj1bWXp/OaIyT91fhFtlxzaDrfxZ5uPlDM8SuSgfs4t23tCSMxl1Sh g5S4L/6o3NA1Zbhld8CYwXiaT6/hdC3x0+UScFFW3LwOplSe/SwcCWC4ohHo12nFmxEx xJEhu/wWEZAqtt3N6VDjte7t4Phs80dBzqkWap2LdIUEMzXxNck81+EJqwGOnjk0dXwj oL2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=H7yznGHlzfPxvDpvZSbqFd5fVDqQ5LFFKjpUq3W88rg=; b=ek9gNz7GIUx51THF21qoFF5JN0AqxgCUOOYEUxzpAC9uV4o+8HHDKlMJKB/6ptf7mm crDgCmb3l6EJZ7lxFYje6Kom6IitYZuRWRbv+EReTevfbm75lry9RNzfaxRAMruUo0Vo 6Cb83AmtUvjFFbXyUQabjxT/+qW+oX57b6g2Zo2Ag6WWmnu2KBymSmNHNrbs1kdcdD7Z quJ+Q0KEziLZQ48HtRvPJE2G5hTFtS++rwz1KVCPuYTAaTqqffzzDrpV1P76OKovWB/T 0rUEXgqEWOHfl4uD3cVJ4ws+tQQ8g9BERZ6QfxBQZNAd3G10XremCeLSk2s5ErKEiqrM ajUg== X-Gm-Message-State: AOAM53125sLx9t1/8MV4GlbbeQSaNIRGLYtYpvfMY229sSdjR/Wv3h+0 B//sOK+9VE3YgmGthIiquNfghmIOcQ== X-Google-Smtp-Source: ABdhPJy7b4eSjTkgfw/IxRkzpfMfUcVmAIq1umEwAkfPgPl7K9B+Fd5iZM/qYWqycRgOBXrogfGRjw== X-Received: by 2002:a5d:494c:: with SMTP id r12mr19591862wrs.421.1623690142709; Mon, 14 Jun 2021 10:02:22 -0700 (PDT) Received: from [192.168.200.247] (ip5b434b8b.dynamic.kabel-deutschland.de. [91.67.75.139]) by smtp.gmail.com with ESMTPSA id u15sm374626wmq.1.2021.06.14.10.02.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 14 Jun 2021 10:02:22 -0700 (PDT) Subject: Re: [PATCH v2 05/12] media: hantro: merge Rockchip platform drivers To: Ezequiel Garcia Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , Rob Herring , Heiko Stuebner , Philipp Zabel , Lee Jones , Greg Kroah-Hartman , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org References: <20210525152225.154302-1-knaerzche@gmail.com> <20210527154455.358869-1-knaerzche@gmail.com> <20210527154455.358869-6-knaerzche@gmail.com> <35c24063aec561ca9696ab696fda86d34c38016e.camel@collabora.com> From: Alex Bee Message-ID: Date: Mon, 14 Jun 2021 19:02:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <35c24063aec561ca9696ab696fda86d34c38016e.camel@collabora.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210614_100224_334676_EF8B893B X-CRM114-Status: GOOD ( 29.56 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgRXplcXVpZWwsCgpBbSAxMS4wNi4yMSB1bSAxNzozNiBzY2hyaWViIEV6ZXF1aWVsIEdhcmNp YToKPiBIaSBBbGV4LAo+Cj4gVGhpcyBjbGVhbnVwIGxvb2tzIG5pY2UsIHRoYW5rcyEKPgo+IEp1 c3QgYSBjb21tZW50IGFib3V0IHRoZSBjbG9jayByYXRlIGFuZCBhIG1pbm9yIHR5cG8uCj4KPiBP biBUaHUsIDIwMjEtMDUtMjcgYXQgMTc6NDQgKzAyMDAsIEFsZXggQmVlIHdyb3RlOgo+PiBNZXJn ZSB0aGUgdHdvIFJvY2tjaGlwIHBsYXRmb3JtIGRyaXZlcnMgaW50byBvbmUgYXMgaXQgd2FzIHN1 Z2dlc3RlZCBhdAo+PiBbMV0gYW5kIFsyXS4KPj4gVGhpcyB3aWxsIGhvcGVmdWxseSBtYWtlIGl0 IGVhc2llciB0byBhZGQgbmV3IHZhcmlhbnRzICh3aGljaCBhcmUgc3VyZWx5Cj4+IHRvIGNvbWUg Zm9yIFJvY2tjaGlwKS4KPj4gQWxzbyByZW5hbWUgZnJvbSAicmszMjg4IiB0byAidihkL2UpcHUx IiBhbmQgInJrMzM5OSIgdG8gInYoZC9lKXB1MiIKPj4gd2hlcmUgYXBwbGljYWJsZSwgYXMgdGhp cyBpcyB0aGUgZGljaXRpb24gdGhlIHZlbmRvciB1c2VzIGFuZCB3aWxsCj4+IGFsc28gcmVmZWxl Y3QgdGhlIHZhcmlhbnRzIHRoYXQgZ2V0IGFkZGVkIGxhdGVyIGluIHRoaXMgc2VyaWVzLiBSZW5h bWUKPj4gZnJvbSAicmszMjg4IiB0byAicm9ja2NoaXAiIGlmIGFwcGxpY2FibGUgdG8gYm90aCBo YXJkd2FyZSB2ZXJzaW9ucy4KPj4KPj4gWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcv cHJvamVjdC9saW51eC1yb2NrY2hpcC9wYXRjaC8yMDIxMDEwNzEzNDEwMS4xOTU0MjYtNi1wYXVs LmtvY2lhbGtvd3NraUBib290bGluLmNvbS8KPj4gWzJdIGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5l bC5vcmcvcHJvamVjdC9saW51eC1yb2NrY2hpcC9wYXRjaC8yMDIxMDUyNTE1MjIyNS4xNTQzMDIt NS1rbmFlcnpjaGVAZ21haWwuY29tLwo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBBbGV4IEJlZSA8a25h ZXJ6Y2hlQGdtYWlsLmNvbT4KPj4gLS0tCj4+Cj4+ICDCoENoYW5nZXMgaW4gdjI6Cj4+ICDCoC0g YWRkZWQgcGF0Y2gKPj4KPj4gIMKgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9NYWtlZmls ZcKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgOSArLQo+PiAgwqBkcml2ZXJzL3N0YWdpbmcvbWVkaWEv aGFudHJvL2hhbnRyb19ody5owqDCoMKgwqDCoCB8wqAgMjIgKy0KPj4gIMKgZHJpdmVycy9zdGFn aW5nL21lZGlhL2hhbnRyby9yazMyODhfdnB1X2h3LmPCoCB8IDIwOCAtLS0tLS0tLS0tCj4+ICDC oGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vcmszMzk5X3ZwdV9ody5jwqAgfCAyMjIgLS0t LS0tLS0tLS0KPj4gIMKgLi4uanBlZ19lbmMuYyA9PiByb2NrY2hpcF92cHUyX2h3X2pwZWdfZW5j LmN9IHzCoCAzMCArLQo+PiAgwqAuLi5lZzJfZGVjLmMgPT4gcm9ja2NoaXBfdnB1Ml9od19tcGVn Ml9kZWMuY30gfMKgIDI1ICstCj4+ICDCoC4uLndfdnA4X2RlYy5jID0+IHJvY2tjaGlwX3ZwdTJf aHdfdnA4X2RlYy5jfSB8wqDCoCAyICstCj4+ICDCoC4uLnJrMzM5OV92cHVfcmVncy5oID0+IHJv Y2tjaGlwX3ZwdTJfcmVncy5ofSB8wqDCoCA2ICstCj4+ICDCoC4uLi9zdGFnaW5nL21lZGlhL2hh bnRyby9yb2NrY2hpcF92cHVfaHcuY8KgwqDCoCB8IDM1NiArKysrKysrKysrKysrKysrKysKPj4g IMKgOSBmaWxlcyBjaGFuZ2VkLCA0MDIgaW5zZXJ0aW9ucygrKSwgNDc4IGRlbGV0aW9ucygtKQo+ PiAgwqBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yazMy ODhfdnB1X2h3LmMKPj4gIMKgZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy9tZWRp YS9oYW50cm8vcmszMzk5X3ZwdV9ody5jCj4+ICDCoHJlbmFtZSBkcml2ZXJzL3N0YWdpbmcvbWVk aWEvaGFudHJvL3tyazMzOTlfdnB1X2h3X2pwZWdfZW5jLmMgPT4gcm9ja2NoaXBfdnB1Ml9od19q cGVnX2VuYy5jfSAoODclKQo+PiAgwqByZW5hbWUgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRy by97cmszMzk5X3ZwdV9od19tcGVnMl9kZWMuYyA9PiByb2NrY2hpcF92cHUyX2h3X21wZWcyX2Rl Yy5jfSAoOTMlKQo+PiAgwqByZW5hbWUgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby97cmsz Mzk5X3ZwdV9od192cDhfZGVjLmMgPT4gcm9ja2NoaXBfdnB1Ml9od192cDhfZGVjLmN9ICg5OSUp Cj4+ICDCoHJlbmFtZSBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL3tyazMzOTlfdnB1X3Jl Z3MuaCA9PiByb2NrY2hpcF92cHUyX3JlZ3MuaH0gKDk5JSkKPj4gIMKgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vcm9ja2NoaXBfdnB1X2h3LmMKPj4KPiBb Li5dCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL3JvY2tjaGlw X3ZwdV9ody5jIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yb2NrY2hpcF92cHVfaHcu Ywo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjE3NWQwYzVk ZmRiZQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50 cm8vcm9ja2NoaXBfdnB1X2h3LmMKPj4gQEAgLTAsMCArMSwzNTYgQEAKPj4gKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4+ICsvKgo+PiArICogSGFudHJvIFZQVSBjb2RlYyBk cml2ZXIKPj4gKyAqCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTggUm9ja2NoaXAgRWxlY3Ryb25p Y3MgQ28uLCBMdGQuCj4+ICsgKsKgwqDCoMKgwqBKZWZmeSBDaGVuIDxqZWZmeS5jaGVuQHJvY2st Y2hpcHMuY29tPgo+PiArICovCj4+ICsKPj4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPj4gKwo+ PiArI2luY2x1ZGUgImhhbnRyby5oIgo+PiArI2luY2x1ZGUgImhhbnRyb19qcGVnLmgiCj4+ICsj aW5jbHVkZSAiaGFudHJvX2gxX3JlZ3MuaCIKPj4gKyNpbmNsdWRlICJyb2NrY2hpcF92cHUyX3Jl Z3MuaCIKPj4gKwo+PiArI2RlZmluZSBSSzMyODhfQUNMS19NQVhfRlJFUSAoNDAwICogMTAwMCAq IDEwMDApCj4+ICsKPiBTb21ldGhpbmcgZm9yIGxhdGVyLCBjb3VsZCB3ZSBidW1wIHRoaXMgY2xv Y2s/Cj4KPiBSb2NrY2hpcCB1c2VzIDMwME1IeiBhbmQgNjAwTUh6IGV2ZW4gZm9yIFJLMzI4OCwK PiBzZWUgYXJjaC9hcm0vYm9vdC9kdHMvcmszMjg4LmR0c2k6Cj4KPiAgICAgICAgICB2ZHB1OiB2 ZHB1QGZmOWEwNDAwIHsKPiAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAicm9ja2NoaXAs dnB1LWRlY29kZXItcmszMjg4IiwgInJvY2tjaGlwLHZwdS1kZWNvZGVyLXYxIjsKPiAgICAgICAg ICAgICAgICAgIHJlZyA9IDwweDAgMHhmZjlhMDQwMCAweDAgMHg0MDA+Owo+ICAgICAgICAgICAg ICAgICAgaW50ZXJydXB0cyA9IDxHSUNfU1BJIDEwIElSUV9UWVBFX0xFVkVMX0hJR0g+Owo+ICAg ICAgICAgICAgICAgICAgaW50ZXJydXB0LW5hbWVzID0gImlycV9kZWMiOwo+ICAgICAgICAgICAg ICAgICAgY2xvY2tzID0gPCZjcnUgQUNMS19WQ09ERUM+LCA8JmNydSBIQ0xLX1ZDT0RFQz47Cj4g ICAgICAgICAgICAgICAgICBjbG9jay1uYW1lcyA9ICJhY2xrX3Zjb2RlYyIsICJoY2xrX3Zjb2Rl YyI7Cj4gICAgICAgICAgICAgICAgICByb2NrY2hpcCxub3JtYWwtcmF0ZXMgPSA8MzAwMDAwMDAw PiwgPDA+Owo+ICAgICAgICAgICAgICAgICAgcm9ja2NoaXAsYWR2YW5jZWQtcmF0ZXMgPSA8NjAw MDAwMDAwPiwgPDA+Owo+Cj4gT24gdmRwdTEgZm9yIGluc3RhbmNlLCBpdCBzd2l0Y2hlcyB0byB0 aGUgImFkdmFuY2VkLXJhdGUiCj4gd2hlbiB3aWR0aCA+IDI1NjAsIHdoaWNoIEkgdGhpbmsgaXQn cyB0b28gbmFpdmUgZm9yIHVzLgo+Cj4gQXQgbGVhc3Qgb24gUkszNTY2IEkgdGVzdGVkIGJ1bXBp bmcgdGhpcyByYXRlLCB3aGlsZSBzdGlsbAo+IHBhc3NpbmcgY29uZm9ybWFuY2UgdGVzdHMuCgpZ ZXMsIFJLMzI4OCdzIGNhbiAoYW5kIG1heWJlIGFsc28gc2hvdWxkKSBydW4gYXQgNjAwIE1IeiAo c2luY2Ugd2UgYXJlIApzdWdlc3RpbmcgdG8gIkJ1bXAgQUNMSyB0byBtYXguIHBvc3NpYmxlIGZy ZXEuIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuIiAKY3VycmVudGx5KSAtIGJ1dCBJIG5ldmVyIHJh biBjb25mb3JtYW5jZSB0ZXN0cyBhZnRlciBzZXR0aW5nIHRoaXMgcmF0ZSwgdGJoLgoKSSdtIGFs c28gbm90IHN1cmUsIFZEUFUyIChSSzMzOTkpIHZhcmlhbnQgc3VwcG9ydHMgVlA4IHVwIHRvIDM4 NDB4MjE2MHAuIApJdCB3b3VsZCBiZSB0aGUgb25seSBjb2RlYyBzdXBwb3J0ZWQgdXAgdGhhdCBm cmFtZSBzaXplICh3ZSBhbHJlYWR5IAprbm93LCB0aGF0IEguMjY0IGlzIHN1cHBvcnRlZCB1cCB0 byAxOTIweDEwODgsIGV2ZW4gaWYgaXQgaXMgbm90IApzdXBwb3J0ZWQgY3VycmVudGx5IGJ5IHVw c3RyZWFtIGhhbnRybyBkcml2ZXIpIGFuZCBUUk0gc2F5cyB0aGUgaGFudHJvIApJUCBibG9jayBp cyBhICIxMDgwUCBlbmNvZGVyL2RlY29kZXIgUHJvY2Vzc2luZyBDb3JlIiwgd2l0aG91dCBzYXlp bmcgCmFueXRoaW5nIHNwZWNpZmljIHBlciBjb2RlYy4KCkJvdGggc2hvdWxkIGJlIGNoZWNrZWQg YW5kIGFkZHJlc3NlZCBpbiBhIHVwY29taW5nIHNlcmllcy4KCj4+ICsvKgo+PiArICogU3VwcG9y dGVkIGZvcm1hdHMuCj4+ICsgKi8KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBoYW50cm9f Zm10IHJvY2tjaGlwX3ZwdV9lbmNfZm10c1tdID0gewo+PiArwqDCoMKgwqDCoMKgwqB7Cj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuZm91cmNjID0gVjRMMl9QSVhfRk1UX1lVVjQy ME0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuY29kZWNfbW9kZSA9IEhBTlRS T19NT0RFX05PTkUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuZW5jX2ZtdCA9 IFJPQ0tDSElQX1ZQVV9FTkNfRk1UX1lVVjQyMFAsCj4+ICvCoMKgwqDCoMKgwqDCoH0sCj4+ICvC oMKgwqDCoMKgwqDCoHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5mb3VyY2Mg PSBWNEwyX1BJWF9GTVRfTlYxMk0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAu Y29kZWNfbW9kZSA9IEhBTlRST19NT0RFX05PTkUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAuZW5jX2ZtdCA9IFJPQ0tDSElQX1ZQVV9FTkNfRk1UX1lVVjQyMFNQLAo+PiArwqDC oMKgwqDCoMKgwqB9LAo+PiArwqDCoMKgwqDCoMKgwqB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAuZm91cmNjID0gVjRMMl9QSVhfRk1UX1lVWVYsCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAuY29kZWNfbW9kZSA9IEhBTlRST19NT0RFX05PTkUsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuZW5jX2ZtdCA9IFJPQ0tDSElQX1ZQVV9FTkNfRk1U X1lVWVY0MjIsCj4+ICvCoMKgwqDCoMKgwqDCoH0sCj4+ICvCoMKgwqDCoMKgwqDCoHsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfVVlWWSwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlY19tb2RlID0gSEFOVFJPX01P REVfTk9ORSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5lbmNfZm10ID0gUk9D S0NISVBfVlBVX0VOQ19GTVRfVVlWWTQyMiwKPj4gK8KgwqDCoMKgwqDCoMKgfSwKPj4gK8KgwqDC oMKgwqDCoMKgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmZvdXJjYyA9IFY0 TDJfUElYX0ZNVF9KUEVHLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmNvZGVj X21vZGUgPSBIQU5UUk9fTU9ERV9KUEVHX0VOQywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC5tYXhfZGVwdGggPSAyLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg LmhlYWRlcl9zaXplID0gSlBFR19IRUFERVJfU0laRSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoC5mcm1zaXplID0gewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoC5taW5fd2lkdGggPSA5NiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubWF4X3dpZHRoID0gODE5MiwKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuc3RlcF93aWR0aCA9IE1CX0RJ TSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubWlu X2hlaWdodCA9IDMyLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC5tYXhfaGVpZ2h0ID0gODE5MiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAuc3RlcF9oZWlnaHQgPSBNQl9ESU0sCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB9LAo+PiArwqDCoMKgwqDCoMKgwqB9LAo+PiArfTsKPj4gKwo+ PiArc3RhdGljIGNvbnN0IHN0cnVjdCBoYW50cm9fZm10IHJvY2tjaGlwX3ZwdTFfcG9zdHByb2Nf Zm10c1tdID0gewo+PiArwqDCoMKgwqDCoMKgwqB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAuZm91cmNjID0gVjRMMl9QSVhfRk1UX1lVWVYsCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAuY29kZWNfbW9kZSA9IEhBTlRST19NT0RFX05PTkUsCj4+ICvCoMKgwqDC oMKgwqDCoH0sCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGhhbnRyb19mbXQg cmszMjg4X3ZwdV9kZWNfZm10c1tdID0gewo+PiArwqDCoMKgwqDCoMKgwqB7Cj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuZm91cmNjID0gVjRMMl9QSVhfRk1UX05WMTIsCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuY29kZWNfbW9kZSA9IEhBTlRST19NT0RFX05P TkUsCj4+ICvCoMKgwqDCoMKgwqDCoH0sCj4+ICvCoMKgwqDCoMKgwqDCoHsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfSDI2NF9TTElDRSwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlY19tb2RlID0gSEFOVFJPX01P REVfSDI2NF9ERUMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubWF4X2RlcHRo ID0gMiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5mcm1zaXplID0gewo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5taW5fd2lkdGgg PSA0OCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAu bWF4X3dpZHRoID0gNDA5NiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAuc3RlcF93aWR0aCA9IE1CX0RJTSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubWluX2hlaWdodCA9IDQ4LAo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5tYXhfaGVpZ2h0ID0gMjMwNCwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuc3RlcF9o ZWlnaHQgPSBNQl9ESU0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9LAo+PiAr wqDCoMKgwqDCoMKgwqB9LAo+PiArwqDCoMKgwqDCoMKgwqB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAuZm91cmNjID0gVjRMMl9QSVhfRk1UX01QRUcyX1NMSUNFLAo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmNvZGVjX21vZGUgPSBIQU5UUk9fTU9ERV9NUEVH Ml9ERUMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubWF4X2RlcHRoID0gMiwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5mcm1zaXplID0gewo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5taW5fd2lkdGggPSA0OCwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubWF4X3dp ZHRoID0gMTkyMCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAuc3RlcF93aWR0aCA9IE1CX0RJTSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAubWluX2hlaWdodCA9IDQ4LAo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5tYXhfaGVpZ2h0ID0gMTA4OCwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuc3RlcF9oZWlnaHQg PSBNQl9ESU0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9LAo+PiArwqDCoMKg wqDCoMKgwqB9LAo+PiArwqDCoMKgwqDCoMKgwqB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAuZm91cmNjID0gVjRMMl9QSVhfRk1UX1ZQOF9GUkFNRSwKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlY19tb2RlID0gSEFOVFJPX01PREVfVlA4X0RFQywKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5tYXhfZGVwdGggPSAyLAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmZybXNpemUgPSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm1pbl93aWR0aCA9IDQ4LAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5tYXhfd2lkdGggPSAzODQw LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5zdGVw X3dpZHRoID0gTUJfRElNLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoC5taW5faGVpZ2h0ID0gNDgsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgLm1heF9oZWlnaHQgPSAyMTYwLAo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5zdGVwX2hlaWdodCA9IE1CX0RJTSwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0sCj4+ICvCoMKgwqDCoMKgwqDCoH0s Cj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGhhbnRyb19mbXQgcmszMzk5X3Zw dV9kZWNfZm10c1tdID0gewo+PiArwqDCoMKgwqDCoMKgwqB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAuZm91cmNjID0gVjRMMl9QSVhfRk1UX05WMTIsCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAuY29kZWNfbW9kZSA9IEhBTlRST19NT0RFX05PTkUsCj4+ICvC oMKgwqDCoMKgwqDCoH0sCj4+ICvCoMKgwqDCoMKgwqDCoHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoC5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfTVBFRzJfU0xJQ0UsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuY29kZWNfbW9kZSA9IEhBTlRST19NT0RFX01QRUcy X0RFQywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5tYXhfZGVwdGggPSAyLAo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmZybXNpemUgPSB7Cj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm1pbl93aWR0aCA9IDQ4LAo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5tYXhfd2lk dGggPSAxOTIwLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoC5zdGVwX3dpZHRoID0gTUJfRElNLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC5taW5faGVpZ2h0ID0gNDgsCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm1heF9oZWlnaHQgPSAxMDg4LAo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5zdGVwX2hlaWdodCA9 IE1CX0RJTSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0sCj4+ICvCoMKgwqDC oMKgwqDCoH0sCj4+ICvCoMKgwqDCoMKgwqDCoHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfVlA4X0ZSQU1FLAo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLmNvZGVjX21vZGUgPSBIQU5UUk9fTU9ERV9WUDhfREVDLAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm1heF9kZXB0aCA9IDIsCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuZnJtc2l6ZSA9IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubWluX3dpZHRoID0gNDgsCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm1heF93aWR0aCA9IDM4NDAs Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLnN0ZXBf d2lkdGggPSBNQl9ESU0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgLm1pbl9oZWlnaHQgPSA0OCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAubWF4X2hlaWdodCA9IDIxNjAsCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLnN0ZXBfaGVpZ2h0ID0gTUJfRElNLAo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSwKPj4gK8KgwqDCoMKgwqDCoMKgfSwK Pj4gK307Cj4+ICsKPj4gK3N0YXRpYyBpcnFyZXR1cm5fdCByb2NrY2hpcF92cHUxX3ZlcHVfaXJx KGludCBpcnEsIHZvaWQgKmRldl9pZCkKPj4gK3sKPj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGhh bnRyb19kZXYgKnZwdSA9IGRldl9pZDsKPj4gK8KgwqDCoMKgwqDCoMKgZW51bSB2YjJfYnVmZmVy X3N0YXRlIHN0YXRlOwo+PiArwqDCoMKgwqDCoMKgwqB1MzIgc3RhdHVzOwo+PiArCj4+ICvCoMKg wqDCoMKgwqDCoHN0YXR1cyA9IHZlcHVfcmVhZCh2cHUsIEgxX1JFR19JTlRFUlJVUFQpOwo+PiAr wqDCoMKgwqDCoMKgwqBzdGF0ZSA9IChzdGF0dXMgJiBIMV9SRUdfSU5URVJSVVBUX0ZSQU1FX1JE WSkgPwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgVkIyX0JVRl9TVEFURV9ET05F IDogVkIyX0JVRl9TVEFURV9FUlJPUjsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqB2ZXB1X3dyaXRl KHZwdSwgMCwgSDFfUkVHX0lOVEVSUlVQVCk7Cj4+ICvCoMKgwqDCoMKgwqDCoHZlcHVfd3JpdGUo dnB1LCAwLCBIMV9SRUdfQVhJX0NUUkwpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoGhhbnRyb19p cnFfZG9uZSh2cHUsIHN0YXRlKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqByZXR1cm4gSVJRX0hB TkRMRUQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpcnFyZXR1cm5fdCByb2NrY2hpcF92cHUyX3Zk cHVfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPj4gK3sKPj4gK8KgwqDCoMKgwqDCoMKgc3Ry dWN0IGhhbnRyb19kZXYgKnZwdSA9IGRldl9pZDsKPj4gK8KgwqDCoMKgwqDCoMKgZW51bSB2YjJf YnVmZmVyX3N0YXRlIHN0YXRlOwo+PiArwqDCoMKgwqDCoMKgwqB1MzIgc3RhdHVzOwo+PiArCj4+ ICvCoMKgwqDCoMKgwqDCoHN0YXR1cyA9IHZkcHVfcmVhZCh2cHUsIFZEUFVfUkVHX0lOVEVSUlVQ VCk7Cj4+ICvCoMKgwqDCoMKgwqDCoHN0YXRlID0gKHN0YXR1cyAmIFZEUFVfUkVHX0lOVEVSUlVQ VF9ERUNfSVJRKSA/Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBWQjJfQlVGX1NU QVRFX0RPTkUgOiBWQjJfQlVGX1NUQVRFX0VSUk9SOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoHZk cHVfd3JpdGUodnB1LCAwLCBWRFBVX1JFR19JTlRFUlJVUFQpOwo+PiArwqDCoMKgwqDCoMKgwqB2 ZHB1X3dyaXRlKHZwdSwgMCwgVkRQVV9SRUdfQVhJX0NUUkwpOwo+PiArCj4+ICvCoMKgwqDCoMKg wqDCoGhhbnRyb19pcnFfZG9uZSh2cHUsIHN0YXRlKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqBy ZXR1cm4gSVJRX0hBTkRMRUQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpcnFyZXR1cm5fdCByb2Nr Y2hpcF92cHUyX3ZlcHVfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPj4gK3sKPj4gK8KgwqDC oMKgwqDCoMKgc3RydWN0IGhhbnRyb19kZXYgKnZwdSA9IGRldl9pZDsKPj4gK8KgwqDCoMKgwqDC oMKgZW51bSB2YjJfYnVmZmVyX3N0YXRlIHN0YXRlOwo+PiArwqDCoMKgwqDCoMKgwqB1MzIgc3Rh dHVzOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoHN0YXR1cyA9IHZlcHVfcmVhZCh2cHUsIFZFUFVf UkVHX0lOVEVSUlVQVCk7Cj4+ICvCoMKgwqDCoMKgwqDCoHN0YXRlID0gKHN0YXR1cyAmIFZFUFVf UkVHX0lOVEVSUlVQVF9GUkFNRV9SRUFEWSkgPwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgVkIyX0JVRl9TVEFURV9ET05FIDogVkIyX0JVRl9TVEFURV9FUlJPUjsKPj4gKwo+PiAr wqDCoMKgwqDCoMKgwqB2ZXB1X3dyaXRlKHZwdSwgMCwgVkVQVV9SRUdfSU5URVJSVVBUKTsKPj4g K8KgwqDCoMKgwqDCoMKgdmVwdV93cml0ZSh2cHUsIDAsIFZFUFVfUkVHX0FYSV9DVFJMKTsKPj4g Kwo+PiArwqDCoMKgwqDCoMKgwqBoYW50cm9faXJxX2RvbmUodnB1LCBzdGF0ZSk7Cj4+ICsKPj4g K8KgwqDCoMKgwqDCoMKgcmV0dXJuIElSUV9IQU5ETEVEOwo+PiArfQo+PiArCj4+ICtzdGF0aWMg aW50IHJvY2tjaGlwX3ZwdV9od19pbml0KHN0cnVjdCBoYW50cm9fZGV2ICp2cHUpCj4+ICt7Cj4+ ICvCoMKgwqDCoMKgwqDCoC8qIEJ1bXAgQUNMSyB0byBtYXguIHBvc3NpYmxlIGZyZXEuIHRvIGlt cHJvdmUgcGVyZm9ybWFuY2UuICovCj4+ICvCoMKgwqDCoMKgwqDCoGNsa19zZXRfcmF0ZSh2cHUt PmNsb2Nrc1swXS5jbGssIFJLMzI4OF9BQ0xLX01BWF9GUkVRKTsKPj4gK8KgwqDCoMKgwqDCoMKg cmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIHJvY2tjaGlwX3ZwdTFfZW5jX3Jl c2V0KHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4+ICt7Cj4+ICvCoMKgwqDCoMKgwqDCoHN0cnVj dCBoYW50cm9fZGV2ICp2cHUgPSBjdHgtPmRldjsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqB2ZXB1 X3dyaXRlKHZwdSwgSDFfUkVHX0lOVEVSUlVQVF9ESVNfQklULCBIMV9SRUdfSU5URVJSVVBUKTsK Pj4gK8KgwqDCoMKgwqDCoMKgdmVwdV93cml0ZSh2cHUsIDAsIEgxX1JFR19FTkNfQ1RSTCk7Cj4+ ICvCoMKgwqDCoMKgwqDCoHZlcHVfd3JpdGUodnB1LCAwLCBIMV9SRUdfQVhJX0NUUkwpOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgdm9pZCByb2NrY2hpcF92cHUyX2RlY19yZXNldChzdHJ1Y3QgaGFu dHJvX2N0eCAqY3R4KQo+PiArewo+PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaGFudHJvX2RldiAq dnB1ID0gY3R4LT5kZXY7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgdmRwdV93cml0ZSh2cHUsIFZE UFVfUkVHX0lOVEVSUlVQVF9ERUNfSVJRX0RJUywgVkRQVV9SRUdfSU5URVJSVVBUKTsKPj4gK8Kg wqDCoMKgwqDCoMKgdmRwdV93cml0ZSh2cHUsIDAsIFZEUFVfUkVHX0VOX0ZMQUdTKTsKPj4gK8Kg wqDCoMKgwqDCoMKgdmRwdV93cml0ZSh2cHUsIDEsIFZEUFVfUkVHX1NPRlRfUkVTRVQpOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgdm9pZCByb2NrY2hpcF92cHUyX2VuY19yZXNldChzdHJ1Y3QgaGFu dHJvX2N0eCAqY3R4KQo+PiArewo+PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaGFudHJvX2RldiAq dnB1ID0gY3R4LT5kZXY7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgdmVwdV93cml0ZSh2cHUsIFZF UFVfUkVHX0lOVEVSUlVQVF9ESVNfQklULCBWRVBVX1JFR19JTlRFUlJVUFQpOwo+PiArwqDCoMKg wqDCoMKgwqB2ZXB1X3dyaXRlKHZwdSwgMCwgVkVQVV9SRUdfRU5DT0RFX1NUQVJUKTsKPj4gK8Kg wqDCoMKgwqDCoMKgdmVwdV93cml0ZSh2cHUsIDAsIFZFUFVfUkVHX0FYSV9DVFJMKTsKPj4gK30K Pj4gKwo+PiArLyoKPj4gKyAqIFN1cHBvcnRlZCBjb2RlYyBvcHMuCj4+ICsgKi8KPj4gKwo+PiAr c3RhdGljIGNvbnN0IHN0cnVjdCBoYW50cm9fY29kZWNfb3BzIHJrMzI4OF92cHVfY29kZWNfb3Bz W10gPSB7Cj4+ICvCoMKgwqDCoMKgwqDCoFtIQU5UUk9fTU9ERV9KUEVHX0VOQ10gPSB7Cj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAucnVuID0gaGFudHJvX2gxX2pwZWdfZW5jX3J1 biwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5yZXNldCA9IHJvY2tjaGlwX3Zw dTFfZW5jX3Jlc2V0LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmluaXQgPSBo YW50cm9fanBlZ19lbmNfaW5pdCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5k b25lID0gaGFudHJvX2pwZWdfZW5jX2RvbmUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAuZXhpdCA9IGhhbnRyb19qcGVnX2VuY19leGl0LAo+PiArwqDCoMKgwqDCoMKgwqB9LAo+ PiArwqDCoMKgwqDCoMKgwqBbSEFOVFJPX01PREVfSDI2NF9ERUNdID0gewo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgLnJ1biA9IGhhbnRyb19nMV9oMjY0X2RlY19ydW4sCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAucmVzZXQgPSBoYW50cm9fZzFfcmVzZXQsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuaW5pdCA9IGhhbnRyb19oMjY0X2RlY19p bml0LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmV4aXQgPSBoYW50cm9faDI2 NF9kZWNfZXhpdCwKPj4gK8KgwqDCoMKgwqDCoMKgfSwKPj4gK8KgwqDCoMKgwqDCoMKgW0hBTlRS T19NT0RFX01QRUcyX0RFQ10gPSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAu cnVuID0gaGFudHJvX2cxX21wZWcyX2RlY19ydW4sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAucmVzZXQgPSBoYW50cm9fZzFfcmVzZXQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAuaW5pdCA9IGhhbnRyb19tcGVnMl9kZWNfaW5pdCwKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC5leGl0ID0gaGFudHJvX21wZWcyX2RlY19leGl0LAo+PiArwqDC oMKgwqDCoMKgwqB9LAo+PiArwqDCoMKgwqDCoMKgwqBbSEFOVFJPX01PREVfVlA4X0RFQ10gPSB7 Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAucnVuID0gaGFudHJvX2cxX3ZwOF9k ZWNfcnVuLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLnJlc2V0ID0gaGFudHJv X2cxX3Jlc2V0LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmluaXQgPSBoYW50 cm9fdnA4X2RlY19pbml0LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmV4aXQg PSBoYW50cm9fdnA4X2RlY19leGl0LAo+PiArwqDCoMKgwqDCoMKgwqB9LAo+PiArfTsKPj4gKwo+ PiArc3RhdGljIGNvbnN0IHN0cnVjdCBoYW50cm9fY29kZWNfb3BzIHJrMzM5OV92cHVfY29kZWNf b3BzW10gPSB7Cj4+ICvCoMKgwqDCoMKgwqDCoFtIQU5UUk9fTU9ERV9KUEVHX0VOQ10gPSB7Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAucnVuID0gcm9ja2NoaXBfdnB1Ml9qcGVn X2VuY19ydW4sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAucmVzZXQgPSByb2Nr Y2hpcF92cHUyX2VuY19yZXNldCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5p bml0ID0gaGFudHJvX2pwZWdfZW5jX2luaXQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAuZXhpdCA9IGhhbnRyb19qcGVnX2VuY19leGl0LAo+PiArwqDCoMKgwqDCoMKgwqB9LAo+ PiArwqDCoMKgwqDCoMKgwqBbSEFOVFJPX01PREVfTVBFRzJfREVDXSA9IHsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5ydW4gPSByb2NrY2hpcF92cHUyX21wZWcyX2RlY19ydW4s Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAucmVzZXQgPSByb2NrY2hpcF92cHUy X2RlY19yZXNldCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5pbml0ID0gaGFu dHJvX21wZWcyX2RlY19pbml0LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmV4 aXQgPSBoYW50cm9fbXBlZzJfZGVjX2V4aXQsCj4+ICvCoMKgwqDCoMKgwqDCoH0sCj4+ICvCoMKg wqDCoMKgwqDCoFtIQU5UUk9fTU9ERV9WUDhfREVDXSA9IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoC5ydW4gPSByb2NrY2hpcF92cHUyX3ZwOF9kZWNfcnVuLAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLnJlc2V0ID0gcm9ja2NoaXBfdnB1Ml9kZWNfcmVzZXQs Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuaW5pdCA9IGhhbnRyb192cDhfZGVj X2luaXQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuZXhpdCA9IGhhbnRyb192 cDhfZGVjX2V4aXQsCj4+ICvCoMKgwqDCoMKgwqDCoH0sCj4+ICt9Owo+PiArCj4+ICsvKgo+PiAr ICogVlBVIHZhcmlhbnQuCj4+ICsgKi8KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBoYW50 cm9faXJxIHJvY2tjaGlwX3ZwdTFfaXJxc1tdID0gewo+PiArwqDCoMKgwqDCoMKgwqB7ICJ2ZXB1 Iiwgcm9ja2NoaXBfdnB1MV92ZXB1X2lycSB9LAo+PiArwqDCoMKgwqDCoMKgwqB7ICJ2ZHB1Iiwg aGFudHJvX2cxX2lycSB9LAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBoYW50 cm9faXJxIHJvY2tjaGlwX3ZwZHUyX2lycXNbXSA9IHsKPiBUeXBvOiB2cGR1IC0+IHZkcHU/Cldp bGwgZml4IGl0IGluIHYzLgo+Cj4+ICvCoMKgwqDCoMKgwqDCoHsgInZkcHUiLCByb2NrY2hpcF92 cHUyX3ZkcHVfaXJxIH0sCj4+ICt9Owo+PiArCj4gUmV2aWV3ZWQtYnk6IEV6ZXF1aWVsIEdhcmNp YSA8ZXplcXVpZWxAY29sbGFib3JhLmNvbT4KPgo+IFRoYW5rcywKPiBFemVxdWllbAo+CkFsZXgK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1r ZXJuZWwK