From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751220AbWGGPnr (ORCPT ); Fri, 7 Jul 2006 11:43:47 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751221AbWGGPnr (ORCPT ); Fri, 7 Jul 2006 11:43:47 -0400 Received: from mx1.redhat.com ([66.187.233.31]:7102 "EHLO mx1.redhat.com") by vger.kernel.org with ESMTP id S1751220AbWGGPno (ORCPT ); Fri, 7 Jul 2006 11:43:44 -0400 Subject: Re: lockdep: bdev->bd_mutex deadlock From: Peter Jones To: Arjan van de Ven Cc: mingo@elte.hu, linux-kernel , Dave Jones In-Reply-To: <1152257687.3111.23.camel@laptopd505.fenrus.org> References: <1152221477.25480.9.camel@localhost.localdomain> <1152257687.3111.23.camel@laptopd505.fenrus.org> Content-Type: multipart/mixed; boundary="=-1WJ+y2z8JfZEOEZN7y/q" Organization: Red Hat, Inc. Date: Fri, 07 Jul 2006 11:43:23 -0400 Message-Id: <1152287003.14409.2.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.7.3 (2.7.3-7) Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --=-1WJ+y2z8JfZEOEZN7y/q Content-Type: text/plain Content-Transfer-Encoding: 7bit On Fri, 2006-07-07 at 09:34 +0200, Arjan van de Ven wrote: > > <4> [] __blkdev_put+0x22/0x123 > > <4> [] blkdev_put+0xa/0xc > > <4> [] do_open+0x313/0x385 > > <4> [] blkdev_open+0x1f/0x48 > > ok this is a missing annotation in the error path > > the patch below should fix this, can you verify this? Seems to have fixed it. I different one this morning (I'm assuming it's unrelated): <4>============================================= <4>[ INFO: possible recursive locking detected ] <4>--------------------------------------------- <4>parted/525 is trying to acquire lock: <4> (&bdev->bd_mutex){--..}, at: [] mutex_lock+0x21/0x24 <4> <4>but task is already holding lock: <4> (&bdev->bd_mutex){--..}, at: [] mutex_lock+0x21/0x24 <4> <4>other info that might help us debug this: <4>1 lock held by parted/525: <4> #0: (&bdev->bd_mutex){--..}, at: [] mutex_lock+0x21/0x24 <4> <4>stack backtrace: <4> [] show_trace_log_lvl+0x54/0xfd <4> [] show_trace+0xd/0x10 <4> [] dump_stack+0x19/0x1b <4> [] __lock_acquire+0x760/0x987 <4> [] lock_acquire+0x4b/0x6d <4> [] __mutex_lock_slowpath+0xb6/0x22d <4> [] mutex_lock+0x21/0x24 <4> [] blkdev_ioctl+0x5dd/0x732 <4> [] block_ioctl+0x16/0x1b <4> [] do_ioctl+0x19/0x50 <4> [] vfs_ioctl+0x200/0x217 <4> [] sys_ioctl+0x47/0x61 <4> [] syscall_call+0x7/0xb I'm not sure I can reproduce this one reliably :/ . Again, the whole dmesg is attached. -- Peter --=-1WJ+y2z8JfZEOEZN7y/q Content-Disposition: attachment; filename=dmesg.txt Content-Transfer-Encoding: base64 Content-Type: text/plain; name=dmesg.txt; charset=utf-8 MTAgMTEgMTIpDQo8ND5BQ1BJOiBQQ0kgSW50ZXJydXB0IExpbmsgW0xOS1ddIChJUlFzICo0OCks IGRpc2FibGVkLg0KPDQ+QUNQSTogUENJIEludGVycnVwdCBMaW5rIFtMTktYXSAoSVJRcyAqNDkp LCBkaXNhYmxlZC4NCjw0PkFDUEk6IFBDSSBJbnRlcnJ1cHQgTGluayBbTE5LWV0gKElSUXMgKjUw KSwgZGlzYWJsZWQuDQo8ND5BQ1BJOiBQQ0kgSW50ZXJydXB0IExpbmsgW0xOS1pdIChJUlFzICo1 MSksIGRpc2FibGVkLg0KPDQ+QUNQSTogUENJIEludGVycnVwdCBMaW5rIFtMU01CXSAoSVJRcyAz IDQgNSA2IDcgMTAgKjExIDEyKQ0KPDQ+QUNQSTogUENJIEludGVycnVwdCBMaW5rIFtMU0IwXSAo SVJRcyAzIDQgKjUgNiA3IDEwIDExIDEyKQ0KPDQ+QUNQSTogUENJIEludGVycnVwdCBMaW5rIFtM U0IyXSAoSVJRcyAzIDQgNSA2IDcgKjEwIDExIDEyKQ0KPDQ+QUNQSTogUENJIEludGVycnVwdCBM aW5rIFtMTUFDXSAoSVJRcyAzIDQgNSA2IDcgMTAgKjExIDEyKQ0KPDQ+QUNQSTogUENJIEludGVy cnVwdCBMaW5rIFtMQUNJXSAoSVJRcyAzIDQgNSA2IDcgMTAgKjExIDEyKQ0KPDQ+QUNQSTogUENJ IEludGVycnVwdCBMaW5rIFtMTUNJXSAoSVJRcyAzIDQgNSA2IDcgMTAgMTEgMTIpICowLCBkaXNh YmxlZC4NCjw0PkFDUEk6IFBDSSBJbnRlcnJ1cHQgTGluayBbTElERV0gKElSUXMgMyA0IDUgNiA3 IDEwIDExIDEyKSAqMCwgZGlzYWJsZWQuDQo8ND5BQ1BJOiBQQ0kgSW50ZXJydXB0IExpbmsgW0xT QTBdIChJUlFzIDMgNCA1IDYgNyAxMCAxMSAxMikgKjAsIGRpc2FibGVkLg0KPDQ+QUNQSTogUENJ IEludGVycnVwdCBMaW5rIFtMU0ExXSAoSVJRcyAzIDQgNSA2IDcgMTAgMTEgMTIpICowLCBkaXNh YmxlZC4NCjw2PkxpbnV4IFBsdWcgYW5kIFBsYXkgU3VwcG9ydCB2MC45NyAoYykgQWRhbSBCZWxh eQ0KPDY+cG5wOiBQblAgQUNQSSBpbml0DQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1czpw bnAwDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIHBucDowMDowMA0KPDc+UE06IEFkZGluZyBpbmZv IGZvciBwbnA6MDA6MDENCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgcG5wOjAwOjAyDQo8Nz5QTTog QWRkaW5nIGluZm8gZm9yIHBucDowMDowMw0KPDc+UE06IEFkZGluZyBpbmZvIGZvciBwbnA6MDA6 MDQNCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgcG5wOjAwOjA1DQo8Nz5QTTogQWRkaW5nIGluZm8g Zm9yIHBucDowMDowNg0KPDc+UE06IEFkZGluZyBpbmZvIGZvciBwbnA6MDA6MDcNCjw3PlBNOiBB ZGRpbmcgaW5mbyBmb3IgcG5wOjAwOjA4DQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIHBucDowMDow OQ0KPDc+UE06IEFkZGluZyBpbmZvIGZvciBwbnA6MDA6MGENCjw3PlBNOiBBZGRpbmcgaW5mbyBm b3IgcG5wOjAwOjBiDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIHBucDowMDowYw0KPDc+UE06IEFk ZGluZyBpbmZvIGZvciBwbnA6MDA6MGQNCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgcG5wOjAwOjBl DQo8Nj5wbnA6IFBuUCBBQ1BJOiBmb3VuZCAxNSBkZXZpY2VzDQo8Nj51c2Jjb3JlOiByZWdpc3Rl cmVkIG5ldyBkcml2ZXIgdXNiZnMNCjw2PnVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGRyaXZlciBo dWINCjw2PlBDSTogVXNpbmcgQUNQSSBmb3IgSVJRIHJvdXRpbmcNCjw2PlBDSTogSWYgYSBkZXZp Y2UgZG9lc24ndCB3b3JrLCB0cnkgInBjaT1yb3V0ZWlycSIuICBJZiBpdCBoZWxwcywgcG9zdCBh IHJlcG9ydA0KPDQ+UENJOiBCSU9TIHJlcG9ydGluZyB1bmtub3duIGRldmljZSA4MDowMA0KPDY+ cG5wOiAwMDowYTogaW9wb3J0IHJhbmdlIDB4NGQwLTB4NGQxIGhhcyBiZWVuIHJlc2VydmVkDQo8 Nj5wbnA6IDAwOjBiOiBpb3BvcnQgcmFuZ2UgMHg0MDAtMHg0N2YgY291bGQgbm90IGJlIHJlc2Vy dmVkDQo8Nj5wbnA6IDAwOjBiOiBpb3BvcnQgcmFuZ2UgMHg0ODAtMHg0OGYgaGFzIGJlZW4gcmVz ZXJ2ZWQNCjw2PnBucDogMDA6MGI6IGlvcG9ydCByYW5nZSAweGY4MDAtMHhmODdmIGNvdWxkIG5v dCBiZSByZXNlcnZlZA0KPDY+cG5wOiAwMDowYjogaW9wb3J0IHJhbmdlIDB4Zjg4MC0weGY4ZmYg aGFzIGJlZW4gcmVzZXJ2ZWQNCjw2PnBucDogMDA6MGI6IGlvcG9ydCByYW5nZSAweGY5MDAtMHhm OTdmIGhhcyBiZWVuIHJlc2VydmVkDQo8Nj5wbnA6IDAwOjBiOiBpb3BvcnQgcmFuZ2UgMHhmOTgw LTB4ZjlmZiBoYXMgYmVlbiByZXNlcnZlZA0KPDY+cG5wOiAwMDowYjogaW9wb3J0IHJhbmdlIDB4 ZmEwMC0weGZhN2YgaGFzIGJlZW4gcmVzZXJ2ZWQNCjw2PnBucDogMDA6MGI6IGlvcG9ydCByYW5n ZSAweGZhODAtMHhmYWZmIGhhcyBiZWVuIHJlc2VydmVkDQo8Nj5QQ0k6IEJyaWRnZTogMDAwMDow MDowOS4wDQo8Nj4gIElPIHdpbmRvdzogZGlzYWJsZWQuDQo8Nj4gIE1FTSB3aW5kb3c6IGYyMDAw MDAwLWYyMGZmZmZmDQo8Nj4gIFBSRUZFVENIIHdpbmRvdzogZGlzYWJsZWQuDQo8Mz5QQ0k6IEZh aWxlZCB0byBhbGxvY2F0ZSBtZW0gcmVzb3VyY2UgIzY6MjAwMDBAZTAwMDAwMDAgZm9yIDAwMDA6 MGE6MDAuMA0KPDY+UENJOiBCcmlkZ2U6IDAwMDA6MDA6MGUuMA0KPDY+ICBJTyB3aW5kb3c6IGRp c2FibGVkLg0KPDY+ICBNRU0gd2luZG93OiBmMDAwMDAwMC1mMWZmZmZmZg0KPDY+ICBQUkVGRVRD SCB3aW5kb3c6IGQwMDAwMDAwLWRmZmZmZmZmDQo8Nz5QQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1l ciBvZiBkZXZpY2UgMDAwMDowMDowOS4wIHRvIDY0DQo8Nz5EZXZpY2UgYFtFWFBBXScgaXMgbm90 IHBvd2VyIG1hbmFnZWFibGU8Nz5QQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2Ug MDAwMDowMDowZS4wIHRvIDY0DQo8Nj5ORVQ6IFJlZ2lzdGVyZWQgcHJvdG9jb2wgZmFtaWx5IDIN Cjw0PklQIHJvdXRlIGNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMzI3NjggKG9yZGVyOiA1LCAx MzEwNzIgYnl0ZXMpDQo8ND5UQ1AgZXN0YWJsaXNoZWQgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUz NiAob3JkZXI6IDksIDI2MjE0NDAgYnl0ZXMpDQo8ND5UQ1AgYmluZCBoYXNoIHRhYmxlIGVudHJp ZXM6IDMyNzY4IChvcmRlcjogOCwgMTQ0MTc5MiBieXRlcykNCjw2PlRDUDogSGFzaCB0YWJsZXMg Y29uZmlndXJlZCAoZXN0YWJsaXNoZWQgNjU1MzYgYmluZCAzMjc2OCkNCjw2PlRDUCByZW5vIHJl Z2lzdGVyZWQNCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgcGxhdGZvcm06cGNzcGtyDQo8Nj5hcG06 IEJJT1Mgbm90IGZvdW5kLg0KPDY+YXVkaXQ6IGluaXRpYWxpemluZyBuZXRsaW5rIHNvY2tldCAo ZGlzYWJsZWQpDQo8NT5hdWRpdCgxMTUyMjY3NzA1Ljg2MDoxKTogaW5pdGlhbGl6ZWQNCjw0PlRv dGFsIEh1Z2VUTEIgbWVtb3J5IGFsbG9jYXRlZCwgMA0KPDU+VkZTOiBEaXNrIHF1b3RhcyBkcXVv dF82LjUuMQ0KPDQ+RHF1b3QtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAxMDI0IChvcmRlciAw LCA0MDk2IGJ5dGVzKQ0KPDY+U0VMaW51eDogIFJlZ2lzdGVyaW5nIG5ldGZpbHRlciBob29rcw0K PDY+SW5pdGlhbGl6aW5nIENyeXB0b2dyYXBoaWMgQVBJDQo8Nj5pbyBzY2hlZHVsZXIgbm9vcCBy ZWdpc3RlcmVkDQo8Nj5pbyBzY2hlZHVsZXIgYW50aWNpcGF0b3J5IHJlZ2lzdGVyZWQNCjw2Pmlv IHNjaGVkdWxlciBkZWFkbGluZSByZWdpc3RlcmVkDQo8Nj5pbyBzY2hlZHVsZXIgY2ZxIHJlZ2lz dGVyZWQgKGRlZmF1bHQpDQo8Nz5QQ0k6IFNldHRpbmcgbGF0ZW5jeSB0aW1lciBvZiBkZXZpY2Ug MDAwMDowMDowZS4wIHRvIDY0DQo8ND5wY2llX3BvcnRkcnZfcHJvYmUtPkRldlswMDVkOjEwZGVd IGhhcyBpbnZhbGlkIElSUS4gQ2hlY2sgdmVuZG9yIEJJT1MNCjw0PmFzc2lnbl9pbnRlcnJ1cHRf bW9kZSBGb3VuZCBNU0kgY2FwYWJpbGl0eQ0KPDc+QWxsb2NhdGUgUG9ydCBTZXJ2aWNlWzAwMDA6 MDA6MGUuMDpwY2llMDBdDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIHBjaV9leHByZXNzOjAwMDA6 MDA6MGUuMDpwY2llMDANCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgcGxhdGZvcm06dmVzYWZiLjAN CjwzPkFDUEk6IEdldHRpbmcgY3B1aW5kZXggZm9yIGFjcGlpZCAweDINCjwzPkFDUEk6IEdldHRp bmcgY3B1aW5kZXggZm9yIGFjcGlpZCAweDMNCjwzPkFDUEk6IEdldHRpbmcgY3B1aW5kZXggZm9y IGFjcGlpZCAweDQNCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgTm8gQnVzOnBucDENCjw2PmlzYXBu cDogU2Nhbm5pbmcgZm9yIFBuUCBjYXJkcy4uLg0KPDY+aXNhcG5wOiBObyBQbHVnICYgUGxheSBk ZXZpY2UgZm91bmQNCjw2PlJlYWwgVGltZSBDbG9jayBEcml2ZXIgdjEuMTJhYw0KPDY+Tm9uLXZv bGF0aWxlIG1lbW9yeSBkcml2ZXIgdjEuMg0KPDY+TGludXggYWdwZ2FydCBpbnRlcmZhY2UgdjAu MTAxIChjKSBEYXZlIEpvbmVzDQo8Nj5TZXJpYWw6IDgyNTAvMTY1NTAgZHJpdmVyICRSZXZpc2lv bjogMS45MCAkIDQgcG9ydHMsIElSUSBzaGFyaW5nIGVuYWJsZWQNCjw3PlBNOiBBZGRpbmcgaW5m byBmb3IgcGxhdGZvcm06c2VyaWFsODI1MA0KPDY+c2VyaWFsODI1MDogdHR5UzAgYXQgSS9PIDB4 M2Y4IChpcnEgPSA0KSBpcyBhIDE2NTUwQQ0KPDY+MDA6MDc6IHR0eVMwIGF0IEkvTyAweDNmOCAo aXJxID0gNCkgaXMgYSAxNjU1MEENCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgTm8gQnVzOmlzYQ0K PDQ+UkFNRElTSyBkcml2ZXIgaW5pdGlhbGl6ZWQ6IDE2IFJBTSBkaXNrcyBvZiAxNjM4NEsgc2l6 ZSAxMDI0IGJsb2Nrc2l6ZQ0KPDY+VW5pZm9ybSBNdWx0aS1QbGF0Zm9ybSBFLUlERSBkcml2ZXIg UmV2aXNpb246IDcuMDBhbHBoYTINCjw2PmlkZTogQXNzdW1pbmcgMzNNSHogc3lzdGVtIGJ1cyBz cGVlZCBmb3IgUElPIG1vZGVzOyBvdmVycmlkZSB3aXRoIGlkZWJ1cz14eA0KPDY+TkZPUkNFLUNL ODA0OiBJREUgY29udHJvbGxlciBhdCBQQ0kgc2xvdCAwMDAwOjAwOjA2LjANCjw3PkRldmljZSBg W0lERV0nIGlzIG5vdCBwb3dlciBtYW5hZ2VhYmxlPDY+TkZPUkNFLUNLODA0OiBjaGlwc2V0IHJl dmlzaW9uIDI0Mg0KPDY+TkZPUkNFLUNLODA0OiBub3QgMTAwJSBuYXRpdmUgbW9kZTogd2lsbCBw cm9iZSBpcnFzIGxhdGVyDQo8Nj5ORk9SQ0UtQ0s4MDQ6IDAwMDA6MDA6MDYuMCAocmV2IGYyKSBV RE1BMTMzIGNvbnRyb2xsZXINCjw2PiAgICBpZGUwOiBCTS1ETUEgYXQgMHgyOGEwLTB4MjhhNywg QklPUyBzZXR0aW5nczogaGRhOkRNQSwgaGRiOnBpbw0KPDY+ICAgIGlkZTE6IEJNLURNQSBhdCAw eDI4YTgtMHgyOGFmLCBCSU9TIHNldHRpbmdzOiBoZGM6cGlvLCBoZGQ6cGlvDQo8Nz5Qcm9iaW5n IElERSBpbnRlcmZhY2UgaWRlMC4uLg0KPDQ+aGRhOiBQQ1JXODA0LCBBVEFQSSBDRC9EVkQtUk9N IGRyaXZlDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1czppZGUwDQo8ND5pZGUwIGF0IDB4 MWYwLTB4MWY3LDB4M2Y2IG9uIGlycSAxNA0KPDc+UE06IEFkZGluZyBpbmZvIGZvciBpZGU6MC4w DQo8Nz5Qcm9iaW5nIElERSBpbnRlcmZhY2UgaWRlMS4uLg0KPDc+UHJvYmluZyBJREUgaW50ZXJm YWNlIGlkZTEuLi4NCjw0PmlkZS1mbG9wcHkgZHJpdmVyIDAuOTkubmV3aWRlDQo8Nj51c2Jjb3Jl OiByZWdpc3RlcmVkIG5ldyBkcml2ZXIgbGlidXN1YWwNCjw2PnVzYmNvcmU6IHJlZ2lzdGVyZWQg bmV3IGRyaXZlciBoaWRkZXYNCjw2PnVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGRyaXZlciB1c2Jo aWQNCjw2PmRyaXZlcnMvdXNiL2lucHV0L2hpZC1jb3JlLmM6IHYyLjY6VVNCIEhJRCBjb3JlIGRy aXZlcg0KPDY+UE5QOiBQUy8yIENvbnRyb2xsZXIgW1BOUDAzMDM6S0JELFBOUDBmMGU6UFMyTV0g YXQgMHg2MCwweDY0IGlycSAxLDEyDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIHBsYXRmb3JtOmk4 MDQyDQo8Nj5zZXJpbzogaTgwNDIgQVVYIHBvcnQgYXQgMHg2MCwweDY0IGlycSAxMg0KPDY+c2Vy aW86IGk4MDQyIEtCRCBwb3J0IGF0IDB4NjAsMHg2NCBpcnEgMQ0KPDc+UE06IEFkZGluZyBpbmZv IGZvciBzZXJpbzpzZXJpbzANCjw2Pm1pY2U6IFBTLzIgbW91c2UgZGV2aWNlIGNvbW1vbiBmb3Ig YWxsIG1pY2UNCjw2Pm1kOiBtZCBkcml2ZXIgMC45MC4zIE1BWF9NRF9ERVZTPTI1NiwgTURfU0Jf RElTS1M9MjcNCjw2Pm1kOiBiaXRtYXAgdmVyc2lvbiA0LjM5DQo8Nj5UQ1AgYmljIHJlZ2lzdGVy ZWQNCjw2PkluaXRpYWxpemluZyBJUHNlYyBuZXRsaW5rIHNvY2tldA0KPDY+TkVUOiBSZWdpc3Rl cmVkIHByb3RvY29sIGZhbWlseSAxDQo8Nj5ORVQ6IFJlZ2lzdGVyZWQgcHJvdG9jb2wgZmFtaWx5 IDE3DQo8ND5Vc2luZyBJUEkgU2hvcnRjdXQgbW9kZQ0KPDc+UE06IEFkZGluZyBpbmZvIGZvciBz ZXJpbzpzZXJpbzENCjw2PkFDUEk6IChzdXBwb3J0cyBTMCBTMSBTMyBTNCBTNSkNCjw2PkZyZWVp bmcgdW51c2VkIGtlcm5lbCBtZW1vcnk6IDE5NmsgZnJlZWQNCjw2PlRpbWU6IHRzYyBjbG9ja3Nv dXJjZSBoYXMgYmVlbiBpbnN0YWxsZWQuDQo8ND5Xcml0ZSBwcm90ZWN0aW5nIHRoZSBrZXJuZWwg cmVhZC1vbmx5IGRhdGE6IDM1OGsNCjw2PmlucHV0OiBBVCBUcmFuc2xhdGVkIFNldCAyIGtleWJv YXJkIGFzIC9jbGFzcy9pbnB1dC9pbnB1dDANCjw2Pmxvb3A6IGxvYWRlZCAobWF4IDggZGV2aWNl cykNCjw2PmlucHV0OiBQUy8yIEdlbmVyaWMgTW91c2UgYXMgL2NsYXNzL2lucHV0L2lucHV0MQ0K PDQ+ZmxvcHB5MDogbm8gZmxvcHB5IGNvbnRyb2xsZXJzIGZvdW5kDQo8Nj5CSU9TIEVERCBmYWNp bGl0eSB2MC4xNiAyMDA0LUp1bi0yNSwgMSBkZXZpY2VzIGZvdW5kDQo8Nj5pbnB1dDogUEMgU3Bl YWtlciBhcyAvY2xhc3MvaW5wdXQvaW5wdXQyDQo8Nj5zcXVhc2hmczogdmVyc2lvbiAzLjAgKDIw MDYvMDMvMTUpIFBoaWxsaXAgTG91Z2hlcg0KPDY+aGRhOiBBVEFQSSAzMlggQ0QtUk9NIENELVIv UlcgZHJpdmUsIDIwNDhrQiBDYWNoZSwgRE1BDQo8Nj5Vbmlmb3JtIENELVJPTSBkcml2ZXIgUmV2 aXNpb246IDMuMjANCjw1PlNDU0kgc3Vic3lzdGVtIGluaXRpYWxpemVkDQo8Nz5EZXZpY2UgYFtV U0IyXScgaXMgbm90IHBvd2VyIG1hbmFnZWFibGVBQ1BJOiBQQ0kgSW50ZXJydXB0IExpbmsgW0xT QjJdIGVuYWJsZWQgYXQgSVJRIDEwDQo8Nz5QQ0k6IHNldHRpbmcgSVJRIDEwIGFzIGxldmVsLXRy aWdnZXJlZA0KPDY+QUNQSTogUENJIEludGVycnVwdCAwMDAwOjAwOjAyLjFbQl0gLT4gTGluayBb TFNCMl0gLT4gR1NJIDEwIChsZXZlbCwgbG93KSAtPiBJUlEgMTANCjw3PlBDSTogU2V0dGluZyBs YXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjAwOjAyLjEgdG8gNjQNCjw2PmVoY2lfaGNkIDAw MDA6MDA6MDIuMTogRUhDSSBIb3N0IENvbnRyb2xsZXINCjw2PmVoY2lfaGNkIDAwMDA6MDA6MDIu MTogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAxDQo8Nj5laGNp X2hjZCAwMDAwOjAwOjAyLjE6IGRlYnVnIHBvcnQgMQ0KPDc+UENJOiBjYWNoZSBsaW5lIHNpemUg b2YgNjQgaXMgbm90IHN1cHBvcnRlZCBieSBkZXZpY2UgMDAwMDowMDowMi4xDQo8Nj5laGNpX2hj ZCAwMDAwOjAwOjAyLjE6IGlycSAxMCwgaW8gbWVtIDB4ZmViZjAwMDANCjw2PmVoY2lfaGNkIDAw MDA6MDA6MDIuMTogVVNCIDIuMCBzdGFydGVkLCBFSENJIDEuMDAsIGRyaXZlciAxMCBEZWMgMjAw NA0KPDc+UE06IEFkZGluZyBpbmZvIGZvciB1c2I6dXNiMQ0KPDc+UE06IEFkZGluZyBpbmZvIGZv ciBObyBCdXM6dXNiZGV2MS4xX2VwMDANCjw2PnVzYiB1c2IxOiBjb25maWd1cmF0aW9uICMxIGNo b3NlbiBmcm9tIDEgY2hvaWNlDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIHVzYjoxLTA6MS4wDQo8 Nj5odWIgMS0wOjEuMDogVVNCIGh1YiBmb3VuZA0KPDY+aHViIDEtMDoxLjA6IDEwIHBvcnRzIGRl dGVjdGVkDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1czp1c2JkZXYxLjFfZXA4MQ0KPDc+ UE06IEFkZGluZyBpbmZvIGZvciBObyBCdXM6dXNiZGV2MS4xDQo8Nz5vaGNpX2hjZDogMjAwNSBB cHJpbCAyMiBVU0IgMS4xICdPcGVuJyBIb3N0IENvbnRyb2xsZXIgKE9IQ0kpIERyaXZlciAoUENJ KQ0KPDc+RGV2aWNlIGBbVVNCMF0nIGlzIG5vdCBwb3dlciBtYW5hZ2VhYmxlQUNQSTogUENJIElu dGVycnVwdCBMaW5rIFtMU0IwXSBlbmFibGVkIGF0IElSUSA1DQo8Nz5QQ0k6IHNldHRpbmcgSVJR IDUgYXMgbGV2ZWwtdHJpZ2dlcmVkDQo8Nj5BQ1BJOiBQQ0kgSW50ZXJydXB0IDAwMDA6MDA6MDIu MFtBXSAtPiBMaW5rIFtMU0IwXSAtPiBHU0kgNSAobGV2ZWwsIGxvdykgLT4gSVJRIDUNCjw3PlBD STogU2V0dGluZyBsYXRlbmN5IHRpbWVyIG9mIGRldmljZSAwMDAwOjAwOjAyLjAgdG8gNjQNCjw2 Pm9oY2lfaGNkIDAwMDA6MDA6MDIuMDogT0hDSSBIb3N0IENvbnRyb2xsZXINCjw2Pm9oY2lfaGNk IDAwMDA6MDA6MDIuMDogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJl ciAyDQo8Nj5vaGNpX2hjZCAwMDAwOjAwOjAyLjA6IGlycSA1LCBpbyBtZW0gMHhmMjEwMDAwMA0K PDc+UE06IEFkZGluZyBpbmZvIGZvciB1c2I6dXNiMg0KPDc+UE06IEFkZGluZyBpbmZvIGZvciBO byBCdXM6dXNiZGV2Mi4xX2VwMDANCjw2PnVzYiB1c2IyOiBjb25maWd1cmF0aW9uICMxIGNob3Nl biBmcm9tIDEgY2hvaWNlDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIHVzYjoyLTA6MS4wDQo8Nj5o dWIgMi0wOjEuMDogVVNCIGh1YiBmb3VuZA0KPDY+aHViIDItMDoxLjA6IDEwIHBvcnRzIGRldGVj dGVkDQo8Nj51c2IgMS00OiBuZXcgaGlnaCBzcGVlZCBVU0IgZGV2aWNlIHVzaW5nIGVoY2lfaGNk IGFuZCBhZGRyZXNzIDINCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgTm8gQnVzOnVzYmRldjIuMV9l cDgxDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1czp1c2JkZXYyLjENCjw3PlBNOiBBZGRp bmcgaW5mbyBmb3IgdXNiOjEtNA0KPDc+UE06IEFkZGluZyBpbmZvIGZvciBObyBCdXM6dXNiZGV2 MS4yX2VwMDANCjw2PnVzYiAxLTQ6IGNvbmZpZ3VyYXRpb24gIzEgY2hvc2VuIGZyb20gMSBjaG9p Y2UNCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgdXNiOjEtNDoxLjANCjw3PlBNOiBBZGRpbmcgaW5m byBmb3IgTm8gQnVzOnVzYmRldjEuMl9lcDgxDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1 czp1c2JkZXYxLjJfZXAwMg0KPDc+UE06IEFkZGluZyBpbmZvIGZvciB1c2I6MS00OjEuMQ0KPDc+ UE06IEFkZGluZyBpbmZvIGZvciBObyBCdXM6aGlkZGV2MA0KPDY+aGlkZGV2OTY6IFVTQiBISUQg djEuMTAgRGV2aWNlIFtETUkgICAgICBXRDE2MDBCQi0wMEdVQTAgXSBvbiB1c2ItMDAwMDowMDow Mi4xLTQNCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgTm8gQnVzOnVzYmRldjEuMl9lcDgzDQo8Nz5Q TTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1czp1c2JkZXYxLjINCjw2PkluaXRpYWxpemluZyBVU0Ig TWFzcyBTdG9yYWdlIGRyaXZlci4uLg0KPDY+c2NzaTAgOiBTQ1NJIGVtdWxhdGlvbiBmb3IgVVNC IE1hc3MgU3RvcmFnZSBkZXZpY2VzDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1czpob3N0 MA0KPDc+dXNiLXN0b3JhZ2U6IGRldmljZSBmb3VuZCBhdCAyDQo8Nz51c2Itc3RvcmFnZTogd2Fp dGluZyBmb3IgZGV2aWNlIHRvIHNldHRsZSBiZWZvcmUgc2Nhbm5pbmcNCjw2PnVzYmNvcmU6IHJl Z2lzdGVyZWQgbmV3IGRyaXZlciB1c2Itc3RvcmFnZQ0KPDY+VVNCIE1hc3MgU3RvcmFnZSBzdXBw b3J0IHJlZ2lzdGVyZWQuDQo8Nz5pZWVlMTM5NDogSW5pdGlhbGl6ZWQgY29uZmlnIHJvbSBlbnRy eSBgaXAxMzk0Jw0KPDQ+QUNQSTogUENJIEludGVycnVwdCBMaW5rIFtMTktEXSBlbmFibGVkIGF0 IElSUSAxMA0KPDY+QUNQSTogUENJIEludGVycnVwdCAwMDAwOjA1OjA1LjBbQV0gLT4gTGluayBb TE5LRF0gLT4gR1NJIDEwIChsZXZlbCwgbG93KSAtPiBJUlEgMTANCjw3PlBNOiBBZGRpbmcgaW5m byBmb3IgaWVlZTEzOTQ6ZnctaG9zdDANCjw2Pm9oY2kxMzk0OiBmdy1ob3N0MDogT0hDSS0xMzk0 IDEuMSAoUENJKTogSVJRPVsxMF0gIE1NSU89W2YyMDA0MDAwLWYyMDA0N2ZmXSAgTWF4IFBhY2tl dD1bMjA0OF0gIElSL0lUIGNvbnRleHRzPVs0LzhdDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5v IEJ1czp0YXJnZXQwOjA6MA0KPDU+ICBWZW5kb3I6IERNSSAgICAgICBNb2RlbDogV0QxNjAwQkIt MDBHVUEwICAgUmV2OiAzLjUzDQo8NT4gIFR5cGU6ICAgRGlyZWN0LUFjY2VzcyAgICAgICAgICAg ICAgICAgICAgICBBTlNJIFNDU0kgcmV2aXNpb246IDAwDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9y IHNjc2k6MDowOjA6MA0KPDU+U0NTSSBkZXZpY2Ugc2RhOiAzMTI1ODE4MDggNTEyLWJ5dGUgaGR3 ciBzZWN0b3JzICgxNjAwNDIgTUIpDQo8NT5zZGE6IFdyaXRlIFByb3RlY3QgaXMgb2ZmDQo8Nz5z ZGE6IE1vZGUgU2Vuc2U6IDg2IDBiIDAwIDAyDQo8Mz5zZGE6IGFzc3VtaW5nIGRyaXZlIGNhY2hl OiB3cml0ZSB0aHJvdWdoDQo8NT5TQ1NJIGRldmljZSBzZGE6IDMxMjU4MTgwOCA1MTItYnl0ZSBo ZHdyIHNlY3RvcnMgKDE2MDA0MiBNQikNCjw1PnNkYTogV3JpdGUgUHJvdGVjdCBpcyBvZmYNCjw3 PnNkYTogTW9kZSBTZW5zZTogODYgMGIgMDAgMDINCjwzPnNkYTogYXNzdW1pbmcgZHJpdmUgY2Fj aGU6IHdyaXRlIHRocm91Z2gNCjw2PiBzZGE6IHNkYTEgc2RhNA0KPDU+c2QgMDowOjA6MDogQXR0 YWNoZWQgc2NzaSBkaXNrIHNkYQ0KPDc+UE06IEFkZGluZyBpbmZvIGZvciBObyBCdXM6dGFyZ2V0 MDowOjENCjw3PlBNOiBSZW1vdmluZyBpbmZvIGZvciBObyBCdXM6dGFyZ2V0MDowOjENCjw3PlBN OiBBZGRpbmcgaW5mbyBmb3IgTm8gQnVzOnRhcmdldDA6MDoyDQo8Nz5QTTogUmVtb3ZpbmcgaW5m byBmb3IgTm8gQnVzOnRhcmdldDA6MDoyDQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1czp0 YXJnZXQwOjA6Mw0KPDc+UE06IFJlbW92aW5nIGluZm8gZm9yIE5vIEJ1czp0YXJnZXQwOjA6Mw0K PDc+UE06IEFkZGluZyBpbmZvIGZvciBObyBCdXM6dGFyZ2V0MDowOjQNCjw3PlBNOiBSZW1vdmlu ZyBpbmZvIGZvciBObyBCdXM6dGFyZ2V0MDowOjQNCjw3PlBNOiBBZGRpbmcgaW5mbyBmb3IgTm8g QnVzOnRhcmdldDA6MDo1DQo8Nz5QTTogUmVtb3ZpbmcgaW5mbyBmb3IgTm8gQnVzOnRhcmdldDA6 MDo1DQo8Nz5QTTogQWRkaW5nIGluZm8gZm9yIE5vIEJ1czp0YXJnZXQwOjA6Ng0KPDc+UE06IFJl bW92aW5nIGluZm8gZm9yIE5vIEJ1czp0YXJnZXQwOjA6Ng0KPDc+UE06IEFkZGluZyBpbmZvIGZv ciBObyBCdXM6dGFyZ2V0MDowOjcNCjw3PlBNOiBSZW1vdmluZyBpbmZvIGZvciBObyBCdXM6dGFy Z2V0MDowOjcNCjw3PnVzYi1zdG9yYWdlOiBkZXZpY2Ugc2NhbiBjb21wbGV0ZQ0KPDc+UE06IEFk ZGluZyBpbmZvIGZvciBpZWVlMTM5NDowMDYwYjAwMDAwMTgzMDQxDQo8Nz5pZWVlMTM5NDogSG9z dCBhZGRlZDogSUQ6QlVTWzAtMDA6MTAyM10gIEdVSURbMDA2MGIwMDAwMDE4MzA0MV0NCjw3PlBN OiBBZGRpbmcgaW5mbyBmb3IgaWVlZTEzOTQ6MDA2MGIwMDAwMDE4MzA0MS0wDQo8Nj5mb3JjZWRl dGguYzogUmV2ZXJzZSBFbmdpbmVlcmVkIG5Gb3JjZSBldGhlcm5ldCBkcml2ZXIuIFZlcnNpb24g MC41Ni4NCjw3PkRldmljZSBgW01BQzBdJyBpcyBub3QgcG93ZXIgbWFuYWdlYWJsZUFDUEk6IFBD SSBJbnRlcnJ1cHQgTGluayBbTE1BQ10gZW5hYmxlZCBhdCBJUlEgMTENCjw3PlBDSTogc2V0dGlu ZyBJUlEgMTEgYXMgbGV2ZWwtdHJpZ2dlcmVkDQo8Nj5BQ1BJOiBQQ0kgSW50ZXJydXB0IDAwMDA6 MDA6MGEuMFtBXSAtPiBMaW5rIFtMTUFDXSAtPiBHU0kgMTEgKGxldmVsLCBsb3cpIC0+IElSUSAx MQ0KPDc+UENJOiBTZXR0aW5nIGxhdGVuY3kgdGltZXIgb2YgZGV2aWNlIDAwMDA6MDA6MGEuMCB0 byA2NA0KPDY+Zm9yY2VkZXRoOiB1c2luZyBISUdIRE1BDQo8Nj5ldGgwOiBmb3JjZWRldGguYzog c3Vic3lzdGVtOiAwMTAzYzoxNTAwIGJvdW5kIHRvIDAwMDA6MDA6MGEuMA0KPDc+bGliYXRhIHZl cnNpb24gMi4wMCBsb2FkZWQuDQo8ND5ldGgwOiBubyBsaW5rIGR1cmluZyBpbml0aWFsaXphdGlv bi4NCjw2PmV0aDA6IGxpbmsgdXAuDQo8ND5VbmFibGUgdG8gaWRlbnRpZnkgQ0QtUk9NIGZvcm1h dC4NCjw0PlZGUzogQ2FuJ3QgZmluZCBhbiBleHQyIGZpbGVzeXN0ZW0gb24gZGV2IGxvb3AwLg0K PDY+c2VjdXJpdHk6ICAzIHVzZXJzLCA2IHJvbGVzLCAxMzk4IHR5cGVzLCAxNDggYm9vbHMsIDEg c2VucywgMjU2IGNhdHMNCjw2PnNlY3VyaXR5OiAgNTggY2xhc3NlcywgNDAzMTQgcnVsZXMNCjw2 PlNFTGludXg6ICBDb21wbGV0aW5nIGluaXRpYWxpemF0aW9uLg0KPDY+U0VMaW51eDogIFNldHRp bmcgdXAgZXhpc3Rpbmcgc3VwZXJibG9ja3MuDQo8Nj5TRUxpbnV4OiBpbml0aWFsaXplZCAoZGV2 IGxvb3AwLCB0eXBlIHNxdWFzaGZzKSwgbm90IGNvbmZpZ3VyZWQgZm9yIGxhYmVsaW5nDQo8Nj5T RUxpbnV4OiBpbml0aWFsaXplZCAoZGV2IDA6MTMsIHR5cGUgbmZzKSwgdXNlcyBnZW5mc19jb250 ZXh0cw0KPDY+U0VMaW51eDogaW5pdGlhbGl6ZWQgKGRldiBycGNfcGlwZWZzLCB0eXBlIHJwY19w aXBlZnMpLCB1c2VzIGdlbmZzX2NvbnRleHRzDQo8Nj5TRUxpbnV4OiBpbml0aWFsaXplZCAoZGV2 IHVzYmZzLCB0eXBlIHVzYmZzKSwgdXNlcyBnZW5mc19jb250ZXh0cw0KPDY+U0VMaW51eDogaW5p dGlhbGl6ZWQgKGRldiByYW1mcywgdHlwZSByYW1mcyksIHVzZXMgZ2VuZnNfY29udGV4dHMNCjw2 PlNFTGludXg6IGluaXRpYWxpemVkIChkZXYgcmFtZnMsIHR5cGUgcmFtZnMpLCB1c2VzIGdlbmZz X2NvbnRleHRzDQo8Nj5TRUxpbnV4OiBpbml0aWFsaXplZCAoZGV2IHRtcGZzLCB0eXBlIHRtcGZz KSwgdXNlcyB0cmFuc2l0aW9uIFNJRHMNCjw2PlNFTGludXg6IGluaXRpYWxpemVkIChkZXYgZGVi dWdmcywgdHlwZSBkZWJ1Z2ZzKSwgdXNlcyBnZW5mc19jb250ZXh0cw0KPDY+U0VMaW51eDogaW5p dGlhbGl6ZWQgKGRldiBzZWxpbnV4ZnMsIHR5cGUgc2VsaW51eGZzKSwgdXNlcyBnZW5mc19jb250 ZXh0cw0KPDY+U0VMaW51eDogaW5pdGlhbGl6ZWQgKGRldiBtcXVldWUsIHR5cGUgbXF1ZXVlKSwg dXNlcyB0cmFuc2l0aW9uIFNJRHMNCjw2PlNFTGludXg6IGluaXRpYWxpemVkIChkZXYgaHVnZXRs YmZzLCB0eXBlIGh1Z2V0bGJmcyksIHVzZXMgZ2VuZnNfY29udGV4dHMNCjw2PlNFTGludXg6IGlu aXRpYWxpemVkIChkZXYgZGV2cHRzLCB0eXBlIGRldnB0cyksIHVzZXMgdHJhbnNpdGlvbiBTSURz DQo8Nj5TRUxpbnV4OiBpbml0aWFsaXplZCAoZGV2IGV2ZW50cG9sbGZzLCB0eXBlIGV2ZW50cG9s bGZzKSwgdXNlcyBnZW5mc19jb250ZXh0cw0KPDY+U0VMaW51eDogaW5pdGlhbGl6ZWQgKGRldiBp bm90aWZ5ZnMsIHR5cGUgaW5vdGlmeWZzKSwgdXNlcyBnZW5mc19jb250ZXh0cw0KPDY+U0VMaW51 eDogaW5pdGlhbGl6ZWQgKGRldiB0bXBmcywgdHlwZSB0bXBmcyksIHVzZXMgdHJhbnNpdGlvbiBT SURzDQo8Nj5TRUxpbnV4OiBpbml0aWFsaXplZCAoZGV2IGZ1dGV4ZnMsIHR5cGUgZnV0ZXhmcyks IHVzZXMgZ2VuZnNfY29udGV4dHMNCjw2PlNFTGludXg6IGluaXRpYWxpemVkIChkZXYgcGlwZWZz LCB0eXBlIHBpcGVmcyksIHVzZXMgdGFzayBTSURzDQo8Nj5TRUxpbnV4OiBpbml0aWFsaXplZCAo ZGV2IHNvY2tmcywgdHlwZSBzb2NrZnMpLCB1c2VzIHRhc2sgU0lEcw0KPDY+U0VMaW51eDogaW5p dGlhbGl6ZWQgKGRldiBwcm9jLCB0eXBlIHByb2MpLCB1c2VzIGdlbmZzX2NvbnRleHRzDQo8Nj5T RUxpbnV4OiBpbml0aWFsaXplZCAoZGV2IGJkZXYsIHR5cGUgYmRldiksIHVzZXMgZ2VuZnNfY29u dGV4dHMNCjw2PlNFTGludXg6IGluaXRpYWxpemVkIChkZXYgcm9vdGZzLCB0eXBlIHJvb3Rmcyks IHVzZXMgZ2VuZnNfY29udGV4dHMNCjw2PlNFTGludXg6IGluaXRpYWxpemVkIChkZXYgc3lzZnMs IHR5cGUgc3lzZnMpLCB1c2VzIGdlbmZzX2NvbnRleHRzDQo8NT5hdWRpdCgxMTUyMjY3NzMyLjI4 OToyKTogcG9saWN5IGxvYWRlZCBhdWlkPTQyOTQ5NjcyOTUNCjw1PmF1ZGl0KDExNTIyNjc3MzIu Mjg5OjMpOiBhdmM6ICBncmFudGVkICB7IGxvYWRfcG9saWN5IH0gZm9yICBwaWQ9NDI4IGNvbW09 ImxvYWRfcG9saWN5IiBzY29udGV4dD1zeXN0ZW1fdTpzeXN0ZW1fcjprZXJuZWxfdDpzMCB0Y29u dGV4dD1zeXN0ZW1fdTpvYmplY3RfcjpzZWN1cml0eV90OnMwIHRjbGFzcz1zZWN1cml0eQ0KPDU+ YXVkaXQoMTE1MjI2NzczMi4zMDU6NCk6IGF2YzogIGRlbmllZCAgeyB0cmFuc2l0aW9uIH0gZm9y ICBwaWQ9NDI5IGNvbW09ImxvYWRlciIgbmFtZT0iYmFzaCIgZGV2PWxvb3AwIGlubz02MjI4IHNj b250ZXh0PXN5c3RlbV91OnN5c3RlbV9yOmtlcm5lbF90OnMwIHRjb250ZXh0PXN5c3RlbV91OnN5 c3RlbV9yOmFuYWNvbmRhX3Q6czAgdGNsYXNzPXByb2Nlc3MNCjw2Pm1kOiByYWlkMCBwZXJzb25h bGl0eSByZWdpc3RlcmVkIGZvciBsZXZlbCAwDQo8Nj5tZDogcmFpZDEgcGVyc29uYWxpdHkgcmVn aXN0ZXJlZCBmb3IgbGV2ZWwgMQ0KPDY+SkZTOiBuVHhCbG9jayA9IDcwNjIsIG5UeExvY2sgPSA1 NjUwMQ0KPDY+U0dJIFhGUyB3aXRoIEFDTHMsIHNlY3VyaXR5IGF0dHJpYnV0ZXMsIGxhcmdlIGJs b2NrIG51bWJlcnMsIG5vIGRlYnVnIGVuYWJsZWQNCjw2PlNHSSBYRlMgUXVvdGEgTWFuYWdlbWVu dCBzdWJzeXN0ZW0NCjw2PmRldmljZS1tYXBwZXI6IGlvY3RsOiA0LjcuMC1pb2N0bCAoMjAwNi0w Ni0yNCkgaW5pdGlhbGlzZWQ6IGRtLWRldmVsQHJlZGhhdC5jb20NCjw0PkVYVDItZnMgd2Fybmlu ZyAoZGV2aWNlIGRtLTApOiBleHQyX2ZpbGxfc3VwZXI6IG1vdW50aW5nIGV4dDMgZmlsZXN5c3Rl bSBhcyBleHQyDQo8Nj5TRUxpbnV4OiBpbml0aWFsaXplZCAoZGV2IGRtLTAsIHR5cGUgZXh0Miks IHVzZXMgeGF0dHINCjw1PlNDU0kgZGV2aWNlIHNkYTogMzEyNTgxODA4IDUxMi1ieXRlIGhkd3Ig c2VjdG9ycyAoMTYwMDQyIE1CKQ0KPDU+c2RhOiBXcml0ZSBQcm90ZWN0IGlzIG9mZg0KPDc+c2Rh OiBNb2RlIFNlbnNlOiA4NiAwYiAwMCAwMg0KPDM+c2RhOiBhc3N1bWluZyBkcml2ZSBjYWNoZTog d3JpdGUgdGhyb3VnaA0KPDY+IHNkYTogc2RhMiBzZGE0DQo8NT5TQ1NJIGRldmljZSBzZGE6IDMx MjU4MTgwOCA1MTItYnl0ZSBoZHdyIHNlY3RvcnMgKDE2MDA0MiBNQikNCjw1PnNkYTogV3JpdGUg UHJvdGVjdCBpcyBvZmYNCjw3PnNkYTogTW9kZSBTZW5zZTogODYgMGIgMDAgMDINCjwzPnNkYTog YXNzdW1pbmcgZHJpdmUgY2FjaGU6IHdyaXRlIHRocm91Z2gNCjw2PiBzZGE6IHNkYTIgc2RhNA0K PDU+U0NTSSBkZXZpY2Ugc2RhOiAzMTI1ODE4MDggNTEyLWJ5dGUgaGR3ciBzZWN0b3JzICgxNjAw NDIgTUIpDQo8NT5zZGE6IFdyaXRlIFByb3RlY3QgaXMgb2ZmDQo8Nz5zZGE6IE1vZGUgU2Vuc2U6 IDg2IDBiIDAwIDAyDQo8Mz5zZGE6IGFzc3VtaW5nIGRyaXZlIGNhY2hlOiB3cml0ZSB0aHJvdWdo DQo8Nj4gc2RhOiBzZGEzIDwgc2RhNSA+IHNkYTQNCjw1PlNDU0kgZGV2aWNlIHNkYTogMzEyNTgx ODA4IDUxMi1ieXRlIGhkd3Igc2VjdG9ycyAoMTYwMDQyIE1CKQ0KPDU+c2RhOiBXcml0ZSBQcm90 ZWN0IGlzIG9mZg0KPDc+c2RhOiBNb2RlIFNlbnNlOiA4NiAwYiAwMCAwMg0KPDM+c2RhOiBhc3N1 bWluZyBkcml2ZSBjYWNoZTogd3JpdGUgdGhyb3VnaA0KPDY+IHNkYTogc2RhMyA8IHNkYTUgPiBz ZGE0DQo8ND4NCjw0Pj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KPDQ+WyBJTkZPOiBwb3NzaWJsZSByZWN1cnNpdmUgbG9ja2luZyBkZXRlY3RlZCBdDQo8ND4t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjw0PnBhcnRlZC81 MjUgaXMgdHJ5aW5nIHRvIGFjcXVpcmUgbG9jazoNCjw0PiAoJmJkZXYtPmJkX211dGV4KXstLS4u fSwgYXQ6IFs8YzA1ZWJkOWQ+XSBtdXRleF9sb2NrKzB4MjEvMHgyNA0KPDQ+DQo8ND5idXQgdGFz ayBpcyBhbHJlYWR5IGhvbGRpbmcgbG9jazoNCjw0PiAoJmJkZXYtPmJkX211dGV4KXstLS4ufSwg YXQ6IFs8YzA1ZWJkOWQ+XSBtdXRleF9sb2NrKzB4MjEvMHgyNA0KPDQ+DQo8ND5vdGhlciBpbmZv IHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOg0KPDQ+MSBsb2NrIGhlbGQgYnkgcGFydGVk LzUyNToNCjw0PiAjMDogICgmYmRldi0+YmRfbXV0ZXgpey0tLi59LCBhdDogWzxjMDVlYmQ5ZD5d IG11dGV4X2xvY2srMHgyMS8weDI0DQo8ND4NCjw0PnN0YWNrIGJhY2t0cmFjZToNCjw0PiBbPGMw NDAzNzNjPl0gc2hvd190cmFjZV9sb2dfbHZsKzB4NTQvMHhmZA0KPDQ+IFs8YzA0MDNjYmE+XSBz aG93X3RyYWNlKzB4ZC8weDEwDQo8ND4gWzxjMDQwM2Q1Nz5dIGR1bXBfc3RhY2srMHgxOS8weDFi DQo8ND4gWzxjMDQyYzNiYT5dIF9fbG9ja19hY3F1aXJlKzB4NzYwLzB4OTg3DQo8ND4gWzxjMDQy Y2I1Mj5dIGxvY2tfYWNxdWlyZSsweDRiLzB4NmQNCjw0PiBbPGMwNWViYzA1Pl0gX19tdXRleF9s b2NrX3Nsb3dwYXRoKzB4YjYvMHgyMmQNCjw0PiBbPGMwNWViZDlkPl0gbXV0ZXhfbG9jaysweDIx LzB4MjQNCjw0PiBbPGMwNGM0YWNmPl0gYmxrZGV2X2lvY3RsKzB4NWRkLzB4NzMyDQo8ND4gWzxj MDQ2MzIzYj5dIGJsb2NrX2lvY3RsKzB4MTYvMHgxYg0KPDQ+IFs8YzA0NmNiOTk+XSBkb19pb2N0 bCsweDE5LzB4NTANCjw0PiBbPGMwNDZjZGQwPl0gdmZzX2lvY3RsKzB4MjAwLzB4MjE3DQo8ND4g WzxjMDQ2Y2UyZT5dIHN5c19pb2N0bCsweDQ3LzB4NjENCjw0PiBbPGMwNDAyZGM3Pl0gc3lzY2Fs bF9jYWxsKzB4Ny8weGINCg== --=-1WJ+y2z8JfZEOEZN7y/q--