From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Hutchings Subject: Nested GRE locking bug Date: Thu, 14 Oct 2010 05:00:42 +0100 Message-ID: <1287028842.11178.68.camel@localhost> Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-X07RXivYM1CxHuP9BEyg" Cc: Beatrice Barbe , 599816@bugs.debian.org To: netdev@vger.kernel.org Return-path: Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:37252 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750732Ab0JNEA4 (ORCPT ); Thu, 14 Oct 2010 00:00:56 -0400 Sender: netdev-owner@vger.kernel.org List-ID: --=-X07RXivYM1CxHuP9BEyg Content-Type: multipart/mixed; boundary="=-1Pfsztdh0Du+IpKplGfj" --=-1Pfsztdh0Du+IpKplGfj Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Beatrice Barbe reported a reproducible crash after creating large numbers of nested GRE tunnels and then pinging with the source address forced. I was able to reproduce this using net-2.6. I'm attaching the kernel config I used and a script to reproduce this based on the script she provided. The magic number of tunnels to create is apparently 37. With lockdep enabled, I get the following output: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D [ INFO: possible recursive locking detected ] 2.6.36-rc7-00040-gb0057c5 #5 --------------------------------------------- ping/2199 is trying to acquire lock: (_xmit_IPGRE){+.....}, at: [] dev_queue_xmit+0x37e/0x454 but task is already holding lock: (_xmit_IPGRE){+.....}, at: [] dev_queue_xmit+0x37e/0x454 other info that might help us debug this: 4 locks held by ping/2199: #0: (sk_lock-AF_INET){+.+.+.}, at: [] raw_sendmsg+0x590/0x64c #1: (rcu_read_lock_bh){.+....}, at: [] dev_queue_xmit+0x0/0x454 #2: (_xmit_IPGRE){+.....}, at: [] dev_queue_xmit+0x37e/0x454 #3: (rcu_read_lock_bh){.+....}, at: [] dev_queue_xmit+0x0/0x454 stack backtrace: Pid: 2199, comm: ping Not tainted 2.6.36-rc7-00040-gb0057c5 #5 Call Trace: [] ? printk+0xf/0x13 [] __lock_acquire+0xbda/0x1311 [] ? __lock_acquire+0x5c3/0x1311 [] lock_acquire+0x59/0x77 [] ? dev_queue_xmit+0x37e/0x454 [] _raw_spin_lock+0x1b/0x2a [] ? dev_queue_xmit+0x37e/0x454 [] dev_queue_xmit+0x37e/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ? ip_append_data+0x536/0x7dc [] ip_finish_output+0x29d/0x2c7 [] ? ip_generic_getfrag+0x0/0x8a [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ip_push_pending_frames+0x260/0x2ad [] raw_sendmsg+0x5cf/0x64c [] inet_sendmsg+0x46/0x4f [] sock_sendmsg+0xa4/0xba [] ? might_fault+0x35/0x6f [] ? might_fault+0x35/0x6f [] ? verify_iovec+0x3e/0x6a [] sys_sendmsg+0x149/0x196 [] ? unlock_page+0x3f/0x42 [] ? lock_release_non_nested+0x86/0x221 [] ? might_fault+0x35/0x6f [] ? might_fault+0x35/0x6f [] sys_socketcall+0x146/0x18b [] ? trace_hardirqs_on_thunk+0xc/0x10 [] syscall_call+0x7/0xb ------------[ cut here ]------------ WARNING: at kernel/softirq.c:143 local_bh_enable_ip+0x39/0xa5() Hardware name: Bochs Pid: 2199, comm: ping Not tainted 2.6.36-rc7-00040-gb0057c5 #5 Call Trace: [] warn_slowpath_common+0x60/0x75 [] ? local_bh_enable_ip+0x39/0xa5 [] ? rt_intern_hash+0x4da/0x4f9 [] warn_slowpath_null+0xf/0x13 [] local_bh_enable_ip+0x39/0xa5 [] _raw_spin_unlock_bh+0x25/0x28 [] rt_intern_hash+0x4da/0x4f9 [] __ip_route_output_key+0x806/0x860 [] ip_route_output_flow+0xe/0x3e [] ip_route_output_key+0xc/0xe [] ipgre_tunnel_xmit+0x1ac/0x757 [] ? dev_queue_xmit+0x37e/0x454 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ip_finish_output+0x29d/0x2c7 [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ipgre_tunnel_xmit+0x6b8/0x757 [] ? ip_rt_update_pmtu+0x0/0x60 [] dev_hard_start_xmit+0x33a/0x428 [] dev_queue_xmit+0x39d/0x454 [] ? ip_append_data+0x536/0x7dc [] ip_finish_output+0x29d/0x2c7 [] ? ip_generic_getfrag+0x0/0x8a [] ip_output+0x8a/0x8f [] ip_local_out+0x50/0x53 [] ip_push_pending_frames+0x260/0x2ad [] raw_sendmsg+0x5cf/0x64c [] inet_sendmsg+0x46/0x4f [] sock_sendmsg+0xa4/0xba [] ? might_fault+0x35/0x6f [] ? might_fault+0x35/0x6f [] ? verify_iovec+0x3e/0x6a [] sys_sendmsg+0x149/0x196 [] ? unlock_page+0x3f/0x42 [] ? lock_release_non_nested+0x86/0x221 [] ? might_fault+0x35/0x6f [] ? might_fault+0x35/0x6f [] sys_socketcall+0x146/0x18b [] ? trace_hardirqs_on_thunk+0xc/0x10 [] syscall_call+0x7/0xb =20 Ben. --=20 Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse. --=-1Pfsztdh0Du+IpKplGfj Content-Disposition: attachment; filename=".config" Content-Type: text/x-mpsub; name=".config"; charset="UTF-8" Content-Transfer-Encoding: base64 Iw0KIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdA0KIyBM aW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjM2LXJjNw0KIyBUaHUgT2N0IDE0IDA0OjE4OjMyIDIw MTANCiMNCiMgQ09ORklHXzY0QklUIGlzIG5vdCBzZXQNCkNPTkZJR19YODZfMzI9eQ0KIyBDT05G SUdfWDg2XzY0IGlzIG5vdCBzZXQNCkNPTkZJR19YODY9eQ0KQ09ORklHX0lOU1RSVUNUSU9OX0RF Q09ERVI9eQ0KQ09ORklHX09VVFBVVF9GT1JNQVQ9ImVsZjMyLWkzODYiDQpDT05GSUdfQVJDSF9E RUZDT05GSUc9ImFyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWciDQpDT05GSUdfR0VORVJJ Q19DTU9TX1VQREFURT15DQpDT05GSUdfQ0xPQ0tTT1VSQ0VfV0FUQ0hET0c9eQ0KQ09ORklHX0dF TkVSSUNfQ0xPQ0tFVkVOVFM9eQ0KQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15DQpDT05GSUdfU1RB Q0tUUkFDRV9TVVBQT1JUPXkNCkNPTkZJR19IQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVD15DQpDT05G SUdfTU1VPXkNCkNPTkZJR19aT05FX0RNQT15DQojIENPTkZJR19ORUVEX0RNQV9NQVBfU1RBVEUg aXMgbm90IHNldA0KQ09ORklHX05FRURfU0dfRE1BX0xFTkdUSD15DQpDT05GSUdfR0VORVJJQ19J U0FfRE1BPXkNCkNPTkZJR19HRU5FUklDX0lPTUFQPXkNCkNPTkZJR19HRU5FUklDX0JVRz15DQpD T05GSUdfR0VORVJJQ19IV0VJR0hUPXkNCkNPTkZJR19BUkNIX01BWV9IQVZFX1BDX0ZEQz15DQoj IENPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLIGlzIG5vdCBzZXQNCkNPTkZJR19SV1NFTV9Y Q0hHQUREX0FMR09SSVRITT15DQpDT05GSUdfQVJDSF9IQVNfQ1BVX0lETEVfV0FJVD15DQpDT05G SUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQ0KIyBDT05GSUdfR0VORVJJQ19USU1FX1ZTWVND QUxMIGlzIG5vdCBzZXQNCkNPTkZJR19BUkNIX0hBU19DUFVfUkVMQVg9eQ0KQ09ORklHX0FSQ0hf SEFTX0RFRkFVTFRfSURMRT15DQpDT05GSUdfQVJDSF9IQVNfQ0FDSEVfTElORV9TSVpFPXkNCkNP TkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQT15DQpDT05GSUdfTkVFRF9QRVJfQ1BVX0VNQkVE X0ZJUlNUX0NIVU5LPXkNCkNPTkZJR19ORUVEX1BFUl9DUFVfUEFHRV9GSVJTVF9DSFVOSz15DQoj IENPTkZJR19IQVZFX0NQVU1BU0tfT0ZfQ1BVX01BUCBpcyBub3Qgc2V0DQpDT05GSUdfQVJDSF9I SUJFUk5BVElPTl9QT1NTSUJMRT15DQpDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkNCiMg Q09ORklHX1pPTkVfRE1BMzIgaXMgbm90IHNldA0KQ09ORklHX0FSQ0hfUE9QVUxBVEVTX05PREVf TUFQPXkNCiMgQ09ORklHX0FVRElUX0FSQ0ggaXMgbm90IHNldA0KQ09ORklHX0FSQ0hfU1VQUE9S VFNfT1BUSU1JWkVEX0lOTElOSU5HPXkNCkNPTkZJR19BUkNIX1NVUFBPUlRTX0RFQlVHX1BBR0VB TExPQz15DQpDT05GSUdfSEFWRV9FQVJMWV9SRVM9eQ0KQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9 eQ0KQ09ORklHX0dFTkVSSUNfSEFSRElSUVNfTk9fX0RPX0lSUT15DQpDT05GSUdfR0VORVJJQ19J UlFfUFJPQkU9eQ0KQ09ORklHX1g4Nl8zMl9MQVpZX0dTPXkNCkNPTkZJR19BUkNIX0hXRUlHSFRf Q0ZMQUdTPSItZmNhbGwtc2F2ZWQtZWN4IC1mY2FsbC1zYXZlZC1lZHgiDQpDT05GSUdfS1RJTUVf U0NBTEFSPXkNCkNPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxF QVNFLy5jb25maWciDQpDT05GSUdfQ09OU1RSVUNUT1JTPXkNCg0KIw0KIyBHZW5lcmFsIHNldHVw DQojDQpDT05GSUdfRVhQRVJJTUVOVEFMPXkNCkNPTkZJR19CUk9LRU5fT05fU01QPXkNCkNPTkZJ R19JTklUX0VOVl9BUkdfTElNSVQ9MzINCkNPTkZJR19DUk9TU19DT01QSUxFPSIiDQpDT05GSUdf TE9DQUxWRVJTSU9OPSIiDQpDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQ0KQ09ORklHX0hBVkVf S0VSTkVMX0daSVA9eQ0KQ09ORklHX0hBVkVfS0VSTkVMX0JaSVAyPXkNCkNPTkZJR19IQVZFX0tF Uk5FTF9MWk1BPXkNCkNPTkZJR19IQVZFX0tFUk5FTF9MWk89eQ0KQ09ORklHX0tFUk5FTF9HWklQ PXkNCiMgQ09ORklHX0tFUk5FTF9CWklQMiBpcyBub3Qgc2V0DQojIENPTkZJR19LRVJORUxfTFpN QSBpcyBub3Qgc2V0DQojIENPTkZJR19LRVJORUxfTFpPIGlzIG5vdCBzZXQNCkNPTkZJR19TV0FQ PXkNCiMgQ09ORklHX1NZU1ZJUEMgaXMgbm90IHNldA0KIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlz IG5vdCBzZXQNCiMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldA0KIyBDT05GSUdf VEFTS1NUQVRTIGlzIG5vdCBzZXQNCiMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQNCg0KIw0KIyBS Q1UgU3Vic3lzdGVtDQojDQpDT05GSUdfVFJFRV9SQ1U9eQ0KIyBDT05GSUdfVElOWV9SQ1UgaXMg bm90IHNldA0KIyBDT05GSUdfUkNVX1RSQUNFIGlzIG5vdCBzZXQNCkNPTkZJR19SQ1VfRkFOT1VU PTMyDQojIENPTkZJR19SQ1VfRkFOT1VUX0VYQUNUIGlzIG5vdCBzZXQNCiMgQ09ORklHX1RSRUVf UkNVX1RSQUNFIGlzIG5vdCBzZXQNCiMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQNCkNPTkZJ R19MT0dfQlVGX1NISUZUPTE4DQpDT05GSUdfSEFWRV9VTlNUQUJMRV9TQ0hFRF9DTE9DSz15DQoj IENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjIg aXMgbm90IHNldA0KIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldA0KQ09ORklHX05BTUVTUEFDRVM9 eQ0KIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQNCiMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNl dA0KIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQNCiMgQ09ORklHX05FVF9OUyBpcyBub3Qgc2V0 DQojIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0DQpDT05GSUdfQ0NfT1BUSU1JWkVf Rk9SX1NJWkU9eQ0KQ09ORklHX1NZU0NUTD15DQpDT05GSUdfQU5PTl9JTk9ERVM9eQ0KIyBDT05G SUdfRU1CRURERUQgaXMgbm90IHNldA0KQ09ORklHX1VJRDE2PXkNCkNPTkZJR19TWVNDVExfU1lT Q0FMTD15DQpDT05GSUdfS0FMTFNZTVM9eQ0KQ09ORklHX0tBTExTWU1TX0FMTD15DQojIENPTkZJ R19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQNCkNPTkZJR19IT1RQTFVHPXkNCkNPTkZJ R19QUklOVEs9eQ0KQ09ORklHX0JVRz15DQpDT05GSUdfRUxGX0NPUkU9eQ0KQ09ORklHX1BDU1BL Ul9QTEFURk9STT15DQpDT05GSUdfQkFTRV9GVUxMPXkNCkNPTkZJR19GVVRFWD15DQpDT05GSUdf RVBPTEw9eQ0KQ09ORklHX1NJR05BTEZEPXkNCkNPTkZJR19USU1FUkZEPXkNCkNPTkZJR19FVkVO VEZEPXkNCkNPTkZJR19TSE1FTT15DQpDT05GSUdfQUlPPXkNCkNPTkZJR19IQVZFX1BFUkZfRVZF TlRTPXkNCg0KIw0KIyBLZXJuZWwgUGVyZm9ybWFuY2UgRXZlbnRzIEFuZCBDb3VudGVycw0KIw0K Q09ORklHX1BFUkZfRVZFTlRTPXkNCiMgQ09ORklHX1BFUkZfQ09VTlRFUlMgaXMgbm90IHNldA0K IyBDT05GSUdfREVCVUdfUEVSRl9VU0VfVk1BTExPQyBpcyBub3Qgc2V0DQpDT05GSUdfVk1fRVZF TlRfQ09VTlRFUlM9eQ0KQ09ORklHX1BDSV9RVUlSS1M9eQ0KQ09ORklHX1NMVUJfREVCVUc9eQ0K Q09ORklHX0NPTVBBVF9CUks9eQ0KIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0DQpDT05GSUdfU0xV Qj15DQojIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldA0KQ09ORklHX0hBVkVfT1BST0ZJTEU9 eQ0KQ09ORklHX0hBVkVfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1M9eQ0KQ09ORklHX0hBVkVf SU9SRU1BUF9QUk9UPXkNCkNPTkZJR19IQVZFX0tQUk9CRVM9eQ0KQ09ORklHX0hBVkVfS1JFVFBS T0JFUz15DQpDT05GSUdfSEFWRV9PUFRQUk9CRVM9eQ0KQ09ORklHX0hBVkVfQVJDSF9UUkFDRUhP T0s9eQ0KQ09ORklHX0hBVkVfRE1BX0FUVFJTPXkNCkNPTkZJR19IQVZFX1JFR1NfQU5EX1NUQUNL X0FDQ0VTU19BUEk9eQ0KQ09ORklHX0hBVkVfRE1BX0FQSV9ERUJVRz15DQpDT05GSUdfSEFWRV9I V19CUkVBS1BPSU5UPXkNCkNPTkZJR19IQVZFX01JWEVEX0JSRUFLUE9JTlRTX1JFR1M9eQ0KQ09O RklHX0hBVkVfVVNFUl9SRVRVUk5fTk9USUZJRVI9eQ0KQ09ORklHX0hBVkVfUEVSRl9FVkVOVFNf Tk1JPXkNCg0KIw0KIyBHQ09WLWJhc2VkIGtlcm5lbCBwcm9maWxpbmcNCiMNCkNPTkZJR19IQVZF X0dFTkVSSUNfRE1BX0NPSEVSRU5UPXkNCkNPTkZJR19TTEFCSU5GTz15DQpDT05GSUdfUlRfTVVU RVhFUz15DQpDT05GSUdfQkFTRV9TTUFMTD0wDQojIENPTkZJR19NT0RVTEVTIGlzIG5vdCBzZXQN CkNPTkZJR19CTE9DSz15DQpDT05GSUdfTEJEQUY9eQ0KIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMg bm90IHNldA0KIyBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkgaXMgbm90IHNldA0KDQojDQojIElP IFNjaGVkdWxlcnMNCiMNCkNPTkZJR19JT1NDSEVEX05PT1A9eQ0KIyBDT05GSUdfSU9TQ0hFRF9E RUFETElORSBpcyBub3Qgc2V0DQpDT05GSUdfSU9TQ0hFRF9DRlE9eQ0KQ09ORklHX0RFRkFVTFRf Q0ZRPXkNCiMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0DQpDT05GSUdfREVGQVVMVF9J T1NDSEVEPSJjZnEiDQojIENPTkZJR19JTkxJTkVfU1BJTl9UUllMT0NLIGlzIG5vdCBzZXQNCiMg Q09ORklHX0lOTElORV9TUElOX1RSWUxPQ0tfQkggaXMgbm90IHNldA0KIyBDT05GSUdfSU5MSU5F X1NQSU5fTE9DSyBpcyBub3Qgc2V0DQojIENPTkZJR19JTkxJTkVfU1BJTl9MT0NLX0JIIGlzIG5v dCBzZXQNCiMgQ09ORklHX0lOTElORV9TUElOX0xPQ0tfSVJRIGlzIG5vdCBzZXQNCiMgQ09ORklH X0lOTElORV9TUElOX0xPQ0tfSVJRU0FWRSBpcyBub3Qgc2V0DQpDT05GSUdfSU5MSU5FX1NQSU5f VU5MT0NLPXkNCiMgQ09ORklHX0lOTElORV9TUElOX1VOTE9DS19CSCBpcyBub3Qgc2V0DQpDT05G SUdfSU5MSU5FX1NQSU5fVU5MT0NLX0lSUT15DQojIENPTkZJR19JTkxJTkVfU1BJTl9VTkxPQ0tf SVJRUkVTVE9SRSBpcyBub3Qgc2V0DQojIENPTkZJR19JTkxJTkVfUkVBRF9UUllMT0NLIGlzIG5v dCBzZXQNCiMgQ09ORklHX0lOTElORV9SRUFEX0xPQ0sgaXMgbm90IHNldA0KIyBDT05GSUdfSU5M SU5FX1JFQURfTE9DS19CSCBpcyBub3Qgc2V0DQojIENPTkZJR19JTkxJTkVfUkVBRF9MT0NLX0lS USBpcyBub3Qgc2V0DQojIENPTkZJR19JTkxJTkVfUkVBRF9MT0NLX0lSUVNBVkUgaXMgbm90IHNl dA0KQ09ORklHX0lOTElORV9SRUFEX1VOTE9DSz15DQojIENPTkZJR19JTkxJTkVfUkVBRF9VTkxP Q0tfQkggaXMgbm90IHNldA0KQ09ORklHX0lOTElORV9SRUFEX1VOTE9DS19JUlE9eQ0KIyBDT05G SUdfSU5MSU5FX1JFQURfVU5MT0NLX0lSUVJFU1RPUkUgaXMgbm90IHNldA0KIyBDT05GSUdfSU5M SU5FX1dSSVRFX1RSWUxPQ0sgaXMgbm90IHNldA0KIyBDT05GSUdfSU5MSU5FX1dSSVRFX0xPQ0sg aXMgbm90IHNldA0KIyBDT05GSUdfSU5MSU5FX1dSSVRFX0xPQ0tfQkggaXMgbm90IHNldA0KIyBD T05GSUdfSU5MSU5FX1dSSVRFX0xPQ0tfSVJRIGlzIG5vdCBzZXQNCiMgQ09ORklHX0lOTElORV9X UklURV9MT0NLX0lSUVNBVkUgaXMgbm90IHNldA0KQ09ORklHX0lOTElORV9XUklURV9VTkxPQ0s9 eQ0KIyBDT05GSUdfSU5MSU5FX1dSSVRFX1VOTE9DS19CSCBpcyBub3Qgc2V0DQpDT05GSUdfSU5M SU5FX1dSSVRFX1VOTE9DS19JUlE9eQ0KIyBDT05GSUdfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFS RVNUT1JFIGlzIG5vdCBzZXQNCiMgQ09ORklHX01VVEVYX1NQSU5fT05fT1dORVIgaXMgbm90IHNl dA0KIyBDT05GSUdfRlJFRVpFUiBpcyBub3Qgc2V0DQoNCiMNCiMgUHJvY2Vzc29yIHR5cGUgYW5k IGZlYXR1cmVzDQojDQpDT05GSUdfVElDS19PTkVTSE9UPXkNCkNPTkZJR19OT19IWj15DQpDT05G SUdfSElHSF9SRVNfVElNRVJTPXkNCkNPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkN CiMgQ09ORklHX1NNUCBpcyBub3Qgc2V0DQojIENPTkZJR19YODZfRVhURU5ERURfUExBVEZPUk0g aXMgbm90IHNldA0KQ09ORklHX1NDSEVEX09NSVRfRlJBTUVfUE9JTlRFUj15DQpDT05GSUdfUEFS QVZJUlRfR1VFU1Q9eQ0KIyBDT05GSUdfVk1JIGlzIG5vdCBzZXQNCiMgQ09ORklHX0tWTV9DTE9D SyBpcyBub3Qgc2V0DQpDT05GSUdfS1ZNX0dVRVNUPXkNCiMgQ09ORklHX0xHVUVTVF9HVUVTVCBp cyBub3Qgc2V0DQpDT05GSUdfUEFSQVZJUlQ9eQ0KIyBDT05GSUdfUEFSQVZJUlRfREVCVUcgaXMg bm90IHNldA0KQ09ORklHX05PX0JPT1RNRU09eQ0KIyBDT05GSUdfTUVNVEVTVCBpcyBub3Qgc2V0 DQojIENPTkZJR19NMzg2IGlzIG5vdCBzZXQNCiMgQ09ORklHX000ODYgaXMgbm90IHNldA0KIyBD T05GSUdfTTU4NiBpcyBub3Qgc2V0DQojIENPTkZJR19NNTg2VFNDIGlzIG5vdCBzZXQNCiMgQ09O RklHX001ODZNTVggaXMgbm90IHNldA0KIyBDT05GSUdfTTY4NiBpcyBub3Qgc2V0DQojIENPTkZJ R19NUEVOVElVTUlJIGlzIG5vdCBzZXQNCiMgQ09ORklHX01QRU5USVVNSUlJIGlzIG5vdCBzZXQN CiMgQ09ORklHX01QRU5USVVNTSBpcyBub3Qgc2V0DQojIENPTkZJR19NUEVOVElVTTQgaXMgbm90 IHNldA0KIyBDT05GSUdfTUs2IGlzIG5vdCBzZXQNCiMgQ09ORklHX01LNyBpcyBub3Qgc2V0DQoj IENPTkZJR19NSzggaXMgbm90IHNldA0KIyBDT05GSUdfTUNSVVNPRSBpcyBub3Qgc2V0DQojIENP TkZJR19NRUZGSUNFT04gaXMgbm90IHNldA0KIyBDT05GSUdfTVdJTkNISVBDNiBpcyBub3Qgc2V0 DQojIENPTkZJR19NV0lOQ0hJUDNEIGlzIG5vdCBzZXQNCiMgQ09ORklHX01HRU9ERUdYMSBpcyBu b3Qgc2V0DQojIENPTkZJR19NR0VPREVfTFggaXMgbm90IHNldA0KIyBDT05GSUdfTUNZUklYSUlJ IGlzIG5vdCBzZXQNCiMgQ09ORklHX01WSUFDM18yIGlzIG5vdCBzZXQNCiMgQ09ORklHX01WSUFD NyBpcyBub3Qgc2V0DQpDT05GSUdfTUNPUkUyPXkNCiMgQ09ORklHX01BVE9NIGlzIG5vdCBzZXQN CiMgQ09ORklHX1g4Nl9HRU5FUklDIGlzIG5vdCBzZXQNCkNPTkZJR19YODZfQ1BVPXkNCkNPTkZJ R19YODZfSU5URVJOT0RFX0NBQ0hFX1NISUZUPTYNCkNPTkZJR19YODZfQ01QWENIRz15DQpDT05G SUdfWDg2X0wxX0NBQ0hFX1NISUZUPTYNCkNPTkZJR19YODZfWEFERD15DQpDT05GSUdfWDg2X1dQ X1dPUktTX09LPXkNCkNPTkZJR19YODZfSU5WTFBHPXkNCkNPTkZJR19YODZfQlNXQVA9eQ0KQ09O RklHX1g4Nl9QT1BBRF9PSz15DQpDT05GSUdfWDg2X0lOVEVMX1VTRVJDT1BZPXkNCkNPTkZJR19Y ODZfVVNFX1BQUk9fQ0hFQ0tTVU09eQ0KQ09ORklHX1g4Nl9UU0M9eQ0KQ09ORklHX1g4Nl9DTVBY Q0hHNjQ9eQ0KQ09ORklHX1g4Nl9DTU9WPXkNCkNPTkZJR19YODZfTUlOSU1VTV9DUFVfRkFNSUxZ PTUNCkNPTkZJR19YODZfREVCVUdDVExNU1I9eQ0KQ09ORklHX0NQVV9TVVBfSU5URUw9eQ0KQ09O RklHX0NQVV9TVVBfQ1lSSVhfMzI9eQ0KQ09ORklHX0NQVV9TVVBfQU1EPXkNCkNPTkZJR19DUFVf U1VQX0NFTlRBVVI9eQ0KQ09ORklHX0NQVV9TVVBfVFJBTlNNRVRBXzMyPXkNCkNPTkZJR19DUFVf U1VQX1VNQ18zMj15DQpDT05GSUdfSFBFVF9USU1FUj15DQpDT05GSUdfRE1JPXkNCiMgQ09ORklH X0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0DQojIENPTkZJR19JT01NVV9BUEkgaXMgbm90IHNldA0K Q09ORklHX05SX0NQVVM9MQ0KIyBDT05GSUdfUFJFRU1QVF9OT05FIGlzIG5vdCBzZXQNCkNPTkZJ R19QUkVFTVBUX1ZPTFVOVEFSWT15DQojIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQNCiMgQ09O RklHX1g4Nl9VUF9BUElDIGlzIG5vdCBzZXQNCiMgQ09ORklHX1g4Nl9NQ0UgaXMgbm90IHNldA0K Q09ORklHX1ZNODY9eQ0KIyBDT05GSUdfVE9TSElCQSBpcyBub3Qgc2V0DQojIENPTkZJR19JOEsg aXMgbm90IHNldA0KIyBDT05GSUdfWDg2X1JFQk9PVEZJWFVQUyBpcyBub3Qgc2V0DQojIENPTkZJ R19NSUNST0NPREUgaXMgbm90IHNldA0KIyBDT05GSUdfWDg2X01TUiBpcyBub3Qgc2V0DQojIENP TkZJR19YODZfQ1BVSUQgaXMgbm90IHNldA0KIyBDT05GSUdfTk9ISUdITUVNIGlzIG5vdCBzZXQN CkNPTkZJR19ISUdITUVNNEc9eQ0KIyBDT05GSUdfSElHSE1FTTY0RyBpcyBub3Qgc2V0DQpDT05G SUdfUEFHRV9PRkZTRVQ9MHhDMDAwMDAwMA0KQ09ORklHX0hJR0hNRU09eQ0KIyBDT05GSUdfQVJD SF9QSFlTX0FERFJfVF82NEJJVCBpcyBub3Qgc2V0DQpDT05GSUdfQVJDSF9GTEFUTUVNX0VOQUJM RT15DQpDT05GSUdfQVJDSF9TUEFSU0VNRU1fRU5BQkxFPXkNCkNPTkZJR19BUkNIX1NFTEVDVF9N RU1PUllfTU9ERUw9eQ0KQ09ORklHX0lMTEVHQUxfUE9JTlRFUl9WQUxVRT0wDQpDT05GSUdfU0VM RUNUX01FTU9SWV9NT0RFTD15DQpDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQ0KIyBDT05GSUdfU1BB UlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0DQpDT05GSUdfRkxBVE1FTT15DQpDT05GSUdfRkxBVF9O T0RFX01FTV9NQVA9eQ0KQ09ORklHX1NQQVJTRU1FTV9TVEFUSUM9eQ0KQ09ORklHX1BBR0VGTEFH U19FWFRFTkRFRD15DQpDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NA0KIyBDT05GSUdfUEhZU19B RERSX1RfNjRCSVQgaXMgbm90IHNldA0KQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQ0KQ09ORklHX0JP VU5DRT15DQpDT05GSUdfVklSVF9UT19CVVM9eQ0KIyBDT05GSUdfS1NNIGlzIG5vdCBzZXQNCkNP TkZJR19ERUZBVUxUX01NQVBfTUlOX0FERFI9NDA5Ng0KIyBDT05GSUdfSElHSFBURSBpcyBub3Qg c2V0DQojIENPTkZJR19YODZfQ0hFQ0tfQklPU19DT1JSVVBUSU9OIGlzIG5vdCBzZXQNCkNPTkZJ R19YODZfUkVTRVJWRV9MT1dfNjRLPXkNCiMgQ09ORklHX01BVEhfRU1VTEFUSU9OIGlzIG5vdCBz ZXQNCkNPTkZJR19NVFJSPXkNCkNPTkZJR19NVFJSX1NBTklUSVpFUj15DQpDT05GSUdfTVRSUl9T QU5JVElaRVJfRU5BQkxFX0RFRkFVTFQ9MA0KQ09ORklHX01UUlJfU0FOSVRJWkVSX1NQQVJFX1JF R19OUl9ERUZBVUxUPTENCkNPTkZJR19YODZfUEFUPXkNCkNPTkZJR19BUkNIX1VTRVNfUEdfVU5D QUNIRUQ9eQ0KIyBDT05GSUdfU0VDQ09NUCBpcyBub3Qgc2V0DQojIENPTkZJR19DQ19TVEFDS1BS T1RFQ1RPUiBpcyBub3Qgc2V0DQojIENPTkZJR19IWl8xMDAgaXMgbm90IHNldA0KQ09ORklHX0ha XzI1MD15DQojIENPTkZJR19IWl8zMDAgaXMgbm90IHNldA0KIyBDT05GSUdfSFpfMTAwMCBpcyBu b3Qgc2V0DQpDT05GSUdfSFo9MjUwDQpDT05GSUdfU0NIRURfSFJUSUNLPXkNCiMgQ09ORklHX0tF WEVDIGlzIG5vdCBzZXQNCiMgQ09ORklHX0NSQVNIX0RVTVAgaXMgbm90IHNldA0KQ09ORklHX1BI WVNJQ0FMX1NUQVJUPTB4MTAwMDAwMA0KIyBDT05GSUdfUkVMT0NBVEFCTEUgaXMgbm90IHNldA0K Q09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwDQojIENPTkZJR19DT01QQVRfVkRTTyBpcyBu b3Qgc2V0DQojIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldA0KQ09ORklHX0FSQ0hfRU5B QkxFX01FTU9SWV9IT1RQTFVHPXkNCg0KIw0KIyBQb3dlciBtYW5hZ2VtZW50IGFuZCBBQ1BJIG9w dGlvbnMNCiMNCiMgQ09ORklHX1BNIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NGSSBpcyBub3Qgc2V0 DQoNCiMNCiMgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nDQojDQojIENPTkZJR19DUFVfRlJFUSBpcyBu b3Qgc2V0DQojIENPTkZJR19DUFVfSURMRSBpcyBub3Qgc2V0DQoNCiMNCiMgQnVzIG9wdGlvbnMg KFBDSSBldGMuKQ0KIw0KQ09ORklHX1BDST15DQojIENPTkZJR19QQ0lfR09CSU9TIGlzIG5vdCBz ZXQNCiMgQ09ORklHX1BDSV9HT01NQ09ORklHIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BDSV9HT0RJ UkVDVCBpcyBub3Qgc2V0DQpDT05GSUdfUENJX0dPQU5ZPXkNCkNPTkZJR19QQ0lfQklPUz15DQpD T05GSUdfUENJX0RJUkVDVD15DQpDT05GSUdfUENJX0RPTUFJTlM9eQ0KIyBDT05GSUdfUENJX0NO QjIwTEVfUVVJUksgaXMgbm90IHNldA0KIyBDT05GSUdfUENJRVBPUlRCVVMgaXMgbm90IHNldA0K IyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldA0KIyBDT05GSUdfUENJX0RFQlVH IGlzIG5vdCBzZXQNCiMgQ09ORklHX1BDSV9TVFVCIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BDSV9J T1YgaXMgbm90IHNldA0KQ09ORklHX0lTQV9ETUFfQVBJPXkNCiMgQ09ORklHX0lTQSBpcyBub3Qg c2V0DQojIENPTkZJR19NQ0EgaXMgbm90IHNldA0KIyBDT05GSUdfU0N4MjAwIGlzIG5vdCBzZXQN CiMgQ09ORklHX09MUEMgaXMgbm90IHNldA0KIyBDT05GSUdfT0xQQ19PUEVORklSTVdBUkUgaXMg bm90IHNldA0KQ09ORklHX0s4X05CPXkNCiMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0DQojIENP TkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0DQoNCiMNCiMgRXhlY3V0YWJsZSBmaWxlIGZvcm1h dHMgLyBFbXVsYXRpb25zDQojDQpDT05GSUdfQklORk1UX0VMRj15DQojIENPTkZJR19DT1JFX0RV TVBfREVGQVVMVF9FTEZfSEVBREVSUyBpcyBub3Qgc2V0DQpDT05GSUdfSEFWRV9BT1VUPXkNCiMg Q09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQNCiMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5v dCBzZXQNCkNPTkZJR19IQVZFX0FUT01JQ19JT01BUD15DQpDT05GSUdfTkVUPXkNCg0KIw0KIyBO ZXR3b3JraW5nIG9wdGlvbnMNCiMNCkNPTkZJR19QQUNLRVQ9eQ0KQ09ORklHX1VOSVg9eQ0KIyBD T05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0DQpDT05GSUdfSU5FVD15DQpDT05GSUdfSVBfTVVMVElD QVNUPXkNCiMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0DQpDT05GSUdfSVBf RklCX0hBU0g9eQ0KIyBDT05GSUdfSVBfUE5QIGlzIG5vdCBzZXQNCkNPTkZJR19ORVRfSVBJUD15 DQpDT05GSUdfTkVUX0lQR1JFPXkNCiMgQ09ORklHX05FVF9JUEdSRV9CUk9BRENBU1QgaXMgbm90 IHNldA0KIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQNCiMgQ09ORklHX0FSUEQgaXMgbm90 IHNldA0KIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldA0KIyBDT05GSUdfSU5FVF9BSCBp cyBub3Qgc2V0DQojIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0DQojIENPTkZJR19JTkVUX0lQ Q09NUCBpcyBub3Qgc2V0DQojIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQNCkNP TkZJR19JTkVUX1RVTk5FTD15DQojIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMg bm90IHNldA0KIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQNCiMgQ09O RklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldA0KIyBDT05GSUdfSU5FVF9MUk8gaXMg bm90IHNldA0KIyBDT05GSUdfSU5FVF9ESUFHIGlzIG5vdCBzZXQNCiMgQ09ORklHX1RDUF9DT05H X0FEVkFOQ0VEIGlzIG5vdCBzZXQNCkNPTkZJR19UQ1BfQ09OR19DVUJJQz15DQpDT05GSUdfREVG QVVMVF9UQ1BfQ09ORz0iY3ViaWMiDQojIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQNCiMg Q09ORklHX0lQVjYgaXMgbm90IHNldA0KIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBz ZXQNCiMgQ09ORklHX05FVFdPUktfUEhZX1RJTUVTVEFNUElORyBpcyBub3Qgc2V0DQojIENPTkZJ R19ORVRGSUxURVIgaXMgbm90IHNldA0KIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0DQojIENP TkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQNCiMgQ09ORklHX1JEUyBpcyBub3Qgc2V0DQojIENPTkZJ R19USVBDIGlzIG5vdCBzZXQNCiMgQ09ORklHX0FUTSBpcyBub3Qgc2V0DQojIENPTkZJR19MMlRQ IGlzIG5vdCBzZXQNCiMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0DQojIENPTkZJR19ORVRfRFNB IGlzIG5vdCBzZXQNCiMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldA0KIyBDT05GSUdfREVD TkVUIGlzIG5vdCBzZXQNCiMgQ09ORklHX0xMQzIgaXMgbm90IHNldA0KIyBDT05GSUdfSVBYIGlz IG5vdCBzZXQNCiMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQNCiMgQ09ORklHX1gyNSBpcyBub3Qg c2V0DQojIENPTkZJR19MQVBCIGlzIG5vdCBzZXQNCiMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0 DQojIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BIT05FVCBpcyBub3Qg c2V0DQojIENPTkZJR19JRUVFODAyMTU0IGlzIG5vdCBzZXQNCiMgQ09ORklHX05FVF9TQ0hFRCBp cyBub3Qgc2V0DQojIENPTkZJR19EQ0IgaXMgbm90IHNldA0KDQojDQojIE5ldHdvcmsgdGVzdGlu Zw0KIw0KIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0DQojIENPTkZJR19IQU1SQURJTyBp cyBub3Qgc2V0DQojIENPTkZJR19DQU4gaXMgbm90IHNldA0KIyBDT05GSUdfSVJEQSBpcyBub3Qg c2V0DQojIENPTkZJR19CVCBpcyBub3Qgc2V0DQojIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0 DQpDT05GSUdfV0lSRUxFU1M9eQ0KIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldA0KIyBDT05G SUdfTElCODAyMTEgaXMgbm90IHNldA0KDQojDQojIENGRzgwMjExIG5lZWRzIHRvIGJlIGVuYWJs ZWQgZm9yIE1BQzgwMjExDQojDQoNCiMNCiMgU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUg YSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtDQojDQojIENPTkZJR19XSU1BWCBpcyBub3Qgc2V0DQoj IENPTkZJR19SRktJTEwgaXMgbm90IHNldA0KIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQNCiMg Q09ORklHX0NBSUYgaXMgbm90IHNldA0KDQojDQojIERldmljZSBEcml2ZXJzDQojDQoNCiMNCiMg R2VuZXJpYyBEcml2ZXIgT3B0aW9ucw0KIw0KQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3Ni aW4vaG90cGx1ZyINCiMgQ09ORklHX0RFVlRNUEZTIGlzIG5vdCBzZXQNCkNPTkZJR19TVEFOREFM T05FPXkNCkNPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkNCkNPTkZJR19GV19MT0FERVI9 eQ0KQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTD15DQpDT05GSUdfRVhUUkFfRklSTVdBUkU9IiIN CiMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0DQojIENPTkZJR19ERUJVR19ERVZSRVMg aXMgbm90IHNldA0KIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldA0KIyBDT05GSUdf Q09OTkVDVE9SIGlzIG5vdCBzZXQNCiMgQ09ORklHX01URCBpcyBub3Qgc2V0DQojIENPTkZJR19Q QVJQT1JUIGlzIG5vdCBzZXQNCiMgQ09ORklHX0JMS19ERVYgaXMgbm90IHNldA0KQ09ORklHX01J U0NfREVWSUNFUz15DQojIENPTkZJR19JQk1fQVNNIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BIQU5U T00gaXMgbm90IHNldA0KIyBDT05GSUdfU0dJX0lPQzQgaXMgbm90IHNldA0KIyBDT05GSUdfVElG TV9DT1JFIGlzIG5vdCBzZXQNCiMgQ09ORklHX0VOQ0xPU1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0 DQojIENPTkZJR19DUzU1MzVfTUZHUFQgaXMgbm90IHNldA0KIyBDT05GSUdfSFBfSUxPIGlzIG5v dCBzZXQNCiMgQ09ORklHX1ZNV0FSRV9CQUxMT09OIGlzIG5vdCBzZXQNCiMgQ09ORklHX0MyUE9S VCBpcyBub3Qgc2V0DQoNCiMNCiMgRUVQUk9NIHN1cHBvcnQNCiMNCiMgQ09ORklHX0VFUFJPTV85 M0NYNiBpcyBub3Qgc2V0DQojIENPTkZJR19DQjcxMF9DT1JFIGlzIG5vdCBzZXQNCkNPTkZJR19I QVZFX0lERT15DQojIENPTkZJR19JREUgaXMgbm90IHNldA0KDQojDQojIFNDU0kgZGV2aWNlIHN1 cHBvcnQNCiMNCkNPTkZJR19TQ1NJX01PRD15DQojIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBz ZXQNCkNPTkZJR19TQ1NJPXkNCkNPTkZJR19TQ1NJX0RNQT15DQojIENPTkZJR19TQ1NJX1RHVCBp cyBub3Qgc2V0DQojIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldA0KIyBDT05GSUdfU0NT SV9QUk9DX0ZTIGlzIG5vdCBzZXQNCg0KIw0KIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFw ZSwgQ0QtUk9NKQ0KIw0KQ09ORklHX0JMS19ERVZfU0Q9eQ0KIyBDT05GSUdfQ0hSX0RFVl9TVCBp cyBub3Qgc2V0DQojIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldA0KIyBDT05GSUdfQkxL X0RFVl9TUiBpcyBub3Qgc2V0DQojIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQNCiMgQ09O RklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5v dCBzZXQNCiMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NDU0lf TE9HR0lORyBpcyBub3Qgc2V0DQojIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldA0K DQojDQojIFNDU0kgVHJhbnNwb3J0cw0KIw0KIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90 IHNldA0KIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0DQojIENPTkZJR19TQ1NJX0lT Q1NJX0FUVFJTIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0 DQojIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0DQojIENPTkZJR19TQ1NJX0xPV0xF VkVMIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NDU0lfREggaXMgbm90IHNldA0KIyBDT05GSUdfU0NT SV9PU0RfSU5JVElBVE9SIGlzIG5vdCBzZXQNCkNPTkZJR19BVEE9eQ0KIyBDT05GSUdfQVRBX05P TlNUQU5EQVJEIGlzIG5vdCBzZXQNCkNPTkZJR19BVEFfVkVSQk9TRV9FUlJPUj15DQojIENPTkZJ R19TQVRBX1BNUCBpcyBub3Qgc2V0DQoNCiMNCiMgQ29udHJvbGxlcnMgd2l0aCBub24tU0ZGIG5h dGl2ZSBpbnRlcmZhY2UNCiMNCiMgQ09ORklHX1NBVEFfQUhDSSBpcyBub3Qgc2V0DQojIENPTkZJ R19TQVRBX0FIQ0lfUExBVEZPUk0gaXMgbm90IHNldA0KIyBDT05GSUdfU0FUQV9JTklDMTYyWCBp cyBub3Qgc2V0DQojIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQNCkNPTkZJR19BVEFfU0ZG PXkNCg0KIw0KIyBTRkYgY29udHJvbGxlcnMgd2l0aCBjdXN0b20gRE1BIGludGVyZmFjZQ0KIw0K IyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldA0KIyBDT05GSUdfU0FUQV9RU1RPUiBpcyBub3Qg c2V0DQojIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0DQpDT05GSUdfQVRBX0JNRE1BPXkNCg0K Iw0KIyBTQVRBIFNGRiBjb250cm9sbGVycyB3aXRoIEJNRE1BDQojDQpDT05GSUdfQVRBX1BJSVg9 eQ0KIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0DQojIENPTkZJR19TQVRBX05WIGlzIG5vdCBz ZXQNCiMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0DQojIENPTkZJR19TQVRBX1NJTCBp cyBub3Qgc2V0DQojIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0DQojIENPTkZJR19TQVRBX1NW VyBpcyBub3Qgc2V0DQojIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0DQojIENPTkZJR19TQVRB X1ZJQSBpcyBub3Qgc2V0DQojIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldA0KDQojDQoj IFBBVEEgU0ZGIGNvbnRyb2xsZXJzIHdpdGggQk1ETUENCiMNCiMgQ09ORklHX1BBVEFfQUxJIGlz IG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfQVJU T1AgaXMgbm90IHNldA0KIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldA0KIyBDT05GSUdf UEFUQV9BVFA4NjdYIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfQ01ENjRYIGlzIG5vdCBzZXQN CiMgQ09ORklHX1BBVEFfQ1M1NTIwIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfQ1M1NTMwIGlz IG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfQ1M1NTM1IGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFf Q1M1NTM2IGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfQ1lQUkVTUyBpcyBub3Qgc2V0DQojIENP TkZJR19QQVRBX0VGQVIgaXMgbm90IHNldA0KIyBDT05GSUdfUEFUQV9IUFQzNjYgaXMgbm90IHNl dA0KIyBDT05GSUdfUEFUQV9IUFQzN1ggaXMgbm90IHNldA0KIyBDT05GSUdfUEFUQV9IUFQzWDJO IGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfSFBUM1gzIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BB VEFfSVQ4MjEzIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfSVQ4MjFYIGlzIG5vdCBzZXQNCiMg Q09ORklHX1BBVEFfSk1JQ1JPTiBpcyBub3Qgc2V0DQojIENPTkZJR19QQVRBX01BUlZFTEwgaXMg bm90IHNldA0KIyBDT05GSUdfUEFUQV9ORVRDRUxMIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFf TklOSkEzMiBpcyBub3Qgc2V0DQojIENPTkZJR19QQVRBX05TODc0MTUgaXMgbm90IHNldA0KIyBD T05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfT1BUSURNQSBpcyBu b3Qgc2V0DQojIENPTkZJR19QQVRBX1BEQzIwMjdYIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFf UERDX09MRCBpcyBub3Qgc2V0DQojIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldA0KIyBD T05GSUdfUEFUQV9SREMgaXMgbm90IHNldA0KIyBDT05GSUdfUEFUQV9TQzEyMDAgaXMgbm90IHNl dA0KIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldA0KIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JL UyBpcyBub3Qgc2V0DQojIENPTkZJR19QQVRBX1NJTDY4MCBpcyBub3Qgc2V0DQojIENPTkZJR19Q QVRBX1NJUyBpcyBub3Qgc2V0DQojIENPTkZJR19QQVRBX1RPU0hJQkEgaXMgbm90IHNldA0KIyBD T05GSUdfUEFUQV9UUklGTEVYIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBz ZXQNCiMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0DQoNCiMNCiMgUElPLW9ubHkgU0ZG IGNvbnRyb2xsZXJzDQojDQojIENPTkZJR19QQVRBX0NNRDY0MF9QQ0kgaXMgbm90IHNldA0KIyBD T05GSUdfUEFUQV9NUElJWCBpcyBub3Qgc2V0DQojIENPTkZJR19QQVRBX05TODc0MTAgaXMgbm90 IHNldA0KIyBDT05GSUdfUEFUQV9PUFRJIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfUloxMDAw IGlzIG5vdCBzZXQNCg0KIw0KIyBHZW5lcmljIGZhbGxiYWNrIC8gbGVnYWN5IGRyaXZlcnMNCiMN CiMgQ09ORklHX0FUQV9HRU5FUklDIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BBVEFfTEVHQUNZIGlz IG5vdCBzZXQNCiMgQ09ORklHX01EIGlzIG5vdCBzZXQNCiMgQ09ORklHX0ZVU0lPTiBpcyBub3Qg c2V0DQoNCiMNCiMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydA0KIw0KDQojDQojIFlvdSBj YW4gZW5hYmxlIG9uZSBvciBib3RoIEZpcmVXaXJlIGRyaXZlciBzdGFja3MuDQojDQoNCiMNCiMg VGhlIG5ld2VyIHN0YWNrIGlzIHJlY29tbWVuZGVkLg0KIw0KIyBDT05GSUdfRklSRVdJUkUgaXMg bm90IHNldA0KIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldA0KIyBDT05GSUdfRklSRVdJUkVf Tk9TWSBpcyBub3Qgc2V0DQojIENPTkZJR19JMk8gaXMgbm90IHNldA0KIyBDT05GSUdfTUFDSU5U T1NIX0RSSVZFUlMgaXMgbm90IHNldA0KQ09ORklHX05FVERFVklDRVM9eQ0KIyBDT05GSUdfRFVN TVkgaXMgbm90IHNldA0KIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0DQojIENPTkZJR19NQUNW TEFOIGlzIG5vdCBzZXQNCiMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0DQojIENPTkZJR19U VU4gaXMgbm90IHNldA0KIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0DQojIENPTkZJR19BUkNORVQg aXMgbm90IHNldA0KIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQNCiMgQ09ORklHX05FVF9FVEhF Uk5FVCBpcyBub3Qgc2V0DQpDT05GSUdfTkVUREVWXzEwMDA9eQ0KIyBDT05GSUdfQUNFTklDIGlz IG5vdCBzZXQNCiMgQ09ORklHX0RMMksgaXMgbm90IHNldA0KQ09ORklHX0UxMDAwPXkNCiMgQ09O RklHX0UxMDAwRSBpcyBub3Qgc2V0DQojIENPTkZJR19JUDEwMDAgaXMgbm90IHNldA0KIyBDT05G SUdfSUdCIGlzIG5vdCBzZXQNCiMgQ09ORklHX0lHQlZGIGlzIG5vdCBzZXQNCiMgQ09ORklHX05T ODM4MjAgaXMgbm90IHNldA0KIyBDT05GSUdfSEFNQUNISSBpcyBub3Qgc2V0DQojIENPTkZJR19Z RUxMT1dGSU4gaXMgbm90IHNldA0KIyBDT05GSUdfUjgxNjkgaXMgbm90IHNldA0KIyBDT05GSUdf U0lTMTkwIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NLR0UgaXMgbm90IHNldA0KIyBDT05GSUdfU0tZ MiBpcyBub3Qgc2V0DQojIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldA0KIyBDT05GSUdf VElHT04zIGlzIG5vdCBzZXQNCiMgQ09ORklHX0JOWDIgaXMgbm90IHNldA0KIyBDT05GSUdfQ05J QyBpcyBub3Qgc2V0DQojIENPTkZJR19RTEEzWFhYIGlzIG5vdCBzZXQNCiMgQ09ORklHX0FUTDEg aXMgbm90IHNldA0KIyBDT05GSUdfQVRMMUUgaXMgbm90IHNldA0KIyBDT05GSUdfQVRMMUMgaXMg bm90IHNldA0KIyBDT05GSUdfSk1FIGlzIG5vdCBzZXQNCiMgQ09ORklHX05FVERFVl8xMDAwMCBp cyBub3Qgc2V0DQojIENPTkZJR19UUiBpcyBub3Qgc2V0DQojIENPTkZJR19XTEFOIGlzIG5vdCBz ZXQNCg0KIw0KIyBFbmFibGUgV2lNQVggKE5ldHdvcmtpbmcgb3B0aW9ucykgdG8gc2VlIHRoZSBX aU1BWCBkcml2ZXJzDQojDQojIENPTkZJR19XQU4gaXMgbm90IHNldA0KDQojDQojIENBSUYgdHJh bnNwb3J0IGRyaXZlcnMNCiMNCiMgQ09ORklHX0ZEREkgaXMgbm90IHNldA0KIyBDT05GSUdfSElQ UEkgaXMgbm90IHNldA0KIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NMSVAgaXMg bm90IHNldA0KIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQNCiMgQ09ORklHX05FVENPTlNPTEUg aXMgbm90IHNldA0KIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0DQojIENPTkZJR19ORVRfUE9M TF9DT05UUk9MTEVSIGlzIG5vdCBzZXQNCiMgQ09ORklHX1ZNWE5FVDMgaXMgbm90IHNldA0KIyBD T05GSUdfSVNETiBpcyBub3Qgc2V0DQojIENPTkZJR19QSE9ORSBpcyBub3Qgc2V0DQoNCiMNCiMg SW5wdXQgZGV2aWNlIHN1cHBvcnQNCiMNCkNPTkZJR19JTlBVVD15DQojIENPTkZJR19JTlBVVF9G Rl9NRU1MRVNTIGlzIG5vdCBzZXQNCiMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldA0K IyBDT05GSUdfSU5QVVRfU1BBUlNFS01BUCBpcyBub3Qgc2V0DQoNCiMNCiMgVXNlcmxhbmQgaW50 ZXJmYWNlcw0KIw0KQ09ORklHX0lOUFVUX01PVVNFREVWPXkNCkNPTkZJR19JTlBVVF9NT1VTRURF Vl9QU0FVWD15DQpDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNA0KQ09ORklHX0lO UFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OA0KIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBz ZXQNCkNPTkZJR19JTlBVVF9FVkRFVj15DQojIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0 DQoNCiMNCiMgSW5wdXQgRGV2aWNlIERyaXZlcnMNCiMNCkNPTkZJR19JTlBVVF9LRVlCT0FSRD15 DQpDT05GSUdfS0VZQk9BUkRfQVRLQkQ9eQ0KIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90 IHNldA0KIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQNCiMgQ09ORklHX0tFWUJP QVJEX09QRU5DT1JFUyBpcyBub3Qgc2V0DQojIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBu b3Qgc2V0DQojIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldA0KIyBDT05GSUdfS0VZ Qk9BUkRfWFRLQkQgaXMgbm90IHNldA0KIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldA0K IyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldA0KIyBDT05GSUdfSU5QVVRfVEFCTEVU IGlzIG5vdCBzZXQNCiMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQNCiMgQ09O RklHX0lOUFVUX01JU0MgaXMgbm90IHNldA0KDQojDQojIEhhcmR3YXJlIEkvTyBwb3J0cw0KIw0K Q09ORklHX1NFUklPPXkNCkNPTkZJR19TRVJJT19JODA0Mj15DQojIENPTkZJR19TRVJJT19TRVJQ T1JUIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NFUklPX0NUODJDNzEwIGlzIG5vdCBzZXQNCiMgQ09O RklHX1NFUklPX1BDSVBTMiBpcyBub3Qgc2V0DQpDT05GSUdfU0VSSU9fTElCUFMyPXkNCiMgQ09O RklHX1NFUklPX1JBVyBpcyBub3Qgc2V0DQojIENPTkZJR19TRVJJT19BTFRFUkFfUFMyIGlzIG5v dCBzZXQNCiMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQNCg0KIw0KIyBDaGFyYWN0ZXIgZGV2 aWNlcw0KIw0KQ09ORklHX1ZUPXkNCkNPTkZJR19DT05TT0xFX1RSQU5TTEFUSU9OUz15DQpDT05G SUdfVlRfQ09OU09MRT15DQpDT05GSUdfSFdfQ09OU09MRT15DQojIENPTkZJR19WVF9IV19DT05T T0xFX0JJTkRJTkcgaXMgbm90IHNldA0KQ09ORklHX0RFVktNRU09eQ0KIyBDT05GSUdfU0VSSUFM X05PTlNUQU5EQVJEIGlzIG5vdCBzZXQNCiMgQ09ORklHX05fR1NNIGlzIG5vdCBzZXQNCiMgQ09O RklHX05PWk9NSSBpcyBub3Qgc2V0DQoNCiMNCiMgU2VyaWFsIGRyaXZlcnMNCiMNCkNPTkZJR19T RVJJQUxfODI1MD15DQpDT05GSUdfU0VSSUFMXzgyNTBfQ09OU09MRT15DQpDT05GSUdfRklYX0VB UkxZQ09OX01FTT15DQpDT05GSUdfU0VSSUFMXzgyNTBfUENJPXkNCkNPTkZJR19TRVJJQUxfODI1 MF9OUl9VQVJUUz00DQpDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz00DQojIENPTkZJ R19TRVJJQUxfODI1MF9FWFRFTkRFRCBpcyBub3Qgc2V0DQoNCiMNCiMgTm9uLTgyNTAgc2VyaWFs IHBvcnQgc3VwcG9ydA0KIw0KIyBDT05GSUdfU0VSSUFMX01GRF9IU1UgaXMgbm90IHNldA0KQ09O RklHX1NFUklBTF9DT1JFPXkNCkNPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkNCiMgQ09ORklH X1NFUklBTF9KU00gaXMgbm90IHNldA0KIyBDT05GSUdfU0VSSUFMX1RJTUJFUkRBTEUgaXMgbm90 IHNldA0KIyBDT05GSUdfU0VSSUFMX0FMVEVSQV9KVEFHVUFSVCBpcyBub3Qgc2V0DQojIENPTkZJ R19TRVJJQUxfQUxURVJBX1VBUlQgaXMgbm90IHNldA0KQ09ORklHX1VOSVg5OF9QVFlTPXkNCiMg Q09ORklHX0RFVlBUU19NVUxUSVBMRV9JTlNUQU5DRVMgaXMgbm90IHNldA0KQ09ORklHX0xFR0FD WV9QVFlTPXkNCkNPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1Ng0KIyBDT05GSUdfSVBNSV9IQU5E TEVSIGlzIG5vdCBzZXQNCiMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0DQojIENPTkZJR19O VlJBTSBpcyBub3Qgc2V0DQojIENPTkZJR19SVEMgaXMgbm90IHNldA0KIyBDT05GSUdfR0VOX1JU QyBpcyBub3Qgc2V0DQojIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0DQojIENPTkZJR19BUFBMSUNP TSBpcyBub3Qgc2V0DQojIENPTkZJR19TT05ZUEkgaXMgbm90IHNldA0KIyBDT05GSUdfTVdBVkUg aXMgbm90IHNldA0KIyBDT05GSUdfUEM4NzM2eF9HUElPIGlzIG5vdCBzZXQNCiMgQ09ORklHX05T Q19HUElPIGlzIG5vdCBzZXQNCiMgQ09ORklHX0NTNTUzNV9HUElPIGlzIG5vdCBzZXQNCiMgQ09O RklHX1JBV19EUklWRVIgaXMgbm90IHNldA0KIyBDT05GSUdfSEFOR0NIRUNLX1RJTUVSIGlzIG5v dCBzZXQNCiMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldA0KIyBDT05GSUdfVEVMQ0xPQ0sgaXMg bm90IHNldA0KQ09ORklHX0RFVlBPUlQ9eQ0KIyBDT05GSUdfUkFNT09QUyBpcyBub3Qgc2V0DQoj IENPTkZJR19JMkMgaXMgbm90IHNldA0KIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQNCg0KIw0KIyBQ UFMgc3VwcG9ydA0KIw0KIyBDT05GSUdfUFBTIGlzIG5vdCBzZXQNCkNPTkZJR19BUkNIX1dBTlRf T1BUSU9OQUxfR1BJT0xJQj15DQojIENPTkZJR19HUElPTElCIGlzIG5vdCBzZXQNCiMgQ09ORklH X1cxIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0DQojIENPTkZJ R19IV01PTiBpcyBub3Qgc2V0DQojIENPTkZJR19USEVSTUFMIGlzIG5vdCBzZXQNCiMgQ09ORklH X1dBVENIRE9HIGlzIG5vdCBzZXQNCkNPTkZJR19TU0JfUE9TU0lCTEU9eQ0KDQojDQojIFNvbmlj cyBTaWxpY29uIEJhY2twbGFuZQ0KIw0KIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQNCiMgQ09ORklH X01GRF9TVVBQT1JUIGlzIG5vdCBzZXQNCiMgQ09ORklHX1JFR1VMQVRPUiBpcyBub3Qgc2V0DQoj IENPTkZJR19NRURJQV9TVVBQT1JUIGlzIG5vdCBzZXQNCg0KIw0KIyBHcmFwaGljcyBzdXBwb3J0 DQojDQojIENPTkZJR19BR1AgaXMgbm90IHNldA0KQ09ORklHX1ZHQV9BUkI9eQ0KQ09ORklHX1ZH QV9BUkJfTUFYX0dQVVM9MTYNCiMgQ09ORklHX0RSTSBpcyBub3Qgc2V0DQojIENPTkZJR19WR0FT VEFURSBpcyBub3Qgc2V0DQojIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0 DQojIENPTkZJR19GQiBpcyBub3Qgc2V0DQojIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQg aXMgbm90IHNldA0KDQojDQojIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQNCiMNCiMgQ09ORklHX0RJ U1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0DQoNCiMNCiMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBz dXBwb3J0DQojDQpDT05GSUdfVkdBX0NPTlNPTEU9eQ0KQ09ORklHX1ZHQUNPTl9TT0ZUX1NDUk9M TEJBQ0s9eQ0KQ09ORklHX1ZHQUNPTl9TT0ZUX1NDUk9MTEJBQ0tfU0laRT0xMjgNCkNPTkZJR19E VU1NWV9DT05TT0xFPXkNCiMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQNCiMgQ09ORklHX0hJRF9T VVBQT1JUIGlzIG5vdCBzZXQNCiMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXQNCiMgQ09O RklHX1VXQiBpcyBub3Qgc2V0DQojIENPTkZJR19NTUMgaXMgbm90IHNldA0KIyBDT05GSUdfTUVN U1RJQ0sgaXMgbm90IHNldA0KIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldA0KIyBDT05GSUdf QUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0DQojIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQN CiMgQ09ORklHX0VEQUMgaXMgbm90IHNldA0KIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQN CiMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldA0KIyBDT05GSUdfQVVYRElTUExBWSBpcyBu b3Qgc2V0DQojIENPTkZJR19VSU8gaXMgbm90IHNldA0KIyBDT05GSUdfU1RBR0lORyBpcyBub3Qg c2V0DQojIENPTkZJR19YODZfUExBVEZPUk1fREVWSUNFUyBpcyBub3Qgc2V0DQoNCiMNCiMgRmly bXdhcmUgRHJpdmVycw0KIw0KIyBDT05GSUdfRUREIGlzIG5vdCBzZXQNCkNPTkZJR19GSVJNV0FS RV9NRU1NQVA9eQ0KIyBDT05GSUdfREVMTF9SQlUgaXMgbm90IHNldA0KIyBDT05GSUdfRENEQkFT IGlzIG5vdCBzZXQNCkNPTkZJR19ETUlJRD15DQojIENPTkZJR19JU0NTSV9JQkZUX0ZJTkQgaXMg bm90IHNldA0KDQojDQojIEZpbGUgc3lzdGVtcw0KIw0KIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qg c2V0DQpDT05GSUdfRVhUM19GUz15DQojIENPTkZJR19FWFQzX0RFRkFVTFRTX1RPX09SREVSRUQg aXMgbm90IHNldA0KQ09ORklHX0VYVDNfRlNfWEFUVFI9eQ0KQ09ORklHX0VYVDNfRlNfUE9TSVhf QUNMPXkNCiMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldA0KIyBDT05GSUdfRVhU NF9GUyBpcyBub3Qgc2V0DQpDT05GSUdfSkJEPXkNCkNPTkZJR19GU19NQkNBQ0hFPXkNCiMgQ09O RklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQNCiMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0DQpD T05GSUdfRlNfUE9TSVhfQUNMPXkNCiMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0DQojIENPTkZJ R19HRlMyX0ZTIGlzIG5vdCBzZXQNCiMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQNCiMgQ09O RklHX0JUUkZTX0ZTIGlzIG5vdCBzZXQNCiMgQ09ORklHX05JTEZTMl9GUyBpcyBub3Qgc2V0DQpD T05GSUdfRklMRV9MT0NLSU5HPXkNCiMgQ09ORklHX0ZTTk9USUZZIGlzIG5vdCBzZXQNCiMgQ09O RklHX0ROT1RJRlkgaXMgbm90IHNldA0KIyBDT05GSUdfSU5PVElGWV9VU0VSIGlzIG5vdCBzZXQN CiMgQ09ORklHX0ZBTk9USUZZIGlzIG5vdCBzZXQNCiMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQN CiMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0DQojIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5v dCBzZXQNCiMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldA0KQ09ORklHX0dFTkVSSUNfQUNMPXkN Cg0KIw0KIyBDYWNoZXMNCiMNCiMgQ09ORklHX0ZTQ0FDSEUgaXMgbm90IHNldA0KDQojDQojIENE LVJPTS9EVkQgRmlsZXN5c3RlbXMNCiMNCiMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldA0K IyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQNCg0KIw0KIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1z DQojDQojIENPTkZJR19NU0RPU19GUyBpcyBub3Qgc2V0DQojIENPTkZJR19WRkFUX0ZTIGlzIG5v dCBzZXQNCiMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldA0KDQojDQojIFBzZXVkbyBmaWxlc3lz dGVtcw0KIw0KQ09ORklHX1BST0NfRlM9eQ0KQ09ORklHX1BST0NfS0NPUkU9eQ0KQ09ORklHX1BS T0NfU1lTQ1RMPXkNCkNPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15DQpDT05GSUdfU1lTRlM9eQ0K Q09ORklHX1RNUEZTPXkNCkNPTkZJR19UTVBGU19QT1NJWF9BQ0w9eQ0KIyBDT05GSUdfSFVHRVRM QkZTIGlzIG5vdCBzZXQNCiMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0DQojIENPTkZJ R19DT05GSUdGU19GUyBpcyBub3Qgc2V0DQojIENPTkZJR19NSVNDX0ZJTEVTWVNURU1TIGlzIG5v dCBzZXQNCiMgQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVMgaXMgbm90IHNldA0KDQojDQojIFBh cnRpdGlvbiBUeXBlcw0KIw0KIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQN CkNPTkZJR19NU0RPU19QQVJUSVRJT049eQ0KIyBDT05GSUdfTkxTIGlzIG5vdCBzZXQNCiMgQ09O RklHX0RMTSBpcyBub3Qgc2V0DQoNCiMNCiMgS2VybmVsIGhhY2tpbmcNCiMNCkNPTkZJR19UUkFD RV9JUlFGTEFHU19TVVBQT1JUPXkNCiMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQNCkNP TkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkNCiMgQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNL IGlzIG5vdCBzZXQNCkNPTkZJR19GUkFNRV9XQVJOPTEwMjQNCkNPTkZJR19NQUdJQ19TWVNSUT15 DQojIENPTkZJR19TVFJJUF9BU01fU1lNUyBpcyBub3Qgc2V0DQpDT05GSUdfVU5VU0VEX1NZTUJP TFM9eQ0KIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldA0KIyBDT05GSUdfSEVBREVSU19DSEVD SyBpcyBub3Qgc2V0DQpDT05GSUdfREVCVUdfS0VSTkVMPXkNCiMgQ09ORklHX0RFQlVHX1NISVJR IGlzIG5vdCBzZXQNCiMgQ09ORklHX0xPQ0tVUF9ERVRFQ1RPUiBpcyBub3Qgc2V0DQojIENPTkZJ R19IQVJETE9DS1VQX0RFVEVDVE9SIGlzIG5vdCBzZXQNCkNPTkZJR19ERVRFQ1RfSFVOR19UQVNL PXkNCiMgQ09ORklHX0JPT1RQQVJBTV9IVU5HX1RBU0tfUEFOSUMgaXMgbm90IHNldA0KQ09ORklH X0JPT1RQQVJBTV9IVU5HX1RBU0tfUEFOSUNfVkFMVUU9MA0KIyBDT05GSUdfU0NIRURfREVCVUcg aXMgbm90IHNldA0KIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0DQpDT05GSUdfVElNRVJf U1RBVFM9eQ0KIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0DQojIENPTkZJR19TTFVC X0RFQlVHX09OIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldA0KIyBD T05GSUdfREVCVUdfS01FTUxFQUsgaXMgbm90IHNldA0KIyBDT05GSUdfREVCVUdfUlRfTVVURVhF UyBpcyBub3Qgc2V0DQojIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldA0KIyBDT05G SUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldA0KIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBu b3Qgc2V0DQojIENPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQNCiMgQ09ORklHX1BS T1ZFX0xPQ0tJTkcgaXMgbm90IHNldA0KIyBDT05GSUdfTE9DS19TVEFUIGlzIG5vdCBzZXQNCiMg Q09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQNCiMgQ09ORklHX0RFQlVHX0xP Q0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0DQojIENPTkZJR19ERUJVR19LT0JKRUNUIGlz IG5vdCBzZXQNCiMgQ09ORklHX0RFQlVHX0hJR0hNRU0gaXMgbm90IHNldA0KQ09ORklHX0RFQlVH X0JVR1ZFUkJPU0U9eQ0KIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0DQojIENPTkZJR19E RUJVR19WTSBpcyBub3Qgc2V0DQojIENPTkZJR19ERUJVR19WSVJUVUFMIGlzIG5vdCBzZXQNCiMg Q09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldA0KQ09ORklHX0RFQlVHX01FTU9SWV9J TklUPXkNCiMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldA0KIyBDT05GSUdfREVCVUdfU0cg aXMgbm90IHNldA0KIyBDT05GSUdfREVCVUdfTk9USUZJRVJTIGlzIG5vdCBzZXQNCiMgQ09ORklH X0RFQlVHX0NSRURFTlRJQUxTIGlzIG5vdCBzZXQNCkNPTkZJR19BUkNIX1dBTlRfRlJBTUVfUE9J TlRFUlM9eQ0KIyBDT05GSUdfRlJBTUVfUE9JTlRFUiBpcyBub3Qgc2V0DQojIENPTkZJR19CT09U X1BSSU5US19ERUxBWSBpcyBub3Qgc2V0DQojIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5v dCBzZXQNCiMgQ09ORklHX1JDVV9DUFVfU1RBTExfREVURUNUT1IgaXMgbm90IHNldA0KIyBDT05G SUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0DQojIENPTkZJR19ERUJVR19CTE9DS19F WFRfREVWVCBpcyBub3Qgc2V0DQojIENPTkZJR19ERUJVR19GT1JDRV9XRUFLX1BFUl9DUFUgaXMg bm90IHNldA0KIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQNCiMgQ09ORklHX0xB VEVOQ1lUT1AgaXMgbm90IHNldA0KIyBDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0sgaXMgbm90 IHNldA0KIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQNCkNPTkZJR19VU0VSX1NU QUNLVFJBQ0VfU1VQUE9SVD15DQpDT05GSUdfSEFWRV9GVU5DVElPTl9UUkFDRVI9eQ0KQ09ORklH X0hBVkVfRlVOQ1RJT05fR1JBUEhfVFJBQ0VSPXkNCkNPTkZJR19IQVZFX0ZVTkNUSU9OX0dSQVBI X0ZQX1RFU1Q9eQ0KQ09ORklHX0hBVkVfRlVOQ1RJT05fVFJBQ0VfTUNPVU5UX1RFU1Q9eQ0KQ09O RklHX0hBVkVfRFlOQU1JQ19GVFJBQ0U9eQ0KQ09ORklHX0hBVkVfRlRSQUNFX01DT1VOVF9SRUNP UkQ9eQ0KQ09ORklHX0hBVkVfU1lTQ0FMTF9UUkFDRVBPSU5UUz15DQpDT05GSUdfVFJBQ0lOR19T VVBQT1JUPXkNCiMgQ09ORklHX0ZUUkFDRSBpcyBub3Qgc2V0DQojIENPTkZJR19QUk9WSURFX09I Q0kxMzk0X0RNQV9JTklUIGlzIG5vdCBzZXQNCiMgQ09ORklHX0RNQV9BUElfREVCVUcgaXMgbm90 IHNldA0KIyBDT05GSUdfQVRPTUlDNjRfU0VMRlRFU1QgaXMgbm90IHNldA0KIyBDT05GSUdfU0FN UExFUyBpcyBub3Qgc2V0DQpDT05GSUdfSEFWRV9BUkNIX0tHREI9eQ0KIyBDT05GSUdfS0dEQiBp cyBub3Qgc2V0DQpDT05GSUdfSEFWRV9BUkNIX0tNRU1DSEVDSz15DQojIENPTkZJR19TVFJJQ1Rf REVWTUVNIGlzIG5vdCBzZXQNCkNPTkZJR19YODZfVkVSQk9TRV9CT09UVVA9eQ0KQ09ORklHX0VB UkxZX1BSSU5USz15DQojIENPTkZJR19FQVJMWV9QUklOVEtfREJHUCBpcyBub3Qgc2V0DQpDT05G SUdfREVCVUdfU1RBQ0tPVkVSRkxPVz15DQojIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBu b3Qgc2V0DQojIENPTkZJR19YODZfUFREVU1QIGlzIG5vdCBzZXQNCiMgQ09ORklHX0RFQlVHX1JP REFUQSBpcyBub3Qgc2V0DQojIENPTkZJR180S1NUQUNLUyBpcyBub3Qgc2V0DQpDT05GSUdfRE9V QkxFRkFVTFQ9eQ0KIyBDT05GSUdfSU9NTVVfU1RSRVNTIGlzIG5vdCBzZXQNCkNPTkZJR19IQVZF X01NSU9UUkFDRV9TVVBQT1JUPXkNCkNPTkZJR19JT19ERUxBWV9UWVBFXzBYODA9MA0KQ09ORklH X0lPX0RFTEFZX1RZUEVfMFhFRD0xDQpDT05GSUdfSU9fREVMQVlfVFlQRV9VREVMQVk9Mg0KQ09O RklHX0lPX0RFTEFZX1RZUEVfTk9ORT0zDQpDT05GSUdfSU9fREVMQVlfMFg4MD15DQojIENPTkZJ R19JT19ERUxBWV8wWEVEIGlzIG5vdCBzZXQNCiMgQ09ORklHX0lPX0RFTEFZX1VERUxBWSBpcyBu b3Qgc2V0DQojIENPTkZJR19JT19ERUxBWV9OT05FIGlzIG5vdCBzZXQNCkNPTkZJR19ERUZBVUxU X0lPX0RFTEFZX1RZUEU9MA0KIyBDT05GSUdfQ1BBX0RFQlVHIGlzIG5vdCBzZXQNCiMgQ09ORklH X09QVElNSVpFX0lOTElOSU5HIGlzIG5vdCBzZXQNCiMgQ09ORklHX0RFQlVHX1NUUklDVF9VU0VS X0NPUFlfQ0hFQ0tTIGlzIG5vdCBzZXQNCg0KIw0KIyBTZWN1cml0eSBvcHRpb25zDQojDQojIENP TkZJR19LRVlTIGlzIG5vdCBzZXQNCiMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQNCiMgQ09O RklHX1NFQ1VSSVRZRlMgaXMgbm90IHNldA0KQ09ORklHX0RFRkFVTFRfU0VDVVJJVFlfREFDPXkN CkNPTkZJR19ERUZBVUxUX1NFQ1VSSVRZPSIiDQojIENPTkZJR19DUllQVE8gaXMgbm90IHNldA0K Q09ORklHX0hBVkVfS1ZNPXkNCiMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQNCiMg Q09ORklHX0JJTkFSWV9QUklOVEYgaXMgbm90IHNldA0KDQojDQojIExpYnJhcnkgcm91dGluZXMN CiMNCkNPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUPXkNCkNPTkZJR19HRU5FUklDX0ZJTkRf TkVYVF9CSVQ9eQ0KQ09ORklHX0dFTkVSSUNfRklORF9MQVNUX0JJVD15DQojIENPTkZJR19DUkNf Q0NJVFQgaXMgbm90IHNldA0KIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldA0KIyBDT05GSUdfQ1JD X1QxMERJRiBpcyBub3Qgc2V0DQojIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldA0KIyBDT05G SUdfQ1JDMzIgaXMgbm90IHNldA0KIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0DQojIENPTkZJR19M SUJDUkMzMkMgaXMgbm90IHNldA0KQ09ORklHX0hBU19JT01FTT15DQpDT05GSUdfSEFTX0lPUE9S VD15DQpDT05GSUdfSEFTX0RNQT15DQpDT05GSUdfTkxBVFRSPXkNCi== --=-1Pfsztdh0Du+IpKplGfj Content-Type: application/x-shellscript; name="tunnels.sh" Content-Disposition: attachment; filename="tunnels.sh" Content-Transfer-Encoding: base64 IyEvYmluL2Jhc2ggLWUKI0F1dGhvcjogQmVhdHJpY2UgQmFyYmUKaWYgW1sgJCMgLW5lIDEgXV07 IHRoZW4KICAgIGVjaG8gInVzYWdlOiQwIDx0dW5fbnVtYmVyPiI7CiAgICBleGl0IC0xOwpmaQoK bmJlcl90dW49JDEKeD0xCgpSRU1PVEVfTkVUPSIxOTIuMTY4LjEwLjAiClJFTU9URV9ORVRNQVNL PSIyNTUuMjU1LjI1NS4wIgoKTE9DQUxfRVhUPSIxOTIuMTY4LjEuMjU0IgpSRU1PVEVfRVhUPSIx OTIuMTY4LjEuMSIKCkxPQ0FMX0lOVD0xOTIuMTY4LjkuMQpSRU1PVEVfSU5UPTE5Mi4xNjguMTAu MQoKaXAgbGluayBzZXQgZXRoMCB1cAppcCBhZGRyIGFkZCBkZXYgZXRoMCAkTE9DQUxfSU5ULzI0 CmlwIGxpbmsgc2V0IGV0aDEgdXAKaXAgYWRkciBhZGQgZGV2IGV0aDIgJExPQ0FMX0VYVC8yNAoK TE9DQUxfSVBfVFVOTkVMPSIxMC4xMC4iJHgiLjkiClJFTU9URV9JUF9UVU5ORUw9IjEwLjEwLiIk eCIuMTAiCnR1bj0idHVuIiR4IjkiCgppcCB0dW5uZWwgYWRkICR0dW4gbW9kZSBncmUgbG9jYWwg JExPQ0FMX0VYVCByZW1vdGUgJFJFTU9URV9FWFQKaWZjb25maWcgJHR1biAkTE9DQUxfSVBfVFVO TkVMIHBvaW50b3BvaW50ICRSRU1PVEVfSVBfVFVOTkVMCgp3aGlsZSBbWyAkeCAtbmUgJG5iZXJf dHVuIF1dCmRvCiAgICAgICAgeD0kKCgkeCArIDEpKQogICAgICAgIHR1bj0idHVuIiR4IjkiCiAg ICAgICAgTE9DQUxfRVhUPSRMT0NBTF9JUF9UVU5ORUwKICAgICAgICBSRU1PVEVfRVhUPSRSRU1P VEVfSVBfVFVOTkVMCgogICAgICAgIExPQ0FMX0lQX1RVTk5FTD0iMTAuMTAuIiR4Ii45IgogICAg ICAgIFJFTU9URV9JUF9UVU5ORUw9IjEwLjEwLiIkeCIuMTAiCgogICAgICAgIGlwIHR1bm5lbCBh ZGQgJHR1biBtb2RlIGdyZSBsb2NhbCAkTE9DQUxfRVhUIHJlbW90ZSAkUkVNT1RFX0VYVAogICAg ICAgIGlmY29uZmlnICR0dW4gJExPQ0FMX0lQX1RVTk5FTCBwb2ludG9wb2ludCAkUkVNT1RFX0lQ X1RVTk5FTApkb25lCgpHQVRFV0FZPSRSRU1PVEVfSVBfVFVOTkVMCnJvdXRlIGFkZCAtbmV0ICRS RU1PVEVfTkVUIG5ldG1hc2sgJFJFTU9URV9ORVRNQVNLIGd3ICRHQVRFV0FZCgojIE5vdyBjcmFz aApwaW5nIC1JICRMT0NBTF9JTlQgJFJFTU9URV9JTlQK --=-1Pfsztdh0Du+IpKplGfj-- --=-X07RXivYM1CxHuP9BEyg Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIVAwUATLaAZee/yOyVhhEJAQKZTg//c71jC68yXY1NY9RpNrnYz4FJ9DrmIw/Z va1RbqxWHYFdHLfyBR5UKBOO7T3sD4VNAPPA6980tU2gIOGarKVW/KJn9wa4vOvM +uaDpipjEfpn5d4Gzq9pwadNOGm+73ocd24WwJQ9j/fSXkXofODC8Me7P7akIV9C LNgPmFdbAtqqWn/1/E8LIhTYRgsEisfF6CEXZ6jDgo/98mXNGLtuHlumIu5XIgc2 ndZAg1VN14zYprTk8otniwzsQN30ncrnksJtvvNT+n+9nYk7Moq5GNk10MNlqH4j k51TlJzVsfHJT4K9rIIYykyii09DhfTztV62AyvhLMDm0MsqfhEcl7yb9An5Nb46 oWMMbqIRa377JS19w/xG79rYr6eGzz9xM5hWtO64mUF48Offs6ivn/vkxVcIXXwH d2BgLxnn22TKftBVOy4fmW4z6L0FItuZbKoaZvrvN7B0mw51m6/Fr+gAOzNWdJ0J 6qTR6k6bkZPCsBcRwG1MK5wLUhX1egpysEqMT6L51Pdon124yzbObxAvR6G3b8Dp rISo7QgrQmOjwOW2KEtuYfW3qbXd/XOFTEQUSeJpU2T0Vaq+mECFvRa1wZXBGLf8 mLpdze+RCxL810jzhGQG8NDgt5vykQr7XvHrBwb3VQpheyT7nOvPeQBIFgJvIoXa Sqs9HMZJImA= =1RS8 -----END PGP SIGNATURE----- --=-X07RXivYM1CxHuP9BEyg--