From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753758AbbCXQKj (ORCPT ); Tue, 24 Mar 2015 12:10:39 -0400 Received: from mail-oi0-f51.google.com ([209.85.218.51]:34409 "EHLO mail-oi0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932404AbbCXQK3 (ORCPT ); Tue, 24 Mar 2015 12:10:29 -0400 MIME-Version: 1.0 In-Reply-To: References: <20150324073219.GV1349@phenom.ffwll.local> <20150324134011.GJ1349@phenom.ffwll.local> <20150324143439.GK1349@phenom.ffwll.local> Date: Tue, 24 Mar 2015 12:10:28 -0400 X-Google-Sender-Auth: UOJo4tuERelEQHFku_X_sAISH3U Message-ID: Subject: Re: [Intel-gfx] [git pull] drm fixes From: Josh Boyer To: Daniel Vetter Cc: Dave Airlie , Xi Ruoyao , Linus Torvalds , "Linux-Kernel@Vger. Kernel. Org" , DRI mailing list , Intel Graphics Development Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 24, 2015 at 10:46 AM, Josh Boyer wrote: > On Tue, Mar 24, 2015 at 10:34 AM, Daniel Vetter wrote: >> On Tue, Mar 24, 2015 at 10:22:30AM -0400, Josh Boyer wrote: >>> On Tue, Mar 24, 2015 at 9:57 AM, Josh Boyer wrote: >>> > On Tue, Mar 24, 2015 at 9:40 AM, Daniel Vetter wrote: >>> >> On Tue, Mar 24, 2015 at 09:15:32AM -0400, Josh Boyer wrote: >>> >>> On Tue, Mar 24, 2015 at 3:32 AM, Daniel Vetter wrote: >>> >>> > On Mon, Mar 23, 2015 at 02:34:27PM -0400, Josh Boyer wrote: >>> >>> >> On Mon, Mar 23, 2015 at 11:33 AM, Josh Boyer wrote: >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >> Xi Ruoyao (1): >>> >>> >> >> drm/i915: Ensure plane->state->fb stays in sync with plane->fb >>> >>> >> >>> >>> >> Turns out to be that commit. >>> >>> >> >>> >>> >> git bisect start 'drivers/gpu/drm/i915/' >>> >>> >> # good: [b314acaccd7e0d55314d96be4a33b5f50d0b3344] Merge branch >>> >>> >> 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input >>> >>> >> git bisect good b314acaccd7e0d55314d96be4a33b5f50d0b3344 >>> >>> >> # bad: [bc465aa9d045feb0e13b4a8f32cc33c1943f62d6] Linux 4.0-rc5 >>> >>> >> git bisect bad bc465aa9d045feb0e13b4a8f32cc33c1943f62d6 >>> >>> >> # bad: [319c1d420a0b62d9dbb88104afebaabc968cdbfa] drm/i915: Ensure >>> >>> >> plane->state->fb stays in sync with plane->fb >>> >>> >> git bisect bad 319c1d420a0b62d9dbb88104afebaabc968cdbfa >>> >>> >> # first bad commit: [319c1d420a0b62d9dbb88104afebaabc968cdbfa] >>> >>> >> drm/i915: Ensure plane->state->fb stays in sync with plane->fb >>> >>> >> >>> >>> >> Doing a straight revert on top of 4.0-rc5 makes things work again, >>> >>> >> albeit with the WARN_ON(obj->frontbuffer_bits) splat still being >>> >>> >> there. >>> >>> > >>> >>> > Can you please test the tip of drm-fixes: >>> >>> > >>> >>> > commit 8218c3f4df3bb1c637c17552405039a6dd3c1ee1 >>> >>> > Author: Daniel Vetter >>> >>> > Date: Fri Feb 27 12:58:13 2015 +0100 >>> >>> > >>> >>> > drm: Fixup racy refcounting in plane_force_disable >>> >>> > >>> >>> > http://cgit.freedesktop.org/~airlied/linux/commit/?h=drm-fixes&id=8218c3f4df3bb1c637c17552405039a6dd3c1ee1 >>> >>> > >>> >>> > Because fumble that patch didn't make it to drm-fixes a while ago and >>> >>> > instead landed in drm-next. >>> >>> >>> >>> That seems to have helped with totally different issues a macbook I >>> >>> have was seeing. However, it still doesn't fix the issue with the >>> >>> Celeron based NUC machine. >>> >>> >>> >>> I built a kernel based on Linus' latest tree as of this morning, >>> >>> without reverting 319c1d4 and adding the commit you pointed to. The >>> >>> NUC still won't boot without HDMI connected. With HDMI connected I >>> >>> still see the trace below. If I do the blacklist and then insmod >>> >>> dance with HDMI unplugged it shows the same spew I reported yesterday >>> >>> which starts with the same backtrace. >>> >>> >>> >>> I'll try building a kernel with 319c1d4 reverted + your patch. I >>> >>> suspect things will work fine with that combination because the two >>> >>> issues are unrelated. >>> >> >>> >> Can you please boot with drm.debug=0xff for the below case and grab >>> >> complete dmesg? There'll be a lot of crap in the logs, you might need to >>> >> blow up the logbuf size massively. But that log should contain everything >>> >> I need to figure out where that framebuffer we're blowing up on is going. >>> > >>> > I provided both with HDMI attached and without (via insmod). If you >>> > want them emailed directly let me know, but they were large. >>> > >>> > Boot with drm.debug=0xff and HDMI connected: >>> > >>> > https://jwboyer.fedorapeople.org/pub/drm-ff-dmesg.txt >>> > >>> > Boot with drm.debug=0xff without HDMI connected and i915 loaded via >>> > manual insmod after boot: >>> > >>> > https://jwboyer.fedorapeople.org/pub/drm-ff-no-hdmi-insmod.txt >>> >>> Here's one more from the macbook I mentioned. It's showing the same >>> kref.h splat: >>> >>> https://jwboyer.fedorapeople.org/pub/drm-ff-macbook.txt >> >> Ok there's at least one fixup for which we've failed to apply when porting >> the fb refcounting fix from -next. Can you please cherry-pick >> >> commit f55548b5af87ebfc586ca75748947f1c1b1a4a52 >> Author: Damien Lespiau >> Date: Thu Feb 5 18:30:20 2015 +0000 >> >> drm/i915: Don't try to reference the fb in get_initial_plane_config() >> >> From linux-next? > > Yes, building now. Will let you know as soon as I test it on both machines. OK, with that commit applied I no longer get the kref.h splat and the NUC machine boots headless. I still see the backtrace below on both the NUC and the macbook. I have a copy of it with drm.debug=0xff from the NUC here: https://jwboyer.fedorapeople.org/pub/nuc-drm-debug-ff-with-fixes.txt Getting better at least :). josh [ +0.000372] [drm] Initialized i915 1.6.0 20150130 for 0000:00:02.0 on minor 0 [ +0.059774] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2 [ +0.012442] fbcon: inteldrmfb (fb0) is primary device [ +0.000103] ------------[ cut here ]------------ [ +0.000024] WARNING: CPU: 1 PID: 109 at drivers/gpu/drm/drm_atomic.c:482 drm_atomic_check_only+0x33d/0x500 [drm]() [ +0.000006] Modules linked in: i915 i2c_algo_bit drm_kms_helper drm sdhci_pci sdhci mmc_core video [ +0.000004] CPU: 1 PID: 109 Comm: kworker/u16:7 Not tainted 4.0.0-0.rc5.git1.3.fc23.x86_64 #1 [ +0.000001] Hardware name: Apple Inc. MacBookPro10,2/Mac-AFD8A9D944EA4843, BIOS MBP102.88Z.0106.B03.1211161133 11/16/2012 [ +0.000005] Workqueue: events_unbound async_run_entry_fn [ +0.000003] 0000000000000000 00000000cbdcc84e ffff8802628bb868 ffffffff8177ada9 [ +0.000002] 0000000000000000 0000000000000000 ffff8802628bb8a8 ffffffff8109c78a [ +0.000002] ffff88026154c940 0000000000000048 ffff880262b1e600 ffff88026229e2a0 [ +0.000001] Call Trace: [ +0.000007] [] dump_stack+0x45/0x57 [ +0.000003] [] warn_slowpath_common+0x8a/0xc0 [ +0.000003] [] warn_slowpath_null+0x1a/0x20 [ +0.000014] [] drm_atomic_check_only+0x33d/0x500 [drm] [ +0.000005] [] ? kmemdup+0x36/0x50 [ +0.000013] [] drm_atomic_commit+0x17/0x60 [drm] [ +0.000008] [] drm_atomic_helper_plane_set_property+0x8d/0xd0 [drm_kms_helper] [ +0.000013] [] drm_mode_plane_set_obj_prop+0x2d/0x90 [drm] [ +0.000006] [] restore_fbdev_mode+0x6b/0xf0 [drm_kms_helper] [ +0.000006] [] drm_fb_helper_restore_fbdev_mode_unlocked+0x29/0x80 [drm_kms_helper] [ +0.000006] [] drm_fb_helper_set_par+0x22/0x50 [drm_kms_helper] [ +0.000042] [] intel_fbdev_set_par+0x1a/0x60 [i915] [ +0.000005] [] fbcon_init+0x578/0x600 [ +0.000005] [] visual_init+0xbc/0x120 [ +0.000004] [] do_bind_con_driver+0x17e/0x3b0 [ +0.000007] [] do_take_over_console+0xb4/0x1b0 [ +0.000013] [] do_fbcon_takeover+0x63/0xd0 [ +0.000003] [] fbcon_event_notify+0x6cd/0x7d0 [ +0.000005] [] notifier_call_chain+0x4f/0x80 [ +0.000003] [] __blocking_notifier_call_chain+0x4b/0x70 [ +0.000002] [] blocking_notifier_call_chain+0x16/0x20 [ +0.000003] [] fb_notifier_call_chain+0x1b/0x20 [ +0.000013] [] register_framebuffer+0x214/0x360 [ +0.000007] [] drm_fb_helper_initial_config+0x264/0x3c0 [drm_kms_helper] [ +0.000004] [] ? pick_next_task_fair+0x121/0x8b0 [ +0.000034] [] intel_fbdev_initial_config+0x1b/0x20 [i915] [ +0.000002] [] async_run_entry_fn+0x4a/0x150 [ +0.000002] [] process_one_work+0x14c/0x400 [ +0.000002] [] worker_thread+0x53/0x470 [ +0.000003] [] ? rescuer_thread+0x300/0x300 [ +0.000002] [] ? rescuer_thread+0x300/0x300 [ +0.000002] [] kthread+0xd8/0xf0 [ +0.000004] [] ? kthread_create_on_node+0x1b0/0x1b0 [ +0.000004] [] ret_from_fork+0x58/0x90 [ +0.000003] [] ? kthread_create_on_node+0x1b0/0x1b0 [ +0.000002] ---[ end trace a73ba186968c6ec8 ]--- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Josh Boyer Subject: Re: [git pull] drm fixes Date: Tue, 24 Mar 2015 12:10:28 -0400 Message-ID: References: <20150324073219.GV1349@phenom.ffwll.local> <20150324134011.GJ1349@phenom.ffwll.local> <20150324143439.GK1349@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Dave Airlie , Intel Graphics Development , "Linux-Kernel@Vger. Kernel. Org" , DRI mailing list , Xi Ruoyao , Linus Torvalds List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXIgMjQsIDIwMTUgYXQgMTA6NDYgQU0sIEpvc2ggQm95ZXIgPGp3Ym95ZXJAZmVk b3JhcHJvamVjdC5vcmc+IHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDI0LCAyMDE1IGF0IDEwOjM0IEFN LCBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3RlOgo+PiBPbiBUdWUsIE1hciAy NCwgMjAxNSBhdCAxMDoyMjozMEFNIC0wNDAwLCBKb3NoIEJveWVyIHdyb3RlOgo+Pj4gT24gVHVl LCBNYXIgMjQsIDIwMTUgYXQgOTo1NyBBTSwgSm9zaCBCb3llciA8andib3llckBmZWRvcmFwcm9q ZWN0Lm9yZz4gd3JvdGU6Cj4+PiA+IE9uIFR1ZSwgTWFyIDI0LCAyMDE1IGF0IDk6NDAgQU0sIERh bmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4gd3JvdGU6Cj4+PiA+PiBPbiBUdWUsIE1hciAy NCwgMjAxNSBhdCAwOToxNTozMkFNIC0wNDAwLCBKb3NoIEJveWVyIHdyb3RlOgo+Pj4gPj4+IE9u IFR1ZSwgTWFyIDI0LCAyMDE1IGF0IDM6MzIgQU0sIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZnds bC5jaD4gd3JvdGU6Cj4+PiA+Pj4gPiBPbiBNb24sIE1hciAyMywgMjAxNSBhdCAwMjozNDoyN1BN IC0wNDAwLCBKb3NoIEJveWVyIHdyb3RlOgo+Pj4gPj4+ID4+IE9uIE1vbiwgTWFyIDIzLCAyMDE1 IGF0IDExOjMzIEFNLCBKb3NoIEJveWVyIDxqd2JveWVyQGZlZG9yYXByb2plY3Qub3JnPiB3cm90 ZToKPj4+ID4+PiA+Pgo+Pj4gPj4+ID4+IDxzbmlwPgo+Pj4gPj4+ID4+Cj4+PiA+Pj4gPj4gPj4g WGkgUnVveWFvICgxKToKPj4+ID4+PiA+PiA+PiAgICAgICBkcm0vaTkxNTogRW5zdXJlIHBsYW5l LT5zdGF0ZS0+ZmIgc3RheXMgaW4gc3luYyB3aXRoIHBsYW5lLT5mYgo+Pj4gPj4+ID4+Cj4+PiA+ Pj4gPj4gVHVybnMgb3V0IHRvIGJlIHRoYXQgY29tbWl0Lgo+Pj4gPj4+ID4+Cj4+PiA+Pj4gPj4g Z2l0IGJpc2VjdCBzdGFydCAnZHJpdmVycy9ncHUvZHJtL2k5MTUvJwo+Pj4gPj4+ID4+ICMgZ29v ZDogW2IzMTRhY2FjY2Q3ZTBkNTUzMTRkOTZiZTRhMzNiNWY1MGQwYjMzNDRdIE1lcmdlIGJyYW5j aAo+Pj4gPj4+ID4+ICdmb3ItbGludXMnIG9mIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20v bGludXgva2VybmVsL2dpdC9kdG9yL2lucHV0Cj4+PiA+Pj4gPj4gZ2l0IGJpc2VjdCBnb29kIGIz MTRhY2FjY2Q3ZTBkNTUzMTRkOTZiZTRhMzNiNWY1MGQwYjMzNDQKPj4+ID4+PiA+PiAjIGJhZDog W2JjNDY1YWE5ZDA0NWZlYjBlMTNiNGE4ZjMyY2MzM2MxOTQzZjYyZDZdIExpbnV4IDQuMC1yYzUK Pj4+ID4+PiA+PiBnaXQgYmlzZWN0IGJhZCBiYzQ2NWFhOWQwNDVmZWIwZTEzYjRhOGYzMmNjMzNj MTk0M2Y2MmQ2Cj4+PiA+Pj4gPj4gIyBiYWQ6IFszMTljMWQ0MjBhMGI2MmQ5ZGJiODgxMDRhZmVi YWFiYzk2OGNkYmZhXSBkcm0vaTkxNTogRW5zdXJlCj4+PiA+Pj4gPj4gcGxhbmUtPnN0YXRlLT5m YiBzdGF5cyBpbiBzeW5jIHdpdGggcGxhbmUtPmZiCj4+PiA+Pj4gPj4gZ2l0IGJpc2VjdCBiYWQg MzE5YzFkNDIwYTBiNjJkOWRiYjg4MTA0YWZlYmFhYmM5NjhjZGJmYQo+Pj4gPj4+ID4+ICMgZmly c3QgYmFkIGNvbW1pdDogWzMxOWMxZDQyMGEwYjYyZDlkYmI4ODEwNGFmZWJhYWJjOTY4Y2RiZmFd Cj4+PiA+Pj4gPj4gZHJtL2k5MTU6IEVuc3VyZSBwbGFuZS0+c3RhdGUtPmZiIHN0YXlzIGluIHN5 bmMgd2l0aCBwbGFuZS0+ZmIKPj4+ID4+PiA+Pgo+Pj4gPj4+ID4+IERvaW5nIGEgc3RyYWlnaHQg cmV2ZXJ0IG9uIHRvcCBvZiA0LjAtcmM1IG1ha2VzIHRoaW5ncyB3b3JrIGFnYWluLAo+Pj4gPj4+ ID4+IGFsYmVpdCB3aXRoIHRoZSBXQVJOX09OKG9iai0+ZnJvbnRidWZmZXJfYml0cykgc3BsYXQg c3RpbGwgYmVpbmcKPj4+ID4+PiA+PiB0aGVyZS4KPj4+ID4+PiA+Cj4+PiA+Pj4gPiBDYW4geW91 IHBsZWFzZSB0ZXN0IHRoZSB0aXAgb2YgZHJtLWZpeGVzOgo+Pj4gPj4+ID4KPj4+ID4+PiA+IGNv bW1pdCA4MjE4YzNmNGRmM2JiMWM2MzdjMTc1NTI0MDUwMzlhNmRkM2MxZWUxCj4+PiA+Pj4gPiBB dXRob3I6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4+PiA+Pj4gPiBE YXRlOiAgIEZyaSBGZWIgMjcgMTI6NTg6MTMgMjAxNSArMDEwMAo+Pj4gPj4+ID4KPj4+ID4+PiA+ ICAgICBkcm06IEZpeHVwIHJhY3kgcmVmY291bnRpbmcgaW4gcGxhbmVfZm9yY2VfZGlzYWJsZQo+ Pj4gPj4+ID4KPj4+ID4+PiA+IGh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy9+YWlybGllZC9s aW51eC9jb21taXQvP2g9ZHJtLWZpeGVzJmlkPTgyMThjM2Y0ZGYzYmIxYzYzN2MxNzU1MjQwNTAz OWE2ZGQzYzFlZTEKPj4+ID4+PiA+Cj4+PiA+Pj4gPiBCZWNhdXNlIGZ1bWJsZSB0aGF0IHBhdGNo IGRpZG4ndCBtYWtlIGl0IHRvIGRybS1maXhlcyBhIHdoaWxlIGFnbyBhbmQKPj4+ID4+PiA+IGlu c3RlYWQgbGFuZGVkIGluIGRybS1uZXh0Lgo+Pj4gPj4+Cj4+PiA+Pj4gVGhhdCBzZWVtcyB0byBo YXZlIGhlbHBlZCB3aXRoIHRvdGFsbHkgZGlmZmVyZW50IGlzc3VlcyBhIG1hY2Jvb2sgSQo+Pj4g Pj4+IGhhdmUgd2FzIHNlZWluZy4gIEhvd2V2ZXIsIGl0IHN0aWxsIGRvZXNuJ3QgZml4IHRoZSBp c3N1ZSB3aXRoIHRoZQo+Pj4gPj4+IENlbGVyb24gYmFzZWQgTlVDIG1hY2hpbmUuCj4+PiA+Pj4K Pj4+ID4+PiBJIGJ1aWx0IGEga2VybmVsIGJhc2VkIG9uIExpbnVzJyBsYXRlc3QgdHJlZSBhcyBv ZiB0aGlzIG1vcm5pbmcsCj4+PiA+Pj4gd2l0aG91dCByZXZlcnRpbmcgMzE5YzFkNCBhbmQgYWRk aW5nIHRoZSBjb21taXQgeW91IHBvaW50ZWQgdG8uICBUaGUKPj4+ID4+PiBOVUMgc3RpbGwgd29u J3QgYm9vdCB3aXRob3V0IEhETUkgY29ubmVjdGVkLiAgV2l0aCBIRE1JIGNvbm5lY3RlZCBJCj4+ PiA+Pj4gc3RpbGwgc2VlIHRoZSB0cmFjZSBiZWxvdy4gIElmIEkgZG8gdGhlIGJsYWNrbGlzdCBh bmQgdGhlbiBpbnNtb2QKPj4+ID4+PiBkYW5jZSB3aXRoIEhETUkgdW5wbHVnZ2VkIGl0IHNob3dz IHRoZSBzYW1lIHNwZXcgSSByZXBvcnRlZCB5ZXN0ZXJkYXkKPj4+ID4+PiB3aGljaCBzdGFydHMg d2l0aCB0aGUgc2FtZSBiYWNrdHJhY2UuCj4+PiA+Pj4KPj4+ID4+PiBJJ2xsIHRyeSBidWlsZGlu ZyBhIGtlcm5lbCB3aXRoIDMxOWMxZDQgcmV2ZXJ0ZWQgKyB5b3VyIHBhdGNoLiAgSQo+Pj4gPj4+ IHN1c3BlY3QgdGhpbmdzIHdpbGwgd29yayBmaW5lIHdpdGggdGhhdCBjb21iaW5hdGlvbiBiZWNh dXNlIHRoZSB0d28KPj4+ID4+PiBpc3N1ZXMgYXJlIHVucmVsYXRlZC4KPj4+ID4+Cj4+PiA+PiBD YW4geW91IHBsZWFzZSBib290IHdpdGggZHJtLmRlYnVnPTB4ZmYgZm9yIHRoZSBiZWxvdyBjYXNl IGFuZCBncmFiCj4+PiA+PiBjb21wbGV0ZSBkbWVzZz8gVGhlcmUnbGwgYmUgYSBsb3Qgb2YgY3Jh cCBpbiB0aGUgbG9ncywgeW91IG1pZ2h0IG5lZWQgdG8KPj4+ID4+IGJsb3cgdXAgdGhlIGxvZ2J1 ZiBzaXplIG1hc3NpdmVseS4gQnV0IHRoYXQgbG9nIHNob3VsZCBjb250YWluIGV2ZXJ5dGhpbmcK Pj4+ID4+IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoYXQgZnJhbWVidWZmZXIgd2UncmUg Ymxvd2luZyB1cCBvbiBpcyBnb2luZy4KPj4+ID4KPj4+ID4gSSBwcm92aWRlZCBib3RoIHdpdGgg SERNSSBhdHRhY2hlZCBhbmQgd2l0aG91dCAodmlhIGluc21vZCkuICBJZiB5b3UKPj4+ID4gd2Fu dCB0aGVtIGVtYWlsZWQgZGlyZWN0bHkgbGV0IG1lIGtub3csIGJ1dCB0aGV5IHdlcmUgbGFyZ2Uu Cj4+PiA+Cj4+PiA+IEJvb3Qgd2l0aCBkcm0uZGVidWc9MHhmZiBhbmQgSERNSSBjb25uZWN0ZWQ6 Cj4+PiA+Cj4+PiA+IGh0dHBzOi8vandib3llci5mZWRvcmFwZW9wbGUub3JnL3B1Yi9kcm0tZmYt ZG1lc2cudHh0Cj4+PiA+Cj4+PiA+IEJvb3Qgd2l0aCBkcm0uZGVidWc9MHhmZiB3aXRob3V0IEhE TUkgY29ubmVjdGVkIGFuZCBpOTE1IGxvYWRlZCB2aWEKPj4+ID4gbWFudWFsIGluc21vZCBhZnRl ciBib290Ogo+Pj4gPgo+Pj4gPiBodHRwczovL2p3Ym95ZXIuZmVkb3JhcGVvcGxlLm9yZy9wdWIv ZHJtLWZmLW5vLWhkbWktaW5zbW9kLnR4dAo+Pj4KPj4+IEhlcmUncyBvbmUgbW9yZSBmcm9tIHRo ZSBtYWNib29rIEkgbWVudGlvbmVkLiAgSXQncyBzaG93aW5nIHRoZSBzYW1lCj4+PiBrcmVmLmgg c3BsYXQ6Cj4+Pgo+Pj4gaHR0cHM6Ly9qd2JveWVyLmZlZG9yYXBlb3BsZS5vcmcvcHViL2RybS1m Zi1tYWNib29rLnR4dAo+Pgo+PiBPayB0aGVyZSdzIGF0IGxlYXN0IG9uZSBmaXh1cCBmb3Igd2hp Y2ggd2UndmUgZmFpbGVkIHRvIGFwcGx5IHdoZW4gcG9ydGluZwo+PiB0aGUgZmIgcmVmY291bnRp bmcgZml4IGZyb20gLW5leHQuIENhbiB5b3UgcGxlYXNlIGNoZXJyeS1waWNrCj4+Cj4+IGNvbW1p dCBmNTU1NDhiNWFmODdlYmZjNTg2Y2E3NTc0ODk0N2YxYzFiMWE0YTUyCj4+IEF1dGhvcjogRGFt aWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGludGVsLmNvbT4KPj4gRGF0ZTogICBUaHUgRmVi IDUgMTg6MzA6MjAgMjAxNSArMDAwMAo+Pgo+PiAgICAgZHJtL2k5MTU6IERvbid0IHRyeSB0byBy ZWZlcmVuY2UgdGhlIGZiIGluIGdldF9pbml0aWFsX3BsYW5lX2NvbmZpZygpCj4+Cj4+IEZyb20g bGludXgtbmV4dD8KPgo+IFllcywgYnVpbGRpbmcgbm93LiAgV2lsbCBsZXQgeW91IGtub3cgYXMg c29vbiBhcyBJIHRlc3QgaXQgb24gYm90aCBtYWNoaW5lcy4KCk9LLCB3aXRoIHRoYXQgY29tbWl0 IGFwcGxpZWQgSSBubyBsb25nZXIgZ2V0IHRoZSBrcmVmLmggc3BsYXQgYW5kIHRoZQpOVUMgbWFj aGluZSBib290cyBoZWFkbGVzcy4gIEkgc3RpbGwgc2VlIHRoZSBiYWNrdHJhY2UgYmVsb3cgb24g Ym90aAp0aGUgTlVDIGFuZCB0aGUgbWFjYm9vay4gIEkgaGF2ZSBhIGNvcHkgb2YgaXQgd2l0aCBk cm0uZGVidWc9MHhmZiBmcm9tCnRoZSBOVUMgaGVyZToKCmh0dHBzOi8vandib3llci5mZWRvcmFw ZW9wbGUub3JnL3B1Yi9udWMtZHJtLWRlYnVnLWZmLXdpdGgtZml4ZXMudHh0CgpHZXR0aW5nIGJl dHRlciBhdCBsZWFzdCA6KS4KCmpvc2gKClsgICswLjAwMDM3Ml0gW2RybV0gSW5pdGlhbGl6ZWQg aTkxNSAxLjYuMCAyMDE1MDEzMCBmb3IgMDAwMDowMDowMi4wIG9uIG1pbm9yIDAKWyAgKzAuMDU5 Nzc0XSBbZHJtXSBHTUJVUyBbaTkxNSBnbWJ1cyB2Z2FdIHRpbWVkIG91dCwgZmFsbGluZyBiYWNr IHRvCmJpdCBiYW5naW5nIG9uIHBpbiAyClsgICswLjAxMjQ0Ml0gZmJjb246IGludGVsZHJtZmIg KGZiMCkgaXMgcHJpbWFyeSBkZXZpY2UKWyAgKzAuMDAwMTAzXSAtLS0tLS0tLS0tLS1bIGN1dCBo ZXJlIF0tLS0tLS0tLS0tLS0KWyAgKzAuMDAwMDI0XSBXQVJOSU5HOiBDUFU6IDEgUElEOiAxMDkg YXQKZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYzo0ODIgZHJtX2F0b21pY19jaGVja19vbmx5 KzB4MzNkLzB4NTAwCltkcm1dKCkKWyAgKzAuMDAwMDA2XSBNb2R1bGVzIGxpbmtlZCBpbjogaTkx NSBpMmNfYWxnb19iaXQgZHJtX2ttc19oZWxwZXIgZHJtCnNkaGNpX3BjaSBzZGhjaSBtbWNfY29y ZSB2aWRlbwpbICArMC4wMDAwMDRdIENQVTogMSBQSUQ6IDEwOSBDb21tOiBrd29ya2VyL3UxNjo3 IE5vdCB0YWludGVkCjQuMC4wLTAucmM1LmdpdDEuMy5mYzIzLng4Nl82NCAjMQpbICArMC4wMDAw MDFdIEhhcmR3YXJlIG5hbWU6IEFwcGxlIEluYy4KTWFjQm9va1BybzEwLDIvTWFjLUFGRDhBOUQ5 NDRFQTQ4NDMsIEJJT1MKTUJQMTAyLjg4Wi4wMTA2LkIwMy4xMjExMTYxMTMzIDExLzE2LzIwMTIK WyAgKzAuMDAwMDA1XSBXb3JrcXVldWU6IGV2ZW50c191bmJvdW5kIGFzeW5jX3J1bl9lbnRyeV9m bgpbICArMC4wMDAwMDNdICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwY2JkY2M4NGUgZmZmZjg4 MDI2MjhiYjg2OApmZmZmZmZmZjgxNzdhZGE5ClsgICswLjAwMDAwMl0gIDAwMDAwMDAwMDAwMDAw MDAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMjYyOGJiOGE4CmZmZmZmZmZmODEwOWM3OGEKWyAg KzAuMDAwMDAyXSAgZmZmZjg4MDI2MTU0Yzk0MCAwMDAwMDAwMDAwMDAwMDQ4IGZmZmY4ODAyNjJi MWU2MDAKZmZmZjg4MDI2MjI5ZTJhMApbICArMC4wMDAwMDFdIENhbGwgVHJhY2U6ClsgICswLjAw MDAwN10gIFs8ZmZmZmZmZmY4MTc3YWRhOT5dIGR1bXBfc3RhY2srMHg0NS8weDU3ClsgICswLjAw MDAwM10gIFs8ZmZmZmZmZmY4MTA5Yzc4YT5dIHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4OGEvMHhj MApbICArMC4wMDAwMDNdICBbPGZmZmZmZmZmODEwOWM4YmE+XSB3YXJuX3Nsb3dwYXRoX251bGwr MHgxYS8weDIwClsgICswLjAwMDAxNF0gIFs8ZmZmZmZmZmZhMDA3MDBlZD5dIGRybV9hdG9taWNf Y2hlY2tfb25seSsweDMzZC8weDUwMCBbZHJtXQpbICArMC4wMDAwMDVdICBbPGZmZmZmZmZmODEx YmMwYTY+XSA/IGttZW1kdXArMHgzNi8weDUwClsgICswLjAwMDAxM10gIFs8ZmZmZmZmZmZhMDA3 MDJjNz5dIGRybV9hdG9taWNfY29tbWl0KzB4MTcvMHg2MCBbZHJtXQpbICArMC4wMDAwMDhdICBb PGZmZmZmZmZmYTAwYzM3MWQ+XQpkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9zZXRfcHJvcGVydHkr MHg4ZC8weGQwIFtkcm1fa21zX2hlbHBlcl0KWyAgKzAuMDAwMDEzXSAgWzxmZmZmZmZmZmEwMDVl ODlkPl0gZHJtX21vZGVfcGxhbmVfc2V0X29ial9wcm9wKzB4MmQvMHg5MCBbZHJtXQpbICArMC4w MDAwMDZdICBbPGZmZmZmZmZmYTAwYzU1MGI+XSByZXN0b3JlX2ZiZGV2X21vZGUrMHg2Yi8weGYw Cltkcm1fa21zX2hlbHBlcl0KWyAgKzAuMDAwMDA2XSAgWzxmZmZmZmZmZmEwMGM3NWM5Pl0KZHJt X2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQrMHgyOS8weDgwIFtkcm1fa21z X2hlbHBlcl0KWyAgKzAuMDAwMDA2XSAgWzxmZmZmZmZmZmEwMGM3NjQyPl0gZHJtX2ZiX2hlbHBl cl9zZXRfcGFyKzB4MjIvMHg1MApbZHJtX2ttc19oZWxwZXJdClsgICswLjAwMDA0Ml0gIFs8ZmZm ZmZmZmZhMDE2OTU5YT5dIGludGVsX2ZiZGV2X3NldF9wYXIrMHgxYS8weDYwIFtpOTE1XQpbICAr MC4wMDAwMDVdICBbPGZmZmZmZmZmODE0MGMzMjg+XSBmYmNvbl9pbml0KzB4NTc4LzB4NjAwClsg ICswLjAwMDAwNV0gIFs8ZmZmZmZmZmY4MTQ4Y2VhYz5dIHZpc3VhbF9pbml0KzB4YmMvMHgxMjAK WyAgKzAuMDAwMDA0XSAgWzxmZmZmZmZmZjgxNDhmODRlPl0gZG9fYmluZF9jb25fZHJpdmVyKzB4 MTdlLzB4M2IwClsgICswLjAwMDAwN10gIFs8ZmZmZmZmZmY4MTQ4ZmZkND5dIGRvX3Rha2Vfb3Zl cl9jb25zb2xlKzB4YjQvMHgxYjAKWyAgKzAuMDAwMDEzXSAgWzxmZmZmZmZmZjgxNDA3MTYzPl0g ZG9fZmJjb25fdGFrZW92ZXIrMHg2My8weGQwClsgICswLjAwMDAwM10gIFs8ZmZmZmZmZmY4MTQw Y2U0ZD5dIGZiY29uX2V2ZW50X25vdGlmeSsweDZjZC8weDdkMApbICArMC4wMDAwMDVdICBbPGZm ZmZmZmZmODEwYmMxOGY+XSBub3RpZmllcl9jYWxsX2NoYWluKzB4NGYvMHg4MApbICArMC4wMDAw MDNdICBbPGZmZmZmZmZmODEwYmM1MGI+XSBfX2Jsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4r MHg0Yi8weDcwClsgICswLjAwMDAwMl0gIFs8ZmZmZmZmZmY4MTBiYzU0Nj5dIGJsb2NraW5nX25v dGlmaWVyX2NhbGxfY2hhaW4rMHgxNi8weDIwClsgICswLjAwMDAwM10gIFs8ZmZmZmZmZmY4MTQx MmRiYj5dIGZiX25vdGlmaWVyX2NhbGxfY2hhaW4rMHgxYi8weDIwClsgICswLjAwMDAxM10gIFs8 ZmZmZmZmZmY4MTQxNTE4ND5dIHJlZ2lzdGVyX2ZyYW1lYnVmZmVyKzB4MjE0LzB4MzYwClsgICsw LjAwMDAwN10gIFs8ZmZmZmZmZmZhMDBjNzhkND5dCmRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25m aWcrMHgyNjQvMHgzYzAgW2RybV9rbXNfaGVscGVyXQpbICArMC4wMDAwMDRdICBbPGZmZmZmZmZm ODEwZDg0MDE+XSA/IHBpY2tfbmV4dF90YXNrX2ZhaXIrMHgxMjEvMHg4YjAKWyAgKzAuMDAwMDM0 XSAgWzxmZmZmZmZmZmEwMTZhODliPl0gaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25maWcrMHgxYi8w eDIwIFtpOTE1XQpbICArMC4wMDAwMDJdICBbPGZmZmZmZmZmODEwYmRkMWE+XSBhc3luY19ydW5f ZW50cnlfZm4rMHg0YS8weDE1MApbICArMC4wMDAwMDJdICBbPGZmZmZmZmZmODEwYjU1MmM+XSBw cm9jZXNzX29uZV93b3JrKzB4MTRjLzB4NDAwClsgICswLjAwMDAwMl0gIFs8ZmZmZmZmZmY4MTBi NWZiMz5dIHdvcmtlcl90aHJlYWQrMHg1My8weDQ3MApbICArMC4wMDAwMDNdICBbPGZmZmZmZmZm ODEwYjVmNjA+XSA/IHJlc2N1ZXJfdGhyZWFkKzB4MzAwLzB4MzAwClsgICswLjAwMDAwMl0gIFs8 ZmZmZmZmZmY4MTBiNWY2MD5dID8gcmVzY3Vlcl90aHJlYWQrMHgzMDAvMHgzMDAKWyAgKzAuMDAw MDAyXSAgWzxmZmZmZmZmZjgxMGJiMWY4Pl0ga3RocmVhZCsweGQ4LzB4ZjAKWyAgKzAuMDAwMDA0 XSAgWzxmZmZmZmZmZjgxMGJiMTIwPl0gPyBrdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKzB4MWIwLzB4 MWIwClsgICswLjAwMDAwNF0gIFs8ZmZmZmZmZmY4MTc4MTQ1OD5dIHJldF9mcm9tX2ZvcmsrMHg1 OC8weDkwClsgICswLjAwMDAwM10gIFs8ZmZmZmZmZmY4MTBiYjEyMD5dID8ga3RocmVhZF9jcmVh dGVfb25fbm9kZSsweDFiMC8weDFiMApbICArMC4wMDAwMDJdIC0tLVsgZW5kIHRyYWNlIGE3M2Jh MTg2OTY4YzZlYzggXS0tLQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=