From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54AA2C2D0CE for ; Tue, 21 Jan 2020 15:15:25 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AA87C217F4 for ; Tue, 21 Jan 2020 15:15:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AA87C217F4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=patchew.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:56530 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itvFT-0006Pv-K5 for qemu-devel@archiver.kernel.org; Tue, 21 Jan 2020 10:15:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50949) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ituxu-0000Md-Ik for qemu-devel@nongnu.org; Tue, 21 Jan 2020 09:57:25 -0500 Resent-Date: Tue, 21 Jan 2020 09:57:25 -0500 Resent-Message-Id: Received: from sender4-of-o51.zoho.com ([136.143.188.51]:21178) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ituxs-0000Fl-LQ for qemu-devel@nongnu.org; Tue, 21 Jan 2020 09:57:14 -0500 Received: from [172.17.0.3] (23.253.156.214 [23.253.156.214]) by mx.zohomail.com with SMTPS id 1579618610784672.3124244864891; Tue, 21 Jan 2020 06:56:50 -0800 (PST) In-Reply-To: <20200121122433.50803-1-dgilbert@redhat.com> Subject: Re: [PATCH v2 000/109] virtiofs daemon [all] Message-ID: <157961860844.5061.10865170238525498619@f6d1ed32ca6b> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Resent-From: From: no-reply@patchew.org To: dgilbert@redhat.com Date: Tue, 21 Jan 2020 06:56:50 -0800 (PST) X-ZohoMailClient: External X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Mailman-Approved-At: Tue, 21 Jan 2020 10:13:20 -0500 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: qemu-devel@nongnu.org Cc: m.mizuma@jp.fujitsu.com, berrange@redhat.com, slp@redhat.com, qemu-devel@nongnu.org, misono.tomohiro@jp.fujitsu.com, stefanha@redhat.com, philmd@redhat.com, vgoyal@redhat.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" UGF0Y2hldyBVUkw6IGh0dHBzOi8vcGF0Y2hldy5vcmcvUUVNVS8yMDIwMDEyMTEyMjQzMy41MDgw My0xLWRnaWxiZXJ0QHJlZGhhdC5jb20vCgoKCkhpLAoKVGhpcyBzZXJpZXMgc2VlbXMgdG8gaGF2 ZSBzb21lIGNvZGluZyBzdHlsZSBwcm9ibGVtcy4gU2VlIG91dHB1dCBiZWxvdyBmb3IKbW9yZSBp bmZvcm1hdGlvbjoKClR5cGU6IHNlcmllcwpNZXNzYWdlLWlkOiAyMDIwMDEyMTEyMjQzMy41MDgw My0xLWRnaWxiZXJ0QHJlZGhhdC5jb20KU3ViamVjdDogW1BBVENIIHYyIDAwMC8xMDldIHZpcnRp b2ZzIGRhZW1vbiBbYWxsXQoKPT09IFRFU1QgU0NSSVBUIEJFR0lOID09PQojIS9iaW4vYmFzaApn aXQgcmV2LXBhcnNlIGJhc2UgPiAvZGV2L251bGwgfHwgZXhpdCAwCmdpdCBjb25maWcgLS1sb2Nh bCBkaWZmLnJlbmFtZWxpbWl0IDAKZ2l0IGNvbmZpZyAtLWxvY2FsIGRpZmYucmVuYW1lcyBUcnVl CmdpdCBjb25maWcgLS1sb2NhbCBkaWZmLmFsZ29yaXRobSBoaXN0b2dyYW0KLi9zY3JpcHRzL2No ZWNrcGF0Y2gucGwgLS1tYWlsYmFjayBiYXNlLi4KPT09IFRFU1QgU0NSSVBUIEVORCA9PT0KClN3 aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAndGVzdCcKYTg3NzJmNCB2aXJ0aW9mc2Q6IGFkZCBzb21l IG9wdGlvbnMgdG8gdGhlIGhlbHAgbWVzc2FnZQo1ZGU3NWNhIHZpcnRpb2ZzZDogc3RvcCBhbGwg cXVldWUgdGhyZWFkcyBvbiBleGl0IGluIHZpcnRpb19sb29wKCkKZTQwOGRhYSB2aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGw6IFBhc3MgZXJybm8gdG8gZnVzZV9yZXBseV9lcnIoKQo2NjZkZmZmIHZp cnRpb2ZzZDogQ29udmVydCBsb19kZXN0cm95IHRvIHRha2UgdGhlIGxvLT5tdXRleCBsb2NrIGl0 c2VsZgo2ODVlMDQ5IHZpcnRpb2ZzZDogYWRkIC0tdGhyZWFkLXBvb2wtc2l6ZT1OVU0gb3B0aW9u CmVkMWJmMzMgdmlydGlvZnNkOiBmaXggbG9fZGVzdHJveSgpIHJlc291cmNlIGxlYWtzCmQ1ZjYw MzggdmlydGlvZnNkOiBwcmV2ZW50IEZVU0VfSU5JVC9GVVNFX0RFU1RST1kgcmFjZXMKNjhiNDk5 NiB2aXJ0aW9mc2Q6IHByb2Nlc3MgcmVxdWVzdHMgaW4gYSB0aHJlYWQgcG9vbAozZWZjOTdhIHZp cnRpb2ZzZDogdXNlIGZ1c2VfYnVmX3dyaXRldiB0byByZXBsYWNlIGZ1c2VfYnVmX3dyaXRlIGZv ciBiZXR0ZXIgcGVyZm9ybWFuY2UKYWM4NzA1NSB2aXJ0aW9mc2Q6IGFkZCBkZWZpbml0aW9uIG9m IGZ1c2VfYnVmX3dyaXRldigpCjViY2VjZmYgdmlydGlvZnNkOiBGaXggZGF0YSBjb3JydXB0aW9u IHdpdGggT19BUFBFTkQgd3JpdGUgaW4gd3JpdGViYWNrIG1vZGUKODVjOTE1NCB2aXJ0aW9mc2Q6 IFJlc2V0IE9fRElSRUNUIGZsYWcgZHVyaW5nIGZpbGUgb3BlbgowYTczZjI5IHZpcnRpb2ZzZDog Y29udmVydCBtb3JlIGZwcmludGYgYW5kIHBlcnJvciB0byB1c2UgZnVzZSBsb2cgaW5mcmEKNTA4 OWU0YSB2aXJ0aW9mc2Q6IGRvIG5vdCBhbHdheXMgc2V0IEZVU0VfRkxPQ0tfTE9DS1MKOGUxYmE4 YiB2aXJ0aW9mc2Q6IGludHJvZHVjZSBpbm9kZSByZWZjb3VudCB0byBwcmV2ZW50IHVzZS1hZnRl ci1mcmVlCmFlODJlMzYgdmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogZml4IHJlZmNvdW50aW5n IG9uIHJlbW92ZS9yZW5hbWUKYjM0MWMyOSB2aXJ0aW9mc2Q6IGFkZCBtYW4gcGFnZQplMTg2ZjFm IGxpYnZob3N0LXVzZXI6IEZpeCBzb21lIG1lbXRhYmxlIHJlbWFwIGNhc2VzCmM4YmY4OTAgdmly dGlvZnNkOiByZW5hbWUgaW5vZGUtPnJlZmNvdW50IHRvIGlub2RlLT5ubG9va3VwCjI2ZjM3Nzcg dmlydGlvZnNkOiBwcmV2ZW50IHJhY2VzIHdpdGggbG9fZGlycF9wdXQoKQphNWRjZjA2IHZpcnRp b2ZzZDogbWFrZSBsb19yZWxlYXNlKCkgYXRvbWljCjBjYzRkNjcgdmlydGlvZnNkOiBwcmV2ZW50 IGZ2X3F1ZXVlX3RocmVhZCgpIHZzIHZpcnRpb19sb29wKCkgcmFjZXMKMmUzZWI3ZCB2aXJ0aW9m c2Q6IHVzZSBmdXNlX2xvd2xldmVsX2lzX3ZpcnRpbygpIGluIGZ1c2Vfc2Vzc2lvbl9kZXN0cm95 KCkKYzQyOGE3YiB2aXJ0aW9mc2Q6IFN1cHBvcnQgcmVtb3RlIHBvc2l4IGxvY2tzCjlmMDg1NmMg VmlydGlvZnNkOiBmaXggbWVtb3J5IGxlYWsgb24gZnVzZSBxdWV1ZWluZm8KOTYxYWFjYiB2aXJ0 aW9mc2Q6IGZpeCBpbmNvcnJlY3QgZXJyb3IgaGFuZGxpbmcgaW4gbG9fZG9fbG9va3VwCmNkZjg0 MWEgdmlydGlvZnNkOiBlbmFibGUgUEFSQUxMRUxfRElST1BTIGR1cmluZyBJTklUCjQ2N2RkNjgg dmlydGlvZnNkOiBQcmV2ZW50IG11bHRpcGx5IHJ1bm5pbmcgd2l0aCBzYW1lIHZob3N0X3VzZXJf c29ja2V0Cjk2NDM3ZTcgdmlydGlvZnNkOiBhZGQgaGVscGVyIGZvciBsb19kYXRhIGNsZWFudXAK ZTY4NGQzZiB2aXJ0aW9mc2Q6IGZpeCBtZW1vcnkgbGVhayBvbiBsby5zb3VyY2UKZGY5YWIzOCB2 aXJ0aW9mc2Q6IGNsZWFudXAgYWxsb2NhdGVkIHJlc291cmNlIGluIHNlCjUwOGM2ZmUgdmlydGlv ZnNkOiBmaXggZXJyb3IgaGFuZGxpbmcgaW4gbWFpbigpCjYzZDU3OGYgdmlydGlvZnNkOiBzdXBw b3J0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBmb3IgZmlsZSB0aW1lc3RhbXAKNzE1OWQ4MSB2aXJ0 aW9mc2Q6IENsZWFuIHVwIGlub2RlcyBvbiBkZXN0cm95CmExZGM1MzkgdmlydGlvZnNkOiBwYXNz dGhyb3VnaF9sbDogdXNlIGhhc2h0YWJsZQo0ZDE4YzdlIHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hf bGw6IGNsZWFuIHVwIGNhY2hlIHJlbGF0ZWQgb3B0aW9ucwpkOGViMDU5IHZpcnRpb2ZzZDogZXh0 cmFjdCByb290IGlub2RlIGluaXQgaW50byBzZXR1cF9yb290KCkKY2VjOTY0NyB2aXJ0aW9mc2Q6 IGZhaWwgd2hlbiBwYXJlbnQgaW5vZGUgaXNuJ3Qga25vd24gaW4gbG9fZG9fbG9va3VwKCkKNmZl OWYxOSB2aXJ0aW9mc2Q6IHJlbmFtZSB1bnJlZl9pbm9kZSgpIHRvIHVucmVmX2lub2RlX2xvbG9j a2VkKCkKYzRiM2Y2YSB2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdoX2xsOiBjb250cm9sIHJlYWRkaXJw bHVzCjdjOWNmMWYgdmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogZGlzYWJsZSByZWFkZGlycGx1 cyBvbiBjYWNoZT1uZXZlcgo1M2IzMGJlIHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hfbGw6IGFkZCBy ZW5hbWVhdDIgc3VwcG9ydAoxMTM2MWJkIGNvbnRyaWIvbGlidmhvc3QtdXNlcjogUHJvdGVjdCBz bGF2ZSBmZCB3aXRoIG11dGV4CmUzY2MyYmEgdmhvc3QtdXNlcjogUHJpbnQgdW5leHBlY3RlZCBz bGF2ZSBtZXNzYWdlIHR5cGVzCjExMDIwYWUgdmlydGlvZnNkOiBLaWxsIHRocmVhZHMgd2hlbiBx dWV1ZXMgYXJlIHN0b3BwZWQKZWI4YmNkYSB2aXJ0aW9mc2Q6IEhhbmRsZSBoYXJkIHJlYm9vdApl NTBmMzVkIHZpcnRpb2ZzZDogSGFuZGxlIHJlaW5pdAphNjdhMzFhIHZpcnRpb2ZzZDogQWRkIHRp bWVzdGFtcCB0byB0aGUgbG9nIHdpdGggRlVTRV9MT0dfREVCVUcgbGV2ZWwKM2Q4OWZiNCB2aXJ0 aW9mc2Q6IEFkZCBJRCB0byB0aGUgbG9nIHdpdGggRlVTRV9MT0dfREVCVUcgbGV2ZWwKYTgxY2E3 ZSB2aXJ0aW9mc2Q6IHByaW50IGxvZyBvbmx5IHdoZW4gcHJpb3JpdHkgaXMgaGlnaCBlbm91Z2gK ZWRkOTcxOSB2aXJ0aW9mc2Q6IGFkZCAtLXN5c2xvZyBjb21tYW5kLWxpbmUgb3B0aW9uCmVmZTIw MWUgdmlydGlvZnNkOiBhZGQgc2VjdXJpdHkgZ3VpZGUgZG9jdW1lbnQKMmRhZDdiMiBkb2NzOiBB ZGQgZG9jcy90b29scwo5ZjFmYTE0IHZpcnRpb2ZzZDogZml4IGxpYmZ1c2UgaW5mb3JtYXRpb24g bGVha3MKYzBiYWFlNCB2aXJ0aW9mc2Q6IHNldCBtYXhpbXVtIFJMSU1JVF9OT0ZJTEUgbGltaXQK NzY0NDZiZiB2aXJ0aW9mc2Q6IERyb3AgQ0FQX0ZTRVRJRCBpZiBjbGllbnQgYXNrZWQgZm9yIGl0 CmFiNDM4OTYgdmlydGlvZnNkOiBjYXAtbmcgaGVscGVycwoyNjcxZDhkIHZpcnRpb2ZzZDogUGFy c2UgZmxhZyBGVVNFX1dSSVRFX0tJTExfUFJJVgo0MGM4Zjg4IHZpcnRpb2ZzZDogYWRkIHNlY2Nv bXAgd2hpdGVsaXN0CmFlMzc2ZjIgdmlydGlvZnNkOiBtb3ZlIHRvIGEgbmV3IHBpZCBuYW1lc3Bh Y2UKYzE2YjRhNCB2aXJ0aW9mc2Q6IG1vdmUgdG8gYW4gZW1wdHkgbmV0d29yayBuYW1lc3BhY2UK N2M0ZDEzYiB2aXJ0aW9mc2Q6IHNhbmRib3ggbW91bnQgbmFtZXNwYWNlCjMzOWY3NzIgdmlydGlv ZnNkOiB1c2UgL3Byb2Mvc2VsZi9mZC8gT19QQVRIIGZpbGUgZGVzY3JpcHRvcgoxZWYyZjgxIHZp cnRpb2ZzZDogcHJldmVudCAiLi4iIGVzY2FwZSBpbiBsb19kb19yZWFkZGlyKCkKYzk5ZGMyZSB2 aXJ0aW9mc2Q6IHByZXZlbnQgIi4uIiBlc2NhcGUgaW4gbG9fZG9fbG9va3VwKCkKNTBmNGYxMyB2 aXJ0aW9mc2Q6IGNoZWNrIGlucHV0IGJ1ZmZlciBzaXplIGluIGZ1c2VfbG93bGV2ZWwuYyBvcHMK Njg3NmRjNSB2aXJ0aW9mc2Q6IHZhbGlkYXRlIGlucHV0IGJ1ZmZlciBzaXplcyBpbiBkb193cml0 ZV9idWYoKQo0Mzg3YWEwIHZpcnRpb2ZzZDogYWRkIGZ1c2VfbWJ1Zl9pdGVyIEFQSQpjYzJmYmI0 IHZpcnRpb2ZzZDogUGFzcyB3cml0ZSBpb3YncyBhbGwgdGhlIHdheSB0aHJvdWdoCjQzZWNiZjMg dmlydGlvZnNkOiBQbHVtYiBmdXNlX2J1ZnZlYyB0aHJvdWdoIHRvIGRvX3dyaXRlX2J1ZgpjY2Rm NDYwIHZpcnRpb2ZzZDogdmFsaWRhdGUgcGF0aCBjb21wb25lbnRzCjMwOTFkNjEgdmlydGlvZnNk OiBwYXNzdGhyb3VnaF9sbDogYWRkIGZhbGxiYWNrIGZvciByYWN5IG9wcwoxNTAzZWE4IHZpcnRp b2ZzZDogcGFzc3Rocm91Z2hfbGw6IGFkZCBmZF9tYXAgdG8gaGlkZSBmaWxlIGRlc2NyaXB0b3Jz Cjg2MzYxMjYgdmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogYWRkIGRpcnBfbWFwIHRvIGhpZGUg bG9fZGlycCBwb2ludGVycwo2NDRmYzNkIHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hfbGw6IGFkZCBp bm9fbWFwIHRvIGhpZGUgbG9faW5vZGUgcG9pbnRlcnMKOTM5YThjMSB2aXJ0aW9mc2Q6IHBhc3N0 aHJvdWdoX2xsOiBhZGQgbG9fbWFwIGZvciBpbm8vZmggaW5kaXJlY3Rpb24KYzI4OTcxYyB2aXJ0 aW9mc2Q6IHBhc3N0aHJvdWdoX2xsOiBjcmVhdGUgbmV3IGZpbGVzIGluIGNhbGxlcidzIGNvbnRl eHQKMzA1NzM1NiB2aXJ0aW9mczogQWRkIG1haW50YWluZXJzIGVudHJ5CmNjZDBlYTcgdmlydGlv ZnNkOiBhZGQgLS1wcmludC1jYXBhYmlsaXRpZXMgb3B0aW9uCjQ1YjdlMDUgdmlydGlvZnNkOiBh ZGQgdmhvc3QtdXNlci5qc29uIGZpbGUKNzY1YmVmMSB2aXJ0aW9mc2Q6IG1ha2UgLWYgKGZvcmVn cm91bmQpIHRoZSBkZWZhdWx0CjQ3ODYwNjYgdmlydGlvZnNkOiBhZGQgLS1mZD1GRE5VTSBmZCBw YXNzaW5nIG9wdGlvbgo0Y2M0YjFmIHZpcnRpb2ZzZDogRmFzdCBwYXRoIGZvciB2aXJ0aW8gcmVh ZAoyMThlZDIxIHZpcnRpb2ZzZDogQWRkIE1ha2VmaWxlIHdpcmluZyBmb3IgdmlydGlvZnNkIGNv bnRyaWIKOGQzYWYyZiB2aXJ0aW9mc2Q6IEtlZXAgdHJhY2sgb2YgcmVwbGllcwpmMzg3OWMyIHZp cnRpb2ZzZDogU2VuZCByZXBsaWVzIHRvIG1lc3NhZ2VzCjM1MzlmNjQgdmlydGlvZnNkOiBTdGFy dCByZWFkaW5nIGNvbW1hbmRzIGZyb20gcXVldWUKZmFiMTNlMyB2aXJ0aW9mc2Q6IFBvbGwga2lj a19mZCBmb3IgcXVldWUKYWI1ZmM0ZCB2aXJ0aW9mc2Q6IFN0YXJ0IHF1ZXVlIHRocmVhZHMKYWUw MTA1NiB2aXJ0aW9mc2Q6IGdldC9zZXQgZmVhdHVyZXMgY2FsbGJhY2tzCjlhZWRlOTEgdmlydGlv ZnNkOiBBZGQgbWFpbiB2aXJ0aW8gbG9vcAo4N2VhNDdhIHZpcnRpb2ZzZDogU3RhcnQgd2lyaW5n IHVwIHZob3N0LXVzZXIKOWMzMTQ0ZiB2aXJ0aW9mc2Q6IE9wZW4gdmhvc3QgY29ubmVjdGlvbiBp bnN0ZWFkIG9mIG1vdW50aW5nCjE1NzFhM2UgdmlydGlvZnNkOiBhZGQgLW8gc291cmNlPVBBVEgg dG8gaGVscCBvdXRwdXQKZTM1ZTYyMyB2aXJ0aW9mc2Q6IEFkZCBvcHRpb25zIGZvciB2aXJ0aW8K NmMyYzQwMCB2aXJ0aW9mc2Q6IE1ha2UgZnN5bmMgd29yayBldmVuIGlmIG9ubHkgaW5vZGUgaXMg cGFzc2VkIGluCjVkZjZmZWEgdml0cmlvZnNkL3Bhc3N0aHJvdWdoX2xsOiBmaXggZmFsbG9jYXRl KCkgaWZkZWZzCjU3NGQ2ZjAgdmlydGlvZnNkOiBUcmltIG91dCBjb21wYXRpYmlsaXR5IGNvZGUK NzM5ZGQ1OCB2aXJ0aW9mc2Q6IEZpeCBjb21tb24gaGVhZGVyIGFuZCBkZWZpbmUgZm9yIFFFTVUg YnVpbGRzCjVkNDU0MzUgdmlydGlvZnNkOiBGaXggZnVzZV9kYWVtb25pemUgaWdub3JlZCByZXR1 cm4gdmFsdWVzCmUyZDdhNWEgdmlydGlvZnNkOiByZW1vdmUgdW51c2VkIG5vdGlmeSByZXBseSBz dXBwb3J0CmNkOGFiODEgdmlydGlvZnNkOiByZW1vdmUgbW91bnRwb2ludCBkdW1teSBhcmd1bWVu dAoxNmJlM2E0IHZpcnRpb2ZzZDogRm9ybWF0IGltcG9ydGVkIGZpbGVzIHRvIHFlbXUgc3R5bGUK NmY1YTA1NiB2aXJ0aW9mc2Q6IFRyaW0gZG93biBpbXBvcnRlZCBmaWxlcwozOTY3NTE5IHZpcnRp b2ZzZDogQWRkIHBhc3N0aHJvdWdoX2xsCjAwMDIyYmMgdmlydGlvZnNkOiBBZGQgZnVzZV9sb3ds ZXZlbC5jCmY0ZDQyZTIgdmlydGlvZnNkOiBBZGQgYXV4aWxpYXJ5IC5jJ3MKNjI0NGZjZCB2aXJ0 aW9mc2Q6IFB1bGwgaW4ga2VybmVsJ3MgZnVzZS5oCjQ4NWZiOGEgdmlydGlvZnNkOiBQdWxsIGlu IHVwc3RyZWFtIGhlYWRlcnMKCj09PSBPVVRQVVQgQkVHSU4gPT09CjEvMTA5IENoZWNraW5nIGNv bW1pdCA0ODVmYjhhNmFlNTcgKHZpcnRpb2ZzZDogUHVsbCBpbiB1cHN0cmVhbSBoZWFkZXJzKQpX QVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJT IG5lZWQgdXBkYXRpbmc/CiMxNTogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgpXQVJOSU5HOiBCbG9j ayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyMTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDoyOgorLyoKKyAgRlVTRTogRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCldB Uk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5l CiMzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMjoKKy8qKiBAZmlsZQoKV0FSTklO RzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzQ3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI4OgorI2lmZGVmIF9fY3BsdXNwbHVzCgpXQVJO SU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQoj NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzI6CisvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDozMzoKKyAqIEJhc2ljIEZVU0UgQVBJXkleSV5JXkleSSAgICAgICAqJAoKV0FSTklO RzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiM1 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNDoKKyAqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo0MzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDQ6CiteSSAqICJQbHVzIiBt b2RlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ2 OgorXkkgKiBUaGUga2VybmVsIHdhbnRzIHRvIHByZWZpbGwgdGhlIGlub2RlIGNhY2hlIGR1cmlu ZyByZWFkZGlyLiAgVGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDc6CiteSSAqIGZpbGVzeXN0ZW0g bWF5IGhvbm91ciB0aGlzIGJ5IGZpbGxpbmcgaW4gdGhlIGF0dHJpYnV0ZXMgYW5kIHNldHRpbmck CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo0ODoKK15JICogRlVTRV9GSUxMX0RJUl9GTEFHUyBmb3IgdGhl IGZpbGxlciBmdW5jdGlvbi4gIFRoZSBmaWxlc3lzdGVtIG1heSBhbHNvJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NDk6CiteSSAqIGp1c3QgaWdub3JlIHRoaXMgZmxhZyBjb21wbGV0ZWx5LiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjUwOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MToKK15JRlVTRV9S RUFERElSX1BMVVMgPSAoMSA8PCAwKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NToKK15JLyoqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NTY6CiteSSAqICJQbHVzIiBtb2RlOiBhbGwgZmlsZSBhdHRyaWJ1 dGVzIGFyZSB2YWxpZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU3OgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjU4OgorXkkgKiBUaGUgYXR0cmlidXRlcyBhcmUgdXNlZCBieSB0aGUga2VybmVsIHRv IHByZWZpbGwgdGhlIGlub2RlIGNhY2hlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTk6CiteSSAqIGR1 cmluZyBhIHJlYWRkaXIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjA6CiteSSAqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NjE6CiteSSAqIEl0IGlzIG9rYXkgdG8gc2V0IEZVU0VfRklMTF9ESVJfUExVUyBp ZiBGVVNFX1JFQURESVJfUExVUyBpcyBub3Qgc2V0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjI6Cite SSAqIGFuZCB2aWNlIHZlcnNhLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYzOgorXkkgKi8kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo2NDoKK15JRlVTRV9GSUxMX0RJUl9QTFVTID0gKDEgPDwgMSksJAoKV0FS TklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUK Izg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY3OgorLyoqIEZ1bmN0aW9uIHRvIGFk ZCBhbiBlbnRyeSBpbiBhIHJlYWRkaXIoKSBvcGVyYXRpb24KCkVSUk9SOiB0cmFpbGluZyB3aGl0 ZXNwYWNlCiM5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NDoKKyAqICQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo4MzoKK15JXkleSV5JY29uc3Qgc3RydWN0IHN0YXQgKnN0YnVmLCBvZmZf dCBvZmYsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjg0OgorXkleSV5JXkllbnVtIGZ1c2VfZmlsbF9k aXJfZmxhZ3MgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo5NDoKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjk1OgorXkkgKiBJZiBgc2V0X2dpZGAgaXMgbm9uLXplcm8sIHRoZSBzdF9n aWQgYXR0cmlidXRlIG9mIGVhY2ggZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo5NjoKK15JICog aXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgdmFsdWUgb2YgYGdpZGAuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjk3OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6OTg6CiteSWludCBzZXRfZ2lkOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo5OToKK15JdW5zaWduZWQgaW50IGdpZDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MTAxOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTAyOgorXkkgKiBJZiBg c2V0X3VpZGAgaXMgbm9uLXplcm8sIHRoZSBzdF91aWQgYXR0cmlidXRlIG9mIGVhY2ggZmlsZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoxMDM6CiteSSAqIGlzIG92ZXJ3cml0dGVuIHdpdGggdGhlIHZh bHVlIG9mIGB1aWRgLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMDQ6CiteSSAqLyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoxMDU6CiteSWludCBzZXRfdWlkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMDY6 CiteSXVuc2lnbmVkIGludCB1aWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEwODoKK15JLyoqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjEwOToKK15JICogSWYgYHNldF9tb2RlYCBpcyBub24temVybywg dGhlIGFueSBwZXJtaXNzaW9ucyBiaXRzIHNldCBpbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTA6 CiteSSAqIGB1bWFza2AgYXJlIHVuc2V0IGluIHRoZSBzdF9tb2RlIGF0dHJpYnV0ZSBvZiBlYWNo IGZpbGUuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExMToKK15JICovJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjExMjoKK15JaW50IHNldF9tb2RlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTM6CiteSXVu c2lnbmVkIGludCB1bWFzazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE1OgorXkkvKiokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6MTE2OgorXkkgKiBUaGUgdGltZW91dCBpbiBzZWNvbmRzIGZvciB3aGlj aCBuYW1lIGxvb2t1cHMgd2lsbCBiZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTc6CiteSSAqIGNh Y2hlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE4OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MTE5OgorXklkb3VibGUgZW50cnlfdGltZW91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTIx OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTIyOgorXkkgKiBUaGUgdGltZW91dCBpbiBz ZWNvbmRzIGZvciB3aGljaCBhIG5lZ2F0aXZlIGxvb2t1cCB3aWxsIGJlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjEyMzoKK15JICogY2FjaGVkLiBUaGlzIG1lYW5zLCB0aGF0IGlmIGZpbGUgZGlkIG5v dCBleGlzdCAobG9va3VwJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEyNDoKK15JICogcmV0dW5lZCBF Tk9FTlQpLCB0aGUgbG9va3VwIHdpbGwgb25seSBiZSByZWRvbmUgYWZ0ZXIgdGhlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjEyNToKK15JICogdGltZW91dCwgYW5kIHRoZSBmaWxlL2RpcmVjdG9yeSB3 aWxsIGJlIGFzc3VtZWQgdG8gbm90JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEyNjoKK15JICogZXhp c3QgdW50aWwgdGhlbi4gQSB2YWx1ZSBvZiB6ZXJvIG1lYW5zIHRoYXQgbmVnYXRpdmUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6MTI3OgorXkkgKiBsb29rdXBzIGFyZSBub3QgY2FjaGVkLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDoxMjg6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMjk6CiteSWRv dWJsZSBuZWdhdGl2ZV90aW1lb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMzE6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoxMzI6CiteSSAqIFRoZSB0aW1lb3V0IGluIHNlY29uZHMgZm9y IHdoaWNoIGZpbGUvZGlyZWN0b3J5IGF0dHJpYnV0ZXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTMz OgorXkkgKiAoYXMgcmV0dXJuZWQgYnkgZS5nLiB0aGUgYGdldGF0dHJgIGhhbmRsZXIpIGFyZSBj YWNoZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEzNDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjEzNToKK15JZG91YmxlIGF0dHJfdGltZW91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTM3 OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTM4OgorXkkgKiBBbGxvdyByZXF1ZXN0cyB0 byBiZSBpbnRlcnJ1cHRlZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMzk6CiteSSAqLyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDoxNDA6CiteSWludCBpbnRyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNDI6 CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNDM6CiteSSAqIFNwZWNpZnkgd2hpY2ggc2ln bmFsIG51bWJlciB0byBzZW5kIHRvIHRoZSBmaWxlc3lzdGVtIHdoZW4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MTQ0OgorXkkgKiBhIHJlcXVlc3QgaXMgaW50ZXJydXB0ZWQuICBUaGUgZGVmYXVsdCBp cyBoYXJkY29kZWQgdG8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTQ1OgorXkkgKiBVU1IxLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDoxNDY6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNDc6Cite SWludCBpbnRyX3NpZ25hbDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTQ5OgorXkkvKiokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6MTUwOgorXkkgKiBOb3JtYWxseSwgRlVTRSBhc3NpZ25zIGlub2RlcyB0 byBwYXRocyBvbmx5IGZvciBhcyBsb25nIGFzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE1MToKK15J ICogdGhlIGtlcm5lbCBpcyBhd2FyZSBvZiB0aGVtLiBXaXRoIHRoaXMgb3B0aW9uIGlub2RlcyBh cmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTUyOgorXkkgKiBpbnN0ZWFkIHJlbWVtYmVyZWQgZm9y IGF0IGxlYXN0IHRoaXMgbWFueSBzZWNvbmRzLiAgVGhpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDox NTM6CiteSSAqIHdpbGwgcmVxdWlyZSBtb3JlIG1lbW9yeSwgYnV0IG1heSBiZSBuZWNlc3Nhcnkg d2hlbiB1c2luZyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNTQ6CiteSSAqIGFwcGxpY2F0aW9ucyB0 aGF0IG1ha2UgdXNlIG9mIGlub2RlIG51bWJlcnMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE1NToK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTU2OgorXkkgKiBBIG51bWJlciBvZiAtMSBtZWFu cyB0aGF0IGlub2RlcyB3aWxsIGJlIHJlbWVtYmVyZWQgZm9yIHRoZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDoxNTc6CiteSSAqIGVudGlyZSBsaWZlLXRpbWUgb2YgdGhlIGZpbGUtc3lzdGVtIHByb2Nl c3MuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE1ODoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjE1OToKK15JaW50IHJlbWVtYmVyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNjE6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoxNjI6CiteSSAqIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRo YXQgaWYgYW4gb3BlbiBmaWxlIGlzIGRlbGV0ZWQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE2MzoK K15JICogdGhlIGZpbGUgaXMgcmVuYW1lZCB0byBhIGhpZGRlbiBmaWxlICguZnVzZV9oaWRkZW5Y WFgpLCBhbmQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTY0OgorXkkgKiBvbmx5IHJlbW92ZWQgd2hl biB0aGUgZmlsZSBpcyBmaW5hbGx5IHJlbGVhc2VkLiAgVGhpcyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoxNjU6CiteSSAqIHJlbGlldmVzIHRoZSBmaWxlc3lzdGVtIGltcGxlbWVudGF0aW9uIG9mIGhh dmluZyB0byBkZWFsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE2NjoKK15JICogd2l0aCB0aGlzIHBy b2JsZW0uIFRoaXMgb3B0aW9uIGRpc2FibGVzIHRoZSBoaWRpbmckCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MTY3OgorXkkgKiBiZWhhdmlvciwgYW5kIGZpbGVzIGFyZSByZW1vdmVkIGltbWVkaWF0ZWx5 IGluIGFuIHVubGluayQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNjg6CiteSSAqIG9wZXJhdGlvbiAo b3IgaW4gYSByZW5hbWUgb3BlcmF0aW9uIHdoaWNoIG92ZXJ3cml0ZXMgYW4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MTY5OgorXkkgKiBleGlzdGluZyBmaWxlKS4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MTcwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNzE6CiteSSAqIEl0IGlzIHJlY29tbWVu ZGVkIHRoYXQgeW91IG5vdCB1c2UgdGhlIGhhcmRfcmVtb3ZlJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjE3MjoKK15JICogb3B0aW9uLiBXaGVuIGhhcmRfcmVtb3ZlIGlzIHNldCwgdGhlIGZvbGxvd2lu ZyBsaWJjJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE3MzoKK15JICogZnVuY3Rpb25zIGZhaWwgb24g dW5saW5rZWQgZmlsZXMgKHJldHVybmluZyBlcnJubyBvZiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDox NzQ6CiteSSAqIEVOT0VOVCk6IHJlYWQoMiksIHdyaXRlKDIpLCBmc3luYygyKSwgY2xvc2UoMiks IGYqeGF0dHIoMiksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE3NToKK15JICogZnRydW5jYXRlKDIp LCBmc3RhdCgyKSwgZmNobW9kKDIpLCBmY2hvd24oMikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTc2 OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTc3OgorXklpbnQgaGFyZF9yZW1vdmU7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjE3OToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE4MDoK K15JICogSG9ub3IgdGhlIHN0X2lubyBmaWVsZCBpbiB0aGUgZnVuY3Rpb25zIGdldGF0dHIoKSBh bmQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTgxOgorXkkgKiBmaWxsX2RpcigpLiBUaGlzIHZhbHVl IGlzIHVzZWQgdG8gZmlsbCBpbiB0aGUgc3RfaW5vIGZpZWxkJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjE4MjoKK15JICogaW4gdGhlIHN0YXQoMiksIGxzdGF0KDIpLCBmc3RhdCgyKSBmdW5jdGlvbnMg YW5kIHRoZSBkX2lubyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxODM6CiteSSAqIGZpZWxkIGluIHRo ZSByZWFkZGlyKDIpIGZ1bmN0aW9uLiBUaGUgZmlsZXN5c3RlbSBkb2VzIG5vdCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoxODQ6CiteSSAqIGhhdmUgdG8gZ3VhcmFudGVlIHVuaXF1ZW5lc3MsIGhvd2V2 ZXIgc29tZSBhcHBsaWNhdGlvbnMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTg1OgorXkkgKiByZWx5 IG9uIHRoaXMgdmFsdWUgYmVpbmcgdW5pcXVlIGZvciB0aGUgd2hvbGUgZmlsZXN5c3RlbS4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MTg2OgorXkkgKiQKCkVSUk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNl CiMyMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTg3OgorXkkgKiBOb3RlIHRoYXQg dGhpcyBkb2VzICpub3QqIGFmZmVjdCB0aGUgaW5vZGUgdGhhdCBsaWJmdXNlICQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoxODc6CiteSSAqIE5vdGUgdGhhdCB0aGlzIGRvZXMgKm5vdCogYWZmZWN0IHRo ZSBpbm9kZSB0aGF0IGxpYmZ1c2UgJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE4ODoKK15JICogYW5k IHRoZSBrZXJuZWwgdXNlIGludGVybmFsbHkgKGFsc28gY2FsbGVkIHRoZSAibm9kZWlkIikuJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjE4OToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE5MDoK K15JaW50IHVzZV9pbm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE5MjoKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjE5MzoKK15JICogSWYgdXNlX2lubyBvcHRpb24gaXMgbm90IGdpdmVuLCBz dGlsbCB0cnkgdG8gZmlsbCBpbiB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTk0OgorXkkgKiBk X2lubyBmaWVsZCBpbiByZWFkZGlyKDIpLiBJZiB0aGUgbmFtZSB3YXMgcHJldmlvdXNseSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDoxOTU6CiteSSAqIGxvb2tlZCB1cCwgYW5kIGlzIHN0aWxsIGluIHRo ZSBjYWNoZSwgdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxOTY6CiteSSAq IGZvdW5kIHRoZXJlIHdpbGwgYmUgdXNlZC4gIE90aGVyd2lzZSBpdCB3aWxsIGJlIHNldCB0byAt MS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTk3OgorXkkgKiBJZiB1c2VfaW5vIG9wdGlvbiBpcyBn aXZlbiwgdGhpcyBvcHRpb24gaXMgaWdub3JlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTk4Ogor XkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTk5OgorXklpbnQgcmVhZGRpcl9pbm87JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjIwMToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIwMjoKK15J ICogVGhpcyBvcHRpb24gZGlzYWJsZXMgdGhlIHVzZSBvZiBwYWdlIGNhY2hlIChmaWxlIGNvbnRl bnQgY2FjaGUpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIwMzoKK15JICogaW4gdGhlIGtlcm5lbCBm b3IgdGhpcyBmaWxlc3lzdGVtLiBUaGlzIGhhcyBzZXZlcmFsIGFmZmVjdHM6JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjIwNDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjA1OgorXkkgKiAxLiBF YWNoIHJlYWQoMikgb3Igd3JpdGUoMikgc3lzdGVtIGNhbGwgd2lsbCBpbml0aWF0ZSBvbmUkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MjA2OgorXkkgKiAgICBvciBtb3JlIHJlYWQgb3Igd3JpdGUgb3Bl cmF0aW9ucywgZGF0YSB3aWxsIG5vdCBiZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMDc6CiteSSAq ICAgIGNhY2hlZCBpbiB0aGUga2VybmVsLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMDg6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjIwOToKK15JICogMi4gVGhlIHJldHVybiB2YWx1ZSBvZiB0 aGUgcmVhZCgpIGFuZCB3cml0ZSgpIHN5c3RlbSBjYWxscyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoy MTA6CiteSSAqICAgIHdpbGwgY29ycmVzcG9uZCB0byB0aGUgcmV0dXJuIHZhbHVlcyBvZiB0aGUg cmVhZCBhbmQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjExOgorXkkgKiAgICB3cml0ZSBvcGVyYXRp b25zLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSBpZiB0aGUkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MjEyOgorXkkgKiAgICBmaWxlIHNpemUgaXMgbm90IGtub3duIGluIGFkdmFuY2UgKGJlZm9y ZSByZWFkaW5nIGl0KS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjEzOgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoyMTQ6CiteSSAqIEludGVybmFsbHksIGVuYWJsaW5nIHRoaXMgb3B0aW9uIGNh dXNlcyBmdXNlIHRvIHNldCB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjE1OgorXkkgKiBgZGly ZWN0X2lvYCBmaWVsZCBvZiBgc3RydWN0IGZ1c2VfZmlsZV9pbmZvYCAtIG92ZXJ3cml0aW5nJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjIxNjoKK15JICogYW55IHZhbHVlIHRoYXQgd2FzIHB1dCB0aGVy ZSBieSB0aGUgZmlsZSBzeXN0ZW0uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIxNzoKK15JICovJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjIxODoKK15JaW50IGRpcmVjdF9pbzskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MjIwOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjIxOgorXkkgKiBUaGlzIG9w dGlvbiBkaXNhYmxlcyBmbHVzaGluZyB0aGUgY2FjaGUgb2YgdGhlIGZpbGUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MjIyOgorXkkgKiBjb250ZW50cyBvbiBldmVyeSBvcGVuKDIpLiAgVGhpcyBzaG91 bGQgb25seSBiZSBlbmFibGVkIG9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIyMzoKK15JICogZmls ZXN5c3RlbXMgd2hlcmUgdGhlIGZpbGUgZGF0YSBpcyBuZXZlciBjaGFuZ2VkJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjIyNDoKK15JICogZXh0ZXJuYWxseSAobm90IHRocm91Z2ggdGhlIG1vdW50ZWQg RlVTRSBmaWxlc3lzdGVtKS4gIFRodXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjI1OgorXkkgKiBp dCBpcyBub3Qgc3VpdGFibGUgZm9yIG5ldHdvcmsgZmlsZXN5c3RlbXMgYW5kIG90aGVyJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjIyNjoKK15JICogaW50ZXJtZWRpYXRlIGZpbGVzeXN0ZW1zLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDoyMjc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIyODoKK15J ICogTk9URTogaWYgdGhpcyBvcHRpb24gaXMgbm90IHNwZWNpZmllZCAoYW5kIG5laXRoZXIkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MjI5OgorXkkgKiBkaXJlY3RfaW8pIGRhdGEgaXMgc3RpbGwgY2Fj aGVkIGFmdGVyIHRoZSBvcGVuKDIpLCBzbyBhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIzMDoKK15J ICogcmVhZCgyKSBzeXN0ZW0gY2FsbCB3aWxsIG5vdCBhbHdheXMgaW5pdGlhdGUgYSByZWFkJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjIzMToKK15JICogb3BlcmF0aW9uLiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDoyMzI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIzMzoKK15JICogSW50ZXJuYWxs eSwgZW5hYmxpbmcgdGhpcyBvcHRpb24gY2F1c2VzIGZ1c2UgdG8gc2V0IHRoZSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoyMzQ6CiteSSAqIGBrZWVwX2NhY2hlYCBmaWVsZCBvZiBgc3RydWN0IGZ1c2Vf ZmlsZV9pbmZvYCAtIG92ZXJ3cml0aW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIzNToKK15JICog YW55IHZhbHVlIHRoYXQgd2FzIHB1dCB0aGVyZSBieSB0aGUgZmlsZSBzeXN0ZW0uJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjIzNjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIzNzoKK15JaW50 IGtlcm5lbF9jYWNoZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjM5OgorXkkvKiokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6MjQwOgorXkkgKiBUaGlzIG9wdGlvbiBpcyBhbiBhbHRlcm5hdGl2ZSB0byBg a2VybmVsX2NhY2hlYC4gSW5zdGVhZCBvZiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNDE6CiteSSAq IHVuY29uZGl0aW9uYWxseSBrZWVwaW5nIGNhY2hlZCBkYXRhLCB0aGUgY2FjaGVkIGRhdGEgaXMk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjQyOgorXkkgKiBpbnZhbGlkYXRlZCBvbiBvcGVuKDIpIGlm IGlmIHRoZSBtb2RpZmljYXRpb24gdGltZSBvciB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjQz OgorXkkgKiBzaXplIG9mIHRoZSBmaWxlIGhhcyBjaGFuZ2VkIHNpbmNlIGl0IHdhcyBsYXN0IG9w ZW5lZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjQ0OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MjQ1OgorXklpbnQgYXV0b19jYWNoZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjQ3OgorXkkv KiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjQ4OgorXkkgKiBUaGUgdGltZW91dCBpbiBzZWNvbmRz IGZvciB3aGljaCBmaWxlIGF0dHJpYnV0ZXMgYXJlIGNhY2hlZCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoyNDk6CiteSSAqIGZvciB0aGUgcHVycG9zZSBvZiBjaGVja2luZyBpZiBhdXRvX2NhY2hlIHNo b3VsZCBmbHVzaCB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjUwOgorXkkgKiBmaWxlIGRhdGEg b24gb3Blbi4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjUxOgorXkkgKi8kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MjUyOgorXklpbnQgYWNfYXR0cl90aW1lb3V0X3NldDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MjUzOgorXklkb3VibGUgYWNfYXR0cl90aW1lb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoy NTU6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNTY6CiteSSAqIElmIHRoaXMgb3B0aW9u IGlzIGdpdmVuIHRoZSBmaWxlLXN5c3RlbSBoYW5kbGVycyBmb3IgdGhlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjI1NzoKK15JICogZm9sbG93aW5nIG9wZXJhdGlvbnMgd2lsbCBub3QgcmVjZWl2ZSBw YXRoIGluZm9ybWF0aW9uOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNTg6CiteSSAqIHJlYWQsIHdy aXRlLCBmbHVzaCwgcmVsZWFzZSwgZnN5bmMsIHJlYWRkaXIsIHJlbGVhc2VkaXIsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjI1OToKK15JICogZnN5bmNkaXIsIGxvY2ssIGlvY3RsIGFuZCBwb2xsLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoyNjA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI2MToK K15JICogRm9yIHRoZSB0cnVuY2F0ZSwgZ2V0YXR0ciwgY2htb2QsIGNob3duIGFuZCB1dGltZW5z JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjI2MjoKK15JICogb3BlcmF0aW9ucyB0aGUgcGF0aCB3aWxs IGJlIHByb3ZpZGVkIG9ubHkgaWYgdGhlIHN0cnVjdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNjM6 CiteSSAqIGZ1c2VfZmlsZV9pbmZvIGFyZ3VtZW50IGlzIE5VTEwuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjI2NDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI2NToKK15JaW50IG51bGxwYXRo X29rOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNjc6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoyNjg6CiteSSAqIFRoZSByZW1haW5pbmcgb3B0aW9ucyBhcmUgdXNlZCBieSBsaWJmdXNlIGlu dGVybmFsbHkgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Mjg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI2OToKK15JICogc2hvdWxkIG5vdCBi ZSB0b3VjaGVkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNzA6CiteSSAqLyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDoyNzE6CiteSWludCBzaG93X2hlbHA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI3MjoK K15JY2hhciAqbW9kdWxlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjczOgorXklpbnQgZGVidWc7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjMwMDoKK15JLyoqIEdldCBmaWxlIGF0dHJpYnV0ZXMuJAoK V0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxp bmUKIzMxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMDA6CisgICAgICAgLyoqIEdl dCBmaWxlIGF0dHJpYnV0ZXMuCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzAxOgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDozMDI6CiteSSAqIFNpbWlsYXIgdG8gc3RhdCgpLiAgVGhlICdzdF9kZXYn IGFuZCAnc3RfYmxrc2l6ZScgZmllbGRzIGFyZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMDM6Cite SSAqIGlnbm9yZWQuIFRoZSAnc3RfaW5vJyBmaWVsZCBpcyBpZ25vcmVkIGV4Y2VwdCBpZiB0aGUg J3VzZV9pbm8nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMwNDoKK15JICogbW91bnQgb3B0aW9uIGlz IGdpdmVuLiBJbiB0aGF0IGNhc2UgaXQgaXMgcGFzc2VkIHRvIHVzZXJzcGFjZSwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6MzA1OgorXkkgKiBidXQgbGliZnVzZSBhbmQgdGhlIGtlcm5lbCB3aWxsIHN0 aWxsIGFzc2lnbiBhIGRpZmZlcmVudCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMDY6CiteSSAqIGlu b2RlIGZvciBpbnRlcm5hbCB1c2UgKGNhbGxlZCB0aGUgIm5vZGVpZCIpLiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDozMDc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMwODoKK15JICogYGZpYCB3 aWxsIGFsd2F5cyBiZSBOVUxMIGlmIHRoZSBmaWxlIGlzIG5vdCBjdXJyZW50bHkgb3BlbiwgYnV0 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjMwOToKK15JICogbWF5IGFsc28gYmUgTlVMTCBpZiB0aGUg ZmlsZSBpcyBvcGVuLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMTA6CiteSSAqLyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDozMTE6CiteSWludCAoKmdldGF0dHIpIChjb25zdCBjaGFyICosIHN0cnVjdCBz dGF0ICosIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoz MTM6CiteSS8qKiBSZWFkIHRoZSB0YXJnZXQgb2YgYSBzeW1ib2xpYyBsaW5rJAoKV0FSTklORzog QmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzMzMjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMTM6CisgICAgICAgLyoqIFJlYWQgdGhlIHRh cmdldCBvZiBhIHN5bWJvbGljIGxpbmsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMTQ6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjMxNToKK15JICogVGhlIGJ1ZmZlciBzaG91bGQgYmUgZmlsbGVk IHdpdGggYSBudWxsIHRlcm1pbmF0ZWQgc3RyaW5nLiAgVGhlJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjMxNjoKK15JICogYnVmZmVyIHNpemUgYXJndW1lbnQgaW5jbHVkZXMgdGhlIHNwYWNlIGZvciB0 aGUgdGVybWluYXRpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzE3OgorXkkgKiBudWxsIGNoYXJh Y3Rlci5eSUlmIHRoZSBsaW5rbmFtZSBpcyB0b28gbG9uZyB0byBmaXQgaW4gdGhlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjMxODoKK15JICogYnVmZmVyLCBpdCBzaG91bGQgYmUgdHJ1bmNhdGVkLl5J VGhlIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgMCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMTk6Cite SSAqIGZvciBzdWNjZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMjA6CiteSSAqLyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDozMjE6CiteSWludCAoKnJlYWRsaW5rKSAoY29uc3QgY2hhciAqLCBjaGFy ICosIHNpemVfdCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMyMzoKK15JLyoqIENyZWF0ZSBhIGZp bGUgbm9kZSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBz ZXBhcmF0ZSBsaW5lCiMzNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzIzOgorICAg ICAgIC8qKiBDcmVhdGUgYSBmaWxlIG5vZGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMjQ6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjMyNToKK15JICogVGhpcyBpcyBjYWxsZWQgZm9yIGNyZWF0 aW9uIG9mIGFsbCBub24tZGlyZWN0b3J5LCBub24tc3ltbGluayQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDozMjY6CiteSSAqIG5vZGVzLiAgSWYgdGhlIGZpbGVzeXN0ZW0gZGVmaW5lcyBhIGNyZWF0ZSgp IG1ldGhvZCwgdGhlbiBmb3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzI3OgorXkkgKiByZWd1bGFy IGZpbGVzIHRoYXQgd2lsbCBiZSBjYWxsZWQgaW5zdGVhZC4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MzI4OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzI5OgorXklpbnQgKCpta25vZCkgKGNv bnN0IGNoYXIgKiwgbW9kZV90LCBkZXZfdCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMzMToKK15J LyoqIENyZWF0ZSBhIGRpcmVjdG9yeSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxl YWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MzMxOgorICAgICAgIC8qKiBDcmVhdGUgYSBkaXJlY3RvcnkKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDozMzI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMzMzoKK15JICogTm90ZSB0aGF0 IHRoZSBtb2RlIGFyZ3VtZW50IG1heSBub3QgaGF2ZSB0aGUgdHlwZSBzcGVjaWZpY2F0aW9uJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjMzNDoKK15JICogYml0cyBzZXQsIGkuZS4gU19JU0RJUihtb2Rl KSBjYW4gYmUgZmFsc2UuICBUbyBvYnRhaW4gdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMzNToK K15JICogY29ycmVjdCBkaXJlY3RvcnkgdHlwZSBiaXRzIHVzZSAgbW9kZXxTX0lGRElSJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjMzNjoKK15JICogKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzM1NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDozMzY6CisgICAgICAgICogKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMzc6 CiteSWludCAoKm1rZGlyKSAoY29uc3QgY2hhciAqLCBtb2RlX3QpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDozMzk6CiteSS8qKiBSZW1vdmUgYSBmaWxlICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM0 MDoKK15JaW50ICgqdW5saW5rKSAoY29uc3QgY2hhciAqKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MzQyOgorXkkvKiogUmVtb3ZlIGEgZGlyZWN0b3J5ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM0 MzoKK15JaW50ICgqcm1kaXIpIChjb25zdCBjaGFyICopOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoz NDU6CiteSS8qKiBDcmVhdGUgYSBzeW1ib2xpYyBsaW5rICovJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjM0NjoKK15JaW50ICgqc3ltbGluaykgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MzQ4OgorXkkvKiogUmVuYW1lIGEgZmlsZSQKCldBUk5JTkc6IEJs b2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzNjc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzQ4OgorICAgICAgIC8qKiBSZW5hbWUgYSBmaWxl CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzQ5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNTA6 CiteSSAqICpmbGFncyogbWF5IGJlIGBSRU5BTUVfRVhDSEFOR0VgIG9yIGBSRU5BTUVfTk9SRVBM QUNFYC4gSWYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzUxOgorXkkgKiBSRU5BTUVfTk9SRVBMQUNF IGlzIHNwZWNpZmllZCwgdGhlIGZpbGVzeXN0ZW0gbXVzdCBub3QkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MzUyOgorXkkgKiBvdmVyd3JpdGUgKm5ld25hbWUqIGlmIGl0IGV4aXN0cyBhbmQgcmV0dXJu IGFuIGVycm9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzcy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM1MzoKK15JICogaW5zdGVhZC4gSWYgYFJF TkFNRV9FWENIQU5HRWAgaXMgc3BlY2lmaWVkLCB0aGUgZmlsZXN5c3RlbSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDozNTQ6CiteSSAqIG11c3QgYXRvbWljYWxseSBleGNoYW5nZSB0aGUgdHdvIGZpbGVz LCBpLmUuIGJvdGggbXVzdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNTU6CiteSSAqIGV4aXN0IGFu ZCBuZWl0aGVyIG1heSBiZSBkZWxldGVkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNTY6CiteSSAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNTc6CiteSWludCAoKnJlbmFtZSkgKGNvbnN0IGNoYXIg KiwgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDozNTk6CiteSS8qKiBDcmVhdGUgYSBoYXJkIGxpbmsgdG8gYSBmaWxlICovJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzc5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjM2MDoKK15JaW50ICgqbGluaykgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAq KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzYyOgorXkkvKiogQ2hhbmdlIHRoZSBwZXJtaXNzaW9u IGJpdHMgb2YgYSBmaWxlJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAv KiBvbiBhIHNlcGFyYXRlIGxpbmUKIzM4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoz NjI6CisgICAgICAgLyoqIENoYW5nZSB0aGUgcGVybWlzc2lvbiBiaXRzIG9mIGEgZmlsZQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzgyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjM2MzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzY0OgorXkkg KiBgZmlgIHdpbGwgYWx3YXlzIGJlIE5VTEwgaWYgdGhlIGZpbGUgaXMgbm90IGN1cnJlbmx0eSBv cGVuLCBidXQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzY1OgorXkkgKiBtYXkgYWxzbyBiZSBOVUxM IGlmIHRoZSBmaWxlIGlzIG9wZW4uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM2NjoKK15JICovJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjM2NzoKK15JaW50ICgqY2htb2QpIChjb25zdCBjaGFyICosIG1v ZGVfdCwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM2 OToKK15JLyoqIENoYW5nZSB0aGUgb3duZXIgYW5kIGdyb3VwIG9mIGEgZmlsZSQKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzODg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzY5OgorICAgICAgIC8qKiBDaGFuZ2UgdGhl IG93bmVyIGFuZCBncm91cCBvZiBhIGZpbGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNzA6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzkwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjM3MToKK15JICogYGZpYCB3aWxsIGFsd2F5cyBiZSBOVUxM IGlmIHRoZSBmaWxlIGlzIG5vdCBjdXJyZW5sdHkgb3BlbiwgYnV0JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjM3MjoKK15JICogbWF5IGFsc28gYmUgTlVMTCBpZiB0aGUgZmlsZSBpcyBvcGVuLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDozNzM6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM3NDoKK15J ICogVW5sZXNzIEZVU0VfQ0FQX0hBTkRMRV9LSUxMUFJJViBpcyBkaXNhYmxlZCwgdGhpcyBtZXRo b2QgaXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzc1OgorXkkgKiBleHBlY3RlZCB0byByZXNldCB0 aGUgc2V0dWlkIGFuZCBzZXRnaWQgYml0cy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzc2OgorXkkg Ki8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzc3OgorXklpbnQgKCpjaG93bikgKGNvbnN0IGNoYXIg KiwgdWlkX3QsIGdpZF90LCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6Mzc5OgorXkkvKiogQ2hhbmdlIHRoZSBzaXplIG9mIGEgZmlsZSQKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzOTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzc5OgorICAgICAgIC8qKiBDaGFuZ2UgdGhl IHNpemUgb2YgYSBmaWxlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzgwOgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDozODE6CiteSSAqIGBmaWAgd2lsbCBhbHdheXMgYmUgTlVMTCBpZiB0aGUgZmls ZSBpcyBub3QgY3VycmVubHR5IG9wZW4sIGJ1dCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozODI6Cite SSAqIG1heSBhbHNvIGJlIE5VTEwgaWYgdGhlIGZpbGUgaXMgb3Blbi4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MzgzOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozODQ6CiteSSAqIFVubGVzcyBG VVNFX0NBUF9IQU5ETEVfS0lMTFBSSVYgaXMgZGlzYWJsZWQsIHRoaXMgbWV0aG9kIGlzJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDA0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjM4NToKK15JICogZXhwZWN0ZWQgdG8gcmVzZXQgdGhlIHNldHVpZCBh bmQgc2V0Z2lkIGJpdHMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM4NjoKK15JICovJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDA2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjM4NzoKK15JaW50ICgqdHJ1bmNhdGUpIChjb25zdCBjaGFyICosIG9mZl90 LCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzg5Ogor XkkvKiogT3BlbiBhIGZpbGUkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5n IC8qIG9uIGEgc2VwYXJhdGUgbGluZQojNDA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjM4OToKKyAgICAgICAvKiogT3BlbiBhIGZpbGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozOTA6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDEwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM5MToKK15JICogT3BlbiBmbGFncyBhcmUgYXZhaWxh YmxlIGluIGZpLT5mbGFncy4gVGhlIGZvbGxvd2luZyBydWxlcyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDozOTI6CiteSSAqIGFwcGx5LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzQxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozOTM6CiteSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDEzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjM5NDoKK15JICogIC0gQ3JlYXRpb24gKE9fQ1JFQVQsIE9fRVhDTCwg T19OT0NUVFkpIGZsYWdzIHdpbGwgYmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzk1OgorXkkgKiAg ICBmaWx0ZXJlZCBvdXQgLyBoYW5kbGVkIGJ5IHRoZSBrZXJuZWwuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjM5NjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzk3OgorXkkgKiAgLSBBY2Nlc3Mg bW9kZXMgKE9fUkRPTkxZLCBPX1dST05MWSwgT19SRFdSLCBPX0VYRUMsIE9fU0VBUkNIKSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxNzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDozOTg6CiteSSAqICAgIHNob3VsZCBiZSB1c2VkIGJ5IHRoZSBmaWxl c3lzdGVtIHRvIGNoZWNrIGlmIHRoZSBvcGVyYXRpb24gaXMkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 Mzk5OgorXkkgKiAgICBwZXJtaXR0ZWQuICBJZiB0aGUgYGAtbyBkZWZhdWx0X3Blcm1pc3Npb25z YGAgbW91bnQgb3B0aW9uIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQwMDoKK15JICogICAgZ2l2 ZW4sIHRoaXMgY2hlY2sgaXMgYWxyZWFkeSBkb25lIGJ5IHRoZSBrZXJuZWwgYmVmb3JlIGNhbGxp bmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MjA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDAxOgorXkkgKiAgICBvcGVuKCkgYW5kIG1heSB0aHVz IGJlIG9taXR0ZWQgYnkgdGhlIGZpbGVzeXN0ZW0uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQwMjoK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MjI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDAzOgorXkkgKiAgLSBXaGVuIHdyaXRlYmFjayBj YWNoaW5nIGlzIGVuYWJsZWQsIHRoZSBrZXJuZWwgbWF5IHNlbmQkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NDA0OgorXkkgKiAgICByZWFkIHJlcXVlc3RzIGV2ZW4gZm9yIGZpbGVzIG9wZW5lZCB3aXRo IE9fV1JPTkxZLiBUaGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDA1OgorXkkgKiAgICBmaWxlc3lz dGVtIHNob3VsZCBiZSBwcmVwYXJlZCB0byBoYW5kbGUgdGhpcy4kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NDA2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MDc6CiteSSAqICAtIFdoZW4gd3Jp dGViYWNrIGNhY2hpbmcgaXMgZGlzYWJsZWQsIHRoZSBmaWxlc3lzdGVtIGlzJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjQwODoKK15JICogICAgZXhwZWN0ZWQgdG8gcHJvcGVybHkgaGFuZGxlIHRoZSBP X0FQUEVORCBmbGFnIGFuZCBlbnN1cmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDA5OgorXkkgKiAg ICB0aGF0IGVhY2ggd3JpdGUgaXMgYXBwZW5kaW5nIHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUuJAoK RVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzQyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo0MTA6CiteSSAqICQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MTA6CiteSSAqICQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzMTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo0MTI6CiteSSAqICAgIGhhbmRsZSBPX0FQUEVORC4gSG93ZXZlciwgdW5s ZXNzIGFsbCBjaGFuZ2VzIHRvIHRoZSBmaWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQxMzoKK15J ICogICAgY29tZSB0aHJvdWdoIHRoZSBrZXJuZWwgdGhpcyB3aWxsIG5vdCB3b3JrIHJlbGlhYmx5 LiBUaGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDE0OgorXkkgKiAgICBmaWxlc3lzdGVtIHNob3Vs ZCB0aHVzIGVpdGhlciBpZ25vcmUgdGhlIE9fQVBQRU5EIGZsYWckCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NDE1OgorXkkgKiAgICAoYW5kIGxldCB0aGUga2VybmVsIGhhbmRsZSBpdCksIG9yIHJldHVy biBhbiBlcnJvciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQz NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MTY6CiteSSAqICAgIChpbmRpY2F0aW5n IHRoYXQgcmVsaWFibHkgT19BUFBFTkQgaXMgbm90IGF2YWlsYWJsZSkuJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjQxNzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDE4OgorXkkgKiBGaWxlc3lz dGVtIG1heSBzdG9yZSBhbiBhcmJpdHJhcnkgZmlsZSBoYW5kbGUgKHBvaW50ZXIsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDM4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjQxOToKK15JICogaW5kZXgsIGV0YykgaW4gZmktPmZoLCBhbmQgdXNlIHRo aXMgaW4gb3RoZXIgYWxsIG90aGVyIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDIwOgorXkkg KiBvcGVyYXRpb25zIChyZWFkLCB3cml0ZSwgZmx1c2gsIHJlbGVhc2UsIGZzeW5jKS4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NDIxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQ0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MjI6CiteSSAq IEZpbGVzeXN0ZW0gbWF5IGFsc28gaW1wbGVtZW50IHN0YXRlbGVzcyBmaWxlIEkvTyBhbmQgbm90 IHN0b3JlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQyMzoKK15JICogYW55dGhpbmcgaW4gZmktPmZo LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MjQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQy NToKK15JICogVGhlcmUgYXJlIGFsc28gc29tZSBmbGFncyAoZGlyZWN0X2lvLCBrZWVwX2NhY2hl KSB3aGljaCB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDI2OgorXkkgKiBmaWxlc3lzdGVtIG1h eSBzZXQgaW4gZmksIHRvIGNoYW5nZSB0aGUgd2F5IHRoZSBmaWxlIGlzIG9wZW5lZC4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NDI3OgorXkkgKiBTZWUgZnVzZV9maWxlX2luZm8gc3RydWN0dXJlIGlu IDxmdXNlX2NvbW1vbi5oPiBmb3IgbW9yZSBkZXRhaWxzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0 Mjg6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQ4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQyOToKK15JICogSWYgdGhpcyByZXF1ZXN0 IGlzIGFuc3dlcmVkIHdpdGggYW4gZXJyb3IgY29kZSBvZiBFTk9TWVMkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NDMwOgorXkkgKiBhbmQgRlVTRV9DQVBfTk9fT1BFTl9TVVBQT1JUIGlzIHNldCBpbiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo0MzE6CiteSSAqIGBmdXNlX2Nvbm5faW5mby5jYXBhYmxlYCwg dGhpcyBpcyB0cmVhdGVkIGFzIHN1Y2Nlc3MgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQzMjoK K15JICogZnV0dXJlIGNhbGxzIHRvIG9wZW4gd2lsbCBhbHNvIHN1Y2NlZWQgd2l0aG91dCBiZWlu ZyBzZW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDUyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQzMzoKK15JICogdG8gdGhlIGZpbGVzeXN0ZW0g cHJvY2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDM0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo0MzU6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQ1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MzY6CiteSWludCAoKm9wZW4p IChjb25zdCBjaGFyICosIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NDM4OgorXkkvKiogUmVhZCBkYXRhIGZyb20gYW4gb3BlbiBmaWxlJAoKV0FSTklORzog QmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzQ1Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0Mzg6CisgICAgICAgLyoqIFJlYWQgZGF0YSBm cm9tIGFuIG9wZW4gZmlsZQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQzOToKK15JICokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NDQwOgorXkkgKiBSZWFkIHNob3VsZCByZXR1cm4gZXhhY3RseSB0aGUgbnVt YmVyIG9mIGJ5dGVzIHJlcXVlc3RlZCBleGNlcHQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDQxOgor XkkgKiBvbiBFT0Ygb3IgZXJyb3IsIG90aGVyd2lzZSB0aGUgcmVzdCBvZiB0aGUgZGF0YSB3aWxs IGJlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ0MjoKK15JICogc3Vic3RpdHV0ZWQgd2l0aCB6ZXJv ZXMuXkkgQW4gZXhjZXB0aW9uIHRvIHRoaXMgaXMgd2hlbiB0aGUkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NDQzOgorXkkgKiAnZGlyZWN0X2lvJyBtb3VudCBvcHRpb24gaXMgc3BlY2lmaWVkLCBpbiB3 aGljaCBjYXNlIHRoZSByZXR1cm4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDQ0OgorXkkgKiB2YWx1 ZSBvZiB0aGUgcmVhZCBzeXN0ZW0gY2FsbCB3aWxsIHJlZmxlY3QgdGhlIHJldHVybiB2YWx1ZSBv ZiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NDU6CiteSSAqIHRoaXMgb3BlcmF0aW9uLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo0NDY6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQ2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NDc6CiteSWlu dCAoKnJlYWQpIChjb25zdCBjaGFyICosIGNoYXIgKiwgc2l6ZV90LCBvZmZfdCwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Njc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NDQ4OgorXkleSSAgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICopOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo0NTA6CiteSS8qKiBXcml0ZSBkYXRhIHRvIGFuIG9wZW4gZmlsZSQK CldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBs aW5lCiM0Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDUwOgorICAgICAgIC8qKiBX cml0ZSBkYXRhIHRvIGFuIG9wZW4gZmlsZQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ1MToKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NzE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDUyOgorXkkgKiBXcml0ZSBzaG91bGQgcmV0dXJuIGV4YWN0 bHkgdGhlIG51bWJlciBvZiBieXRlcyByZXF1ZXN0ZWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDUz OgorXkkgKiBleGNlcHQgb24gZXJyb3IuXkkgQW4gZXhjZXB0aW9uIHRvIHRoaXMgaXMgd2hlbiB0 aGUgJ2RpcmVjdF9pbyckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0NzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDU0OgorXkkgKiBtb3VudCBvcHRp b24gaXMgc3BlY2lmaWVkIChzZWUgcmVhZCBvcGVyYXRpb24pLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo0NTU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ1NjoKK15JICogVW5sZXNzIEZVU0Vf Q0FQX0hBTkRMRV9LSUxMUFJJViBpcyBkaXNhYmxlZCwgdGhpcyBtZXRob2QgaXMkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NzY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NDU3OgorXkkgKiBleHBlY3RlZCB0byByZXNldCB0aGUgc2V0dWlkIGFuZCBz ZXRnaWQgYml0cy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDU4OgorXkkgKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NDU5OgorXklpbnQgKCp3cml0ZSkgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAq LCBzaXplX3QsIG9mZl90LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQ3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NjA6CiteSV5JICAgICAgc3Ry dWN0IGZ1c2VfZmlsZV9pbmZvICopOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQ4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NjI6CiteSS8qKiBH ZXQgZmlsZSBzeXN0ZW0gc3RhdGlzdGljcyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM0ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NDYyOgorICAgICAgIC8qKiBHZXQgZmlsZSBzeXN0ZW0gc3RhdGlzdGljcwoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDgyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjQ2MzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDY0OgorXkkg KiBUaGUgJ2ZfZmF2YWlsJywgJ2ZfZnNpZCcgYW5kICdmX2ZsYWcnIGZpZWxkcyBhcmUgaWdub3Jl ZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NjU6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0 NjY6CiteSWludCAoKnN0YXRmcykgKGNvbnN0IGNoYXIgKiwgc3RydWN0IHN0YXR2ZnMgKik7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjQ2ODoKK15JLyoqIFBvc3NpYmx5IGZsdXNoIGNhY2hlZCBkYXRh JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRl IGxpbmUKIzQ4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0Njg6CisgICAgICAgLyoq IFBvc3NpYmx5IGZsdXNoIGNhY2hlZCBkYXRhCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDY5OgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4OTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NzA6CiteSSAqIEJJRyBOT1RFOiBUaGlzIGlzIG5vdCBl cXVpdmFsZW50IHRvIGZzeW5jKCkuICBJdCdzIG5vdCBhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ3 MToKK15JICogcmVxdWVzdCB0byBzeW5jIGRpcnR5IGRhdGEuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjQ3MjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDczOgorXkkgKiBGbHVzaCBpcyBjYWxs ZWQgb24gZWFjaCBjbG9zZSgpIG9mIGEgZmlsZSBkZXNjcmlwdG9yLCBhcyBvcHBvc2VkIHRvJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDkzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjQ3NDoKK15JICogcmVsZWFzZSB3aGljaCBpcyBjYWxsZWQgb24g dGhlIGNsb3NlIG9mIHRoZSBsYXN0IGZpbGUgZGVzY3JpcHRvciBmb3IkCgpFUlJPUjogdHJhaWxp bmcgd2hpdGVzcGFjZQojNDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ3NToKK15J ICogYSBmaWxlLiAgVW5kZXIgTGludXgsIGVycm9ycyByZXR1cm5lZCBieSBmbHVzaCgpIHdpbGwg YmUgcGFzc2VkIHRvICQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NzU6CiteSSAqIGEgZmlsZS4gIFVu ZGVyIExpbnV4LCBlcnJvcnMgcmV0dXJuZWQgYnkgZmx1c2goKSB3aWxsIGJlIHBhc3NlZCB0byAk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDc2OgorXkkgKiB1c2Vyc3BhY2UgYXMgZXJyb3JzIGZyb20g Y2xvc2UoKSwgc28gZmx1c2goKSBpcyBhIGdvb2QgcGxhY2UgdG8gd3JpdGUkCgpFUlJPUjogdHJh aWxpbmcgd2hpdGVzcGFjZQojNDk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ3NzoK K15JICogYmFjayBhbnkgY2FjaGVkIGRpcnR5IGRhdGEuIEhvd2V2ZXIsIG1hbnkgYXBwbGljYXRp b25zIGlnbm9yZSBlcnJvcnMgJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ3NzoKK15JICogYmFjayBh bnkgY2FjaGVkIGRpcnR5IGRhdGEuIEhvd2V2ZXIsIG1hbnkgYXBwbGljYXRpb25zIGlnbm9yZSBl cnJvcnMgJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQ5NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo0Nzg6CisgICAgICAgICogb24gY2xvc2UoKSwgYW5kIG9uIG5v bi1MaW51eCBzeXN0ZW1zLCBjbG9zZSgpIG1heSBzdWNjZWVkIGV2ZW4gaWYgZmx1c2goKQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDk3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjQ3ODoKK15JICogb24gY2xvc2UoKSwgYW5kIG9uIG5vbi1MaW51eCBz eXN0ZW1zLCBjbG9zZSgpIG1heSBzdWNjZWVkIGV2ZW4gaWYgZmx1c2goKSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5ODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo0Nzk6CiteSSAqIHJldHVybnMgYW4gZXJyb3IuIEZvciB0aGVzZSByZWFzb25zLCBm aWxlc3lzdGVtcyBzaG91bGQgbm90IGFzc3VtZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQ5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0ODA6Cite SSAqIHRoYXQgZXJyb3JzIHJldHVybmVkIGJ5IGZsdXNoIHdpbGwgZXZlciBiZSBub3RpY2VkIG9y IGV2ZW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDgxOgorXkkgKiBkZWxpdmVyZWQuJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTAxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjQ4MjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM1MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDgzOgorXkkgKiBO T1RFOiBUaGUgZmx1c2goKSBtZXRob2QgbWF5IGJlIGNhbGxlZCBtb3JlIHRoYW4gb25jZSBmb3Ig ZWFjaCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUwMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0ODQ6CiteSSAqIG9wZW4oKS4gIFRoaXMgaGFwcGVu cyBpZiBtb3JlIHRoYW4gb25lIGZpbGUgZGVzY3JpcHRvciByZWZlcnMgdG8gYW4kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NDg1OgorXkkgKiBvcGVuIGZpbGUgaGFuZGxlLCBlLmcuIGR1ZSB0byBkdXAo KSwgZHVwMigpIG9yIGZvcmsoKSBjYWxscy4gIEl0IGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ4 NjoKK15JICogbm90IHBvc3NpYmxlIHRvIGRldGVybWluZSBpZiBhIGZsdXNoIGlzIGZpbmFsLCBz byBlYWNoIGZsdXNoIHNob3VsZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzUwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0ODc6CiteSSAqIGJlIHRy ZWF0ZWQgZXF1YWxseS4gIE11bHRpcGxlIHdyaXRlLWZsdXNoIHNlcXVlbmNlcyBhcmUgcmVsYXRp dmVseSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUwNzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0ODg6CiteSSAqIHJhcmUsIHNvIHRoaXMgc2hvdWxk bid0IGJlIGEgcHJvYmxlbS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDg5OgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUwOTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo0OTA6CiteSSAqIEZpbGVzeXN0ZW1zIHNob3VsZG4ndCBhc3N1bWUgdGhh dCBmbHVzaCB3aWxsIGJlIGNhbGxlZCBhdCBhbnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDkxOgor XkkgKiBwYXJ0aWN1bGFyIHBvaW50LiAgSXQgbWF5IGJlIGNhbGxlZCBtb3JlIHRpbWVzIHRoYW4g ZXhwZWN0ZWQsIG9yIG5vdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzUxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0OTI6CiteSSAqIGF0IGFsbC4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDkzOgorXkkgKiQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBj aGFyYWN0ZXJzCiM1MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDk0OgorICAgICAg ICAqIFtjbG9zZV06IGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5 Nzk5L2Z1bmN0aW9ucy9jbG9zZS5odG1sCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM1MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDk0OgorXkkgKiBb Y2xvc2VdOiBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS9m dW5jdGlvbnMvY2xvc2UuaHRtbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzUxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0OTU6CiteSSAqLyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo0OTY6CiteSWludCAoKmZsdXNoKSAoY29uc3QgY2hhciAqLCBzdHJ1 Y3QgZnVzZV9maWxlX2luZm8gKik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ5ODoKK15JLyoqIFJl bGVhc2UgYW4gb3BlbiBmaWxlJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGlu ZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzUxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo0OTg6CisgICAgICAgLyoqIFJlbGVhc2UgYW4gb3BlbiBmaWxlCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NDk5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzUxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MDA6CiteSSAqIFJlbGVhc2UgaXMg Y2FsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIG1vcmUgcmVmZXJlbmNlcyB0byBhbiBvcGVuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTIwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjUwMToKK15JICogZmlsZTogYWxsIGZpbGUgZGVzY3JpcHRvcnMgYXJl IGNsb3NlZCBhbmQgYWxsIG1lbW9yeSBtYXBwaW5ncyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzUyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MDI6 CiteSSAqIGFyZSB1bm1hcHBlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTAzOgorXkkgKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyMzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo1MDQ6CiteSSAqIEZvciBldmVyeSBvcGVuKCkgY2FsbCB0aGVyZSB3 aWxsIGJlIGV4YWN0bHkgb25lIHJlbGVhc2UoKSBjYWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUw NToKK15JICogd2l0aCB0aGUgc2FtZSBmbGFncyBhbmQgZmlsZSBoYW5kbGUuICBJdCBpcyBwb3Nz aWJsZSB0byQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyNTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MDY6CiteSSAqIGhhdmUgYSBmaWxlIG9wZW5l ZCBtb3JlIHRoYW4gb25jZSwgaW4gd2hpY2ggY2FzZSBvbmx5IHRoZSBsYXN0JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTI2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjUwNzoKK15JICogcmVsZWFzZSB3aWxsIG1lYW4sIHRoYXQgbm8gbW9yZSByZWFk cy93cml0ZXMgd2lsbCBoYXBwZW4gb24gdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNTI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUwODoKK15J ICogZmlsZS4gIFRoZSByZXR1cm4gdmFsdWUgb2YgcmVsZWFzZSBpcyBpZ25vcmVkLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo1MDk6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzUyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MTA6CiteSWlu dCAoKnJlbGVhc2UpIChjb25zdCBjaGFyICosIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MzE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NTEyOgorXkkvKiogU3luY2hyb25pemUgZmlsZSBjb250ZW50cyQK CldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBs aW5lCiM1MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTEyOgorICAgICAgIC8qKiBT eW5jaHJvbml6ZSBmaWxlIGNvbnRlbnRzCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM1MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTEzOgorXkkgKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzMzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo1MTQ6CiteSSAqIElmIHRoZSBkYXRhc3luYyBwYXJhbWV0ZXIg aXMgbm9uLXplcm8sIHRoZW4gb25seSB0aGUgdXNlciBkYXRhJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjUxNToKK15JICogc2hvdWxkIGJlIGZsdXNoZWQsIG5vdCB0aGUgbWV0YSBkYXRhLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzNTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo1MTY6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzUzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MTc6CiteSWlu dCAoKmZzeW5jKSAoY29uc3QgY2hhciAqLCBpbnQsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTE5OgorXkkvKiogU2V0IGV4dGVuZGVkIGF0dHJpYnV0ZXMg Ki8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mzk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTIwOgorXklpbnQgKCpzZXR4YXR0cikgKGNvbnN0IGNo YXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCwgaW50KTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NTIyOgorXkkvKiogR2V0IGV4dGVuZGVkIGF0dHJpYnV0ZXMgKi8kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NTIzOgorXklpbnQgKCpnZXR4YXR0cikgKGNvbnN0IGNoYXIgKiwgY29u c3QgY2hhciAqLCBjaGFyICosIHNpemVfdCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNTQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUyNToKK15J LyoqIExpc3QgZXh0ZW5kZWQgYXR0cmlidXRlcyAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzU0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MjY6 CiteSWludCAoKmxpc3R4YXR0cikgKGNvbnN0IGNoYXIgKiwgY2hhciAqLCBzaXplX3QpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0NzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo1Mjg6CiteSS8qKiBSZW1vdmUgZXh0ZW5kZWQgYXR0cmlidXRlcyAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1Mjk6CiteSWludCAoKnJlbW92ZXhhdHRyKSAoY29uc3Qg Y2hhciAqLCBjb25zdCBjaGFyICopOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzU1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MzE6CiteSS8qKiBP cGVuIGRpcmVjdG9yeSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiM1NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTMx OgorICAgICAgIC8qKiBPcGVuIGRpcmVjdG9yeQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUzMjoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTMzOgorXkkgKiBVbmxlc3MgdGhlICdkZWZhdWx0X3Bl cm1pc3Npb25zJyBtb3VudCBvcHRpb24gaXMgZ2l2ZW4sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUz NDoKK15JICogdGhpcyBtZXRob2Qgc2hvdWxkIGNoZWNrIGlmIG9wZW5kaXIgaXMgcGVybWl0dGVk IGZvciB0aGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTU0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUzNToKK15JICogZGlyZWN0b3J5LiBPcHRp b25hbGx5IG9wZW5kaXIgbWF5IGFsc28gcmV0dXJuIGFuIGFyYml0cmFyeSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1NTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo1MzY6CiteSSAqIGZpbGVoYW5kbGUgaW4gdGhlIGZ1c2VfZmlsZV9pbmZvIHN0cnVj dHVyZSwgd2hpY2ggd2lsbCBiZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzU1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1Mzc6CiteSSAqIHBhc3Nl ZCB0byByZWFkZGlyLCByZWxlYXNlZGlyIGFuZCBmc3luY2Rpci4kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NTM4OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTM5OgorXklpbnQgKCpvcGVuZGly KSAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjU0MToKK15JLyoqIFJlYWQgZGlyZWN0b3J5JAoKV0FSTklORzogQmxvY2sgY29tbWVu dHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzU2MDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo1NDE6CisgICAgICAgLyoqIFJlYWQgZGlyZWN0b3J5CgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NTQyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzU2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NDM6CiteSSAqIFRo ZSBmaWxlc3lzdGVtIG1heSBjaG9vc2UgYmV0d2VlbiB0d28gbW9kZXMgb2Ygb3BlcmF0aW9uOiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo1NDQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU0NToK K15JICogMSkgVGhlIHJlYWRkaXIgaW1wbGVtZW50YXRpb24gaWdub3JlcyB0aGUgb2Zmc2V0IHBh cmFtZXRlciwgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU0NjoKK15JICogcGFzc2VzIHplcm8g dG8gdGhlIGZpbGxlciBmdW5jdGlvbidzIG9mZnNldC4gIFRoZSBmaWxsZXIkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NTQ3OgorXkkgKiBmdW5jdGlvbiB3aWxsIG5vdCByZXR1cm4gJzEnICh1bmxlc3Mg YW4gZXJyb3IgaGFwcGVucyksIHNvIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzU2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NDg6CiteSSAq IHdob2xlIGRpcmVjdG9yeSBpcyByZWFkIGluIGEgc2luZ2xlIHJlYWRkaXIgb3BlcmF0aW9uLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo1NDk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU1MDoK K15JICogMikgVGhlIHJlYWRkaXIgaW1wbGVtZW50YXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIG9m ZnNldHMgb2YgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU1MToKK15JICogZGlyZWN0b3J5IGVu dHJpZXMuICBJdCB1c2VzIHRoZSBvZmZzZXQgcGFyYW1ldGVyIGFuZCBhbHdheXMkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NTUyOgorXkkgKiBwYXNzZXMgbm9uLXplcm8gb2Zmc2V0IHRvIHRoZSBmaWxs ZXIgZnVuY3Rpb24uICBXaGVuIHRoZSBidWZmZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTUzOgor XkkgKiBpcyBmdWxsIChvciBhbiBlcnJvciBoYXBwZW5zKSB0aGUgZmlsbGVyIGZ1bmN0aW9uIHdp bGwgcmV0dXJuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTcz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU1NDoKK15JICogJzEnLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo1NTU6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzU3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NTY6CiteSWludCAo KnJlYWRkaXIpIChjb25zdCBjaGFyICosIHZvaWQgKiwgZnVzZV9maWxsX2Rpcl90LCBvZmZfdCwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTU3OgorXkleSV5Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvICos IGVudW0gZnVzZV9yZWFkZGlyX2ZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTU5OgorXkkv KiogUmVsZWFzZSBkaXJlY3RvcnkkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFk aW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojNTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjU1OToKKyAgICAgICAvKiogUmVsZWFzZSBkaXJlY3RvcnkKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo1NjA6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzU4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NjE6CiteSWludCAoKnJlbGVhc2Vk aXIpIChjb25zdCBjaGFyICosIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NTYzOgorXkkvKiogU3luY2hyb25pemUgZGlyZWN0b3J5IGNvbnRlbnRzJAoKV0FS TklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUK IzU4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NjM6CisgICAgICAgLyoqIFN5bmNo cm9uaXplIGRpcmVjdG9yeSBjb250ZW50cwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU2NDoKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTY1OgorXkkgKiBJZiB0aGUgZGF0YXN5bmMgcGFyYW1ldGVy IGlzIG5vbi16ZXJvLCB0aGVuIG9ubHkgdGhlIHVzZXIgZGF0YSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo1NjY6CiteSSAqIHNob3VsZCBiZSBmbHVzaGVkLCBub3QgdGhlIG1ldGEgZGF0YSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo1Njc6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzU4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1Njg6CiteSWlu dCAoKmZzeW5jZGlyKSAoY29uc3QgY2hhciAqLCBpbnQsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAq KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTcwOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NTcxOgorXkkgKiBJbml0aWFsaXplIGZpbGVzeXN0ZW0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTcy OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU5Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NzM6CiteSSAqIFRoZSByZXR1cm4gdmFsdWUg d2lsbCBwYXNzZWQgaW4gdGhlIGBwcml2YXRlX2RhdGFgIGZpZWxkIG9mJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjU3NDoKK15JICogYHN0cnVjdCBmdXNlX2NvbnRleHRgIHRvIGFsbCBmaWxlIG9wZXJh dGlvbnMsIGFuZCBhcyBhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNTk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU3NToKK15JICogcGFyYW1ldGVy IHRvIHRoZSBkZXN0cm95KCkgbWV0aG9kLiBJdCBvdmVycmlkZXMgdGhlIGluaXRpYWwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1OTU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NTc2OgorXkkgKiB2YWx1ZSBwcm92aWRlZCB0byBmdXNlX21haW4oKSAv IGZ1c2VfbmV3KCkuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU3NzoKK15JICovJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTk3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjU3ODoKK15Jdm9pZCAqKCppbml0KSAoc3RydWN0IGZ1c2VfY29ubl9pbmZvICpj b25uLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU5ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1Nzk6CiteSV5JICAgICAgIHN0cnVjdCBmdXNlX2Nv bmZpZyAqY2ZnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTgxOgorXkkvKiokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NTgyOgorXkkgKiBDbGVhbiB1cCBmaWxlc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjU4MzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTg0OgorXkkgKiBDYWxsZWQgb24g ZmlsZXN5c3RlbSBleGl0LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzYwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1ODU6CiteSSAqLyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYwNTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo1ODY6CiteSXZvaWQgKCpkZXN0cm95KSAodm9pZCAqcHJpdmF0ZV9kYXRh KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTg4OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NTg5OgorXkkgKiBDaGVjayBmaWxlIGFjY2VzcyBwZXJtaXNzaW9ucyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo1OTA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU5MToKK15JICogVGhpcyB3aWxs IGJlIGNhbGxlZCBmb3IgdGhlIGFjY2VzcygpIHN5c3RlbSBjYWxsLiAgSWYgdGhlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjExOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjU5MjoKK15JICogJ2RlZmF1bHRfcGVybWlzc2lvbnMnIG1vdW50IG9wdGlv biBpcyBnaXZlbiwgdGhpcyBtZXRob2QgaXMgbm90JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU5MzoK K15JICogY2FsbGVkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzYxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1OTQ6CiteSSAqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjE0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjU5NToKK15JICogVGhpcyBtZXRob2QgaXMgbm90IGNhbGxlZCB1bmRlciBMaW51 eCBrZXJuZWwgdmVyc2lvbnMgMi40LngkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM2MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTk2OgorXkkgKi8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTk3OgorXklpbnQgKCphY2Nlc3MpIChjb25zdCBjaGFyICos IGludCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjE4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU5OToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjYwMDoKK15JICogQ3JlYXRlIGFuZCBvcGVuIGEgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo2MDE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYwMjoKK15JICogSWYgdGhlIGZpbGUg ZG9lcyBub3QgZXhpc3QsIGZpcnN0IGNyZWF0ZSBpdCB3aXRoIHRoZSBzcGVjaWZpZWQkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MjI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NjAzOgorXkkgKiBtb2RlLCBhbmQgdGhlbiBvcGVuIGl0LiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo2MDQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYwNToKK15JICog SWYgdGhpcyBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkIG9yIHVuZGVyIExpbnV4IGtlcm5lbCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyNTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo2MDY6CiteSSAqIHZlcnNpb25zIGVhcmxpZXIgdGhhbiAyLjYu MTUsIHRoZSBta25vZCgpIGFuZCBvcGVuKCkgbWV0aG9kcyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2 MDc6CiteSSAqIHdpbGwgYmUgY2FsbGVkIGluc3RlYWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNjI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYw ODoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYwOToKK15JaW50ICgqY3JlYXRlKSAoY29u c3QgY2hhciAqLCBtb2RlX3QsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NjExOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjEyOgorXkkgKiBQZXJm b3JtIFBPU0lYIGZpbGUgbG9ja2luZyBvcGVyYXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM2MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjEz OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MTQ6CiteSSAqIFRoZSBjbWQgYXJndW1lbnQg d2lsbCBiZSBlaXRoZXIgRl9HRVRMSywgRl9TRVRMSyBvciBGX1NFVExLVy4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NjE1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzYzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MTY6CiteSSAqIEZvciB0 aGUgbWVhbmluZyBvZiBmaWVsZHMgaW4gJ3N0cnVjdCBmbG9jaycgc2VlIHRoZSBtYW4gcGFnZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo2MTc6CiteSSAqIGZvciBmY250bCgyKS4gIFRoZSBsX3doZW5j ZSBmaWVsZCB3aWxsIGFsd2F5cyBiZSBzZXQgdG8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjE4Ogor XkkgKiBTRUVLX1NFVC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjE5OgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzOTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo2MjA6CiteSSAqIEZvciBjaGVja2luZyBsb2NrIG93bmVyc2hpcCwgdGhlICdm dXNlX2ZpbGVfaW5mby0+b3duZXInJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYyMToKK15JICogYXJn dW1lbnQgbXVzdCBiZSB1c2VkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MjI6CiteSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjYyMzoKK15JICogRm9yIEZfR0VUTEsgb3BlcmF0aW9uLCB0aGUgbGli cmFyeSB3aWxsIGZpcnN0IGNoZWNrIGN1cnJlbnRseSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MjQ6 CiteSSAqIGhlbGQgbG9ja3MsIGFuZCBpZiBhIGNvbmZsaWN0aW5nIGxvY2sgaXMgZm91bmQgaXQg d2lsbCByZXR1cm4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjI1OgorXkkgKiBpbmZvcm1hdGlvbiB3 aXRob3V0IGNhbGxpbmcgdGhpcyBtZXRob2QuXkkgVGhpcyBlbnN1cmVzLCB0aGF0JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQ1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjYyNjoKK15JICogZm9yIGxvY2FsIGxvY2tzIHRoZSBsX3BpZCBmaWVsZCBp cyBjb3JyZWN0bHkgZmlsbGVkIGluLl5JVGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYyNzoKK15J ICogcmVzdWx0cyBtYXkgbm90IGJlIGFjY3VyYXRlIGluIGNhc2Ugb2YgcmFjZSBjb25kaXRpb25z IGFuZCBpbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2Mjg6CiteSSAqIHRoZSBwcmVzZW5jZSBvZiBo YXJkIGxpbmtzLCBidXQgaXQncyB1bmxpa2VseSB0aGF0IGFuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjYyOToKK15JICogYXBwbGljYXRpb24gd291bGQgcmVseSBvbiBhY2N1cmF0ZSBHRVRMSyByZXN1 bHRzIGluIHRoZXNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYzMDoKK15JICogY2FzZXMuICBJZiBh IGNvbmZsaWN0aW5nIGxvY2sgaXMgbm90IGZvdW5kLCB0aGlzIG1ldGhvZCB3aWxsIGJlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjUwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjYzMToKK15JICogY2FsbGVkLCBhbmQgdGhlIGZpbGVzeXN0ZW0gbWF5 IGZpbGwgb3V0IGxfcGlkIGJ5IGEgbWVhbmluZ2Z1bCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MzI6 CiteSSAqIHZhbHVlLCBvciBpdCBtYXkgbGVhdmUgdGhpcyBmaWVsZCB6ZXJvLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo2MzM6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYzNDoKK15JICogRm9y IEZfU0VUTEsgYW5kIEZfU0VUTEtXIHRoZSBsX3BpZCBmaWVsZCB3aWxsIGJlIHNldCB0byB0aGUg cGlkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYzNToKK15JICogb2YgdGhlIHByb2Nlc3MgcGVyZm9y bWluZyB0aGUgbG9ja2luZyBvcGVyYXRpb24uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYzNjoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjM3OgorXkkgKiBOb3RlOiBpZiB0aGlzIG1ldGhvZCBp cyBub3QgaW1wbGVtZW50ZWQsIHRoZSBrZXJuZWwgd2lsbCBzdGlsbCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo2Mzg6CiteSSAqIGFsbG93IGZpbGUgbG9ja2luZyB0byB3b3JrIGxvY2FsbHkuICBIZW5j ZSBpdCBpcyBvbmx5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYzOToKK15JICogaW50ZXJlc3Rpbmcg Zm9yIG5ldHdvcmsgZmlsZXN5c3RlbXMgYW5kIHNpbWlsYXIuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjY0MDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY0MToKK15JaW50ICgqbG9jaykgKGNv bnN0IGNoYXIgKiwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICosIGludCBjbWQsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjYxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjY0MjoKK15JXkkgICAgIHN0cnVjdCBmbG9jayAqKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NjQ0OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjQ1OgorXkkgKiBDaGFuZ2Ug dGhlIGFjY2VzcyBhbmQgbW9kaWZpY2F0aW9uIHRpbWVzIG9mIGEgZmlsZSB3aXRoJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjY1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjY0NjoKK15JICogbmFub3NlY29uZCByZXNvbHV0aW9uJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjY2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjY0NzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjQ4OgorXkkgKiBUaGlz IHN1cGVyc2VkZXMgdGhlIG9sZCB1dGltZSgpIGludGVyZmFjZS4gIE5ldyBhcHBsaWNhdGlvbnMk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Njg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjQ5OgorXkkgKiBzaG91bGQgdXNlIHRoaXMuJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjY5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjY1MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM2NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjUxOgorXkkgKiBg ZmlgIHdpbGwgYWx3YXlzIGJlIE5VTEwgaWYgdGhlIGZpbGUgaXMgbm90IGN1cnJlbmx0eSBvcGVu LCBidXQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjUyOgorXkkgKiBtYXkgYWxzbyBiZSBOVUxMIGlm IHRoZSBmaWxlIGlzIG9wZW4uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY1MzoKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NjU0OgorXkkgKiBTZWUgdGhlIHV0aW1lbnNhdCgyKSBtYW4gcGFnZSBm b3IgZGV0YWlscy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjU1OgorXkkgKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NjU2OgorXkkgaW50ICgqdXRpbWVucykgKGNvbnN0IGNoYXIgKiwgY29uc3Qgc3Ry dWN0IHRpbWVzcGVjIHR2WzJdLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NTc6CiteSV5JXkkgc3Ry dWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY1OToKK15JLyoq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjY2MDoKK15JICogTWFwIGJsb2NrIGluZGV4IHdpdGhpbiBm aWxlIHRvIGJsb2NrIGluZGV4IHdpdGhpbiBkZXZpY2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM2ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjYx OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4MTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NjI6CiteSSAqIE5vdGU6IFRoaXMgbWFrZXMg c2Vuc2Ugb25seSBmb3IgYmxvY2sgZGV2aWNlIGJhY2tlZCBmaWxlc3lzdGVtcyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo2NjM6CiteSSAqIG1vdW50ZWQgd2l0aCB0aGUgJ2Jsa2Rldicgb3B0aW9uJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjgzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjY2NDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY2NToK K15JaW50ICgqYm1hcCkgKGNvbnN0IGNoYXIgKiwgc2l6ZV90IGJsb2Nrc2l6ZSwgdWludDY0X3Qg KmlkeCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjg2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY2NzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjY2ODoKK15JICogSW9jdGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjY5OgorXkkgKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo2NzA6CiteSSAqIGZsYWdzIHdpbGwgaGF2ZSBGVVNFX0lPQ1RMX0NP TVBBVCBzZXQgZm9yIDMyYml0IGlvY3RscyBpbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzY5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NzE6Cite SSAqIDY0Yml0IGVudmlyb25tZW50LiAgVGhlIHNpemUgYW5kIGRpcmVjdGlvbiBvZiBkYXRhIGlz JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjkxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjY3MjoKK15JICogZGV0ZXJtaW5lZCBieSBfSU9DXyooKSBk ZWNvZGluZyBvZiBjbWQuICBGb3IgX0lPQ19OT05FLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NzM6 CiteSSAqIGRhdGEgd2lsbCBiZSBOVUxMLCBmb3IgX0lPQ19XUklURSBkYXRhIGlzIG91dCBhcmVh LCBmb3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Njc0OgorXkkgKiBfSU9DX1JFQUQgaW4gYXJlYSBh bmQgaWYgYm90aCBhcmUgc2V0IGluL291dCBhcmVhLiAgSW4gYWxsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjY3NToKK15JICogbm9uLU5VTEwgY2FzZXMsIHRoZSBhcmVhIGlzIG9mIF9JT0NfU0laRShj bWQpIGJ5dGVzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NzY6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjY3NzoKK15JICogSWYgZmxhZ3MgaGFzIEZVU0VfSU9DVExfRElSIHRoZW4gdGhlIGZ1 c2VfZmlsZV9pbmZvIHJlZmVycyB0byBhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY3ODoKK15JICog ZGlyZWN0b3J5IGZpbGUgaGFuZGxlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2Nzk6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjY4MDoKK15JICogTm90ZSA6IHRoZSB1bnNpZ25lZCBsb25nIHJl cXVlc3Qgc3VibWl0dGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2 ODE6CiteSSAqIGlzIHRydW5jYXRlZCB0byAzMiBiaXRzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2 ODI6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcw MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2ODM6CiteSWludCAoKmlvY3RsKSAoY29u c3QgY2hhciAqLCB1bnNpZ25lZCBpbnQgY21kLCB2b2lkICphcmcsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjY4NDoKK15JXkkgICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKiwgdW5zaWduZWQgaW50 IGZsYWdzLCB2b2lkICpkYXRhKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Njg2OgorXkkvKiokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6Njg3OgorXkkgKiBQb2xsIGZvciBJTyByZWFkaW5lc3MgZXZlbnRz JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzA3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjY4ODoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM3MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Njg5 OgorXkkgKiBOb3RlOiBJZiBwaCBpcyBub24tTlVMTCwgdGhlIGNsaWVudCBzaG91bGQgbm90aWZ5 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzA5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjY5MDoKK15JICogd2hlbiBJTyByZWFkaW5lc3MgZXZlbnRz IG9jY3VyIGJ5IGNhbGxpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjkxOgorXkkgKiBmdXNlX25v dGlmeV9wb2xsKCkgd2l0aCB0aGUgc3BlY2lmaWVkIHBoLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2 OTI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzEy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY5MzoKK15JICogUmVnYXJkbGVzcyBvZiB0 aGUgbnVtYmVyIG9mIHRpbWVzIHBvbGwgd2l0aCBhIG5vbi1OVUxMIHBoJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjY5NDoKK15JICogaXMgcmVjZWl2ZWQsIHNpbmdsZSBub3RpZmljYXRpb24gaXMgZW5v dWdoIHRvIGNsZWFyIGFsbC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Njk1OgorXkkgKiBOb3RpZnlp bmcgbW9yZSB0aW1lcyBpbmN1cnMgb3ZlcmhlYWQgYnV0IGRvZXNuJ3QgaGFybSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo2OTY6CiteSSAqIGNvcnJlY3RuZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2 OTc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzE3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY5ODoKK15JICogVGhlIGNhbGxlZSBpcyBy ZXNwb25zaWJsZSBmb3IgZGVzdHJveWluZyBwaCB3aXRoJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY5 OToKK15JICogZnVzZV9wb2xsaGFuZGxlX2Rlc3Ryb3koKSB3aGVuIG5vIGxvbmdlciBpbiB1c2Uu JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzE5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjcwMDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcw MToKK15JaW50ICgqcG9sbCkgKGNvbnN0IGNoYXIgKiwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICos JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzIxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjcwMjoKK15JXkkgICAgIHN0cnVjdCBmdXNlX3BvbGxoYW5k bGUgKnBoLCB1bnNpZ25lZCAqcmV2ZW50c3ApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzcyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MDQ6Cite SS8qKiBXcml0ZSBjb250ZW50cyBvZiBidWZmZXIgdG8gYW4gb3BlbiBmaWxlJAoKV0FSTklORzog QmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzcyMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MDQ6CisgICAgICAgLyoqIFdyaXRlIGNvbnRl bnRzIG9mIGJ1ZmZlciB0byBhbiBvcGVuIGZpbGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzcyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MDU6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcwNjoKK15JICogU2ltaWxhciB0byB0aGUgd3JpdGUo KSBtZXRob2QsIGJ1dCBkYXRhIGlzIHN1cHBsaWVkIGluIGEkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NzA3OgorXkkgKiBnZW5lcmljIGJ1ZmZlci4gIFVzZSBmdXNlX2J1Zl9jb3B5KCkgdG8gdHJhbnNm ZXIgZGF0YSB0byQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcy NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MDg6CiteSSAqIHRoZSBkZXN0aW5hdGlv bi4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Mjg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzA5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3 MTA6CiteSSAqIFVubGVzcyBGVVNFX0NBUF9IQU5ETEVfS0lMTFBSSVYgaXMgZGlzYWJsZWQsIHRo aXMgbWV0aG9kIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcxMToKK15JICogZXhwZWN0ZWQgdG8g cmVzZXQgdGhlIHNldHVpZCBhbmQgc2V0Z2lkIGJpdHMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcx MjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzMy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcxMzoKK15JaW50ICgqd3JpdGVfYnVmKSAo Y29uc3QgY2hhciAqLCBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1Ziwgb2ZmX3Qgb2ZmLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo3MTQ6CiteSV5JXkkgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NzE2OgorXkkvKiogU3RvcmUgZGF0YSBmcm9tIGFuIG9wZW4gZmls ZSBpbiBhIGJ1ZmZlciQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiM3MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzE2 OgorICAgICAgIC8qKiBTdG9yZSBkYXRhIGZyb20gYW4gb3BlbiBmaWxlIGluIGEgYnVmZmVyCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NzE3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzczNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MTg6Cite SSAqIFNpbWlsYXIgdG8gdGhlIHJlYWQoKSBtZXRob2QsIGJ1dCBkYXRhIGlzIHN0b3JlZCBhbmQk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Mzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzE5OgorXkkgKiByZXR1cm5lZCBpbiBhIGdlbmVyaWMgYnVm ZmVyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MjA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjcyMToKK15JICogTm8gYWN0dWFsIGNvcHlpbmcgb2YgZGF0YSBoYXMgdG8gdGFrZSBwbGFjZSwg dGhlIHNvdXJjZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MjI6CiteSSAqIGZpbGUgZGVzY3JpcHRv ciBtYXkgc2ltcGx5IGJlIHN0b3JlZCBpbiB0aGUgYnVmZmVyIGZvciQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo3MjM6CiteSSAqIGxhdGVyIGRhdGEgdHJhbnNmZXIuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjcyNDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzI1OgorXkkgKiBUaGUgYnVmZmVyIG11 c3QgYmUgYWxsb2NhdGVkIGR5bmFtaWNhbGx5IGFuZCBzdG9yZWQgYXQgdGhlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQ1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjcyNjoKK15JICogbG9jYXRpb24gcG9pbnRlZCB0byBieSBidWZwLiAgSWYgdGhl IGJ1ZmZlciBjb250YWlucyBtZW1vcnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzI3OgorXkkgKiBy ZWdpb25zLCB0aGV5IHRvbyBtdXN0IGJlIGFsbG9jYXRlZCB1c2luZyBtYWxsb2MoKS4gIFRoZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo3Mjg6CiteSSAqIGFsbG9jYXRlZCBtZW1vcnkgd2lsbCBiZSBm cmVlZCBieSB0aGUgY2FsbGVyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzc0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3Mjk6CiteSSAqLyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo3MzA6CiteSWludCAoKnJlYWRfYnVmKSAoY29uc3QgY2hhciAqLCBz dHJ1Y3QgZnVzZV9idWZ2ZWMgKipidWZwLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzc1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MzE6CiteSV5J Xkkgc2l6ZV90IHNpemUsIG9mZl90IG9mZiwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICopOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo3MzI6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MzM6Cite SSAqIFBlcmZvcm0gQlNEIGZpbGUgbG9ja2luZyBvcGVyYXRpb24kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NzM0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MzU6CiteSSAqIFRoZSBvcCBhcmd1 bWVudCB3aWxsIGJlIGVpdGhlciBMT0NLX1NILCBMT0NLX0VYIG9yIExPQ0tfVU4kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NzM2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3Mzc6CiteSSAqIE5v bmJsb2NraW5nIHJlcXVlc3RzIHdpbGwgYmUgaW5kaWNhdGVkIGJ5IE9SaW5nIExPQ0tfTkIgdG8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzM4OgorXkkgKiB0aGUgYWJvdmUgb3BlcmF0aW9ucyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo3Mzk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNzU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc0MDoKK15J ICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHRoZSBmbG9jaygyKSBtYW51YWwgcGFnZS4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NzQxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NDI6Cite SSAqIEFkZGl0aW9uYWxseSBmaS0+b3duZXIgd2lsbCBiZSBzZXQgdG8gYSB2YWx1ZSB1bmlxdWUg dG8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzQzOgorXkkgKiB0aGlzIG9wZW4gZmlsZS4gIFRoaXMg c2FtZSB2YWx1ZSB3aWxsIGJlIHN1cHBsaWVkIHRvJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc0NDoK K15JICogLT5yZWxlYXNlKCkgd2hlbiB0aGUgZmlsZSBpcyByZWxlYXNlZC4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NzQ1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzc2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NDY6CiteSSAqIE5vdGU6 IGlmIHRoaXMgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCwgdGhlIGtlcm5lbCB3aWxsIHN0aWxs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjc0NzoKK15JICogYWxsb3cgZmlsZSBsb2NraW5nIHRvIHdv cmsgbG9jYWxseS4gIEhlbmNlIGl0IGlzIG9ubHkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzQ4Ogor XkkgKiBpbnRlcmVzdGluZyBmb3IgbmV0d29yayBmaWxlc3lzdGVtcyBhbmQgc2ltaWxhci4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Njg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NzQ5OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzUwOgor XklpbnQgKCpmbG9jaykgKGNvbnN0IGNoYXIgKiwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICosIGlu dCBvcCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzcxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc1MjoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjc1MzoKK15JICogQWxsb2NhdGVzIHNwYWNlIGZvciBhbiBvcGVuIGZpbGUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NzM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NzU0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NTU6CiteSSAqIFRo aXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHJlcXVpcmVkIHNwYWNlIGlzIGFsbG9jYXRlZCBmb3Ig c3BlY2lmaWVkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc1NjoKK15JICogZmlsZS4gIElmIHRoaXMg ZnVuY3Rpb24gcmV0dXJucyBzdWNjZXNzIHRoZW4gYW55IHN1YnNlcXVlbnQgd3JpdGUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NzY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NzU3OgorXkkgKiByZXF1ZXN0IHRvIHNwZWNpZmllZCByYW5nZSBpcyBn dWFyYW50ZWVkIG5vdCB0byBmYWlsIGJlY2F1c2Ugb2YgbGFjayQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo3NTg6CiteSSAqIG9mIHNwYWNlIG9uIHRoZSBmaWxlIHN5c3RlbSBtZWRpYS4kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Nzg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NzU5OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzYwOgorXklpbnQg KCpmYWxsb2NhdGUpIChjb25zdCBjaGFyICosIGludCwgb2ZmX3QsIG9mZl90LCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc4MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo3NjE6CiteSV5JXkkgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NzYzOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzY0OgorXkkg KiBDb3B5IGEgcmFuZ2Ugb2YgZGF0YSBmcm9tIG9uZSBmaWxlIHRvIGFub3RoZXIkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NzY1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NjY6CiteSSAqIFBl cmZvcm1zIGFuIG9wdGltaXplZCBjb3B5IGJldHdlZW4gdHdvIGZpbGUgZGVzY3JpcHRvcnMgd2l0 aG91dCB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzY3OgorXkkgKiBhZGRpdGlvbmFsIGNvc3Qg b2YgdHJhbnNmZXJyaW5nIGRhdGEgdGhyb3VnaCB0aGUgRlVTRSBrZXJuZWwgbW9kdWxlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjc2ODoKK15JICogdG8gdXNlciBzcGFjZSAoZ2xpYmMpIGFuZCB0aGVu IGJhY2sgaW50byB0aGUgRlVTRSBmaWxlc3lzdGVtIGFnYWluLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo3Njk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Nzg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc3MDoKK15JICogSW4gY2FzZSB0aGlz IG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQsIGdsaWJjIGZhbGxzIGJhY2sgdG8gcmVhZGluZyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo3NzE6CiteSSAqIGRhdGEgZnJvbSB0aGUgc291cmNlIGFuZCB3 cml0aW5nIHRvIHRoZSBkZXN0aW5hdGlvbi4gRWZmZWN0aXZlbHkkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NzcyOgorXkkgKiBkb2luZyBhbiBpbmVmZmljaWVudCBjb3B5IG9mIHRoZSBkYXRhLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo3NzM6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NzQ6Cite SXNzaXplX3QgKCpjb3B5X2ZpbGVfcmFuZ2UpIChjb25zdCBjaGFyICpwYXRoX2luLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo3NzU6CiteSV5JXkleSSAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZp X2luLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5NTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NzY6CiteSV5JXkleSSAgICBvZmZfdCBvZmZzZXRf aW4sIGNvbnN0IGNoYXIgKnBhdGhfb3V0LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzc5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3Nzc6CiteSV5J XkleSSAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpX291dCwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6Nzc4OgorXkleSV5JXkkgICAgb2ZmX3Qgb2Zmc2V0X291dCwgc2l6ZV90IHNpemUsIGludCBm bGFncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc4MDoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjc4MToKK15JICogRmluZCBuZXh0IGRhdGEgb3IgaG9sZSBhZnRlciB0aGUgc3BlY2lmaWVk IG9mZnNldCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3ODI6CiteSSAqLyQKCldBUk5JTkc6IGxpbmUg b3ZlciA4MCBjaGFyYWN0ZXJzCiM4MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Nzgz OgorICAgICAgIG9mZl90ICgqbHNlZWspIChjb25zdCBjaGFyICosIG9mZl90IG9mZiwgaW50IHdo ZW5jZSwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICopOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojODAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc4MzoK K15Jb2ZmX3QgKCpsc2VlaykgKGNvbnN0IGNoYXIgKiwgb2ZmX3Qgb2ZmLCBpbnQgd2hlbmNlLCBz dHJ1Y3QgZnVzZV9maWxlX2luZm8gKik7JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEg bGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzgwNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo3ODY6CisvKiogRXh0cmEgY29udGV4dCB0aGF0IG1heSBiZSBuZWVkZWQgYnkgc29t ZSBmaWxlc3lzdGVtcwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj ODExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc5MjoKK15JLyoqIFBvaW50ZXIgdG8g dGhlIGZ1c2Ugb2JqZWN0ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc5MzoKK15Jc3RydWN0IGZ1 c2UgKmZ1c2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODE0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc5NToKK15JLyoqIFVzZXIgSUQgb2YgdGhl IGNhbGxpbmcgcHJvY2VzcyAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3OTY6CiteSXVpZF90IHVp ZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Nzk4OgorXkkvKiogR3JvdXAgSUQgb2YgdGhlIGNhbGxp bmcgcHJvY2VzcyAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzgxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3OTk6CiteSWdpZF90IGdpZDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MjA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6ODAxOgorXkkvKiogUHJvY2VzcyBJRCBvZiB0aGUgY2FsbGluZyB0 aHJlYWQgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MjE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6ODAyOgorXklwaWRfdCBwaWQ7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODIzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjgwNDoKK15JLyoqIFByaXZhdGUgZmlsZXN5c3RlbSBkYXRhICovJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjgwNToKK15Jdm9pZCAqcHJpdmF0ZV9kYXRhOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyNjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo4MDc6CiteSS8qKiBVbWFzayBvZiB0aGUgY2FsbGluZyBwcm9jZXNzICovJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjgwODoKK15JbW9kZV90IHVtYXNrOyQKCldBUk5JTkc6IEJsb2NrIGNv bW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzg4NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo4NjY6CisvKgorICBpbnQgZnVzZV9tYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10sIGNvbnN0IHN0cnVjdCBmdXNlX29wZXJhdGlvbnMgKm9wLAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojODg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o Ojg2OToKKyNkZWZpbmUgZnVzZV9tYWluKGFyZ2MsIGFyZ3YsIG9wLCBwcml2YXRlX2RhdGEpXkle SV5JXklcJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODg5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjg3MDoKK15JZnVzZV9tYWluX3JlYWwoYXJnYywg YXJndiwgb3AsIHNpemVvZigqKG9wKSksIHByaXZhdGVfZGF0YSkkCgpXQVJOSU5HOiBCbG9jayBj b21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojODkxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjg3MjoKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo4 NzM6CisgKiBNb3JlIGRldGFpbGVkIEFQSV5JXkleSV5JXkkgICAgICAgKiQKCldBUk5JTkc6IEJs b2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojODkzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjg3NDoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpXQVJOSU5HOiBsaW5l IG92ZXIgODAgY2hhcmFjdGVycwojOTM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjkx NzoKK3N0cnVjdCBmdXNlICpmdXNlX25ld18zMChzdHJ1Y3QgZnVzZV9hcmdzICphcmdzLCBjb25z dCBzdHJ1Y3QgZnVzZV9vcGVyYXRpb25zICpvcCwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzkzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo5MTg6Cite SV5JXkkgc2l6ZV90IG9wX3NpemUsIHZvaWQgKnByaXZhdGVfZGF0YSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjkyMjoKK15JXkkgICAgICBzaXplX3Qgb3Bfc2l6ZSwgdm9pZCAqcHJpdmF0ZV9kYXRh KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6OTQ3OgorICogTk9URTogVGhpcyBmdW5jdGlvbiBkb2Vz IG5vdCB1bm1vdW50IHRoZSBmaWxlc3lzdGVtLl5JIElmIHRoaXMgaXMkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjEwNzU6CiteSV5JICAgc2l6ZV90IG9wX3NpemUsIHZvaWQgKnByaXZhdGVfZGF0YSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTI2OgorXkleSSAgICBzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTQ3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExMjg6CiteSV5JICAgY29uc3QgY2hhciAq bmV3cGF0aCwgdW5zaWduZWQgaW50IGZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExMzI6 CiteSV5JICAgIGNvbnN0IGNoYXIgKnBhdGgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzExNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTEzNDoK K2ludCBmdXNlX2ZzX3JlbGVhc2Uoc3RydWN0IGZ1c2VfZnMgKmZzLF5JIGNvbnN0IGNoYXIgKnBh dGgsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTM1OgorXkleSSAgICBzdHJ1Y3QgZnVzZV9maWxl X2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExMzc6CiteSV5JIHN0cnVjdCBmdXNl X2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTEzOToKK15JXkkgb2ZmX3Qg b2ZmLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEx NDE6CiteSV5JICAgICBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKipidWZwLCBzaXplX3Qgc2l6ZSwgb2Zm X3Qgb2ZmLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNjE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE0MjoKK15JXkkgICAgIHN0cnVjdCBmdXNl X2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE0NDoKK15JXkkgIHNpemVf dCBzaXplLCBvZmZfdCBvZmYsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNjU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6MTE0NjoKK15JXkkgICAgICBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1Ziwgb2Zm X3Qgb2ZmLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNjY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE0NzoKK15JXkkgICAgICBzdHJ1Y3QgZnVz ZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNDk6CiteSV5JICBzdHJ1 Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNTE6CiteSV5J ICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNTQ6 CiteSV5JICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MTE1NjoKK15JXkkgICAgZnVzZV9maWxsX2Rpcl90IGZpbGxlciwgb2ZmX3Qgb2ZmLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MTE1NzoKK15JXkkgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpm aSwgZW51bSBmdXNlX3JlYWRkaXJfZmxhZ3MgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MTE1OToKK15JXkkgICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MTE2MToKK15JXkkgICAgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoxMTYzOgorXkleSSAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAq ZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE2NToKK15JXkkgc3RydWN0IGZ1c2VfZmlsZV9p bmZvICpmaSwgaW50IGNtZCwgc3RydWN0IGZsb2NrICpsb2NrKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjExNjc6CiteSV5JICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpLCBpbnQgb3ApOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MTE2OToKK15JXkkgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE3MToKK15JXkkgIHN0cnVjdCBmdXNlX2ZpbGVfaW5m byAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE3MzoKK15JXkkgICAgIHN0cnVjdCBmdXNl X2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE3NToKK15JXkkgICAgY29u c3Qgc3RydWN0IHRpbWVzcGVjIHR2WzJdLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjExNzg6CiteSV5JICAgICBzaXplX3QgbGVuKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjExODA6CiteSV5JICBkZXZfdCByZGV2KTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjExODM6CiteSV5JICAgICBjb25zdCBjaGFyICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBm bGFncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTg1OgorXkleSSAgICAgY2hhciAqdmFsdWUs IHNpemVfdCBzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExODc6CiteSV5JICAgICAgc2l6 ZV90IHNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE4OToKK15JXkleSWNvbnN0IGNoYXIg Km5hbWUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE5MToKK15JXkkgdWludDY0X3QgKmlkeCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTkzOgorXkleSSAgdm9pZCAqYXJnLCBzdHJ1Y3QgZnVz ZV9maWxlX2luZm8gKmZpLCB1bnNpZ25lZCBpbnQgZmxhZ3MsJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoxMTk0OgorXkleSSAgdm9pZCAqZGF0YSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTIxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTk2Ogor XkleSSBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpLCBzdHJ1Y3QgZnVzZV9wb2xsaGFuZGxlICpw aCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjE2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExOTc6CiteSV5JIHVuc2lnbmVkICpyZXZlbnRzcCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTk5OgorXkleSSBvZmZfdCBvZmZzZXQsIG9mZl90IGxl bmd0aCwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTIyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDox MjAxOgorXkleSV5JXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpX2luLCBvZmZfdCBvZmZfaW4s JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyMTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMjAyOgorXkleSV5JXkljb25zdCBjaGFyICpwYXRoX291 dCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjIyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEyMDM6CiteSV5JXkleSXN0cnVjdCBmdXNlX2ZpbGVf aW5mbyAqZmlfb3V0LCBvZmZfdCBvZmZfb3V0LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTIwNDoK K15JXkleSV5Jc2l6ZV90IGxlbiwgaW50IGZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEy MDY6CiteSV5JICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MTIwODoKK15JXklzdHJ1Y3QgZnVzZV9jb25maWcgKmNmZyk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI0NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDoxMjI3OgorXkleSV5JICAgIHZvaWQgKnByaXZhdGVfZGF0YSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI2MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoxMjQ0OgorXkleSV5JXkleSV5JIHN0cnVjdCBmdXNlX2ZzICpmc1tdKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjc1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjEyNTY6CiteSWZ1c2VfbW9kdWxlX2ZhY3RvcnlfdCBmdXNlX21v ZHVsZV8gIyMgbmFtZV8gIyMgX2ZhY3RvcnkgPSBmYWN0b3J5XyQKCldBUk5JTkc6IGFyY2hpdGVj dHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMxMjkwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjEyNzE6CisjaWZkZWYgX19jcGx1c3BsdXMKCldBUk5JTkc6IEJs b2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzAxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxOgorLyogIEZVU0U6IEZpbGVzeXN0 ZW0gaW4gVXNlcnNwYWNlCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1 ZW50IGxpbmVzCiMxMzAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoyOgor LyogIEZVU0U6IEZpbGVzeXN0ZW0gaW4gVXNlcnNwYWNlCisgIENvcHlyaWdodCAoQykgMjAwMS0y MDA3ICBNaWtsb3MgU3plcmVkaSA8bWlrbG9zQHN6ZXJlZGkuaHU+CgpFUlJPUjogbGluZSBvdmVy IDkwIGNoYXJhY3RlcnMKIzEzMTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjExOgorI2Vycm9yICJOZXZlciBpbmNsdWRlIDxmdXNlX2NvbW1vbi5oPiBkaXJlY3RseTsgdXNl IDxmdXNlLmg+IG9yIDxmdXNlX2xvd2xldmVsLmg+IGluc3RlYWQuIgoKV0FSTklORzogYXJjaGl0 ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzEzMzE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjMxOgorI2lmZGVmIF9fY3BsdXNwbHVzCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NToKK15JLyoqIE9wZW4gZmxhZ3MuXkkgQXZhaWxhYmxl IGluIG9wZW4oKSBhbmQgcmVsZWFzZSgpICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTM0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NDY6CiteSWludCBmbGFnczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0ODoKK15JLyoq IEluIGNhc2Ugb2YgYSB3cml0ZSBvcGVyYXRpb24gaW5kaWNhdGVzIGlmIHRoaXMgd2FzIGNhdXNl ZCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0 ZSBsaW5lCiMxMzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0ODoKKyAg ICAgICAvKiogSW4gY2FzZSBvZiBhIHdyaXRlIG9wZXJhdGlvbiBpbmRpY2F0ZXMgaWYgdGhpcyB3 YXMgY2F1c2VkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0OToKK15JICAgIGJ5IGEgZGVs YXllZCB3cml0ZSBmcm9tIHRoZSBwYWdlIGNhY2hlLiBJZiBzbywgdGhlbiB0aGUkCgpXQVJOSU5H OiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMxMzQ5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0OToKKyAgICAgICAvKiogSW4gY2FzZSBvZiBh IHdyaXRlIG9wZXJhdGlvbiBpbmRpY2F0ZXMgaWYgdGhpcyB3YXMgY2F1c2VkCisgICAgICAgICAg IGJ5IGEgZGVsYXllZCB3cml0ZSBmcm9tIHRoZSBwYWdlIGNhY2hlLiBJZiBzbywgdGhlbiB0aGUK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjUwOgorXkkgICAgY29udGV4dCdzIHBpZCwgdWlk LCBhbmQgZ2lkIGZpZWxkcyB3aWxsIG5vdCBiZSB2YWxpZCwgYW5kJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6NTE6CiteSSAgICB0aGUgKmZoKiB2YWx1ZSBtYXkgbm90IG1hdGNoIHRoZSAq ZmgqIHZhbHVlIHRoYXQgd291bGQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMzUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1MjoKK15J ICAgIGhhdmUgYmVlbiBzZW50IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgaW5kaXZpZHVhbCB3cml0 ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjUzOgorXkkgICAgcmVxdWVzdHMgaWYgd3Jp dGUgY2FjaGluZyBoYWQgYmVlbiBkaXNhYmxlZC4gKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50 cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzEzNTM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjUzOgorICAgICAgICAgICByZXF1ZXN0cyBpZiB3cml0 ZSBjYWNoaW5nIGhhZCBiZWVuIGRpc2FibGVkLiAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTM1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NTQ6CiteSXVuc2lnbmVkIGludCB3cml0ZXBhZ2UgOiAxOyQKCkVSUk9SOiBzcGFjZXMgcHJv aGliaXRlZCBhcm91bmQgdGhhdCAnOicgKGN0eDpXeFcpCiMxMzU0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo1NDoKKyAgICAgICB1bnNpZ25lZCBpbnQgd3JpdGVwYWdlIDog MTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjU2OgorXkkvKiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuLCB0byB1c2UgZGlyZWN0 IEkvTyBvbiB0aGlzIGZpbGUuICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTM1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NTc6Cite SXVuc2lnbmVkIGludCBkaXJlY3RfaW8gOiAxOyQKCkVSUk9SOiBzcGFjZXMgcHJvaGliaXRlZCBh cm91bmQgdGhhdCAnOicgKGN0eDpXeFcpCiMxMzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo1NzoKKyAgICAgICB1bnNpZ25lZCBpbnQgZGlyZWN0X2lvIDogMTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjU5 OgorXkkvKiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuLiBJdCBzaWduYWxzIHRoZSBrZXJuZWwg dGhhdCBhbnkkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEg c2VwYXJhdGUgbGluZQojMTM1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NTk6CisgICAgICAgLyoqIENhbiBiZSBmaWxsZWQgaW4gYnkgb3Blbi4gSXQgc2lnbmFscyB0aGUg a2VybmVsIHRoYXQgYW55CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MDoKK15JICAgIGN1 cnJlbnRseSBjYWNoZWQgZmlsZSBkYXRhIChpZS4sIGRhdGEgdGhhdCB0aGUgZmlsZXN5c3RlbSQK CldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzEzNjA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYwOgorICAgICAgIC8qKiBDYW4g YmUgZmlsbGVkIGluIGJ5IG9wZW4uIEl0IHNpZ25hbHMgdGhlIGtlcm5lbCB0aGF0IGFueQorICAg ICAgICAgICBjdXJyZW50bHkgY2FjaGVkIGZpbGUgZGF0YSAoaWUuLCBkYXRhIHRoYXQgdGhlIGZp bGVzeXN0ZW0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNjE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYxOgorXkkgICAgcHJvdmlkZWQg dGhlIGxhc3QgdGltZSB0aGUgZmlsZSB3YXMgb3BlbikgbmVlZCBub3QgYmUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzYyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo2MjoKK15JICAgIGludmFsaWRhdGVkLiBIYXMgbm8gZWZmZWN0IHdo ZW4gc2V0IGluIG90aGVyIGNvbnRleHRzIChpbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjYzOgorXkkgICAgcGFydGljdWxhciBpdCBkb2VzIG5vdGhpbmcgd2hlbiBzZXQgYnkgb3BlbmRp cigpKS4gKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBh IHNlcGFyYXRlIGxpbmUKIzEzNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjYzOgorICAgICAgICAgICBwYXJ0aWN1bGFyIGl0IGRvZXMgbm90aGluZyB3aGVuIHNldCBieSBv cGVuZGlyKCkpLiAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTM2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjQ6CiteSXVuc2lnbmVk IGludCBrZWVwX2NhY2hlIDogMTskCgpFUlJPUjogc3BhY2VzIHByb2hpYml0ZWQgYXJvdW5kIHRo YXQgJzonIChjdHg6V3hXKQojMTM2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NjQ6CisgICAgICAgdW5zaWduZWQgaW50IGtlZXBfY2FjaGUgOiAxOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY2OgorXkkv KiogSW5kaWNhdGVzIGEgZmx1c2ggb3BlcmF0aW9uLiAgU2V0IGluIGZsdXNoIG9wZXJhdGlvbiwg YWxzbyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBh cmF0ZSBsaW5lCiMxMzY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NjoK KyAgICAgICAvKiogSW5kaWNhdGVzIGEgZmx1c2ggb3BlcmF0aW9uLiAgU2V0IGluIGZsdXNoIG9w ZXJhdGlvbiwgYWxzbwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTM2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njc6CiteSSAgICBtYXli ZSBzZXQgaW4gaGlnaGxldmVsIGxvY2sgb3BlcmF0aW9uIGFuZCBsb3dsZXZlbCByZWxlYXNlJAoK V0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojMTM2Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njc6CisgICAgICAgLyoqIEluZGlj YXRlcyBhIGZsdXNoIG9wZXJhdGlvbi4gIFNldCBpbiBmbHVzaCBvcGVyYXRpb24sIGFsc28KKyAg ICAgICAgICAgbWF5YmUgc2V0IGluIGhpZ2hsZXZlbCBsb2NrIG9wZXJhdGlvbiBhbmQgbG93bGV2 ZWwgcmVsZWFzZQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njg6CiteSSAgICBvcGVyYXRp b24uICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBz ZXBhcmF0ZSBsaW5lCiMxMzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2 ODoKKyAgICAgICAgICAgb3BlcmF0aW9uLiAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTM2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 Njk6CiteSXVuc2lnbmVkIGludCBmbHVzaCA6IDE7JAoKRVJST1I6IHNwYWNlcyBwcm9oaWJpdGVk IGFyb3VuZCB0aGF0ICc6JyAoY3R4Old4VykKIzEzNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjY5OgorICAgICAgIHVuc2lnbmVkIGludCBmbHVzaCA6IDE7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcxOgorXkkv KiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuLCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBmaWxlIGlz IG5vdCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBh cmF0ZSBsaW5lCiMxMzcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MToK KyAgICAgICAvKiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuLCB0byBpbmRpY2F0ZSB0aGF0IHRo ZSBmaWxlIGlzIG5vdAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTM3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzI6CiteSSAgICBzZWVr YWJsZS4gKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxp bmVzCiMxMzcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MjoKKyAgICAg ICAvKiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuLCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBmaWxl IGlzIG5vdAorICAgICAgICAgICBzZWVrYWJsZS4gKi8KCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRz IHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMTM3MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzI6CisgICAgICAgICAgIHNlZWthYmxlLiAqLwoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM3MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzM6CiteSXVuc2lnbmVkIGludCBub25zZWVrYWJsZSA6 IDE7JAoKRVJST1I6IHNwYWNlcyBwcm9oaWJpdGVkIGFyb3VuZCB0aGF0ICc6JyAoY3R4Old4VykK IzEzNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczOgorICAgICAgIHVu c2lnbmVkIGludCBub25zZWVrYWJsZSA6IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNzU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjc1OgorXkkvKiBJbmRpY2F0ZXMgdGhh dCBmbG9jayBsb2NrcyBmb3IgdGhpcyBmaWxlIHNob3VsZCBiZSQKCldBUk5JTkc6IEJsb2NrIGNv bW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzc1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3NToKKyAgICAgICAvKiBJbmRpY2F0ZXMgdGhh dCBmbG9jayBsb2NrcyBmb3IgdGhpcyBmaWxlIHNob3VsZCBiZQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6NzY6CiteSSAgIHJlbGVhc2VkLiAgSWYgc2V0LCBsb2NrX293bmVyIHNoYWxsIGNv bnRhaW4gYSB2YWxpZCB2YWx1ZS4kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBz dWJzZXF1ZW50IGxpbmVzCiMxMzc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo3NjoKKyAgICAgICAvKiBJbmRpY2F0ZXMgdGhhdCBmbG9jayBsb2NrcyBmb3IgdGhpcyBmaWxl IHNob3VsZCBiZQorICAgICAgICAgIHJlbGVhc2VkLiAgSWYgc2V0LCBsb2NrX293bmVyIHNoYWxs IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjc3Ogor XkkgICBNYXkgb25seSBiZSBzZXQgaW4gLT5yZWxlYXNlKCkuICovJAoKV0FSTklORzogQmxvY2sg Y29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzc3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3NzoKKyAgICAgICAgICBNYXkgb25seSBi ZSBzZXQgaW4gLT5yZWxlYXNlKCkuICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3ODoK K15JdW5zaWduZWQgaW50IGZsb2NrX3JlbGVhc2UgOiAxOyQKCkVSUk9SOiBzcGFjZXMgcHJvaGli aXRlZCBhcm91bmQgdGhhdCAnOicgKGN0eDpXeFcpCiMxMzc4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo3ODoKKyAgICAgICB1bnNpZ25lZCBpbnQgZmxvY2tfcmVsZWFzZSA6 IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6ODA6CiteSS8qKiBDYW4gYmUgZmlsbGVkIGluIGJ5IG9wZW5kaXIuIEl0IHNp Z25hbHMgdGhlIGtlcm5lbCB0byQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRp bmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo4MDoKKyAgICAgICAvKiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuZGlyLiBJ dCBzaWduYWxzIHRoZSBrZXJuZWwgdG8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjgxOgor XkkgICAgZW5hYmxlIGNhY2hpbmcgb2YgZW50cmllcyByZXR1cm5lZCBieSByZWFkZGlyKCkuICBI YXMgbm8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVz CiMxMzgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo4MToKKyAgICAgICAv KiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuZGlyLiBJdCBzaWduYWxzIHRoZSBrZXJuZWwgdG8K KyAgICAgICAgICAgZW5hYmxlIGNhY2hpbmcgb2YgZW50cmllcyByZXR1cm5lZCBieSByZWFkZGly KCkuICBIYXMgbm8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjgyOgorXkkgICAgZWZmZWN0 IHdoZW4gc2V0IGluIG90aGVyIGNvbnRleHRzIChpbiBwYXJ0aWN1bGFyIGl0IGRvZXMkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzgzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo4MzoKK15JICAgIG5vdGhpbmcgd2hlbiBzZXQgYnkgb3Bl bigpKS4gKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBh IHNlcGFyYXRlIGxpbmUKIzEzODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjgzOgorICAgICAgICAgICBub3RoaW5nIHdoZW4gc2V0IGJ5IG9wZW4oKSkuICovCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzg0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo4NDoKK15JdW5zaWduZWQgaW50IGNhY2hlX3JlYWRkaXIgOiAx OyQKCkVSUk9SOiBzcGFjZXMgcHJvaGliaXRlZCBhcm91bmQgdGhhdCAnOicgKGN0eDpXeFcpCiMx Mzg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo4NDoKKyAgICAgICB1bnNp Z25lZCBpbnQgY2FjaGVfcmVhZGRpciA6IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6ODY6CiteSS8qKiBQYWRkaW5nLiAg UmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjg3 OgorXkl1bnNpZ25lZCBpbnQgcGFkZGluZyA6IDI1OyQKCkVSUk9SOiBzcGFjZXMgcHJvaGliaXRl ZCBhcm91bmQgdGhhdCAnOicgKGN0eDpXeFcpCiMxMzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo4NzoKKyAgICAgICB1bnNpZ25lZCBpbnQgcGFkZGluZyA6IDI1OwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjg4 OgorXkl1bnNpZ25lZCBpbnQgcGFkZGluZzIgOiAzMjskCgpFUlJPUjogc3BhY2VzIHByb2hpYml0 ZWQgYXJvdW5kIHRoYXQgJzonIChjdHg6V3hXKQojMTM4ODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6ODg6CisgICAgICAgdW5zaWduZWQgaW50IHBhZGRpbmcyIDogMzI7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjkwOgorXkkvKiogRmlsZSBoYW5kbGUgaWQuICBNYXkgYmUgZmlsbGVkIGluIGJ5IGZpbGVzeXN0 ZW0gaW4gY3JlYXRlLCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiMxMzkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo5MDoKKyAgICAgICAvKiogRmlsZSBoYW5kbGUgaWQuICBNYXkgYmUgZmlsbGVkIGluIGJ5 IGZpbGVzeXN0ZW0gaW4gY3JlYXRlLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTM5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6OTE6Cite SSAqIG9wZW4sIGFuZCBvcGVuZGlyKCkuICBBdmFpbGFibGUgaW4gbW9zdCBvdGhlciBmaWxlIG9w ZXJhdGlvbnMgb24gdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTM5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6OTI6CiteSSAqIHNh bWUgZmlsZSBoYW5kbGUuICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxp bmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo5MjoKKyAgICAgICAgKiBzYW1lIGZpbGUgaGFuZGxlLiAqLwoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM5MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6OTM6CiteSXVpbnQ2NF90IGZoOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjk1OgorXkkvKiogTG9jayBvd25lciBpZC4gIEF2YWlsYWJsZSBpbiBsb2NraW5n IG9wZXJhdGlvbnMgYW5kIGZsdXNoICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTM5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6OTY6 CiteSXVpbnQ2NF90IGxvY2tfb3duZXI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTM5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6OTg6 CiteSS8qKiBSZXF1ZXN0ZWQgcG9sbCBldmVudHMuICBBdmFpbGFibGUgaW4gLT5wb2xsLiAgT25s eSBzZXQgb24ga2VybmVscyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcg Lyogb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo5ODoKKyAgICAgICAvKiogUmVxdWVzdGVkIHBvbGwgZXZlbnRzLiAgQXZhaWxhYmxl IGluIC0+cG9sbC4gIE9ubHkgc2V0IG9uIGtlcm5lbHMKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjk5OgorXkkgICAgd2hpY2ggc3VwcG9ydCBpdC4gIElmIHVuc3VwcG9ydGVkLCB0aGlzIGZp ZWxkIGlzIHNldCB0byB6ZXJvLiAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9u IHN1YnNlcXVlbnQgbGluZXMKIzEzOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjk5OgorICAgICAgIC8qKiBSZXF1ZXN0ZWQgcG9sbCBldmVudHMuICBBdmFpbGFibGUgaW4g LT5wb2xsLiAgT25seSBzZXQgb24ga2VybmVscworICAgICAgICAgICB3aGljaCBzdXBwb3J0IGl0 LiAgSWYgdW5zdXBwb3J0ZWQsIHRoaXMgZmllbGQgaXMgc2V0IHRvIHplcm8uICovCgpXQVJOSU5H OiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzEz OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjk5OgorICAgICAgICAgICB3 aGljaCBzdXBwb3J0IGl0LiAgSWYgdW5zdXBwb3J0ZWQsIHRoaXMgZmllbGQgaXMgc2V0IHRvIHpl cm8uICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDAwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxMDA6CiteSXVpbnQzMl90IHBvbGxf ZXZlbnRzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MDg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjEwODoKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQwOTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfY29tbW9uLmg6MTA5OgorXkkgKiB3aGV0aGVyIHRvIHVzZSBzZXBhcmF0ZSBk ZXZpY2UgZmRzIGZvciBlYWNoIHRocmVhZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE0MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjEx MDoKK15JICogKG1heSBpbmNyZWFzZSBwZXJmb3JtYW5jZSkkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDoxMTE6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE0MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjExMjoKK15J aW50IGNsb25lX2ZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE0MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjExNDoKK15JLyoqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQxNTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MTE1OgorXkkgKiBUaGUgbWF4aW11bSBudW1iZXIg b2YgYXZhaWxhYmxlIHdvcmtlciB0aHJlYWRzIGJlZm9yZSB0aGV5JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6MTE2OgorXkkgKiBzdGFydCB0byBnZXQgZGVsZXRlZCB3aGVuIHRoZXkgYmVj b21lIGlkbGUuIElmIG5vdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE0MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjExNzoKK15JICog c3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBpcyAxMC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDoxMTg6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTQxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MTE5OgorXkkgKiBBZGp1 c3RpbmcgdGhpcyBoYXMgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zOyBhIHZlcnkgc21hbGwgbnVt YmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQyMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MTIwOgorXkkgKiBvZiB0aHJlYWRzIGlu IHRoZSBwb29sIHdpbGwgY2F1c2UgYSBsb3Qgb2YgdGhyZWFkIGNyZWF0aW9uIGFuZCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MjE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjEyMToKK15JICogZGVsZXRpb24gb3ZlcmhlYWQgYW5kIHBl cmZvcm1hbmNlIG1heSBzdWZmZXIuIFdoZW4gc2V0IHRvIDAsIGEgbmV3JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQyMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6MTIyOgorXkkgKiB0aHJlYWQgd2lsbCBiZSBjcmVhdGVkIHRvIHNlcnZp Y2UgZXZlcnkgb3BlcmF0aW9uLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE0MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjEyMzoKK15J ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQyNDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MTI0OgorXkl1bnNpZ25lZCBpbnQgbWF4 X2lkbGVfdGhyZWFkczskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8q IG9uIGEgc2VwYXJhdGUgbGluZQojMTQyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6MTI3OgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDoxNDE6CisjZGVmaW5lIEZVU0VfQ0FQX0FTWU5DX1JFQUReSV5JKDEgPDwgMCkkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDQ5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDoxNDk6CisjZGVmaW5lIEZVU0VfQ0FQX1BPU0lYX0xPQ0tTXkle SSgxIDw8IDEpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MTU4OgorI2RlZmluZSBGVVNF X0NBUF9BVE9NSUNfT19UUlVOQ15JXkkoMSA8PCAzKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjE2NToKKyNkZWZpbmUgRlVTRV9DQVBfRVhQT1JUX1NVUFBPUlReSV5JKDEgPDwgNCkkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDczOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxNzM6CisjZGVmaW5lIEZVU0VfQ0FQX0RPTlRfTUFT S15JXkkoMSA8PCA2KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE0ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjE4MToKKyNkZWZpbmUg RlVTRV9DQVBfU1BMSUNFX1dSSVRFXkleSSgxIDw8IDcpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTQ4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6MTg5OgorI2RlZmluZSBGVVNFX0NBUF9TUExJQ0VfTU9WRV5JXkkoMSA8PCA4KSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0OTg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjE5ODoKKyNkZWZpbmUgRlVTRV9DQVBfU1BMSUNFX1JF QUReSV5JKDEgPDwgOSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoyMTE6CisjZGVmaW5l IEZVU0VfQ0FQX0ZMT0NLX0xPQ0tTXkleSSgxIDw8IDEwKSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjIxODoKKyNkZWZpbmUgRlVTRV9DQVBfSU9DVExfRElSXkleSSgxIDw8IDExKSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NDA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjI0MDoKKyNkZWZpbmUgRlVTRV9DQVBfQVVUT19JTlZB TF9EQVRBXkkoMSA8PCAxMikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNTQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoyNDg6CisjZGVm aW5lIEZVU0VfQ0FQX1JFQURESVJQTFVTXkleSSgxIDw8IDEzKSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjI3NjoKKyNkZWZpbmUgRlVTRV9DQVBfUkVBRERJUlBMVVNfQVVUT15JKDEgPDwg MTQpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU4NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mjg3OgorI2RlZmluZSBGVVNFX0NBUF9B U1lOQ19ESU9eSV5JKDEgPDwgMTUpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTU5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mjk2Ogor I2RlZmluZSBGVVNFX0NBUF9XUklURUJBQ0tfQ0FDSEVeSSgxIDw8IDE2KSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjMwOToKKyNkZWZpbmUgRlVTRV9DQVBfTk9fT1BFTl9TVVBQT1JUXkko MSA8PCAxNykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjcx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozNzE6CisjZGVmaW5lIEZVU0Vf SU9DVExfQ09NUEFUXkkoMSA8PCAwKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE2NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM3MjoK KyNkZWZpbmUgRlVTRV9JT0NUTF9VTlJFU1RSSUNURUReSSgxIDw8IDEpJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY3MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6MzczOgorI2RlZmluZSBGVVNFX0lPQ1RMX1JFVFJZXkkoMSA8PCAyKSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NzQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM3NDoKKyNkZWZpbmUgRlVTRV9JT0NUTF9ESVJe SV5JKDEgPDwgNCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx Njc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozNzY6CisjZGVmaW5lIEZV U0VfSU9DVExfTUFYX0lPVl5JMjU2JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTY4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mzg2Ogor XkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjg3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozODc6CiteSSAqIE1ham9yIHZlcnNp b24gb2YgdGhlIHByb3RvY29sIChyZWFkLW9ubHkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTY4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6Mzg4OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNjg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozODk6CiteSXVuc2ln bmVkIHByb3RvX21ham9yOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE2OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM5MToKK15JLyoq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY5MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MzkyOgorXkkgKiBNaW5vciB2ZXJzaW9uIG9m IHRoZSBwcm90b2NvbCAocmVhZC1vbmx5KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE2OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM5 MzoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY5 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mzk0OgorXkl1bnNpZ25lZCBw cm90b19taW5vcjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx Njk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozOTY6CiteSS8qKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2OTc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM5NzoKK15JICogTWF4aW11bSBzaXplIG9mIHRoZSB3 cml0ZSBidWZmZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx Njk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozOTg6CiteSSAqLyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2OTk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM5OToKK15JdW5zaWduZWQgbWF4X3dyaXRlOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MDE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQwMToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6NDAyOgorXkkgKiBNYXhpbXVtIHNpemUgb2YgcmVhZCByZXF1ZXN0cy4gQSB2YWx1 ZSBvZiB6ZXJvIGluZGljYXRlcyBubyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE3MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQwMzoK K15JICogbGltaXQuIEhvd2V2ZXIsIGV2ZW4gaWYgdGhlIGZpbGVzeXN0ZW0gZG9lcyBub3Qgc3Bl Y2lmeSBhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcwNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDA0OgorXkkgKiBsaW1pdCwgdGhl IG1heGltdW0gc2l6ZSBvZiByZWFkIHJlcXVlc3RzIHdpbGwgc3RpbGwgYmUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzA1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo0MDU6CiteSSAqIGxpbWl0ZWQgYnkgdGhlIGtlcm5lbC4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzA2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MDY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTcwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6NDA3OgorXkkgKiBOT1RFOiBGb3IgdGhlIHRpbWUgYmVpbmcsIHRoZSBtYXhpbXVtIHNp emUgb2YgcmVhZCByZXF1ZXN0cyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE3MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQwODoKK15J ICogbXVzdCBiZSBzZXQgYm90aCBoZXJlICphbmQqIHBhc3NlZCB0byBmdXNlX3Nlc3Npb25fbmV3 KCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzA5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MDk6CiteSSAqIHVzaW5nIHRoZSBgYC1v IG1heF9yZWFkPTxuPmBgIG1vdW50IG9wdGlvbi4gQXQgc29tZSBwb2ludCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjQxMDoKK15JICogaW4gdGhlIGZ1dHVyZSwgc3BlY2lmeWluZyB0aGUg bW91bnQgb3B0aW9uIHdpbGwgbm8gbG9uZ2VyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTcxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NDExOgorXkkgKiBiZSBuZWNlc3NhcnkuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTcxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDEy OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzEz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MTM6CiteSXVuc2lnbmVkIG1h eF9yZWFkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQxNToKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcxNjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfY29tbW9uLmg6NDE2OgorXkkgKiBNYXhpbXVtIHJlYWRhaGVhZCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQxNzoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTcxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6NDE4OgorXkl1bnNpZ25lZCBtYXhfcmVhZGFoZWFkOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjQyMDoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTcyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDIxOgor XkkgKiBDYXBhYmlsaXR5IGZsYWdzIHRoYXQgdGhlIGtlcm5lbCBzdXBwb3J0cyAocmVhZC1vbmx5 KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MjI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQyMjoKK15JICovJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcyMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NDIzOgorXkl1bnNpZ25lZCBjYXBhYmxlOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjQyNToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTcyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDI2 OgorXkkgKiBDYXBhYmlsaXR5IGZsYWdzIHRoYXQgdGhlIGZpbGVzeXN0ZW0gd2FudHMgdG8gZW5h YmxlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Mjc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQyNzoKK15JICokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzI4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo0Mjg6CiteSSAqIGxpYmZ1c2UgYXR0ZW1wdHMgdG8gaW5pdGlhbGl6 ZSB0aGlzIGZpZWxkIHdpdGgkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNzI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0Mjk6CiteSSAq IHJlYXNvbmFibGUgZGVmYXVsdCB2YWx1ZXMgYmVmb3JlIGNhbGxpbmcgdGhlIGluaXQoKSBoYW5k bGVyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MzA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQzMDoKK15JICovJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTczMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6NDMxOgorXkl1bnNpZ25lZCB3YW50OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjQzMzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTczNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDM0 OgorXkkgKiBNYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nICJiYWNrZ3JvdW5kIiByZXF1ZXN0cy4g QSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MzU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQzNToKK15JICogYmFja2dyb3VuZCByZXF1 ZXN0IGlzIGFueSB0eXBlIG9mIHJlcXVlc3QgZm9yIHdoaWNoIHRoZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjQzNjoKK15JICogdG90YWwgbnVtYmVyIGlzIG5vdCBsaW1pdGVkIGJ5IG90 aGVyIG1lYW5zLiBBcyBvZiBrZXJuZWwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0Mzc6 CiteSSAqIDQuOCwgb25seSB0d28gdHlwZXMgb2YgcmVxdWVzdHMgZmFsbCBpbnRvIHRoaXMgY2F0 ZWdvcnk6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTczODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDM4OgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Mzk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjQzOToKK15JICogICAxLiBSZWFkLWFoZWFkIHJlcXVlc3RzJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc0MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDQwOgorXkkgKiAgIDIuIEFzeW5jaHJvbm91cyBk aXJlY3QgSS9PIHJlcXVlc3RzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTc0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDQxOgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ0MjoKK15JICogUmVhZC1haGVhZCByZXF1 ZXN0cyBhcmUgZ2VuZXJhdGVkIChpZiBtYXhfcmVhZGFoZWFkIGlzJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6NDQzOgorXkkgKiBub24temVybykgYnkgdGhlIGtlcm5lbCB0byBwcmVlbXB0 aXZlbHkgZmlsbCBpdHMgY2FjaGVzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTc0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDQ0Ogor XkkgKiB3aGVuIGl0IGFudGljaXBhdGVzIHRoYXQgdXNlcnNwYWNlIHdpbGwgc29vbiByZWFkIG1v cmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQ1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NDU6CiteSSAqIGRhdGEuJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc0NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfY29tbW9uLmg6NDQ2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjQ0NzoKK15JICogQXN5bmNocm9ub3VzIGRpcmVjdCBJL08gcmVxdWVzdHMgYXJlIGdlbmVy YXRlZCBpZiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ0ODoKK15JICogRlVTRV9DQVBf QVNZTkNfRElPIGlzIGVuYWJsZWQgYW5kIHVzZXJzcGFjZSBzdWJtaXRzIGEgbGFyZ2UkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQ5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NDk6CiteSSAqIGRpcmVjdCBJL08gcmVxdWVzdC4gSW4g dGhpcyBjYXNlIHRoZSBrZXJuZWwgd2lsbCBpbnRlcm5hbGx5JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6NDUwOgorXkkgKiBzcGxpdCBpdCB1cCBpbnRvIG11bHRpcGxlIHNtYWxsZXIgcmVx dWVzdHMgYW5kIHN1Ym1pdCB0aGVtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTc1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDUxOgor XkkgKiB0byB0aGUgZmlsZXN5c3RlbSBjb25jdXJyZW50bHkuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6NDUyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE3NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ1MzoKK15J ICogTm90ZSB0aGF0IHRoZSBmb2xsb3dpbmcgcmVxdWVzdHMgYXJlICpub3QqIGJhY2tncm91bmQk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NTQ6CiteSSAqIHJlcXVlc3RzOiB3cml0ZWJh Y2sgcmVxdWVzdHMgKGxpbWl0ZWQgYnkgdGhlIGtlcm5lbCdzJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6NDU1OgorXkkgKiBmbHVzaGVyIGFsZ29yaXRobSksIHJlZ3VsYXIgKGkuZS4sIHN5 bmNocm9ub3VzIGFuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE3NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ1NjoKK15JICogYnVm ZmVyZWQpIHVzZXJzcGFjZSByZWFkL3dyaXRlIHJlcXVlc3RzIChsaW1pdGVkIHRvIG9uZSBwZXIk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NTc6CiteSSAqIHRocmVhZCksIGFzeW5jaHJv bm91cyByZWFkIHJlcXVlc3RzIChMaW51eCdzIGlvX3N1Ym1pdCgyKSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjQ1ODoKK15JICogY2FsbCBhY3R1YWxseSBibG9ja3MsIHNvIHRoZXNlIGFy ZSBhbHNvIGxpbWl0ZWQgdG8gb25lIHBlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE3NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ1 OToKK15JICogdGhyZWFkKS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NjA6CiteSSAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NjE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ2MToKK15JdW5zaWduZWQgbWF4X2JhY2tn cm91bmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc2Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDYzOgorXkkvKiokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzY0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo0NjQ6CiteSSAqIEtlcm5lbCBjb25nZXN0aW9uIHRocmVzaG9s ZCBwYXJhbWV0ZXIuIElmIHRoZSBudW1iZXIgb2YgcGVuZGluZyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjQ2NToKK15JICogYmFja2dyb3VuZCByZXF1ZXN0cyBleGNlZWRzIHRoaXMgbnVt YmVyLCB0aGUgRlVTRSBrZXJuZWwgbW9kdWxlIHdpbGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNzY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo0NjY6CiteSSAqIG1hcmsgdGhlIGZpbGVzeXN0ZW0gYXMgImNvbmdlc3RlZCIuIFRoaXMg aW5zdHJ1Y3RzIHRoZSBrZXJuZWwgdG8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0Njc6 CiteSSAqIGV4cGVjdCB0aGF0IHF1ZXVlZCByZXF1ZXN0cyB3aWxsIHRha2Ugc29tZSB0aW1lIHRv IGNvbXBsZXRlLCBhbmQgdG8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0Njg6CiteSSAq IGFkanVzdCBpdHMgYWxnb3JpdGhtcyBhY2NvcmRpbmdseSAoZS5nLiBieSBwdXR0aW5nIGEgd2Fp dGluZyB0aHJlYWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NzY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0Njk6CiteSSAqIHRvIHNs ZWVwIGluc3RlYWQgb2YgdXNpbmcgYSBidXN5LWxvb3ApLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjQ3MDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTc3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDcxOgorXkl1 bnNpZ25lZCBjb25nZXN0aW9uX3RocmVzaG9sZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNzczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo0NzM6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE3NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ3NDoKK15JICogV2hl biBGVVNFX0NBUF9XUklURUJBQ0tfQ0FDSEUgaXMgZW5hYmxlZCwgdGhlIGtlcm5lbCBpcyByZXNw b25zaWJsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NzU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ3NToKK15JICogZm9yIHVwZGF0 aW5nIG10aW1lIGFuZCBjdGltZSB3aGVuIHdyaXRlIHJlcXVlc3RzIGFyZSByZWNlaXZlZC4gVGhl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc3NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDc2OgorXkkgKiB1cGRhdGVkIHZhbHVlcyBh cmUgcGFzc2VkIHRvIHRoZSBmaWxlc3lzdGVtIHdpdGggc2V0YXR0cigpIHJlcXVlc3RzLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Nzc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ3NzoKK15JICogSG93ZXZlciwgaWYgdGhlIGZpbGVz eXN0ZW0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgZnVsbCByZXNvbHV0aW9uIG9mJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc3ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6NDc4OgorXkkgKiB0aGUga2VybmVsIHRpbWVzdGFtcHMgKG5hbm9z ZWNvbmRzKSwgdGhlIG10aW1lIGFuZCBjdGltZSB2YWx1ZXMgdXNlZCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjQ3OToKK15JICogYnkga2VybmVsIGFuZCBmaWxlc3lzdGVtIHdpbGwgZGlm ZmVyIChhbmQgcmVzdWx0IGluIGFuIGFwcGFyZW50JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTc4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NDgwOgorXkkgKiBjaGFuZ2Ugb2YgdGltZXMgYWZ0ZXIgYSBjYWNoZSBmbHVzaCkuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDgxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjQ4MjoKK15JICogVG8gcHJldmVudCB0aGlzIHByb2JsZW0sIHRoaXMgdmFyaWFibGUg Y2FuIGJlIHVzZWQgdG8gaW5mb3JtIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE3ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ4 MzoKK15JICoga2VybmVsIGFib3V0IHRoZSB0aW1lc3RhbXAgZ3JhbnVsYXJpdHkgc3VwcG9ydGVk IGJ5IHRoZSBmaWxlLXN5c3RlbS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNzg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0ODQ6Cite SSAqIFRoZSB2YWx1ZSBzaG91bGQgYmUgcG93ZXIgb2YgMTAuICBUaGUgZGVmYXVsdCBpcyAxLCBp LmUuIGZ1bGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzg1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0ODU6CiteSSAqIG5hbm8tc2Vj b25kIHJlc29sdXRpb24uIEZpbGVzeXN0ZW1zIHN1cHBvcnRpbmcgb25seSBzZWNvbmQgcmVzb2x1 dGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ4NjoKK15JICogc2hvdWxkIHNldCB0 aGlzIHRvIDEwMDAwMDAwMDAuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTc4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDg3OgorXkkg Ki8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzg4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0ODg6CiteSXVuc2lnbmVkIHRpbWVfZ3Jh bjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzkwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0OTA6CiteSS8qKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjQ5MToKK15JICogRm9yIGZ1dHVyZSB1c2UuJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NDkyOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNzkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0 OTM6CiteSXVuc2lnbmVkIHJlc2VydmVkWzIyXTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hh cmFjdGVycwojMTgyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NTIwOgor ICogICAtbyBub19yZW1vdGVfbG9jayAgICAgIEVxdWl2YWxlbnQgdG8gLW8gbm9fcmVtb3RlX2Zs b2NrLG5vX3JlbW90ZV9wb3NpeF9sb2NrCgpFUlJPUjogImZvbyogYmFyIiBzaG91bGQgYmUgImZv byAqYmFyIgojMTg0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NTQyOgor c3RydWN0IGZ1c2VfY29ubl9pbmZvX29wdHMqIGZ1c2VfcGFyc2VfY29ubl9pbmZvX29wdHMoc3Ry dWN0IGZ1c2VfYXJncyAqYXJncyk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxODUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1NTI6Cite SV5JXkkgIHN0cnVjdCBmdXNlX2Nvbm5faW5mbyAqY29ubik7JAoKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzE4ODM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjU4MzoKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjU4NDoKKyAqIERhdGEgYnVmZmVyXkleSV5JXkleSV5JICAgICAgICokCgpX QVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxp bmUKIzE4ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjU4NToKKyAqIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODkxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1OTE6CiteSS8qKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjU5MjoKK15JICogQnVmZmVyIGNvbnRhaW5zIGEgZmlsZSBkZXNjcmlw dG9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NTkzOgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjU5NDoKK15JICogSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlIC5mZCBm aWVsZCBpcyB2YWxpZCwgb3RoZXJ3aXNlIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE4OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjU5NToKK15JICogLm1lbSBmaWVsZHMgaXMgdmFsaWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTg5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6NTk2OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxODk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1OTc6CiteSUZV U0VfQlVGX0lTX0ZEXkleST0gKDEgPDwgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTg5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NTk5OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx OTAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MDA6CiteSSAqIFNlZWsg b24gdGhlIGZpbGUgZGVzY3JpcHRvciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE5MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYwMToK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTAyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MDI6CiteSSAqIElmIHRoaXMgZmxh ZyBpcyBzZXQgdGhlbiB0aGUgLnBvcyBmaWVsZCBpcyB2YWxpZCBhbmQgaXMkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTAzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo2MDM6CiteSSAqIHVzZWQgdG8gc2VlayB0byB0aGUgZ2l2ZW4gb2Zm c2V0IGJlZm9yZSBwZXJmb3JtaW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTkwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjA0Ogor XkkgKiBvcGVyYXRpb24gb24gZmlsZSBkZXNjcmlwdG9yLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjYwNToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTkwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjA2OgorXklG VVNFX0JVRl9GRF9TRUVLXkk9ICgxIDw8IDIpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE5MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjYwODoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTkwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjA5OgorXkkgKiBSZXRy eSBvcGVyYXRpb24gb24gZmlsZSBkZXNjcmlwdG9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTkxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NjEwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE5MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYxMToKK15JICogSWYg dGhpcyBmbGFnIGlzIHNldCB0aGVuIHJldHJ5IG9wZXJhdGlvbiBvbiBmaWxlIGRlc2NyaXB0b3Ik CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTEyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MTI6CiteSSAqIHVudGlsIC5zaXplIGJ5dGVz IGhhdmUgYmVlbiBjb3BpZWQgb3IgYW4gZXJyb3Igb3IgRU9GIGlzJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6NjEzOgorXkkgKiBkZXRlY3RlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxOTE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo2MTQ6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE5MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYxNToKK15JRlVT RV9CVUZfRkRfUkVUUlleST0gKDEgPDwgMyksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTkyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NjIyOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx OTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MjM6CiteSSAqIERvbid0 IHVzZSBzcGxpY2UoMikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxOTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MjQ6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyNTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjI1OgorXkkgKiBBbHdheXMgZmFsbCBiYWNrIHRv IHVzaW5nIHJlYWQgYW5kIHdyaXRlIGluc3RlYWQgb2YkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxOTI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo2MjY6CiteSSAqIHNwbGljZSgyKSB0byBjb3B5IGRhdGEgZnJvbSBvbmUgZmlsZSBkZXNj cmlwdG9yIHRvIGFub3RoZXIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTkyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjI3OgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Mjg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYyODoKK15JICogSWYgdGhpcyBmbGFnIGlz IG5vdCBzZXQsIHRoZW4gb25seSBmYWxsIGJhY2sgaWYgc3BsaWNlIGlzJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NjI5OgorXkkgKiB1bmF2YWlsYWJsZS4kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo2MzA6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE5MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYzMToK K15JRlVTRV9CVUZfTk9fU1BMSUNFXkk9ICgxIDw8IDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjYzMzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTkzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjM0OgorXkkg KiBGb3JjZSBzcGxpY2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxOTM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MzU6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkzNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjM2OgorXkkgKiBBbHdheXMgdXNlIHNwbGljZSgy KSB0byBjb3B5IGRhdGEgZnJvbSBvbmUgZmlsZSBkZXNjcmlwdG9yJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6NjM3OgorXkkgKiB0byBhbm90aGVyLiAgSWYgc3BsaWNlIGlzIG5vdCBhdmFp bGFibGUsIHJldHVybiAtRUlOVkFMLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE5Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYzODoK K15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkzOTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjM5OgorXklGVVNFX0JVRl9GT1JD RV9TUExJQ0VeST0gKDEgPDwgMiksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTk0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjQxOgor XkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NDI6CiteSSAqIFRyeSB0byBtb3Zl IGRhdGEgd2l0aCBzcGxpY2UuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTk0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjQzOgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NDQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY0NDoKK15JICogSWYgc3BsaWNlIGlzIHVz ZWQsIHRyeSB0byBtb3ZlIHBhZ2VzIGZyb20gdGhlIHNvdXJjZSB0byB0aGUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQ1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo2NDU6CiteSSAqIGRlc3RpbmF0aW9uIGluc3RlYWQgb2YgY29weWlu Zy4gIFNlZSBkb2N1bWVudGF0aW9uIG9mJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTk0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjQ2 OgorXkkgKiBTUExJQ0VfRl9NT1ZFIGluIHNwbGljZSgyKSBtYW4gcGFnZS4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQ3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo2NDc6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE5NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjY0ODoKK15JRlVTRV9CVUZfU1BMSUNFX01PVkVeST0gKDEgPDwgMyksJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk1MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NjUwOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxOTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2 NTE6CiteSSAqIERvbid0IGJsb2NrIG9uIHRoZSBwaXBlIHdoZW4gY29weWluZyBkYXRhIHdpdGgg c3BsaWNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk1Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjUyOgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjY1MzoKK15JICogTWFrZXMgdGhlIG9wZXJhdGlvbnMgb24gdGhl IHBpcGUgbm9uLWJsb2NraW5nIChpZiB0aGUgcGlwZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjY1NDoKK15JICogaXMgZnVsbCBvciBlbXB0eSkuICBTZWUgU1BMSUNFX0ZfTk9OQkxPQ0sg aW4gdGhlIHNwbGljZSgyKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE5NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY1NToKK15JICog bWFuIHBhZ2UuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk1 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjU2OgorXkkgKi8kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTU3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NTc6CiteSUZVU0VfQlVGX1NQTElDRV9OT05CTE9DSz0g KDEgPDwgNCksJAoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnPScgKGN0eDpW eFcpCiMxOTU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NTc6CisgICAg ICAgRlVTRV9CVUZfU1BMSUNFX05PTkJMT0NLPSAoMSA8PCA0KSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxOTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2Njc6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Njg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY2ODoKK15JICogU2l6ZSBvZiBkYXRhIGluIGJ5 dGVzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk2OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjY5OgorXkkgKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTcwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo2NzA6CiteSXNpemVfdCBzaXplOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjY3MjoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTk3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjczOgor XkkgKiBCdWZmZXIgZmxhZ3MkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxOTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NzQ6CiteSSAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NzU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY3NToKK15JZW51bSBmdXNlX2J1Zl9mbGFn cyBmbGFnczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTc3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2Nzc6CiteSS8qKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Nzg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY3ODoKK15JICogTWVtb3J5IHBvaW50ZXIkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTc5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo2Nzk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTk4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NjgwOgorXkkgKiBVc2VkIHVubGVzcyBGVVNFX0JVRl9JU19GRCBmbGFnIGlzIHNldC4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTgxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2ODE6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjY4MjoKK15Jdm9pZCAqbWVtOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE5ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjY4NDoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTk4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njg1OgorXkkgKiBGaWxl IGRlc2NyaXB0b3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx OTg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2ODY6CiteSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4NzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njg3OgorXkkgKiBVc2VkIGlmIEZVU0VfQlVGX0lTX0ZE IGZsYWcgaXMgc2V0LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE5ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY4ODoKK15JICovJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njg5OgorXklpbnQgZmQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk5MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NjkxOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxOTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2 OTI6CiteSSAqIEZpbGUgcG9zaXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxOTkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2OTM6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk5NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njk0OgorXkkgKiBVc2VkIGlmIEZV U0VfQlVGX0ZEX1NFRUsgZmxhZyBpcyBzZXQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTk5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 Njk1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx OTk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2OTY6CiteSW9mZl90IHBv czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDA4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MDg6CiteSS8qKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjcwOToKK15JICogTnVtYmVyIG9mIGJ1ZmZlcnMgaW4gdGhlIGFycmF5 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAxMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzEwOgorXkkgKi8kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDExOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo3MTE6CiteSXNpemVfdCBjb3VudDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo3MTM6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIwMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcxNDoKK15J ICogSW5kZXggb2YgY3VycmVudCBidWZmZXIgd2l0aGluIHRoZSBhcnJheSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjcxNToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjAxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NzE2OgorXklzaXplX3QgaWR4OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIwMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcxODoKK15J LyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAxOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzE5OgorXkkgKiBDdXJyZW50IG9mZnNl dCB3aXRoaW4gdGhlIGN1cnJlbnQgYnVmZmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjAyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NzIwOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MjE6CiteSXNpemVfdCBv ZmY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAyMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzIzOgorXkkvKiokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDI0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo3MjQ6CiteSSAqIEFycmF5IG9mIGJ1ZmZlcnMkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDI1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo3MjU6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjcyNjoKK15Jc3RydWN0IGZ1c2VfYnVmIGJ1ZlsxXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMDMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo3MzA6CisjZGVmaW5lIEZVU0VfQlVGVkVDX0lOSVQoc2l6ZV9fKV5JXkleSV5JXCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczMToKK15JKChzdHJ1Y3QgZnVzZV9idWZ2ZWMpIHte SV5JXkleSV5JXCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIw MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczMjoKK15JXkkvKiAuY291 bnQ9ICovIDEsXkleSV5JXklcJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGlu ZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzIwMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjczMjoKKyAgICAgICAgICAgICAgIC8qIC5jb3VudD0gKi8gMSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIwMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczMzoK K15JXkkvKiAuaWR4ID0gICovIDAsXkleSV5JXklcJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMg dXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzIwMzM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczMzoKKyAgICAgICAgICAgICAgIC8qIC5pZHggPSAgKi8g MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjczNDoKK15JXkkvKiAub2ZmID0gICovIDAsXkleSV5JXklcJAoKV0FSTklORzogQmxv Y2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzIwMzQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczNDoKKyAgICAgICAgICAgICAgIC8q IC5vZmYgPSAgKi8gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjczNToKK15JXkkvKiAuYnVmID0gICovIHsgLyogWzBdID0gKi8g e15JXkleSVwkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEg c2VwYXJhdGUgbGluZQojMjAzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NzM1OgorICAgICAgICAgICAgICAgLyogLmJ1ZiA9ICAqLyB7IC8qIFswXSA9ICovIHsgICAgICAg ICAgICAgICAgICAgXAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjAzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzM2OgorXkleSV5JLyog LnNpemUgPSAgKi8gKHNpemVfXyksXkleSVwkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2Ug YSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjAzNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6NzM2OgorICAgICAgICAgICAgICAgICAgICAgICAvKiAuc2l6ZSA9 ICAqLyAoc2l6ZV9fKSwgICAgICAgICAgICAgICAgXAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjAzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NzM3OgorXkleSV5JLyogLmZsYWdzID0gKi8gKGVudW0gZnVzZV9idWZfZmxhZ3MpIDAsXklc JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRl IGxpbmUKIzIwMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczNzoKKyAg ICAgICAgICAgICAgICAgICAgICAgLyogLmZsYWdzID0gKi8gKGVudW0gZnVzZV9idWZfZmxhZ3Mp IDAsIFwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczODoKK15JXkleSS8qIC5tZW0gPSAg ICovIE5VTEwsXkleSV5JXCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcg Lyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMDM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo3Mzg6CisgICAgICAgICAgICAgICAgICAgICAgIC8qIC5tZW0gPSAgICovIE5VTEws ICAgICAgICAgICAgICAgICAgICBcCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMDM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3Mzk6Cite SV5JXkkvKiAuZmQgPSAgICAqLyAtMSxeSV5JXklcJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMg dXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzIwMzk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczOToKKyAgICAgICAgICAgICAgICAgICAgICAgLyogLmZk ID0gICAgKi8gLTEsICAgICAgICAgICAgICAgICAgICAgIFwKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjc0MDoKK15JXkleSS8qIC5wb3MgPSAgICovIDAsXkleSV5JXCQKCldBUk5JTkc6IEJs b2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMDQwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3NDA6CisgICAgICAgICAgICAgICAg ICAgICAgIC8qIC5wb3MgPSAgICovIDAsICAgICAgICAgICAgICAgICAgICAgICBcCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDQxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo3NDE6CiteSV5JfSB9XkleSV5JXkleSV5JXCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNDI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjc0MjoKK15JfSApJAoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQg YmVmb3JlIHRoYXQgY2xvc2UgcGFyZW50aGVzaXMgJyknCiMyMDQyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo3NDI6CisgICAgICAgfSApCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo3NjE6CiteSV5JICAgICAgZW51bSBmdXNlX2J1Zl9jb3B5X2ZsYWdzIGZsYWdzKTsk CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUg bGluZQojMjA2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzYzOgorLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzY0OgorICogU2lnbmFsIGhhbmRsaW5n XkleSV5JXkleSSAgICAgICAqJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxp bmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMyMDY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo3NjU6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjA3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Nzcw OgorICogU3RvcmVzIHNlc3Npb24gaW4gYSBnbG9iYWwgdmFyaWFibGUuXkkgTWF5IG9ubHkgYmUg Y2FsbGVkIG9uY2UgcGVyJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAv KiBvbiBhIHNlcGFyYXRlIGxpbmUKIzIwOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjc5NzoKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICoKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIwOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjc5ODoKKyAq IENvbXBhdGliaWxpdHkgc3R1ZmZeSV5JXkleSV5JICAgICAgICokCgpXQVJOSU5HOiBCbG9jayBj b21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzIwOTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjc5OToKKyAqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpXQVJOSU5HOiBh cmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAojMjEwNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6ODA1OgorI2lmZGVmIF9fY3BsdXNwbHVz CgpFUlJPUjogbGluZSBvdmVyIDkwIGNoYXJhY3RlcnMKIzIxMTY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjgxNjoKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVD X18gPiA0IHx8IF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gNikgJiYgIWRlZmlu ZWQgX19jcGx1c3BsdXMKCldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNo b3VsZCBiZSBhdm9pZGVkCiMyMTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo4MTY6CisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID4gNCB8fCBfX0dOVUNf XyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDYpICYmICFkZWZpbmVkIF9fY3BsdXNwbHVzCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTIwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo4MjA6CiteSXsgdW5zaWduZWQgX2Z1c2Vfb2ZmX3Rf bXVzdF9iZV82NGJpdDooKHNpemVvZihvZmZfdCkgPT0gOCkgPyAxIDogLTEpOyB9OyQKCldBUk5J Tkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzIxMzE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoyOgorLyoKKyAgRlVTRTogRmlsZXN5c3RlbSBpbiBV c2Vyc3BhY2UKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoxNToKK15Jc3RydWN0IGZ1c2Vfc2Vzc2lv biAqc2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE0NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjE2OgorXkl1aW50NjRfdCB1bmlxdWU7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE0NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfaS5oOjE3OgorXklpbnQgY3RyOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2kuaDoxODoKK15JcHRocmVhZF9tdXRleF90IGxvY2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjE0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5o OjE5OgorXklzdHJ1Y3QgZnVzZV9jdHggY3R4OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIxNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoyMDoK K15Jc3RydWN0IGZ1c2VfY2hhbiAqY2g7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjE1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjIxOgorXklp bnQgaW50ZXJydXB0ZWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjE1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjIyOgorXkl1bnNpZ25lZCBp bnQgaW9jdGxfNjRiaXQgOiAxOyQKCkVSUk9SOiBzcGFjZXMgcHJvaGliaXRlZCBhcm91bmQgdGhh dCAnOicgKGN0eDpXeFcpCiMyMTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6MjI6 CisgICAgICAgdW5zaWduZWQgaW50IGlvY3RsXzY0Yml0IDogMTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjE1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjIzOgorXkl1bmlvbiB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE1MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfaS5oOjI0OgorXkleSXN0cnVjdCB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfaS5oOjI1OgorXkleSV5JdWludDY0X3QgdW5pcXVlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2ku aDoyNjoKK15JXkl9IGk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjE1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjI3OgorXkleSXN0cnVjdCB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE1NzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjI4OgorXkleSV5JZnVzZV9pbnRlcnJ1cHRfZnVuY190 IGZ1bmM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE1ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjI5OgorXkleSV5Jdm9pZCAqZGF0YTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTU5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9pLmg6MzA6CiteSV5JfSBuaTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9p Lmg6MzE6CiteSX0gdTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMTYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6MzI6CiteSXN0cnVjdCBmdXNl X3JlcSAqbmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MTYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6MzM6CiteSXN0cnVjdCBmdXNlX3Jl cSAqcHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTY2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6Mzc6CiteSXVpbnQ2NF90IHVuaXF1ZTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTY3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6Mzg6CiteSXZvaWQgKCpyZXBseSkoc3RydWN0IGZ1c2Vf bm90aWZ5X3JlcSAqLCBmdXNlX3JlcV90LCBmdXNlX2lub190LCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2kuaDozOToKK15JXkkgICAgICBjb25zdCB2b2lkICosIGNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAq KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTY5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NDA6CiteSXN0cnVjdCBmdXNlX25vdGlmeV9yZXEg Km5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE3MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjQxOgorXklzdHJ1Y3QgZnVzZV9ub3RpZnlf cmVxICpwcmV2OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIx NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo0NToKK15JY2hhciAqbW91bnRwb2lu dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTc1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NDY6CiteSXZvbGF0aWxlIGludCBleGl0ZWQ7JAoK RVJST1I6IFVzZSBvZiB2b2xhdGlsZSBpcyB1c3VhbGx5IHdyb25nLCBwbGVhc2UgYWRkIGEgY29t bWVudAojMjE3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjQ2OgorICAgICAgIHZv bGF0aWxlIGludCBleGl0ZWQ7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMTc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NDc6CiteSWludCBmZDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTc3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NDg6CiteSXN0cnVjdCBtb3VudF9vcHRzICptbzskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTc4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9pLmg6NDk6CiteSWludCBkZWJ1ZzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9pLmg6NTA6CiteSWludCBkZW55X290aGVyczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMTgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NTE6 CiteSXN0cnVjdCBmdXNlX2xvd2xldmVsX29wcyBvcDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6 NTI6CiteSWludCBnb3RfaW5pdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NTM6CiteSXN0cnVj dCBjdXNlX2RhdGEgKmN1c2VfZGF0YTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NTQ6CiteSXZv aWQgKnVzZXJkYXRhOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIxODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo1NToKK15JdWlkX3Qgb3duZXI7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE4NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjU2OgorXklzdHJ1Y3QgZnVzZV9jb25uX2luZm8gY29u bjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTg2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NTc6CiteSXN0cnVjdCBmdXNlX3JlcSBsaXN0OyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxODc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo1ODoKK15Jc3RydWN0IGZ1c2VfcmVxIGludGVycnVwdHM7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE4ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjU5OgorXklwdGhyZWFkX211dGV4X3QgbG9jazskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTg5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9pLmg6NjA6CiteSWludCBnb3RfZGVzdHJveTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTkwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9pLmg6NjE6CiteSXB0aHJlYWRfa2V5X3QgcGlwZV9rZXk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfaS5oOjYyOgorXklpbnQgYnJva2VuX3NwbGljZV9ub25ibG9jazskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTkyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9pLmg6NjM6CiteSXVpbnQ2NF90IG5vdGlmeV9jdHI7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfaS5oOjY0OgorXklzdHJ1Y3QgZnVzZV9ub3RpZnlfcmVxIG5vdGlmeV9saXN0OyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2kuaDo2NToKK15Jc2l6ZV90IGJ1ZnNpemU7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfaS5oOjY2OgorXklpbnQgZXJyb3I7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjE5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjcwOgorXklw dGhyZWFkX211dGV4X3QgbG9jazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMjAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NzE6CiteSWludCBj dHI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIwMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjcyOgorXklpbnQgZmQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIxMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfaS5oOjgzOgorXkljaGFyICpuYW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIyMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo4NDoK K15JZnVzZV9tb2R1bGVfZmFjdG9yeV90IGZhY3Rvcnk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjIxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5o Ojg1OgorXklzdHJ1Y3QgZnVzZV9tb2R1bGUgKm5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjIxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5o Ojg2OgorXklzdHJ1Y3QgZnVzZW1vZF9zbyAqc287JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjIxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjg3 OgorXklpbnQgY3RyOyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiMyMjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6 OTA6CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAqCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MjIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6OTE6CisgKiBDaGFubmVsIGludGVy ZmFjZSAod2hlbiB1c2luZyAtbyBjbG9uZV9mZCleSV5JICAgICAgICokCgpXQVJOSU5HOiBCbG9j ayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzIyMjE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo5MjoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9pLmg6MTE3OgorXkleSV5JICAgICAgIGludCBjb3VudCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfaS5oOjEyNToKK15JXkleSV5JIHN0cnVjdCBmdXNlX2NoYW4gKmNoKTskCgpXQVJOSU5HOiBs aW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjI1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf aS5oOjEyNzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBm dXNlX2J1ZiAqYnVmLCBzdHJ1Y3QgZnVzZV9jaGFuICpjaCk7CgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9p Lmg6MTI3OgorXkleSV5JXkkgIGNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqYnVmLCBzdHJ1Y3QgZnVz ZV9jaGFuICpjaCk7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzIyNTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoxMjk6CitzdHJ1Y3QgZnVzZSAqZnVzZV9uZXdf MzEoc3RydWN0IGZ1c2VfYXJncyAqYXJncywgY29uc3Qgc3RydWN0IGZ1c2Vfb3BlcmF0aW9ucyAq b3AsCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjU5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6MTMwOgorXkleSSAgICAgIHNpemVfdCBvcF9zaXpl LCB2b2lkICpwcml2YXRlX2RhdGEpOyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJz CiMyMjYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6MTMyOgoraW50IGZ1c2Vfc2Vz c2lvbl9sb29wX210XzMyKHN0cnVjdCBmdXNlX3Nlc3Npb24gKnNlLCBzdHJ1Y3QgZnVzZV9sb29w X2NvbmZpZyAqY29uZmlnKTsKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNl cXVlbnQgbGluZXMKIzIyNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5oOjI6Cisv KgorICBGVVNFOiBGaWxlc3lzdGVtIGluIFVzZXJzcGFjZQoKV0FSTklORzogQmxvY2sgY29tbWVu dHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzIyODY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvZy5oOjEyOgorLyoqIEBmaWxlCgpXQVJOSU5HOiBhcmNoaXRlY3R1 cmUgc3BlY2lmaWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAojMjI5MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG9nLmg6MTk6CisjaWZkZWYgX19jcGx1c3BsdXMKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvZy5oOjI5OgorXklGVVNFX0xPR19FTUVSRywkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b2cuaDozMDoKK15JRlVTRV9MT0dfQUxFUlQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjMwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmg6MzE6 CiteSUZVU0VfTE9HX0NSSVQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjMwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmg6MzI6CiteSUZVU0Vf TE9HX0VSUiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuaDozMzoKK15JRlVTRV9MT0dfV0FSTklO RywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuaDozNDoKK15JRlVTRV9MT0dfTk9USUNFLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMDk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvZy5oOjM1OgorXklGVVNFX0xPR19JTkZPLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvZy5oOjM2OgorXklGVVNFX0xPR19ERUJVRyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv Zy5oOjUzOgorXkleSV5JXkljb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApOyQKCldBUk5JTkc6 IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMyMzUyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuaDo3ODoKKyNpZmRlZiBfX2NwbHVzcGx1cwoK V0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojMjM2NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyOgorLyoKKyAgRlVTRTogRmls ZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRp bmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMzc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjEyOgorLyoqIEBmaWxlCgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lm aWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAojMjM5NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDozNDoKKyNpZmRlZiBfX2NwbHVzcGx1cwoKV0FSTklORzogQmxvY2sg Y29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzI0MDA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mzg6CisvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDAxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjM5OgorICogTWlzY2VsbGFuZW91cyBkZWZpbml0aW9uc15JXkle SV5JICAgICAgICokCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBv biBhIHNlcGFyYXRlIGxpbmUKIzI0MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NDA6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MDoKK15J LyoqIFVuaXF1ZSBpbm9kZSBudW1iZXIkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBs ZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjQyMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo2MDoKKyAgICAgICAvKiogVW5pcXVlIGlub2RlIG51bWJlcgoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyMzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjYyOgorXkkgKiBJbiBsb29rdXAsIHplcm8gbWVhbnMgbmVnYXRpdmUgZW50cnkg KGZyb20gdmVyc2lvbiAyLjUpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MzoKK15J ICogUmV0dXJuaW5nIEVOT0VOVCBhbHNvIG1lYW5zIG5lZ2F0aXZlIGVudHJ5LCBidXQgYnkgc2V0 dGluZyB6ZXJvJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQy NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NDoKK15JICogaW5vIHRo ZSBrZXJuZWwgbWF5IGNhY2hlIG5lZ2F0aXZlIGVudHJpZXMgZm9yIGVudHJ5X3RpbWVvdXQkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDI3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY1OgorXkkgKiBzZWNvbmRzLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0Mjg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NjY6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI0Mjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6Njc6CiteSWZ1c2VfaW5vX3QgaW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6Njk6CiteSS8qKiBHZW5lcmF0aW9uIG51bWJlciBmb3IgdGhpcyBlbnRyeS4kCgpXQVJOSU5H OiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjQz MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2OToKKyAgICAgICAvKiog R2VuZXJhdGlvbiBudW1iZXIgZm9yIHRoaXMgZW50cnkuCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNDMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjcwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI0MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzE6CiteSSAq IElmIHRoZSBmaWxlIHN5c3RlbSB3aWxsIGJlIGV4cG9ydGVkIG92ZXIgTkZTLCB0aGUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDM0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcyOgorXkkgKiBpbm8vZ2VuZXJhdGlvbiBwYWlycyBu ZWVkIHRvIGJlIHVuaXF1ZSBvdmVyIHRoZSBmaWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjQzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo3MzoKK15JICogc3lzdGVtJ3MgbGlmZXRpbWUgKHJhdGhlciB0aGFuIGp1c3QgdGhlIG1v dW50IHRpbWUpLiBTbyBpZiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI0MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzQ6CiteSSAq IHRoZSBmaWxlIHN5c3RlbSByZXVzZXMgYW4gaW5vZGUgYWZ0ZXIgaXQgaGFzIGJlZW4gZGVsZXRl ZCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDM3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc1OgorXkkgKiBpdCBtdXN0IGFzc2ln biBhIG5ldywgcHJldmlvdXNseSB1bnVzZWQgZ2VuZXJhdGlvbiBudW1iZXIkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDM4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjc2OgorXkkgKiB0byB0aGUgaW5vZGUgYXQgdGhlIHNhbWUgdGlt ZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDM5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc3OgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6Nzg6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6Nzk6CiteSXVpbnQ2NF90IGdlbmVyYXRpb247JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjQ0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo4MToKK15JLyoqIElub2RlIGF0dHJpYnV0ZXMuJAoKV0FSTklORzogQmxvY2sgY29tbWVu dHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzI0NDM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODE6CisgICAgICAgLyoqIElub2RlIGF0dHJpYnV0 ZXMuCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDQ0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgyOgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6ODM6CiteSSAqIEV2ZW4gaWYgYXR0cl90aW1lb3V0ID09IDAsIGF0 dHIgbXVzdCBiZSBjb3JyZWN0LiBGb3IgZXhhbXBsZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNDQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjg0OgorXkkgKiBmb3Igb3BlbigpLCBGVVNFIHVzZXMgYXR0ci5zdF9zaXplIGZyb20g bG9va3VwKCkgdG8gZGV0ZXJtaW5lJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjQ0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NToK K15JICogaG93IG1hbnkgYnl0ZXMgdG8gcmVxdWVzdC4gSWYgdGhpcyB2YWx1ZSBpcyBub3QgY29y cmVjdCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDQ4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg2OgorXkkgKiBpbmNvcnJlY3Qg ZGF0YSB3aWxsIGJlIHJldHVybmVkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI0NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODc6 CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODg6CiteSXN0cnVjdCBzdGF0 IGF0dHI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MDoKK15JLyoqIFZhbGlkaXR5 IHRpbWVvdXQgKGluIHNlY29uZHMpIGZvciBpbm9kZSBhdHRyaWJ1dGVzLiBJZiQKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyNDUy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkwOgorICAgICAgIC8qKiBW YWxpZGl0eSB0aW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaW5vZGUgYXR0cmlidXRlcy4gSWYKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NTM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTE6CiteSSAgICBhdHRyaWJ1dGVzIG9ubHkgY2hh bmdlIGFzIGEgcmVzdWx0IG9mIHJlcXVlc3RzIHRoYXQgY29tZSQKCldBUk5JTkc6IEJsb2NrIGNv bW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzI0NTM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6OTE6CisgICAgICAgLyoqIFZhbGlkaXR5IHRpbWVvdXQgKGlu IHNlY29uZHMpIGZvciBpbm9kZSBhdHRyaWJ1dGVzLiBJZgorICAgICAgICAgICBhdHRyaWJ1dGVz IG9ubHkgY2hhbmdlIGFzIGEgcmVzdWx0IG9mIHJlcXVlc3RzIHRoYXQgY29tZQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MjoKK15JICAgIHRocm91Z2ggdGhlIGtlcm5lbCwgdGhpcyBz aG91bGQgYmUgc2V0IHRvIGEgdmVyeSBsYXJnZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTM6CiteSSAgICB2YWx1ZS4gKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0 cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzI0NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6OTM6CisgICAgICAgICAgIHZhbHVlLiAqLwoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo5NDoKK15JZG91YmxlIGF0dHJfdGltZW91dDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDU4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjk2OgorXkkvKiogVmFsaWRpdHkgdGltZW91dCAoaW4gc2Vjb25k cykgZm9yIHRoZSBuYW1lLiBJZiBkaXJlY3RvcnkkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjQ1ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NjoKKyAgICAgICAvKiogVmFsaWRpdHkgdGltZW91dCAo aW4gc2Vjb25kcykgZm9yIHRoZSBuYW1lLiBJZiBkaXJlY3RvcnkKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6OTc6CiteSSAgICBlbnRyaWVzIGFyZSBjaGFuZ2VkL2RlbGV0ZWQgb25seSBh cyBhIHJlc3VsdCBvZiByZXF1ZXN0cyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9u IHN1YnNlcXVlbnQgbGluZXMKIzI0NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6OTc6CisgICAgICAgLyoqIFZhbGlkaXR5IHRpbWVvdXQgKGluIHNlY29uZHMpIGZvciB0 aGUgbmFtZS4gSWYgZGlyZWN0b3J5CisgICAgICAgICAgIGVudHJpZXMgYXJlIGNoYW5nZWQvZGVs ZXRlZCBvbmx5IGFzIGEgcmVzdWx0IG9mIHJlcXVlc3RzCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNDYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjk4OgorXkkgICAgdGhhdCBjb21lIHRocm91Z2ggdGhlIGtlcm5lbCwgdGhpcyBzaG91 bGQgYmUgc2V0IHRvIGEgdmVyeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI0NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTk6Cite SSAgICBsYXJnZSB2YWx1ZS4gKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFp bGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzI0NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6OTk6CisgICAgICAgICAgIGxhcmdlIHZhbHVlLiAqLwoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ2MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDA6CiteSWRvdWJsZSBlbnRyeV90aW1lb3V0OyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NzQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEyOgorXkkvKiogVXNlciBJRCBvZiB0aGUgY2FsbGlu ZyBwcm9jZXNzICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjQ3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTM6CiteSXVpZF90 IHVpZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDc3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNToKK15JLyoqIEdyb3VwIElE IG9mIHRoZSBjYWxsaW5nIHByb2Nlc3MgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNDc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjExNjoKK15JZ2lkX3QgZ2lkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI0ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE4Ogor XkkvKiogVGhyZWFkIElEIG9mIHRoZSBjYWxsaW5nIHByb2Nlc3MgKi8kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjExOToKK15JcGlkX3QgcGlkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTIxOgorXkkvKiogVW1hc2sgb2YgdGhlIGNhbGxpbmcgcHJvY2VzcyAqLyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIyOgorXkltb2RlX3QgdW1hc2s7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ4ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjY6CiteSWZ1c2VfaW5vX3QgaW5vOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTI3OgorXkl1aW50NjRfdCBubG9va3VwOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTMxOgorI2RlZmluZSBGVVNFX1NFVF9BVFRSX01PREVeSSgx IDw8IDApJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMzI6CisjZGVmaW5lIEZVU0Vf U0VUX0FUVFJfVUlEXkkoMSA8PCAxKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI0OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTMz OgorI2RlZmluZSBGVVNFX1NFVF9BVFRSX0dJRF5JKDEgPDwgMikkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjEzNDoKKyNkZWZpbmUgRlVTRV9TRVRfQVRUUl9TSVpFXkkoMSA8PCAzKSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTM1OgorI2RlZmluZSBGVVNFX1NFVF9BVFRS X0FUSU1FXkkoMSA8PCA0KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI0OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTM2OgorI2Rl ZmluZSBGVVNFX1NFVF9BVFRSX01USU1FXkkoMSA8PCA1KSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTM3OgorI2RlZmluZSBGVVNFX1NFVF9BVFRSX0FUSU1FX05PV15JKDEgPDwgNykk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTAwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEzODoKKyNkZWZpbmUgRlVTRV9TRVRfQVRU Ul9NVElNRV9OT1deSSgxIDw8IDgpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjUwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMzk6 CisjZGVmaW5lIEZVU0VfU0VUX0FUVFJfQ1RJTUVeSSgxIDw8IDEwKSQKCldBUk5JTkc6IEJsb2Nr IGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyNTAzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE0MToKKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MDQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTQyOgorICogUmVxdWVzdCBtZXRob2RzIGFuZCByZXBsaWVz XkleSV5JXkkgICAgICAgKiQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5n ICovIG9uIGEgc2VwYXJhdGUgbGluZQojMjUwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxNDM6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjUzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox NzM6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTc0OgorXkkgKiBJbml0 aWFsaXplIGZpbGVzeXN0ZW0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE3NToKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTM4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE3NjoKK15JICogVGhpcyBmdW5jdGlv biBpcyBjYWxsZWQgd2hlbiBsaWJmdXNlIGVzdGFibGlzaGVzJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxNzc6CiteSSAqIGNvbW11bmljYXRpb24gd2l0aCB0aGUgRlVTRSBrZXJuZWwg bW9kdWxlLiBUaGUgZmlsZSBzeXN0ZW0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNTQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE3 ODoKK15JICogc2hvdWxkIHVzZSB0aGlzIG1vZHVsZSB0byBpbnNwZWN0IGFuZC9vciBtb2RpZnkg dGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNzk6CiteSSAqIGNvbm5lY3Rpb24g cGFyYW1ldGVycyBwcm92aWRlZCBpbiB0aGUgYGNvbm5gIHN0cnVjdHVyZS4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTQyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjE4MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNTQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjE4MToKK15JICogTm90ZSB0aGF0IHNvbWUgcGFyYW1ldGVycyBtYXkgYmUgb3ZlcndyaXR0 ZW4gYnkgb3B0aW9ucyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI1NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTgyOgorXkkgKiBw YXNzZWQgdG8gZnVzZV9zZXNzaW9uX25ldygpIHdoaWNoIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRo ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NDU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTgzOgorXkkgKiB2YWx1ZXMgc2V0IGlu IHRoaXMgaGFuZGxlci4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNTQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4NDoKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTQ3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4NToKK15JICogVGhlcmUncyBubyByZXBs eSB0byB0aGlzIGZ1bmN0aW9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjU0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODY6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODc6CiteSSAqIEBwYXJhbSB1c2Vy ZGF0YSB0aGUgdXNlciBkYXRhIHBhc3NlZCB0byBmdXNlX3Nlc3Npb25fbmV3KCkkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTUwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4ODoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjU1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxODk6CiteSXZvaWQgKCppbml0KSAodm9pZCAqdXNlcmRhdGEsIHN0cnVjdCBmdXNl X2Nvbm5faW5mbyAqY29ubik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjU1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxOTE6Cite SS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTkyOgorXkkgKiBDbGVhbiB1cCBm aWxlc3lzdGVtLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTkzOgorXkkgKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTk0OgorXkkgKiBDYWxsZWQgb24gZmlsZXN5c3Rl bSBleGl0LiBXaGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCwgdGhlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxOTU6CiteSSAqIGNvbm5lY3Rpb24gdG8gdGhlIGtlcm5lbCBtYXkgYmUg Z29uZSBhbHJlYWR5LCBzbyB0aGF0IGVnLiBjYWxscyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTk2OgorXkkgKiB0byBmdXNlX2xvd2xldmVsX25vdGlmeV8qIHdpbGwgZmFpbC4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTU5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE5NzoKK15JICokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjE5ODoKK15JICogVGhlcmUncyBubyByZXBseSB0byB0aGlzIGZ1bmN0aW9u JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxOTk6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDoyMDA6CiteSSAqIEBwYXJhbSB1c2VyZGF0YSB0aGUgdXNlciBkYXRh IHBhc3NlZCB0byBmdXNlX3Nlc3Npb25fbmV3KCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNTYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjIwMToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjU2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMDI6CiteSXZv aWQgKCpkZXN0cm95KSAodm9pZCAqdXNlcmRhdGEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MjA0OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIwNToKK15J ICogTG9vayB1cCBhIGRpcmVjdG9yeSBlbnRyeSBieSBuYW1lIGFuZCBnZXQgaXRzIGF0dHJpYnV0 ZXMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMDY6CiteSSAqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMDc6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMDg6CiteSSAqICAgZnVzZV9yZXBseV9lbnRyeSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjA5OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMTA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyMTE6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTc0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIxMjoKK15JICogQHBhcmFtIHBhcmVudCBpbm9kZSBudW1i ZXIgb2YgdGhlIHBhcmVudCBkaXJlY3RvcnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNTc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjIxMzoKK15JICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgdG8gbG9vayB1cCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MjE0OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjIxNToKK15Jdm9pZCAoKmxvb2t1cCkgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IHBh cmVudCwgY29uc3QgY2hhciAqbmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoy MTc6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjE4OgorXkkgKiBGb3Jn ZXQgYWJvdXQgYW4gaW5vZGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIxOToKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTgyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIyMDoKK15JICogVGhpcyBmdW5jdGlv biBpcyBjYWxsZWQgd2hlbiB0aGUga2VybmVsIHJlbW92ZXMgYW4gaW5vZGUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTgzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjIyMToKK15JICogZnJvbSBpdHMgaW50ZXJuYWwgY2FjaGVzLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1ODQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjIyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MjIzOgorXkkgKiBUaGUgaW5vZGUncyBsb29rdXAgY291bnQgaW5jcmVh c2VzIGJ5IG9uZSBmb3IgZXZlcnkgY2FsbCB0byQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI1ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MjI0OgorXkkgKiBmdXNlX3JlcGx5X2VudHJ5IGFuZCBmdXNlX3JlcGx5X2NyZWF0ZS4gVGhl IG5sb29rdXAgcGFyYW1ldGVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjU4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMjU6Cite SSAqIGluZGljYXRlcyBieSBob3cgbXVjaCB0aGUgbG9va3VwIGNvdW50IHNob3VsZCBiZSBkZWNy ZWFzZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMjY6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMjc6CiteSSAqIElub2RlcyB3aXRoIGEgbm9uLXplcm8g bG9va3VwIGNvdW50IG1heSByZWNlaXZlIHJlcXVlc3QgZnJvbSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MjI4OgorXkkgKiB0aGUga2VybmVsIGV2ZW4gYWZ0ZXIgY2FsbHMgdG8gdW5s aW5rLCBybWRpciBvciAod2hlbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI1OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjI5Ogor XkkgKiBvdmVyd3JpdGluZyBhbiBleGlzdGluZyBmaWxlKSByZW5hbWUuIEZpbGVzeXN0ZW1zIG11 c3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU5 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMzA6CiteSSAqIHN1Y2gg cmVxdWVzdHMgcHJvcGVybHkgYW5kIGl0IGlzIHJlY29tbWVuZGVkIHRvIGRlZmVyIHJlbW92YWwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTkzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIzMToKK15JICogb2YgdGhlIGlub2RlIHVu dGlsIHRoZSBsb29rdXAgY291bnQgcmVhY2hlcyB6ZXJvLiBDYWxscyB0byQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MjMyOgorXkkgKiB1bmxpbmssIHJtZGlyIG9yIHJlbmFtZSB3aWxs IGJlIGZvbGxvd2VkIGNsb3NlbHkgYnkgZm9yZ2V0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjU5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoyMzM6CiteSSAqIHVubGVzcyB0aGUgZmlsZSBvciBkaXJlY3RvcnkgaXMgb3BlbiwgaW4g d2hpY2ggY2FzZSB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNTk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIzNDoKK15JICog a2VybmVsIGlzc3VlcyBmb3JnZXQgb25seSBhZnRlciB0aGUgcmVsZWFzZSBvciByZWxlYXNlZGly JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU5NzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMzU6CiteSSAqIGNhbGxzLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjM2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MjM3OgorXkkgKiBOb3RlIHRoYXQgaWYgYSBmaWxlIHN5c3RlbSB3aWxsIGJlIGV4 cG9ydGVkIG92ZXIgTkZTIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjM4Ogor XkkgKiBpbm9kZXMgbGlmZXRpbWUgbXVzdCBleHRlbmQgZXZlbiBiZXlvbmQgZm9yZ2V0LiBTZWUg dGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMzk6CiteSSAqIGdlbmVyYXRpb24g ZmllbGQgaW4gc3RydWN0IGZ1c2VfZW50cnlfcGFyYW0gYWJvdmUuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoyNDA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjYwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoy NDE6CiteSSAqIE9uIHVubW91bnQgdGhlIGxvb2t1cCBjb3VudCBmb3IgYWxsIGlub2RlcyBpbXBs aWNpdGx5IGRyb3BzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjYwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNDI6CiteSSAqIHRv IHplcm8uIEl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgdGhlIGZpbGUgc3lzdGVtIHdpbGwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjA1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI0MzoKK15JICogcmVjZWl2ZSBjb3JyZXNwb25k aW5nIGZvcmdldCBtZXNzYWdlcyBmb3IgdGhlIGFmZmVjdGVkJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyNDQ6CiteSSAqIGlub2Rlcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNjA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjI0NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNjA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI0NjoKK15JICog VmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNjA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI0NzoKK15JICog ICBmdXNlX3JlcGx5X25vbmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI0ODoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjExOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI0OToKK15JICogQHBhcmFtIHJlcSBy ZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjUwOgorXkkgKiBA cGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjI1MToKK15JICogQHBhcmFtIG5sb29rdXAgdGhlIG51bWJlciBvZiBsb29rdXBzIHRvIGZvcmdl dCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MTQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjUyOgorXkkgKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjE1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjI1MzoKK15Jdm9pZCAoKmZvcmdldCkgKGZ1c2VfcmVxX3QgcmVx LCBmdXNlX2lub190IGlubywgdWludDY0X3Qgbmxvb2t1cCk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyNTU6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjU2 OgorXkkgKiBHZXQgZmlsZSBhdHRyaWJ1dGVzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MjU3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjU4OgorXkkgKiBJ ZiB3cml0ZWJhY2sgY2FjaGluZyBpcyBlbmFibGVkLCB0aGUga2VybmVsIG1heSBoYXZlIGEkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjIxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI1OToKK15JICogYmV0dGVyIGlkZWEgb2YgYSBm aWxlJ3MgbGVuZ3RoIHRoYW4gdGhlIEZVU0UgZmlsZSBzeXN0ZW0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjI2MDoKK15JICogKGVnIGlmIHRoZXJlIGhhcyBiZWVuIGEgd3JpdGUgdGhh dCBleHRlbmRlZCB0aGUgZmlsZSBzaXplLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI2MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MjYxOgorXkkgKiBidXQgdGhhdCBoYXMgbm90IHlldCBiZWVuIHBhc3NlZCB0byB0aGUgZmlsZXN5 c3RlbS5uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYyNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNjI6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYyNTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNjM6CiteSSAqIEluIHRoaXMgY2FzZSwgdGhlIHN0X3Np emUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIGZpbGUgc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyNjQ6CiteSSAqIHdpbGwgYmUgaWdub3JlZC4kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjI2NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI2 NjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI2 NzoKK15JICogICBmdXNlX3JlcGx5X2F0dHIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjI2ODoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MjY5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjcwOgorXkkgKiBA cGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjYzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoy NzE6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MjcyOgorXkkgKiBAcGFyYW0gZmkgZm9yIGZ1dHVyZSB1c2UsIGN1cnJlbnRs eSBhbHdheXMgTlVMTCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjczOgorXkkgKi8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjM2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI3NDoKK15Jdm9pZCAoKmdldGF0dHIpIChm dXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjYzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoyNzU6CiteSV5JXkkgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYzOTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNzc6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6Mjc4OgorXkkgKiBTZXQgZmlsZSBhdHRyaWJ1dGVzJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyNzk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjY0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyODA6 CiteSSAqIEluIHRoZSAnYXR0cicgYXJndW1lbnQgb25seSBtZW1iZXJzIGluZGljYXRlZCBieSB0 aGUgJ3RvX3NldCckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NjQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI4MToKK15JICogYml0 bWFzayBjb250YWluIHZhbGlkIHZhbHVlcy4gIE90aGVyIG1lbWJlcnMgY29udGFpbiB1bmRlZmlu ZWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI4MjoKK15JICogdmFsdWVzLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NDU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjgzOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6Mjg0OgorXkkgKiBVbmxlc3MgRlVTRV9DQVBfSEFORExFX0tJTExQUklWIGlz IGRpc2FibGVkLCB0aGlzIG1ldGhvZCBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI2NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 Mjg1OgorXkkgKiBleHBlY3RlZCB0byByZXNldCB0aGUgc2V0dWlkIGFuZCBzZXRnaWQgYml0cyBp ZiB0aGUgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2 NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mjg2OgorXkkgKiBzaXpl IG9yIG93bmVyIGlzIGJlaW5nIGNoYW5nZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjY0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoyODc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyODg6CiteSSAqIElm IHRoZSBzZXRhdHRyIHdhcyBpbnZva2VkIGZyb20gdGhlIGZ0cnVuY2F0ZSgpIHN5c3RlbSBjYWxs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY1MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyODk6CiteSSAqIHVuZGVyIExpbnV4IGtl cm5lbCB2ZXJzaW9ucyAyLjYuMTUgb3IgbGF0ZXIsIHRoZSBmaS0+Zmggd2lsbCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MjkwOgorXkkgKiBjb250YWluIHRoZSB2YWx1ZSBzZXQgYnkg dGhlIG9wZW4gbWV0aG9kIG9yIHdpbGwgYmUgdW5kZWZpbmVkJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyOTE6CiteSSAqIGlmIHRoZSBvcGVuIG1ldGhvZCBkaWRuJ3Qgc2V0IGFueSB2 YWx1ZS4gIE90aGVyd2lzZSAobm90JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjY1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyOTI6 CiteSSAqIGZ0cnVuY2F0ZSBjYWxsLCBvciBrZXJuZWwgdmVyc2lvbiBlYXJsaWVyIHRoYW4gMi42 LjE1KSB0aGUgZmkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NjU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI5MzoKK15JICogcGFy YW1ldGVyIHdpbGwgYmUgTlVMTC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI5NDoK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjU3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI5NToKK15JICogVmFsaWQgcmVw bGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjU4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI5NjoKK15JICogICBmdXNlX3Jl cGx5X2F0dHIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjU5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI5NzoKK15JICogICBmdXNl X3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2 NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mjk4OgorXkkgKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NjE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mjk5OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3Qg aGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY2Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMDA6CiteSSAqIEBwYXJhbSBp bm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzAxOgor XkkgKiBAcGFyYW0gYXR0ciB0aGUgYXR0cmlidXRlcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MzAyOgorXkkgKiBAcGFyYW0gdG9fc2V0IGJpdCBtYXNrIG9mIGF0dHJpYnV0ZXMgd2hp Y2ggc2hvdWxkIGJlIHNldCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI2NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzAzOgorXkkg KiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiwgb3IgTlVMTCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MzA0OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMw NToKK15Jdm9pZCAoKnNldGF0dHIpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sIHN0 cnVjdCBzdGF0ICphdHRyLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI2Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzA2OgorXkle SV5JIGludCB0b19zZXQsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MzA4OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNjcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjMwOToKK15JICogUmVhZCBzeW1ib2xpYyBsaW5rJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjY3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDozMTA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMTE6Cite SSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMTI6Cite SSAqICAgZnVzZV9yZXBseV9yZWFkbGluayQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI2NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MzEzOgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjY3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDozMTQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMTU6CiteSSAqIEBw YXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMx NjoKK15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDozMTc6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzE4 OgorXkl2b2lkICgqcmVhZGxpbmspIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8pOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2ODI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzIwOgorXkkvKiokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjMyMToKK15JICogQ3JlYXRlIGZpbGUgbm9kZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MzIyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MzIzOgorXkkgKiBDcmVhdGUgYSByZWd1bGFyIGZpbGUsIGNoYXJhY3RlciBkZXZpY2UsIGJs b2NrIGRldmljZSwgZmlmbyBvciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzI0Ogor XkkgKiBzb2NrZXQgbm9kZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMyNToKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjg4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMyNjoKK15JICogVmFsaWQgcmVwbGll czokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjg5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMyNzoKK15JICogICBmdXNlX3JlcGx5 X2VudHJ5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY5MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMjg6CiteSSAqICAgZnVzZV9y ZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjkx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMyOToKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjkyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMzMDoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhh bmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2OTM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzMxOgorXkkgKiBAcGFyYW0gcGFy ZW50IGlub2RlIG51bWJlciBvZiB0aGUgcGFyZW50IGRpcmVjdG9yeSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MzMyOgorXkkgKiBAcGFyYW0gbmFtZSB0byBjcmVhdGUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMzMzoKK15JICogQHBhcmFtIG1vZGUgZmlsZSB0eXBlIGFu ZCBtb2RlIHdpdGggd2hpY2ggdG8gY3JlYXRlIHRoZSBuZXcgZmlsZSQKCldBUk5JTkc6IGxpbmUg b3ZlciA4MCBjaGFyYWN0ZXJzCiMyNjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjMzNDoKKyAgICAgICAgKiBAcGFyYW0gcmRldiB0aGUgZGV2aWNlIG51bWJlciAob25s eSB2YWxpZCBpZiBjcmVhdGVkIGZpbGUgaXMgYSBkZXZpY2UpCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjMzNDoKK15JICogQHBhcmFtIHJkZXYgdGhlIGRldmljZSBudW1iZXIgKG9ubHkg dmFsaWQgaWYgY3JlYXRlZCBmaWxlIGlzIGEgZGV2aWNlKSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MzM1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMzNjoK K15Jdm9pZCAoKm1rbm9kKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgcGFyZW50LCBjb25z dCBjaGFyICpuYW1lLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzM3OgorXkleSSAg ICAgICBtb2RlX3QgbW9kZSwgZGV2X3QgcmRldik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjcwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDozMzk6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzQwOgorXkkg KiBDcmVhdGUgYSBkaXJlY3RvcnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0MToK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzA0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0MjoKK15JICogVmFsaWQgcmVw bGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzA1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0MzoKK15JICogICBmdXNlX3Jl cGx5X2VudHJ5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcw NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNDQ6CiteSSAqICAgZnVz ZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NzA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0NToKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzA4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0NjoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0 IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MDk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzQ3OgorXkkgKiBAcGFyYW0g cGFyZW50IGlub2RlIG51bWJlciBvZiB0aGUgcGFyZW50IGRpcmVjdG9yeSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MzQ4OgorXkkgKiBAcGFyYW0gbmFtZSB0byBjcmVhdGUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzExOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0OToKK15JICogQHBhcmFtIG1vZGUgd2l0aCB3aGlj aCB0byBjcmVhdGUgdGhlIG5ldyBmaWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjcxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoz NTA6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3 MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzUxOgorXkl2b2lkICgq bWtkaXIpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBwYXJlbnQsIGNvbnN0IGNoYXIgKm5h bWUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcxNDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNTI6CiteSV5JICAgICAgIG1vZGVf dCBtb2RlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzE2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM1NDoKK15JLyoqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcxNzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNTU6CiteSSAqIFJlbW92ZSBhIGZpbGUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzE4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM1NjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjM1NzoKK15JICogSWYgdGhlIGZpbGUncyBpbm9kZSdzIGxvb2t1cCBjb3VudCBp cyBub24temVybywgdGhlIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM1ODoK K15JICogc3lzdGVtIGlzIGV4cGVjdGVkIHRvIHBvc3Rwb25lIGFueSByZW1vdmFsIG9mIHRoZSBp bm9kZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MjE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzU5OgorXkkgKiB1bnRpbCB0aGUg bG9va3VwIGNvdW50IHJlYWNoZXMgemVybyAoc2VlIGRlc2NyaXB0aW9uIG9mIHRoZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MjI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzYwOgorXkkgKiBmb3JnZXQgZnVuY3Rpb24pLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MjM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzYxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MzYyOgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MzYzOgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDozNjQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjcyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoz NjU6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjM2NjoKK15JICogQHBhcmFtIHBhcmVudCBpbm9kZSBudW1iZXIgb2YgdGhlIHBh cmVudCBkaXJlY3RvcnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM2NzoKK15JICog QHBhcmFtIG5hbWUgdG8gcmVtb3ZlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjczMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNjg6 CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MzE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzY5OgorXkl2b2lkICgqdW5s aW5rKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgcGFyZW50LCBjb25zdCBjaGFyICpuYW1l KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzMzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM3MToKK15JLyoqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjczNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDozNzI6CiteSSAqIFJlbW92ZSBhIGRpcmVjdG9yeSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MzU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzczOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6Mzc0OgorXkkgKiBJZiB0aGUgZGlyZWN0b3J5J3MgaW5vZGUncyBsb29rdXAgY291 bnQgaXMgbm9uLXplcm8sIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI3Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mzc1Ogor XkkgKiBmaWxlIHN5c3RlbSBpcyBleHBlY3RlZCB0byBwb3N0cG9uZSBhbnkgcmVtb3ZhbCBvZiB0 aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzM4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM3NjoKK15JICogaW5vZGUgdW50aWwg dGhlIGxvb2t1cCBjb3VudCByZWFjaGVzIHplcm8gKHNlZSBkZXNjcmlwdGlvbiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Mzk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6Mzc3OgorXkkgKiBvZiB0aGUgZm9yZ2V0IGZ1bmN0aW9uKS4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzQwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM3ODoKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjM3OToKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjM4MDoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MzgxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI3NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MzgyOgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDozODM6CiteSSAqIEBwYXJhbSBwYXJlbnQgaW5vZGUgbnVtYmVyIG9mIHRo ZSBwYXJlbnQgZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjc0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozODQ6Cite SSAqIEBwYXJhbSBuYW1lIHRvIHJlbW92ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI3NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 Mzg1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM4NjoKK15Jdm9pZCAo KnJtZGlyKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgcGFyZW50LCBjb25zdCBjaGFyICpu YW1lKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzUwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM4ODoKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc1MTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozODk6CiteSSAqIENyZWF0ZSBhIHN5bWJvbGljIGxpbmsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzUyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM5MDoKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjM5MToKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjM5MjoKK15JICogICBmdXNlX3JlcGx5X2VudHJ5JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc1NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDozOTM6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzU2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM5NDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjM5NToKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6Mzk2OgorXkkgKiBAcGFyYW0gbGluayB0aGUgY29udGVudHMgb2Yg dGhlIHN5bWJvbGljIGxpbmskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNzU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM5NzoKK15J ICogQHBhcmFtIHBhcmVudCBpbm9kZSBudW1iZXIgb2YgdGhlIHBhcmVudCBkaXJlY3RvcnkkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzYwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM5ODoKK15JICogQHBhcmFtIG5hbWUgdG8gY3Jl YXRlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozOTk6CiteSSAqLyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NjI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NDAwOgorXkl2b2lkICgqc3ltbGluaykgKGZ1c2VfcmVxX3Qg cmVxLCBjb25zdCBjaGFyICpsaW5rLCBmdXNlX2lub190IHBhcmVudCwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjQwMToKK15JXkleSSBjb25zdCBjaGFyICpuYW1lKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzY1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQwMzoKK15JLyoqIFJlbmFtZSBhIGZpbGUkCgpXQVJOSU5H OiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjc2 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MDM6CisgICAgICAgLyoq IFJlbmFtZSBhIGZpbGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI3NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDA0OgorXkkgKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Njc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDA1OgorXkkgKiBJZiB0aGUgdGFyZ2V0IGV4 aXN0cyBpdCBzaG91bGQgYmUgYXRvbWljYWxseSByZXBsYWNlZC4gSWYkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjQwNjoKK15JICogdGhlIHRhcmdldCdzIGlub2RlJ3MgbG9va3VwIGNv dW50IGlzIG5vbi16ZXJvLCB0aGUgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI3Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NDA3OgorXkkgKiBzeXN0ZW0gaXMgZXhwZWN0ZWQgdG8gcG9zdHBvbmUgYW55IHJlbW92YWwgb2Yg dGhlIGlub2RlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MDg6CiteSSAqIHVudGls IHRoZSBsb29rdXAgY291bnQgcmVhY2hlcyB6ZXJvIChzZWUgZGVzY3JpcHRpb24gb2YgdGhlJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MDk6CiteSSAqIGZvcmdldCBmdW5jdGlvbiku JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MTA6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo0MTE6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3 aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTLCB0aGlzIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo0MTI6CiteSSAqIHRyZWF0ZWQgYXMgYSBwZXJtYW5lbnQgZmFpbHVyZSB3aXRo IGVycm9yIGNvZGUgRUlOVkFMLCBpLmUuIGFsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI3NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NDEzOgorXkkgKiBmdXR1cmUgYm1hcCByZXF1ZXN0cyB3aWxsIGZhaWwgd2l0aCBFSU5WQUwg d2l0aG91dCBiZWluZyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI3NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDE0OgorXkkgKiBz ZW5kIHRvIHRoZSBmaWxlc3lzdGVtIHByb2Nlc3MuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjc3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo0MTU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjc3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MTY6CiteSSAq ICpmbGFncyogbWF5IGJlIGBSRU5BTUVfRVhDSEFOR0VgIG9yIGBSRU5BTUVfTk9SRVBMQUNFYC4g SWYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzc5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQxNzoKK15JICogUkVOQU1FX05PUkVQ TEFDRSBpcyBzcGVjaWZpZWQsIHRoZSBmaWxlc3lzdGVtIG11c3Qgbm90JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo0MTg6CiteSSAqIG92ZXJ3cml0ZSAqbmV3bmFtZSogaWYgaXQgZXhp c3RzIGFuZCByZXR1cm4gYW4gZXJyb3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQx OToKK15JICogaW5zdGVhZC4gSWYgYFJFTkFNRV9FWENIQU5HRWAgaXMgc3BlY2lmaWVkLCB0aGUg ZmlsZXN5c3RlbSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3 ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDIwOgorXkkgKiBtdXN0 IGF0b21pY2FsbHkgZXhjaGFuZ2UgdGhlIHR3byBmaWxlcywgaS5lLiBib3RoIG11c3QkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzgzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQyMToKK15JICogZXhpc3QgYW5kIG5laXRoZXIgbWF5 IGJlIGRlbGV0ZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Mjc4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MjI6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MjM6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MjQ6CiteSSAqICAgZnVzZV9yZXBseV9lcnIk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzg3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQyNToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjQyNjoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3ODk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDI3OgorXkkgKiBAcGFyYW0gcGFyZW50IGlub2Rl IG51bWJlciBvZiB0aGUgb2xkIHBhcmVudCBkaXJlY3RvcnkkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjQyODoKK15JICogQHBhcmFtIG5hbWUgb2xkIG5hbWUkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjQyOToKK15JICogQHBhcmFtIG5ld3BhcmVudCBpbm9kZSBudW1iZXIg b2YgdGhlIG5ldyBwYXJlbnQgZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjc5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo0MzA6CiteSSAqIEBwYXJhbSBuZXduYW1lIG5ldyBuYW1lJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo0MzE6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI3OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDMy OgorXkl2b2lkICgqcmVuYW1lKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgcGFyZW50LCBj b25zdCBjaGFyICpuYW1lLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDMzOgorXkle SV5JZnVzZV9pbm9fdCBuZXdwYXJlbnQsIGNvbnN0IGNoYXIgKm5ld25hbWUsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MzQ6CiteSV5JXkl1bnNpZ25lZCBpbnQgZmxhZ3MpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDM2OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjQzNzoKK15JICogQ3JlYXRlIGEgaGFyZCBsaW5rJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgwMDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo0Mzg6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjgwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo0Mzk6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjgwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo0NDA6CiteSSAqICAgZnVzZV9yZXBseV9lbnRyeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NDQxOgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjgwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo0NDI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjgwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NDM6Cite SSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyODA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjQ0NDoKK15JICogQHBhcmFtIGlubyB0aGUgb2xkIGlub2RlIG51bWJlciQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NDQ1OgorXkkgKiBAcGFyYW0gbmV3cGFyZW50IGlub2RlIG51 bWJlciBvZiB0aGUgbmV3IHBhcmVudCBkaXJlY3RvcnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjQ0NjoKK15JICogQHBhcmFtIG5ld25hbWUgbmV3IG5hbWUgdG8gY3JlYXRlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgwOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NDc6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NDQ4OgorXkl2b2lkICgqbGluaykgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lu b190IGlubywgZnVzZV9pbm9fdCBuZXdwYXJlbnQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjgxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo0NDk6CiteSV5JICAgICAgY29uc3QgY2hhciAqbmV3bmFtZSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo0NTE6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI4MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NDUyOgorXkkgKiBPcGVuIGEgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NDUzOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDU0OgorXkkgKiBPcGVu IGZsYWdzIGFyZSBhdmFpbGFibGUgaW4gZmktPmZsYWdzLiBUaGUgZm9sbG93aW5nIHJ1bGVzJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NTU6CiteSSAqIGFwcGx5LiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NDU2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NDU3OgorXkkgKiAgLSBDcmVhdGlvbiAoT19DUkVBVCwgT19FWENMLCBPX05PQ1RUWSkg ZmxhZ3Mgd2lsbCBiZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI4MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDU4OgorXkkgKiAg ICBmaWx0ZXJlZCBvdXQgLyBoYW5kbGVkIGJ5IHRoZSBrZXJuZWwuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo0NTk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjgyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0 NjA6CiteSSAqICAtIEFjY2VzcyBtb2RlcyAoT19SRE9OTFksIE9fV1JPTkxZLCBPX1JEV1IpIHNo b3VsZCBiZSB1c2VkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjgyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NjE6CiteSSAqICAg IGJ5IHRoZSBmaWxlc3lzdGVtIHRvIGNoZWNrIGlmIHRoZSBvcGVyYXRpb24gaXMkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODI0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ2MjoKK15JICogICAgcGVybWl0dGVkLiAgSWYgdGhlIGBg LW8gZGVmYXVsdF9wZXJtaXNzaW9uc2BgIG1vdW50JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjgyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo0NjM6CiteSSAqICAgIG9wdGlvbiBpcyBnaXZlbiwgdGhpcyBjaGVjayBpcyBhbHJlYWR5 IGRvbmUgYnkgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjgyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NjQ6CiteSSAqICAg IGtlcm5lbCBiZWZvcmUgY2FsbGluZyBvcGVuKCkgYW5kIG1heSB0aHVzIGJlIG9taXR0ZWQgYnkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODI3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ2NToKK15JICogICAgdGhlIGZpbGVzeXN0 ZW0uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgyODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NjY6CiteSSAqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgyOTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo0Njc6CiteSSAqICAtIFdoZW4gd3JpdGViYWNrIGNhY2hpbmcg aXMgZW5hYmxlZCwgdGhlIGtlcm5lbCBtYXkgc2VuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NDY4OgorXkkgKiAgICByZWFkIHJlcXVlc3RzIGV2ZW4gZm9yIGZpbGVzIG9wZW5lZCB3 aXRoIE9fV1JPTkxZLiBUaGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyODMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ2OToKK15J ICogICAgZmlsZXN5c3RlbSBzaG91bGQgYmUgcHJlcGFyZWQgdG8gaGFuZGxlIHRoaXMuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgzMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NzA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo0NzE6CiteSSAqICAtIFdoZW4gd3JpdGViYWNrIGNhY2hpbmcgaXMgZGlzYWJs ZWQsIHRoZSBmaWxlc3lzdGVtIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjgzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NzI6 CiteSSAqICAgIGV4cGVjdGVkIHRvIHByb3Blcmx5IGhhbmRsZSB0aGUgT19BUFBFTkQgZmxhZyBh bmQgZW5zdXJlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgz NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NzM6CiteSSAqICAgIHRo YXQgZWFjaCB3cml0ZSBpcyBhcHBlbmRpbmcgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZS4kCgpFUlJP UjogdHJhaWxpbmcgd2hpdGVzcGFjZQojMjgzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo0NzQ6CiteSSAqICQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI4MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDc0 OgorXkkgKiAkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODM4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ3NjoKK15JICogICAgaGFu ZGxlIE9fQVBQRU5ELiBIb3dldmVyLCB1bmxlc3MgYWxsIGNoYW5nZXMgdG8gdGhlIGZpbGUkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODM5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ3NzoKK15JICogICAgY29tZSB0aHJvdWdoIHRo ZSBrZXJuZWwgdGhpcyB3aWxsIG5vdCB3b3JrIHJlbGlhYmx5LiBUaGUkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjQ3ODoKK15JICogICAgZmlsZXN5c3RlbSBzaG91bGQgdGh1cyBlaXRo ZXIgaWdub3JlIHRoZSBPX0FQUEVORCBmbGFnJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo0Nzk6CiteSSAqICAgIChhbmQgbGV0IHRoZSBrZXJuZWwgaGFuZGxlIGl0KSwgb3IgcmV0dXJu IGFuIGVycm9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0ODA6CiteSSAqICAgIChp bmRpY2F0aW5nIHRoYXQgcmVsaWFibHkgT19BUFBFTkQgaXMgbm90IGF2YWlsYWJsZSkuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0ODE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo0ODI6CiteSSAqIEZpbGVzeXN0ZW0gbWF5IHN0b3JlIGFuIGFyYml0cmFyeSBm aWxlIGhhbmRsZSAocG9pbnRlciwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyODQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ4MzoK K15JICogaW5kZXgsIGV0YykgaW4gZmktPmZoLCBhbmQgdXNlIHRoaXMgaW4gb3RoZXIgYWxsIG90 aGVyIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODQ2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ4NDoKK15JICogb3BlcmF0 aW9ucyAocmVhZCwgd3JpdGUsIGZsdXNoLCByZWxlYXNlLCBmc3luYykuJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo0ODU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo0ODY6CiteSSAqIEZpbGVzeXN0ZW0gbWF5IGFsc28gaW1wbGVtZW50IHN0YXRlbGVzcyBmaWxl IEkvTyBhbmQgbm90IHN0b3JlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjg0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0ODc6Cite SSAqIGFueXRoaW5nIGluIGZpLT5maC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyODUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ4 ODoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODUx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ4OToKK15JICogVGhlcmUg YXJlIGFsc28gc29tZSBmbGFncyAoZGlyZWN0X2lvLCBrZWVwX2NhY2hlKSB3aGljaCB0aGUkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODUyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ5MDoKK15JICogZmlsZXN5c3RlbSBtYXkgc2V0 IGluIGZpLCB0byBjaGFuZ2UgdGhlIHdheSB0aGUgZmlsZSBpcyBvcGVuZWQuJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg1MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo0OTE6CiteSSAqIFNlZSBmdXNlX2ZpbGVfaW5mbyBzdHJ1Y3R1 cmUgaW4gPGZ1c2VfY29tbW9uLmg+IGZvciBtb3JlIGRldGFpbHMuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo0OTI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjg1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0 OTM6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUg b2YgRU5PU1lTJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg1 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0OTQ6CiteSSAqIGFuZCBG VVNFX0NBUF9OT19PUEVOX1NVUFBPUlQgaXMgc2V0IGluJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjg1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo0OTU6CiteSSAqIGBmdXNlX2Nvbm5faW5mby5jYXBhYmxlYCwgdGhpcyBpcyB0cmVh dGVkIGFzIHN1Y2Nlc3MgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjg1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0OTY6Cite SSAqIGZ1dHVyZSBjYWxscyB0byBvcGVuIGFuZCByZWxlYXNlIHdpbGwgYWxzbyBzdWNjZWVkIHdp dGhvdXQgYmVpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy ODU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ5NzoKK15JICogc2Vu dCB0byB0aGUgZmlsZXN5c3RlbSBwcm9jZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI4NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NDk4OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI4NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDk5OgorXkkgKiBW YWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI4NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTAwOgorXkkgKiAg IGZ1c2VfcmVwbHlfb3BlbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI4NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTAxOgorXkkg KiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjg2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MDI6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg2NTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MDM6CiteSSAqIEBwYXJhbSByZXEg cmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyODY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUwNDoKK15JICog QHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo1MDU6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo1MDY6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NTA3OgorXkl2b2lkICgqb3BlbikgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODcwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUwODoKK15JXkkgICAgICBzdHJ1Y3QgZnVzZV9m aWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyODcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUxMDoKK15JLyoq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg3MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MTE6CiteSSAqIFJlYWQgZGF0YSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NzQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTEyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NTEzOgorXkkgKiBSZWFkIHNob3VsZCBzZW5kIGV4YWN0bHkgdGhlIG51bWJl ciBvZiBieXRlcyByZXF1ZXN0ZWQgZXhjZXB0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo1MTQ6CiteSSAqIG9uIEVPRiBvciBlcnJvciwgb3RoZXJ3aXNlIHRoZSByZXN0IG9mIHRoZSBk YXRhIHdpbGwgYmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy ODc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUxNToKK15JICogc3Vi c3RpdHV0ZWQgd2l0aCB6ZXJvZXMuICBBbiBleGNlcHRpb24gdG8gdGhpcyBpcyB3aGVuIHRoZSBm aWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg3ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MTY6CiteSSAqIGhhcyBiZWVuIG9w ZW5lZCBpbiAnZGlyZWN0X2lvJyBtb2RlLCBpbiB3aGljaCBjYXNlIHRoZSByZXR1cm4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODc5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUxNzoKK15JICogdmFsdWUgb2YgdGhlIHJlYWQgc3lz dGVtIGNhbGwgd2lsbCByZWZsZWN0IHRoZSByZXR1cm4gdmFsdWUgb2YkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjUxODoKK15JICogdGhpcyBvcGVyYXRpb24uJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo1MTk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo1MjA6CiteSSAqIGZpLT5maCB3aWxsIGNvbnRhaW4gdGhlIHZhbHVlIHNldCBieSB0aGUgb3Bl biBtZXRob2QsIG9yIHdpbGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyODgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUyMToKK15J ICogYmUgdW5kZWZpbmVkIGlmIHRoZSBvcGVuIG1ldGhvZCBkaWRuJ3Qgc2V0IGFueSB2YWx1ZS4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUyMjoKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjUyMzoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjUyNDoKK15JICogICBmdXNlX3JlcGx5X2J1ZiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NTI1OgorXkkgKiAgIGZ1c2VfcmVwbHlfaW92JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MjY6CiteSSAqICAgZnVzZV9yZXBseV9kYXRhJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1Mjc6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODkwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUyODoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjUyOToKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NTMwOgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1i ZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODkzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUzMToKK15JICogQHBhcmFtIHNpemUg bnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyODk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUz MjoKK15JICogQHBhcmFtIG9mZiBvZmZzZXQgdG8gcmVhZCBmcm9tJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo1MzM6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MzQ6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NTM1OgorXkl2b2lkICgqcmVhZCkgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lu b190IGlubywgc2l6ZV90IHNpemUsIG9mZl90IG9mZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjUzNjoKK15JXkkgICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTAwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUzODoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo1Mzk6CiteSSAqIFdyaXRlIGRhdGEkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjU0MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU0MToKK15J ICogV3JpdGUgc2hvdWxkIHJldHVybiBleGFjdGx5IHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVz dGVkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkwNDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NDI6CiteSSAqIGV4Y2VwdCBvbiBl cnJvci4gIEFuIGV4Y2VwdGlvbiB0byB0aGlzIGlzIHdoZW4gdGhlIGZpbGUgaGFzJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkwNTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NDM6CiteSSAqIGJlZW4gb3BlbmVkIGluICdkaXJlY3Rf aW8nIG1vZGUsIGluIHdoaWNoIGNhc2UgdGhlIHJldHVybiB2YWx1ZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NTQ0OgorXkkgKiBvZiB0aGUgd3JpdGUgc3lzdGVtIGNhbGwgd2lsbCBy ZWZsZWN0IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NTQ1OgorXkkgKiBvcGVyYXRpb24uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjkwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo1NDY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjkwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NDc6CiteSSAqIFVu bGVzcyBGVVNFX0NBUF9IQU5ETEVfS0lMTFBSSVYgaXMgZGlzYWJsZWQsIHRoaXMgbWV0aG9kIGlz JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NDg6CiteSSAqIGV4cGVjdGVkIHRvIHJl c2V0IHRoZSBzZXR1aWQgYW5kIHNldGdpZCBiaXRzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NTQ5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI5MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTUwOgorXkkg KiBmaS0+Zmggd2lsbCBjb250YWluIHRoZSB2YWx1ZSBzZXQgYnkgdGhlIG9wZW4gbWV0aG9kLCBv ciB3aWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NTE6CiteSSAqIGJlIHVuZGVm aW5lZCBpZiB0aGUgb3BlbiBtZXRob2QgZGlkbid0IHNldCBhbnkgdmFsdWUuJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NTI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjkxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo1NTM6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjkxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo1NTQ6CiteSSAqICAgZnVzZV9yZXBseV93cml0ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NTU1OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo1NTY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjkxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NTc6 CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjU1ODoKK15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NTk6CiteSSAqIEBwYXJhbSBidWYgZGF0YSB0byB3cml0ZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MjI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTYwOgorXkkgKiBAcGFyYW0gc2l6ZSBudW1i ZXIgb2YgYnl0ZXMgdG8gd3JpdGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyOTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU2MToK K15JICogQHBhcmFtIG9mZiBvZmZzZXQgdG8gd3JpdGUgdG8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjU2MjoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTI1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU2MzoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjkyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo1NjQ6CiteSXZvaWQgKCp3cml0ZSkgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190 IGlubywgY29uc3QgY2hhciAqYnVmLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI5Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTY1 OgorXkleSSAgICAgICBzaXplX3Qgc2l6ZSwgb2ZmX3Qgb2ZmLCBzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTI5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU2NzoKK15JLyoqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzMDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1Njg6CiteSSAqIEZsdXNoIG1ldGhvZCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MzE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTY5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NTcwOgorXkkgKiBUaGlzIGlzIGNhbGxlZCBvbiBlYWNoIGNsb3NlKCkgb2YgdGhl IG9wZW5lZCBmaWxlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI5MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTcxOgorXkkgKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MzQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTcyOgorXkkgKiBTaW5jZSBmaWxlIGRlc2Ny aXB0b3JzIGNhbiBiZSBkdXBsaWNhdGVkIChkdXAsIGR1cDIsIGZvcmspLCBmb3IkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU3MzoKK15JICogb25lIG9wZW4gY2FsbCB0aGVyZSBtYXkg YmUgbWFueSBmbHVzaCBjYWxscy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyOTM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU3NDoK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU3NToKK15JICogRmlsZXN5c3Rl bXMgc2hvdWxkbid0IGFzc3VtZSB0aGF0IGZsdXNoIHdpbGwgYWx3YXlzIGJlIGNhbGxlZCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Mzg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTc2OgorXkkgKiBhZnRlciBzb21lIHdyaXRlcywg b3IgdGhhdCBpZiB3aWxsIGJlIGNhbGxlZCBhdCBhbGwuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjkzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo1Nzc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjk0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1Nzg6Cite SSAqIGZpLT5maCB3aWxsIGNvbnRhaW4gdGhlIHZhbHVlIHNldCBieSB0aGUgb3BlbiBtZXRob2Qs IG9yIHdpbGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU3OToKK15JICogYmUgdW5k ZWZpbmVkIGlmIHRoZSBvcGVuIG1ldGhvZCBkaWRuJ3Qgc2V0IGFueSB2YWx1ZS4kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU4MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjU4MToKK15JICogTk9URTogdGhlIG5hbWUgb2YgdGhlIG1ldGhvZCBpcyBtaXNsZWFk aW5nLCBzaW5jZSAodW5saWtlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjk0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1ODI6Cite SSAqIGZzeW5jKSB0aGUgZmlsZXN5c3RlbSBpcyBub3QgZm9yY2VkIHRvIGZsdXNoIHBlbmRpbmcg d3JpdGVzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTgzOgorXkkgKiBPbmUgcmVh c29uIHRvIGZsdXNoIGRhdGEgaXMgaWYgdGhlIGZpbGVzeXN0ZW0gd2FudHMgdG8gcmV0dXJuJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1ODQ6CiteSSAqIHdyaXRlIGVycm9ycyBkdXJp bmcgY2xvc2UuICBIb3dldmVyLCBzdWNoIHVzZSBpcyBub24tcG9ydGFibGUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQ3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjU4NToKK15JICogYmVjYXVzZSBQT1NJWCBkb2VzIG5vdCByZXF1 aXJlIFtjbG9zZV0gdG8gd2FpdCBmb3IgZGVsYXllZCBJL08gdG8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjU4NjoKK15JICogY29tcGxldGUuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjk0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo1ODc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjk1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1ODg6Cite SSAqIElmIHRoZSBmaWxlc3lzdGVtIHN1cHBvcnRzIGZpbGUgbG9ja2luZyBvcGVyYXRpb25zIChz ZXRsaywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTUxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU4OToKK15JICogZ2V0bGspIGl0 IHNob3VsZCByZW1vdmUgYWxsIGxvY2tzIGJlbG9uZ2luZyB0byAnZmktPm93bmVyJy4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTUyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU5MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjU5MToKK15JICogSWYgdGhpcyByZXF1ZXN0IGlzIGFuc3dlcmVkIHdpdGggYW4g ZXJyb3IgY29kZSBvZiBFTk9TWVMsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjk1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1OTI6 CiteSSAqIHRoaXMgaXMgdHJlYXRlZCBhcyBzdWNjZXNzIGFuZCBmdXR1cmUgY2FsbHMgdG8gZmx1 c2goKSB3aWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1OTM6CiteSSAqIHN1Y2Nl ZWQgYXV0b21hdGljYWxseSB3aXRob3V0IGJlaW5nIHNlbmQgdG8gdGhlIGZpbGVzeXN0ZW0kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU5NDoKK15JICogcHJvY2Vzcy4kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU5NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjU5NjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjU5NzoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NTk4OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI5NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTk5Ogor XkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjk2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo2MDA6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NjAxOgorXkkgKiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjAyOgorXkkgKiQKCldBUk5JTkc6IGxpbmUg b3ZlciA4MCBjaGFyYWN0ZXJzCiMyOTY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjYwMzoKKyAgICAgICAgKiBbY2xvc2VdOiBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3Jn L29ubGluZXB1YnMvOTY5OTkxOTc5OS9mdW5jdGlvbnMvY2xvc2UuaHRtbAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2NTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo2MDM6CiteSSAqIFtjbG9zZV06IGh0dHA6Ly9wdWJzLm9wZW5ncm91 cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Z1bmN0aW9ucy9jbG9zZS5odG1sJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MDQ6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NjA1OgorXkl2b2lkICgqZmx1c2gpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9f dCBpbm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MDY6CiteSV5JICAgICAgIHN0 cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NjA4OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy OTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYwOToKK15JICogUmVs ZWFzZSBhbiBvcGVuIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYxMDoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTczOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYxMToKK15JICogUmVsZWFzZSBpcyBj YWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSByZWZlcmVuY2VzIHRvIGFuIG9wZW4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTc0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYxMjoKK15JICogZmlsZTogYWxsIGZpbGUgZGVzY3Jp cHRvcnMgYXJlIGNsb3NlZCBhbmQgYWxsIG1lbW9yeSBtYXBwaW5ncyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NjEzOgorXkkgKiBhcmUgdW5tYXBwZWQuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo2MTQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjk3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2 MTU6CiteSSAqIEZvciBldmVyeSBvcGVuIGNhbGwgdGhlcmUgd2lsbCBiZSBleGFjdGx5IG9uZSBy ZWxlYXNlIGNhbGwgKHVubGVzcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI5Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjE2Ogor XkkgKiB0aGUgZmlsZXN5c3RlbSBpcyBmb3JjZS11bm1vdW50ZWQpLiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NjE3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NjE4OgorXkkgKiBUaGUgZmlsZXN5c3RlbSBtYXkgcmVwbHkgd2l0aCBhbiBlcnJvciwgYnV0IGVy cm9yIHZhbHVlcyBhcmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyOTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYxOToKK15JICog bm90IHJldHVybmVkIHRvIGNsb3NlKCkgb3IgbXVubWFwKCkgd2hpY2ggdHJpZ2dlcmVkIHRoZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjIwOgorXkkgKiByZWxlYXNlLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjIxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NjIyOgorXkkgKiBmaS0+Zmggd2lsbCBjb250YWluIHRoZSB2YWx1ZSBzZXQgYnkg dGhlIG9wZW4gbWV0aG9kLCBvciB3aWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjk4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2 MjM6CiteSSAqIGJlIHVuZGVmaW5lZCBpZiB0aGUgb3BlbiBtZXRob2QgZGlkbid0IHNldCBhbnkg dmFsdWUuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk4Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MjQ6CiteSSAqIGZpLT5mbGFn cyB3aWxsIGNvbnRhaW4gdGhlIHNhbWUgZmxhZ3MgYXMgZm9yIG9wZW4uJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk4NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo2MjU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjk4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo2MjY6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjk4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo2Mjc6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyOTkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjYyODoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyOTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYyOToKK15JICog QHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NjMwOgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjYzMToKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTk0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYzMjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo2MzM6CiteSXZvaWQgKCpyZWxlYXNlKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2Vf aW5vX3QgaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5 OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjM0OgorXkleSV5JIHN0 cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NjM2OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy OTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYzNzoKK15JICogU3lu Y2hyb25pemUgZmlsZSBjb250ZW50cyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjM4 OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjM5OgorXkkgKiBJZiB0aGUg ZGF0YXN5bmMgcGFyYW1ldGVyIGlzIG5vbi16ZXJvLCB0aGVuIG9ubHkgdGhlIHVzZXIgZGF0YSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjQwOgorXkkgKiBzaG91bGQgYmUgZmx1c2hl ZCwgbm90IHRoZSBtZXRhIGRhdGEuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzAwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NDE6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAwNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NDI6CiteSSAqIElmIHRoaXMg cmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjQzOgorXkkgKiB0aGlzIGlzIHRyZWF0ZWQgYXMgc3Vj Y2VzcyBhbmQgZnV0dXJlIGNhbGxzIHRvIGZzeW5jKCkgd2lsbCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NjQ0OgorXkkgKiBzdWNjZWVkIGF1dG9tYXRpY2FsbHkgd2l0aG91dCBiZWlu ZyBzZW5kIHRvIHRoZSBmaWxlc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzAwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2 NDU6CiteSSAqIHByb2Nlc3MuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzAwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NDY6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAwOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NDc6CiteSSAqIFZhbGlkIHJlcGxp ZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAxMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NDg6CiteSSAqICAgZnVzZV9yZXBs eV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDExOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY0OToKK15JICokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDEyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY1MDoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRs ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjUxOgorXkkgKiBAcGFyYW0gaW5vIHRo ZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMDE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY1MjoKK15JICog QHBhcmFtIGRhdGFzeW5jIGZsYWcgaW5kaWNhdGluZyBpZiBvbmx5IGRhdGEgc2hvdWxkIGJlIGZs dXNoZWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDE1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY1MzoKK15JICogQHBhcmFtIGZp IGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY1NDoKK15J ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAxNzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NTU6CiteSXZvaWQgKCpmc3luYykg KGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywgaW50IGRhdGFzeW5jLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMTg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NjU2OgorXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDIw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY1ODoKK15JLyoqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAyMTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NTk6CiteSSAqIE9wZW4gYSBkaXJlY3RvcnkkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDIyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY2MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjY2MToKK15JICogRmlsZXN5c3RlbSBtYXkgc3RvcmUgYW4gYXJiaXRyYXJ5 IGZpbGUgaGFuZGxlIChwb2ludGVyLCBpbmRleCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMDI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjY2MjoKK15JICogZXRjKSBpbiBmaS0+ZmgsIGFuZCB1c2UgdGhpcyBpbiBvdGhlciBhbGwg b3RoZXIgZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzAyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NjM6CiteSSAq IHN0cmVhbSBvcGVyYXRpb25zIChyZWFkZGlyLCByZWxlYXNlZGlyLCBmc3luY2RpcikuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAyNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NjQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo2NjU6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFu IGVycm9yIGNvZGUgb2YgRU5PU1lTIGFuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NjY2OgorXkkgKiBGVVNFX0NBUF9OT19PUEVORElSX1NVUFBPUlQgaXMgc2V0IGluIGBmdXNlX2Nv bm5faW5mby5jYXBhYmxlYCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY2NzoKK15J ICogdGhpcyBpcyB0cmVhdGVkIGFzIHN1Y2Nlc3MgYW5kIGZ1dHVyZSBjYWxscyB0byBvcGVuZGly IGFuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMzA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjY4OgorXkkgKiByZWxlYXNlZGly IHdpbGwgYWxzbyBzdWNjZWVkIHdpdGhvdXQgYmVpbmcgc2VudCB0byB0aGUgZmlsZXN5c3RlbSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMzE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjY5OgorXkkgKiBwcm9jZXNzLiBJbiBhZGRp dGlvbiwgdGhlIGtlcm5lbCB3aWxsIGNhY2hlIHJlYWRkaXIgcmVzdWx0cyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NjcwOgorXkkgKiBhcyBpZiBvcGVuZGlyIHJldHVybmVkIEZPUEVO X0tFRVBfQ0FDSEUgfCBGT1BFTl9DQUNIRV9ESVIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzAzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo2NzE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzAzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NzI6CiteSSAq IFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzAzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NzM6CiteSSAq ICAgZnVzZV9yZXBseV9vcGVuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzAzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NzQ6Cite SSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMDM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY3NToK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDM4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY3NjoKK15JICogQHBhcmFtIHJl cSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMwMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Njc3OgorXkkg KiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjY3ODoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjY3OToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzA0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo2ODA6CiteSXZvaWQgKCpvcGVuZGlyKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5v LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNDM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjgxOgorXkleSV5JIHN0cnVjdCBmdXNl X2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMwNDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjgzOgorXkkv KiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQ2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY4NDoKK15JICogUmVhZCBkaXJlY3Rv cnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQ3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY4NToKK15JICokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQ4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjY4NjoKK15JICogU2VuZCBhIGJ1ZmZlciBmaWxsZWQgdXNpbmcg ZnVzZV9hZGRfZGlyZW50cnkoKSwgd2l0aCBzaXplIG5vdCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6Njg3OgorXkkgKiBleGNlZWRpbmcgdGhlIHJlcXVlc3RlZCBzaXplLiAgU2VuZCBh biBlbXB0eSBidWZmZXIgb24gZW5kIG9mJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzA1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2 ODg6CiteSSAqIHN0cmVhbS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY4OToKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDUyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY5MDoKK15JICogZmktPmZoIHdpbGwg Y29udGFpbiB0aGUgdmFsdWUgc2V0IGJ5IHRoZSBvcGVuZGlyIG1ldGhvZCwgb3IkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDUzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY5MToKK15JICogd2lsbCBiZSB1bmRlZmluZWQgaWYgdGhl IG9wZW5kaXIgbWV0aG9kIGRpZG4ndCBzZXQgYW55IHZhbHVlLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NjkyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Njkz OgorXkkgKiBSZXR1cm5pbmcgYSBkaXJlY3RvcnkgZW50cnkgZnJvbSByZWFkZGlyKCkgZG9lcyBu b3QgYWZmZWN0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA1 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2OTQ6CiteSSAqIGl0cyBs b29rdXAgY291bnQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzA1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2OTU6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA1OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2OTc6CiteSSAqIHZhbHVlcyB0aGF0IHdhcyBw cmV2aW91c2x5IHJldHVybmVkIGJ5IHJlYWRkaXIoKSBmb3IgdGhlIHNhbWUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDYwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjY5ODoKK15JICogZGlyZWN0b3J5IGhhbmRsZS4gSW4gdGhpcyBj YXNlLCByZWFkZGlyKCkgc2hvdWxkIHNraXAgb3ZlciBlbnRyaWVzJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo2OTk6CiteSSAqIGNvbWluZyBiZWZvcmUgdGhlIHBvc2l0aW9uIGRlZmlu ZWQgYnkgdGhlIG9mZl90IHZhbHVlLiBJZiBlbnRyaWVzJAoKV0FSTklORzogbGluZSBvdmVyIDgw IGNoYXJhY3RlcnMKIzMwNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NzAwOgorICAgICAgICAqIGFyZSBhZGRlZCBvciByZW1vdmVkIHdoaWxlIHRoZSBkaXJlY3Rvcnkg aGFuZGxlIGlzIG9wZW4sIHRoZXkgZmlsZXN5c3RlbQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzA2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo3MDA6CiteSSAqIGFyZSBhZGRlZCBvciByZW1vdmVkIHdoaWxlIHRoZSBkaXJlY3Rvcnkg aGFuZGxlIGlzIG9wZW4sIHRoZXkgZmlsZXN5c3RlbSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NzAxOgorXkkgKiBtYXkgc3RpbGwgaW5jbHVkZSB0aGUgZW50cmllcyB0aGF0IGhhdmUg YmVlbiByZW1vdmVkLCBhbmQgbWF5IG5vdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NzAyOgorXkkgKiByZXBvcnQgdGhlIGVudHJpZXMgdGhhdCBoYXZlIGJlZW4gY3JlYXRlZC4gSG93 ZXZlciwgYWRkaXRpb24gb3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcwMzoKK15J ICogcmVtb3ZhbCBvZiBlbnRyaWVzIG11c3QgbmV2ZXIgY2F1c2UgcmVhZGRpcigpIHRvIHNraXAg b3ZlciB1bnJlbGF0ZWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMDY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcwNDoKK15JICog ZW50cmllcyBvciB0byByZXBvcnQgdGhlbSBtb3JlIHRoYW4gb25jZS4gVGhpcyBtZWFucyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzA1OgorXkkgKiB0aGF0IG9mZl90IGNhbiBub3Qg YmUgYSBzaW1wbGUgaW5kZXggdGhhdCBlbnVtZXJhdGVzIHRoZSBlbnRyaWVzJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA2ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MDY6CiteSSAqIHRoYXQgaGF2ZSBiZWVuIHJldHVybmVkIGJ1 dCBtdXN0IGNvbnRhaW4gc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NzA3OgorXkkgKiB1bmlxdWVseSBkZXRlcm1pbmUgdGhlIG5leHQgZGly ZWN0b3J5IGVudHJ5IHRvIHJldHVybiBldmVuIHdoZW4gdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo3MDg6CiteSSAqIHNldCBvZiBlbnRyaWVzIGlzIGNoYW5naW5nLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNzE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzA5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NzEwOgorXkkgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgaGF2ZSB0byByZXBvcnQg dGhlICcuJyBhbmQgJy4uJyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMwNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzExOgorXkkg KiBlbnRyaWVzLCBidXQgaXMgYWxsb3dlZCB0byBkbyBzby4gTm90ZSB0aGF0LCBpZiByZWFkZGly IGRvZXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDc0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcxMjoKK15JICogbm90IHJldHVy biAnLicgb3IgJy4uJywgdGhleSB3aWxsIG5vdCBiZSBpbXBsaWNpdGx5IHJldHVybmVkLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNzU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzEzOgorXkkgKiBhbmQgdGhpcyBiZWhhdmlvciBp cyBvYnNlcnZhYmxlIGJ5IHRoZSBjYWxsZXIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzA3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo3MTQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzA3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MTU6CiteSSAqIFZh bGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzA3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MTY6CiteSSAqICAg ZnVzZV9yZXBseV9idWYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMDc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcxNzoKK15JICog ICBmdXNlX3JlcGx5X2RhdGEkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcxODoKK15J ICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMwODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzE5Ogor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzIwOgorXkkgKiBAcGFyYW0gcmVx IHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzA4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MjE6CiteSSAq IEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMwODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NzIyOgorXkkgKiBAcGFyYW0gc2l6ZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0byBzZW5k JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA4NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MjM6CiteSSAqIEBwYXJhbSBvZmYgb2Zm c2V0IHRvIGNvbnRpbnVlIHJlYWRpbmcgdGhlIGRpcmVjdG9yeSBzdHJlYW0kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjcyNDoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcyNToKK15JICovJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA4ODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo3MjY6CiteSXZvaWQgKCpyZWFkZGlyKSAoZnVzZV9yZXFfdCByZXEs IGZ1c2VfaW5vX3QgaW5vLCBzaXplX3Qgc2l6ZSwgb2ZmX3Qgb2ZmLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NzI3OgorXkleSV5JIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwOTE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzI5OgorXkkvKiokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjczMDoKK15JICogUmVsZWFzZSBhbiBvcGVuIGRpcmVjdG9yeSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwOTM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzMxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NzMyOgorXkkgKiBGb3IgZXZlcnkgb3BlbmRpciBjYWxsIHRoZXJlIHdpbGwg YmUgZXhhY3RseSBvbmUgcmVsZWFzZWRpciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NzMzOgorXkkgKiBjYWxsICh1bmxlc3MgdGhlIGZpbGVzeXN0ZW0gaXMgZm9yY2UtdW5tb3VudGVk KS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDk2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjczNDoKK15JICokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDk3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjczNToKK15JICogZmktPmZoIHdpbGwgY29udGFpbiB0aGUgdmFs dWUgc2V0IGJ5IHRoZSBvcGVuZGlyIG1ldGhvZCwgb3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMDk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjczNjoKK15JICogd2lsbCBiZSB1bmRlZmluZWQgaWYgdGhlIG9wZW5kaXIgbWV0aG9k IGRpZG4ndCBzZXQgYW55IHZhbHVlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzM3 OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMDA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzM4OgorXkkgKiBWYWxpZCBy ZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMDE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzM5OgorXkkgKiAgIGZ1c2Vf cmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEw MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NDA6CiteSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEwMzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NDE6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBo YW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTA0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc0MjoKK15JICogQHBhcmFtIGlu byB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzEwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NDM6Cite SSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzEwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo3NDQ6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMxMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzQ1OgorXkl2 b2lkICgqcmVsZWFzZWRpcikgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTA4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc0NjoKK15JXkleSSAgICBzdHJ1Y3QgZnVzZV9maWxl X2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MTEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc0ODoKK15JLyoqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NDk6CiteSSAqIFN5bmNocm9uaXplIGRpcmVj dG9yeSBjb250ZW50cyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxMTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzUwOgorXkkgKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMTM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzUxOgorXkkgKiBJZiB0aGUgZGF0YXN5bmMg cGFyYW1ldGVyIGlzIG5vbi16ZXJvLCB0aGVuIG9ubHkgdGhlIGRpcmVjdG9yeSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NzUyOgorXkkgKiBjb250ZW50cyBzaG91bGQgYmUgZmx1c2hl ZCwgbm90IHRoZSBtZXRhIGRhdGEuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzExNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NTM6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExNjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NTQ6CiteSSAqIGZpLT5maCB3 aWxsIGNvbnRhaW4gdGhlIHZhbHVlIHNldCBieSB0aGUgb3BlbmRpciBtZXRob2QsIG9yJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExNzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NTU6CiteSSAqIHdpbGwgYmUgdW5kZWZpbmVkIGlm IHRoZSBvcGVuZGlyIG1ldGhvZCBkaWRuJ3Qgc2V0IGFueSB2YWx1ZS4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjc1NjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMTE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojc1NzoKK15JICogSWYgdGhpcyByZXF1ZXN0IGlzIGFuc3dlcmVkIHdpdGggYW4gZXJyb3IgY29k ZSBvZiBFTk9TWVMsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzEyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NTg6CiteSSAqIHRo aXMgaXMgdHJlYXRlZCBhcyBzdWNjZXNzIGFuZCBmdXR1cmUgY2FsbHMgdG8gZnN5bmNkaXIoKSB3 aWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEyMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NTk6CiteSSAqIHN1Y2NlZWQgYXV0 b21hdGljYWxseSB3aXRob3V0IGJlaW5nIHNlbmQgdG8gdGhlIGZpbGVzeXN0ZW0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTIyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc2MDoKK15JICogcHJvY2Vzcy4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjc2MToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojc2MjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojc2MzoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NzY0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzY1OgorXkkgKiBA cGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzEyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3 NjY6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NzY3OgorXkkgKiBAcGFyYW0gZGF0YXN5bmMgZmxhZyBpbmRpY2F0aW5nIGlm IG9ubHkgZGF0YSBzaG91bGQgYmUgZmx1c2hlZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NzY4OgorXkkgKiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NzY5OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojc3MDoKK15Jdm9pZCAoKmZzeW5jZGlyKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5v LCBpbnQgZGF0YXN5bmMsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzEzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NzE6CiteSV5J XkkgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NzczOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMTM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc3NDoKK15J ICogR2V0IGZpbGUgc3lzdGVtIHN0YXRpc3RpY3MkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjc3NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMTM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc3NjoKK15JICog VmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMTM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc3NzoKK15JICog ICBmdXNlX3JlcGx5X3N0YXRmcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMxNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Nzc4Ogor XkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzE0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3Nzk6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE0Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3ODA6CiteSSAqIEBwYXJhbSBy ZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMTQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc4MToKK15J ICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyLCB6ZXJvIG1lYW5zICJ1bmRlZmluZWQiJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE0NDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3ODI6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NzgzOgorXkl2b2lkICgqc3RhdGZzKSAoZnVzZV9yZXFfdCByZXEsIGZ1 c2VfaW5vX3QgaW5vKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMTQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc4NToKK15JLyoq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE0ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3ODY6CiteSSAqIFNldCBhbiBleHRlbmRl ZCBhdHRyaWJ1dGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MTQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc4NzoKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTUwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc4ODoKK15JICogSWYgdGhpcyByZXF1ZXN0IGlz IGFuc3dlcmVkIHdpdGggYW4gZXJyb3IgY29kZSBvZiBFTk9TWVMsIHRoaXMgaXMkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTUxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc4OToKK15JICogdHJlYXRlZCBhcyBhIHBlcm1hbmVudCBm YWlsdXJlIHdpdGggZXJyb3IgY29kZSBFT1BOT1RTVVBQLCBpLmUuIGFsbCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NzkwOgorXkkgKiBmdXR1cmUgc2V0eGF0dHIoKSByZXF1ZXN0cyB3 aWxsIGZhaWwgd2l0aCBFT1BOT1RTVVBQIHdpdGhvdXQgYmVpbmckCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjc5MToKK15JICogc2VuZCB0byB0aGUgZmlsZXN5c3RlbSBwcm9jZXNzLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNTQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzkyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NzkzOgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6Nzk0OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE1NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo3OTU6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6Nzk2OgorXkl2b2lkICgqc2V0eGF0dHIpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBp bm8sIGNvbnN0IGNoYXIgKm5hbWUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzE1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3OTc6 CiteSV5JXkkgIGNvbnN0IGNoYXIgKnZhbHVlLCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTYxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc5OToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo4MDA6CiteSSAqIEdldCBhbiBleHRlbmRlZCBhdHRyaWJ1dGUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTYzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgwMToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjgwMjoKK15JICogSWYgc2l6ZSBpcyB6ZXJvLCB0aGUgc2l6ZSBvZiB0aGUgdmFs dWUgc2hvdWxkIGJlIHNlbnQgd2l0aCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMxNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODAz OgorXkkgKiBmdXNlX3JlcGx5X3hhdHRyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMxNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 ODA0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMx Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODA1OgorXkkgKiBJZiB0 aGUgc2l6ZSBpcyBub24temVybywgYW5kIHRoZSB2YWx1ZSBmaXRzIGluIHRoZSBidWZmZXIsIHRo ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNjg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODA2OgorXkkgKiB2YWx1ZSBzaG91bGQg YmUgc2VudCB3aXRoIGZ1c2VfcmVwbHlfYnVmLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6ODA3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODA4OgorXkkgKiBJ ZiB0aGUgc2l6ZSBpcyB0b28gc21hbGwgZm9yIHRoZSB2YWx1ZSwgdGhlIEVSQU5HRSBlcnJvciBz aG91bGQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTcxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgwOToKK15JICogYmUgc2VudC4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTcyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgxMDoKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjgxMToKK15JICogSWYgdGhpcyByZXF1ZXN0IGlzIGFuc3dlcmVkIHdp dGggYW4gZXJyb3IgY29kZSBvZiBFTk9TWVMsIHRoaXMgaXMkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjgxMjoKK15JICogdHJlYXRlZCBhcyBhIHBlcm1hbmVudCBmYWlsdXJlIHdpdGgg ZXJyb3IgY29kZSBFT1BOT1RTVVBQLCBpLmUuIGFsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6ODEzOgorXkkgKiBmdXR1cmUgZ2V0eGF0dHIoKSByZXF1ZXN0cyB3aWxsIGZhaWwgd2l0 aCBFT1BOT1RTVVBQIHdpdGhvdXQgYmVpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMTc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjgxNDoKK15JICogc2VuZCB0byB0aGUgZmlsZXN5c3RlbSBwcm9jZXNzLiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6ODE1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6ODE2OgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6ODE3OgorXkkgKiAgIGZ1c2VfcmVwbHlfYnVmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzE4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo4MTg6CiteSSAqICAgZnVzZV9yZXBseV9kYXRhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzE4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo4MTk6CiteSSAqICAgZnVzZV9yZXBseV94YXR0ciQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6ODIwOgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo4MjE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzE4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4 MjI6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjgyMzoKK15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE4NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MjQ6CiteSSAqIEBwYXJhbSBuYW1lIG9mIHRoZSBleHRl bmRlZCBhdHRyaWJ1dGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgyNToKK15JICog QHBhcmFtIHNpemUgbWF4aW11bSBzaXplIG9mIHRoZSB2YWx1ZSB0byBzZW5kJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE4ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MjY6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6ODI3OgorXkl2b2lkICgqZ2V0eGF0dHIpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9f dCBpbm8sIGNvbnN0IGNoYXIgKm5hbWUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzE5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4 Mjg6CiteSV5JXkkgIHNpemVfdCBzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjgzMDoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzE5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MzE6CiteSSAqIExp c3QgZXh0ZW5kZWQgYXR0cmlidXRlIG5hbWVzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzE5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo4MzI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzE5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MzM6CiteSSAqIElm IHNpemUgaXMgemVybywgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGF0dHJpYnV0ZSBsaXN0IHNob3Vs ZCBiZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxOTY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODM0OgorXkkgKiBzZW50IHdpdGgg ZnVzZV9yZXBseV94YXR0ci4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgzNToKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTk4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgzNjoKK15JICogSWYgdGhlIHNpemUg aXMgbm9uLXplcm8sIGFuZCB0aGUgbnVsbCBjaGFyYWN0ZXIgc2VwYXJhdGVkJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE5OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo4Mzc6CiteSSAqIGF0dHJpYnV0ZSBsaXN0IGZpdHMgaW4gdGhl IGJ1ZmZlciwgdGhlIGxpc3Qgc2hvdWxkIGJlIHNlbnQgd2l0aCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6ODM4OgorXkkgKiBmdXNlX3JlcGx5X2J1Zi4kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjgzOToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMjAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg0 MDoKK15JICogSWYgdGhlIHNpemUgaXMgdG9vIHNtYWxsIGZvciB0aGUgbGlzdCwgdGhlIEVSQU5H RSBlcnJvciBzaG91bGQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMjAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg0MToKK15JICog YmUgc2VudC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjA0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg0MjoKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjA1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg0MzoKK15JICogSWYgdGhpcyByZXF1ZXN0IGlzIGFu c3dlcmVkIHdpdGggYW4gZXJyb3IgY29kZSBvZiBFTk9TWVMsIHRoaXMgaXMkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjA2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjg0NDoKK15JICogdHJlYXRlZCBhcyBhIHBlcm1hbmVudCBmYWls dXJlIHdpdGggZXJyb3IgY29kZSBFT1BOT1RTVVBQLCBpLmUuIGFsbCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6ODQ1OgorXkkgKiBmdXR1cmUgbGlzdHhhdHRyKCkgcmVxdWVzdHMgd2ls bCBmYWlsIHdpdGggRU9QTk9UU1VQUCB3aXRob3V0IGJlaW5nJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo4NDY6CiteSSAqIHNlbmQgdG8gdGhlIGZpbGVzeXN0ZW0gcHJvY2Vzcy4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjA5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg0NzoKK15JICokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjg0ODoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjg0OToKK15JICogICBmdXNlX3JlcGx5X2J1ZiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6ODUwOgorXkkgKiAgIGZ1c2VfcmVwbHlfZGF0YSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6ODUxOgorXkkgKiAgIGZ1c2VfcmVwbHlfeGF0dHIkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjE0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg1MjoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODUzOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6ODU0OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIxNzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NTU6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJl ciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODU2OgorXkkgKiBAcGFyYW0gc2l6ZSBt YXhpbXVtIHNpemUgb2YgdGhlIGxpc3QgdG8gc2VuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6ODU3OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMjIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg1ODoKK15J dm9pZCAoKmxpc3R4YXR0cikgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywgc2l6ZV90 IHNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMjI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODYwOgorXkkvKiokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjIzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg2MToKK15JICogUmVtb3ZlIGFuIGV4dGVuZGVkIGF0 dHJpYnV0ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMjQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODYyOgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMjU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODYzOgorXkkgKiBJZiB0aGlzIHJlcXVlc3QgaXMgYW5z d2VyZWQgd2l0aCBhbiBlcnJvciBjb2RlIG9mIEVOT1NZUywgdGhpcyBpcyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6ODY0OgorXkkgKiB0cmVhdGVkIGFzIGEgcGVybWFuZW50IGZhaWx1 cmUgd2l0aCBlcnJvciBjb2RlIEVPUE5PVFNVUFAsIGkuZS4gYWxsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo4NjU6CiteSSAqIGZ1dHVyZSByZW1vdmV4YXR0cigpIHJlcXVlc3RzIHdp bGwgZmFpbCB3aXRoIEVPUE5PVFNVUFAgd2l0aG91dCBiZWluZyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6ODY2OgorXkkgKiBzZW5kIHRvIHRoZSBmaWxlc3lzdGVtIHByb2Nlc3MuJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIyOTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4Njc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo4Njg6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo4Njk6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjg3MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMjMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojg3MToKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6ODcyOgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjM1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg3MzoKK15JICogQHBhcmFtIG5hbWUgb2YgdGhlIGV4 dGVuZGVkIGF0dHJpYnV0ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMyMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODc0OgorXkkg Ki8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjM3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg3NToKK15Jdm9pZCAoKnJlbW92ZXhh dHRyKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCBjb25zdCBjaGFyICpuYW1lKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjM5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg3NzoKK15JLyoqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI0MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo4Nzg6CiteSSAqIENoZWNrIGZpbGUgYWNjZXNzIHBlcm1pc3Npb25z JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI0MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4Nzk6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI0MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo4ODA6CiteSSAqIFRoaXMgd2lsbCBiZSBjYWxsZWQgZm9yIHRoZSBh Y2Nlc3MoKSBhbmQgY2hkaXIoKSBzeXN0ZW0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMjQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojg4MToKK15JICogY2FsbHMuICBJZiB0aGUgJ2RlZmF1bHRfcGVybWlzc2lvbnMnIG1vdW50IG9w dGlvbiBpcyBnaXZlbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMjQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg4MjoKK15JICog dGhpcyBtZXRob2QgaXMgbm90IGNhbGxlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMjQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojg4MzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MjQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg4NDoKK15JICogVGhp cyBtZXRob2QgaXMgbm90IGNhbGxlZCB1bmRlciBMaW51eCBrZXJuZWwgdmVyc2lvbnMgMi40Lngk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjQ3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg4NToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjg4NjoKK15JICogSWYgdGhpcyByZXF1ZXN0IGlzIGFuc3dlcmVkIHdp dGggYW4gZXJyb3IgY29kZSBvZiBFTk9TWVMsIHRoaXMgaXMkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjg4NzoKK15JICogdHJlYXRlZCBhcyBhIHBlcm1hbmVudCBzdWNjZXNzLCBpLmUu IHRoaXMgYW5kIGFsbCBmdXR1cmUgYWNjZXNzKCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMjUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjg4ODoKK15JICogcmVxdWVzdHMgd2lsbCBzdWNjZWVkIHdpdGhvdXQgYmVpbmcgc2VuZCB0 byB0aGUgZmlsZXN5c3RlbSBwcm9jZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMyNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 ODg5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMy NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODkwOgorXkkgKiBWYWxp ZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMy NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODkxOgorXkkgKiAgIGZ1 c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzI1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4OTI6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI1NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4OTM6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVz dCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjU2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg5NDoKK15JICogQHBhcmFt IGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzI1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4OTU6 CiteSSAqIEBwYXJhbSBtYXNrIHJlcXVlc3RlZCBhY2Nlc3MgbW9kZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6ODk2OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojg5NzoKK15Jdm9pZCAoKmFjY2VzcykgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywg aW50IG1hc2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMy NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODk5OgorXkkvKiokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjYyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkwMDoKK15JICogQ3JlYXRlIGFuZCBvcGVuIGEg ZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNjM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTAxOgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNjQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6OTAyOgorXkkgKiBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlz dCwgZmlyc3QgY3JlYXRlIGl0IHdpdGggdGhlIHNwZWNpZmllZCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6OTAzOgorXkkgKiBtb2RlLCBhbmQgdGhlbiBvcGVuIGl0LiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNjY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6OTA0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6OTA1OgorXkkgKiBTZWUgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBvcGVuIGhhbmRsZXIg Zm9yIG1vcmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjY4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkwNjoKK15JICogaW5mb3Jt YXRpb24uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI2OTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MDc6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI3MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MDg6CiteSSAqIElmIHRoaXMgbWV0aG9kIGlzIG5vdCBp bXBsZW1lbnRlZCBvciB1bmRlciBMaW51eCBrZXJuZWwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMjcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjkwOToKK15JICogdmVyc2lvbnMgZWFybGllciB0aGFuIDIuNi4xNSwgdGhlIG1rbm9k KCkgYW5kIG9wZW4oKSBtZXRob2RzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzI3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MTA6 CiteSSAqIHdpbGwgYmUgY2FsbGVkIGluc3RlYWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzI3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo5MTE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzI3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MTI6CiteSSAq IElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lT LCB0aGUgaGFuZGxlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMyNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTEzOgorXkkgKiBp cyB0cmVhdGVkIGFzIG5vdCBpbXBsZW1lbnRlZCAoaS5lLiwgZm9yIHRoaXMgYW5kIGZ1dHVyZSBy ZXF1ZXN0cyB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz Mjc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkxNDoKK15JICogbWtu b2QoKSBhbmQgb3BlbigpIGhhbmRsZXJzIHdpbGwgYmUgY2FsbGVkIGluc3RlYWQpLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNzc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTE1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6OTE2OgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6OTE3OgorXkkgKiAgIGZ1c2VfcmVwbHlfY3JlYXRlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo5MTg6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjkxOToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMjgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjkyMDoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6OTIxOgorXkkgKiBAcGFyYW0gcGFyZW50IGlub2RlIG51bWJlciBvZiB0aGUg cGFyZW50IGRpcmVjdG9yeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMyODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTIyOgorXkkg KiBAcGFyYW0gbmFtZSB0byBjcmVhdGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMjg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjky MzoKK15JICogQHBhcmFtIG1vZGUgZmlsZSB0eXBlIGFuZCBtb2RlIHdpdGggd2hpY2ggdG8gY3Jl YXRlIHRoZSBuZXcgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMyODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTI0OgorXkkg KiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTI1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMjg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkyNjoKK15Jdm9p ZCAoKmNyZWF0ZSkgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IHBhcmVudCwgY29uc3QgY2hh ciAqbmFtZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjg5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkyNzoKK15JXkleSW1vZGVf dCBtb2RlLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjkyOToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzI5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MzA6 CiteSSAqIFRlc3QgZm9yIGEgUE9TSVggZmlsZSBsb2NrJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzI5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo5MzE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzI5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MzI6Cite SSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzI5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MzM6Cite SSAqICAgZnVzZV9yZXBseV9sb2NrJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzI5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MzQ6 CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMjk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkz NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjk4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkzNjoKK15JICogQHBhcmFt IHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMyOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTM3Ogor XkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMzAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjkzODoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzAxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjkzOToKK15JICogQHBhcmFtIGxvY2sgdGhlIHJlZ2lvbi90eXBl IHRvIHRlc3QkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzAy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk0MDoKK15JICovJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMwMzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NDE6CiteSXZvaWQgKCpnZXRsaykgKGZ1c2VfcmVx X3QgcmVxLCBmdXNlX2lub190IGlubywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMzA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk0 MjoKK15JXkkgICAgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSwgc3RydWN0IGZsb2NrICps b2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzA2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk0NDoKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMwNzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NDU6CiteSSAqIEFjcXVpcmUsIG1vZGlmeSBvciByZWxl YXNlIGEgUE9TSVggZmlsZSBsb2NrJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzMwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NDY6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMwOTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NDc6CiteSSAqIEZvciBQT1NJ WCB0aHJlYWRzIChOUFRMKSB0aGVyZSdzIGEgMS0xIHJlbGF0aW9uIGJldHdlZW4gcGlkIGFuZCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTQ4OgorXkkgKiBvd25lciwgYnV0IG90aGVy d2lzZSB0aGlzIGlzIG5vdCBhbHdheXMgdGhlIGNhc2UuICBGb3IgY2hlY2tpbmckCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzExOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk0OToKK15JICogbG9jayBvd25lcnNoaXAsICdmaS0+b3du ZXInIG11c3QgYmUgdXNlZC4gIFRoZSBsX3BpZCBmaWVsZCBpbiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6OTUwOgorXkkgKiAnc3RydWN0IGZsb2NrJyBzaG91bGQgb25seSBiZSB1c2Vk IHRvIGZpbGwgaW4gdGhpcyBmaWVsZCBpbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMzMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 OTUxOgorXkkgKiBnZXRsaygpLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMzMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTUyOgor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMTU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTUzOgorXkkgKiBOb3RlOiBpZiB0 aGUgbG9ja2luZyBtZXRob2RzIGFyZSBub3QgaW1wbGVtZW50ZWQsIHRoZSBrZXJuZWwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzE2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk1NDoKK15JICogd2lsbCBzdGlsbCBhbGxvdyBmaWxl IGxvY2tpbmcgdG8gd29yayBsb2NhbGx5LiAgSGVuY2UgdGhlc2UgYXJlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMxNzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo5NTU6CiteSSAqIG9ubHkgaW50ZXJlc3RpbmcgZm9yIG5ldHdvcmsg ZmlsZXN5c3RlbXMgYW5kIHNpbWlsYXIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzMxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5 NTY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMx OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NTc6CiteSSAqIFZhbGlk IHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMy MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NTg6CiteSSAqICAgZnVz ZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MzIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk1OToKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzIyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk2MDoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0 IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMjM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTYxOgorXkkgKiBAcGFyYW0g aW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMzI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk2MjoK K15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMzI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjk2MzoKK15JICogQHBhcmFtIGxvY2sgdGhlIHJlZ2lvbi90eXBlIHRvIHNldCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMjY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTY0OgorXkkgKiBAcGFyYW0gc2xlZXAgbG9ja2lu ZyBvcGVyYXRpb24gbWF5IHNsZWVwJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzMyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NjU6 CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMjg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTY2OgorXkl2b2lkICgqc2V0 bGspIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo5Njc6CiteSV5JICAgICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmksJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMzMDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5Njg6CiteSV5JICAgICAgIHN0cnVjdCBmbG9j ayAqbG9jaywgaW50IHNsZWVwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMzMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk3MDoK K15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMzMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NzE6CiteSSAqIE1hcCBibG9j ayBpbmRleCB3aXRoaW4gZmlsZSB0byBibG9jayBpbmRleCB3aXRoaW4gZGV2aWNlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMzNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NzI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzMzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo5NzM6CiteSSAqIE5vdGU6IFRoaXMgbWFrZXMgc2Vuc2Ugb25seSBmb3IgYmxvY2sg ZGV2aWNlIGJhY2tlZCBmaWxlc3lzdGVtcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMzMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 OTc0OgorXkkgKiBtb3VudGVkIHdpdGggdGhlICdibGtkZXYnIG9wdGlvbiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6OTc1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMzMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTc2OgorXkkgKiBJZiB0aGlzIHJlcXVlc3QgaXMgYW5zd2VyZWQgd2l0aCBhbiBlcnJvciBj b2RlIG9mIEVOT1NZUywgdGhpcyBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMzMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTc3 OgorXkkgKiB0cmVhdGVkIGFzIGEgcGVybWFuZW50IGZhaWx1cmUsIGkuZS4gYWxsIGZ1dHVyZSBi bWFwKCkgcmVxdWVzdHMgd2lsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMzNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTc4Ogor XkkgKiBmYWlsIHdpdGggdGhlIHNhbWUgZXJyb3IgY29kZSB3aXRob3V0IGJlaW5nIHNlbmQgdG8g dGhlIGZpbGVzeXN0ZW0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMzQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk3OToKK15JICog cHJvY2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzQy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk4MDoKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzQzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk4MToKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzQ0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk4MjoKK15JICogICBmdXNlX3JlcGx5X2JtYXAkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzQ1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk4MzoKK15JICogICBmdXNlX3JlcGx5X2VyciQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNDY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTg0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6OTg1OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM0ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5ODY6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2Rl IG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNDk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTg3OgorXkkgKiBAcGFyYW0g YmxvY2tzaXplIHVuaXQgb2YgYmxvY2sgaW5kZXgkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjk4ODoKK15JICogQHBhcmFtIGlkeCBibG9jayBpbmRleCB3aXRoaW4gZmlsZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNTE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTg5OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjk5MDoKK15Jdm9pZCAoKmJtYXApIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9f dCBpbm8sIHNpemVfdCBibG9ja3NpemUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzM1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5 OTE6CiteSV5JICAgICAgdWludDY0X3QgaWR4KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMzU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjk5MzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzM1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5OTQ6CiteSSAq IElvY3RsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM1Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5OTU6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM1ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5OTY6CiteSSAqIE5vdGU6IEZvciB1bnJlc3RyaWN0ZWQg aW9jdGxzIChub3QgYWxsb3dlZCBmb3IgRlVTRSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMzNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTk3OgorXkkgKiBzZXJ2ZXJzKSwgZGF0YSBpbiBhbmQgb3V0IGFyZWFzIGNhbiBiZSBkaXNj b3ZlcmVkIGJ5IGdpdmluZyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMzNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTk4OgorXkkg KiBpb3ZzIGFuZCBzZXR0aW5nIEZVU0VfSU9DVExfUkVUUlkgaW4gKmZsYWdzKi4gIEZvciQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNjE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTk5OgorXkkgKiByZXN0cmljdGVkIGlvY3Rscywg a2VybmVsIHByZXBhcmVzIGluL291dCBkYXRhIGFyZWEkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMzYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjEwMDA6CiteSSAqIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZW5jb2RlZCBp biBjbWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM2Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDAxOgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNjQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAwMjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzY1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMDM6CiteSSAqICAgZnVzZV9yZXBseV9pb2N0bF9y ZXRyeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNjY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAwNDoKK15JICogICBmdXNlX3Jl cGx5X2lvY3RsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM2 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDA1OgorXkkgKiAgIGZ1 c2VfcmVwbHlfaW9jdGxfaW92JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzM2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDA2Ogor XkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzM2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDA3 OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNzA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAwODoKK15JICogQHBhcmFt IHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMzNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAwOToK K15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzM3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxMDEwOgorXkkgKiBAcGFyYW0gY21kIGlvY3RsIGNvbW1hbmQkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzczOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjEwMTE6CiteSSAqIEBwYXJhbSBhcmcgaW9jdGwgYXJndW1lbnQk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzc0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMTI6CiteSSAqIEBwYXJhbSBmaSBmaWxl IGluZm9ybWF0aW9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzM3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDEzOgorXkkgKiBA cGFyYW0gZmxhZ3MgZm9yIEZVU0VfSU9DVExfKiBmbGFncyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTAxNDoKK15JICogQHBhcmFtIGluX2J1ZiBkYXRhIGZldGNoZWQgZnJvbSB0aGUg Y2FsbGVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM3Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDE1OgorXkkgKiBAcGFyYW0g aW5fYnVmc3ogbnVtYmVyIG9mIGZldGNoZWQgYnl0ZXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjEwMTY6CiteSSAqIEBwYXJhbSBvdXRfYnVmc3ogbWF4aW11bSBzaXplIG9mIG91dHB1 dCBkYXRhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM3OTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDE3OgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzODA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAxODoKK15JICogTm90ZSA6IHRoZSB1bnNpZ25lZCBs b25nIHJlcXVlc3Qgc3VibWl0dGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MTAxOToKK15JICogaXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM4MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDIwOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjEwMjE6CiteSXZvaWQgKCppb2N0bCkgKGZ1c2VfcmVxX3QgcmVxLCBmdXNl X2lub190IGlubywgdW5zaWduZWQgaW50IGNtZCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMzg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjEwMjI6CiteSV5JICAgICAgIHZvaWQgKmFyZywgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpm aSwgdW5zaWduZWQgZmxhZ3MsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzM4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDIzOgor XkleSSAgICAgICBjb25zdCB2b2lkICppbl9idWYsIHNpemVfdCBpbl9idWZzeiwgc2l6ZV90IG91 dF9idWZzeik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM4 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDI1OgorXkkvKiokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzg4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMjY6CiteSSAqIFBvbGwgZm9yIElPIHJlYWRp bmVzcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzODk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAyNzoKK15JICokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzkwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMjg6CiteSSAqIE5vdGU6IElmIHBoIGlzIG5vbi1OVUxM LCB0aGUgY2xpZW50IHNob3VsZCBub3RpZnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMzkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjEwMjk6CiteSSAqIHdoZW4gSU8gcmVhZGluZXNzIGV2ZW50cyBvY2N1ciBieSBjYWxsaW5nJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM5MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDMwOgorXkkgKiBmdXNlX2xvd2xldmVsX25v dGlmeV9wb2xsKCkgd2l0aCB0aGUgc3BlY2lmaWVkIHBoLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTAzMToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMzk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMzI6 CiteSSAqIFJlZ2FyZGxlc3Mgb2YgdGhlIG51bWJlciBvZiB0aW1lcyBwb2xsIHdpdGggYSBub24t TlVMTCBwaCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzOTU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAzMzoKK15JICogaXMgcmVj ZWl2ZWQsIHNpbmdsZSBub3RpZmljYXRpb24gaXMgZW5vdWdoIHRvIGNsZWFyIGFsbC4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzk2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMzQ6CiteSSAqIE5vdGlmeWluZyBtb3JlIHRpbWVz IGluY3VycyBvdmVyaGVhZCBidXQgZG9lc24ndCBoYXJtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzM5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxMDM1OgorXkkgKiBjb3JyZWN0bmVzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMzk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjEwMzY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzM5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDM3Ogor XkkgKiBUaGUgY2FsbGVlIGlzIHJlc3BvbnNpYmxlIGZvciBkZXN0cm95aW5nIHBoIHdpdGgkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDAwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMzg6CiteSSAqIGZ1c2VfcG9sbGhhbmRsZV9k ZXN0cm95KCkgd2hlbiBubyBsb25nZXIgaW4gdXNlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTAzOToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNDAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNDA6Cite SSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5P U1lTLCB0aGlzIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzQwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDQxOgorXkkgKiB0 cmVhdGVkIGFzIHN1Y2Nlc3MgKHdpdGggYSBrZXJuZWwtZGVmaW5lZCBkZWZhdWx0IHBvbGwtbWFz aykgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQwNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDQyOgorXkkgKiBmdXR1cmUg Y2FsbHMgdG8gcHVsbCgpIHdpbGwgc3VjY2VlZCB0aGUgc2FtZSB3YXkgd2l0aG91dCBiZWluZyBz ZW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQwNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDQzOgorXkkgKiB0byB0aGUgZmls ZXN5c3RlbSBwcm9jZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM0MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA0NDoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDA3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNDU6CiteSSAqIFZhbGlkIHJlcGxp ZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQwODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDQ2OgorXkkgKiAgIGZ1c2VfcmVw bHlfcG9sbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MDk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA0NzoKK15JICogICBmdXNl X3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0 MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA0ODoKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDExOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNDk6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVz dCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDEy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNTA6CiteSSAqIEBwYXJh bSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM0MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA1 MToKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjEwNTI6CiteSSAqIEBwYXJhbSBwaCBwb2xsIGhhbmRsZSB0byBiZSB1c2VkIGZv ciBub3RpZmljYXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNTM6CiteSSAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA1NDoKK15Jdm9pZCAoKnBvbGwpIChm dXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmks JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQxNzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDU1OgorXkleSSAgICAgIHN0cnVjdCBm dXNlX3BvbGxoYW5kbGUgKnBoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNDE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNTc6 CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MjA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA1ODoKK15JICogV3JpdGUg ZGF0YSBtYWRlIGF2YWlsYWJsZSBpbiBhIGJ1ZmZlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTA1OToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNDIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNjA6Cite SSAqIFRoaXMgaXMgYSBtb3JlIGdlbmVyaWMgdmVyc2lvbiBvZiB0aGUgLT53cml0ZSgpIG1ldGhv ZC4gIElmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQyMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDYxOgorXkkgKiBGVVNFX0NB UF9TUExJQ0VfUkVBRCBpcyBzZXQgaW4gZnVzZV9jb25uX2luZm8ud2FudCBhbmQgdGhlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQyNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDYyOgorXkkgKiBrZXJuZWwgc3VwcG9ydHMgc3Bs aWNpbmcgZnJvbSB0aGUgZnVzZSBkZXZpY2UsIHRoZW4gdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxMDYzOgorXkkgKiBkYXRhIHdpbGwgYmUgbWFkZSBhdmFpbGFibGUgaW4gcGlw ZSBmb3Igc3VwcG9ydGluZyB6ZXJvJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzQyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDY0 OgorXkkgKiBjb3B5IGRhdGEgdHJhbnNmZXIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzQyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMDY1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM0Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA2NjoKK15JICog YnVmLT5jb3VudCBpcyBndWFyYW50ZWVkIHRvIGJlIG9uZSAoYW5kIHRodXMgYnVmLT5pZHggaXMk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDI5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNjc6CiteSSAqIGFsd2F5cyB6ZXJvKS4g VGhlIHdyaXRlX2J1ZiBoYW5kbGVyIG11c3QgZW5zdXJlIHRoYXQkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjEwNjg6CiteSSAqIGJ1ZnYtPm9mZiBpcyBjb3JyZWN0bHkgdXBkYXRlZCAo cmVmbGVjdGluZyB0aGUgbnVtYmVyIG9mJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzQzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox MDY5OgorXkkgKiBieXRlcyByZWFkIGZyb20gYnVmdi0+YnVmWzBdKS4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEwNzA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzQzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMDcxOgorXkkgKiBVbmxlc3MgRlVTRV9DQVBfSEFORExFX0tJTExQUklWIGlzIGRpc2FibGVk LCB0aGlzIG1ldGhvZCBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM0MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA3MjoKK15J ICogZXhwZWN0ZWQgdG8gcmVzZXQgdGhlIHNldHVpZCBhbmQgc2V0Z2lkIGJpdHMuJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQzNTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDczOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTA3NDoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjEwNzU6CiteSSAqICAgZnVzZV9yZXBseV93cml0ZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MTA3NjoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTA3NzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjEwNzg6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEwNzk6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NDI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA4MDoKK15JICogQHBhcmFtIGJ1ZnYgYnVm ZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNDQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEw ODE6CiteSSAqIEBwYXJhbSBvZmYgb2Zmc2V0IHRvIHdyaXRlIHRvJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMDgyOgorXkkgKiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NDU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA4MzoKK15JICovJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMDg0OgorXkl2b2lkICgqd3JpdGVfYnVmKSAoZnVzZV9yZXFfdCByZXEs IGZ1c2VfaW5vX3QgaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM0NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA4NToKK15J XkleSSAgIHN0cnVjdCBmdXNlX2J1ZnZlYyAqYnVmdiwgb2ZmX3Qgb2ZmLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTA4NjoKK15JXkleSSAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAq ZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NTA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA4ODoKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ1MTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDg5OgorXkkgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Ig dGhlIHJldHJpZXZlIHJlcXVlc3QkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNDUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwOTA6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ1Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDkxOgorXkkgKiBWYWxpZCBy ZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NTQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA5MjoKK15JICpeSWZ1c2Vf cmVwbHlfbm9uZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0 NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA5MzoKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDU2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwOTQ6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVz dCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDU3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwOTU6CiteSSAqIEBwYXJh bSBjb29raWUgdXNlciBkYXRhIHN1cHBsaWVkIHRvIGZ1c2VfbG93bGV2ZWxfbm90aWZ5X3JldHJp ZXZlKCkkCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMzQ1ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDk2OgorICAgICAgICAqIEBwYXJhbSBpbm8g dGhlIGlub2RlIG51bWJlciBzdXBwbGllZCB0byBmdXNlX2xvd2xldmVsX25vdGlmeV9yZXRyaWV2 ZSgpCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDU4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwOTY6CiteSSAqIEBwYXJhbSBpbm8g dGhlIGlub2RlIG51bWJlciBzdXBwbGllZCB0byBmdXNlX2xvd2xldmVsX25vdGlmeV9yZXRyaWV2 ZSgpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ1OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDk3OgorXkkgKiBAcGFyYW0gb2Zm c2V0IHRoZSBvZmZzZXQgc3VwcGxpZWQgdG8gZnVzZV9sb3dsZXZlbF9ub3RpZnlfcmV0cmlldmUo KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NjA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA5ODoKK15JICogQHBhcmFtIGJ1ZnYg dGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSByZXR1cm5lZCBkYXRhJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMDk5OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzNDYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjExMDA6CiteSXZvaWQgKCpyZXRyaWV2ZV9yZXBseSkgKGZ1c2VfcmVxX3QgcmVxLCB2b2lkICpj b29raWUsIGZ1c2VfaW5vX3QgaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM0NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEw MToKK15JXkleSV5Jb2ZmX3Qgb2Zmc2V0LCBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1ZnYpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NjU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEwMzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMTA0OgorXkkgKiBGb3JnZXQgYWJvdXQgbXVsdGlwbGUgaW5vZGVzJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ2NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTA1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MTEwNjoKK15JICogU2VlIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JnZXQg ZnVuY3Rpb24gZm9yIG1vcmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNDY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMDc6Cite SSAqIGluZm9ybWF0aW9uLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM0NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEwODoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDcxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMDk6CiteSSAqIFZhbGlkIHJlcGxp ZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ3MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTEwOgorXkkgKiAgIGZ1c2VfcmVw bHlfbm9uZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NzM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTExMToKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDc0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMTI6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBo YW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDc1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMTM6CiteSSAqLyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NzY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTExNDoKK15Jdm9pZCAoKmZvcmdldF9tdWx0aSkgKGZ1 c2VfcmVxX3QgcmVxLCBzaXplX3QgY291bnQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzQ3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMTE1OgorXkleSV5JICAgICAgc3RydWN0IGZ1c2VfZm9yZ2V0X2RhdGEgKmZvcmdldHMpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0Nzk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTExNzoKK15JLyoqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ4MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDoxMTE4OgorXkkgKiBBY3F1aXJlLCBtb2RpZnkgb3IgcmVsZWFzZSBh IEJTRCBmaWxlIGxvY2skCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNDgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMTk6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ4MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTIwOgorXkkgKiBOb3RlOiBpZiB0aGUg bG9ja2luZyBtZXRob2RzIGFyZSBub3QgaW1wbGVtZW50ZWQsIHRoZSBrZXJuZWwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDgzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMjE6CiteSSAqIHdpbGwgc3RpbGwgYWxsb3cgZmlsZSBs b2NraW5nIHRvIHdvcmsgbG9jYWxseS4gIEhlbmNlIHRoZXNlIGFyZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MTEyMjoKK15JICogb25seSBpbnRlcmVzdGluZyBmb3IgbmV0d29yayBm aWxlc3lzdGVtcyBhbmQgc2ltaWxhci4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNDg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEx MjM6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ4 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTI0OgorXkkgKiBWYWxp ZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0 ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEyNToKK15JICogICBm dXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM0ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEyNjoKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDg5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMjc6CiteSSAqIEBwYXJhbSByZXEgcmVx dWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NDkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMjg6CiteSSAqIEBw YXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM0OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTEyOToKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjExMzA6CiteSSAqIEBwYXJhbSBvcCB0aGUgbG9ja2luZyBvcGVyYXRpb24s IHNlZSBmbG9jaygyKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM0OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEzMToKK15JICov JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ5NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTMyOgorXkl2b2lkICgqZmxvY2spIChm dXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzQ5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxMTMzOgorXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpLCBpbnQgb3Ap OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0OTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEzNToKK15JLyoqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ5ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTM2OgorXkkgKiBBbGxvY2F0ZSByZXF1ZXN0ZWQgc3BhY2Uu IElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBzdWNjZXNzIHRoZW4kCgpXQVJOSU5HOiBsaW5lIG92 ZXIgODAgY2hhcmFjdGVycwojMzQ5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxMTM3OgorICAgICAgICAqIHN1YnNlcXVlbnQgd3JpdGVzIHRvIHRoZSBzcGVjaWZpZWQg cmFuZ2Ugc2hhbGwgbm90IGZhaWwgZHVlIHRvIHRoZSBsYWNrCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjExMzc6CiteSSAqIHN1YnNlcXVlbnQgd3JpdGVzIHRvIHRoZSBzcGVjaWZpZWQg cmFuZ2Ugc2hhbGwgbm90IGZhaWwgZHVlIHRvIHRoZSBsYWNrJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxMTM4OgorXkkgKiBvZiBmcmVlIHNwYWNlIG9uIHRoZSBmaWxlIHN5c3RlbSBz dG9yYWdlIG1lZGlhLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEzOToKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTAyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNDA6CiteSSAqIElmIHRoaXMgcmVxdWVz dCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTLCB0aGlzIGlzJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUwMzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTQxOgorXkkgKiB0cmVhdGVkIGFzIGEgcGVybWFu ZW50IGZhaWx1cmUgd2l0aCBlcnJvciBjb2RlIEVPUE5PVFNVUFAsIGkuZS4gYWxsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUwNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTQyOgorXkkgKiBmdXR1cmUgZmFsbG9jYXRlKCkgcmVx dWVzdHMgd2lsbCBmYWlsIHdpdGggRU9QTk9UU1VQUCB3aXRob3V0IGJlaW5nJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUwNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTQzOgorXkkgKiBzZW5kIHRvIHRoZSBmaWxlc3lzdGVtIHBy b2Nlc3MuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUwNjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTQ0OgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MDc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE0NToKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTA4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNDY6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTA5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNDc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMTQ4OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUxMTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTQ5OgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9k ZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTEy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNTA6CiteSSAqIEBwYXJh bSBvZmZzZXQgc3RhcnRpbmcgcG9pbnQgZm9yIGFsbG9jYXRlZCByZWdpb24kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTEzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjExNTE6CiteSSAqIEBwYXJhbSBsZW5ndGggc2l6ZSBvZiBhbGxv Y2F0ZWQgcmVnaW9uJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzM1MTQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE1MjoKKyAgICAgICAgKiBAcGFy YW0gbW9kZSBkZXRlcm1pbmVzIHRoZSBvcGVyYXRpb24gdG8gYmUgcGVyZm9ybWVkIG9uIHRoZSBn aXZlbiByYW5nZSwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1 MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE1MjoKK15JICogQHBh cmFtIG1vZGUgZGV0ZXJtaW5lcyB0aGUgb3BlcmF0aW9uIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUg Z2l2ZW4gcmFuZ2UsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzUxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTUzOgorXkkgKiAg ICAgICAgICAgICBzZWUgZmFsbG9jYXRlKDIpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzUxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMTU0OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNTU6CiteSXZv aWQgKCpmYWxsb2NhdGUpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sIGludCBtb2Rl LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE1NjoKK15JXkkgICAgICAgb2ZmX3Qg b2Zmc2V0LCBvZmZfdCBsZW5ndGgsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MjA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE1ODoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxMTU5OgorXkkgKiBSZWFkIGRpcmVjdG9yeSB3aXRoIGF0dHJpYnV0ZXMkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTIyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNjA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMTYxOgorXkkgKiBTZW5kIGEgYnVmZmVyIGZpbGxlZCB1c2luZyBmdXNl X2FkZF9kaXJlbnRyeV9wbHVzKCksIHdpdGggc2l6ZSBub3QkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjExNjI6CiteSSAqIGV4Y2VlZGluZyB0aGUgcmVxdWVzdGVkIHNpemUuICBTZW5k IGFuIGVtcHR5IGJ1ZmZlciBvbiBlbmQgb2YkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzNTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjExNjM6CiteSSAqIHN0cmVhbS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNjQ6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUyNzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTY1OgorXkkgKiBmaS0+Zmgg d2lsbCBjb250YWluIHRoZSB2YWx1ZSBzZXQgYnkgdGhlIG9wZW5kaXIgbWV0aG9kLCBvciQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1Mjg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE2NjoKK15JICogd2lsbCBiZSB1bmRlZmluZWQg aWYgdGhlIG9wZW5kaXIgbWV0aG9kIGRpZG4ndCBzZXQgYW55IHZhbHVlLiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1Mjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTE2NzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNTMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjExNjg6CiteSSAqIEluIGNvbnRyYXN0IHRvIHJlYWRkaXIoKSAod2hpY2ggZG9lcyBub3Qg YWZmZWN0IHRoZSBsb29rdXAgY291bnRzKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzNTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjExNjk6CiteSSAqIHRoZSBsb29rdXAgY291bnQgb2YgZXZlcnkgZW50cnkgcmV0dXJuZWQgYnkg cmVhZGRpcnBsdXMoKSwgZXhjZXB0ICIuIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM1MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTE3MDoKK15JICogYW5kICIuLiIsIGlzIGluY3JlbWVudGVkIGJ5IG9uZS4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTMzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjExNzE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzUzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxMTcyOgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTE3MzoKK15JICogICBmdXNlX3JlcGx5X2J1ZiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTE3NDoKK15JICogICBmdXNlX3JlcGx5X2RhdGEkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjExNzU6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjExNzY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzUzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMTc3OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMTc4OgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTQxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNzk6CiteSSAqIEBwYXJhbSBzaXplIG1heGlt dW0gbnVtYmVyIG9mIGJ5dGVzIHRvIHNlbmQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzNTQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjExODA6CiteSSAqIEBwYXJhbSBvZmYgb2Zmc2V0IHRvIGNvbnRpbnVlIHJlYWRpbmcgdGhlIGRp cmVjdG9yeSBzdHJlYW0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNTQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExODE6CiteSSAq IEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzU0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMTgyOgorXkkgKi8kCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMzU0NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTgzOgorICAgICAgIHZvaWQg KCpyZWFkZGlycGx1cykgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywgc2l6ZV90IHNp emUsIG9mZl90IG9mZiwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE4MzoKK15Jdm9p ZCAoKnJlYWRkaXJwbHVzKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCBzaXplX3Qg c2l6ZSwgb2ZmX3Qgb2ZmLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM1NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE4NDoKK15J XkleSSBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNTQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjExODY6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM1NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE4NzoK K15JICogQ29weSBhIHJhbmdlIG9mIGRhdGEgZnJvbSBvbmUgZmlsZSB0byBhbm90aGVyJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU1MDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTg4OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MTE4OToKK15JICogUGVyZm9ybXMgYW4gb3B0aW1pemVkIGNvcHkgYmV0d2Vl biB0d28gZmlsZSBkZXNjcmlwdG9ycyB3aXRob3V0IHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTE5MDoKK15JICogYWRkaXRpb25hbCBjb3N0IG9mIHRyYW5zZmVycmluZyBkYXRh IHRocm91Z2ggdGhlIEZVU0Uga2VybmVsIG1vZHVsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTE5MToKK15JICogdG8gdXNlciBzcGFjZSAoZ2xpYmMpIGFuZCB0aGVuIGJhY2sgaW50 byB0aGUgRlVTRSBmaWxlc3lzdGVtIGFnYWluLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM1NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MTE5MjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNTU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExOTM6CiteSSAq IEluIGNhc2UgdGhpcyBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkLCBnbGliYyBmYWxscyBiYWNr IHRvIHJlYWRpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExOTQ6CiteSSAqIGRh dGEgZnJvbSB0aGUgc291cmNlIGFuZCB3cml0aW5nIHRvIHRoZSBkZXN0aW5hdGlvbi4gRWZmZWN0 aXZlbHkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTU3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExOTU6CiteSSAqIGRvaW5nIGFu IGluZWZmaWNpZW50IGNvcHkgb2YgdGhlIGRhdGEuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzU1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxMTk2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM1NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE5NzoKK15J ICogSWYgdGhpcyByZXF1ZXN0IGlzIGFuc3dlcmVkIHdpdGggYW4gZXJyb3IgY29kZSBvZiBFTk9T WVMsIHRoaXMgaXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExOTg6CiteSSAqIHRy ZWF0ZWQgYXMgYSBwZXJtYW5lbnQgZmFpbHVyZSB3aXRoIGVycm9yIGNvZGUgRU9QTk9UU1VQUCwg aS5lLiBhbGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTYx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExOTk6CiteSSAqIGZ1dHVy ZSBjb3B5X2ZpbGVfcmFuZ2UoKSByZXF1ZXN0cyB3aWxsIGZhaWwgd2l0aCBFT1BOT1RTVVBQIHdp dGhvdXQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTYyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMDA6CiteSSAqIGJlaW5nIHNl bmQgdG8gdGhlIGZpbGVzeXN0ZW0gcHJvY2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNTYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjEyMDE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzU2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjAyOgorXkkg KiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM1NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIwMzoKK15J ICogICBmdXNlX3JlcGx5X3dyaXRlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzU2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjA0 OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzU2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox MjA1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1 Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIwNjoKK15JICogQHBh cmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM1Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIw NzoKK15JICogQHBhcmFtIGlub19pbiB0aGUgaW5vZGUgbnVtYmVyIG9yIHRoZSBzb3VyY2UgZmls ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NzA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIwODoKK15JICogQHBhcmFtIG9mZl9p biBzdGFydGluZyBwb2ludCBmcm9tIHdlcmUgdGhlIGRhdGEgc2hvdWxkIGJlIHJlYWQkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTcxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMDk6CiteSSAqIEBwYXJhbSBmaV9pbiBmaWxlIGlu Zm9ybWF0aW9uIG9mIHRoZSBzb3VyY2UgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM1NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MTIxMDoKK15JICogQHBhcmFtIGlub19vdXQgdGhlIGlub2RlIG51bWJlciBvciB0aGUgZGVz dGluYXRpb24gZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1NzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIxMToKK15JICog QHBhcmFtIG9mZl9vdXQgc3RhcnRpbmcgcG9pbnQgd2hlcmUgdGhlIGRhdGEgc2hvdWxkIGJlIHdy aXR0ZW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTc0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMTI6CiteSSAqIEBwYXJhbSBm aV9vdXQgZmlsZSBpbmZvcm1hdGlvbiBvZiB0aGUgZGVzdGluYXRpb24gZmlsZSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NzU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIxMzoKK15JICogQHBhcmFtIGxlbiBtYXhpbXVtIHNpemUg b2YgdGhlIGRhdGEgdG8gY29weSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM1NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIxNDoK K15JICogQHBhcmFtIGZsYWdzIHBhc3NlZCBhbG9uZyB3aXRoIHRoZSBjb3B5X2ZpbGVfcmFuZ2Uo KSBzeXNjYWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU3 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjE1OgorXkkgKi8kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTc4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMTY6CiteSXZvaWQgKCpjb3B5X2ZpbGVfcmFu Z2UpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm9faW4sJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMjE3OgorXkleSV5JXkkgb2ZmX3Qgb2ZmX2luLCBzdHJ1Y3QgZnVzZV9m aWxlX2luZm8gKmZpX2luLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM1ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIxODoKK15J XkleSV5JIGZ1c2VfaW5vX3QgaW5vX291dCwgb2ZmX3Qgb2ZmX291dCwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEyMTk6CiteSV5JXkleSSBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZp X291dCwgc2l6ZV90IGxlbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMjA6Cite SV5JXkleSSBpbnQgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM1ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIyMjoK K15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU4NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjIzOgorXkkgKiBGaW5kIG5l eHQgZGF0YSBvciBob2xlIGFmdGVyIHRoZSBzcGVjaWZpZWQgb2Zmc2V0JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU4NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDoxMjI0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM1ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MTIyNToKK15JICogSWYgdGhpcyByZXF1ZXN0IGlzIGFuc3dlcmVkIHdpdGggYW4gZXJyb3Ig Y29kZSBvZiBFTk9TWVMsIHRoaXMgaXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNTg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEy MjY6CiteSSAqIHRyZWF0ZWQgYXMgYSBwZXJtYW5lbnQgZmFpbHVyZSwgaS5lLiBhbGwgZnV0dXJl IGxzZWVrKCkgcmVxdWVzdHMgd2lsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM1ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIy NzoKK15JICogZmFpbCB3aXRoIHRoZSBzYW1lIGVycm9yIGNvZGUgd2l0aG91dCBiZWluZyBzZW5k IHRvIHRoZSBmaWxlc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzU5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjI4Ogor XkkgKiBwcm9jZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIyOToKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTkyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMzA6CiteSSAqIFZhbGlkIHJlcGxpZXM6 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU5MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjMxOgorXkkgKiAgIGZ1c2VfcmVwbHlf bHNlZWskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTk0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMzI6CiteSSAqICAgZnVzZV9y ZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTk1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMzM6CiteSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU5NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjM0OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3Qg aGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU5Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjM1OgorXkkgKiBAcGFyYW0g aW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMzY6 CiteSSAqIEBwYXJhbSBvZmYgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaCBmcm9tJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU5OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjM3OgorXkkgKiBAcGFyYW0gd2hlbmNlIGVpdGhlciBTRUVL X0RBVEEgb3IgU0VFS19IT0xFJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzYwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjM4Ogor XkkgKiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM2MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTIzOToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzYwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjQwOgor Xkl2b2lkICgqbHNlZWspIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sIG9mZl90IG9m ZiwgaW50IHdoZW5jZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNjAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyNDE6CiteSV5J ICAgICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTMxMjoKK15JXkkgICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZp KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjg0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEzMjI6CisgKiBAcGFyYW0gYXR0cl90 aW1lb3V0Xkl2YWxpZGl0eSB0aW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgdGhlIGF0dHJpYnV0ZXMk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjg4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEzMjY6CiteSV5JICAgIGRvdWJsZSBhdHRy X3RpbWVvdXQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3 ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTQyNDoKK15JXkkgICAg ZW51bSBmdXNlX2J1Zl9jb3B5X2ZsYWdzIGZsYWdzKTskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50 cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMzg0OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNDg3OgorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxNDg4OgorICogRmlsbGluZyBhIGJ1ZmZlciBpbiByZWFkZGlyXkleSV5J XkkgICAgICAgKiQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9u IGEgc2VwYXJhdGUgbGluZQojMzg1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxNDg5OgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM4ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTUxOToK K15JXkleSSBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1Y3Qgc3RhdCAqc3RidWYsJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg4MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNTIwOgorXkleSV5JIG9mZl90IG9mZik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg5ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNTM2OgorXkleSV5JICAgICAgY29uc3QgY2hhciAq bmFtZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODk5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE1Mzc6CiteSV5JXkkgICAgICBj b25zdCBzdHJ1Y3QgZnVzZV9lbnRyeV9wYXJhbSAqZSwgb2ZmX3Qgb2ZmKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTE3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjE1NTU6CiteSV5JXkkgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlu X2lvdiwgc2l6ZV90IGluX2NvdW50LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM5MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTU1 NjoKK15JXkleSSAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqb3V0X2lvdiwgc2l6ZV90IG91dF9jb3Vu dCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzk0NTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNTgzOgorXkleSV5JIGludCBjb3Vu dCk7JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFy YXRlIGxpbmUKIzM5Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTYw NToKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICoKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5 Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTYwNjoKKyAqIE5vdGlm aWNhdGlvbl5JXkleSV5JXkleSSAgICAgICAqJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNl IGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMzOTY5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE2MDc6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxNjQyOgorXkleSV5JXkkgICAgIG9mZl90IG9mZiwgb2ZmX3QgbGVuKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MDMyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE2NzA6CiteSV5JXkleSSAgICAgY29uc3QgY2hh ciAqbmFtZSwgc2l6ZV90IG5hbWVsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQwNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTcwMToKK15JXkleSV5JZnVzZV9pbm9fdCBwYXJlbnQsIGZ1c2VfaW5vX3QgY2hpbGQsJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDA2NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNzAyOgorXkleSV5JXkljb25zdCBjaGFyICpuYW1l LCBzaXplX3QgbmFtZWxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDA5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNzMwOgor XkleSV5JICAgICAgIG9mZl90IG9mZnNldCwgc3RydWN0IGZ1c2VfYnVmdmVjICpidWZ2LCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwOTM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTczMToKK15JXkleSSAgICAgICBlbnVtIGZ1c2Vf YnVmX2NvcHlfZmxhZ3MgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQxMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTc2 MjoKK15JXkleSV5JICBzaXplX3Qgc2l6ZSwgb2ZmX3Qgb2Zmc2V0LCB2b2lkICpjb29raWUpOyQK CldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBs aW5lCiM0MTI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE3NjU6Cisv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAqCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTI4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE3NjY6CisgKiBVdGlsaXR5IGZ1 bmN0aW9uc15JXkleSV5JXkkgICAgICAgKiQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojNDEyOTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNzY3OgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTgyOToKK15JXkleSSAgICAgdm9pZCAqZGF0YSk7JAoKV0FSTklORzogQmxvY2sg Y29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzQyMDI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTg0MDoKKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojNDIw NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODQyOgorICogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K CldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBs aW5lCiM0MjIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4NjE6Cisv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAqCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNl cGFyYXRlIGxpbmUKIzQyMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTg2MzoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0MjI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4NjY6CiteSWlu dCBzaW5nbGV0aHJlYWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDIyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODY3OgorXklp bnQgZm9yZWdyb3VuZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0MjMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4Njg6CiteSWlu dCBkZWJ1ZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MjMx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4Njk6CiteSWludCBub2Rl ZmF1bHRfc3VidHlwZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0MjMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4NzA6CiteSWNo YXIgKm1vdW50cG9pbnQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDIzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODcxOgorXklp bnQgc2hvd192ZXJzaW9uOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQyMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTg3MjoKK15J aW50IHNob3dfaGVscDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0MjM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4NzM6CiteSWlu dCBjbG9uZV9mZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 MjM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4NzQ6CiteSXVuc2ln bmVkIGludCBtYXhfaWRsZV90aHJlYWRzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQyNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTg5NjoKK15JXkkgICAgICAgc3RydWN0IGZ1c2VfY21kbGluZV9vcHRzICpvcHRzKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Mjg5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE5Mjc6CiteSV5JXkleSSAgICAgIGNvbnN0IHN0cnVj dCBmdXNlX2xvd2xldmVsX29wcyAqb3AsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDI5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox OTI4OgorXkleSV5JXkkgICAgICBzaXplX3Qgb3Bfc2l6ZSwgdm9pZCAqdXNlcmRhdGEpOyQKCkVS Uk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiM0MzM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjE5NzI6CisgKiBAcGFyYW0gY29uZmlnIHNlc3Npb24gbG9vcCBjb25maWd1 cmF0aW9uICQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0MzQxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE5Nzk6CitpbnQgZnVzZV9zZXNzaW9uX2xv b3BfbXQoc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqc2UsIHN0cnVjdCBmdXNlX2xvb3BfY29uZmlnICpj b25maWcpOwoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNl cGFyYXRlIGxpbmUKIzQ0MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MjA0MToKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICoKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICov IG9uIGEgc2VwYXJhdGUgbGluZQojNDQwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoyMDQzOgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQ0MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjA3 MDoKK15JXkleSSAgICAgIGNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqYnVmKTskCgpXQVJOSU5HOiBh cmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAojNDQ0NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMDg1OgorI2lmZGVmIF9fY3BsdXNw bHVzCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiM0 NDU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9taXNjLmg6MjoKKy8qCisgIEZVU0U6IEZp bGVzeXN0ZW0gaW4gVXNlcnNwYWNlCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBz dWJzZXF1ZW50IGxpbmVzCiM0NDY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9taXNjLmg6 MTI6CisvKgorICBWZXJzaW9uZWQgc3ltYm9scyBjYW5ub3QgYmUgdXNlZCBpbiBzb21lIGNhc2Vz IGJlY2F1c2UgaXQKCldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3Vs ZCBiZSBhdm9pZGVkCiM0NDczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9taXNjLmg6MTY6 CisjaWYgKCFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9fQVBQTEVfXykpCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDg1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9taXNjLmg6Mjg6CiteSXB0aHJlYWRfbXV0ZXhhdHRyX3QgYXR0cjskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDg2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9taXNjLmg6Mjk6CiteSXB0aHJlYWRfbXV0ZXhhdHRyX2luaXQoJmF0 dHIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0ODc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX21pc2MuaDozMDoKK15JcHRocmVhZF9tdXRleGF0dHJf c2V0dHlwZSgmYXR0ciwgUFRIUkVBRF9NVVRFWF9BREFQVElWRV9OUCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQ4ODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbWlzYy5oOjMxOgorXklwdGhyZWFkX211dGV4X2luaXQobXV0LCAmYXR0cik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQ4OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbWlzYy5oOjMyOgorXklwdGhyZWFkX211dGV4YXR0cl9kZXN0cm95KCZh dHRyKTskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVz CiM0NTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDoyOgorLyoKKyAgRlVTRTog RmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxl YWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM0NTM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuaDoxMjoKKy8qKiBAZmlsZQoKV0FSTklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmlj IGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzQ1Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5oOjE3OgorI2lmZGVmIF9fY3BsdXNwbHVzCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0NTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu aDo0NDoKKyAqICAtIC0xXkleSV5JICAgICAgYWN0aW9uIGlpKSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5oOjU1OgorICogMSkgIi14IiwgIi1mb28iLCAiLS1mb28iLCAiLS1mb28tYmFyIiwgZXRj Ll5JVGhlc2UgbWF0Y2ggb25seSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzQ2MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5oOjc4OgorXkkvKiog TWF0Y2hpbmcgdGVtcGxhdGUgYW5kIG9wdGlvbmFsIHBhcmFtZXRlciBmb3JtYXR0aW5nICovJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYwMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6Nzk6CiteSWNvbnN0IGNoYXIgKnRlbXBsOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MDM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5oOjgxOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0NjA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDo4 MjoKK15JICogT2Zmc2V0IG9mIHZhcmlhYmxlIHdpdGhpbiAnZGF0YScgcGFyYW1ldGVyIG9mIGZ1 c2Vfb3B0X3BhcnNlKCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0NjA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDo4MzoKK15JICogb3IgLTEk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjA2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDo4NDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0Lmg6ODU6CiteSXVuc2lnbmVkIGxvbmcgb2Zmc2V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29w dC5oOjg3OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0NjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDo4ODoKK15JICogVmFsdWUg dG8gc2V0IHRoZSB2YXJpYWJsZSB0bywgb3IgdG8gYmUgcGFzc2VkIGFzICdrZXknIHRvIHRoZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MTE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5oOjg5OgorXkkgKiBwcm9jZXNzaW5nIGZ1bmN0aW9uLl5J IElnbm9yZWQgaWYgdGVtcGxhdGUgaGFzIGEgZm9ybWF0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDYxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 Lmg6OTA6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ2MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5oOjkxOgorXklpbnQgdmFsdWU7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYxNzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6OTU6CisgKiBLZXkgb3B0aW9uLl5JSW4gY2FzZSBv ZiBhIG1hdGNoLCB0aGUgcHJvY2Vzc2luZyBmdW5jdGlvbiB3aWxsIGJlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYyMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0Lmg6MTAxOgorICogTGFzdCBvcHRpb24uXkkgQW4gYXJyYXkgb2YgJ3N0cnVjdCBm dXNlX29wdCcgbXVzdCBlbmQgd2l0aCBhIE5VTEwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0NjMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDox MTA6CiteSS8qKiBBcmd1bWVudCBjb3VudCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQ2MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5oOjEx MToKK15JaW50IGFyZ2M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDYzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6MTEzOgorXkkvKiogQXJn dW1lbnQgdmVjdG9yLiAgTlVMTCB0ZXJtaW5hdGVkICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDYzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 Lmg6MTE0OgorXkljaGFyICoqYXJndjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0NjM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDoxMTY6Cite SS8qKiBJcyAnYXJndicgYWxsb2NhdGVkPyAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQ2Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5oOjEx NzoKK15JaW50IGFsbG9jYXRlZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0NzAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDoxODE6CiteSV5J XkkgICAgICAgc3RydWN0IGZ1c2VfYXJncyAqb3V0YXJncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDcyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0Lmg6MjA0OgorXkleSSAgIGNvbnN0IHN0cnVjdCBmdXNlX29wdCBvcHRzW10sIGZ1c2Vfb3B0 X3Byb2NfdCBwcm9jKTskCgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBz aG91bGQgYmUgYXZvaWRlZAojNDc4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6 MjY3OgorI2lmZGVmIF9fY3BsdXNwbHVzCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0ODMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVy cy5oOjMxOgorXklpbnQgbW9kZSwgZGV2X3QgcmRldikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0ODMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfaGVscGVycy5oOjMzOgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQ4MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9o ZWxwZXJzLmg6MzU6CiteSWlmIChTX0lTUkVHKG1vZGUpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDgzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2hlbHBlcnMuaDozNjoKK15JXklyZXMgPSBvcGVuYXQoZGlyZmQsIHBhdGgsIE9fQ1JF QVQgfCBPX0VYQ0wgfCBPX1dST05MWSwgbW9kZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDgzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2hlbHBlcnMuaDozNzoKK15JXklpZiAocmVzID49IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNDgzNjogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDozNzoKKyAgICAgICAgICAgICAgIGlm IChyZXMgPj0gMCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQ4Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6Mzg6 CiteSV5JXklyZXMgPSBjbG9zZShyZXMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQ4Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxw ZXJzLmg6Mzk6CiteSX0gZWxzZSBpZiAoU19JU0RJUihtb2RlKSkgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9oZWxwZXJzLmg6NDA6CiteSV5JcmVzID0gbWtkaXJhdChkaXJmZCwgcGF0aCwg bW9kZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg0MDog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo0MToKK15JfSBlbHNl IGlmIChTX0lTTE5LKG1vZGUpICYmIGxpbmsgIT0gTlVMTCkgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9oZWxwZXJzLmg6NDI6CiteSV5JcmVzID0gc3ltbGlua2F0KGxpbmssIGRpcmZkLCBw YXRoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODQyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjQzOgorXkl9IGVsc2Ug aWYgKFNfSVNGSUZPKG1vZGUpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDg0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMu aDo0NDoKK15JXklyZXMgPSBta2ZpZm9hdChkaXJmZCwgcGF0aCwgbW9kZSk7JAoKV0FSTklORzog YXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzQ4NDQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NDU6CisjaWZkZWYgX19G cmVlQlNEX18KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NDU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NDY6CiteSX0gZWxz ZSBpZiAoU19JU1NPQ0sobW9kZSkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0ODQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVy cy5oOjQ3OgorXkleSXN0cnVjdCBzb2NrYWRkcl91biBzdTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfaGVscGVycy5oOjQ4OgorXkleSWludCBmZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0ODQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfaGVscGVycy5oOjUwOgorXkleSWlmIChzdHJsZW4ocGF0aCkgPj0gc2l6ZW9mKHN1LnN1bl9w YXRoKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NTE6CiteSV5JXkll cnJubyA9IEVOQU1FVE9PTE9ORzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0ODUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5o OjUyOgorXkleSV5JcmV0dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQ4NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJz Lmg6NTM6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ4NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NTQ6Cite SV5JZmQgPSBzb2NrZXQoQUZfVU5JWCwgU09DS19TVFJFQU0sIDApOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9oZWxwZXJzLmg6NTU6CiteSV5JaWYgKGZkID49IDApIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODU1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjU2OgorXkleSV5JLyokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfaGVscGVycy5oOjU3OgorXkleSV5JICogV2UgbXVzdCBiaW5kIHRoZSBzb2NrZXQg dG8gdGhlIHVuZGVybHlpbmcgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQ4NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJz Lmg6NTg6CiteSV5JXkkgKiBzeXN0ZW0gdG8gY3JlYXRlIHRoZSBzb2NrZXQgZmlsZSwgZXZlbiB0 aG91Z2gkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODU4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjU5OgorXkleSV5JICog d2UnbGwgbmV2ZXIgbGlzdGVuIG9uIHRoaXMgc29ja2V0LiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9oZWxwZXJzLmg6NjA6CiteSV5JXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0ODYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf aGVscGVycy5oOjYxOgorXkleSV5Jc3Uuc3VuX2ZhbWlseSA9IEFGX1VOSVg7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg2MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo2MjoKK15JXkleSXN0cm5jcHkoc3Uuc3VuX3BhdGgs IHBhdGgsIHNpemVvZihzdS5zdW5fcGF0aCkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQ4NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9o ZWxwZXJzLmg6NjM6CiteSV5JXklyZXMgPSBiaW5kYXQoZGlyZmQsIGZkLCAoc3RydWN0IHNvY2th ZGRyKikmc3UsJAoKRVJST1I6ICIoZm9vKikiIHNob3VsZCBiZSAiKGZvbyAqKSIKIzQ4NjI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NjM6CisgICAgICAgICAg ICAgICAgICAgICAgIHJlcyA9IGJpbmRhdChkaXJmZCwgZmQsIChzdHJ1Y3Qgc29ja2FkZHIqKSZz dSwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NjM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NjQ6CiteSV5JXkleSXNpemVv ZihzdSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NjQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NjU6CiteSV5JXklp ZiAocmVzID09IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojNDg2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2hlbHBlcnMuaDo2NToKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAwKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg2NTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo2NjoKK15JXkleSV5JY2xv c2UoZmQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NjY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6Njc6CiteSV5JfSBl bHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODY3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjY4OgorXkleSV5JcmVz ID0gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg2ODog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo2OToKK15JXkl9JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg3MDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo3MToKK15JfSBlbHNlIHskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODcxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjcyOgorXkleSXJlcyA9IG1rbm9kYXQoZGly ZmQsIHBhdGgsIG1vZGUsIHJkZXYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQ4NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJz Lmg6NzM6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 ODc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjc1OgorXkly ZXR1cm4gcmVzOyQKCnRvdGFsOiAyMjcxIGVycm9ycywgMTM5IHdhcm5pbmdzLCA0ODE0IGxpbmVz IGNoZWNrZWQKClBhdGNoIDEvMTA5IGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4g IElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0 byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgoyLzEwOSBD aGVja2luZyBjb21taXQgNjI0NGZjZDZjY2Q1ICh2aXJ0aW9mc2Q6IFB1bGwgaW4ga2VybmVsJ3Mg ZnVzZS5oKQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1B SU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiMxNTogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cgp0b3Rh bDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDg5OCBsaW5lcyBjaGVja2VkCgpQYXRjaCAyLzEwOSBo YXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3Jz CmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpD SEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgozLzEwOSBDaGVja2luZyBjb21taXQgZjRkNDJlMjQw ZDhlICh2aXJ0aW9mc2Q6IEFkZCBhdXhpbGlhcnkgLmMncykKV0FSTklORzogYWRkZWQsIG1vdmVk IG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMTQ6 IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24g c3Vic2VxdWVudCBsaW5lcwojMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyOgor LyoKKyAgRlVTRTogRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 MjQ6CiteSXNpemVfdCBpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjU6CiteSXNpemVfdCBzaXpl ID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI3OgorXklmb3IgKGkgPSAwOyBpIDwgYnVmdi0+ Y291bnQ7IGkrKykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjg6CiteSV5JaWYgKGJ1ZnYtPmJ1 ZltpXS5zaXplID09IFNJWkVfTUFYKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBm b3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv YnVmZmVyLmM6Mjg6CisgICAgICAgICAgICAgICBpZiAoYnVmdi0+YnVmW2ldLnNpemUgPT0gU0la RV9NQVgpClsuLi5dCisgICAgICAgICAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZl ci5jOjI5OgorXkleSV5Jc2l6ZSA9IFNJWkVfTUFYOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzA6 CiteSV5JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzE6CiteSV5JXklzaXplICs9IGJ1ZnYt PmJ1ZltpXS5zaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzI6CiteSX0kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2J1ZmZlci5jOjM0OgorXklyZXR1cm4gc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjM5Ogor XklyZXR1cm4gczEgPCBzMiA/IHMxIDogczI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo0MzoKK15J XkleSSAgICAgIGNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqc3JjLCBzaXplX3Qgc3JjX29mZiwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjQ0OgorXkleSV5JICAgICAgc2l6ZV90IGxlbikkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjQ2OgorXklzc2l6ZV90IHJlcyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIu Yzo0NzoKK15Jc2l6ZV90IGNvcGllZCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo0OToKK15J d2hpbGUgKGxlbikgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NTA6CiteSV5JaWYgKGRzdC0+Zmxh Z3MgJiBGVVNFX0JVRl9GRF9TRUVLKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo1MToKK15JXkle SXJlcyA9IHB3cml0ZShkc3QtPmZkLCAoY2hhciAqKXNyYy0+bWVtICsgc3JjX29mZiwgbGVuLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6NTI6CiteSV5JXkleSSAgICAgZHN0LT5wb3MgKyBkc3Rfb2Zm KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjUzOgorXkleSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9i dWZmZXIuYzo1NDoKK15JXkleSXJlcyA9IHdyaXRlKGRzdC0+ZmQsIChjaGFyICopc3JjLT5tZW0g KyBzcmNfb2ZmLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NTU6CiteSV5JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6NTY6CiteSV5JaWYgKHJlcyA9PSAtMSkgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6NTc6CiteSV5JXklpZiAoIWNvcGllZCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM3NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjU3OgorICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvcGllZCkK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NTg6CiteSV5JXkleSXJldHVybiAtZXJybm87JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzo1OToKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVy LmM6NjA6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NjE6CiteSV5JaWYgKHJlcyA9PSAw KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NjE6CisgICAgICAg ICAgICAgICBpZiAocmVzID09IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjYyOgorXkle SV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo2NDoKK15JXkljb3BpZWQgKz0gcmVzOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6NjU6CiteSV5JaWYgKCEoZHN0LT5mbGFncyAmIEZVU0VfQlVG X0ZEX1JFVFJZKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiM4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjY1 OgorICAgICAgICAgICAgICAgaWYgKCEoZHN0LT5mbGFncyAmIEZVU0VfQlVGX0ZEX1JFVFJZKSkK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NjY6CiteSV5JXklicmVhazskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2J1ZmZlci5jOjY4OgorXkleSXNyY19vZmYgKz0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 Njk6CiteSV5JZHN0X29mZiArPSByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo3MDoKK15JXkls ZW4gLT0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NzE6CiteSX0kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjczOgorXklyZXR1cm4gY29waWVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Nzc6Cite SV5JXkkgICAgIGNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqc3JjLCBzaXplX3Qgc3JjX29mZiwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjc4OgorXkleSV5JICAgICBzaXplX3QgbGVuKSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6ODA6CiteSXNzaXplX3QgcmVzID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5j OjgxOgorXklzaXplX3QgY29waWVkID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo4MzoKK15J d2hpbGUgKGxlbikgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjg0OgorXkleSWlmIChzcmMtPmZs YWdzICYgRlVTRV9CVUZfRkRfU0VFSykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjg1OgorXkle SV5JcmVzID0gcHJlYWQoc3JjLT5mZCwgKGNoYXIgKilkc3QtPm1lbSArIGRzdF9vZmYsIGxlbiwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo4NjoKK15JXkleSV5JICAgICBzcmMtPnBvcyArIHNyY19v ZmYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjg3OgorXkleSX0gZWxzZSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6ODg6CiteSV5JXklyZXMgPSByZWFkKHNyYy0+ZmQsIChjaGFyICopZHN0LT5t ZW0gKyBkc3Rfb2ZmLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjg5OgorXkleSX0kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzo5MDoKK15JXklpZiAocmVzID09IC0xKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6OTE6CiteSV5JXklpZiAoIWNvcGllZCkkCgpFUlJPUjogYnJhY2VzIHt9IGFy ZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMDk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo5MToKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFj b3BpZWQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo5MjoKK15JXkleSV5JcmV0dXJuIC1l cnJubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo5MzoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjk0OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo5NToKK15JXklp ZiAocmVzID09IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojMTEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 OTU6CisgICAgICAgICAgICAgICBpZiAocmVzID09IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZm ZXIuYzo5NjoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzExNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjk4OgorXkleSWNv cGllZCArPSByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6OTk6CiteSV5JaWYgKCEoc3JjLT5m bGFncyAmIEZVU0VfQlVGX0ZEX1JFVFJZKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzo5OToKKyAgICAgICAgICAgICAgIGlmICghKHNyYy0+ZmxhZ3MgJiBGVVNF X0JVRl9GRF9SRVRSWSkpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMDA6CiteSV5JXkli cmVhazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMDI6CiteSV5JZHN0X29mZiArPSByZXM7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6MTAzOgorXkleSXNyY19vZmYgKz0gcmVzOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjEwNDoKK15JXklsZW4gLT0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5j OjEwNToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEwNzoKK15JcmV0dXJuIGNvcGllZDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMTE6CiteSV5JXkleSSBjb25zdCBzdHJ1Y3QgZnVzZV9i dWYgKnNyYywgc2l6ZV90IHNyY19vZmYsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTEyOgorXkle SV5JXkkgc2l6ZV90IGxlbikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMTQ6CiteSWNoYXIgYnVm WzQwOTZdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjExNToKK15Jc3RydWN0IGZ1c2VfYnVmIHRt cCA9IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMTY6CiteSV5JLnNpemUgPSBzaXplb2YoYnVm KSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMTc6CiteSV5JLmZsYWdzID0gMCwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzoxMTg6CiteSX07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTE5OgorXklz c2l6ZV90IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMjA6CiteSXNpemVfdCBjb3BpZWQg PSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEyMjoKK15JdG1wLm1lbSA9IGJ1ZjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzoxMjQ6CiteSXdoaWxlIChsZW4pIHskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZm ZXIuYzoxMjU6CiteSV5Jc2l6ZV90IHRoaXNfbGVuID0gbWluX3NpemUodG1wLnNpemUsIGxlbik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTI2OgorXkleSXNpemVfdCByZWFkX2xlbjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzoxMjg6CiteSV5JcmVzID0gZnVzZV9idWZfcmVhZCgmdG1wLCAwLCBz cmMsIHNyY19vZmYsIHRoaXNfbGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMjk6CiteSV5J aWYgKHJlcyA8IDApIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMzA6CiteSV5JXklpZiAoIWNv cGllZCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMxNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMzA6Cisg ICAgICAgICAgICAgICAgICAgICAgIGlmICghY29waWVkKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6MTMxOgorXkleSV5JXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEz MjoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEzMzoKK15JXkl9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvYnVmZmVyLmM6MTM0OgorXkleSWlmIChyZXMgPT0gMCkkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMzQ6CisgICAgICAgICAgICAgICBpZiAocmVz ID09IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMzU6CiteSV5JXklicmVhazskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzoxMzc6CiteSV5JcmVhZF9sZW4gPSByZXM7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6MTM4OgorXkleSXJlcyA9IGZ1c2VfYnVmX3dyaXRlKGRzdCwgZHN0X29mZiwg JnRtcCwgMCwgcmVhZF9sZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEzOToKK15JXklpZiAo cmVzIDwgMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE0MDoKK15JXkleSWlmICghY29waWVk KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzE1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE0MDoKKyAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCFjb3BpZWQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIu YzoxNDE6CiteSV5JXkleSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTQyOgor XkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTQzOgorXkleSX0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzoxNDQ6CiteSV5JaWYgKHJlcyA9PSAwKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE2MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE0NDoKKyAgICAgICAgICAgICAgIGlmIChyZXMgPT0g MCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE0NToKK15JXkleSWJyZWFrOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjE0NzoKK15JXkljb3BpZWQgKz0gcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjE0OToKK15JXklpZiAocmVzIDwgdGhpc19sZW4pJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTY3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTQ5OgorICAgICAgICAgICAgICAgaWYgKHJlcyA8IHRo aXNfbGVuKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTUwOgorXkleSV5JYnJlYWs7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6MTUyOgorXkleSWRzdF9vZmYgKz0gcmVzOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjE1MzoKK15JXklzcmNfb2ZmICs9IHJlczskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZm ZXIuYzoxNTQ6CiteSV5JbGVuIC09IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNTU6Cite SX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNTc6CiteSXJldHVybiBjb3BpZWQ7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MTYyOgorXkleSV5JICAgICAgIGNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAq c3JjLCBzaXplX3Qgc3JjX29mZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNjM6CiteSV5JXkkg ICAgICAgc2l6ZV90IGxlbiwgZW51bSBmdXNlX2J1Zl9jb3B5X2ZsYWdzIGZsYWdzKSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjE2NToKK15JaW50IHNwbGljZV9mbGFncyA9IDA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6MTY2OgorXklvZmZfdCAqc3JjcG9zID0gTlVMTDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9i dWZmZXIuYzoxNjc6CiteSW9mZl90ICpkc3Rwb3MgPSBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZl ci5jOjE2ODoKK15Jb2ZmX3Qgc3JjcG9zX3ZhbDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNjk6 CiteSW9mZl90IGRzdHBvc192YWw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTcwOgorXklzc2l6 ZV90IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNzE6CiteSXNpemVfdCBjb3BpZWQgPSAw OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE3MzoKK15JaWYgKGZsYWdzICYgRlVTRV9CVUZfU1BM SUNFX01PVkUpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBv ZiB0aGlzIHN0YXRlbWVudAojMTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTcz OgorICAgICAgIGlmIChmbGFncyAmIEZVU0VfQlVGX1NQTElDRV9NT1ZFKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MTc0OgorXkleSXNwbGljZV9mbGFncyB8PSBTUExJQ0VfRl9NT1ZFOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2J1ZmZlci5jOjE3NToKK15JaWYgKGZsYWdzICYgRlVTRV9CVUZfU1BMSUNF X05PTkJMT0NLKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMg b2YgdGhpcyBzdGF0ZW1lbnQKIzE5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE3 NToKKyAgICAgICBpZiAoZmxhZ3MgJiBGVVNFX0JVRl9TUExJQ0VfTk9OQkxPQ0spClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzoxNzY6CiteSV5Jc3BsaWNlX2ZsYWdzIHw9IFNQTElDRV9GX05P TkJMT0NLOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE3ODoKK15JaWYgKHNyYy0+ZmxhZ3MgJiBG VVNFX0JVRl9GRF9TRUVLKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTc5OgorXkleSXNyY3Bv c192YWwgPSBzcmMtPnBvcyArIHNyY19vZmY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTgwOgor XkleSXNyY3BvcyA9ICZzcmNwb3NfdmFsOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE4MToKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE4MjoKK15JaWYgKGRzdC0+ZmxhZ3MgJiBGVVNFX0JV Rl9GRF9TRUVLKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTgzOgorXkleSWRzdHBvc192YWwg PSBkc3QtPnBvcyArIGRzdF9vZmY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTg0OgorXkleSWRz dHBvcyA9ICZkc3Rwb3NfdmFsOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE4NToKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjE4NzoKK15Jd2hpbGUgKGxlbikgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjE4ODoKK15JXklyZXMgPSBzcGxpY2Uoc3JjLT5mZCwgc3JjcG9zLCBkc3QtPmZkLCBk c3Rwb3MsIGxlbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxODk6CiteSV5JXkkgICAgIHNwbGlj ZV9mbGFncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTkwOgorXkleSWlmIChyZXMgPT0gLTEp IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxOTE6CiteSV5JXklpZiAoY29waWVkKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzIwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE5MToKKyAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGNvcGllZCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE5MjoKK15J XkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTk0OgorXkleSV5JaWYgKGVycm5v ICE9IEVJTlZBTCB8fCAoZmxhZ3MgJiBGVVNFX0JVRl9GT1JDRV9TUExJQ0UpKSQKCkVSUk9SOiBi cmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIx MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE5NDoKKyAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGVycm5vICE9IEVJTlZBTCB8fCAoZmxhZ3MgJiBGVVNFX0JVRl9GT1JDRV9TUExJ Q0UpKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTk1OgorXkleSV5JXklyZXR1cm4gLWVy cm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE5NzoKK15JXkleSS8qIE1heWJlIHNwbGljZSBp cyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIGNvbWJpbmF0aW9uICovJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6MTk4OgorXkleSV5JcmV0dXJuIGZ1c2VfYnVmX2ZkX3RvX2ZkKGRzdCwgZHN0X29mZiwg c3JjLCBzcmNfb2ZmLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE5OToKK15JXkleSV5JXkleSSBs ZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxODogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIwMDoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6MjAxOgorXkleSWlmIChyZXMgPT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMTk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzoyMDE6CisgICAgICAgICAgICAgICBpZiAocmVzID09IDApClsuLi5d CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMDI6CiteSV5JXklicmVhazskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9i dWZmZXIuYzoyMDQ6CiteSV5JY29waWVkICs9IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoy MDU6CiteSV5JaWYgKCEoc3JjLT5mbGFncyAmIEZVU0VfQlVGX0ZEX1JFVFJZKSAmJiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjIwNjoKK15JXkkgICAgIShkc3QtPmZsYWdzICYgRlVTRV9CVUZfRkRf UkVUUlkpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjA3OgorXkleSV5JYnJlYWs7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvYnVmZmVyLmM6MjA4OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMTA6 CiteSV5JbGVuIC09IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMTE6CiteSX0kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzoyMTM6CiteSXJldHVybiBjb3BpZWQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6MjE3OgorXkleSV5JICAgICAgIGNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqc3JjLCBzaXpl X3Qgc3JjX29mZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMTg6CiteSV5JXkkgICAgICAgc2l6 ZV90IGxlbiwgZW51bSBmdXNlX2J1Zl9jb3B5X2ZsYWdzIGZsYWdzKSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjIyMDoKK15JKHZvaWQpIGZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIyMjoK K15JcmV0dXJuIGZ1c2VfYnVmX2ZkX3RvX2ZkKGRzdCwgZHN0X29mZiwgc3JjLCBzcmNfb2ZmLCBs ZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIyODoKK15JXkleSV5JIGNvbnN0IHN0cnVjdCBm dXNlX2J1ZiAqc3JjLCBzaXplX3Qgc3JjX29mZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMjk6 CiteSV5JXkleSSBzaXplX3QgbGVuLCBlbnVtIGZ1c2VfYnVmX2NvcHlfZmxhZ3MgZmxhZ3MpJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6MjMxOgorXklpbnQgc3JjX2lzX2ZkID0gc3JjLT5mbGFncyAm IEZVU0VfQlVGX0lTX0ZEOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIzMjoKK15JaW50IGRzdF9p c19mZCA9IGRzdC0+ZmxhZ3MgJiBGVVNFX0JVRl9JU19GRDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIu YzoyMzQ6CiteSWlmICghc3JjX2lzX2ZkICYmICFkc3RfaXNfZmQpIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9i dWZmZXIuYzoyMzU6CiteSV5JY2hhciAqZHN0bWVtID0gKGNoYXIgKilkc3QtPm1lbSArIGRzdF9v ZmY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjM2OgorXkleSWNoYXIgKnNyY21lbSA9IChjaGFy ICopc3JjLT5tZW0gKyBzcmNfb2ZmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIzODoKK15JXklp ZiAoZHN0bWVtICE9IHNyY21lbSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIzOToKK15JXkle SWlmIChkc3RtZW0gKyBsZW4gPD0gc3JjbWVtIHx8IHNyY21lbSArIGxlbiA8PSBkc3RtZW0pJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMjU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjM5OgorICAgICAgICAg ICAgICAgICAgICAgICBpZiAoZHN0bWVtICsgbGVuIDw9IHNyY21lbSB8fCBzcmNtZW0gKyBsZW4g PD0gZHN0bWVtKQpbLi4uXQorICAgICAgICAgICAgICAgICAgICAgICBlbHNlClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzoyNDA6CiteSV5JXkleSW1lbWNweShkc3RtZW0sIHNyY21lbSwgbGVu KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNDE6CiteSV5JXkllbHNlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv YnVmZmVyLmM6MjQyOgorXkleSV5JXkltZW1tb3ZlKGRzdG1lbSwgc3JjbWVtLCBsZW4pOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjI0MzoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjQ1 OgorXkleSXJldHVybiBsZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjQ2OgorXkl9IGVsc2Ug aWYgKCFzcmNfaXNfZmQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNDc6CiteSV5JcmV0dXJu IGZ1c2VfYnVmX3dyaXRlKGRzdCwgZHN0X29mZiwgc3JjLCBzcmNfb2ZmLCBsZW4pOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjI0ODoKK15JfSBlbHNlIGlmICghZHN0X2lzX2ZkKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MjQ5OgorXkleSXJldHVybiBmdXNlX2J1Zl9yZWFkKGRzdCwgZHN0X29m Ziwgc3JjLCBzcmNfb2ZmLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI1MDoKK15JfSBl bHNlIGlmIChmbGFncyAmIEZVU0VfQlVGX05PX1NQTElDRSkgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZl ci5jOjI1MToKK15JXklyZXR1cm4gZnVzZV9idWZfZmRfdG9fZmQoZHN0LCBkc3Rfb2ZmLCBzcmMs IHNyY19vZmYsIGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjUyOgorXkl9IGVsc2UgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2J1ZmZlci5jOjI1MzoKK15JXklyZXR1cm4gZnVzZV9idWZfc3BsaWNlKGRz dCwgZHN0X29mZiwgc3JjLCBzcmNfb2ZmLCBsZW4sIGZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZm ZXIuYzoyNTQ6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNTk6CiteSWlmIChidWZ2LT5p ZHggPCBidWZ2LT5jb3VudCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZm ZXIuYzoyNTk6CisgICAgICAgaWYgKGJ1ZnYtPmlkeCA8IGJ1ZnYtPmNvdW50KQpbLi4uXQorICAg ICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI2MDoKK15JXklyZXR1cm4gJmJ1 ZnYtPmJ1ZltidWZ2LT5pZHhdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI2MToKK15JZWxzZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2J1ZmZlci5jOjI2MjoKK15JXklyZXR1cm4gTlVMTDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9idWZmZXIuYzoyNjc6CiteSWNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqYnVmID0gZnVzZV9idWZ2 ZWNfY3VycmVudChidWZ2KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNjk6CiteSWJ1ZnYtPm9m ZiArPSBsZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjcwOgorXklhc3NlcnQoYnVmdi0+b2Zm IDw9IGJ1Zi0+c2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjcxOgorXklpZiAoYnVmdi0+ b2ZmID09IGJ1Zi0+c2l6ZSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI3MjoKK15JXklhc3Nl cnQoYnVmdi0+aWR4IDwgYnVmdi0+Y291bnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI3MzoK K15JXklidWZ2LT5pZHgrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNzQ6CiteSV5JaWYgKGJ1 ZnYtPmlkeCA9PSBidWZ2LT5jb3VudCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9idWZmZXIuYzoyNzQ6CisgICAgICAgICAgICAgICBpZiAoYnVmdi0+aWR4ID09IGJ1ZnYtPmNv dW50KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjc1OgorXkleSV5JcmV0dXJuIDA7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjc2OgorXkleSWJ1ZnYtPm9mZiA9IDA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6Mjc3OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjc4OgorXklyZXR1 cm4gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyODI6CiteSV5JICAgICAgZW51bSBmdXNlX2J1 Zl9jb3B5X2ZsYWdzIGZsYWdzKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI4NDoKK15Jc2l6ZV90 IGNvcGllZCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjg2OgorXklpZiAoZHN0diA9PSBz cmN2KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzMwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI4NjoKKyAg ICAgICBpZiAoZHN0diA9PSBzcmN2KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjg3Ogor XkleSXJldHVybiBmdXNlX2J1Zl9zaXplKGRzdHYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI4 OToKK15JZm9yICg7OykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI5MDoKK15JXkljb25zdCBz dHJ1Y3QgZnVzZV9idWYgKnNyYyA9IGZ1c2VfYnVmdmVjX2N1cnJlbnQoc3Jjdik7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MjkxOgorXkleSWNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqZHN0ID0gZnVz ZV9idWZ2ZWNfY3VycmVudChkc3R2KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyOTI6CiteSV5J c2l6ZV90IHNyY19sZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjkzOgorXkleSXNpemVfdCBk c3RfbGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMjog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI5NDoKK15JXklzaXplX3QgbGVuOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMzogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjI5NToKK15JXklzc2l6ZV90IHJlczskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9i dWZmZXIuYzoyOTc6CiteSV5JaWYgKHNyYyA9PSBOVUxMIHx8IGRzdCA9PSBOVUxMKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzMxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI5NzoKKyAgICAgICAgICAgICAg IGlmIChzcmMgPT0gTlVMTCB8fCBkc3QgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZl ci5jOjI5ODoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMwMDoKK15JXklz cmNfbGVuID0gc3JjLT5zaXplIC0gc3Jjdi0+b2ZmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMw MToKK15JXklkc3RfbGVuID0gZHN0LT5zaXplIC0gZHN0di0+b2ZmOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjMwMjoKK15JXklsZW4gPSBtaW5fc2l6ZShzcmNfbGVuLCBkc3RfbGVuKTskCgpXQVJO SU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMzIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv YnVmZmVyLmM6MzA0OgorICAgICAgICAgICAgICAgcmVzID0gZnVzZV9idWZfY29weV9vbmUoZHN0 LCBkc3R2LT5vZmYsIHNyYywgc3Jjdi0+b2ZmLCBsZW4sIGZsYWdzKTsKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjMwNDoKK15JXklyZXMgPSBmdXNlX2J1Zl9jb3B5X29uZShkc3QsIGRzdHYtPm9mZiwg c3JjLCBzcmN2LT5vZmYsIGxlbiwgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMwNToK K15JXklpZiAocmVzIDwgMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMwNjoKK15JXkleSWlm ICghY29waWVkKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMg b2YgdGhpcyBzdGF0ZW1lbnQKIzMyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMw NjoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb3BpZWQpClsuLi5dCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9idWZmZXIuYzozMDc6CiteSV5JXkleSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVy LmM6MzA4OgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzA5OgorXkleSX0k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzozMTA6CiteSV5JY29waWVkICs9IHJlczskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzozMTI6CiteSV5JaWYgKCFmdXNlX2J1ZnZlY19hZHZhbmNlKHNyY3YsIHJl cykgfHwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzozMTM6CiteSV5JICAgICFmdXNlX2J1ZnZlY19h ZHZhbmNlKGRzdHYsIHJlcykpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzE0OgorXkleSV5JYnJl YWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzE2OgorXkleSWlmIChyZXMgPCBsZW4pJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMzM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzE2OgorICAgICAgICAgICAg ICAgaWYgKHJlcyA8IGxlbikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMxNzoKK15JXkle SWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNjog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMxODoKK15JfSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjMyMDoKK15JcmV0dXJuIGNvcGllZDskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMzNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvZy5jOjI6CisvKgorICBGVVNFOiBGaWxlc3lzdGVtIGluIFVzZXJzcGFjZQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzYyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb2cuYzoxNzoKK15JXklfX2F0dHJpYnV0ZV9fKCggdW51c2VkICkpIGVudW0gZnVz ZV9sb2dfbGV2ZWwgbGV2ZWwsJAoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYWZ0ZXIgdGhhdCBv cGVuIHBhcmVudGhlc2lzICcoJwojMzYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cu YzoxNzoKKyAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKCB1bnVzZWQgKSkgZW51bSBmdXNl X2xvZ19sZXZlbCBsZXZlbCwKCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGJlZm9yZSB0aGF0IGNs b3NlIHBhcmVudGhlc2lzICcpJwojMzYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cu YzoxNzoKKyAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKCB1bnVzZWQgKSkgZW51bSBmdXNl X2xvZ19sZXZlbCBsZXZlbCwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmM6MTg6CiteSV5JY29uc3Qg Y2hhciAqZm10LCB2YV9saXN0IGFwKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmM6MjA6CiteSXZm cHJpbnRmKHN0ZGVyciwgZm10LCBhcCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuYzoyNzoKK15J aWYgKCFmdW5jKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMg b2YgdGhpcyBzdGF0ZW1lbnQKIzM3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmM6 Mjc6CisgICAgICAgaWYgKCFmdW5jKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuYzoyODoK K15JXklmdW5jID0gZGVmYXVsdF9sb2dfZnVuYzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5jOjMw OgorXklsb2dfZnVuYyA9IGZ1bmM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuYzozNToKK15JdmFf bGlzdCBhcDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5jOjM3OgorXkl2YV9zdGFydChhcCwgZm10 KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5jOjM4OgorXklsb2dfZnVuYyhsZXZlbCwgZm10LCBh cCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuYzozOToKK15JdmFfZW5kKGFwKTskCgpXQVJOSU5H OiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMzOTM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI6CisvKgorICBGVVNFOiBGaWxlc3lzdGVtIGluIFVz ZXJzcGFjZQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDE0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMzoKK15Jdm9pZCAqZGF0YTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjI0OgorXkljb25zdCBzdHJ1Y3QgZnVzZV9vcHQgKm9wdDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI1OgorXklmdXNlX29wdF9wcm9jX3QgcHJvYzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjI2OgorXklpbnQgYXJnY3RyOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6Mjc6CiteSWludCBhcmdjOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjg6CiteSWNo YXIgKiphcmd2OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQy MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjk6CiteSXN0cnVjdCBmdXNlX2Fy Z3Mgb3V0YXJnczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMwOgorXkljaGFyICpvcHRzOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyMjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzE6CiteSWludCBub25vcHQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzozNjoKK15JaWYgKGFyZ3MpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM3 OgorXkleSWlmIChhcmdzLT5hcmd2ICYmIGFyZ3MtPmFsbG9jYXRlZCkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0LmM6Mzg6CiteSV5JXklpbnQgaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM5 OgorXkleSV5JZm9yIChpID0gMDsgaSA8IGFyZ3MtPmFyZ2M7IGkrKykkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0MzA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM5OgorICAgICAgICAgICAgICAgICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgYXJncy0+YXJnYzsgaSsrKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzo0MDoKK15JXkleSV5JZnJlZShhcmdzLT5hcmd2W2ldKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjQxOgorXkleSV5JZnJlZShhcmdzLT5hcmd2KTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjQyOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjQzOgorXkleSWFyZ3Mt PmFyZ2MgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQz NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDQ6CiteSV5JYXJncy0+YXJndiA9 IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDM2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0NToKK15JXklhcmdzLT5hbGxvY2F0ZWQg PSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzNzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDY6CiteSX0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjUxOgorXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBtZW1vcnkgYWxsb2Nh dGlvbiBmYWlsZWRcbiIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQ0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NTI6CiteSXJldHVybiAt MTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjU3OgorXkljaGFyICoqbmV3YXJndjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjU4OgorXkljaGFyICpuZXdhcmc7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzo2MDoKK15JYXNzZXJ0KCFhcmdzLT5hcmd2IHx8IGFyZ3MtPmFsbG9jYXRlZCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDUzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo2MjoKK15JbmV3YXJnID0gc3RyZHVwKGFyZyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzo2MzoKK15JaWYgKCFuZXdhcmcpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNDU0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo2MzoKKyAgICAgICBpZiAoIW5ld2FyZykKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NjQ6CiteSV5JcmV0dXJuIGFsbG9jX2ZhaWxlZCgp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1NzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NjY6CiteSW5ld2FyZ3YgPSByZWFsbG9jKGFyZ3Mt PmFyZ3YsIChhcmdzLT5hcmdjICsgMikgKiBzaXplb2YoY2hhciAqKSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzo2NzoKK15JaWYgKCFuZXdhcmd2KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu Yzo2ODoKK15JXklmcmVlKG5ld2FyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo2OToKK15J XklyZXR1cm4gYWxsb2NfZmFpbGVkKCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo3MDoKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NzI6CiteSWFyZ3MtPmFyZ3YgPSBuZXdhcmd2OyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2NDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NzM6CiteSWFyZ3MtPmFsbG9jYXRlZCA9IDE7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDY1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzo3NDoKK15JYXJncy0+YXJndlthcmdzLT5hcmdjKytdID0gbmV3 YXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NzU6CiteSWFyZ3MtPmFyZ3ZbYXJncy0+YXJn Y10gPSBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NzY6CiteSXJldHVybiAwOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6ODA6CiteSV5JXkleSSAgICAgIGNvbnN0IGNoYXIgKmFyZykk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NzM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjgyOgorXklhc3NlcnQocG9zIDw9IGFyZ3MtPmFyZ2Mp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6ODM6CiteSWlmIChmdXNlX29wdF9hZGRfYXJnKGFy Z3MsIGFyZykgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNDc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuYzo4MzoKKyAgICAgICBpZiAoZnVzZV9vcHRfYWRkX2FyZyhhcmdzLCBhcmcpID09IC0xKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDc1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo4NDoKK15JXklyZXR1cm4gLTE7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDc3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzo4NjoKK15JaWYgKHBvcyAhPSBhcmdzLT5hcmdjIC0gMSkgeyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6ODc6CiteSV5JY2hhciAqbmV3YXJnID0gYXJncy0+YXJndlth cmdzLT5hcmdjIC0gMV07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo4ODoKK15JXkltZW1tb3Zl KCZhcmdzLT5hcmd2W3BvcyArIDFdLCAmYXJncy0+YXJndltwb3NdLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0LmM6ODk6CiteSV5JXklzaXplb2YoY2hhciAqKSAqIChhcmdzLT5hcmdjIC0gcG9zIC0g MSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6OTA6CiteSV5JYXJncy0+YXJndltwb3NdID0g bmV3YXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6OTE6CiteSX0kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjkyOgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjk3Ogor XklyZXR1cm4gZnVzZV9vcHRfaW5zZXJ0X2FyZ19jb21tb24oYXJncywgcG9zLCBhcmcpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTAyOgorXklpZiAoY3R4LT5hcmdjdHIgKyAxID49IGN0eC0+ YXJnYykgeyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0OTQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEwMzoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZV U0VfTE9HX0VSUiwgImZ1c2U6IG1pc3NpbmcgYXJndW1lbnQgYWZ0ZXIgYCVzJ1xuIiwgb3B0KTsK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5NDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTAzOgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwg ImZ1c2U6IG1pc3NpbmcgYXJndW1lbnQgYWZ0ZXIgYCVzJ1xuIiwgb3B0KTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5jOjEwNDoKK15JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu YzoxMDU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEwNjoKK15JY3R4LT5hcmdjdHIr KzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEwNzoKK15JcmV0dXJuIDA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTAzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzoxMTI6CiteSXJldHVybiBmdXNlX29wdF9hZGRfYXJnKCZjdHgtPm91dGFy Z3MsIGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMTc6CiteSXVuc2lnbmVkIG9sZGxl biA9ICpvcHRzID8gc3RybGVuKCpvcHRzKSA6IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzox MTg6CiteSWNoYXIgKmQgPSByZWFsbG9jKCpvcHRzLCBvbGRsZW4gKyAxICsgc3RybGVuKG9wdCkg KiAyICsgMSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTEx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMjA6CiteSWlmICghZCkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiM1MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEyMDoKKyAgICAgICBpZiAo IWQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEyMToKK15JXklyZXR1cm4gYWxsb2Nf ZmFpbGVkKCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTE0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMjM6CiteSSpvcHRzID0gZDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEyNDoKK15JaWYgKG9sZGxlbikgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxNjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0LmM6MTI1OgorXkleSWQgKz0gb2xkbGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MTI2OgorXkleSSpkKysgPSAnLCc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNTE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMjc6Cite SX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEyOToKK15JZm9yICg7ICpvcHQ7IG9wdCsrKSB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTIxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMzA6CiteSV5JaWYgKGVzYyAmJiAoKm9wdCA9PSAn LCcgfHwgKm9wdCA9PSAnXFwnKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9y IGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM1MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjEzMDoKKyAgICAgICAgICAgICAgIGlmIChlc2MgJiYgKCpvcHQgPT0gJywnIHx8 ICpvcHQgPT0gJ1xcJykpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEzMToKK15JXkle SSpkKysgPSAnXFwnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzUyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTMyOgorXkleSSpkKysgPSAq b3B0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyNDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTMzOgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzoxMzQ6CiteSSpkID0gJ1wwJzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEzNjoK K15JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNDE6CiteSXJldHVybiBhZGRf b3B0X2NvbW1vbihvcHRzLCBvcHQsIDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzUzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTQ2Ogor XklyZXR1cm4gYWRkX29wdF9jb21tb24ob3B0cywgb3B0LCAxKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjE1MToKK15JcmV0dXJuIGFkZF9vcHRfY29tbW9uKCZjdHgtPm9wdHMsIG9wdCwgMSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTQ2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNTU6CiteSV5JICAgICBpbnQgaXNvKSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6MTU3OgorXklpZiAoa2V5ID09IEZVU0VfT1BUX0tFWV9ESVNDQVJE KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzU0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTU3OgorICAg ICAgIGlmIChrZXkgPT0gRlVTRV9PUFRfS0VZX0RJU0NBUkQpClsuLi5dCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjE1ODoKK15JXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE2 MDoKK15JaWYgKGtleSAhPSBGVVNFX09QVF9LRVlfS0VFUCAmJiBjdHgtPnByb2MpIHskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjE2MToKK15JXklpbnQgcmVzID0gY3R4LT5wcm9jKGN0eC0+ZGF0 YSwgYXJnLCBrZXksICZjdHgtPm91dGFyZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzU1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTYy OgorXkleSWlmIChyZXMgPT0gLTEgfHwgIXJlcykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM1NTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjE2MjoKKyAgICAgICAgICAgICAgIGlmIChyZXMgPT0gLTEgfHwg IXJlcykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTYzOgorXkleSV5JcmV0dXJuIHJl czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE2NDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6MTY1OgorXklpZiAoaXNvKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBm b3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzU1NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0LmM6MTY1OgorICAgICAgIGlmIChpc28pClsuLi5dCisgICAgICAgZWxzZQpbLi4u XQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTU3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNjY6CiteSV5JcmV0dXJuIGFkZF9vcHQoY3R4LCBh cmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTY3OgorXkllbHNlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzoxNjg6CiteSV5JcmV0dXJuIGFkZF9hcmcoY3R4LCBhcmcpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfb3B0LmM6MTczOgorXklpbnQgYXJnbGVuID0gc3RybGVuKGFyZyk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzoxNzQ6CiteSWNvbnN0IGNoYXIgKnNlcCA9IHN0cmNocih0LCAnPScp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTc1OgorXklzZXAgPSBzZXAgPyBzZXAgOiBzdHJj aHIodCwgJyAnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1 Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE3NjoKK15JaWYgKHNlcCAmJiAo IXNlcFsxXSB8fCBzZXBbMV0gPT0gJyUnKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzU2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTc3 OgorXkleSWludCB0bGVuID0gc2VwIC0gdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE3ODoK K15JXklpZiAoc2VwWzBdID09ICc9JykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM1Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5jOjE3ODoKKyAgICAgICAgICAgICAgIGlmIChzZXBbMF0gPT0gJz0nKQpbLi4u XQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTcwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNzk6CiteSV5JXkl0bGVuICsrOyQKCkVSUk9SOiBz cGFjZSBwcm9oaWJpdGVkIGJlZm9yZSB0aGF0ICcrKycgKGN0eDpXeE8pCiM1NzA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE3OToKKyAgICAgICAgICAgICAgICAgICAgICAgdGxl biArKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29w dC5jOjE4MDoKK15JXklpZiAoYXJnbGVuID49IHRsZW4gJiYgc3RybmNtcChhcmcsIHQsIHRsZW4p ID09IDApIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE4MToKK15JXkleSSpzZXBwID0gc2Vw IC0gdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE4MjoKK15JXkleSXJldHVybiAxOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTgzOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjE4NDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTg1OgorXklpZiAoc3RyY21wKHQs IGFyZykgPT0gMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzU3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTg2OgorXkleSSpzZXBwID0g MDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Nzg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE4NzoKK15JXklyZXR1cm4gMTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Nzk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX29wdC5jOjE4ODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzU4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTg5Ogor XklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1 ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE5MzoKK15JXkleSV5JICAgICAg IGNvbnN0IGNoYXIgKmFyZywgdW5zaWduZWQgKnNlcHApJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu YzoxOTU6CiteSWZvciAoOyBvcHQgJiYgb3B0LT50ZW1wbDsgb3B0KyspJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzoxOTY6CiteSV5JaWYgKG1hdGNoX3RlbXBsYXRlKG9wdC0+dGVtcGwsIGFyZywg c2VwcCkpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojNTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxOTY6 CisgICAgICAgICAgICAgICBpZiAobWF0Y2hfdGVtcGxhdGUob3B0LT50ZW1wbCwgYXJnLCBzZXBw KSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTk3OgorXkleSV5JcmV0dXJuIG9wdDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE5ODoKK15JcmV0dXJuIE5VTEw7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTk0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzoyMDM6CiteSXVuc2lnbmVkIGR1bW15OyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6MjA0OgorXklyZXR1cm4gZmluZF9vcHQob3B0cywgb3B0LCAmZHVtbXkpID8gMSA6IDA7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTk5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMDg6CiteSV5JXkkgICAgIGNvbnN0IGNoYXIgKmFy ZykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIxMDoKK15JYXNzZXJ0KGZvcm1hdFswXSA9PSAn JScpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYwMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjExOgorXklpZiAoZm9ybWF0WzFdID09ICdz JykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYwMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjEyOgorXkleSWNoYXIgKipzID0gdmFyOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYwNDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjEzOgorXkleSWNoYXIgKmNvcHkgPSBzdHJkdXAocGFy YW0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYwNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjE0OgorXkleSWlmICghY29weSkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiM2MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIxNDoKKyAgICAgICAgICAg ICAgIGlmICghY29weSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzYwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjE1OgorXkleSV5J cmV0dXJuIGFsbG9jX2ZhaWxlZCgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzYwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjE3OgorXkle SWZyZWUoKnMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYw OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjE4OgorXkleSSpzID0gY29weTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIxOToKK15JfSBlbHNlIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjIyMDoKK15JXklpZiAoc3NjYW5mKHBhcmFtLCBmb3JtYXQsIHZhcikgIT0gMSkg eyQKCkVSUk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojNjEyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzoyMjE6CisgICAgICAgICAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZV U0VfTE9HX0VSUiwgImZ1c2U6IGludmFsaWQgcGFyYW1ldGVyIGluIG9wdGlvbiBgJXMnXG4iLCBh cmcpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjEyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMjE6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xP R19FUlIsICJmdXNlOiBpbnZhbGlkIHBhcmFtZXRlciBpbiBvcHRpb24gYCVzJ1xuIiwgYXJnKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIyMjoKK15JXkleSXJldHVybiAtMTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX29wdC5jOjIyMzoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMjQ6 CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIyNToKK15JcmV0dXJuIDA7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjIwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzoyMjk6CiteSV5JICAgICAgIGNvbnN0IHN0cnVjdCBmdXNlX29wdCAq b3B0LCB1bnNpZ25lZCBzZXAsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMzA6CiteSV5JICAg ICAgIGNvbnN0IGNoYXIgKmFyZywgaW50IGlzbykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIz MjoKK15JaWYgKG9wdC0+b2Zmc2V0ID09IC0xVSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzYyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6 MjMzOgorXkleSWlmIChjYWxsX3Byb2MoY3R4LCBhcmcsIG9wdC0+dmFsdWUsIGlzbykgPT0gLTEp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojNjI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMzM6CisgICAg ICAgICAgICAgICBpZiAoY2FsbF9wcm9jKGN0eCwgYXJnLCBvcHQtPnZhbHVlLCBpc28pID09IC0x KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMzQ6CiteSV5JXklyZXR1cm4gLTE7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMzU6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzoyMzY6CiteSV5Jdm9pZCAqdmFyID0gKGNoYXIgKiljdHgtPmRhdGEgKyBvcHQtPm9m ZnNldDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mjg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIzNzoKK15JXklpZiAoc2VwICYmIG9wdC0+ dGVtcGxbc2VwICsgMV0pIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2Mjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIzODoKK15JXkleSWNv bnN0IGNoYXIgKnBhcmFtID0gYXJnICsgc2VwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzYzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjM5 OgorXkleSV5JaWYgKG9wdC0+dGVtcGxbc2VwXSA9PSAnPScpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNjMwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMzk6CisgICAgICAgICAgICAgICAgICAgICAgIGlm IChvcHQtPnRlbXBsW3NlcF0gPT0gJz0nKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoy NDA6CiteSV5JXkleSXBhcmFtICsrOyQKCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGJlZm9yZSB0 aGF0ICcrKycgKGN0eDpXeE8pCiM2MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjI0MDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbSArKzsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI0 MToKK15JXkleSWlmIChwcm9jZXNzX29wdF9wYXJhbSh2YXIsIG9wdC0+dGVtcGwgKyBzZXAgKyAx LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzMzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjQyOgorXkleSV5JXkleSSAgICAgIHBhcmFtLCBh cmcpID09IC0xKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYz NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjQzOgorXkleSV5JXklyZXR1cm4g LTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNDQ6CiteSV5JfSBlbHNlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzoyNDU6CiteSV5JXkkqKGludCAqKXZhciA9IG9wdC0+dmFsdWU7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNDY6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI0 NzoKK15JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNTE6CiteSV5JXkkgICAg ICAgY29uc3Qgc3RydWN0IGZ1c2Vfb3B0ICpvcHQsIHVuc2lnbmVkIHNlcCwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5jOjI1MjoKK15JXkleSSAgICAgICBjb25zdCBjaGFyICphcmcsIGludCBpc28p JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQ1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNTQ6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzoyNTU6CiteSWNoYXIgKm5ld2FyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM2NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjI1NjoKK15JY2hhciAqcGFyYW07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNTg6CiteSWlm IChuZXh0X2FyZyhjdHgsIGFyZykgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNjQ5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzoyNTg6CisgICAgICAgaWYgKG5leHRfYXJnKGN0eCwgYXJnKSA9PSAt MSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjU5OgorXkleSXJldHVybiAtMTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI2MToKK15JcGFyYW0gPSBjdHgtPmFyZ3ZbY3R4LT5hcmdj dHJdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjYyOgorXkluZXdhcmcgPSBtYWxsb2Moc2Vw ICsgc3RybGVuKHBhcmFtKSArIDEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjYzOgorXklp ZiAoIW5ld2FyZykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiM2NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjI2MzoKKyAgICAgICBpZiAoIW5ld2FyZykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6 MjY0OgorXkleSXJldHVybiBhbGxvY19mYWlsZWQoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM2NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjI2NjoKK15JbWVtY3B5KG5ld2FyZywgYXJnLCBzZXApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MjY3OgorXklzdHJjcHkobmV3YXJnICsgc2VwLCBwYXJhbSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzoyNjg6CiteSXJlcyA9IHByb2Nlc3Nfb3B0KGN0eCwgb3B0LCBzZXAsIG5ld2FyZywg aXNvKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NjA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI2OToKK15JZnJlZShuZXdhcmcpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjcxOgorXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0LmM6Mjc2OgorXkl1bnNpZ25lZCBzZXA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoy Nzc6CiteSWNvbnN0IHN0cnVjdCBmdXNlX29wdCAqb3B0ID0gZmluZF9vcHQoY3R4LT5vcHQsIGFy ZywgJnNlcCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjY5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNzg6CiteSWlmIChvcHQpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI3OToKK15JXklmb3IgKDsgb3B0OyBvcHQgPSBmaW5kX29w dChvcHQgKyAxLCBhcmcsICZzZXApKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyODA6Cite SV5JXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjgxOgorXkleSV5JaWYgKHNl cCAmJiBvcHQtPnRlbXBsW3NlcF0gPT0gJyAnICYmICFhcmdbc2VwXSkkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjI4MjoKK15JXkleSV5JcmVzID0gcHJvY2Vzc19vcHRfc2VwX2FyZyhjdHgsIG9w dCwgc2VwLCBhcmcsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Njc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyODM6CiteSV5JXkleSV5JXkle SSAgaXNvKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI4NDoKK15JXkleSWVsc2UkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjI4NToKK15JXkleSV5JcmVzID0gcHJvY2Vzc19vcHQoY3R4LCBv cHQsIHNlcCwgYXJnLCBpc28pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjg2OgorXkleSV5J aWYgKHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29w dC5jOjI4NjoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjg3OgorXkleSV5JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzoyODg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzY4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjg5Ogor XkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjkwOgorXkl9IGVsc2UkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2ODI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI5MToKK15JXklyZXR1cm4gY2FsbF9wcm9jKGN0eCwgYXJn LCBGVVNFX09QVF9LRVlfT1BULCBpc28pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzY4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjk2Ogor XkljaGFyICpzID0gb3B0czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI5NzoKK15JY2hhciAq ZCA9IHM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjg5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyOTg6CiteSWludCBlbmQgPSAwOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzAwOgorXkl3aGlsZSAoIWVuZCkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0LmM6MzAxOgorXkleSWlmICgqcyA9PSAnXDAnKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY5MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzAxOgorICAgICAgICAgICAgICAgaWYgKCpzID09 ICdcMCcpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMwMjoKK15JXkleSWVuZCA9IDE7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMDM6CiteSV5JaWYgKCpzID09ICcsJyB8fCBlbmQp IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMwNDoKK15JXkleSWludCByZXM7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzozMDY6CiteSV5JXkkqZCA9ICdcMCc7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzozMDc6CiteSV5JXklyZXMgPSBwcm9jZXNzX2dvcHQoY3R4LCBvcHRzLCAxKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMwODoKK15JXkleSWlmIChyZXMgPT0gLTEpJAoKRVJST1I6 IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAoj Njk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMDg6CisgICAgICAgICAgICAg ICAgICAgICAgIGlmIChyZXMgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMw OToKK15JXkleSV5JcmV0dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzcwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzEwOgorXkle SV5JZCA9IG9wdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMTE6CiteSV5JfSBlbHNlIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMxMjoKK15JXkleSWlmIChzWzBdID09ICdcXCcgJiYg c1sxXSAhPSAnXDAnKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMTM6CiteSV5JXkleSXMr KzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMxNDoKK15JXkleSV5JaWYgKHNbMF0gPj0gJzAn ICYmIHNbMF0gPD0gJzMnICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNzA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMTU6CiteSV5JXkle SSAgICBzWzFdID49ICcwJyAmJiBzWzFdIDw9ICc3JyAmJiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MzE2OgorXkleSV5JXkkgICAgc1syXSA+PSAnMCcgJiYgc1syXSA8PSAnNycpIHskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjMxNzoKK15JXkleSV5JXkkqZCsrID0gKHNbMF0gLSAnMCcpICog MDEwMCArJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzA5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMTg6CiteSV5JXkleSV5JXkkoc1sxXSAt ICcwJykgKiAwMDEwICskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMxOToKK15JXkleSV5JXkle SShzWzJdIC0gJzAnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMyMDoKK15JXkleSV5JXklz ICs9IDI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzEyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMjE6CiteSV5JXkleSX0gZWxzZSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzEzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMjI6CiteSV5JXkleSV5JKmQrKyA9ICpzOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6MzIzOgorXkleSV5JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu YzozMjQ6CiteSV5JXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzcxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzI1OgorXkle SV5JXkkqZCsrID0gKnM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMjY6CiteSV5JXkl9JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzE4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMjc6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MzI4OgorXkleSXMrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMyOToKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzMxOgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjMzNjoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMzNzoKK15J Y2hhciAqY29weSA9IHN0cmR1cChvcHRzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMzOToK K15JaWYgKCFjb3B5KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNDA6CiteSV5JZnVzZV9s b2coRlVTRV9MT0dfRVJSLCAiZnVzZTogbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkXG4iKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM0MToKK15JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzozNDI6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM0MzoKK15JcmVz ID0gcHJvY2Vzc19yZWFsX29wdGlvbl9ncm91cChjdHgsIGNvcHkpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0LmM6MzQ0OgorXklmcmVlKGNvcHkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzczNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzQ1 OgorXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzc0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzUwOgorXklpZiAoY3R4 LT5ub25vcHQgfHwgYXJnWzBdICE9ICctJykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM1MToK K15JXklyZXR1cm4gY2FsbF9wcm9jKGN0eCwgYXJnLCBGVVNFX09QVF9LRVlfTk9OT1BULCAwKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM1MjoKK15JZWxzZSBpZiAoYXJnWzFdID09ICdvJykg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzUzOgorXkleSWlmIChhcmdbMl0pJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQ1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzozNTQ6CiteSV5JXklyZXR1cm4gcHJvY2Vzc19vcHRpb25fZ3JvdXAo Y3R4LCBhcmcgKyAyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM1NToKK15JXkllbHNlIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM1NjoKK15JXkleSWlmIChuZXh0X2FyZyhjdHgsIGFy ZykgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBv ZiB0aGlzIHN0YXRlbWVudAojNzQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoz NTY6CisgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0X2FyZyhjdHgsIGFyZykgPT0gLTEp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM1NzoKK15JXkleSV5JcmV0dXJuIC0xOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzU5OgorXkleSV5JcmV0dXJuIHByb2Nlc3Nfb3B0aW9u X2dyb3VwKGN0eCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2MDoKK15JXkleSV5JXkleSSAg ICBjdHgtPmFyZ3ZbY3R4LT5hcmdjdHJdKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2MToK K15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzUzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNjI6CiteSX0gZWxzZSBpZiAoYXJnWzFd ID09ICctJyAmJiAhYXJnWzJdKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNjM6CiteSV5J aWYgKGFkZF9hcmcoY3R4LCBhcmcpID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzc1NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6MzYzOgorICAgICAgICAgICAgICAgaWYgKGFkZF9hcmcoY3R4LCBh cmcpID09IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNjQ6CiteSV5JXklyZXR1 cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNjU6CiteSV5JY3R4LT5ub25vcHQgPSBj dHgtPm91dGFyZ3MuYXJnYzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2NjoKK15JXklyZXR1 cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2NzoKK15JfSBlbHNlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzozNjg6CiteSV5JcmV0dXJuIHByb2Nlc3NfZ29wdChjdHgsIGFyZywgMCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNzM6CiteSWlmIChjdHgtPmFyZ2MpIHskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjM3NDoKK15JXklpZiAoYWRkX2FyZyhjdHgsIGN0eC0+YXJndlsw XSkgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBv ZiB0aGlzIHN0YXRlbWVudAojNzY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoz NzQ6CisgICAgICAgICAgICAgICBpZiAoYWRkX2FyZyhjdHgsIGN0eC0+YXJndlswXSkgPT0gLTEp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM3NToKK15JXkleSXJldHVybiAtMTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Njc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM3NjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzc2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6 Mzc4OgorXklmb3IgKGN0eC0+YXJnY3RyID0gMTsgY3R4LT5hcmdjdHIgPCBjdHgtPmFyZ2M7IGN0 eC0+YXJnY3RyKyspJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNzk6CiteSV5JaWYgKHByb2Nl c3Nfb25lKGN0eCwgY3R4LT5hcmd2W2N0eC0+YXJnY3RyXSkgPT0gLTEpJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNzcwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNzk6CisgICAgICAgICAgICAgICBpZiAo cHJvY2Vzc19vbmUoY3R4LCBjdHgtPmFyZ3ZbY3R4LT5hcmdjdHJdKSA9PSAtMSkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzgwOgorXkleSV5JcmV0dXJuIC0xOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0LmM6MzgyOgorXklpZiAoY3R4LT5vcHRzKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuYzozODM6CiteSV5JaWYgKGZ1c2Vfb3B0X2luc2VydF9hcmcoJmN0eC0+b3V0YXJncywgMSwg Ii1vIikgPT0gLTEgfHwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM4NDoKK15JXkkgICAgZnVz ZV9vcHRfaW5zZXJ0X2FyZygmY3R4LT5vdXRhcmdzLCAyLCBjdHgtPm9wdHMpID09IC0xKSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mzg1OgorXkleSV5JcmV0dXJuIC0xOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0LmM6Mzg2OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozODg6CiteSS8q IElmIG9wdGlvbiBzZXBhcmF0b3IgKCItLSIpIGlzIHRoZSBsYXN0IGFyZ3VtZW50LCByZW1vdmUg aXQgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM4OToKK15JaWYgKGN0eC0+bm9ub3B0ICYm IGN0eC0+bm9ub3B0ID09IGN0eC0+b3V0YXJncy5hcmdjICYmJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuYzozOTA6CiteSSAgICBzdHJjbXAoY3R4LT5vdXRhcmdzLmFyZ3ZbY3R4LT5vdXRhcmdzLmFy Z2MgLSAxXSwgIi0tIikgPT0gMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzkxOgorXkle SWZyZWUoY3R4LT5vdXRhcmdzLmFyZ3ZbY3R4LT5vdXRhcmdzLmFyZ2MgLSAxXSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzgzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzozOTI6CiteSV5JY3R4LT5vdXRhcmdzLmFyZ3ZbLS1jdHgtPm91dGFy Z3MuYXJnY10gPSBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzc4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzkzOgorXkl9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzozOTU6CiteSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6Mzk5OgorXkleSSAgIGNvbnN0IHN0cnVjdCBmdXNlX29wdCBvcHRzW10sIGZ1c2Vfb3B0 X3Byb2NfdCBwcm9jKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDAxOgorXklpbnQgcmVzOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDAyOgorXklzdHJ1Y3QgZnVzZV9vcHRfY29udGV4dCBj dHggPSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MDM6CiteSV5JLmRhdGEgPSBkYXRhLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDA0OgorXkleSS5vcHQgPSBvcHRzLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfb3B0LmM6NDA1OgorXkleSS5wcm9jID0gcHJvYywkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjQwNjoKK15JfTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjQwODoKK15JaWYgKCFh cmdzIHx8ICFhcmdzLT5hcmd2IHx8ICFhcmdzLT5hcmdjKSQKCkVSUk9SOiBicmFjZXMge30gYXJl IG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzc5OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDA4OgorICAgICAgIGlmICghYXJncyB8fCAhYXJncy0+ YXJndiB8fCAhYXJncy0+YXJnYykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzgwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDA5Ogor XkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzgwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDExOgorXkljdHguYXJnYyA9 IGFyZ3MtPmFyZ2M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj ODAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MTI6CiteSWN0eC5hcmd2ID0g YXJncy0+YXJndjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4 MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjQxNDoKK15JcmVzID0gb3B0X3Bh cnNlKCZjdHgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgw NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDE1OgorXklpZiAocmVzICE9IC0x KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODA3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MTY6CiteSV5Jc3RydWN0IGZ1c2VfYXJncyB0 bXAgPSAqYXJnczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4 MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjQxNzoKK15JXkkqYXJncyA9IGN0 eC5vdXRhcmdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgw OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDE4OgorXkleSWN0eC5vdXRhcmdz ID0gdG1wOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgxMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDE5OgorXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODExOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzo0MjA6CiteSWZyZWUoY3R4Lm9wdHMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6NDIxOgorXklmdXNlX29wdF9mcmVlX2FyZ3MoJmN0eC5vdXRhcmdzKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5jOjQyMjoKK15JcmV0dXJuIHJlczskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50 cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiM4MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX3NpZ25hbHMuYzoyOgorLyoKKyAgRlVTRTogRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjI0OgorXklpZiAoZnVzZV9pbnN0YW5jZSkgeyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0NTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjI1OgorXkleSWZ1c2Vfc2Vzc2lvbl9leGl0KGZ1c2Vf aW5zdGFuY2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjI2OgorXkleSWlmKHNpZyA8 PSAwKSB7JAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNp cyAnKCcKIzg0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjI2OgorICAg ICAgICAgICAgICAgaWYoc2lnIDw9IDApIHsKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0 ZXJzCiM4NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzoyNzoKKyAgICAg ICAgICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiYXNzZXJ0aW9uIGVycm9y OiBzaWduYWwgdmFsdWUgPD0gMFxuIik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM4NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzoyNzoK K15JXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImFzc2VydGlvbiBlcnJvcjogc2lnbmFsIHZh bHVlIDw9IDBcbiIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjI4OgorXkleSV5JYWJv cnQoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzoyOToKK15JXkl9JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODUwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9zaWduYWxzLmM6MzA6CiteSV5JZnVzZV9pbnN0YW5jZS0+ZXJyb3IgPSBzaWc7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODUxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6MzE6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3Np Z25hbHMuYzozNjoKK15JKHZvaWQpIHNpZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo0 MToKK15Jc3RydWN0IHNpZ2FjdGlvbiBzYTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo0 MjoKK15Jc3RydWN0IHNpZ2FjdGlvbiBvbGRfc2E7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojODY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxz LmM6NDQ6CiteSW1lbXNldCgmc2EsIDAsIHNpemVvZihzdHJ1Y3Qgc2lnYWN0aW9uKSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODY1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NDU6CiteSXNhLnNhX2hhbmRsZXIgPSByZW1vdmUgPyBT SUdfREZMIDogaGFuZGxlcjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM4NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo0NjoKK15Jc2ln ZW1wdHlzZXQoJihzYS5zYV9tYXNrKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojODY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NDc6 CiteSXNhLnNhX2ZsYWdzID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM4Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo0OToKK15J aWYgKHNpZ2FjdGlvbihzaWcsIE5VTEwsICZvbGRfc2EpID09IC0xKSB7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9zaWduYWxzLmM6NTA6CiteSV5JcGVycm9yKCJmdXNlOiBjYW5ub3QgZ2V0IG9sZCBzaWdu YWwgaGFuZGxlciIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjUxOgorXkleSXJldHVy biAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NzI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo1MjoKK15JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfc2lnbmFscy5jOjU0OgorXklpZiAob2xkX3NhLnNhX2hhbmRsZXIgPT0gKHJlbW92ZSA/ IGhhbmRsZXIgOiBTSUdfREZMKSAmJiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzg3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjU1Ogor XkkgICAgc2lnYWN0aW9uKHNpZywgJnNhLCBOVUxMKSA9PSAtMSkgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfc2lnbmFscy5jOjU2OgorXkleSXBlcnJvcigiZnVzZTogY2Fubm90IHNldCBzaWduYWwgaGFu ZGxlciIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjU3OgorXkleSXJldHVybiAtMTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4Nzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo1ODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf c2lnbmFscy5jOjU5OgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo2 NDoKK15JLyogSWYgd2UgdXNlZCBTSUdfSUdOIGluc3RlYWQgb2YgdGhlIGRvX25vdGhpbmcgZnVu Y3Rpb24sJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNl cGFyYXRlIGxpbmUKIzg4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjY0 OgorICAgICAgIC8qIElmIHdlIHVzZWQgU0lHX0lHTiBpbnN0ZWFkIG9mIHRoZSBkb19ub3RoaW5n IGZ1bmN0aW9uLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODg1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NjU6CiteSSAgIHRoZW4gd2Ug d291bGQgYmUgdW5hYmxlIHRvIHRlbGwgaWYgd2Ugc2V0IFNJR19JR04gKGFuZCQKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzg4NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjY1OgorICAgICAgIC8qIElmIHdlIHVzZWQgU0lH X0lHTiBpbnN0ZWFkIG9mIHRoZSBkb19ub3RoaW5nIGZ1bmN0aW9uLAorICAgICAgICAgIHRoZW4g d2Ugd291bGQgYmUgdW5hYmxlIHRvIHRlbGwgaWYgd2Ugc2V0IFNJR19JR04gKGFuZAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODg2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9zaWduYWxzLmM6NjY6CiteSSAgIHRodXMgc2hvdWxkIHJlc2V0IHRvIFNJR19E RkwgaW4gZnVzZV9yZW1vdmVfc2lnbmFsX2hhbmRsZXJzKSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2ln bmFscy5jOjY3OgorXkkgICBvciBpZiBpdCB3YXMgYWxyZWFkeSBzZXQgdG8gU0lHX0lHTiAoYW5k IHNob3VsZCBiZSBsZWZ0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6Njg6CiteSSAgIHVu dG91Y2hlZC4gKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBv biBhIHNlcGFyYXRlIGxpbmUKIzg4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFs cy5jOjY4OgorICAgICAgICAgIHVudG91Y2hlZC4gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzg4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFs cy5jOjY5OgorXklpZiAoc2V0X29uZV9zaWduYWxfaGFuZGxlcihTSUdIVVAsIGV4aXRfaGFuZGxl ciwgMCkgPT0gLTEgfHwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM4OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo3MDoKK15JICAgIHNl dF9vbmVfc2lnbmFsX2hhbmRsZXIoU0lHSU5ULCBleGl0X2hhbmRsZXIsIDApID09IC0xIHx8JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODkxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NzE6CiteSSAgICBzZXRfb25lX3NpZ25hbF9oYW5k bGVyKFNJR1RFUk0sIGV4aXRfaGFuZGxlciwgMCkgPT0gLTEgfHwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X3NpZ25hbHMuYzo3MjoKK15JICAgIHNldF9vbmVfc2lnbmFsX2hhbmRsZXIoU0lHUElQRSwgZG9f bm90aGluZywgMCkgPT0gLTEpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NzM6CiteSV5J cmV0dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjc1OgorXklmdXNlX2luc3Rh bmNlID0gc2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODk2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NzY6CiteSXJldHVybiAwOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkwMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjgxOgorXklpZiAoZnVzZV9pbnN0YW5jZSAhPSBz ZSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo4MjoKK15JXklmdXNlX2xvZyhGVVNFX0xP R19FUlIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTAzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6ODM6CiteSV5JXkkiZnVzZTogZnVz ZV9yZW1vdmVfc2lnbmFsX2hhbmRsZXJzOiB1bmtub3duIHNlc3Npb25cbiIpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkwNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfc2lnbmFscy5jOjg0OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojOTA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxz LmM6ODU6CiteSV5JZnVzZV9pbnN0YW5jZSA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojOTA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWdu YWxzLmM6ODc6CiteSXNldF9vbmVfc2lnbmFsX2hhbmRsZXIoU0lHSFVQLCBleGl0X2hhbmRsZXIs IDEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkwODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjg4OgorXklzZXRfb25lX3NpZ25hbF9o YW5kbGVyKFNJR0lOVCwgZXhpdF9oYW5kbGVyLCAxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25h bHMuYzo4OToKK15Jc2V0X29uZV9zaWduYWxfaGFuZGxlcihTSUdURVJNLCBleGl0X2hhbmRsZXIs IDEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkxMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjkwOgorXklzZXRfb25lX3NpZ25hbF9o YW5kbGVyKFNJR1BJUEUsIGRvX25vdGhpbmcsIDEpOyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRz IHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzkxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hl bHBlci5jOjI6CisvKgorICBGVVNFOiBGaWxlc3lzdGVtIGluIFVzZXJzcGFjZQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTQ3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6MzA6CiteSXsgdCwgb2Zmc2V0b2Yoc3RydWN0IGZ1c2VfY21kbGluZV9vcHRz LCBwKSwgMSB9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTUw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzM6CiteSUZVU0VfSEVMUEVSX09QVCgi LWgiLF5JXklzaG93X2hlbHApLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzk1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM0OgorXklGVVNFX0hF TFBFUl9PUFQoIi0taGVscCIsXklzaG93X2hlbHApLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzk1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM1 OgorXklGVVNFX0hFTFBFUl9PUFQoIi1WIixeSV5Jc2hvd192ZXJzaW9uKSwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzozNjoKK15JRlVTRV9IRUxQRVJfT1BUKCItLXZlcnNpb24iLF5Jc2hvd192ZXJz aW9uKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NTQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNzoKK15JRlVTRV9IRUxQRVJfT1BUKCItZCIs XkleSWRlYnVnKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5 NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozODoKK15JRlVTRV9IRUxQRVJfT1BU KCJkZWJ1ZyIsXklkZWJ1ZyksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojOTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mzk6CiteSUZVU0VfSEVM UEVSX09QVCgiLWQiLF5JXklmb3JlZ3JvdW5kKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM5NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MDoK K15JRlVTRV9IRUxQRVJfT1BUKCJkZWJ1ZyIsXklmb3JlZ3JvdW5kKSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzo0MToKK15JRlVTRV9PUFRfS0VZKCItZCIsXkleSUZVU0VfT1BUX0tFWV9LRUVQKSwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NTk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MjoKK15JRlVTRV9PUFRfS0VZKCJkZWJ1ZyIsXkleSUZV U0VfT1BUX0tFWV9LRUVQKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MzoKK15JRlVTRV9IRUxQ RVJfT1BUKCItZiIsXkleSWZvcmVncm91bmQpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzk2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQ0Ogor XklGVVNFX0hFTFBFUl9PUFQoIi1zIixeSV5Jc2luZ2xldGhyZWFkKSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzo0NToKK15JRlVTRV9IRUxQRVJfT1BUKCJmc25hbWU9IixeSW5vZGVmYXVsdF9zdWJ0 eXBlKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0NjoKK15JRlVTRV9PUFRfS0VZKCJmc25hbWU9 IixeSV5JRlVTRV9PUFRfS0VZX0tFRVApLCQKCldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZp YyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiM5NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzo0NzoKKyNpZm5kZWYgX19GcmVlQlNEX18KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzk2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQ4 OgorXklGVVNFX0hFTFBFUl9PUFQoInN1YnR5cGU9IixeSW5vZGVmYXVsdF9zdWJ0eXBlKSwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzo0OToKK15JRlVTRV9PUFRfS0VZKCJzdWJ0eXBlPSIsXklGVVNF X09QVF9LRVlfS0VFUCksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojOTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NTE6CiteSUZVU0VfSEVMUEVS X09QVCgiY2xvbmVfZmQiLF5JY2xvbmVfZmQpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzk2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjUyOgor XklGVVNFX0hFTFBFUl9PUFQoIm1heF9pZGxlX3RocmVhZHM9JXUiLCBtYXhfaWRsZV90aHJlYWRz KSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NzA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo1MzoKK15JRlVTRV9PUFRfRU5EJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTc0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6NTc6CiteSWludCBhdG9taWNfb190cnVuYzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzo1ODoKK15JaW50IG5vX3JlbW90ZV9wb3NpeF9sb2NrOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjU5OgorXklpbnQgbm9fcmVtb3RlX2Zsb2NrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzk3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjYw OgorXklpbnQgc3BsaWNlX3dyaXRlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzk3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjYxOgorXklpbnQg c3BsaWNlX21vdmU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj OTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NjI6CiteSWludCBzcGxpY2VfcmVh ZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo2MzoKK15JaW50IG5vX3NwbGljZV93cml0ZTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzo2NDoKK15JaW50IG5vX3NwbGljZV9tb3ZlOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjY1OgorXklpbnQgbm9fc3BsaWNlX3JlYWQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6NjY6CiteSWludCBhdXRvX2ludmFsX2RhdGE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojOTg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 Njc6CiteSWludCBub19hdXRvX2ludmFsX2RhdGE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojOTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Njg6 CiteSWludCBub19yZWFkZGlycGx1czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM5ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo2OToKK15JaW50 IG5vX3JlYWRkaXJwbHVzX2F1dG87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojOTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NzA6CiteSWludCBh c3luY19kaW87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTg4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NzE6CiteSWludCBub19hc3luY19kaW87 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTg5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NzI6CiteSWludCB3cml0ZWJhY2tfY2FjaGU7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTkwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6NzM6CiteSWludCBub193cml0ZWJhY2tfY2FjaGU7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTkxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvaGVscGVyLmM6NzQ6CiteSWludCBhc3luY19yZWFkOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjc1OgorXklpbnQgc3luY19yZWFkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzk5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjc2OgorXkl1 bnNpZ25lZCBtYXhfd3JpdGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojOTk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Nzc6CiteSXVuc2lnbmVk IG1heF9yZWFkYWhlYWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojOTk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Nzg6CiteSXVuc2lnbmVkIG1h eF9iYWNrZ3JvdW5kOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izk5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjc5OgorXkl1bnNpZ25lZCBjb25n ZXN0aW9uX3RocmVzaG9sZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo4MDoKK15JdW5zaWduZWQg dGltZV9ncmFuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjgxOgorXklpbnQgc2V0X21heF93cml0 ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo4MjoKK15JaW50IHNldF9tYXhfcmVhZGFoZWFkOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo4MzoKK15JaW50IHNldF9tYXhfYmFja2dyb3VuZDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDAxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6ODQ6CiteSWludCBzZXRfY29uZ2VzdGlvbl90aHJlc2hvbGQ7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjg1OgorXklpbnQgc2V0X3RpbWVfZ3JhbjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6ODg6CisjZGVmaW5lIENPTk5fT1BUSU9OKHQsIHAsIHYpXkleSV5J XkleSVwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6ODk6CiteSXsgdCwgb2Zmc2V0b2Yoc3RydWN0 IGZ1c2VfY29ubl9pbmZvX29wdHMsIHApLCB2IH0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMDA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6OTE6 CiteSUNPTk5fT1BUSU9OKCJtYXhfd3JpdGU9JXUiLCBtYXhfd3JpdGUsIDApLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzo5MjoKK15JQ09OTl9PUFRJT04oIm1heF93cml0ZT0iLCBzZXRfbWF4X3dy aXRlLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDEw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6OTM6CiteSUNPTk5fT1BUSU9OKCJtYXhf cmVhZGFoZWFkPSV1IiwgbWF4X3JlYWRhaGVhZCwgMCksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTAxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j Ojk0OgorXklDT05OX09QVElPTigibWF4X3JlYWRhaGVhZD0iLCBzZXRfbWF4X3JlYWRhaGVhZCwg MSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjk1OgorXklDT05OX09QVElPTigibWF4X2JhY2tn cm91bmQ9JXUiLCBtYXhfYmFja2dyb3VuZCwgMCksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTAxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjk2 OgorXklDT05OX09QVElPTigibWF4X2JhY2tncm91bmQ9Iiwgc2V0X21heF9iYWNrZ3JvdW5kLCAx KSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6OTc6CiteSUNPTk5fT1BUSU9OKCJjb25nZXN0aW9u X3RocmVzaG9sZD0ldSIsIGNvbmdlc3Rpb25fdGhyZXNob2xkLCAwKSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6OTg6CiteSUNPTk5fT1BUSU9OKCJjb25nZXN0aW9uX3RocmVzaG9sZD0iLCBzZXRf Y29uZ2VzdGlvbl90aHJlc2hvbGQsIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo5OToKK15J Q09OTl9PUFRJT04oInN5bmNfcmVhZCIsIHN5bmNfcmVhZCwgMSksJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hl bHBlci5jOjEwMDoKK15JQ09OTl9PUFRJT04oImFzeW5jX3JlYWQiLCBhc3luY19yZWFkLCAxKSwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTAxOgorXklDT05OX09QVElPTigiYXRvbWljX29fdHJ1 bmMiLCBhdG9taWNfb190cnVuYywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTAxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjEwMjoKK15J Q09OTl9PUFRJT04oIm5vX3JlbW90ZV9sb2NrIiwgbm9fcmVtb3RlX3Bvc2l4X2xvY2ssIDEpLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMDM6CiteSUNPTk5fT1BUSU9OKCJub19yZW1vdGVfbG9j ayIsIG5vX3JlbW90ZV9mbG9jaywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTAyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjEwNDoKK15J Q09OTl9PUFRJT04oIm5vX3JlbW90ZV9mbG9jayIsIG5vX3JlbW90ZV9mbG9jaywgMSksJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAyMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjEwNToKK15JQ09OTl9PUFRJT04oIm5vX3JlbW90ZV9wb3NpeF9s b2NrIiwgbm9fcmVtb3RlX3Bvc2l4X2xvY2ssIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzox MDY6CiteSUNPTk5fT1BUSU9OKCJzcGxpY2Vfd3JpdGUiLCBzcGxpY2Vfd3JpdGUsIDEpLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMDc6CiteSUNPTk5fT1BUSU9OKCJub19zcGxpY2Vfd3JpdGUi LCBub19zcGxpY2Vfd3JpdGUsIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEwMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMDg6CiteSUNP Tk5fT1BUSU9OKCJzcGxpY2VfbW92ZSIsIHNwbGljZV9tb3ZlLCAxKSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MTA5OgorXklDT05OX09QVElPTigibm9fc3BsaWNlX21vdmUiLCBub19zcGxpY2Vf bW92ZSwgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAy NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjExMDoKK15JQ09OTl9PUFRJT04oInNw bGljZV9yZWFkIiwgc3BsaWNlX3JlYWQsIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMTE6 CiteSUNPTk5fT1BUSU9OKCJub19zcGxpY2VfcmVhZCIsIG5vX3NwbGljZV9yZWFkLCAxKSwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDI5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6MTEyOgorXklDT05OX09QVElPTigiYXV0b19pbnZhbF9kYXRh IiwgYXV0b19pbnZhbF9kYXRhLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMDMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTEzOgorXklD T05OX09QVElPTigibm9fYXV0b19pbnZhbF9kYXRhIiwgbm9fYXV0b19pbnZhbF9kYXRhLCAxKSwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDMxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTE0OgorXklDT05OX09QVElPTigicmVhZGRpcnBsdXM9 bm8iLCBub19yZWFkZGlycGx1cywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTAzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjExNToKK15J Q09OTl9PUFRJT04oInJlYWRkaXJwbHVzPXllcyIsIG5vX3JlYWRkaXJwbHVzLCAwKSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDMzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6MTE2OgorXklDT05OX09QVElPTigicmVhZGRpcnBsdXM9eWVzIiwg bm9fcmVhZGRpcnBsdXNfYXV0bywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTAzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjExNzoKK15J Q09OTl9PUFRJT04oInJlYWRkaXJwbHVzPWF1dG8iLCBub19yZWFkZGlycGx1cywgMCksJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjExODoKK15JQ09OTl9PUFRJT04oInJlYWRkaXJwbHVzPWF1dG8i LCBub19yZWFkZGlycGx1c19hdXRvLCAwKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTE5Ogor XklDT05OX09QVElPTigiYXN5bmNfZGlvIiwgYXN5bmNfZGlvLCAxKSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MTIwOgorXklDT05OX09QVElPTigibm9fYXN5bmNfZGlvIiwgbm9fYXN5bmNfZGlv LCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTIxOgorXklDT05OX09QVElPTigid3JpdGVi YWNrX2NhY2hlIiwgd3JpdGViYWNrX2NhY2hlLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MTIyOgorXklDT05OX09QVElPTigibm9fd3JpdGViYWNrX2NhY2hlIiwgbm9fd3JpdGViYWNrX2Nh Y2hlLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTIzOgorXklDT05OX09QVElPTigidGlt ZV9ncmFuPSV1IiwgdGltZV9ncmFuLCAwKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTI0Ogor XklDT05OX09QVElPTigidGltZV9ncmFuPSIsIHNldF90aW1lX2dyYW4sIDEpLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzoxMjU6CiteSUZVU0VfT1BUX0VORCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu YzoxMzE6CiteSXByaW50ZigiICAgIC1oICAgLS1oZWxwICAgICAgICAgICAgcHJpbnQgaGVscFxu IiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMzI6CiteSSAgICAgICAiICAgIC1WICAgLS12ZXJz aW9uICAgICAgICAgcHJpbnQgdmVyc2lvblxuIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMzM6 CiteSSAgICAgICAiICAgIC1kICAgLW8gZGVidWcgICAgICAgICAgZW5hYmxlIGRlYnVnIG91dHB1 dCAoaW1wbGllcyAtZilcbiIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTM0OgorXkkgICAgICAg IiAgICAtZiAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQgb3BlcmF0aW9uXG4iJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjEzNToKK15JICAgICAgICIgICAgLXMgICAgICAgICAgICAgICAg ICAgICBkaXNhYmxlIG11bHRpLXRocmVhZGVkIG9wZXJhdGlvblxuIiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzoxMzY6CiteSSAgICAgICAiICAgIC1vIGNsb25lX2ZkICAgICAgICAgICAgdXNlIHNl cGFyYXRlIGZ1c2UgZGV2aWNlIGZkIGZvciBlYWNoIHRocmVhZFxuIiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzoxMzc6CiteSSAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1heSBp bXByb3ZlIHBlcmZvcm1hbmNlKVxuIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEwNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMzg6CiteSSAg ICAgICAiICAgIC1vIG1heF9pZGxlX3RocmVhZHMgICAgdGhlIG1heGltdW0gbnVtYmVyIG9mIGlk bGUgd29ya2VyIHRocmVhZHNcbiIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMDU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTM5OgorXkkgICAg ICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQgKGRlZmF1bHQ6IDEwKVxuIik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE0MzoKK15JXkleSV5Jc3RydWN0IGZ1c2VfYXJncyAq b3V0YXJncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDYy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTQ1OgorXkkodm9pZCkgb3V0YXJnczsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDYzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTQ2OgorXklzdHJ1Y3QgZnVzZV9jbWRsaW5lX29wdHMg Km9wdHMgPSBkYXRhOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNDg6CiteSXN3aXRjaCAoa2V5 KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE0OToKK15JY2FzZSBGVVNFX09QVF9LRVlfTk9O T1BUOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNTA6CiteSV5JaWYgKCFvcHRzLT5tb3VudHBv aW50KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE1MToKK15JXkleSWlmIChmdXNlX21udF9w YXJzZV9mdXNlX2ZkKGFyZykgIT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTUyOgor XkleSV5JXklyZXR1cm4gZnVzZV9vcHRfYWRkX29wdCgmb3B0cy0+bW91bnRwb2ludCwgYXJnKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDcwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTUzOgorXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzoxNTU6CiteSV5JXkljaGFyIG1vdW50cG9pbnRbUEFUSF9NQVhdID0gIiI7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA3MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjE1NjoKK15JXkleSWlmIChyZWFscGF0aChhcmcsIG1vdW50cG9pbnQp ID09IE5VTEwpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MDc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTU3OgorXkleSV5JXklmdXNlX2xv ZyhGVVNFX0xPR19FUlIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTA3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE1ODoKK15JXkleSV5JXkki ZnVzZTogYmFkIG1vdW50IHBvaW50IGAlcyc6ICVzXG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu YzoxNTk6CiteSV5JXkleSV5JYXJnLCBzdHJlcnJvcihlcnJubykpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzoxNjA6CiteSV5JXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MTYxOgorXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNjI6CiteSV5JXklyZXR1cm4g ZnVzZV9vcHRfYWRkX29wdCgmb3B0cy0+bW91bnRwb2ludCwgbW91bnRwb2ludCk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjE2MzoKK15JXkl9IGVsc2UgeyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4 MCBjaGFyYWN0ZXJzCiMxMDgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTY0Ogor ICAgICAgICAgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBpbnZh bGlkIGFyZ3VtZW50IGAlcydcbiIsIGFyZyk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTY0Ogor XkleSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogaW52YWxpZCBhcmd1bWVudCBgJXMn XG4iLCBhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEw ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNjU6CiteSV5JXklyZXR1cm4gLTE7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE2NjoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjE2ODoKK15JZGVmYXVsdDokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMDg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTY5OgorXkleSS8q IFBhc3MgdGhyb3VnaCB1bmtub3duIG9wdGlvbnMgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MTcwOgorXkleSXJldHVybiAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNzE6CiteSX0kCgpX QVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGlu ZQojMTA5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE3NDoKKy8qIFVuZGVyIEZy ZWVCU0QsIHRoZXJlIGlzIG5vIHN1YnR5cGUgb3B0aW9uIHNvIHRoaXMKCldBUk5JTkc6IEJsb2Nr IGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzEwOTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9oZWxwZXIuYzoxNzU6CisvKiBVbmRlciBGcmVlQlNELCB0aGVyZSBpcyBubyBzdWJ0 eXBlIG9wdGlvbiBzbyB0aGlzCisgICBmdW5jdGlvbiBhY3R1YWxseSBzZXRzIHRoZSBmc25hbWUg Ki8KCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJh dGUgbGluZQojMTA5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE3NToKKyAgIGZ1 bmN0aW9uIGFjdHVhbGx5IHNldHMgdGhlIGZzbmFtZSAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTA5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjE3ODoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMDk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTc5OgorXkljaGFyICpz dWJ0eXBlX29wdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MDk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTgxOgorXkljb25zdCBjaGFyICpi YXNlbmFtZSA9IHN0cnJjaHIocHJvZ25hbWUsICcvJyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTA5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjE4MjoKK15JaWYgKGJhc2VuYW1lID09IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTA5OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjE4MjoKKyAgICAgICBpZiAoYmFzZW5hbWUgPT0gTlVMTCkKWy4u Ll0KKyAgICAgICBlbHNlIGlmIChiYXNlbmFtZVsxXSAhPSAnXDAnKQpbLi4uXQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjE4MzoKK15JXkliYXNlbmFtZSA9IHByb2duYW1lOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzoxODQ6CiteSWVsc2UgaWYgKGJhc2VuYW1lWzFdICE9ICdcMCcpJAoKRVJST1I6 IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAoj MTEwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE4NDoKKyAgICAgICBlbHNlIGlm IChiYXNlbmFtZVsxXSAhPSAnXDAnKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTEwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE4NToK K15JXkliYXNlbmFtZSsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExMDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxODc6CiteSXN1YnR5cGVf b3B0ID0gKGNoYXIgKikgbWFsbG9jKHN0cmxlbihiYXNlbmFtZSkgKyA2NCk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjE4ODoKK15JaWYgKHN1YnR5cGVfb3B0ID09IE5VTEwpIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTA2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvaGVscGVyLmM6MTg5OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IG1l bW9yeSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTEwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE5MDoK K15JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTEwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE5MToKK15JfSQKCldBUk5J Tkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMxMTA5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTkyOgorI2lmZGVmIF9fRnJlZUJTRF9f CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTEwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTkzOgorXklzcHJpbnRmKHN1YnR5cGVfb3B0LCAiLW9m c25hbWU9JXMiLCBiYXNlbmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTExMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE5NToKK15Jc3By aW50ZihzdWJ0eXBlX29wdCwgIi1vc3VidHlwZT0lcyIsIGJhc2VuYW1lKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6MTk3OgorXklyZXMgPSBmdXNlX29wdF9hZGRfYXJnKGFyZ3MsIHN1YnR5cGVf b3B0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTk4OgorXklmcmVlKHN1YnR5cGVfb3B0KTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTk5OgorXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzoyMDM6CiteSV5JICAgICAgIHN0cnVjdCBmdXNlX2NtZGxpbmVfb3B0cyAqb3B0 cykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTIyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjA1OgorXkltZW1zZXQob3B0cywgMCwgc2l6ZW9m KHN0cnVjdCBmdXNlX2NtZGxpbmVfb3B0cykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzExMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMDc6 CiteSW9wdHMtPm1heF9pZGxlX3RocmVhZHMgPSAxMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MjA5OgorXklpZiAoZnVzZV9vcHRfcGFyc2UoYXJncywgb3B0cywgZnVzZV9oZWxwZXJfb3B0cywk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjEwOgorXkleSV5JICAgZnVzZV9oZWxwZXJfb3B0X3By b2MpID09IC0xKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEx Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTE6CiteSV5JcmV0dXJuIC0xOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTM6CiteSS8qICpMaW51eCo6IGlmIG5laXRoZXIgLW8g c3VidHlwZSBub3IgLW8gZnNuYW1lIGFyZSBzcGVjaWZpZWQsJAoKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzExMzA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTM6CisgICAgICAgLyogKkxpbnV4KjogaWYgbmVpdGhl ciAtbyBzdWJ0eXBlIG5vciAtbyBmc25hbWUgYXJlIHNwZWNpZmllZCwKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzoyMTQ6CiteSSAgIHNldCBzdWJ0eXBlIHRvIHByb2dyYW0ncyBiYXNlbmFtZS4kCgpX QVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMxMTMxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjE0OgorICAgICAgIC8qICpMaW51eCo6IGlm IG5laXRoZXIgLW8gc3VidHlwZSBub3IgLW8gZnNuYW1lIGFyZSBzcGVjaWZpZWQsCisgICAgICAg ICAgc2V0IHN1YnR5cGUgdG8gcHJvZ3JhbSdzIGJhc2VuYW1lLgoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjIxNToKK15JICAgKkZyZWVCU0QqOiBpZiBmc25hbWUgaXMgbm90IHNwZWNpZmllZCwgc2V0 IHRvIHByb2dyYW0ncyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTY6CiteSSAgIGJhc2VuYW1l LiAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2Vw YXJhdGUgbGluZQojMTEzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjIxNjoKKyAg ICAgICAgICBiYXNlbmFtZS4gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTc6CiteSWlmICgh b3B0cy0+bm9kZWZhdWx0X3N1YnR5cGUpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTEzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjIxODoKK15J XklpZiAoYWRkX2RlZmF1bHRfc3VidHlwZShhcmdzLT5hcmd2WzBdLCBhcmdzKSA9PSAtMSkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiMxMTM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjE4OgorICAgICAgICAg ICAgICAgaWYgKGFkZF9kZWZhdWx0X3N1YnR5cGUoYXJncy0+YXJndlswXSwgYXJncykgPT0gLTEp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTM2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjE5OgorXkleSV5JcmV0dXJuIC0xOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMjE6CiteSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzoyMjc6CiteSWlmICghZm9yZWdyb3VuZCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzExNDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoy Mjg6CiteSV5JaW50IG51bGxmZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMTQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjI5OgorXkleSWlu dCB3YWl0ZXJbMl07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTE0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjIzMDoKK15JXkljaGFyIGNvbXBs ZXRlZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTQ5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjMyOgorXkleSWlmIChwaXBlKHdhaXRlcikp IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTUwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjMzOgorXkleSV5JcGVycm9yKCJmdXNlX2RhZW1v bml6ZTogcGlwZSIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMzQ6CiteSV5JXklyZXR1cm4g LTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjIzNToKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hl bHBlci5jOjIzNzoKK15JXkkvKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMzg6CiteSV5JICog ZGVtb25pemUgY3VycmVudCBwcm9jZXNzIGJ5IGZvcmtpbmcgaXQgYW5kIGtpbGxpbmcgdGhlJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjIzOToKK15JXkkgKiBwYXJlbnQuICBUaGlzIG1ha2VzIGN1 cnJlbnQgcHJvY2VzcyBhcyBhIGNoaWxkIG9mICdpbml0Jy4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MjQwOgorXkleSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNDE6CiteSV5Jc3dpdGNo KGZvcmsoKSkgeyQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50 aGVzaXMgJygnCiMxMTU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjQxOgorICAg ICAgICAgICAgICAgc3dpdGNoKGZvcmsoKSkgewoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTE1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI0MjoK K15JXkljYXNlIC0xOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNDM6CiteSV5JXklwZXJyb3Io ImZ1c2VfZGFlbW9uaXplOiBmb3JrIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTE2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI0NDoKK15J XkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjQ1OgorXkleSWNhc2UgMDok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTYzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjQ2OgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2hlbHBlci5jOjI0NzoKK15JXklkZWZhdWx0OiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzExNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNDg6 CiteSV5JXkkodm9pZCkgcmVhZCh3YWl0ZXJbMF0sICZjb21wbGV0ZWQsIHNpemVvZihjb21wbGV0 ZWQpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjQ5OgorXkleSV5JX2V4aXQoMCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2NzogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjI1MDoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTE2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI1 MjoKK15JXklpZiAoc2V0c2lkKCkgPT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjUz OgorXkleSV5JcGVycm9yKCJmdXNlX2RhZW1vbml6ZTogc2V0c2lkIik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2hlbHBlci5jOjI1NDoKK15JXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MjU1OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjU3OgorXkleSSh2b2lkKSBjaGRp cigiLyIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNTk6CiteSV5JbnVsbGZkID0gb3Blbigi L2Rldi9udWxsIiwgT19SRFdSLCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjYwOgorXkle SWlmIChudWxsZmQgIT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjYxOgorXkleSV5J KHZvaWQpIGR1cDIobnVsbGZkLCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjYyOgorXkle SV5JKHZvaWQpIGR1cDIobnVsbGZkLCAxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjYzOgor XkleSV5JKHZvaWQpIGR1cDIobnVsbGZkLCAyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjY0 OgorXkleSV5JaWYgKG51bGxmZCA+IDIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTE4MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjI2NDoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGxmZCA+IDIp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjY1OgorXkleSV5JXkljbG9zZShudWxsZmQp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNjY6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzoyNjg6CiteSV5JLyogUHJvcGFnYXRlIGNvbXBsZXRpb24gb2YgZGFlbW9uIGluaXRpYWxp emF0aW9uICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI2OToKK15JXkljb21wbGV0ZWQgPSAx OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNzA6CiteSV5JKHZvaWQpIHdyaXRlKHdhaXRlclsx XSwgJmNvbXBsZXRlZCwgc2l6ZW9mKGNvbXBsZXRlZCkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu YzoyNzE6CiteSV5JY2xvc2Uod2FpdGVyWzBdKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mjcy OgorXkleSWNsb3NlKHdhaXRlclsxXSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTE5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI3MzoKK15J fSBlbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTkx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mjc0OgorXkleSSh2b2lkKSBjaGRpcigi LyIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNzU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6Mjc2OgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjgwOgorXkle SSAgIHNpemVfdCBvcF9zaXplLCB2b2lkICp1c2VyX2RhdGEpJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjI4MjoKK15Jc3RydWN0IGZ1c2VfYXJncyBhcmdzID0gRlVTRV9BUkdTX0lOSVQoYXJnYywg YXJndik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI4MzoKK15Jc3RydWN0IGZ1c2UgKmZ1c2U7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwMTogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI4NDoKK15Jc3RydWN0IGZ1c2VfY21kbGluZV9vcHRz IG9wdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwMjog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI4NToKK15JaW50IHJlczskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvaGVscGVyLmM6Mjg3OgorXklpZiAoZnVzZV9wYXJzZV9jbWRsaW5lKCZhcmdzLCAmb3B0 cykgIT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiMxMjA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mjg3 OgorICAgICAgIGlmIChmdXNlX3BhcnNlX2NtZGxpbmUoJmFyZ3MsICZvcHRzKSAhPSAwKQpbLi4u XQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwNTogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI4ODoKK15JXklyZXR1cm4gMTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6MjkwOgorXklpZiAob3B0cy5zaG93X3ZlcnNpb24pIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6MjkxOgorXkleSXByaW50ZigiRlVTRSBsaWJyYXJ5IHZlcnNpb24gJXNcbiIs IFBBQ0tBR0VfVkVSU0lPTik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTIwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI5MjoKK15JXklmdXNl X2xvd2xldmVsX3ZlcnNpb24oKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjkzOgorXkleSXJl cyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMTog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI5NDoKK15JXklnb3RvIG91dDE7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjI5NToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyOTc6 CiteSWlmIChvcHRzLnNob3dfaGVscCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEyMTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyOTg6Cite SV5JaWYoYXJncy5hcmd2WzBdWzBdICE9ICdcMCcpJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJl Zm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzEyMTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzoyOTg6CisgICAgICAgICAgICAgICBpZihhcmdzLmFyZ3ZbMF1bMF0gIT0gJ1ww JykKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyOTk6CiteSV5JXklwcmludGYoInVzYWdlOiAlcyBb b3B0aW9uc10gPG1vdW50cG9pbnQ+XG5cbiIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTIxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMwMDoK K15JXkleSSAgICAgICBhcmdzLmFyZ3ZbMF0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozMDE6 CiteSV5JcHJpbnRmKCJGVVNFIG9wdGlvbnM6XG4iKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MzAyOgorXkleSWZ1c2VfY21kbGluZV9oZWxwKCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTIyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMw MzoKK15JXklmdXNlX2xpYl9oZWxwKCZhcmdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzA0 OgorXkleSXJlcyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTIyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMwNToKK15JXklnb3RvIG91 dDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMwNjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzozMDg6CiteSWlmICghb3B0cy5zaG93X2hlbHAgJiYkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MzA5OgorXkkgICAgIW9wdHMubW91bnRwb2ludCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu YzozMTA6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZXJyb3I6IG5vIG1vdW50cG9pbnQg c3BlY2lmaWVkXG4iKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzExOgorXkleSXJlcyA9IDI7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyOTogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMxMjoKK15JXklnb3RvIG91dDE7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjMxMzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozMTY6CiteSWZ1 c2UgPSBmdXNlX25ld18zMSgmYXJncywgb3AsIG9wX3NpemUsIHVzZXJfZGF0YSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjMxNzoKK15JaWYgKGZ1c2UgPT0gTlVMTCkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzozMTg6CiteSV5JcmVzID0gMzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMjM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzE5 OgorXkleSWdvdG8gb3V0MTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMjM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzIwOgorXkl9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjMyMjoKK15JaWYgKGZ1c2VfbW91bnQoZnVzZSxvcHRzLm1vdW50 cG9pbnQpICE9IDApIHskCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcgKGN0 eDpWeFYpCiMxMjM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzIyOgorICAgICAg IGlmIChmdXNlX21vdW50KGZ1c2Usb3B0cy5tb3VudHBvaW50KSAhPSAwKSB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEyNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozMjM6CiteSV5JcmVzID0g NDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjQxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzI0OgorXkleSWdvdG8gb3V0MjskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjQyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvaGVscGVyLmM6MzI1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTI0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMyNzoKK15J aWYgKGZ1c2VfZGFlbW9uaXplKG9wdHMuZm9yZWdyb3VuZCkgIT0gMCkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzozMjg6CiteSV5JcmVzID0gNTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMjQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzI5 OgorXkleSWdvdG8gb3V0MzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMjQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzMwOgorXkl9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI0OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjMzMjoKK15Jc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqc2UgPSBmdXNl X2dldF9zZXNzaW9uKGZ1c2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozMzM6CiteSWlmIChm dXNlX3NldF9zaWduYWxfaGFuZGxlcnMoc2UpICE9IDApIHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MzM0OgorXkleSXJlcyA9IDY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTI1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMzNToKK15JXkln b3RvIG91dDM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI1 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMzNjoKK15JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzozMzg6CiteSWlmIChvcHRzLnNpbmdsZXRocmVhZCkkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MzM5OgorXkleSXJlcyA9IGZ1c2VfbG9vcChmdXNlKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MzQwOgorXkllbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMjU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzQxOgorXkle SXN0cnVjdCBmdXNlX2xvb3BfY29uZmlnIGxvb3BfY29uZmlnOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzozNDI6CiteSV5JbG9vcF9jb25maWcuY2xvbmVfZmQgPSBvcHRzLmNsb25lX2ZkOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzozNDM6CiteSV5JbG9vcF9jb25maWcubWF4X2lkbGVfdGhyZWFk cyA9IG9wdHMubWF4X2lkbGVfdGhyZWFkczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzQ0Ogor XkleSXJlcyA9IGZ1c2VfbG9vcF9tdF8zMihmdXNlLCAmbG9vcF9jb25maWcpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzozNDU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMjYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzQ2OgorXklp ZiAocmVzKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzEyNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNDY6 CisgICAgICAgaWYgKHJlcykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNDc6CiteSV5J cmVzID0gNzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjY2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzQ5OgorXklmdXNlX3JlbW92ZV9zaWdu YWxfaGFuZGxlcnMoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEyNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNTE6CiteSWZ1c2VfdW5t b3VudChmdXNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MjcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzUzOgorXklmdXNlX2Rlc3Ryb3ko ZnVzZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI3Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM1NToKK15JZnJlZShvcHRzLm1vdW50cG9p bnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNTY6CiteSWZ1c2Vfb3B0X2ZyZWVfYXJncygm YXJncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI3NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM1NzoKK15JcmV0dXJuIHJlczskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjc5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6MzYyOgorXkleSV5JICAgICAgIHN0cnVjdCBmdXNlX2Nvbm5faW5m byAqY29ubikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY0OgorXklpZihvcHRzLT5zZXRfbWF4 X3dyaXRlKSQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVz aXMgJygnCiMxMjgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY0OgorICAgICAg IGlmKG9wdHMtPnNldF9tYXhfd3JpdGUpCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjgxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6MzY0OgorICAgICAgIGlmKG9wdHMtPnNldF9tYXhfd3JpdGUpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6MzY1OgorXkleSWNvbm4tPm1heF93cml0ZSA9IG9wdHMtPm1h eF93cml0ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY2OgorXklpZihvcHRzLT5zZXRfbWF4 X2JhY2tncm91bmQpJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJl bnRoZXNpcyAnKCcKIzEyODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNjY6Cisg ICAgICAgaWYob3B0cy0+c2V0X21heF9iYWNrZ3JvdW5kKQoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTI4MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjM2NjoKKyAgICAgICBpZihvcHRzLT5zZXRfbWF4X2JhY2tn cm91bmQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx Mjg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY3OgorXkleSWNvbm4tPm1heF9i YWNrZ3JvdW5kID0gb3B0cy0+bWF4X2JhY2tncm91bmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTI4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjM2ODoKK15JaWYob3B0cy0+c2V0X2Nvbmdlc3Rpb25fdGhyZXNob2xkKSQKCkVSUk9SOiBzcGFj ZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiMxMjg1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY4OgorICAgICAgIGlmKG9wdHMtPnNldF9jb25nZXN0 aW9uX3RocmVzaG9sZCkKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu YzozNjg6CisgICAgICAgaWYob3B0cy0+c2V0X2Nvbmdlc3Rpb25fdGhyZXNob2xkKQpbLi4uXQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI4NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjM2OToKK15JXkljb25uLT5jb25nZXN0aW9uX3RocmVzaG9s ZCA9IG9wdHMtPmNvbmdlc3Rpb25fdGhyZXNob2xkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoz NzA6CiteSWlmKG9wdHMtPnNldF90aW1lX2dyYW4pJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJl Zm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzEyODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzozNzA6CisgICAgICAgaWYob3B0cy0+c2V0X3RpbWVfZ3JhbikKCkVSUk9SOiBi cmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEy ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNzA6CisgICAgICAgaWYob3B0cy0+ c2V0X3RpbWVfZ3JhbikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNzE6CiteSV5JY29u bi0+dGltZV9ncmFuID0gb3B0cy0+dGltZV9ncmFuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoz NzI6CiteSWlmKG9wdHMtPnNldF9tYXhfcmVhZGFoZWFkKSQKCkVSUk9SOiBzcGFjZSByZXF1aXJl ZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiMxMjg5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvaGVscGVyLmM6MzcyOgorICAgICAgIGlmKG9wdHMtPnNldF9tYXhfcmVhZGFoZWFkKQoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMTI4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3MjoKKyAgICAgICBp ZihvcHRzLT5zZXRfbWF4X3JlYWRhaGVhZCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoz NzM6CiteSV5JY29ubi0+bWF4X3JlYWRhaGVhZCA9IG9wdHMtPm1heF9yZWFkYWhlYWQ7JAoKRVJS T1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojMTI5MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3NToKKyNkZWZpbmUgTExfRU5BQkxFKGNvbmQsY2Fw KSBcCiAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXgg dmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojMTI5MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjM3NToKKyNkZWZpbmUgTExfRU5BQkxFKGNvbmQsY2FwKSBc CisgICAgICAgaWYgKGNvbmQpIGNvbm4tPndhbnQgfD0gKGNhcCkKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzozNzY6CiteSWlmIChjb25kKSBjb25uLT53YW50IHw9IChjYXApJAoKRVJST1I6IHRyYWls aW5nIHN0YXRlbWVudHMgc2hvdWxkIGJlIG9uIG5leHQgbGluZQojMTI5MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjM3NjoKKyAgICAgICBpZiAoY29uZCkgY29ubi0+d2FudCB8PSAo Y2FwKQoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojMTI5 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3NzoKKyNkZWZpbmUgTExfRElTQUJM RShjb25kLGNhcCkgXAogICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogTWFjcm9zIHdp dGggY29tcGxleCB2YWx1ZXMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzCiMxMjk0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mzc3OgorI2RlZmluZSBMTF9ESVNBQkxF KGNvbmQsY2FwKSBcCisgICAgICAgaWYgKGNvbmQpIGNvbm4tPndhbnQgJj0gfihjYXApCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6Mzc4OgorXklpZiAoY29uZCkgY29ubi0+d2FudCAmPSB+KGNhcCkk CgpFUlJPUjogdHJhaWxpbmcgc3RhdGVtZW50cyBzaG91bGQgYmUgb24gbmV4dCBsaW5lCiMxMjk1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mzc4OgorICAgICAgIGlmIChjb25kKSBj b25uLT53YW50ICY9IH4oY2FwKQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTI5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM4MDoKK15JTExfRU5B QkxFKG9wdHMtPnNwbGljZV9yZWFkLCBGVVNFX0NBUF9TUExJQ0VfUkVBRCk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjM4MToKK15JTExfRElTQUJMRShvcHRzLT5ub19zcGxpY2VfcmVhZCwgRlVT RV9DQVBfU1BMSUNFX1JFQUQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozODM6CiteSUxMX0VO QUJMRShvcHRzLT5zcGxpY2Vfd3JpdGUsIEZVU0VfQ0FQX1NQTElDRV9XUklURSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwMTogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjM4NDoKK15JTExfRElTQUJMRShvcHRzLT5ub19zcGxpY2Vfd3JpdGUs IEZVU0VfQ0FQX1NQTElDRV9XUklURSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTMwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM4NjoKK15J TExfRU5BQkxFKG9wdHMtPnNwbGljZV9tb3ZlLCBGVVNFX0NBUF9TUExJQ0VfTU9WRSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjM4NzoKK15JTExfRElTQUJMRShvcHRzLT5ub19zcGxpY2VfbW92 ZSwgRlVTRV9DQVBfU1BMSUNFX01PVkUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozODk6Cite SUxMX0VOQUJMRShvcHRzLT5hdXRvX2ludmFsX2RhdGEsIEZVU0VfQ0FQX0FVVE9fSU5WQUxfREFU QSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwNzogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM5MDoKK15JTExfRElTQUJMRShvcHRzLT5ub19h dXRvX2ludmFsX2RhdGEsIEZVU0VfQ0FQX0FVVE9fSU5WQUxfREFUQSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2hlbHBlci5jOjM5MjoKK15JTExfRElTQUJMRShvcHRzLT5ub19yZWFkZGlycGx1cywgRlVTRV9D QVBfUkVBRERJUlBMVVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEzMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozOTM6CiteSUxMX0RJU0FC TEUob3B0cy0+bm9fcmVhZGRpcnBsdXNfYXV0bywgRlVTRV9DQVBfUkVBRERJUlBMVVNfQVVUTyk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM5NToKK15JTExfRU5BQkxFKG9wdHMtPmFzeW5jX2Rp bywgRlVTRV9DQVBfQVNZTkNfRElPKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMzEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mzk2OgorXklM TF9ESVNBQkxFKG9wdHMtPm5vX2FzeW5jX2RpbywgRlVTRV9DQVBfQVNZTkNfRElPKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6Mzk4OgorXklMTF9FTkFCTEUob3B0cy0+d3JpdGViYWNrX2NhY2hl LCBGVVNFX0NBUF9XUklURUJBQ0tfQ0FDSEUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozOTk6 CiteSUxMX0RJU0FCTEUob3B0cy0+bm9fd3JpdGViYWNrX2NhY2hlLCBGVVNFX0NBUF9XUklURUJB Q0tfQ0FDSEUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MDE6CiteSUxMX0VOQUJMRShvcHRz LT5hc3luY19yZWFkLCBGVVNFX0NBUF9BU1lOQ19SRUFEKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6NDAyOgorXklMTF9ESVNBQkxFKG9wdHMtPnN5bmNfcmVhZCwgRlVTRV9DQVBfQVNZTkNfUkVB RCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMyMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQwNDoKK15JTExfRElTQUJMRShvcHRzLT5ub19y ZW1vdGVfcG9zaXhfbG9jaywgRlVTRV9DQVBfUE9TSVhfTE9DS1MpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzo0MDU6CiteSUxMX0RJU0FCTEUob3B0cy0+bm9fcmVtb3RlX2Zsb2NrLCBGVVNFX0NB UF9GTE9DS19MT0NLUyk7JAoKRVJST1I6ICJmb28qIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIK IzEzMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MDg6CitzdHJ1Y3QgZnVzZV9j b25uX2luZm9fb3B0cyogZnVzZV9wYXJzZV9jb25uX2luZm9fb3B0cyhzdHJ1Y3QgZnVzZV9hcmdz ICphcmdzKQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMyNzog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQxMDoKK15Jc3RydWN0IGZ1c2VfY29ubl9p bmZvX29wdHMgKm9wdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTMyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQxMjoKK15Jb3B0cyA9IGNh bGxvYygxLCBzaXplb2Yoc3RydWN0IGZ1c2VfY29ubl9pbmZvX29wdHMpKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzMwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6NDEzOgorXklpZihvcHRzID09IE5VTEwpIHskCgpFUlJPUjogc3BhY2UgcmVx dWlyZWQgYmVmb3JlIHRoZSBvcGVuIHBhcmVudGhlc2lzICcoJwojMTMzMDogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjQxMzoKKyAgICAgICBpZihvcHRzID09IE5VTEwpIHsKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9oZWxwZXIuYzo0MTQ6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiY2FsbG9j IGZhaWxlZFxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTMzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQxNToKK15JXklyZXR1cm4gTlVM TDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzMzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDE2OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjQxNzoKK15JaWYoZnVzZV9vcHRfcGFyc2UoYXJncywgb3B0cywgY29ubl9pbmZvX29wdF9z cGVjLCBOVUxMKSA9PSAtMSkgeyQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9w ZW4gcGFyZW50aGVzaXMgJygnCiMxMzM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 NDE3OgorICAgICAgIGlmKGZ1c2Vfb3B0X3BhcnNlKGFyZ3MsIG9wdHMsIGNvbm5faW5mb19vcHRf c3BlYywgTlVMTCkgPT0gLTEpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MTg6CiteSV5JZnJl ZShvcHRzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzM2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDE5OgorXkleSXJldHVybiBOVUxMOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MjA6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 NDIxOgorXklyZXR1cm4gb3B0czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMzQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDI2OgorXklzdHJ1 Y3QgbW91bnRfb3B0cyAqb3B0cyA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTM0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQyNzoK K15JaW50IGZkID0gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTM0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQyODoKK15JY29uc3QgY2hh ciAqYXJndltdID0geyAiIiwgIi1vIiwgb3B0aW9ucyB9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu Yzo0Mjk6CiteSWludCBhcmdjID0gc2l6ZW9mKGFyZ3YpIC8gc2l6ZW9mKGFyZ3ZbMF0pOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNDc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MzA6CiteSXN0cnVjdCBmdXNlX2FyZ3MgYXJncyA9IEZVU0Vf QVJHU19JTklUKGFyZ2MsIChjaGFyKiopIGFyZ3YpOyQKCkVSUk9SOiAiKGZvbyoqKSIgc2hvdWxk IGJlICIoZm9vICoqKSIKIzEzNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MzA6 CisgICAgICAgc3RydWN0IGZ1c2VfYXJncyBhcmdzID0gRlVTRV9BUkdTX0lOSVQoYXJnYywgKGNo YXIqKikgYXJndik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MzQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDMyOgorXklvcHRzID0gcGFyc2Vf bW91bnRfb3B0cygmYXJncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTM1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQzMzoKK15JaWYgKG9w dHMgPT0gTlVMTCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiMxMzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 NDMzOgorICAgICAgIGlmIChvcHRzID09IE5VTEwpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6NDM0OgorXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMzUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDM2OgorXklm ZCA9IGZ1c2Vfa2Vybl9tb3VudChtb3VudHBvaW50LCBvcHRzKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6NDM3OgorXklkZXN0cm95X21vdW50X29wdHMob3B0cyk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hl bHBlci5jOjQzOToKK15JcmV0dXJuIGZkOyQKCnRvdGFsOiA5NDMgZXJyb3JzLCAyMSB3YXJuaW5n cywgMTMxNSBsaW5lcyBjaGVja2VkCgpQYXRjaCAzLzEwOSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBs ZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMg cmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlO RVJTLgoKNC8xMDkgQ2hlY2tpbmcgY29tbWl0IDAwMDIyYmNhNDU0OSAodmlydGlvZnNkOiBBZGQg ZnVzZV9sb3dsZXZlbC5jKQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMp LCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiMxNzogCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMy MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOgorLyoKKyAgRlVTRTog RmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM1Ogor I2RlZmluZSBGX1NFVFBJUEVfU1peSShGX0xJTlVYX1NQRUNJRklDX0JBU0UgKyA3KSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQyOgorI2RlZmluZSBjb250YWluZXJfb2YocHRyLCB0eXBl LCBtZW1iZXIpICh7XkleSV5JXklcJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDM6Cite SV5JXkljb25zdCB0eXBlb2YoICgodHlwZSAqKTApLT5tZW1iZXIgKSAqX19tcHRyID0gKHB0cik7 IFwkCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICcqJyAoY3R4Old4VikKIzY0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQzOgorICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB0eXBlb2YoICgodHlwZSAqKTApLT5tZW1iZXIgKSAqX19tcHRyID0g KHB0cik7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYWZ0ZXIgdGhhdCBvcGVuIHBh cmVudGhlc2lzICcoJwojNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NDM6CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVvZiggKCh0eXBlICopMCktPm1l bWJlciApICpfX21wdHIgPSAocHRyKTsgXAoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmVmb3Jl IHRoYXQgY2xvc2UgcGFyZW50aGVzaXMgJyknCiM2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo0MzoKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZW9mKCAo KHR5cGUgKikwKS0+bWVtYmVyICkgKl9fbXB0ciA9IChwdHIpOyBcCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo0NDoKK15JXkleSSh0eXBlICopKCAoY2hhciAqKV9fbXB0ciAtIG9mZnNldG9m KHR5cGUsbWVtYmVyKSApO30pJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywn IChjdHg6VnhWKQojNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDQ6 CisgICAgICAgICAgICAgICAgICAgICAgICh0eXBlICopKCAoY2hhciAqKV9fbXB0ciAtIG9mZnNl dG9mKHR5cGUsbWVtYmVyKSApO30pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0 ZXIgdGhhdCAnOycgKGN0eDpWeFYpCiM2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo0NDoKKyAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUgKikoIChjaGFyICopX19t cHRyIC0gb2Zmc2V0b2YodHlwZSxtZW1iZXIpICk7fSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJP Ujogc3BhY2UgcHJvaGliaXRlZCBhZnRlciB0aGF0IG9wZW4gcGFyZW50aGVzaXMgJygnCiM2NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NDoKKyAgICAgICAgICAgICAg ICAgICAgICAgKHR5cGUgKikoIChjaGFyICopX19tcHRyIC0gb2Zmc2V0b2YodHlwZSxtZW1iZXIp ICk7fSkKCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGJlZm9yZSB0aGF0IGNsb3NlIHBhcmVudGhl c2lzICcpJwojNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDQ6Cisg ICAgICAgICAgICAgICAgICAgICAgICh0eXBlICopKCAoY2hhciAqKV9fbXB0ciAtIG9mZnNldG9m KHR5cGUsbWVtYmVyKSApO30pCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NzoKK15JdWlu dDY0X3Qga2g7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDg6CiteSXN0cnVjdCBmdXNl X3Nlc3Npb24gKnNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU1OgorXklwYWdlc2l6 ZSA9IGdldHBhZ2VzaXplKCk7JAoKRVJST1I6IHVzZSBxZW11X3JlYWxfaG9zdF9wYWdlX3NpemUg aW5zdGVhZCBvZiBnZXRwYWdlc2l6ZSgpCiM3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo1NToKKyAgICAgICBwYWdlc2l6ZSA9IGdldHBhZ2VzaXplKCk7CgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDoKK15JYXR0ci0+aW5vXkk9IHN0YnVmLT5zdF9pbm87JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjE6CiteSWF0dHItPm1vZGVeST0gc3RidWYtPnN0 X21vZGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjI6CiteSWF0dHItPm5saW5rXkk9 IHN0YnVmLT5zdF9ubGluazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MzoKK15JYXR0 ci0+dWlkXkk9IHN0YnVmLT5zdF91aWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjQ6 CiteSWF0dHItPmdpZF5JPSBzdGJ1Zi0+c3RfZ2lkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjY1OgorXklhdHRyLT5yZGV2Xkk9IHN0YnVmLT5zdF9yZGV2OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjY2OgorXklhdHRyLT5zaXplXkk9IHN0YnVmLT5zdF9zaXplOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY3OgorXklhdHRyLT5ibGtzaXplXkk9IHN0YnVmLT5zdF9i bGtzaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY4OgorXklhdHRyLT5ibG9ja3Ne ST0gc3RidWYtPnN0X2Jsb2NrczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2OToKK15J YXR0ci0+YXRpbWVeST0gc3RidWYtPnN0X2F0aW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjcwOgorXklhdHRyLT5tdGltZV5JPSBzdGJ1Zi0+c3RfbXRpbWU7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6NzE6CiteSWF0dHItPmN0aW1lXkk9IHN0YnVmLT5zdF9jdGltZTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MjoKK15JYXR0ci0+YXRpbWVuc2VjID0gU1RfQVRJ TV9OU0VDKHN0YnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MzoKK15JYXR0ci0+ bXRpbWVuc2VjID0gU1RfTVRJTV9OU0VDKHN0YnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo3NDoKK15JYXR0ci0+Y3RpbWVuc2VjID0gU1RfQ1RJTV9OU0VDKHN0YnVmKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Nzk6CiteSXN0YnVmLT5zdF9tb2RlXkkgICAgICAgPSBh dHRyLT5tb2RlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEw MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MDoKK15Jc3RidWYtPnN0 X3VpZF5JICAgICAgID0gYXR0ci0+dWlkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4 MToKK15Jc3RidWYtPnN0X2dpZF5JICAgICAgID0gYXR0ci0+Z2lkOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo4MjoKK15Jc3RidWYtPnN0X3NpemVeSSAgICAgICA9IGF0dHItPnNpemU7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgzOgorXklzdGJ1Zi0+c3RfYXRpbWVeSSAg ICAgICA9IGF0dHItPmF0aW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NDoKK15J c3RidWYtPnN0X210aW1lXkkgICAgICAgPSBhdHRyLT5tdGltZTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6ODU6CiteSXN0YnVmLT5zdF9jdGltZSAgICAgICAgPSBhdHRyLT5jdGltZTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODY6CiteSVNUX0FUSU1fTlNFQ19TRVQoc3Ri dWYsIGF0dHItPmF0aW1lbnNlYyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg3Ogor XklTVF9NVElNX05TRUNfU0VUKHN0YnVmLCBhdHRyLT5tdGltZW5zZWMpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo4ODoKK15JU1RfQ1RJTV9OU0VDX1NFVChzdGJ1ZiwgYXR0ci0+Y3Rp bWVuc2VjKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTE6CitzdGF0aWNeSXNpemVf dCBpb3ZfbGVuZ3RoKGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCBzaXplX3QgY291bnQpJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkzOgorXklzaXplX3Qgc2VnOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo5NDoKK15Jc2l6ZV90IHJldCA9IDA7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjk2OgorXklmb3IgKHNlZyA9IDA7IHNlZyA8IGNvdW50OyBzZWcrKykkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiMxMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTY6CisgICAg ICAgZm9yIChzZWcgPSAwOyBzZWcgPCBjb3VudDsgc2VnKyspClsuLi5dCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6OTc6CiteSV5JcmV0ICs9IGlvdltzZWddLmlvdl9sZW47JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk4OgorXklyZXR1cm4gcmV0OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMDM6CiteSXJlcS0+bmV4dCA9IHJlcTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTA0OgorXklyZXEtPnByZXYgPSByZXE7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjEwOToKK15Jc3RydWN0IGZ1c2VfcmVxICpwcmV2ID0gcmVxLT5wcmV2OyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTA6CiteSXN0cnVjdCBmdXNlX3JlcSAqbmV4dCA9 IHJlcS0+bmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTExOgorXklwcmV2LT5u ZXh0ID0gbmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEyOgorXkluZXh0LT5w cmV2ID0gcHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE3OgorXklzdHJ1Y3Qg ZnVzZV9yZXEgKnByZXYgPSBuZXh0LT5wcmV2OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMTg6CiteSXJlcS0+bmV4dCA9IG5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjExOToKK15JcmVxLT5wcmV2ID0gcHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTIwOgorXklwcmV2LT5uZXh0ID0gcmVxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MjE6CiteSW5leHQtPnByZXYgPSByZXE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEy NjoKK15JcHRocmVhZF9tdXRleF9kZXN0cm95KCZyZXEtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMjc6CiteSWZyZWUocmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTMyOgorXklpbnQgY3RyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzM6 CiteSXN0cnVjdCBmdXNlX3Nlc3Npb24gKnNlID0gcmVxLT5zZTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTM1OgorXklwdGhyZWFkX211dGV4X2xvY2soJnNlLT5sb2NrKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM2OgorXklyZXEtPnUubmkuZnVuYyA9IE5VTEw7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNzoKK15JcmVxLT51Lm5pLmRhdGEgPSBOVUxM OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1OTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzg6CiteSWxpc3RfZGVsX3JlcShyZXEp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzk6CiteSWN0ciA9IC0tcmVxLT5jdHI7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MDoKK15JZnVzZV9jaGFuX3B1dChyZXEt PmNoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQxOgorXklyZXEtPmNoID0gTlVM TDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQyOgorXklwdGhyZWFkX211dGV4X3Vu bG9jaygmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDM6CiteSWlm ICghY3RyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzE2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNDM6CisgICAgICAgaWYgKCFjdHIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTQ0OgorXkleSWRlc3Ryb3lfcmVxKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE0OToKK15Jc3RydWN0IGZ1c2VfcmVxICpyZXE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE1MToKK15JcmVxID0gKHN0cnVjdCBmdXNlX3JlcSAqKSBjYWxsb2MoMSwgc2l6ZW9m KHN0cnVjdCBmdXNlX3JlcSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTI6Cite SWlmIChyZXEgPT0gTlVMTCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTM6Cite SV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogZmFpbGVkIHRvIGFsbG9jYXRlIHJlcXVl c3RcbiIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTQ6CiteSX0gZWxzZSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NToKK15JXklyZXEtPnNlID0gc2U7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NjoKK15JXklyZXEtPmN0ciA9IDE7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NzoKK15JXklsaXN0X2luaXRfcmVxKHJlcSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1ODoKK15JXklmdXNlX211dGV4X2luaXQoJnJlcS0+ bG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1OToKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjE6CiteSXJldHVybiByZXE7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE2NjoKK15JXkleSSBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGNvdW50KSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjg6CiteSXN0cnVjdCBmdXNlX291dF9oZWFk ZXIgKm91dCA9IGlvdlswXS5pb3ZfYmFzZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTcwOgorXklvdXQtPmxlbiA9IGlvdl9sZW5ndGgoaW92LCBjb3VudCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE3MToKK15JaWYgKHNlLT5kZWJ1ZykgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNzI6CiteSV5JaWYgKG91dC0+dW5pcXVlID09IDApIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTczOgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcs ICJOT1RJRlk6IGNvZGU9JWQgbGVuZ3RoPSV1XG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxNzQ6CiteSV5JXkleSW91dC0+ZXJyb3IsIG91dC0+bGVuKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTc1OgorXkleSX0gZWxzZSBpZiAob3V0LT5lcnJvcikgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzY6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJV RywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc3OgorXkleSV5JXkkiICAgdW5pcXVl OiAlbGx1LCBlcnJvcjogJWkgKCVzKSwgb3V0c2l6ZTogJWlcbiIsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE3ODoKK15JXkleSV5JKHVuc2lnbmVkIGxvbmcgbG9uZykgb3V0LT51bmlx dWUsIG91dC0+ZXJyb3IsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3OToKK15JXkle SV5Jc3RyZXJyb3IoLW91dC0+ZXJyb3IpLCBvdXQtPmxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE4MDoKK15JXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxODE6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTgyOgorXkleSV5JXkkiICAgdW5pcXVlOiAlbGx1LCBzdWNjZXNzLCBvdXRz aXplOiAlaVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgzOgorXkleSV5JXkko dW5zaWduZWQgbG9uZyBsb25nKSBvdXQtPnVuaXF1ZSwgb3V0LT5sZW4pOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxODQ6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxODU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg3OgorXklzc2l6ZV90 IHJlcyA9IHdyaXRldihjaCA/IGNoLT5mZCA6IHNlLT5mZCwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTg4OgorXkleSV5JICAgICBpb3YsIGNvdW50KTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTg5OgorXklpbnQgZXJyID0gZXJybm87JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE5MToKK15JaWYgKHJlcyA9PSAtMSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxOTI6CiteSV5JYXNzZXJ0KHNlICE9IE5VTEwpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxOTQ6CiteSV5JLyogRU5PRU5UIG1lYW5zIHRoZSBvcGVyYXRpb24gd2FzIGlu dGVycnVwdGVkICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NToKK15JXklpZiAo IWZ1c2Vfc2Vzc2lvbl9leGl0ZWQoc2UpICYmIGVyciAhPSBFTk9FTlQpJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjE2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NToKKyAgICAgICAgICAgICAg IGlmICghZnVzZV9zZXNzaW9uX2V4aXRlZChzZSkgJiYgZXJyICE9IEVOT0VOVCkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTY6CiteSV5JXklwZXJyb3IoImZ1c2U6IHdyaXRp bmcgZGV2aWNlIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NzoKK15JXklyZXR1 cm4gLWVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk4OgorXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMDoKK15JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIwNToKK15JXkleSSAgICAgICBpbnQgY291bnQpJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIwNzoKK15Jc3RydWN0IGZ1c2Vfb3V0X2hlYWRlciBvdXQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwOToKK15JaWYgKGVycm9yIDw9IC0xMDAwIHx8IGVy cm9yID4gMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIz MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTA6CiteSV5JZnVzZV9s b2coRlVTRV9MT0dfRVJSLCAiZnVzZTogYmFkIGVycm9yIHZhbHVlOiAlaVxuIixeSWVycm9yKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExOgorXkleSWVycm9yID0gLUVSQU5HRTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIxNDoKK15Jb3V0LnVuaXF1ZSA9IHJlcS0+dW5pcXVlOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTU6CiteSW91dC5lcnJvciA9IGVycm9yOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTc6CiteSWlvdlswXS5pb3ZfYmFzZSA9ICZvdXQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxODoKK15JaW92WzBdLmlvdl9sZW4gPSBzaXplb2Yo c3RydWN0IGZ1c2Vfb3V0X2hlYWRlcik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIy MDoKK15JcmV0dXJuIGZ1c2Vfc2VuZF9tc2cocmVxLT5zZSwgcmVxLT5jaCwgaW92LCBjb3VudCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNDoKK15JXkleSSAgaW50IGNvdW50KSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjY6CiteSWludCByZXM7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIyODoKK15JcmVzID0gZnVzZV9zZW5kX3JlcGx5X2lvdl9ub2Zy ZWUocmVxLCBlcnJvciwgaW92LCBjb3VudCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIyOToKK15JZnVzZV9mcmVlX3JlcShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMzA6CiteSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNDoK K15JXkkgICAgICBzaXplX3QgYXJnc2l6ZSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjM2OgorXklzdHJ1Y3QgaW92ZWMgaW92WzJdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMzc6CiteSWludCBjb3VudCA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIz ODoKK15JaWYgKGFyZ3NpemUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM5Ogor XkleSWlvdlsxXS5pb3ZfYmFzZSA9ICh2b2lkICopIGFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjQwOgorXkleSWlvdlsxXS5pb3ZfbGVuID0gYXJnc2l6ZTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjQxOgorXkleSWNvdW50Kys7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI0MjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDM6Cite SXJldHVybiBzZW5kX3JlcGx5X2lvdihyZXEsIGVycm9yLCBpb3YsIGNvdW50KTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ4OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNDk6CiteSXN0cnVjdCBpb3ZlYyAqcGFkZGVkX2lvdjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjUxOgorXklwYWRkZWRfaW92ID0gbWFsbG9jKChjb3VudCArIDEp ICogc2l6ZW9mKHN0cnVjdCBpb3ZlYykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NTI6CiteSWlmIChwYWRkZWRfaW92ID09IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjczOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MjoKKyAgICAgICBpZiAocGFkZGVkX2lvdiA9PSBO VUxMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MzoKK15JXklyZXR1cm4g ZnVzZV9yZXBseV9lcnIocmVxLCBFTk9NRU0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNTU6CiteSW1lbWNweShwYWRkZWRfaW92ICsgMSwgaW92LCBjb3VudCAqIHNpemVvZihzdHJ1 Y3QgaW92ZWMpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU2OgorXkljb3VudCsr OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTg6CiteSXJlcyA9IHNlbmRfcmVwbHlf aW92KHJlcSwgMCwgcGFkZGVkX2lvdiwgY291bnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNTk6CiteSWZyZWUocGFkZGVkX2lvdik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI2MToKK15JcmV0dXJuIHJlczskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBs ZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI2NToKKy8qIGBidWZgIGlzIGFsbG93ZWQgdG8gYmUgZW1wdHkgc28g dGhhdCB0aGUgcHJvcGVyIHNpemUgbWF5IGJlCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2Ug KiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjY2OgorLyogYGJ1ZmAgaXMgYWxsb3dlZCB0byBiZSBlbXB0eSBzbyB0aGF0IHRo ZSBwcm9wZXIgc2l6ZSBtYXkgYmUKKyAgIGFsbG9jYXRlZCBieSB0aGUgY2FsbGVyICovCgpXQVJO SU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUK IzI4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjY6CisgICBhbGxv Y2F0ZWQgYnkgdGhlIGNhbGxlciAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2ODoK K15JXkleSSBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1Y3Qgc3RhdCAqc3RidWYsIG9mZl90 IG9mZikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcwOgorXkkodm9pZClyZXE7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MToKK15Jc2l6ZV90IG5hbWVsZW47JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MjoKK15Jc2l6ZV90IGVudGxlbjskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjczOgorXklzaXplX3QgZW50bGVuX3BhZGRlZDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc0OgorXklzdHJ1Y3QgZnVzZV9kaXJlbnQgKmRpcmVu dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc2OgorXkluYW1lbGVuID0gc3RybGVu KG5hbWUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzc6CiteSWVudGxlbiA9IEZV U0VfTkFNRV9PRkZTRVQgKyBuYW1lbGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy Nzg6CiteSWVudGxlbl9wYWRkZWQgPSBGVVNFX0RJUkVOVF9BTElHTihlbnRsZW4pOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODA6CiteSWlmICgoYnVmID09IE5VTEwpIHx8IChlbnRs ZW5fcGFkZGVkID4gYnVmc2l6ZSkpJAoKRVJST1I6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNv bmRpdGlvbmFsIHN0YXRlbWVudHMgKDgsIDEwKQojMzAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4MDoKKyAgICAgICBpZiAoKGJ1ZiA9PSBOVUxMKSB8fCAoZW50bGVu X3BhZGRlZCA+IGJ1ZnNpemUpKQorICAgICAgICAgcmV0dXJuIGVudGxlbl9wYWRkZWQ7CgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiMzMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjgwOgorICAgICAg IGlmICgoYnVmID09IE5VTEwpIHx8IChlbnRsZW5fcGFkZGVkID4gYnVmc2l6ZSkpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjgxOgorXkkgIHJldHVybiBlbnRsZW5fcGFkZGVk OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODM6CiteSWRpcmVudCA9IChzdHJ1Y3Qg ZnVzZV9kaXJlbnQqKSBidWY7JAoKRVJST1I6ICIoZm9vKikiIHNob3VsZCBiZSAiKGZvbyAqKSIK IzMwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODM6CisgICAgICAg ZGlyZW50ID0gKHN0cnVjdCBmdXNlX2RpcmVudCopIGJ1ZjsKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyODQ6CiteSWRpcmVudC0+aW5vID0gc3RidWYtPnN0X2lubzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjg1OgorXklkaXJlbnQtPm9mZiA9IG9mZjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjg2OgorXklkaXJlbnQtPm5hbWVsZW4gPSBuYW1lbGVuOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODc6CiteSWRpcmVudC0+dHlwZSA9IChzdGJ1Zi0+ c3RfbW9kZSAmIFNfSUZNVCkgPj4gMTI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4 ODoKK15JbWVtY3B5KGRpcmVudC0+bmFtZSwgbmFtZSwgbmFtZWxlbik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4OToKK15JbWVtc2V0KGRpcmVudC0+bmFtZSArIG5hbWVsZW4sIDAs IGVudGxlbl9wYWRkZWQgLSBlbnRsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy OTE6CiteSXJldHVybiBlbnRsZW5fcGFkZGVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyOTU6CiteSV5JXkkgICBzdHJ1Y3QgZnVzZV9rc3RhdGZzICprc3RhdGZzKSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTc6CiteSWtzdGF0ZnMtPmJzaXplXkkgPSBzdGJ1Zi0+Zl9i c2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk4OgorXklrc3RhdGZzLT5mcnNp emVeSSA9IHN0YnVmLT5mX2Zyc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk5 OgorXklrc3RhdGZzLT5ibG9ja3NeSSA9IHN0YnVmLT5mX2Jsb2NrczskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzAwOgorXklrc3RhdGZzLT5iZnJlZV5JID0gc3RidWYtPmZfYmZyZWU7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMToKK15Ja3N0YXRmcy0+YmF2YWlsXkkg PSBzdGJ1Zi0+Zl9iYXZhaWw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMjoKK15J a3N0YXRmcy0+ZmlsZXNeSSA9IHN0YnVmLT5mX2ZpbGVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzozMDM6CiteSWtzdGF0ZnMtPmZmcmVlXkkgPSBzdGJ1Zi0+Zl9mZnJlZTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA0OgorXklrc3RhdGZzLT5uYW1lbGVuID0gc3RidWYt PmZfbmFtZW1heDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA5OgorXklyZXR1cm4g c2VuZF9yZXBseShyZXEsIDAsIGFyZywgYXJnc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjMxNDoKK15JcmV0dXJuIHNlbmRfcmVwbHkocmVxLCAtZXJyLCBOVUxMLCAwKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzE5OgorXklmdXNlX2ZyZWVfcmVxKHJlcSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMyNDoKK15JaWYgKHQgPiAoZG91YmxlKSBVTE9O R19NQVgpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMzQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjMyNDoKKyAgICAgICBpZiAodCA+IChkb3VibGUpIFVMT05HX01BWCkKWy4uLl0KKyAgICAgICBl bHNlIGlmICh0IDwgMC4wKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzozMjU6CiteSV5JcmV0dXJuIFVMT05HX01BWDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzI2OgorXkllbHNlIGlmICh0IDwgMC4wKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzM0NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMjY6CisgICAgICAgZWxzZSBpZiAo dCA8IDAuMCkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MzI3OgorXkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoz Mjg6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzI5OgorXkleSXJldHVy biAodW5zaWduZWQgbG9uZykgdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzM0Ogor Xklkb3VibGUgZiA9IHQgLSAoZG91YmxlKSBjYWxjX3RpbWVvdXRfc2VjKHQpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzozMzU6CiteSWlmIChmIDwgMC4wKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzM1NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMzU6CisgICAgICAgaWYgKGYgPCAw LjApClsuLi5dCisgICAgICAgZWxzZSBpZiAoZiA+PSAwLjk5OTk5OTk5OSkKWy4uLl0KKyAgICAg ICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzM2OgorXkleSXJldHVy biAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMzc6CiteSWVsc2UgaWYgKGYgPj0g MC45OTk5OTk5OTkpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojMzU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjMzNzoKKyAgICAgICBlbHNlIGlmIChmID49IDAuOTk5OTk5OTk5KQpbLi4uXQorICAg ICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMzg6CiteSV5JcmV0 dXJuIDk5OTk5OTk5OTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzM5OgorXkllbHNl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzYxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM0MDoKK15JXklyZXR1cm4gKHVuc2lnbmVk IGludCkgKGYgKiAxLjBlOSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM0NDoKK15J XkkgICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfZW50cnlfcGFyYW0gKmUpJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjM0NjoKK15JYXJnLT5ub2RlaWQgPSBlLT5pbm87JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjM0NzoKK15JYXJnLT5nZW5lcmF0aW9uID0gZS0+Z2VuZXJhdGlv bjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzQ4OgorXklhcmctPmVudHJ5X3ZhbGlk ID0gY2FsY190aW1lb3V0X3NlYyhlLT5lbnRyeV90aW1lb3V0KTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MzQ5OgorXklhcmctPmVudHJ5X3ZhbGlkX25zZWMgPSBjYWxjX3RpbWVvdXRf bnNlYyhlLT5lbnRyeV90aW1lb3V0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzUw OgorXklhcmctPmF0dHJfdmFsaWQgPSBjYWxjX3RpbWVvdXRfc2VjKGUtPmF0dHJfdGltZW91dCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzcyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM1MToKK15JYXJnLT5hdHRyX3ZhbGlkX25z ZWMgPSBjYWxjX3RpbWVvdXRfbnNlYyhlLT5hdHRyX3RpbWVvdXQpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzozNTI6CiteSWNvbnZlcnRfc3RhdCgmZS0+YXR0ciwgJmFyZy0+YXR0cik7 JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRl IGxpbmUKIzM3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNTU6Cisv KiBgYnVmYCBpcyBhbGxvd2VkIHRvIGJlIGVtcHR5IHNvIHRoYXQgdGhlIHByb3BlciBzaXplIG1h eSBiZQoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwoj Mzc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM1NjoKKy8qIGBidWZg IGlzIGFsbG93ZWQgdG8gYmUgZW1wdHkgc28gdGhhdCB0aGUgcHJvcGVyIHNpemUgbWF5IGJlCisg ICBhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlciAqLwoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNl IGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMzNzc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MzU2OgorICAgYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIgKi8K CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNTg6CiteSV5JXkkgICAgICBjb25zdCBjaGFy ICpuYW1lLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNTk6CiteSV5JXkkgICAgICBj b25zdCBzdHJ1Y3QgZnVzZV9lbnRyeV9wYXJhbSAqZSwgb2ZmX3Qgb2ZmKSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzozNjE6CiteSSh2b2lkKXJlcTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MzYyOgorXklzaXplX3QgbmFtZWxlbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MzYzOgorXklzaXplX3QgZW50bGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzozNjQ6CiteSXNpemVfdCBlbnRsZW5fcGFkZGVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzozNjY6CiteSW5hbWVsZW4gPSBzdHJsZW4obmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjM2NzoKK15JZW50bGVuID0gRlVTRV9OQU1FX09GRlNFVF9ESVJFTlRQTFVTICsg bmFtZWxlbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzY4OgorXkllbnRsZW5fcGFk ZGVkID0gRlVTRV9ESVJFTlRfQUxJR04oZW50bGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MzY5OgorXklpZiAoKGJ1ZiA9PSBOVUxMKSB8fCAoZW50bGVuX3BhZGRlZCA+IGJ1ZnNp emUpKSQKCkVSUk9SOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1l bnRzICg4LCAxMCkKIzM5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoz Njk6CisgICAgICAgaWYgKChidWYgPT0gTlVMTCkgfHwgKGVudGxlbl9wYWRkZWQgPiBidWZzaXpl KSkKKyAgICAgICAgIHJldHVybiBlbnRsZW5fcGFkZGVkOwoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzkwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM2OToKKyAgICAgICBpZiAoKGJ1ZiA9PSBOVUxM KSB8fCAoZW50bGVuX3BhZGRlZCA+IGJ1ZnNpemUpKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjM3MDoKK15JICByZXR1cm4gZW50bGVuX3BhZGRlZDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzcyOgorXklzdHJ1Y3QgZnVzZV9kaXJlbnRwbHVzICpkcCA9IChzdHJ1 Y3QgZnVzZV9kaXJlbnRwbHVzICopIGJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MzczOgorXkltZW1zZXQoJmRwLT5lbnRyeV9vdXQsIDAsIHNpemVvZihkcC0+ZW50cnlfb3V0KSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzk1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM3NDoKK15JZmlsbF9lbnRyeSgmZHAtPmVu dHJ5X291dCwgZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Mzk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM3NjoKK15Jc3RydWN0 IGZ1c2VfZGlyZW50ICpkaXJlbnQgPSAmZHAtPmRpcmVudDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mzc3OgorXklkaXJlbnQtPmlubyA9IGUtPmF0dHIuc3RfaW5vOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzozNzg6CiteSWRpcmVudC0+b2ZmID0gb2ZmOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzozNzk6CiteSWRpcmVudC0+bmFtZWxlbiA9IG5hbWVsZW47JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM4MDoKK15JZGlyZW50LT50eXBlID0gKGUtPmF0 dHIuc3RfbW9kZSAmIFNfSUZNVCkgPj4gMTI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjM4MToKK15JbWVtY3B5KGRpcmVudC0+bmFtZSwgbmFtZSwgbmFtZWxlbik7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjM4MjoKK15JbWVtc2V0KGRpcmVudC0+bmFtZSArIG5hbWVsZW4s IDAsIGVudGxlbl9wYWRkZWQgLSBlbnRsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzozODQ6CiteSXJldHVybiBlbnRsZW5fcGFkZGVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzQwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzozODg6CiteSV5JICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmKSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxMTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozOTA6CiteSWFyZy0+ZmggPSBmLT5maDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzkxOgorXklpZiAoZi0+ZGlyZWN0X2lvKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzQxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozOTE6CisgICAgICAg aWYgKGYtPmRpcmVjdF9pbykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozOTI6 CiteSV5JYXJnLT5vcGVuX2ZsYWdzIHw9IEZPUEVOX0RJUkVDVF9JTzskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzkzOgorXklpZiAoZi0+a2VlcF9jYWNoZSkkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0MTQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzkzOgorICAgICAgIGlmIChmLT5r ZWVwX2NhY2hlKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM5NDoKK15JXklh cmctPm9wZW5fZmxhZ3MgfD0gRk9QRU5fS0VFUF9DQUNIRTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mzk1OgorXklpZiAoZi0+Y2FjaGVfcmVhZGRpcikkCgpFUlJPUjogYnJhY2VzIHt9 IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0MTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mzk1OgorICAgICAgIGlmIChmLT5jYWNo ZV9yZWFkZGlyKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM5NjoKK15JXklh cmctPm9wZW5fZmxhZ3MgfD0gRk9QRU5fQ0FDSEVfRElSOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzozOTc6CiteSWlmIChmLT5ub25zZWVrYWJsZSkkCgpFUlJPUjogYnJhY2VzIHt9IGFy ZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0MTg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mzk3OgorICAgICAgIGlmIChmLT5ub25zZWVr YWJsZSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQx OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozOTg6CiteSV5JYXJnLT5v cGVuX2ZsYWdzIHw9IEZPUEVOX05PTlNFRUtBQkxFOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzQyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo0MDM6CiteSXN0cnVjdCBmdXNlX2VudHJ5X291dCBhcmc7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjQwNDoKK15Jc2l6ZV90IHNpemUgPSByZXEtPnNlLT5jb25uLnByb3RvX21p bm9yIDwgOSA/JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQwNToKK15JXklGVVNFX0NP TVBBVF9FTlRSWV9PVVRfU0laRSA6IHNpemVvZihhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo0MDc6CiteSS8qIGJlZm9yZSBBQkkgNy40IGUtPmlubyA9PSAwIHdhcyBpbnZhbGlk LCBvbmx5IEVOT0VOVCBtZWFudCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRp bmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM0Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NDA3OgorICAgICAgIC8qIGJlZm9yZSBBQkkgNy40IGUtPmlubyA9PSAwIHdh cyBpbnZhbGlkLCBvbmx5IEVOT0VOVCBtZWFudAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjQwODoKK15JICAgbmVnYXRpdmUgZW50cnkgKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiM0Mjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NDA4OgorICAgICAgIC8qIGJlZm9yZSBBQkkgNy40IGUtPmlubyA9PSAwIHdh cyBpbnZhbGlkLCBvbmx5IEVOT0VOVCBtZWFudAorICAgICAgICAgIG5lZ2F0aXZlIGVudHJ5ICov CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRl IGxpbmUKIzQyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0MDg6Cisg ICAgICAgICAgbmVnYXRpdmUgZW50cnkgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0 MDk6CiteSWlmICghZS0+aW5vICYmIHJlcS0+c2UtPmNvbm4ucHJvdG9fbWlub3IgPCA0KSQKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzQzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0MDk6CisgICAg ICAgaWYgKCFlLT5pbm8gJiYgcmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA8IDQpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDEwOgorXkleSXJldHVybiBmdXNlX3JlcGx5X2Vy cihyZXEsIEVOT0VOVCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQxMjoKK15JbWVt c2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NDEzOgorXklmaWxsX2VudHJ5KCZhcmcsIGUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo0MTQ6CiteSXJldHVybiBzZW5kX3JlcGx5X29rKHJlcSwgJmFyZywgc2l6ZSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDM5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQxODoKK15JXkkgICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9m aWxlX2luZm8gKmYpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQyMDoKK15JY2hhciBi dWZbc2l6ZW9mKHN0cnVjdCBmdXNlX2VudHJ5X291dCkgKyBzaXplb2Yoc3RydWN0IGZ1c2Vfb3Bl bl9vdXQpXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDIxOgorXklzaXplX3QgZW50 cnlzaXplID0gcmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA8IDkgPyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo0MjI6CiteSV5JRlVTRV9DT01QQVRfRU5UUllfT1VUX1NJWkUgOiBzaXpl b2Yoc3RydWN0IGZ1c2VfZW50cnlfb3V0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NDIzOgorXklzdHJ1Y3QgZnVzZV9lbnRyeV9vdXQgKmVhcmcgPSAoc3RydWN0IGZ1c2VfZW50cnlf b3V0ICopIGJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDI0OgorXklzdHJ1Y3Qg ZnVzZV9vcGVuX291dCAqb2FyZyA9IChzdHJ1Y3QgZnVzZV9vcGVuX291dCAqKSAoYnVmICsgZW50 cnlzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDI2OgorXkltZW1zZXQoYnVm LCAwLCBzaXplb2YoYnVmKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQyNzoKK15J ZmlsbF9lbnRyeShlYXJnLCBlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDI4Ogor XklmaWxsX29wZW4ob2FyZywgZik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQyOToK K15JcmV0dXJuIHNlbmRfcmVwbHlfb2socmVxLCBidWYsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjQzMDoKK15JXkleSSAgICAgZW50cnlzaXplICsgc2l6ZW9mKHN0cnVjdCBmdXNlX29w ZW5fb3V0KSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQzNDoKK15JXkkgICAgZG91 YmxlIGF0dHJfdGltZW91dCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDM2OgorXklz dHJ1Y3QgZnVzZV9hdHRyX291dCBhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQz NzoKK15Jc2l6ZV90IHNpemUgPSByZXEtPnNlLT5jb25uLnByb3RvX21pbm9yIDwgOSA/JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQzODoKK15JXklGVVNFX0NPTVBBVF9BVFRSX09VVF9T SVpFIDogc2l6ZW9mKGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ0MDoKK15J bWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NDQxOgorXklhcmcuYXR0cl92YWxpZCA9IGNhbGNfdGltZW91dF9zZWMoYXR0cl90aW1lb3V0 KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDQyOgorXklhcmcuYXR0cl92YWxpZF9u c2VjID0gY2FsY190aW1lb3V0X25zZWMoYXR0cl90aW1lb3V0KTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NDQzOgorXkljb252ZXJ0X3N0YXQoYXR0ciwgJmFyZy5hdHRyKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDQ1OgorXklyZXR1cm4gc2VuZF9yZXBseV9vayhyZXEs ICZhcmcsIHNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NTA6CiteSXJldHVy biBzZW5kX3JlcGx5X29rKHJlcSwgbGlua25hbWUsIHN0cmxlbihsaW5rbmFtZSkpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NTU6CiteSXN0cnVjdCBmdXNlX29wZW5fb3V0IGFyZzsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Nzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDU3OgorXkltZW1zZXQoJmFyZywgMCwgc2l6 ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NTg6CiteSWZpbGxfb3Bl bigmYXJnLCBmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDU5OgorXklyZXR1cm4g c2VuZF9yZXBseV9vayhyZXEsICZhcmcsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NDY0OgorXklzdHJ1Y3QgZnVzZV93cml0ZV9vdXQgYXJnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NjY6CiteSW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ2NzoKK15JYXJnLnNpemUgPSBjb3VudDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDY5OgorXklyZXR1cm4gc2VuZF9yZXBseV9v ayhyZXEsICZhcmcsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NDc0OgorXklyZXR1cm4gc2VuZF9yZXBseV9vayhyZXEsIGJ1Ziwgc2l6ZSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDk5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjQ3ODoKK15JXkleSV5JICAgICAgIHN0cnVjdCBmdXNlX2NoYW4g KmNoLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUwMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0Nzk6CiteSV5JXkleSSAgICAgICBz dHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGlvdl9jb3VudCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NDgwOgorXkleSV5JXkkgICAgICAgc3RydWN0IGZ1c2VfYnVmdmVjICpidWYsJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTAyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ4MToKK15JXkleSV5JICAgICAgIHNpemVfdCBsZW4p JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ4MzoKK15Jc3RydWN0IGZ1c2VfYnVmdmVj IG1lbV9idWYgPSBGVVNFX0JVRlZFQ19JTklUKGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjQ4NDoKK15Jdm9pZCAqbWJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NDg1OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzUwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0ODc6CiteSS8q IE9wdGltaXplIGNvbW1vbiBjYXNlICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNTA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ4 ODoKK15JaWYgKGJ1Zi0+Y291bnQgPT0gMSAmJiBidWYtPmlkeCA9PSAwICYmIGJ1Zi0+b2ZmID09 IDAgJiYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDg5OgorXkkgICAgIShidWYtPmJ1 ZlswXS5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzUxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo0OTA6CiteSV5JLyogRklYTUU6IGFsc28gYXZvaWQgbWVtb3J5IGNvcHkgaWYgdGhlcmUg YXJlIG11bHRpcGxlIGJ1ZmZlcnMkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFk aW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojNTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjQ5MDoKKyAgICAgICAgICAgICAgIC8qIEZJWE1FOiBhbHNvIGF2b2lkIG1l bW9yeSBjb3B5IGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBidWZmZXJzCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NDkxOgorXkleSSAgIGJ1dCBub25lIG9mIHRoZW0gY29udGFpbiBhbiBmZCAq LyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzUx MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0OTE6CisgICAgICAgICAg ICAgICAvKiBGSVhNRTogYWxzbyBhdm9pZCBtZW1vcnkgY29weSBpZiB0aGVyZSBhcmUgbXVsdGlw bGUgYnVmZmVycworICAgICAgICAgICAgICAgICAgYnV0IG5vbmUgb2YgdGhlbSBjb250YWluIGFu IGZkICovCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNl cGFyYXRlIGxpbmUKIzUxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0 OTE6CisgICAgICAgICAgICAgICAgICBidXQgbm9uZSBvZiB0aGVtIGNvbnRhaW4gYW4gZmQgKi8K CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxNDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0OTM6CiteSV5JaW92W2lvdl9jb3VudF0uaW92 X2Jhc2UgPSBidWYtPmJ1ZlswXS5tZW07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNTE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ5 NDoKK15JXklpb3ZbaW92X2NvdW50XS5pb3ZfbGVuID0gbGVuOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo0OTU6CiteSV5JaW92X2NvdW50Kys7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjQ5NjoKK15JXklyZXR1cm4gZnVzZV9zZW5kX21zZyhzZSwgY2gsIGlvdiwgaW92X2Nv dW50KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDk3OgorXkl9JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTIwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjQ5OToKK15JcmVzID0gcG9zaXhfbWVtYWxpZ24oJm1idWYsIHBh Z2VzaXplLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzUyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MDA6CiteSWlmIChy ZXMgIT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiM1MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NTAwOgorICAgICAgIGlmIChyZXMgIT0gMCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo1MDE6CiteSV5JcmV0dXJuIHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NTAzOgorXkltZW1fYnVmLmJ1ZlswXS5tZW0gPSBtYnVmOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo1MDQ6CiteSXJlcyA9IGZ1c2VfYnVmX2NvcHkoJm1lbV9idWYsIGJ1ZiwgMCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTI2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjUwNToKK15JaWYgKHJlcyA8IDApIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mjc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTA2OgorXkleSWZyZWUobWJ1Zik7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTI4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjUwNzoKK15JXklyZXR1cm4gLXJlczskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6NTA4OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNTMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjUwOToKK15JbGVuID0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzUzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MTE6Cite SWlvdltpb3ZfY291bnRdLmlvdl9iYXNlID0gbWJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NTEyOgorXklpb3ZbaW92X2NvdW50XS5pb3ZfbGVuID0gbGVuOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzNDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo1MTM6CiteSWlvdl9jb3VudCsrOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo1MTQ6CiteSXJlcyA9IGZ1c2Vfc2VuZF9tc2coc2UsIGNoLCBpb3YsIGlvdl9j b3VudCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTM2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjUxNToKK15JZnJlZShtYnVmKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTE3OgorXklyZXR1cm4gcmVzOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MjE6CiteSXNpemVfdCBzaXplOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo1MjI6CiteSWludCBjYW5fZ3JvdzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NTIzOgorXklpbnQgcGlwZVsyXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NTI4OgorXkljbG9zZShsbHAtPnBpcGVbMF0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo1Mjk6CiteSWNsb3NlKGxscC0+cGlwZVsxXSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjUzMDoKK15JZnJlZShsbHApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzU1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo1Mzc6CiteSWludCBydiA9IHBpcGUoZmRzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NTM5OgorXklpZiAocnYgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNTYwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjUzOToKKyAgICAgICBpZiAocnYgPT0gLTEpClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTQwOgorXkleSXJldHVybiBydjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6NTQyOgorXklpZiAoZmNudGwoZmRzWzBdLCBGX1NFVEZMLCBPX05P TkJMT0NLKSA9PSAtMSB8fCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzU2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NDM6CiteSSAg ICBmY250bChmZHNbMV0sIEZfU0VURkwsIE9fTk9OQkxPQ0spID09IC0xIHx8JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjU0NDoKK15JICAgIGZjbnRsKGZkc1swXSwgRl9TRVRGRCwgRkRf Q0xPRVhFQykgPT0gLTEgfHwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTQ1OgorXkkg ICAgZmNudGwoZmRzWzFdLCBGX1NFVEZELCBGRF9DTE9FWEVDKSA9PSAtMSkgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NDY6CiteSV5JY2xvc2UoZmRzWzBdKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6NTQ3OgorXkleSWNsb3NlKGZkc1sxXSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjU0ODoKK15JXklydiA9IC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo1NDk6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTUwOgorXkly ZXR1cm4gcnY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTc2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU1NToKK15JcmV0dXJuIHBp cGUyKGZkcywgT19DTE9FWEVDIHwgT19OT05CTE9DSyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjU2MToKK15Jc3RydWN0IGZ1c2VfbGxfcGlwZSAqbGxwID0gcHRocmVhZF9nZXRzcGVj aWZpYyhzZS0+cGlwZV9rZXkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzU4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NjI6Cite SWlmIChsbHAgPT0gTlVMTCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzU4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NjM6Cite SV5JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1 ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTY1OgorXkleSWxscCA9 IG1hbGxvYyhzaXplb2Yoc3RydWN0IGZ1c2VfbGxfcGlwZSkpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo1NjY6CiteSV5JaWYgKGxscCA9PSBOVUxMKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzU4NzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NjY6CisgICAgICAgICAgICAgICBpZiAo bGxwID09IE5VTEwpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTY3OgorXkle SV5JcmV0dXJuIE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNTkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU2OToKK15JXkly ZXMgPSBmdXNlX3BpcGUobGxwLT5waXBlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NTcwOgorXkleSWlmIChyZXMgPT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NTcxOgorXkleSV5JZnJlZShsbHApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzU5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NzI6 CiteSV5JXklyZXR1cm4gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTczOgor XkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1OTY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTc1OgorXkleSS8qJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTk3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU3NjoKK15JXkkgKnRoZSBkZWZhdWx0IHNpemUgaXMgMTYg cGFnZXMgb24gbGludXgkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTc3OgorXkleSSAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU5OTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1Nzg6CiteSV5JbGxwLT5zaXplID0gcGFn ZXNpemUgKiAxNjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTc5OgorXkleSWxscC0+ Y2FuX2dyb3cgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzYwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1ODE6CiteSV5JcHRo cmVhZF9zZXRzcGVjaWZpYyhzZS0+cGlwZV9rZXksIGxscCk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjU4MjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzYwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1ODQ6Cite SXJldHVybiBsbHA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU5MDoKK15Jc3RydWN0 IGZ1c2VfbGxfcGlwZSAqbGxwID0gcHRocmVhZF9nZXRzcGVjaWZpYyhzZS0+cGlwZV9rZXkpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxMjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1OTE6CiteSWlmIChsbHApIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NTkyOgorXkleSXB0aHJlYWRfc2V0c3BlY2lmaWMoc2UtPnBp cGVfa2V5LCBOVUxMKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTkzOgorXkleSWZ1 c2VfbGxfcGlwZV9mcmVlKGxscCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU5NDoK K15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDA6CiteSWludCByZXM7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjIzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYwMjoKK15JcmVzID0gcmVhZChmZCwgYnVmLCBsZW4p OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyNDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDM6CiteSWlmIChyZXMgPT0gLTEpIHsk CgpFUlJPUjogbGluZSBvdmVyIDkwIGNoYXJhY3RlcnMKIzYyNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDQ6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xP R19FUlIsICJmdXNlOiBpbnRlcm5hbCBlcnJvcjogZmFpbGVkIHRvIHJlYWQgYmFjayBmcm9tIHBp cGU6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjYwNDoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBpbnRlcm5hbCBlcnJvcjog ZmFpbGVkIHRvIHJlYWQgYmFjayBmcm9tIHBpcGU6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDU6CiteSV5JcmV0dXJuIC1FSU87JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYwNjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo2MDc6CiteSWlmIChyZXMgIT0gbGVuKSB7JAoKRVJST1I6IGxpbmUgb3ZlciA5MCBj aGFyYWN0ZXJzCiM2Mjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjA4 OgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogaW50ZXJuYWwg ZXJyb3I6IHNob3J0IHJlYWQgYmFjayBmcm9tIHBpcGU6ICVpIGZyb20gJXppXG4iLCByZXMsIGxl bik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mjk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjA4OgorXkleSWZ1c2VfbG9nKEZVU0Vf TE9HX0VSUiwgImZ1c2U6IGludGVybmFsIGVycm9yOiBzaG9ydCByZWFkIGJhY2sgZnJvbSBwaXBl OiAlaSBmcm9tICV6aVxuIiwgcmVzLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzYzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo2MDk6CiteSV5JcmV0dXJuIC1FSU87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYx MDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzMjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MTE6CiteSXJldHVybiAwOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MTY6CiteSWludCBtYXg7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjYxNzoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NjE4OgorXklpbnQgbWF4ZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjYxOToKK15JY2hhciBidWZbMzJdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MjE6 CiteSW1heGZkID0gb3BlbigiL3Byb2Mvc3lzL2ZzL3BpcGUtbWF4LXNpemUiLCBPX1JET05MWSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYyMjoKK15JaWYgKG1heGZkIDwgMCkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiM2NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjIyOgorICAg ICAgIGlmIChtYXhmZCA8IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM2NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjIz OgorXkleSXJldHVybiAtZXJybm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYyNToK K15JcmVzID0gcmVhZChtYXhmZCwgYnVmLCBzaXplb2YoYnVmKSAtIDEpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo2MjY6CiteSWlmIChyZXMgPCAwKSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjYyNzoKK15JXklpbnQgc2F2ZWRfZXJybm87JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjYyOToKK15JXklzYXZlZF9lcnJubyA9IGVycm5vOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo2MzA6CiteSV5JY2xvc2UobWF4ZmQpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo2MzE6CiteSV5JcmV0dXJuIC1zYXZlZF9lcnJubzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6NjMyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjYzMzoKK15JY2xvc2UobWF4ZmQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MzQ6 CiteSWJ1ZltyZXNdID0gJ1wwJzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjM2Ogor XkltYXggPSBhdG9pKGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYzNzoKK15J cmVzID0gZmNudGwocGlwZWZkLCBGX1NFVFBJUEVfU1osIG1heCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjYzODoKK15JaWYgKHJlcyA8IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNjU5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYzODoKKyAgICAgICBpZiAocmVzIDwgMCkKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2Mzk6CiteSV5JcmV0dXJuIC1lcnJubzsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NjE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjQwOgorXklyZXR1cm4gbWF4OyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NDQ6CiteSV5JXkkgICAgICAgc3RydWN0IGlvdmVjICpp b3YsIGludCBpb3ZfY291bnQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY0NToKK15J XkleSSAgICAgICBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1ZiwgdW5zaWduZWQgaW50IGZsYWdzKSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NDc6CiteSWludCByZXM7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjY5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjY0ODoKK15Jc2l6ZV90IGxlbiA9IGZ1c2VfYnVmX3NpemUoYnVm KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjQ5OgorXklzdHJ1Y3QgZnVzZV9vdXRf aGVhZGVyICpvdXQgPSBpb3ZbMF0uaW92X2Jhc2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjY1MDoKK15Jc3RydWN0IGZ1c2VfbGxfcGlwZSAqbGxwOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo2NTE6CiteSWludCBzcGxpY2VfZmxhZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjY1MjoKK15Jc2l6ZV90IHBpcGVzaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo2NTM6CiteSXNpemVfdCB0b3RhbF9mZF9zaXplOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo2NTQ6CiteSXNpemVfdCBpZHg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjY1NToKK15Jc2l6ZV90IGhlYWRlcmxlbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NjU2OgorXklzdHJ1Y3QgZnVzZV9idWZ2ZWMgcGlwZV9idWYgPSBGVVNFX0JVRlZFQ19JTklU KGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY1ODoKK15JaWYgKHNlLT5icm9r ZW5fc3BsaWNlX25vbmJsb2NrKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo2NTg6CisgICAgICAgaWYgKHNlLT5icm9rZW5fc3BsaWNlX25vbmJsb2Nr KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjgwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY1OToKK15JXklnb3RvIGZhbGxi YWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NjE6CiteSWlmIChmbGFncyAmIEZV U0VfQlVGX05PX1NQTElDRSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NjYxOgorICAgICAgIGlmIChmbGFncyAmIEZVU0VfQlVGX05PX1NQTElDRSkK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NjI6CiteSV5JZ290byBmYWxsYmFj azskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2ODU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjY0OgorXkl0b3RhbF9mZF9zaXplID0g MDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2ODY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjY1OgorXklmb3IgKGlkeCA9IGJ1Zi0+ aWR4OyBpZHggPCBidWYtPmNvdW50OyBpZHgrKykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo2NjY6CiteSV5JaWYgKGJ1Zi0+YnVmW2lkeF0uZmxhZ3MgJiBGVVNFX0JVRl9JU19GRCkg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2Njc6CiteSV5JXkl0b3RhbF9mZF9zaXpl ID0gYnVmLT5idWZbaWR4XS5zaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2Njg6 CiteSV5JXklpZiAoaWR4ID09IGJ1Zi0+aWR4KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY4OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2Njg6CisgICAgICAgICAgICAgICAgICAgICAgIGlmIChp ZHggPT0gYnVmLT5pZHgpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjY5Ogor XkleSV5JXkl0b3RhbF9mZF9zaXplIC09IGJ1Zi0+b2ZmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo2NzA6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NzE6Cite SX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjcyOgorXklpZiAodG90YWxfZmRfc2l6 ZSA8IDIgKiBwYWdlc2l6ZSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NjcyOgorICAgICAgIGlmICh0b3RhbF9mZF9zaXplIDwgMiAqIHBhZ2VzaXpl KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY3MzoKK15JXklnb3RvIGZhbGxi YWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NzU6CiteSWlmIChzZS0+Y29ubi5w cm90b19taW5vciA8IDE0IHx8JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY3NjoKK15J ICAgICEoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1NQTElDRV9XUklURSkpJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjY3NzoKK15JXklnb3RvIGZhbGxiYWNrOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo2Nzk6CiteSWxscCA9IGZ1c2VfbGxfZ2V0X3BpcGUoc2UpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2ODA6CiteSWlmIChsbHAgPT0gTlVMTCkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiM3MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjgwOgorICAgICAg IGlmIChsbHAgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzcwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2ODE6 CiteSV5JZ290byBmYWxsYmFjazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njg0Ogor XkloZWFkZXJsZW4gPSBpb3ZfbGVuZ3RoKGlvdiwgaW92X2NvdW50KTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Njg2OgorXklvdXQtPmxlbiA9IGhlYWRlcmxlbiArIGxlbjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njg4OgorXkkvKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo2ODk6CiteSSAqIEhldXJpc3RpYyBmb3IgdGhlIHJlcXVpcmVkIHBpcGUgc2l6ZSwg ZG9lcyBub3Qgd29yayBpZiB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjkwOgor XkkgKiBzb3VyY2UgY29udGFpbnMgbGVzcyB0aGFuIHBhZ2Ugc2l6ZSBmcmFnbWVudHMkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjkxOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NjkyOgorXklwaXBlc2l6ZSA9IHBhZ2VzaXplICogKGlvdl9jb3VudCArIGJ1Zi0+ Y291bnQgKyAxKSArIG91dC0+bGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzcxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2OTQ6 CiteSWlmIChsbHAtPnNpemUgPCBwaXBlc2l6ZSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo2OTU6CiteSV5JaWYgKGxscC0+Y2FuX2dyb3cpIHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Njk2OgorXkleSV5JcmVzID0gZmNudGwobGxwLT5waXBlWzBdLCBGX1NFVFBJUEVf U1osIHBpcGVzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njk3OgorXkleSV5J aWYgKHJlcyA9PSAtMSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzcxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2OTg6CiteSV5J XkleSXJlcyA9IGdyb3dfcGlwZV90b19tYXgobGxwLT5waXBlWzBdKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Njk5OgorXkleSV5JXklpZiAocmVzID4gMCkkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM3MjA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njk5OgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIChyZXMgPiAwKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjcwMDoKK15JXkleSV5JXklsbHAtPnNpemUgPSByZXM7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjcwMToKK15JXkleSV5JbGxwLT5jYW5fZ3JvdyA9IDA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzIzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjcwMjoKK15JXkleSV5JZ290byBmYWxsYmFjazskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MjQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NzAzOgorXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo3MDQ6CiteSV5JXklsbHAtPnNpemUgPSByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjcwNToKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcwNjoK K15JXklpZiAobGxwLT5zaXplIDwgcGlwZXNpemUpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNzI3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcwNjoKKyAgICAgICAgICAgICAgIGlmIChsbHAtPnNp emUgPCBwaXBlc2l6ZSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzcyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MDc6Cite SV5JXklnb3RvIGZhbGxiYWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzcyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MDg6Cite SX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzExOgorXklyZXMgPSB2bXNwbGljZShs bHAtPnBpcGVbMV0sIGlvdiwgaW92X2NvdW50LCBTUExJQ0VfRl9OT05CTE9DSyk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzMzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcxMjoKK15JaWYgKHJlcyA9PSAtMSkkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM3MzM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzEyOgorICAgICAgIGlmIChy ZXMgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzEzOgorXkleSWdv dG8gZmFsbGJhY2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcxNToKK15JaWYgKHJl cyAhPSBoZWFkZXJsZW4pIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzE2OgorXkle SXJlcyA9IC1FSU87JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzczODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MTc6CisgICAgICAgICAgICAgICBm dXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBzaG9ydCB2bXNwbGljZSB0byBwaXBlOiAldS8l enVcbiIsIHJlcywKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcz ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MTc6CiteSV5JZnVzZV9s b2coRlVTRV9MT0dfRVJSLCAiZnVzZTogc2hvcnQgdm1zcGxpY2UgdG8gcGlwZTogJXUvJXp1XG4i LCByZXMsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcxODoKK15JXkleSWhlYWRlcmxl bik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcxOToKK15JXklnb3RvIGNsZWFyX3Bp cGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcyMDoKK15JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo3MjI6CiteSXBpcGVfYnVmLmJ1ZlswXS5mbGFncyA9IEZVU0VfQlVG X0lTX0ZEOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MjM6CiteSXBpcGVfYnVmLmJ1 ZlswXS5mZCA9IGxscC0+cGlwZVsxXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzI1 OgorXklyZXMgPSBmdXNlX2J1Zl9jb3B5KCZwaXBlX2J1ZiwgYnVmLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo3MjY6CiteSV5JXkkgICAgRlVTRV9CVUZfRk9SQ0VfU1BMSUNFIHwgRlVT RV9CVUZfU1BMSUNFX05PTkJMT0NLKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzI3 OgorXklpZiAocmVzIDwgMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzc0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3Mjg6Cite SV5JaWYgKHJlcyA9PSAtRUFHQUlOIHx8IHJlcyA9PSAtRUlOVkFMKSB7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjcyOToKK15JXkleSS8qJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjczMDoKK15JXkleSSAqIFNob3VsZCBvbmx5IGdldCBFQUdBSU4gb24ga2VybmVscyB3aXRo JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzUyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczMToKK15JXkleSSAqIGJyb2tlbiBTUExJ Q0VfRl9OT05CTE9DSyBzdXBwb3J0ICg8PSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzc1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3 MzI6CiteSV5JXkkgKiAyLjYuMzUpIHdoZXJlIHRoaXMgZXJyb3Igb3IgYSBzaG9ydCByZWFkIGlz JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczMzoKK15JXkleSSAqIHJldHVybmVkIGV2 ZW4gaWYgdGhlIHBpcGUgaXRzZWxmIGlzIG5vdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo3MzQ6CiteSV5JXkkgKiBmdWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczNToK K15JXkleSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczNjoKK15JXkleSSAqIEVJ TlZBTCBtaWdodCBtZWFuIHRoYXQgc3BsaWNlIGNhbid0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo3Mzc6CiteSV5JXkkgKiB0aGlzIGNvbWJpbmF0aW9uIG9mIGlucHV0IGFu ZCBvdXRwdXQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczODoKK15JXkleSSAqLyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3Mzk6CiteSV5JXklpZiAocmVzID09IC1FQUdB SU4pJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlz IHN0YXRlbWVudAojNzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcz OToKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtRUFHQUlOKQpbLi4uXQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzYxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc0MDoKK15JXkleSV5Jc2UtPmJyb2tlbl9zcGxpY2Vf bm9uYmxvY2sgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3NDI6CiteSV5JXklw dGhyZWFkX3NldHNwZWNpZmljKHNlLT5waXBlX2tleSwgTlVMTCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjc0MzoKK15JXkleSWZ1c2VfbGxfcGlwZV9mcmVlKGxscCk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc0NDoKK15JXkleSWdvdG8gZmFsbGJhY2s7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc0NToKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjc0NjoKK15JXklyZXMgPSAtcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo3NDc6CiteSV5JZ290byBjbGVhcl9waXBlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo3NDg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzUwOgorXklpZiAocmVz ICE9IDAgJiYgcmVzIDwgbGVuKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc1MToK K15JXklzdHJ1Y3QgZnVzZV9idWZ2ZWMgbWVtX2J1ZiA9IEZVU0VfQlVGVkVDX0lOSVQobGVuKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NzM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzUyOgorXkleSXZvaWQgKm1idWY7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc1MzoKK15JXklzaXplX3Qgbm93X2xlbiA9IHJlczsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NzU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzU0OgorXkleSS8qJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjc1NToKK15JXkkgKiBGb3IgcmVndWxhciBmaWxlcyBhIHNob3J0IGNv dW50IGlzIGVpdGhlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3NTY6CiteSV5JICog IDEpIGR1ZSB0byBFT0YsIG9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc1NzoKK15J XkkgKiAgMikgYmVjYXVzZSBvZiBicm9rZW4gU1BMSUNFX0ZfTk9OQkxPQ0sgKHNlZSBhYm92ZSkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Nzk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzU4OgorXkleSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjc1OToKK15JXkkgKiBGb3Igb3RoZXIgaW5wdXRzIGl0J3MgcG9zc2li bGUgdGhhdCB3ZSBvdmVyZmxvd2VkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc2MDoK K15JXkkgKiB0aGUgcGlwZSBiZWNhdXNlIG9mIHNtYWxsIGJ1ZmZlciBmcmFnbWVudHMuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzgyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc2MToKK15JXkkgKi8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NzYzOgorXkleSXJlcyA9IHBvc2l4X21lbWFsaWduKCZtYnVmLCBwYWdlc2l6 ZSwgbGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzY0OgorXkleSWlmIChyZXMg IT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiM3ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NzY0OgorICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjc2NToKK15JXkleSWdvdG8gY2xlYXJfcGlwZTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6NzY3OgorXkleSW1lbV9idWYuYnVmWzBdLm1lbSA9IG1idWY7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc2ODoKK15JXkltZW1fYnVmLm9mZiA9IG5vd19sZW47 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzkwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc2OToKK15JXklyZXMgPSBmdXNlX2J1Zl9j b3B5KCZtZW1fYnVmLCBidWYsIDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3NzA6 CiteSV5JaWYgKHJlcyA+IDApIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzcxOgor XkleSV5JY2hhciAqdG1wYnVmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzc5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3NzI6Cite SV5JXklzaXplX3QgZXh0cmFfbGVuID0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo3NzM6CiteSV5JXkkvKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzc5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3NzQ6CiteSV5J XkkgKiBUcmlja2llc3QgY2FzZTogZ290IG1vcmUgZGF0YS4gIE5lZWQgdG8gZ2V0JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc3NToKK15JXkleSSAqIGJhY2sgdGhlIGRhdGEgZnJvbSB0 aGUgcGlwZSBhbmQgdGhlbiBmYWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc3NjoK K15JXkleSSAqIGJhY2sgdG8gcmVndWxhciB3cml0ZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM3OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6Nzc3OgorXkleSV5JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc3ODoK K15JXkleSXRtcGJ1ZiA9IG1hbGxvYyhoZWFkZXJsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo3Nzk6CiteSV5JXklpZiAodG1wYnVmID09IE5VTEwpIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6NzgwOgorXkleSV5JXklmcmVlKG1idWYpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo3ODE6CiteSV5JXkleSXJlcyA9IEVOT01FTTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6NzgyOgorXkleSV5JXklnb3RvIGNsZWFyX3BpcGU7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODA0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjc4MzoKK15JXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6Nzg0OgorXkleSV5JcmVzID0gcmVhZF9iYWNrKGxscC0+cGlwZVswXSwgdG1wYnVmLCBo ZWFkZXJsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgw NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3ODU6CiteSV5JXklmcmVl KHRtcGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODA3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc4NjoKK15JXkleSWlmIChy ZXMgIT0gMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgw ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3ODc6CiteSV5JXkleSWZy ZWUobWJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODA5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc4ODoKK15JXkleSV5JZ290 byBjbGVhcl9waXBlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzgxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3ODk6CiteSV5JXkl9 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODExOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc5MDoKK15JXkleSXJlcyA9IHJlYWRfYmFj ayhsbHAtPnBpcGVbMF0sIG1idWYsIG5vd19sZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzgxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo3OTE6CiteSV5JXklpZiAocmVzICE9IDApIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NzkyOgorXkleSV5JXklmcmVlKG1idWYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzgxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo3OTM6CiteSV5JXkleSWdvdG8gY2xlYXJfcGlwZTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Nzk0OgorXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzgxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3OTU6 CiteSV5JXklsZW4gPSBub3dfbGVuICsgZXh0cmFfbGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo3OTY6CiteSV5JXklpb3ZbaW92X2NvdW50XS5pb3ZfYmFzZSA9IG1idWY7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODE4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc5NzoKK15JXkleSWlvdltpb3ZfY291bnRdLmlvdl9s ZW4gPSBsZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODE5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc5ODoKK15JXkleSWlvdl9j b3VudCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3OTk6CiteSV5JXklyZXMgPSBm dXNlX3NlbmRfbXNnKHNlLCBjaCwgaW92LCBpb3ZfY291bnQpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo4MDA6CiteSV5JXklmcmVlKG1idWYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo4MDE6CiteSV5JXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzgyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo4MDI6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzgyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MDM6CiteSV5J ZnJlZShtYnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4 MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODA0OgorXkleSXJlcyA9 IG5vd19sZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgwNToKK15JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyNzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MDY6CiteSWxlbiA9IHJlczskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6ODA3OgorXklvdXQtPmxlbiA9IGhlYWRlcmxlbiArIGxlbjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MzA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODA5OgorXklpZiAoc2UtPmRlYnVnKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODMxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgxMDoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MzI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODExOgorXkleSV5JIiAgIHVuaXF1ZTogJWxs dSwgc3VjY2Vzcywgb3V0c2l6ZTogJWkgKHNwbGljZSlcbiIsJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojODMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjgxMjoKK15JXkleSSh1bnNpZ25lZCBsb25nIGxvbmcpIG91dC0+dW5pcXVlLCBv dXQtPmxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODM0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgxMzoKK15JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgzNjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MTU6CiteSXNwbGljZV9mbGFncyA9IDA7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODM3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgxNjoKK15JaWYgKChmbGFncyAmIEZVU0VfQlVGX1NQTElD RV9NT1ZFKSAmJiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgz ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MTc6CiteSSAgICAoc2Ut PmNvbm4ud2FudCAmIEZVU0VfQ0FQX1NQTElDRV9NT1ZFKSkkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6ODE4OgorXkleSXNwbGljZV9mbGFncyB8PSBTUExJQ0VfRl9NT1ZFOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0MTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MjA6CiteSXJlcyA9IHNwbGljZShsbHAtPnBpcGVbMF0s IE5VTEwsIGNoID8gY2gtPmZkIDogc2UtPmZkLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzg0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo4MjE6CiteSV5JICAgICBOVUxMLCBvdXQtPmxlbiwgc3BsaWNlX2ZsYWdzKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6ODIyOgorXklpZiAocmVzID09IC0xKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjgyMzoKK15JXklyZXMgPSAtZXJybm87JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjgyNDoKK15JXklwZXJyb3IoImZ1c2U6IHNwbGljZSBmcm9tIHBpcGUi KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODI1OgorXkleSWdvdG8gY2xlYXJfcGlw ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODI2OgorXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjgyNzoKK15JaWYgKHJlcyAhPSBvdXQtPmxlbikgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo4Mjg6CiteSV5JcmVzID0gLUVJTzskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6ODI5OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IHNo b3J0IHNwbGljZSBmcm9tIHBpcGU6ICV1LyV1XG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzg1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo4MzA6CiteSV5JXklyZXMsIG91dC0+bGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6ODMxOgorXkleSWdvdG8gY2xlYXJfcGlwZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6ODMyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgzMzoKK15JcmV0 dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODU3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgzNjoKK15JZnVzZV9sbF9jbGVh cl9waXBlKHNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4 NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODM3OgorXklyZXR1cm4g cmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NDA6CiteSXJldHVybiBmdXNlX3Nl bmRfZGF0YV9pb3ZfZmFsbGJhY2soc2UsIGNoLCBpb3YsIGlvdl9jb3VudCwgYnVmLCBsZW4pOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NDQ6CiteSV5JXkkgICAgICAgc3RydWN0IGlv dmVjICppb3YsIGludCBpb3ZfY291bnQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojODY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg0 NToKK15JXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1ZiwgdW5zaWduZWQgaW50IGZs YWdzKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NDc6CiteSXNpemVfdCBsZW4gPSBm dXNlX2J1Zl9zaXplKGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg0ODoKK15J KHZvaWQpIGZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NTA6CiteSXJldHVy biBmdXNlX3NlbmRfZGF0YV9pb3ZfZmFsbGJhY2soc2UsIGNoLCBpb3YsIGlvdl9jb3VudCwgYnVm LCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NTU6CiteSV5JICAgIGVudW0g ZnVzZV9idWZfY29weV9mbGFncyBmbGFncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 ODU3OgorXklzdHJ1Y3QgaW92ZWMgaW92WzJdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzg3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo4NTg6CiteSXN0cnVjdCBmdXNlX291dF9oZWFkZXIgb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo4NTk6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojODgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j Ojg2MToKK15JaW92WzBdLmlvdl9iYXNlID0gJm91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6ODYyOgorXklpb3ZbMF0uaW92X2xlbiA9IHNpemVvZihzdHJ1Y3QgZnVzZV9vdXRfaGVh ZGVyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODY0OgorXklvdXQudW5pcXVlID0g cmVxLT51bmlxdWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj ODg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg2NToKK15Jb3V0LmVy cm9yID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODY3OgorXklyZXMgPSBmdXNl X3NlbmRfZGF0YV9pb3YocmVxLT5zZSwgcmVxLT5jaCwgaW92LCAxLCBidWZ2LCBmbGFncyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODg5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg2ODoKK15JaWYgKHJlcyA8PSAwKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODkwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg2OToKK15JXklmdXNlX2ZyZWVfcmVxKHJlcSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODkxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg3MDoKK15JXklyZXR1cm4gcmVzOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NzE6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjg3MjoKK15JXklyZXR1cm4gZnVzZV9yZXBseV9lcnIocmVxLCByZXMpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5NDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NzM6CiteSX0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6ODc4OgorXklzdHJ1Y3QgZnVzZV9zdGF0ZnNfb3V0IGFyZzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6ODc5OgorXklzaXplX3Qgc2l6ZSA9IHJlcS0+c2UtPmNvbm4u cHJvdG9fbWlub3IgPCA0ID8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODgwOgorXkle SUZVU0VfQ09NUEFUX1NUQVRGU19TSVpFIDogc2l6ZW9mKGFyZyk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjg4MjoKK15JbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODgzOgorXkljb252ZXJ0X3N0YXRmcyhzdGJ1ZiwgJmFy Zy5zdCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTA2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg4NToKK15JcmV0dXJuIHNlbmRf cmVwbHlfb2socmVxLCAmYXJnLCBzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 ODkwOgorXklzdHJ1Y3QgZnVzZV9nZXR4YXR0cl9vdXQgYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo4OTI6CiteSW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTE0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg5MzoKK15JYXJnLnNpemUgPSBjb3VudDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MTY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6ODk1OgorXklyZXR1cm4gc2VuZF9yZXBseV9vayhyZXEsICZh cmcsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTAwOgorXklz dHJ1Y3QgZnVzZV9sa19vdXQgYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzkyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MDI6 CiteSW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojOTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjkwMzoKK15JYXJnLmxrLnR5cGUgPSBsb2NrLT5sX3R5cGU7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjkwNDoKK15JaWYgKGxvY2stPmxfdHlwZSAhPSBGX1VOTENLKSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkwNToKK15JXklhcmcubGsuc3RhcnQgPSBsb2Nr LT5sX3N0YXJ0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzky NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MDY6CiteSV5JaWYgKGxv Y2stPmxfbGVuID09IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojOTI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjkwNjoKKyAgICAgICAgICAgICAgIGlmIChsb2NrLT5sX2xlbiA9PSAwKQpbLi4u XQorICAgICAgICAgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojOTI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjkwNzoKK15JXkleSWFyZy5say5lbmQgPSBPRkZTRVRfTUFYOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo5MDg6CiteSV5JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzkzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5 MDk6CiteSV5JXklhcmcubGsuZW5kID0gbG9jay0+bF9zdGFydCArIGxvY2stPmxfbGVuIC0gMTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MzE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTEwOgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjkxMToKK15JYXJnLmxrLnBpZCA9IGxvY2stPmxfcGlkOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MTI6CiteSXJldHVybiBzZW5kX3JlcGx5X29rKHJlcSwgJmFy Zywgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzkzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MTc6CiteSXN0 cnVjdCBmdXNlX2JtYXBfb3V0IGFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM5NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTE5 OgorXkltZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo5MjA6CiteSWFyZy5ibG9jayA9IGlkeDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6OTIyOgorXklyZXR1cm4gc2VuZF9yZXBseV9vayhyZXEsICZhcmcsIHNpemVvZihhcmcp KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NDc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTI2OgorXkleSV5JXkleSV5JICAgICAg c2l6ZV90IGNvdW50KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izk0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5Mjg6CiteSXN0cnVj dCBmdXNlX2lvY3RsX2lvdmVjICpmaW92OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzk1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5 Mjk6CiteSXNpemVfdCBpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzk1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MzE6CiteSWZp b3YgPSBtYWxsb2Moc2l6ZW9mKGZpb3ZbMF0pICogY291bnQpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo5MzI6CiteSWlmICghZmlvdikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM5NTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTMyOgorICAgICAgIGlmICghZmlvdikKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MzM6CiteSV5JcmV0dXJuIE5VTEw7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTU2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkzNToKK15JZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKysp IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTM2OgorXkleSWZpb3ZbaV0uYmFzZSA9 ICh1aW50cHRyX3QpIGlvdltpXS5pb3ZfYmFzZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM5NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6OTM3OgorXkleSWZpb3ZbaV0ubGVuID0gaW92W2ldLmlvdl9sZW47JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjkzODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzk2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5 NDA6CiteSXJldHVybiBmaW92OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzk2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NDQ6Cite SV5JXkkgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmluX2lvdiwgc2l6ZV90IGluX2NvdW50LCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NDU6CiteSV5JXkkgICBjb25zdCBzdHJ1Y3QgaW92 ZWMgKm91dF9pb3YsIHNpemVfdCBvdXRfY291bnQpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojOTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjk0NzoKK15Jc3RydWN0IGZ1c2VfaW9jdGxfb3V0IGFyZzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6OTQ4OgorXklzdHJ1Y3QgZnVzZV9pb2N0bF9pb3ZlYyAqaW5fZmlvdiA9IE5V TEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTcwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk0OToKK15Jc3RydWN0IGZ1c2VfaW9j dGxfaW92ZWMgKm91dF9maW92ID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 OTUwOgorXklzdHJ1Y3QgaW92ZWMgaW92WzRdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzk3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo5NTE6CiteSXNpemVfdCBjb3VudCA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojOTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j Ojk1MjoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTU0OgorXklt ZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzk3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo5NTU6CiteSWFyZy5mbGFncyB8PSBGVVNFX0lPQ1RMX1JFVFJZOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo5NTY6CiteSWFyZy5pbl9pb3ZzID0gaW5fY291bnQ7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTc4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjk1NzoKK15JYXJnLm91dF9pb3ZzID0gb3V0X2NvdW50OyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NTg6CiteSWlvdltjb3VudF0uaW92X2Jhc2UgPSAm YXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NTk6CiteSWlvdltjb3VudF0uaW92 X2xlbiA9IHNpemVvZihhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzk4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NjA6Cite SWNvdW50Kys7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTgz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk2MjoKK15JaWYgKHJlcS0+ c2UtPmNvbm4ucHJvdG9fbWlub3IgPCAxNikgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzk4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo5NjM6CiteSV5JaWYgKGluX2NvdW50KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojOTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j Ojk2NDoKK15JXkleSWlvdltjb3VudF0uaW92X2Jhc2UgPSAodm9pZCAqKWluX2lvdjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTY1OgorXkleSV5JaW92W2NvdW50XS5pb3ZfbGVuID0g c2l6ZW9mKGluX2lvdlswXSkgKiBpbl9jb3VudDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM5ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6OTY2OgorXkleSV5JY291bnQrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM5ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTY3 OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTY5OgorXkleSWlmIChvdXRf Y291bnQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTcwOgorXkleSV5JaW92W2Nv dW50XS5pb3ZfYmFzZSA9ICh2b2lkICopb3V0X2lvdjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6OTcxOgorXkleSV5JaW92W2NvdW50XS5pb3ZfbGVuID0gc2l6ZW9mKG91dF9pb3ZbMF0p ICogb3V0X2NvdW50OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izk5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NzI6CiteSV5JXklj b3VudCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NzM6CiteSV5JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NzQ6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjk3NToKK15JXkkvKiBDYW4ndCBoYW5kbGUgbm9uLWNvbXBhdCA2NGJpdCBp b2N0bHMgb24gMzJiaXQgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTc2OgorXkle SWlmIChzaXplb2Yodm9pZCAqKSA9PSA0ICYmIHJlcS0+aW9jdGxfNjRiaXQpIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6OTc3OgorXkleSV5JcmVzID0gZnVzZV9yZXBseV9lcnIocmVx LCBFSU5WQUwpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5Nzg6CiteSV5JXklnb3Rv IG91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDAwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk3OToKK15JXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwMjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5ODE6CiteSV5JaWYgKGluX2NvdW50KSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5ODI6CiteSV5JXklpbl9maW92ID0gZnVzZV9pb2N0bF9p b3ZlY19jb3B5KGluX2lvdiwgaW5fY291bnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwMDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6OTgzOgorXkleSV5JaWYgKCFpbl9maW92KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEwMDQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTgzOgorICAgICAgICAgICAgICAgICAgICAgICBpZiAo IWluX2Zpb3YpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMDA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk4NDoKK15JXkle SV5JZ290byBlbm9tZW07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTAwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5ODY6CiteSV5J Xklpb3ZbY291bnRdLmlvdl9iYXNlID0gKHZvaWQgKilpbl9maW92OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6OTg3OgorXkleSV5JaW92W2NvdW50XS5pb3ZfbGVuID0gc2l6ZW9mKGlu X2Zpb3ZbMF0pICogaW5fY291bnQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTAwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5ODg6 CiteSV5JXkljb3VudCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTg5OgorXkle SX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDExOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk5MDoKK15JXklpZiAob3V0X2NvdW50 KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5OTE6CiteSV5JXklvdXRfZmlvdiA9 IGZ1c2VfaW9jdGxfaW92ZWNfY29weShvdXRfaW92LCBvdXRfY291bnQpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6OTkyOgorXkleSV5JaWYgKCFvdXRfZmlvdikkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMDEz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk5MjoKKyAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCFvdXRfZmlvdikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6OTkzOgorXkleSV5JXklnb3RvIGVub21lbTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjk5NToKK15JXkleSWlvdltjb3VudF0uaW92X2Jhc2UgPSAodm9pZCAqKW91dF9maW92 OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTk2OgorXkleSV5JaW92W2NvdW50XS5p b3ZfbGVuID0gc2l6ZW9mKG91dF9maW92WzBdKSAqIG91dF9jb3VudDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjk5NzoKK15JXkleSWNvdW50Kys7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo5OTg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEwMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTk5 OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAyMjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDAxOgorXklyZXMgPSBzZW5k X3JlcGx5X2lvdihyZXEsIDAsIGlvdiwgY291bnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTAwMzoKK15JZnJlZShpbl9maW92KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMDI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjEwMDQ6CiteSWZyZWUob3V0X2Zpb3YpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTAwNjoKK15JcmV0dXJuIHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMDMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEw MDk6CiteSXJlcyA9IGZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PTUVNKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjEwMTA6CiteSWdvdG8gb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTAxNToKK15Jc3RydWN0IGZ1c2VfaW9jdGxfb3V0IGFyZzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjEwMTY6CiteSXN0cnVjdCBpb3ZlYyBpb3ZbM107JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDE3OgorXklzaXplX3QgY291bnQgPSAxOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAxOToKK15JbWVtc2V0KCZhcmcsIDAsIHNpemVvZihh cmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwMjA6CiteSWFyZy5yZXN1bHQg PSByZXN1bHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA0 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDIxOgorXklpb3ZbY291 bnRdLmlvdl9iYXNlID0gJmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMDQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwMjI6 CiteSWlvdltjb3VudF0uaW92X2xlbiA9IHNpemVvZihhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTAyMzoKK15JY291bnQrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMDQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjEwMjU6CiteSWlmIChzaXplKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTA0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MDI2OgorXkleSWlvdltjb3VudF0uaW92X2Jhc2UgPSAoY2hhciAqKSBidWY7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA0ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDI3OgorXkleSWlvdltjb3VudF0uaW92X2xlbiA9IHNpemU7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA0OTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDI4OgorXkleSWNvdW50Kys7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1MDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDI5OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMDMxOgorXklyZXR1cm4gc2VuZF9yZXBseV9pb3YocmVxLCAwLCBpb3YsIGNv dW50KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDU2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwMzU6CiteSV5JXkkgaW50IGNv dW50KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAzNzoKK15Jc3RydWN0IGlvdmVj ICpwYWRkZWRfaW92OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAzODoKK15Jc3Ry dWN0IGZ1c2VfaW9jdGxfb3V0IGFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMDYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEw Mzk6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTA2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDQxOgorXklw YWRkZWRfaW92ID0gbWFsbG9jKChjb3VudCArIDIpICogc2l6ZW9mKHN0cnVjdCBpb3ZlYykpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA0MjoKK15JaWYgKHBhZGRlZF9pb3YgPT0g TlVMTCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMxMDYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjEwNDI6CisgICAgICAgaWYgKHBhZGRlZF9pb3YgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTA0MzoKK15JXklyZXR1cm4gZnVzZV9yZXBseV9lcnIocmVxLCBF Tk9NRU0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA0NToKK15JbWVtc2V0KCZh cmcsIDAsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMDY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwNDY6 CiteSWFyZy5yZXN1bHQgPSByZXN1bHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTA2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MDQ3OgorXklwYWRkZWRfaW92WzFdLmlvdl9iYXNlID0gJmFyZzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEwNDg6CiteSXBhZGRlZF9pb3ZbMV0uaW92X2xlbiA9IHNpemVvZihhcmcp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA1MDoKK15JbWVtY3B5KCZwYWRkZWRf aW92WzJdLCBpb3YsIGNvdW50ICogc2l6ZW9mKHN0cnVjdCBpb3ZlYykpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTA1MjoKK15JcmVzID0gc2VuZF9yZXBseV9pb3YocmVxLCAwLCBw YWRkZWRfaW92LCBjb3VudCArIDIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEwNzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA1 MzoKK15JZnJlZShwYWRkZWRfaW92KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMDc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEw NTU6CiteSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTA4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDYwOgor XklzdHJ1Y3QgZnVzZV9wb2xsX291dCBhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTA4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMDYyOgorXkltZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTA2MzoKK15JYXJnLnJldmVudHMgPSByZXZlbnRzOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA2NToKK15JcmV0dXJuIHNlbmRfcmVwbHlfb2socmVxLCAm YXJnLCBzaXplb2YoYXJnKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTA5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDcwOgor XklzdHJ1Y3QgZnVzZV9sc2Vla19vdXQgYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTA3MjoKK15JbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjEwNzM6CiteSWFyZy5vZmZzZXQgPSBvZmY7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxMDc1OgorXklyZXR1cm4gc2VuZF9yZXBseV9vayhyZXEsICZhcmcs IHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwODA6CiteSWNo YXIgKm5hbWUgPSAoY2hhciAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjEwODI6CiteSWlmIChyZXEtPnNlLT5vcC5sb29rdXApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTEwMzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDgyOgorICAgICAgIGlmIChyZXEtPnNlLT5v cC5sb29rdXApClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTEwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMDgzOgorXkleSXJlcS0+c2UtPm9wLmxvb2t1cChyZXEsIG5vZGVpZCwgbmFtZSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwNTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDg0OgorXkllbHNlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDg1OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lT KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTExOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwOTA6CiteSXN0cnVjdCBmdXNlX2Zv cmdldF9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX2ZvcmdldF9pbiAqKSBpbmFyZzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTEzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwOTI6CiteSWlmIChyZXEtPnNlLT5vcC5mb3JnZXQpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMTExMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDkyOgor ICAgICAgIGlmIChyZXEtPnNlLT5vcC5mb3JnZXQpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTExNDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDkzOgorXkleSXJlcS0+c2UtPm9wLmZvcmdl dChyZXEsIG5vZGVpZCwgYXJnLT5ubG9va3VwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjEwOTQ6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwOTU6Cite SV5JZnVzZV9yZXBseV9ub25lKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTEyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MDk5OgorXkleSV5JICAgIGNvbnN0IHZvaWQgKmluYXJnKSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTEwMToKK15Jc3RydWN0IGZ1c2VfYmF0Y2hfZm9yZ2V0X2luICphcmcgPSAodm9p ZCAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExMDI6CiteSXN0cnVj dCBmdXNlX2ZvcmdldF9vbmUgKnBhcmFtID0gKHZvaWQgKikgUEFSQU0oYXJnKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExMDM6CiteSXVuc2lnbmVkIGludCBpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEwNToKK15JKHZvaWQpIG5vZGVpZDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjExMDc6CiteSWlmIChyZXEtPnNlLT5vcC5mb3JnZXRfbXVsdGkp IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExMDg6CiteSV5JcmVxLT5zZS0+b3Au Zm9yZ2V0X211bHRpKHJlcSwgYXJnLT5jb3VudCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjExMDk6CiteSV5JXkleSSAgICAgKHN0cnVjdCBmdXNlX2ZvcmdldF9kYXRhICopIHBhcmFt KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTMxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExMTA6CiteSX0gZWxzZSBpZiAocmVx LT5zZS0+b3AuZm9yZ2V0KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTEzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTExOgor XkleSWZvciAoaSA9IDA7IGkgPCBhcmctPmNvdW50OyBpKyspIHskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjExMTI6CiteSV5JXklzdHJ1Y3QgZnVzZV9mb3JnZXRfb25lICpmb3JnZXQg PSAmcGFyYW1baV07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTEzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTEzOgorXkleSV5J c3RydWN0IGZ1c2VfcmVxICpkdW1teV9yZXE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTEzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMTE1OgorXkleSV5JZHVtbXlfcmVxID0gZnVzZV9sbF9hbGxvY19yZXEocmVxLT5zZSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTE2OgorXkleSV5JaWYgKGR1bW15X3JlcSA9 PSBOVUxMKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzExMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTExNjoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKGR1bW15X3JlcSA9PSBOVUxMKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTE3OgorXkleSV5JXklicmVhazsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTQwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExMTk6CiteSV5JXklkdW1teV9yZXEtPnVu aXF1ZSA9IHJlcS0+dW5pcXVlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEyMDoK K15JXkleSWR1bW15X3JlcS0+Y3R4ID0gcmVxLT5jdHg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTE0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMTIxOgorXkleSV5JZHVtbXlfcmVxLT5jaCA9IE5VTEw7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxMTIzOgorXkleSV5JcmVxLT5zZS0+b3AuZm9yZ2V0KGR1bW15X3Jl cSwgZm9yZ2V0LT5ub2RlaWQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTE0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTI0Ogor XkleSV5JXkleSSAgZm9yZ2V0LT5ubG9va3VwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjExMjU6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEyNjoKK15J XklmdXNlX3JlcGx5X25vbmUocmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEx Mjc6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTE0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTI4OgorXkle SWZ1c2VfcmVwbHlfbm9uZShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzExNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEy OToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEzNDoKK15Jc3RydWN0IGZ1 c2VfZmlsZV9pbmZvICpmaXAgPSBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTEzNToKK15Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTEzNzoKK15JaWYgKHJlcS0+c2UtPmNvbm4ucHJvdG9fbWlub3IgPj0gOSkgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEzODoKK15JXklzdHJ1Y3QgZnVzZV9nZXRh dHRyX2luICphcmcgPSAoc3RydWN0IGZ1c2VfZ2V0YXR0cl9pbiAqKSBpbmFyZzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTYxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNDA6CiteSV5JaWYgKGFyZy0+Z2V0YXR0cl9mbGFncyAm IEZVU0VfR0VUQVRUUl9GSCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE0MToK K15JXkleSW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTE0MjoKK15JXkleSWZpLmZoID0gYXJnLT5maDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjExNDM6CiteSV5JXklmaXAgPSAmZmk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMTQ0OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEx NDU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNDc6CiteSWlmIChyZXEt PnNlLT5vcC5nZXRhdHRyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzExNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTE0NzoKKyAgICAgICBpZiAocmVxLT5zZS0+b3AuZ2V0YXR0cikKWy4uLl0K KyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNDg6Cite SV5JcmVxLT5zZS0+b3AuZ2V0YXR0cihyZXEsIG5vZGVpZCwgZmlwKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjExNDk6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjExNTA6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTE1NToKK15Jc3RydWN0IGZ1c2Vfc2V0YXR0cl9pbiAqYXJnID0g KHN0cnVjdCBmdXNlX3NldGF0dHJfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTE3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMTU3OgorXklpZiAocmVxLT5zZS0+b3Auc2V0YXR0cikgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTE1ODoKK15JXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpID0g TlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNTk6CiteSV5Jc3RydWN0IGZ1 c2VfZmlsZV9pbmZvIGZpX3N0b3JlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzExODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE2 MDoKK15JXklzdHJ1Y3Qgc3RhdCBzdGJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjExNjE6CiteSV5JbWVtc2V0KCZzdGJ1ZiwgMCwgc2l6ZW9mKHN0YnVmKSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTYyOgorXkleSWNvbnZlcnRfYXR0cihhcmcsICZzdGJ1Zik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTYzOgorXkleSWlmIChhcmctPnZhbGlk ICYgRkFUVFJfRkgpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNjQ6CiteSV5J XklhcmctPnZhbGlkICY9IH5GQVRUUl9GSDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjExNjU6CiteSV5JXkltZW1zZXQoJmZpX3N0b3JlLCAwLCBzaXplb2YoZmlfc3RvcmUpKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTg3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNjY6CiteSV5JXklmaSA9ICZmaV9zdG9yZTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTg4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNjc6CiteSV5JXklmaS0+ZmggPSBhcmct PmZoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE2ODoKK15JXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTY5OgorXkleSWFyZy0+dmFsaWQgJj0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTkxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNzA6CiteSV5JXklGVVNFX1NFVF9BVFRSX01PREVeSXwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTkyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNzE6CiteSV5JXklGVVNFX1NFVF9BVFRS X1VJRF5JfCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE3MjoKK15JXkleSUZVU0Vf U0VUX0FUVFJfR0lEXkl8JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTE5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTczOgorXkle SV5JRlVTRV9TRVRfQVRUUl9TSVpFXkl8JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTE5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MTc0OgorXkleSV5JRlVTRV9TRVRfQVRUUl9BVElNRV5JfCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTE3NToKK15JXkleSUZVU0VfU0VUX0FUVFJfTVRJTUVeSXwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjExNzY6CiteSV5JXklGVVNFX1NFVF9BVFRSX0FUSU1FX05PV15J fCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE3NzoKK15JXkleSUZVU0VfU0VUX0FU VFJfTVRJTUVfTk9XIHwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNzg6CiteSV5J XklGVVNFX1NFVF9BVFRSX0NUSU1FOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE4 MDoKK15JXklyZXEtPnNlLT5vcC5zZXRhdHRyKHJlcSwgbm9kZWlkLCAmc3RidWYsIGFyZy0+dmFs aWQsIGZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjAy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExODE6CiteSX0gZWxzZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE4MjoKK15JXklmdXNlX3JlcGx5X2Vycihy ZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTIwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTg3OgorXklzdHJ1 Y3QgZnVzZV9hY2Nlc3NfaW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9hY2Nlc3NfaW4gKikgaW5hcmc7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTg5OgorXklpZiAocmVxLT5zZS0+b3Au YWNjZXNzKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzEyMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTE4OToKKyAgICAgICBpZiAocmVxLT5zZS0+b3AuYWNjZXNzKQpbLi4uXQorICAgICAgIGVs c2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE5MDoKK15JXklyZXEtPnNl LT5vcC5hY2Nlc3MocmVxLCBub2RlaWQsIGFyZy0+bWFzayk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMTkxOgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTIxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MTkyOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjExOTc6CiteSSh2b2lkKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjExOTk6CiteSWlmIChyZXEtPnNlLT5vcC5yZWFkbGluaykkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjIw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExOTk6CisgICAgICAgaWYg KHJlcS0+c2UtPm9wLnJlYWRsaW5rKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIwMDoKK15JXklyZXEtPnNlLT5vcC5yZWFkbGluayhyZXEs IG5vZGVpZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIy MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjAxOgorXkllbHNlJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyMzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjAyOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJl cSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MjI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMDc6CiteSXN0cnVj dCBmdXNlX21rbm9kX2luICphcmcgPSAoc3RydWN0IGZ1c2VfbWtub2RfaW4gKikgaW5hcmc7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyOTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjA4OgorXkljaGFyICpuYW1lID0gUEFSQU0o YXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjMxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMTA6CiteSWlmIChyZXEtPnNl LT5jb25uLnByb3RvX21pbm9yID49IDEyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2Fy eSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyMzE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIxMDoKKyAgICAgICBpZiAocmVxLT5zZS0+Y29ubi5wcm90 b19taW5vciA+PSAxMikKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEyMTE6CiteSV5JcmVxLT5jdHgudW1hc2sgPSBhcmctPnVtYXNrOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIxMjoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTIxMzoKK15JXkluYW1lID0gKGNoYXIgKikgaW5hcmcgKyBGVVNFX0NP TVBBVF9NS05PRF9JTl9TSVpFOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIxNToK K15JaWYgKHJlcS0+c2UtPm9wLm1rbm9kKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2Fy eSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyMzY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIxNToKKyAgICAgICBpZiAocmVxLT5zZS0+b3AubWtub2Qp ClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTIzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MjE2OgorXkleSXJlcS0+c2UtPm9wLm1rbm9kKHJlcSwgbm9kZWlkLCBuYW1lLCBhcmctPm1vZGUs IGFyZy0+cmRldik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTIzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjE3OgorXkllbHNl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzOTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjE4OgorXkleSWZ1c2VfcmVwbHlfZXJy KHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMjM6CiteSXN0 cnVjdCBmdXNlX21rZGlyX2luICphcmcgPSAoc3RydWN0IGZ1c2VfbWtkaXJfaW4gKikgaW5hcmc7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI0NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjI1OgorXklpZiAocmVxLT5zZS0+Y29u bi5wcm90b19taW5vciA+PSAxMikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9y IGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjEyMjU6CisgICAgICAgaWYgKHJlcS0+c2UtPmNvbm4ucHJvdG9fbWlu b3IgPj0gMTIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMjY6CiteSV5J cmVxLT5jdHgudW1hc2sgPSBhcmctPnVtYXNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTIyODoKK15JaWYgKHJlcS0+c2UtPm9wLm1rZGlyKSQKCkVSUk9SOiBicmFjZXMge30gYXJl IG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyNDk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIyODoKKyAgICAgICBpZiAocmVxLT5zZS0+ b3AubWtkaXIpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTI1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMjI5OgorXkleSXJlcS0+c2UtPm9wLm1rZGlyKHJlcSwgbm9kZWlkLCBQQVJBTShh cmcpLCBhcmctPm1vZGUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEyNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIzMDoKK15J ZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIzMToKK15JXklmdXNlX3JlcGx5 X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTI1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjM2Ogor XkljaGFyICpuYW1lID0gKGNoYXIgKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTI1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMjM4OgorXklpZiAocmVxLT5zZS0+b3AudW5saW5rKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyNTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIzODoKKyAgICAgICBpZiAocmVxLT5z ZS0+b3AudW5saW5rKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTIzOToKK15JXklyZXEtPnNlLT5vcC51bmxpbmsocmVxLCBub2RlaWQsIG5h bWUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI0MDoKK15JZWxzZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI0MToKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVO T1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI2Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjQ2OgorXkljaGFyICpuYW1l ID0gKGNoYXIgKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTI2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjQ4Ogor XklpZiAocmVxLT5zZS0+b3Aucm1kaXIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTI2OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjQ4OgorICAgICAgIGlmIChyZXEtPnNlLT5vcC5ybWRpcikK Wy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMjcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEy NDk6CiteSV5JcmVxLT5zZS0+b3Aucm1kaXIocmVxLCBub2RlaWQsIG5hbWUpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI1MDoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTI1MToKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI3NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjU2OgorXkljaGFyICpuYW1lID0gKGNoYXIgKikgaW5h cmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI3ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjU3OgorXkljaGFyICpsaW5rbmFt ZSA9ICgoY2hhciAqKSBpbmFyZykgKyBzdHJsZW4oKGNoYXIgKikgaW5hcmcpICsgMTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNTk6CiteSWlmIChyZXEtPnNlLT5vcC5zeW1saW5r KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzEyODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI1 OToKKyAgICAgICBpZiAocmVxLT5zZS0+b3Auc3ltbGluaykKWy4uLl0KKyAgICAgICBlbHNlClsu Li5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNjA6CiteSV5JcmVxLT5zZS0+b3Au c3ltbGluayhyZXEsIGxpbmtuYW1lLCBub2RlaWQsIG5hbWUpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTI2MToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEyODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTI2MjoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMjY3OgorXklzdHJ1Y3QgZnVzZV9yZW5hbWVfaW4gKmFyZyA9IChzdHJ1 Y3QgZnVzZV9yZW5hbWVfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTI4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMjY4OgorXkljaGFyICpvbGRuYW1lID0gUEFSQU0oYXJnKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEyNjk6CiteSWNoYXIgKm5ld25hbWUgPSBvbGRuYW1lICsgc3RybGVuKG9s ZG5hbWUpICsgMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MjkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNzE6CiteSWlmIChy ZXEtPnNlLT5vcC5yZW5hbWUpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTI5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjcyOgor XkleSXJlcS0+c2UtPm9wLnJlbmFtZShyZXEsIG5vZGVpZCwgb2xkbmFtZSwgYXJnLT5uZXdkaXIs IG5ld25hbWUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjczOgorXkleSV5JXkkg IDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI3NDoKK15JZWxzZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI3NToKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVO T1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwMTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjgwOgorXklzdHJ1Y3QgZnVz ZV9yZW5hbWUyX2luICphcmcgPSAoc3RydWN0IGZ1c2VfcmVuYW1lMl9pbiAqKSBpbmFyZzskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzAyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyODE6CiteSWNoYXIgKm9sZG5hbWUgPSBQQVJB TShhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI4MjoKK15JY2hhciAqbmV3 bmFtZSA9IG9sZG5hbWUgKyBzdHJsZW4ob2xkbmFtZSkgKyAxOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTI4NDoKK15JaWYgKHJlcS0+c2UtPm9wLnJlbmFtZSkkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzA2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjEyODU6CiteSV5JcmVxLT5zZS0+b3AucmVuYW1lKHJlcSwgbm9k ZWlkLCBvbGRuYW1lLCBhcmctPm5ld2RpciwgbmV3bmFtZSwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjEyODY6CiteSV5JXkleSSAgYXJnLT5mbGFncyk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMjg3OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTMwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMjg4OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjEyOTM6CiteSXN0cnVjdCBmdXNlX2xpbmtfaW4gKmFyZyA9IChzdHJ1 Y3QgZnVzZV9saW5rX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTI5NToKK15JaWYgKHJlcS0+c2UtPm9wLmxpbmspJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTMxNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjk1OgorICAgICAgIGlmIChyZXEtPnNlLT5vcC5s aW5rKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTI5NjoKK15JXklyZXEtPnNlLT5vcC5saW5rKHJlcSwgYXJnLT5vbGRub2RlaWQsIG5vZGVp ZCwgUEFSQU0oYXJnKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTMxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjk3OgorXkll bHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjk4OgorXkleSWZ1c2VfcmVwbHlf ZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzMDM6Cite SXN0cnVjdCBmdXNlX2NyZWF0ZV9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX2NyZWF0ZV9pbiAqKSBp bmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzI2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzMDU6CiteSWlmIChyZXEtPnNl LT5vcC5jcmVhdGUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMzI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzMDY6CiteSV5J c3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTMwNzoKK15JXkljaGFyICpuYW1lID0gUEFSQU0oYXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjEzMDk6CiteSV5JbWVtc2V0KCZmaSwgMCwgc2l6ZW9mKGZpKSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzMTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzEwOgorXkleSWZpLmZsYWdzID0gYXJnLT5mbGFnczsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzMzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzMTI6CiteSV5JaWYgKHJlcS0+c2UtPmNv bm4ucHJvdG9fbWlub3IgPj0gMTIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTMzMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxMzEyOgorICAgICAgICAgICAgICAgaWYgKHJlcS0+c2UtPmNvbm4u cHJvdG9fbWlub3IgPj0gMTIpClsuLi5dCisgICAgICAgICAgICAgICBlbHNlClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzM0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzMTM6CiteSV5JXklyZXEtPmN0eC51bWFzayA9IGFy Zy0+dW1hc2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMz NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzE0OgorXkleSWVsc2Uk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzM2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzMTU6CiteSV5JXkluYW1lID0gKGNoYXIg KikgaW5hcmcgKyBzaXplb2Yoc3RydWN0IGZ1c2Vfb3Blbl9pbik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMzE3OgorXkleSXJlcS0+c2UtPm9wLmNyZWF0ZShyZXEsIG5vZGVpZCwg bmFtZSwgYXJnLT5tb2RlLCAmZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMx ODoKK15JfSBlbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTM0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzE5OgorXkleSWZ1 c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMzQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjEzMjQ6CiteSXN0cnVjdCBmdXNlX29wZW5faW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9vcGVuX2lu ICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMyNToKK15Jc3RydWN0 IGZ1c2VfZmlsZV9pbmZvIGZpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMyNzoK K15JbWVtc2V0KCZmaSwgMCwgc2l6ZW9mKGZpKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTM0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMzI4OgorXklmaS5mbGFncyA9IGFyZy0+ZmxhZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMzMwOgorXklpZiAocmVxLT5zZS0+b3Aub3BlbikkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMzUxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzMzA6CisgICAgICAgaWYgKHJl cS0+c2UtPm9wLm9wZW4pClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMzMxOgorXkleSXJlcS0+c2UtPm9wLm9wZW4ocmVxLCBub2RlaWQsICZm aSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzMyOgorXkllbHNlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzMzOgorXkleSWZ1c2VfcmVwbHlfb3BlbihyZXEsICZm aSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzM4OgorXklzdHJ1Y3QgZnVzZV9y ZWFkX2luICphcmcgPSAoc3RydWN0IGZ1c2VfcmVhZF9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzYxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjEzNDA6CiteSWlmIChyZXEtPnNlLT5vcC5yZWFkKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzQxOgorXkleSXN0cnVjdCBmdXNlX2ZpbGVfaW5m byBmaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzY0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNDM6CiteSV5JbWVtc2V0KCZm aSwgMCwgc2l6ZW9mKGZpKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTM2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzQ0Ogor XkleSWZpLmZoID0gYXJnLT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMzY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNDU6 CiteSV5JaWYgKHJlcS0+c2UtPmNvbm4ucHJvdG9fbWlub3IgPj0gOSkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTM0NjoKK15JXkleSWZpLmxvY2tfb3duZXIgPSBhcmctPmxvY2tf b3duZXI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzQ3OgorXkleSV5JZmkuZmxh Z3MgPSBhcmctPmZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEzNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM0ODoKK15J Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM3MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzQ5OgorXkleSXJlcS0+c2UtPm9w LnJlYWQocmVxLCBub2RlaWQsIGFyZy0+c2l6ZSwgYXJnLT5vZmZzZXQsICZmaSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM3MTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzUwOgorXkl9IGVsc2UkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEzNTE6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNzc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM1NjoKK15Jc3RydWN0IGZ1c2Vfd3JpdGVfaW4g KmFyZyA9IChzdHJ1Y3QgZnVzZV93cml0ZV9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEzNTc6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzc5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNTg6CiteSWNoYXIgKnBhcmFtOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTM2MDoKK15JbWVtc2V0KCZmaSwgMCwgc2l6ZW9mKGZpKSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzYxOgorXklmaS5maCA9IGFyZy0+Zmg7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzYyOgorXklmaS53cml0ZXBhZ2UgPSAoYXJn LT53cml0ZV9mbGFncyAmIEZVU0VfV1JJVEVfQ0FDSEUpICE9IDA7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMzY0OgorXklpZiAocmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA8IDkp IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzg2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNjU6CiteSV5JcGFyYW0gPSAoKGNo YXIgKikgYXJnKSArIEZVU0VfQ09NUEFUX1dSSVRFX0lOX1NJWkU7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMzY2OgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEzODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTM2NzoKK15JXklmaS5sb2NrX293bmVyID0gYXJnLT5sb2NrX293bmVyOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzODk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM2ODoKK15JXklmaS5mbGFncyA9IGFyZy0+ZmxhZ3M7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM5MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzY5OgorXkleSXBhcmFtID0gUEFSQU0o YXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzkxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNzA6CiteSX0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzkzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNzI6CiteSWlmIChyZXEtPnNlLT5vcC53cml0ZSkkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzk0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNzM6CiteSV5JcmVxLT5zZS0+b3Aud3JpdGUo cmVxLCBub2RlaWQsIHBhcmFtLCBhcmctPnNpemUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTM5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMzc0OgorXkleSV5JXkkgYXJnLT5vZmZzZXQsICZmaSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMzc1OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTM5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMzc2OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjEzODA6CiteSV5JXkkgY29uc3Qgc3RydWN0IGZ1c2VfYnVmICppYnVm KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MDM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM4MjoKK15Jc3RydWN0IGZ1c2Vfc2Vz c2lvbiAqc2UgPSByZXEtPnNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE0MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM4MzoK K15Jc3RydWN0IGZ1c2VfYnVmdmVjIGJ1ZnYgPSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTQwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMzg0OgorXkleSS5idWZbMF0gPSAqaWJ1ZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNDA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjEzODU6CiteSV5JLmNvdW50ID0gMSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNDA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjEzODY6CiteSX07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTQwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzg3OgorXklz dHJ1Y3QgZnVzZV93cml0ZV9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX3dyaXRlX2luICopIGluYXJn OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MDk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM4ODoKK15Jc3RydWN0IGZ1c2VfZmls ZV9pbmZvIGZpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0 MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM5MDoKK15JbWVtc2V0 KCZmaSwgMCwgc2l6ZW9mKGZpKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTQxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzkx OgorXklmaS5maCA9IGFyZy0+Zmg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTQxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzky OgorXklmaS53cml0ZXBhZ2UgPSBhcmctPndyaXRlX2ZsYWdzICYgRlVTRV9XUklURV9DQUNIRTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDE1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzOTQ6CiteSWlmIChzZS0+Y29ubi5wcm90 b19taW5vciA8IDkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNDE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzOTU6CiteSV5J YnVmdi5idWZbMF0ubWVtID0gKChjaGFyICopIGFyZykgKyBGVVNFX0NPTVBBVF9XUklURV9JTl9T SVpFOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM5NjoKK15JXklidWZ2LmJ1Zlsw XS5zaXplIC09IHNpemVvZihzdHJ1Y3QgZnVzZV9pbl9oZWFkZXIpICskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjEzOTc6CiteSV5JXklGVVNFX0NPTVBBVF9XUklURV9JTl9TSVpFOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM5ODoKK15JXklhc3NlcnQoIShidWZ2LmJ1 ZlswXS5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTQyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMzk5OgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE0MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQw MDoKK15JXklmaS5sb2NrX293bmVyID0gYXJnLT5sb2NrX293bmVyOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTQwMToKK15JXklmaS5mbGFncyA9IGFyZy0+ZmxhZ3M7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQyMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDAyOgorXkleSWlmICghKGJ1ZnYuYnVmWzBdLmZsYWdz ICYgRlVTRV9CVUZfSVNfRkQpKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE0MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTQwMjoKKyAgICAgICAgICAgICAgIGlmICghKGJ1ZnYuYnVmWzBdLmZs YWdzICYgRlVTRV9CVUZfSVNfRkQpKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTQyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNDAzOgorXkleSV5JYnVmdi5idWZbMF0ubWVtID0gUEFSQU0oYXJnKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDI2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE0MDU6CiteSV5JYnVmdi5idWZbMF0uc2l6ZSAtPSBzaXplb2Yo c3RydWN0IGZ1c2VfaW5faGVhZGVyKSArJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTQyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox NDA2OgorXkleSV5Jc2l6ZW9mKHN0cnVjdCBmdXNlX3dyaXRlX2luKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE0MDc6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNDI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE0MDg6CiteSWlmIChidWZ2LmJ1ZlswXS5zaXplIDwgYXJnLT5zaXplKSB7JAoKV0FSTklORzog bGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzE0MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTQwOToKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwg ImZ1c2U6IGRvX3dyaXRlX2J1ZjogYnVmZmVyIHNpemUgdG9vIHNtYWxsXG4iKTsKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQwOToKK15JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJm dXNlOiBkb193cml0ZV9idWY6IGJ1ZmZlciBzaXplIHRvbyBzbWFsbFxuIik7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQzMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDEwOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRUlPKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDMyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MTE6CiteSV5JZ290byBvdXQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQzMzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDEyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNDEzOgorXklidWZ2LmJ1ZlswXS5zaXplID0gYXJnLT5zaXplOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQxNToKK15Jc2UtPm9wLndyaXRlX2J1ZihyZXEsIG5v ZGVpZCwgJmJ1ZnYsIGFyZy0+b2Zmc2V0LCAmZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE0Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTQxODoKK15JLyogTmVlZCB0byByZXNldCB0aGUgcGlwZSBpZiAtPndyaXRlX2J1Zigp IGRpZG4ndCBjb25zdW1lIGFsbCBkYXRhICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTQ0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNDE5OgorXklpZiAoKGlidWYtPmZsYWdzICYgRlVTRV9CVUZfSVNfRkQpICYmIGJ1ZnYuaWR4 IDwgYnVmdi5jb3VudCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE0MTk6CisgICAgICAgaWYgKChpYnVmLT5mbGFncyAmIEZVU0VfQlVGX0lTX0ZE KSAmJiBidWZ2LmlkeCA8IGJ1ZnYuY291bnQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE0MjA6CiteSV5JZnVzZV9sbF9jbGVhcl9waXBlKHNlKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE0MjU6CiteSXN0cnVjdCBmdXNlX2ZsdXNoX2luICphcmcgPSAoc3Ry dWN0IGZ1c2VfZmx1c2hfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTQ0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNDI2OgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNDI4OgorXkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkpKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDUwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0Mjk6CiteSWZpLmZoID0gYXJnLT5maDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDUxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MzA6CiteSWZpLmZsdXNoID0gMTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDUyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE0MzE6CiteSWlmIChyZXEtPnNlLT5jb25uLnByb3RvX21pbm9y ID49IDcpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMTQ1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNDMxOgorICAgICAgIGlmIChyZXEtPnNlLT5jb25uLnByb3RvX21pbm9yID49IDcpClsuLi5d CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDUzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MzI6CiteSV5JZmkubG9ja19vd25lciA9 IGFyZy0+bG9ja19vd25lcjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNDU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MzQ6Cite SWlmIChyZXEtPnNlLT5vcC5mbHVzaCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNDU1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE0MzQ6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLmZsdXNoKQpb Li4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE0NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQz NToKK15JXklyZXEtPnNlLT5vcC5mbHVzaChyZXEsIG5vZGVpZCwgJmZpKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDU3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE0MzY6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNDU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE0Mzc6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NjM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ0MjoKK15Jc3RydWN0IGZ1c2VfcmVsZWFzZV9pbiAqYXJn ID0gKHN0cnVjdCBmdXNlX3JlbGVhc2VfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNDQzOgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ2NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDQ1OgorXkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkpKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDY3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0NDY6CiteSWZpLmZsYWdzID0gYXJnLT5m bGFnczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDY4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0NDc6CiteSWZpLmZoID0gYXJn LT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDY5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0NDg6CiteSWlmIChyZXEtPnNl LT5jb25uLnByb3RvX21pbm9yID49IDgpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNDcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE0NDk6CiteSV5JZmkuZmx1c2ggPSAoYXJnLT5yZWxlYXNlX2ZsYWdzICYgRlVTRV9SRUxFQVNF X0ZMVVNIKSA/IDEgOiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE0NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ1MDoKK15J XklmaS5sb2NrX293bmVyID0gYXJnLT5sb2NrX293bmVyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTQ1MToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE0NzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ1MjoK K15JaWYgKGFyZy0+cmVsZWFzZV9mbGFncyAmIEZVU0VfUkVMRUFTRV9GTE9DS19VTkxPQ0spIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDc0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0NTM6CiteSV5JZmkuZmxvY2tfcmVsZWFz ZSA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ3NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDU0OgorXkleSWZpLmxvY2tf b3duZXIgPSBhcmctPmxvY2tfb3duZXI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTQ3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox NDU1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ3 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDU3OgorXklpZiAocmVx LT5zZS0+b3AucmVsZWFzZSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNDc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE0NTc6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLnJlbGVhc2UpClsuLi5d CisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTQ3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDU4Ogor XkleSXJlcS0+c2UtPm9wLnJlbGVhc2UocmVxLCBub2RlaWQsICZmaSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ4MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNDU5OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTQ4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxNDYwOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgMCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNDY1OgorXklzdHJ1Y3QgZnVzZV9mc3luY19pbiAqYXJnID0gKHN0cnVj dCBmdXNlX2ZzeW5jX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE0ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTQ2NjoKK15Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTQ2NzoKK15JaW50IGRhdGFzeW5jID0gYXJnLT5mc3luY19mbGFncyAmIDE7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ5MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDY5OgorXkltZW1zZXQoJmZpLCAwLCBzaXpl b2YoZmkpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDkx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0NzA6CiteSWZpLmZoID0g YXJnLT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDkz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0NzI6CiteSWlmIChyZXEt PnNlLT5vcC5mc3luYykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNDkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE0NzI6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLmZzeW5jKQpbLi4uXQorICAg ICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE0OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ3MzoKK15JXkly ZXEtPnNlLT5vcC5mc3luYyhyZXEsIG5vZGVpZCwgZGF0YXN5bmMsICZmaSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ5NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDc0OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTQ5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNDc1OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTAxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0ODA6CiteSXN0cnVjdCBmdXNlX29wZW5faW4gKmFyZyA9 IChzdHJ1Y3QgZnVzZV9vcGVuX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTQ4MToKK15Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTQ4MzoKK15JbWVtc2V0KCZmaSwgMCwgc2l6ZW9mKGZpKSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUwNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDg0OgorXklmaS5mbGFncyA9IGFyZy0+ZmxhZ3M7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUwNzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDg2OgorXklpZiAocmVxLT5zZS0+b3Au b3BlbmRpcikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiMxNTA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE0ODY6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLm9wZW5kaXIpClsuLi5dCisgICAgICAg ZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUw ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDg3OgorXkleSXJlcS0+ c2UtPm9wLm9wZW5kaXIocmVxLCBub2RlaWQsICZmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTUwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNDg4OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTUxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDg5 OgorXkleSWZ1c2VfcmVwbHlfb3BlbihyZXEsICZmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTUxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNDk0OgorXklzdHJ1Y3QgZnVzZV9yZWFkX2luICphcmcgPSAoc3RydWN0IGZ1c2Vf cmVhZF9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0OTU6Cite SXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNTE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE0OTc6CiteSW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTQ5ODoKK15JZmkuZmggPSBhcmctPmZoOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTUwMDoKK15JaWYgKHJlcS0+c2UtPm9wLnJlYWRkaXIpJAoKRVJST1I6IGJy YWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTUy MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTAwOgorICAgICAgIGlm IChyZXEtPnNlLT5vcC5yZWFkZGlyKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MjI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUwMToKK15JXklyZXEtPnNlLT5vcC5yZWFkZGlyKHJlcSwg bm9kZWlkLCBhcmctPnNpemUsIGFyZy0+b2Zmc2V0LCAmZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTUwMjoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE1MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTUwMzoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNTA4OgorXklzdHJ1Y3QgZnVzZV9yZWFkX2luICphcmcgPSAoc3RydWN0 IGZ1c2VfcmVhZF9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNTMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1 MDk6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE1MTE6CiteSW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTUxMjoKK15JZmkuZmggPSBhcmctPmZoOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTUxNDoKK15JaWYgKHJlcS0+c2UtPm9wLnJlYWRkaXJwbHVzKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzE1MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUxNDoK KyAgICAgICBpZiAocmVxLT5zZS0+b3AucmVhZGRpcnBsdXMpClsuLi5dCisgICAgICAgZWxzZQpb Li4uXQoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzE1MzY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUxNToKKyAgICAgICAgICAgICAgIHJlcS0+c2Ut Pm9wLnJlYWRkaXJwbHVzKHJlcSwgbm9kZWlkLCBhcmctPnNpemUsIGFyZy0+b2Zmc2V0LCAmZmkp OwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUzNjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTE1OgorXkleSXJlcS0+c2UtPm9wLnJl YWRkaXJwbHVzKHJlcSwgbm9kZWlkLCBhcmctPnNpemUsIGFyZy0+b2Zmc2V0LCAmZmkpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1Mzc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUxNjoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTUxNzoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU0MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTIyOgorXklzdHJ1Y3QgZnVzZV9yZWxlYXNl X2luICphcmcgPSAoc3RydWN0IGZ1c2VfcmVsZWFzZV9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTQ0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE1MjM6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTQ2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MjU6CiteSW1lbXNldCgmZmksIDAsIHNpemVv ZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NDc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUyNjoKK15JZmkuZmxhZ3Mg PSBhcmctPmZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE1NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUyNzoKK15JZmku ZmggPSBhcmctPmZoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE1NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUyOToKK15JaWYg KHJlcS0+c2UtPm9wLnJlbGVhc2VkaXIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTU1MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTI5OgorICAgICAgIGlmIChyZXEtPnNlLT5vcC5yZWxlYXNl ZGlyKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE1NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTUzMDoKK15JXklyZXEtPnNlLT5vcC5yZWxlYXNlZGlyKHJlcSwgbm9kZWlkLCAmZmkpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUzMToKK15JZWxzZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTUzMjoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIDApOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NTg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUzNzoKK15Jc3RydWN0IGZ1c2VfZnN5bmNfaW4g KmFyZyA9IChzdHJ1Y3QgZnVzZV9mc3luY19pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE1Mzg6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTYwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1Mzk6CiteSWludCBkYXRhc3luYyA9IGFyZy0+ZnN5bmNf ZmxhZ3MgJiAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1 NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU0MToKK15JbWVtc2V0 KCZmaSwgMCwgc2l6ZW9mKGZpKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTU2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTQy OgorXklmaS5maCA9IGFyZy0+Zmg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTU2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTQ0 OgorXklpZiAocmVxLT5zZS0+b3AuZnN5bmNkaXIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTU2NTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTQ0OgorICAgICAgIGlmIChyZXEtPnNlLT5vcC5m c3luY2RpcikKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE1NDU6CiteSV5JcmVxLT5zZS0+b3AuZnN5bmNkaXIocmVxLCBub2RlaWQsIGRhdGFz eW5jLCAmZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1 Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU0NjoKK15JZWxzZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1Njg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU0NzoKK15JXklmdXNlX3JlcGx5X2Vycihy ZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTU3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTUyOgorXkkodm9p ZCkgbm9kZWlkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1 NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU1MzoKK15JKHZvaWQp IGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NzY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU1NToKK15JaWYgKHJlcS0+ c2UtPm9wLnN0YXRmcykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NTY6CiteSV5J cmVxLT5zZS0+b3Auc3RhdGZzKHJlcSwgbm9kZWlkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE1NTc6CiteSWVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE1Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU1 ODoKK15JXklzdHJ1Y3Qgc3RhdHZmcyBidWYgPSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTU4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxNTU5OgorXkleSV5JLmZfbmFtZW1heCA9IDI1NSwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE1NjA6CiteSV5JXkkuZl9ic2l6ZSA9IDUxMiwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE1NjE6CiteSV5JfTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE1NjI6CiteSV5JZnVzZV9yZXBseV9zdGF0ZnMocmVxLCAmYnVmKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE1NjM6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNTg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE1Njg6CiteSXN0cnVjdCBmdXNlX3NldHhhdHRyX2luICphcmcgPSAoc3RydWN0IGZ1c2Vfc2V0 eGF0dHJfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTU5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTY5Ogor XkljaGFyICpuYW1lID0gUEFSQU0oYXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE1NzA6CiteSWNoYXIgKnZhbHVlID0gbmFtZSArIHN0cmxlbihuYW1lKSArIDE7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU5MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTcyOgorXklpZiAocmVxLT5zZS0+b3Auc2V0eGF0dHIp JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU5NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTczOgorXkleSXJlcS0+c2UtPm9wLnNl dHhhdHRyKHJlcSwgbm9kZWlkLCBuYW1lLCB2YWx1ZSwgYXJnLT5zaXplLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTU3NDoKK15JXkleSV5JICAgIGFyZy0+ZmxhZ3MpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1OTY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU3NToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTU3NjoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYwMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTgxOgorXklzdHJ1Y3QgZnVzZV9nZXR4YXR0cl9p biAqYXJnID0gKHN0cnVjdCBmdXNlX2dldHhhdHRyX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTU4MzoKK15JaWYgKHJlcS0+c2UtPm9wLmdldHhhdHRyKSQKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzE2MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU4MzoKKyAg ICAgICBpZiAocmVxLT5zZS0+b3AuZ2V0eGF0dHIpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYwNTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTg0OgorXkleSXJlcS0+c2UtPm9wLmdldHhh dHRyKHJlcSwgbm9kZWlkLCBQQVJBTShhcmcpLCBhcmctPnNpemUpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTU4NToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE2MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTU4NjoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYxMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNTkxOgorXklzdHJ1Y3QgZnVzZV9nZXR4YXR0cl9pbiAqYXJnID0g KHN0cnVjdCBmdXNlX2dldHhhdHRyX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTU5MzoKK15JaWYgKHJlcS0+c2UtPm9wLmxpc3R4YXR0cikkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNjE0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1OTM6CisgICAgICAgaWYg KHJlcS0+c2UtPm9wLmxpc3R4YXR0cikKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjE1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1OTQ6CiteSV5JcmVxLT5zZS0+b3AubGlzdHhhdHRyKHJl cSwgbm9kZWlkLCBhcmctPnNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE2MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU5 NToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2 MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU5NjoKK15JXklmdXNl X3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTYyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox NjAxOgorXkljaGFyICpuYW1lID0gKGNoYXIgKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNjAzOgorXklpZiAocmVxLT5zZS0+b3AucmVtb3ZleGF0dHIpJAoKRVJST1I6 IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAoj MTYyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjAzOgorICAgICAg IGlmIChyZXEtPnNlLT5vcC5yZW1vdmV4YXR0cikKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjI1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2MDQ6CiteSV5JcmVxLT5zZS0+b3AucmVtb3Zl eGF0dHIocmVxLCBub2RlaWQsIG5hbWUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE2MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTYwNToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE2Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYwNjoKK15JXklm dXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTYzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNjEwOgorXkleSV5JXkkgICBzdHJ1Y3QgZmxvY2sgKmZsb2NrKSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTYxMjoKK15JbWVtc2V0KGZsb2NrLCAwLCBzaXplb2Yoc3RydWN0IGZs b2NrKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYzNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjEzOgorXklmbG9jay0+bF90 eXBlID0gZmwtPnR5cGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTYzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjE0OgorXklm bG9jay0+bF93aGVuY2UgPSBTRUVLX1NFVDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNjM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE2MTU6CiteSWZsb2NrLT5sX3N0YXJ0ID0gZmwtPnN0YXJ0OyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTYxNjoKK15JaWYgKGZsLT5lbmQgPT0gT0ZGU0VUX01BWCkkCgpFUlJPUjog YnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMx NjM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2MTY6CisgICAgICAg aWYgKGZsLT5lbmQgPT0gT0ZGU0VUX01BWCkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjM4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2MTc6CiteSV5JZmxvY2stPmxfbGVuID0gMDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjM5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2MTg6CiteSWVsc2UkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE2MTk6CiteSV5JZmxvY2stPmxfbGVuID0gZmwtPmVuZCAtIGZsLT5z dGFydCArIDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY0 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjIwOgorXklmbG9jay0+ bF9waWQgPSBmbC0+cGlkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE2NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYyNToKK15J c3RydWN0IGZ1c2VfbGtfaW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9sa19pbiAqKSBpbmFyZzskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjQ3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2MjY6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5m byBmaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjQ4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2Mjc6CiteSXN0cnVjdCBmbG9j ayBmbG9jazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjUw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2Mjk6CiteSW1lbXNldCgm ZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE2NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYzMDoK K15JZmkuZmggPSBhcmctPmZoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE2NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYzMToK K15JZmkubG9ja19vd25lciA9IGFyZy0+b3duZXI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTY1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxNjMzOgorXkljb252ZXJ0X2Z1c2VfZmlsZV9sb2NrKCZhcmctPmxrLCAmZmxvY2spOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYzNDoKK15JaWYgKHJlcS0+c2UtPm9wLmdl dGxrKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzE2NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTYzNDoKKyAgICAgICBpZiAocmVxLT5zZS0+b3AuZ2V0bGspClsuLi5dCisgICAgICAgZWxzZQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY1NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjM1OgorXkleSXJlcS0+c2UtPm9w LmdldGxrKHJlcSwgbm9kZWlkLCAmZmksICZmbG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTY1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNjM2OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTY1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjM3 OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE2NDE6CiteSV5JXkkgICAgY29uc3Qgdm9pZCAqaW5hcmcsIGludCBzbGVlcCkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjY0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2NDM6CiteSXN0cnVjdCBmdXNlX2xrX2lu ICphcmcgPSAoc3RydWN0IGZ1c2VfbGtfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNjQ0OgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY2NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjQ1OgorXklzdHJ1Y3QgZmxvY2sgZmxvY2s7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY2ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjQ3OgorXkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkp KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjY5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2NDg6CiteSWZpLmZoID0gYXJnLT5m aDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjcwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2NDk6CiteSWZpLmxvY2tfb3duZXIg PSBhcmctPm93bmVyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE2NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY1MToKK15JaWYg KGFyZy0+bGtfZmxhZ3MgJiBGVVNFX0xLX0ZMT0NLKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTY3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNjUyOgorXkleSWludCBvcCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTY3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxNjU0OgorXkleSXN3aXRjaCAoYXJnLT5say50eXBlKSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNjU1OgorXkleSWNhc2UgRl9SRExDSzokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE2NTY6CiteSV5JXklvcCA9IExPQ0tfU0g7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNjU3OgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTY3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNjU4OgorXkleSWNhc2UgRl9XUkxDSzokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNjgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE2NTk6CiteSV5JXklvcCA9IExPQ0tfRVg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTY4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNjYwOgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTY4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNjYxOgorXkleSWNhc2UgRl9VTkxDSzokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNjgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE2NjI6CiteSV5JXklvcCA9IExPQ0tfVU47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTY4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNjYzOgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTY4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjY0 OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjg2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2NjU6CiteSV5JaWYgKCFz bGVlcCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMxNjg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE2NjU6CisgICAgICAgICAgICAgICBpZiAoIXNsZWVwKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNjY2OgorXkleSV5Jb3AgfD0gTE9DS19OQjskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE2Njg6CiteSV5JaWYgKHJlcS0+c2UtPm9wLmZsb2NrKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzE2ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY2ODoKKyAgICAg ICAgICAgICAgIGlmIChyZXEtPnNlLT5vcC5mbG9jaykKWy4uLl0KKyAgICAgICAgICAgICAgIGVs c2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2OTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY2OToKK15JXkleSXJlcS0+ c2UtPm9wLmZsb2NrKHJlcSwgbm9kZWlkLCAmZmksIG9wKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE2NzA6CiteSV5JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE2OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTY3MToKK15JXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE2NzI6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTY5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNjczOgorXkleSWNvbnZlcnRfZnVzZV9maWxlX2xvY2soJmFyZy0+bGssICZmbG9j ayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY5NTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjc0OgorXkleSWlmIChyZXEtPnNl LT5vcC5zZXRsaykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiMxNjk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE2NzQ6CisgICAgICAgICAgICAgICBpZiAocmVxLT5zZS0+b3Auc2V0bGspClsuLi5d CisgICAgICAgICAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE2NzU6CiteSV5JXklyZXEtPnNlLT5vcC5zZXRsayhyZXEsIG5vZGVpZCwgJmZpLCAmZmxvY2ss IHNsZWVwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjk3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2NzY6CiteSV5JZWxzZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2OTg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY3NzoKK15JXkleSWZ1c2VfcmVwbHlfZXJy KHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNjk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2Nzg6CiteSX0k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzA0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2ODM6CiteSWRvX3NldGxrX2NvbW1vbihy ZXEsIG5vZGVpZCwgaW5hcmcsIDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE3MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY4 ODoKK15JZG9fc2V0bGtfY29tbW9uKHJlcSwgbm9kZWlkLCBpbmFyZywgMSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcxNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjkzOgorXklzdHJ1Y3QgZnVzZV9yZXEgKmN1cnI7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcxNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjk1OgorXklmb3IgKGN1cnIgPSBzZS0+bGlzdC5u ZXh0OyBjdXJyICE9ICZzZS0+bGlzdDsgY3VyciA9IGN1cnItPm5leHQpIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzE3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE2OTY6CiteSV5JaWYgKGN1cnItPnVuaXF1ZSA9PSByZXEtPnUu aS51bmlxdWUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NzE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2OTc6CiteSV5JXklm dXNlX2ludGVycnVwdF9mdW5jX3QgZnVuYzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNzE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE2OTg6CiteSV5JXkl2b2lkICpkYXRhOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE3MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTcwMDoKK15JXkleSWN1cnItPmN0cisrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE3MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTcwMToKK15JXkleSXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZzZS0+bG9jayk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcyNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzAzOgorXkleSV5JLyogVWdoLCB1Z2x5IGxvY2tpbmcgKi8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzI1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MDQ6CiteSV5JXklwdGhyZWFkX211dGV4 X2xvY2soJmN1cnItPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE3MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcwNToK K15JXkleSXB0aHJlYWRfbXV0ZXhfbG9jaygmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTcwNjoKK15JXkleSWN1cnItPmludGVycnVwdGVkID0gMTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzI4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MDc6CiteSV5JXklmdW5jID0gY3Vyci0+dS5uaS5mdW5j OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Mjk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcwODoKK15JXkleSWRhdGEgPSBjdXJy LT51Lm5pLmRhdGE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTczMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzA5OgorXkleSV5J cHRocmVhZF9tdXRleF91bmxvY2soJnNlLT5sb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNzMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE3MTA6CiteSV5JXklpZiAoZnVuYykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNzMxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MTA6CisgICAgICAgICAgICAgICAgICAgICAgIGlm IChmdW5jKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTczMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzExOgorXkleSV5J XklmdW5jKGN1cnIsIGRhdGEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE3MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcxMjoK K15JXkleSXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZjdXJyLT5sb2NrKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE3MTQ6CiteSV5JXklwdGhyZWFkX211dGV4X2xvY2soJnNlLT5sb2Nr KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzM2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MTU6CiteSV5JXkljdXJyLT5jdHIt LTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzM3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MTY6CiteSV5JXklpZiAoIWN1cnIt PmN0cikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMxNzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE3MTY6CisgICAgICAgICAgICAgICAgICAgICAgIGlmICghY3Vyci0+Y3RyKQpbLi4uXQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTczODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzE3OgorXkleSV5JXklkZXN0cm95X3JlcShjdXJy KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MTk6CiteSV5JXklyZXR1cm4gMTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MjA6CiteSV5JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTcyMToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE3NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTcyMjoKK15JZm9yIChjdXJyID0gc2UtPmludGVycnVwdHMubmV4dDsgY3VyciAhPSAmc2Ut PmludGVycnVwdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTc0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzIzOgorXkkgICAg IGN1cnIgPSBjdXJyLT5uZXh0KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTc0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzI0 OgorXkleSWlmIChjdXJyLT51LmkudW5pcXVlID09IHJlcS0+dS5pLnVuaXF1ZSkkCgpFUlJPUjog YnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMx NzQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MjQ6CisgICAgICAg ICAgICAgICBpZiAoY3Vyci0+dS5pLnVuaXF1ZSA9PSByZXEtPnUuaS51bmlxdWUpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQ2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MjU6CiteSV5JXklyZXR1cm4gMTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQ3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MjY6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE3Mjc6CiteSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE3NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTczMjoKK15Jc3RydWN0IGZ1c2VfaW50ZXJydXB0X2luICphcmcgPSAoc3RydWN0IGZ1c2Vf aW50ZXJydXB0X2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE3NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcz MzoKK15Jc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqc2UgPSByZXEtPnNlOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTczNToKK15JKHZvaWQpIG5vZGVpZDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE3MzY6CiteSWlmIChzZS0+ZGVidWcpJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNzM3OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAiSU5URVJSVVBU OiAlbGx1XG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3 NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTczODoKK15JXkleSSh1 bnNpZ25lZCBsb25nIGxvbmcpIGFyZy0+dW5pcXVlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNzYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE3NDA6CiteSXJlcS0+dS5pLnVuaXF1ZSA9IGFyZy0+dW5pcXVlOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NjM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc0MjoKK15JcHRocmVhZF9tdXRleF9sb2NrKCZzZS0+bG9j ayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc2NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzQzOgorXklpZiAoZmluZF9pbnRl cnJ1cHRlZChzZSwgcmVxKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNzY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE3NDM6CisgICAgICAgaWYgKGZpbmRfaW50ZXJydXB0ZWQoc2UsIHJlcSkp ClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTc2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox NzQ0OgorXkleSWRlc3Ryb3lfcmVxKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTc2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNzQ1OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTc2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzQ2OgorXkle SWxpc3RfYWRkX3JlcShyZXEsICZzZS0+aW50ZXJydXB0cyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNzQ3OgorXklwdGhyZWFkX211dGV4X3VubG9jaygmc2UtPmxvY2spOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NzI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc1MToKK15JXkleSV5JXklzdHJ1Y3QgZnVzZV9y ZXEgKnJlcSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzc0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NTM6CiteSXN0cnVjdCBm dXNlX3JlcSAqY3VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNzc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NTU6CiteSWZv ciAoY3VyciA9IHNlLT5pbnRlcnJ1cHRzLm5leHQ7IGN1cnIgIT0gJnNlLT5pbnRlcnJ1cHRzOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Nzc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc1NjoKK15JICAgICBjdXJyID0gY3Vyci0+ bmV4dCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Nzg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc1NzoKK15JXklpZiAoY3Vy ci0+dS5pLnVuaXF1ZSA9PSByZXEtPnVuaXF1ZSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTc1ODoKK15JXkleSXJlcS0+aW50ZXJydXB0ZWQgPSAxOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTc1OToKK15JXkleSWxpc3RfZGVsX3JlcShjdXJyKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzgxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NjA6CiteSV5JXklmcmVlKGN1cnIpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc2MToKK15JXkleSXJldHVybiBOVUxMOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc2MjoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTc4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNzYzOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTc4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzY0Ogor XkljdXJyID0gc2UtPmludGVycnVwdHMubmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNzg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE3NjU6CiteSWlmIChjdXJyICE9ICZzZS0+aW50ZXJydXB0cykgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTc2NjoKK15JXklsaXN0X2RlbF9yZXEoY3Vycik7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzY3OgorXkleSWxpc3RfaW5pdF9yZXEoY3Vycik7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzY4OgorXkleSXJldHVybiBjdXJyOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3OTA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc2OToKK15JfSBlbHNlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc5MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNzcwOgorXkleSXJldHVybiBOVUxMOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTc3NToKK15Jc3RydWN0IGZ1c2VfYm1hcF9pbiAqYXJnID0gKHN0cnVj dCBmdXNlX2JtYXBfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTc5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox Nzc3OgorXklpZiAocmVxLT5zZS0+b3AuYm1hcCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNzk4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3Nzc6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLmJt YXApClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTc5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNzc4OgorXkleSXJlcS0+c2UtPm9wLmJtYXAocmVxLCBub2RlaWQsIGFyZy0+YmxvY2tzaXpl LCBhcmctPmJsb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxODAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3Nzk6CiteSWVs c2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODAxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3ODA6CiteSV5JZnVzZV9yZXBseV9l cnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE4MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc4NToKK15J c3RydWN0IGZ1c2VfaW9jdGxfaW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9pb2N0bF9pbiAqKSBpbmFy ZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODA3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3ODY6CiteSXVuc2lnbmVkIGludCBm bGFncyA9IGFyZy0+ZmxhZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTgwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzg3Ogor Xkl2b2lkICppbl9idWYgPSBhcmctPmluX3NpemUgPyBQQVJBTShhcmcpIDogTlVMTDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODA5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3ODg6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBm aTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODExOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3OTA6CiteSWlmIChmbGFncyAmIEZV U0VfSU9DVExfRElSICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTgxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzkxOgorXkkg ICAgIShyZXEtPnNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9JT0NUTF9ESVIpKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgxMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzkyOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5P VFRZKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODE0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3OTM6CiteSV5JcmV0dXJuOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc5NDoKK15JfSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTc5NjoKK15JbWVtc2V0KCZmaSwgMCwgc2l6ZW9mKGZpKSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgxODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzk3OgorXklmaS5maCA9IGFyZy0+Zmg7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgyMDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzk5OgorXklpZiAoc2l6ZW9mKHZvaWQgKikgPT0g NCAmJiByZXEtPnNlLT5jb25uLnByb3RvX21pbm9yID49IDE2ICYmJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxODAwOgorXkkgICAgIShmbGFncyAmIEZVU0VfSU9DVExfMzJCSVQpKSB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgyMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODAxOgorXkleSXJlcS0+aW9jdGxfNjRi aXQgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MjM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgwMjoKK15JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MjU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgwNDoKK15JaWYgKHJlcS0+c2UtPm9wLmlvY3RsKSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MjY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgwNToKK15JXklyZXEtPnNlLT5vcC5pb2N0 bChyZXEsIG5vZGVpZCwgYXJnLT5jbWQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTgyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox ODA2OgorXkleSV5JXkkgKHZvaWQgKikodWludHB0cl90KWFyZy0+YXJnLCAmZmksIGZsYWdzLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4Mjg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgwNzoKK15JXkleSV5JIGluX2J1ZiwgYXJn LT5pbl9zaXplLCBhcmctPm91dF9zaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxODI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE4MDg6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxODMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MDk6CiteSV5J ZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE4MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTgxNDoKK15JZnJlZShwaCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTg0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODE5 OgorXklzdHJ1Y3QgZnVzZV9wb2xsX2luICphcmcgPSAoc3RydWN0IGZ1c2VfcG9sbF9pbiAqKSBp bmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODQxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MjA6CiteSXN0cnVjdCBmdXNl X2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxODQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MjI6CiteSW1l bXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE4NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTgyMzoKK15JZmkuZmggPSBhcmctPmZoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE4NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTgyNDoKK15JZmkucG9sbF9ldmVudHMgPSBhcmctPmV2ZW50czskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE4MjY6CiteSWlmIChyZXEtPnNlLT5vcC5wb2xsKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg0ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODI3OgorXkleSXN0cnVjdCBmdXNlX3BvbGxoYW5kbGUgKnBo ID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODUw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4Mjk6CiteSV5JaWYgKGFy Zy0+ZmxhZ3MgJiBGVVNFX1BPTExfU0NIRURVTEVfTk9USUZZKSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxODMwOgorXkleSV5JcGggPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBmdXNl X3BvbGxoYW5kbGUpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxODUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MzE6CiteSV5J XklpZiAocGggPT0gTlVMTCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE4NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgzMjoK K15JXkleSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9NRU0pOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTgzMzoKK15JXkleSV5JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTgzNDoKK15JXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxODU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4 MzU6CiteSV5JXklwaC0+a2ggPSBhcmctPmtoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE4NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTgzNjoKK15JXkleSXBoLT5zZSA9IHJlcS0+c2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTg1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxODM3OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxODYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4Mzk6 CiteSV5JcmVxLT5zZS0+b3AucG9sbChyZXEsIG5vZGVpZCwgJmZpLCBwaCk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg2MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODQwOgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTg0MToKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg2MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODQyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxODQ3OgorXklzdHJ1Y3QgZnVzZV9mYWxsb2NhdGVfaW4gKmFyZyA9IChzdHJ1 Y3QgZnVzZV9mYWxsb2NhdGVfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTg2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxODQ4OgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxODUwOgorXkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkpKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODcyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4NTE6CiteSWZpLmZoID0gYXJnLT5maDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODc0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4NTM6CiteSWlmIChyZXEtPnNlLT5vcC5mYWxsb2Nh dGUpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlz IHN0YXRlbWVudAojMTg3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox ODUzOgorICAgICAgIGlmIChyZXEtPnNlLT5vcC5mYWxsb2NhdGUpClsuLi5dCisgICAgICAgZWxz ZQpbLi4uXQoKRVJST1I6IGxpbmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiMxODc1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4NTQ6CisgICAgICAgICAgICAgICByZXEtPnNl LT5vcC5mYWxsb2NhdGUocmVxLCBub2RlaWQsIGFyZy0+bW9kZSwgYXJnLT5vZmZzZXQsIGFyZy0+ bGVuZ3RoLCAmZmkpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTg3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODU0OgorXkleSXJl cS0+c2UtPm9wLmZhbGxvY2F0ZShyZXEsIG5vZGVpZCwgYXJnLT5tb2RlLCBhcmctPm9mZnNldCwg YXJnLT5sZW5ndGgsICZmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTg3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODU1Ogor XkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg3Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODU2OgorXkleSWZ1c2VfcmVw bHlfZXJyKHJlcSwgRU5PU1lTKTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwoj MTg4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODU5Ogorc3RhdGlj IHZvaWQgZG9fY29weV9maWxlX3JhbmdlKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IG5vZGVp ZF9pbiwgY29uc3Qgdm9pZCAqaW5hcmcpCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVy cwojMTg4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODYxOgorICAg ICAgIHN0cnVjdCBmdXNlX2NvcHlfZmlsZV9yYW5nZV9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX2Nv cHlfZmlsZV9yYW5nZV9pbiAqKSBpbmFyZzsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE4ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTg2MToKK15Jc3RydWN0IGZ1c2VfY29weV9maWxlX3JhbmdlX2luICphcmcgPSAoc3RydWN0IGZ1 c2VfY29weV9maWxlX3JhbmdlX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE4ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTg2MjoKK15Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpX2luLCBmaV9vdXQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg4NTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODY0OgorXkltZW1zZXQoJmZpX2luLCAwLCBzaXpl b2YoZmlfaW4pKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx ODg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4NjU6CiteSWZpX2lu LmZoID0gYXJnLT5maF9pbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxODg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4Njc6Cite SW1lbXNldCgmZmlfb3V0LCAwLCBzaXplb2YoZmlfb3V0KSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxODY4OgorXklmaV9vdXQuZmggPSBhcmctPmZoX291dDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODkyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE4NzE6CiteSWlmIChyZXEtPnNlLT5vcC5jb3B5X2ZpbGVfcmFu Z2UpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODcyOgorXkleSXJlcS0+c2UtPm9w LmNvcHlfZmlsZV9yYW5nZShyZXEsIG5vZGVpZF9pbiwgYXJnLT5vZmZfaW4sJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODczOgorXkleSV5JXkleSSAgICAmZmlfaW4sIGFyZy0+bm9k ZWlkX291dCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODk1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4NzQ6CiteSV5JXkleSV5J ICAgIGFyZy0+b2ZmX291dCwgJmZpX291dCwgYXJnLT5sZW4sJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxODc1OgorXkleSV5JXkleSSAgICBhcmctPmZsYWdzKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODk3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE4NzY6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxODk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE4Nzc6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MDM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg4MjoKK15Jc3RydWN0IGZ1c2VfbHNlZWtfaW4gKmFyZyA9 IChzdHJ1Y3QgZnVzZV9sc2Vla19pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxOTA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE4ODM6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE4ODU6CiteSW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MDc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg4NjoKK15JZmkuZmggPSBhcmctPmZoOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MDk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg4ODoKK15JaWYgKHJlcS0+c2UtPm9wLmxzZWVr KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzE5MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg4 ODoKKyAgICAgICBpZiAocmVxLT5zZS0+b3AubHNlZWspClsuLi5dCisgICAgICAgZWxzZQpbLi4u XQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkxMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODg5OgorXkleSXJlcS0+c2UtPm9wLmxz ZWVrKHJlcSwgbm9kZWlkLCBhcmctPm9mZnNldCwgYXJnLT53aGVuY2UsICZmaSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkxMTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODkwOgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxODkxOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTE3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4OTY6CiteSXN0cnVjdCBmdXNlX2luaXRfaW4gKmFy ZyA9IChzdHJ1Y3QgZnVzZV9pbml0X2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTg5NzoKK15Jc3RydWN0IGZ1c2VfaW5pdF9vdXQgb3V0YXJnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MTk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg5ODoKK15Jc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqc2UgPSBy ZXEtPnNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MjA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg5OToKK15Jc2l6ZV90IGJ1 ZnNpemUgPSBzZS0+YnVmc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxOTIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MDA6 CiteSXNpemVfdCBvdXRhcmdzaXplID0gc2l6ZW9mKG91dGFyZyk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTAyOgorXkkodm9pZCkgbm9kZWlkOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTkwMzoKK15JaWYgKHNlLT5kZWJ1ZykgeyQKCldBUk5JTkc6IGxpbmUgb3Zl ciA4MCBjaGFyYWN0ZXJzCiMxOTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5MDQ6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgIklOSVQ6 ICV1LiV1XG4iLCBhcmctPm1ham9yLCBhcmctPm1pbm9yKTsKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTkwNDoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgIklOSVQ6ICV1LiV1 XG4iLCBhcmctPm1ham9yLCBhcmctPm1pbm9yKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5MDU6CiteSV5JaWYgKGFyZy0+bWFqb3IgPT0gNyAmJiBhcmctPm1pbm9yID49IDYpIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTI3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MDY6CiteSV5JXklmdXNlX2xvZyhGVVNF X0xPR19ERUJVRywgImZsYWdzPTB4JTA4eFxuIiwgYXJnLT5mbGFncyk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxOTA3OgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJt YXhfcmVhZGFoZWFkPTB4JTA4eFxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxOTI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5 MDg6CiteSV5JXkleSWFyZy0+bWF4X3JlYWRhaGVhZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTkzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxOTA5OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxOTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MTA6 CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTMyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MTE6CiteSXNlLT5jb25uLnBy b3RvX21ham9yID0gYXJnLT5tYWpvcjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxOTMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5 MTI6CiteSXNlLT5jb25uLnByb3RvX21pbm9yID0gYXJnLT5taW5vcjskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE5MTM6CiteSXNlLT5jb25uLmNhcGFibGUgPSAwOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MzU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkxNDoKK15Jc2UtPmNvbm4ud2FudCA9IDA7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkzNzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTE2OgorXkltZW1zZXQoJm91dGFyZywgMCwgc2l6ZW9m KG91dGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5 Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkxNzoKK15Jb3V0YXJn Lm1ham9yID0gRlVTRV9LRVJORUxfVkVSU0lPTjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5MTg6CiteSW91dGFyZy5taW5vciA9IEZVU0VfS0VSTkVMX01JTk9SX1ZFUlNJT047JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTIwOgorXklpZiAoYXJnLT5tYWpvciA8IDcp IHskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTk0MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTIxOgorICAgICAgICAgICAgICAgZnVzZV9sb2co RlVTRV9MT0dfRVJSLCAiZnVzZTogdW5zdXBwb3J0ZWQgcHJvdG9jb2wgdmVyc2lvbjogJXUuJXVc biIsCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MjE6CiteSV5JZnVzZV9sb2coRlVT RV9MT0dfRVJSLCAiZnVzZTogdW5zdXBwb3J0ZWQgcHJvdG9jb2wgdmVyc2lvbjogJXUuJXVcbiIs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTIyOgorXkleSV5JYXJnLT5tYWpvciwg YXJnLT5taW5vcik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTk0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTIzOgorXkleSWZ1 c2VfcmVwbHlfZXJyKHJlcSwgRVBST1RPKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxOTQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE5MjQ6CiteSV5JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkyNToK K15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NDg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkyNzoKK15JaWYgKGFyZy0+bWFq b3IgPiA3KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTI4OgorXkleSS8qIFdh aXQgZm9yIGEgc2Vjb25kIElOSVQgcmVxdWVzdCB3aXRoIGEgNy5YIHZlcnNpb24gKi8kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTUwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5Mjk6CiteSV5Jc2VuZF9yZXBseV9vayhyZXEsICZv dXRhcmcsIHNpemVvZihvdXRhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxOTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5 MzA6CiteSV5JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE5NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzMToKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzMzoKK15JaWYgKGFyZy0+bWlub3Ig Pj0gNikgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzNDoKK15JXklpZiAoYXJn LT5tYXhfcmVhZGFoZWFkIDwgc2UtPmNvbm4ubWF4X3JlYWRhaGVhZCkkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTU1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MzQ6CisgICAgICAgICAgICAg ICBpZiAoYXJnLT5tYXhfcmVhZGFoZWFkIDwgc2UtPmNvbm4ubWF4X3JlYWRhaGVhZCkKWy4uLl0K CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzNToKK15JXkleSXNlLT5jb25uLm1heF9y ZWFkYWhlYWQgPSBhcmctPm1heF9yZWFkYWhlYWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTk1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxOTM2OgorXkleSWlmIChhcmctPmZsYWdzICYgRlVTRV9BU1lOQ19SRUFEKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzE5NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzNjoKKyAgICAg ICAgICAgICAgIGlmIChhcmctPmZsYWdzICYgRlVTRV9BU1lOQ19SRUFEKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk1ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTM3OgorXkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBG VVNFX0NBUF9BU1lOQ19SRUFEOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzODoK K15JXklpZiAoYXJnLT5mbGFncyAmIEZVU0VfUE9TSVhfTE9DS1MpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk1OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTM4OgorICAgICAgICAgICAgICAg aWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX1BPU0lYX0xPQ0tTKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTM5OgorXkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9Q T1NJWF9MT0NLUzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx OTYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NDA6CiteSV5JaWYg KGFyZy0+ZmxhZ3MgJiBGVVNFX0FUT01JQ19PX1RSVU5DKSQKCkVSUk9SOiBicmFjZXMge30gYXJl IG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5NjE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk0MDoKKyAgICAgICAgICAgICAgIGlmIChh cmctPmZsYWdzICYgRlVTRV9BVE9NSUNfT19UUlVOQykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTk0MToKK15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfQVRP TUlDX09fVFJVTkM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTk2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTQyOgorXkleSWlm IChhcmctPmZsYWdzICYgRlVTRV9FWFBPUlRfU1VQUE9SVCkkCgpFUlJPUjogYnJhY2VzIHt9IGFy ZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTYzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NDI6CisgICAgICAgICAgICAgICBpZiAo YXJnLT5mbGFncyAmIEZVU0VfRVhQT1JUX1NVUFBPUlQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE5NDM6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX0VY UE9SVF9TVVBQT1JUOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE5NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk0NDoKK15JXklp ZiAoYXJnLT5mbGFncyAmIEZVU0VfRE9OVF9NQVNLKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5NjU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk0NDoKKyAgICAgICAgICAgICAgIGlmIChhcmct PmZsYWdzICYgRlVTRV9ET05UX01BU0spClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5NDU6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX0RPTlRfTUFTSzsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTY3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NDY6CiteSV5JaWYgKGFyZy0+ZmxhZ3Mg JiBGVVNFX0ZMT0NLX0xPQ0tTKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTk0NjoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZsYWdzICYgRlVT RV9GTE9DS19MT0NLUykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk0NzoK K15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfRkxPQ0tfTE9DS1M7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk2OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTQ4OgorXkleSWlmIChhcmctPmZsYWdzICYgRlVTRV9B VVRPX0lOVkFMX0RBVEEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxOTQ4OgorICAgICAgICAgICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX0FV VE9fSU5WQUxfREFUQSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk0OToK K15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfQVVUT19JTlZBTF9EQVRBOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NzE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk1MDoKK15JXklpZiAoYXJnLT5mbGFncyAmIEZV U0VfRE9fUkVBRERJUlBMVVMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTUwOgorICAgICAgICAgICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGVVNF X0RPX1JFQURESVJQTFVTKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTk3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTUx OgorXkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9SRUFERElSUExVUzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTczOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NTI6CiteSV5JaWYgKGFyZy0+ZmxhZ3MgJiBGVVNF X1JFQURESVJQTFVTX0FVVE8pJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTUyOgorICAgICAgICAgICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGVVNF X1JFQURESVJQTFVTX0FVVE8pClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxOTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5 NTM6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX1JFQURESVJQTFVTX0FVVE87 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk3NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTU0OgorXkleSWlmIChhcmctPmZsYWdz ICYgRlVTRV9BU1lOQ19ESU8pJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTU0OgorICAgICAgICAgICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGVVNF X0FTWU5DX0RJTykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE5NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk1NToKK15J XkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfQVNZTkNfRElPOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTk1NjoKK15JXklpZiAoYXJnLT5mbGFncyAmIEZVU0VfV1JJVEVC QUNLX0NBQ0hFKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMg b2YgdGhpcyBzdGF0ZW1lbnQKIzE5Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTk1NjoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZsYWdzICYgRlVTRV9XUklURUJB Q0tfQ0FDSEUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxOTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NTc6CiteSV5J XklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX1dSSVRFQkFDS19DQUNIRTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTc5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NTg6CiteSV5JaWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX05P X09QRU5fU1VQUE9SVCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE5NTg6CisgICAgICAgICAgICAgICBpZiAoYXJnLT5mbGFncyAmIEZVU0VfTk9f T1BFTl9TVVBQT1JUKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTk4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTU5Ogor XkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9OT19PUEVOX1NVUFBPUlQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTYwOgorXkleSWlmIChhcmctPmZsYWdzICYgRlVT RV9QQVJBTExFTF9ESVJPUFMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTYwOgorICAgICAgICAgICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGVVNF X1BBUkFMTEVMX0RJUk9QUykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE5ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2 MToKK15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfUEFSQUxMRUxfRElST1BTOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5ODM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2MjoKK15JXklpZiAoYXJnLT5mbGFncyAm IEZVU0VfUE9TSVhfQUNMKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTk2MjoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZsYWdzICYgRlVTRV9Q T1NJWF9BQ0wpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxOTg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NjM6CiteSV5J XklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX1BPU0lYX0FDTDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE5NjQ6CiteSV5JaWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX0hBTkRMRV9L SUxMUFJJVikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiMxOTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5NjQ6CisgICAgICAgICAgICAgICBpZiAoYXJnLT5mbGFncyAmIEZVU0VfSEFORExFX0tJ TExQUklWKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTk4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTY1OgorXkleSV5J c2UtPmNvbm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9IQU5ETEVfS0lMTFBSSVY7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTY2OgorXkleSWlmIChhcmctPmZsYWdzICYgRlVTRV9OT19P UEVORElSX1NVUFBPUlQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxOTY2OgorICAgICAgICAgICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX05P X09QRU5ESVJfU1VQUE9SVCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE5ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2 NzoKK15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfTk9fT1BFTkRJUl9TVVBQT1JU OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5ODk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2ODoKK15JXklpZiAoIShhcmctPmZs YWdzICYgRlVTRV9NQVhfUEFHRVMpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTk5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox OTY5OgorXkleSV5Jc2l6ZV90IG1heF9idWZzaXplID0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxOTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE5NzA6CiteSV5JXkleSUZVU0VfREVGQVVMVF9NQVhfUEFHRVNfUEVSX1JFUSAqIGdl dHBhZ2VzaXplKCkkCgpFUlJPUjogdXNlIHFlbXVfcmVhbF9ob3N0X3BhZ2Vfc2l6ZSBpbnN0ZWFk IG9mIGdldHBhZ2VzaXplKCkKIzE5OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTk3MDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVVNFX0RFRkFVTFRf TUFYX1BBR0VTX1BFUl9SRVEgKiBnZXRwYWdlc2l6ZSgpCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxOTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE5NzE6CiteSV5JXkleSSsgRlVTRV9CVUZGRVJfSEVBREVSX1NJWkU7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk5MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTcyOgorXkleSV5JaWYgKGJ1ZnNpemUgPiBtYXhfYnVm c2l6ZSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk3MzoKK15JXkleSV5JYnVm c2l6ZSA9IG1heF9idWZzaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk3NDoK K15JXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTk2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NzU6CiteSV5JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk3NjoKK15JfSBlbHNlIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTk4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE5Nzc6CiteSV5Jc2UtPmNvbm4ubWF4X3JlYWRhaGVhZCA9IDA7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk5OTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTc4OgorXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAwMTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxOTgwOgorXklpZiAoc2UtPmNvbm4ucHJvdG9fbWlub3IgPj0gMTQp IHskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjAwNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTgzOgorICAgICAgICAgICAgICAgc2UtPmNvbm4u Y2FwYWJsZSB8PSBGVVNFX0NBUF9TUExJQ0VfV1JJVEUgfCBGVVNFX0NBUF9TUExJQ0VfTU9WRTsK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMDQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk4MzoKK15JXklzZS0+Y29ubi5jYXBhYmxl IHw9IEZVU0VfQ0FQX1NQTElDRV9XUklURSB8IEZVU0VfQ0FQX1NQTElDRV9NT1ZFOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMDY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk4NToKK15JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZV U0VfQ0FQX1NQTElDRV9SRUFEOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIwMDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk4NzoK K15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMDk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk4ODoKK15JaWYgKHNlLT5jb25u LnByb3RvX21pbm9yID49IDE4KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIwMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTk4ODoKKyAgICAgICBpZiAoc2UtPmNvbm4ucHJvdG9fbWlub3IgPj0g MTgpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDEw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5ODk6CiteSV5Jc2UtPmNv bm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9JT0NUTF9ESVI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjAxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxOTkxOgorXkkvKiBEZWZhdWx0IHNldHRpbmdzIGZvciBtb2Rlcm4gZmlsZXN5c3Rl bXMuJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFy YXRlIGxpbmUKIzIwMTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk5 MToKKyAgICAgICAvKiBEZWZhdWx0IHNldHRpbmdzIGZvciBtb2Rlcm4gZmlsZXN5c3RlbXMuCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDEzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5OTI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTkzOgorXkkgKiBNb3N0IG9mIHRoZXNlIGNhcGFiaWxpdGllcyB3ZXJl IGRpc2FibGVkIGJ5IGRlZmF1bHQgaW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5 OTQ6CiteSSAqIGxpYmZ1c2UyIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLiBJ biBsaWJmdXNlMywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5OTU6CiteSSAqIHdl IGNhbiBmaW5hbGx5IGVuYWJsZSB0aGVtIGJ5IGRlZmF1bHQgKGFzIGxvbmcgYXMgdGhleSdyZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMTc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk5NjoKK15JICogc3VwcG9ydGVkIGJ5IHRo ZSBrZXJuZWwpLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIw MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk5NzoKK15JICovJAoK RVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBw YXJlbnRoZXNpcwojMjAxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox OTk4OgorI2RlZmluZSBMTF9TRVRfREVGQVVMVChjb25kLCBjYXApIFwKKyAgICAgICBpZiAoKGNv bmQpICYmIChzZS0+Y29ubi5jYXBhYmxlICYgKGNhcCkpKSBcCisgICAgICAgICAgICAgICBzZS0+ Y29ubi53YW50IHw9IChjYXApCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMDIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5OTk6Cite SWlmICgoY29uZCkgJiYgKHNlLT5jb25uLmNhcGFibGUgJiAoY2FwKSkpIFwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDIxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIwMDA6CiteSV5Jc2UtPmNvbm4ud2FudCB8PSAoY2FwKSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMjI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAwMToKK15JTExfU0VUX0RFRkFVTFQoMSwgRlVT RV9DQVBfQVNZTkNfUkVBRCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjAyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDAyOgor XklMTF9TRVRfREVGQVVMVCgxLCBGVVNFX0NBUF9QQVJBTExFTF9ESVJPUFMpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMjQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAwMzoKK15JTExfU0VUX0RFRkFVTFQoMSwgRlVTRV9DQVBf QVVUT19JTlZBTF9EQVRBKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMDI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMDQ6Cite SUxMX1NFVF9ERUZBVUxUKDEsIEZVU0VfQ0FQX0hBTkRMRV9LSUxMUFJJVik7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAyNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDA1OgorXklMTF9TRVRfREVGQVVMVCgxLCBGVVNFX0NBUF9B U1lOQ19ESU8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIw Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAwNjoKK15JTExfU0VU X0RFRkFVTFQoMSwgRlVTRV9DQVBfSU9DVExfRElSKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMDI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIwMDc6CiteSUxMX1NFVF9ERUZBVUxUKDEsIEZVU0VfQ0FQX0FUT01JQ19PX1RSVU5D KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDI5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMDg6CiteSUxMX1NFVF9ERUZBVUxU KHNlLT5vcC53cml0ZV9idWYsIEZVU0VfQ0FQX1NQTElDRV9SRUFEKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIwMDk6CiteSUxMX1NFVF9ERUZBVUxUKHNlLT5vcC5nZXRsayAmJiBz ZS0+b3Auc2V0bGssJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjAzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDEwOgorXkleSSAg ICAgICBGVVNFX0NBUF9QT1NJWF9MT0NLUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjAzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMDExOgorXklMTF9TRVRfREVGQVVMVChzZS0+b3AuZmxvY2ssIEZVU0VfQ0FQX0ZMT0NLX0xP Q0tTKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDMzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMTI6CiteSUxMX1NFVF9ERUZB VUxUKHNlLT5vcC5yZWFkZGlycGx1cywgRlVTRV9DQVBfUkVBRERJUlBMVVMpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAxMzoKK15JTExfU0VUX0RFRkFVTFQoc2UtPm9wLnJlYWRk aXJwbHVzICYmIHNlLT5vcC5yZWFkZGlyLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIwMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjAxNDoKK15JXkkgICAgICAgRlVTRV9DQVBfUkVBRERJUlBMVVNfQVVUTyk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAzNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDE1OgorXklzZS0+Y29ubi50aW1lX2dyYW4gPSAxOyQKCkVS Uk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiMyMDM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIwMTY6CiteSSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIwMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAx NjoKK15JJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAzODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDE3OgorXklpZiAoYnVmc2l6 ZSA8IEZVU0VfTUlOX1JFQURfQlVGRkVSKSB7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJh Y3RlcnMKIzIwMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAxODoK KyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IHdhcm5pbmc6IGJ1 ZmZlciBzaXplIHRvbyBzbWFsbDogJXp1XG4iLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjAzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMDE4OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IHdhcm5pbmc6IGJ1ZmZl ciBzaXplIHRvbyBzbWFsbDogJXp1XG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIwNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjAxOToKK15JXkleSWJ1ZnNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIwNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAy MDoKK15JXklidWZzaXplID0gRlVTRV9NSU5fUkVBRF9CVUZGRVI7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMDIxOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjA0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MDIyOgorXklzZS0+YnVmc2l6ZSA9IGJ1ZnNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjA0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyMDI0OgorXklpZiAoc2UtPmNvbm4ubWF4X3dyaXRlID4gYnVmc2l6ZSAtIEZVU0VfQlVG RkVSX0hFQURFUl9TSVpFKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIwNDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjAyNDoKKyAgICAgICBpZiAoc2UtPmNvbm4ubWF4X3dyaXRlID4gYnVmc2l6 ZSAtIEZVU0VfQlVGRkVSX0hFQURFUl9TSVpFKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjA0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMDI1OgorXkleSXNlLT5jb25uLm1heF93cml0ZSA9IGJ1ZnNpemUgLSBGVVNFX0JV RkZFUl9IRUFERVJfU0laRTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMDQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMjc6Cite SXNlLT5nb3RfaW5pdCA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjA0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDI4Ogor XklpZiAoc2UtPm9wLmluaXQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjA0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMDI4OgorICAgICAgIGlmIChzZS0+b3AuaW5pdCkKWy4uLl0KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNTA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAyOToKK15JXklzZS0+b3AuaW5pdChzZS0+dXNlcmRh dGEsICZzZS0+Y29ubik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjA1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDMxOgorXklp ZiAoc2UtPmNvbm4ud2FudCAmICh+c2UtPmNvbm4uY2FwYWJsZSkpIHskCgpXQVJOSU5HOiBsaW5l IG92ZXIgODAgY2hhcmFjdGVycwojMjA1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMDMyOgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVz ZTogZXJyb3I6IGZpbGVzeXN0ZW0gcmVxdWVzdGVkIGNhcGFiaWxpdGllcyAiCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDUzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIwMzI6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVz ZTogZXJyb3I6IGZpbGVzeXN0ZW0gcmVxdWVzdGVkIGNhcGFiaWxpdGllcyAiJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA1NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDMzOgorXkleSV5JIjB4JXggdGhhdCBhcmUgbm90IHN1cHBv cnRlZCBieSBrZXJuZWwsIGFib3J0aW5nLlxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMDU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIwMzQ6CiteSV5JXklzZS0+Y29ubi53YW50ICYgKH5zZS0+Y29ubi5jYXBhYmxlKSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA1NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDM1OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJl cSwgRVBST1RPKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMzY6CiteSV5Jc2Ut PmVycm9yID0gLUVQUk9UTzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMDU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMzc6Cite SV5JZnVzZV9zZXNzaW9uX2V4aXQoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIwNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjAzODoKK15JXklyZXR1cm47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjA2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDM5Ogor Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDQxOgorXkl1bnNpZ25lZCBtYXhf cmVhZF9tbyA9IGdldF9tYXhfcmVhZChzZS0+bW8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjA0MjoKK15JaWYgKHNlLT5jb25uLm1heF9yZWFkICE9IG1heF9yZWFkX21vKSB7JAoK V0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzIwNjQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA0MzoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0Vf TE9HX0VSUiwgImZ1c2U6IGVycm9yOiBpbml0KCkgYW5kIGZ1c2Vfc2Vzc2lvbl9uZXcoKSAiCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDY0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNDM6CiteSV5JZnVzZV9sb2coRlVTRV9MT0df RVJSLCAiZnVzZTogZXJyb3I6IGluaXQoKSBhbmQgZnVzZV9zZXNzaW9uX25ldygpICIkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDY1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNDQ6CiteSV5JXkkicmVxdWVzdGVkIGRpZmZlcmVu dCBtYXhpbXVtIHJlYWQgc2l6ZSAoJXUgdnMgJXUpXG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjA0NToKK15JXkleSXNlLT5jb25uLm1heF9yZWFkLCBtYXhfcmVhZF9tbyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDQ2OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJl cSwgRVBST1RPKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNDc6CiteSV5Jc2Ut PmVycm9yID0gLUVQUk9UTzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMDY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNDg6Cite SV5JZnVzZV9zZXNzaW9uX2V4aXQoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIwNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjA0OToKK15JXklyZXR1cm47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjA3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDUwOgor Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA3MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDUyOgorXklpZiAoc2UtPmNvbm4u bWF4X3dyaXRlIDwgYnVmc2l6ZSAtIEZVU0VfQlVGRkVSX0hFQURFUl9TSVpFKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA3NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDUzOgorXkleSXNlLT5idWZzaXplID0gc2UtPmNvbm4u bWF4X3dyaXRlICsgRlVTRV9CVUZGRVJfSEVBREVSX1NJWkU7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMDU0OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjA3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDU1 OgorXklpZiAoYXJnLT5mbGFncyAmIEZVU0VfTUFYX1BBR0VTKSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMDU2OgorXkleSW91dGFyZy5mbGFncyB8PSBGVVNFX01BWF9QQUdFUzsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDc4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNTc6CiteSV5Jb3V0YXJnLm1heF9wYWdl cyA9IChzZS0+Y29ubi5tYXhfd3JpdGUgLSAxKSAvIGdldHBhZ2VzaXplKCkgKyAxOyQKCkVSUk9S OiB1c2UgcWVtdV9yZWFsX2hvc3RfcGFnZV9zaXplIGluc3RlYWQgb2YgZ2V0cGFnZXNpemUoKQoj MjA3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDU3OgorICAgICAg ICAgICAgICAgb3V0YXJnLm1heF9wYWdlcyA9IChzZS0+Y29ubi5tYXhfd3JpdGUgLSAxKSAvIGdl dHBhZ2VzaXplKCkgKyAxOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjA3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDU4OgorXkl9 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA4MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDYwOgorXkkvKiBBbHdheXMgZW5hYmxl IGJpZyB3cml0ZXMsIHRoaXMgaXMgc3VwZXJzZWRlZCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRz IHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMDgxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNjA6CisgICAgICAgLyogQWx3YXlzIGVuYWJsZSBi aWcgd3JpdGVzLCB0aGlzIGlzIHN1cGVyc2VkZWQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjA2MToKK15JICAgYnkgdGhlIG1heF93cml0ZSBvcHRpb24gKi8kCgpXQVJOSU5HOiBCbG9j ayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyMDgyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNjE6CisgICAgICAgLyogQWx3YXlzIGVuYWJsZSBi aWcgd3JpdGVzLCB0aGlzIGlzIHN1cGVyc2VkZWQKKyAgICAgICAgICBieSB0aGUgbWF4X3dyaXRl IG9wdGlvbiAqLwoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24g YSBzZXBhcmF0ZSBsaW5lCiMyMDgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIwNjE6CisgICAgICAgICAgYnkgdGhlIG1heF93cml0ZSBvcHRpb24gKi8KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwODM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA2MjoKK15Jb3V0YXJnLmZsYWdzIHw9IEZVU0VfQklHX1dS SVRFUzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDg1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNjQ6CiteSWlmIChzZS0+Y29u bi53YW50ICYgRlVTRV9DQVBfQVNZTkNfUkVBRCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMDg1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNjQ6CisgICAgICAgaWYgKHNlLT5jb25uLndhbnQg JiBGVVNFX0NBUF9BU1lOQ19SRUFEKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjA4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMDY1OgorXkleSW91dGFyZy5mbGFncyB8PSBGVVNFX0FTWU5DX1JFQUQ7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA4NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDY2OgorXklpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQ X1BPU0lYX0xPQ0tTKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIwODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjA2NjoKKyAgICAgICBpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1BPU0lY X0xPQ0tTKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjA4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDY3OgorXkleSW91 dGFyZy5mbGFncyB8PSBGVVNFX1BPU0lYX0xPQ0tTOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIwODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjA2ODoKK15JaWYgKHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9BVE9NSUNfT19UUlVO QykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiMyMDg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIw Njg6CisgICAgICAgaWYgKHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9BVE9NSUNfT19UUlVOQykK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwOTA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA2OToKK15JXklvdXRhcmcuZmxh Z3MgfD0gRlVTRV9BVE9NSUNfT19UUlVOQzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMDkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIwNzA6CiteSWlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfRVhQT1JUX1NVUFBPUlQpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMjA5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDcwOgor ICAgICAgIGlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfRVhQT1JUX1NVUFBPUlQpClsuLi5d CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDkyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNzE6CiteSV5Jb3V0YXJnLmZsYWdzIHw9 IEZVU0VfRVhQT1JUX1NVUFBPUlQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjA5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDcy OgorXklpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX0RPTlRfTUFTSykkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMDkz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNzI6CisgICAgICAgaWYg KHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9ET05UX01BU0spClsuLi5dCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIwNzM6CiteSV5Jb3V0YXJnLmZsYWdzIHw9IEZVU0VfRE9OVF9NQVNL OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwOTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA3NDoKK15JaWYgKHNlLT5jb25uLndh bnQgJiBGVVNFX0NBUF9GTE9DS19MT0NLUykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMDk1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNzQ6CisgICAgICAgaWYgKHNlLT5jb25uLndhbnQgJiBG VVNFX0NBUF9GTE9DS19MT0NLUykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIwOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjA3NToKK15JXklvdXRhcmcuZmxhZ3MgfD0gRlVTRV9GTE9DS19MT0NLUzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDk3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIwNzY6CiteSWlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBf QVVUT19JTlZBTF9EQVRBKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIwOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjA3NjoKKyAgICAgICBpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX0FV VE9fSU5WQUxfREFUQSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIwOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA3NzoK K15JXklvdXRhcmcuZmxhZ3MgfD0gRlVTRV9BVVRPX0lOVkFMX0RBVEE7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA5OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMDc4OgorXklpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1JF QURESVJQTFVTKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMg b2YgdGhpcyBzdGF0ZW1lbnQKIzIwOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjA3ODoKKyAgICAgICBpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1JFQURESVJQ TFVTKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEw MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDc5OgorXkleSW91dGFy Zy5mbGFncyB8PSBGVVNFX0RPX1JFQURESVJQTFVTOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjA4MDoKK15JaWYgKHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9SRUFERElSUExVU19B VVRPKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzIxMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjA4MDoKKyAgICAgICBpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1JFQURESVJQTFVTX0FV VE8pClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTAy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwODE6CiteSV5Jb3V0YXJn LmZsYWdzIHw9IEZVU0VfUkVBRERJUlBMVVNfQVVUTzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIwODI6CiteSWlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfQVNZTkNfRElPKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzIxMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA4MjoK KyAgICAgICBpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX0FTWU5DX0RJTykKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMDQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA4MzoKK15JXklvdXRhcmcuZmxhZ3MgfD0gRlVT RV9BU1lOQ19ESU87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjEwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDg0OgorXklpZiAo c2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1dSSVRFQkFDS19DQUNIRSkkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMTA1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwODQ6CisgICAgICAgaWYgKHNl LT5jb25uLndhbnQgJiBGVVNFX0NBUF9XUklURUJBQ0tfQ0FDSEUpClsuLi5dCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTA2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIwODU6CiteSV5Jb3V0YXJnLmZsYWdzIHw9IEZVU0VfV1JJVEVC QUNLX0NBQ0hFOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIx MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA4NjoKK15JaWYgKHNl LT5jb25uLndhbnQgJiBGVVNFX0NBUF9QT1NJWF9BQ0wpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjEwNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDg2OgorICAgICAgIGlmIChzZS0+Y29ubi53 YW50ICYgRlVTRV9DQVBfUE9TSVhfQUNMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjEwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyMDg3OgorXkleSW91dGFyZy5mbGFncyB8PSBGVVNFX1BPU0lYX0FDTDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTA5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwODg6CiteSW91dGFyZy5tYXhfcmVhZGFoZWFkID0gc2Ut PmNvbm4ubWF4X3JlYWRhaGVhZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMTEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwODk6 CiteSW91dGFyZy5tYXhfd3JpdGUgPSBzZS0+Y29ubi5tYXhfd3JpdGU7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjExMTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMDkwOgorXklpZiAoc2UtPmNvbm4ucHJvdG9fbWlub3IgPj0gMTMp IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTEyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwOTE6CiteSV5JaWYgKHNlLT5jb25u Lm1heF9iYWNrZ3JvdW5kID49ICgxIDw8IDE2KSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMTEyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwOTE6CisgICAgICAgICAgICAgICBpZiAoc2UtPmNv bm4ubWF4X2JhY2tncm91bmQgPj0gKDEgPDwgMTYpKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjExMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMDkyOgorXkleSV5Jc2UtPmNvbm4ubWF4X2JhY2tncm91bmQgPSAoMSA8PCAx NikgLSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMTQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA5MzoKK15JXklpZiAoc2Ut PmNvbm4uY29uZ2VzdGlvbl90aHJlc2hvbGQgPiBzZS0+Y29ubi5tYXhfYmFja2dyb3VuZCkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiMyMTE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwOTM6Cisg ICAgICAgICAgICAgICBpZiAoc2UtPmNvbm4uY29uZ2VzdGlvbl90aHJlc2hvbGQgPiBzZS0+Y29u bi5tYXhfYmFja2dyb3VuZCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxMTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA5 NDoKK15JXkleSXNlLT5jb25uLmNvbmdlc3Rpb25fdGhyZXNob2xkID0gc2UtPmNvbm4ubWF4X2Jh Y2tncm91bmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEx NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDk1OgorXkleSWlmICgh c2UtPmNvbm4uY29uZ2VzdGlvbl90aHJlc2hvbGQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIwOTY6CiteSV5JXklzZS0+Y29ubi5jb25nZXN0aW9uX3RocmVzaG9sZCA9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjExODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDk3OgorXkleSV5JXklzZS0+Y29ubi5tYXhfYmFj a2dyb3VuZCAqIDMgLyA0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIxMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA5ODoKK15J Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEyMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTAwOgorXkleSW91dGFyZy5tYXhf YmFja2dyb3VuZCA9IHNlLT5jb25uLm1heF9iYWNrZ3JvdW5kOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjEwMToKK15JXklvdXRhcmcuY29uZ2VzdGlvbl90aHJlc2hvbGQgPSBzZS0+ Y29ubi5jb25nZXN0aW9uX3RocmVzaG9sZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIxMDI6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMDM6CiteSWlmIChz ZS0+Y29ubi5wcm90b19taW5vciA+PSAyMykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMTI0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMDM6CisgICAgICAgaWYgKHNlLT5jb25uLnByb3RvX21p bm9yID49IDIzKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjEyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTA0OgorXkle SW91dGFyZy50aW1lX2dyYW4gPSBzZS0+Y29ubi50aW1lX2dyYW47JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMTA2OgorXklpZiAoc2UtPmRlYnVnKSB7JAoKV0FSTklORzogbGluZSBv dmVyIDgwIGNoYXJhY3RlcnMKIzIxMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjEwNzoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAiICAg SU5JVDogJXUuJXVcbiIsIG91dGFyZy5tYWpvciwgb3V0YXJnLm1pbm9yKTsKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjEwNzoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgIiAg IElOSVQ6ICV1LiV1XG4iLCBvdXRhcmcubWFqb3IsIG91dGFyZy5taW5vcik7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEyOTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTA4OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAi ICAgZmxhZ3M9MHglMDh4XG4iLCBvdXRhcmcuZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjEwOToKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgIiAgIG1heF9yZWFk YWhlYWQ9MHglMDh4XG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIxMzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExMDoKK15J XkleSW91dGFyZy5tYXhfcmVhZGFoZWFkKTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFj dGVycwojMjEzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTExOgor ICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICIgICBtYXhfd3JpdGU9MHgl MDh4XG4iLCBvdXRhcmcubWF4X3dyaXRlKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIxMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjExMToKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgIiAgIG1heF93cml0ZT0weCUwOHhc biIsIG91dGFyZy5tYXhfd3JpdGUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEx MjoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgIiAgIG1heF9iYWNrZ3JvdW5kPSVpXG4i LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMzQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExMzoKK15JXkleSW91dGFyZy5tYXhf YmFja2dyb3VuZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjEzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTE0OgorXkleSWZ1 c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAiICAgY29uZ2VzdGlvbl90aHJlc2hvbGQ9JWlcbiIsJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEzNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTE1OgorXkleSV5Jb3V0YXJnLmNvbmdlc3Rp b25fdGhyZXNob2xkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMTY6CiteSV5J ZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICIgICB0aW1lX2dyYW49JXVcbiIsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEzODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTE3OgorXkleSV5Jb3V0YXJnLnRpbWVfZ3Jhbik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEzOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTE4OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMTE5OgorXklpZiAoYXJnLT5taW5vciA8IDUpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjE0MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTE5OgorICAgICAgIGlmIChhcmct Pm1pbm9yIDwgNSkKWy4uLl0KKyAgICAgICBlbHNlIGlmIChhcmctPm1pbm9yIDwgMjMpClsuLi5d CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTQxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMjA6CiteSV5Jb3V0YXJnc2l6ZSA9IEZV U0VfQ09NUEFUX0lOSVRfT1VUX1NJWkU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjE0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MTIxOgorXkllbHNlIGlmIChhcmctPm1pbm9yIDwgMjMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjE0MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTIxOgorICAgICAgIGVsc2UgaWYgKGFyZy0+ bWlub3IgPCAyMykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIxNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEyMjoKK15J XklvdXRhcmdzaXplID0gRlVTRV9DT01QQVRfMjJfSU5JVF9PVVRfU0laRTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTQ1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIxMjQ6CiteSXNlbmRfcmVwbHlfb2socmVxLCAmb3V0YXJnLCBv dXRhcmdzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MTUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMjk6CiteSXN0cnVj dCBmdXNlX3Nlc3Npb24gKnNlID0gcmVxLT5zZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMTUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIxMzE6CiteSSh2b2lkKSBub2RlaWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjE1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMTMyOgorXkkodm9pZCkgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjE1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MTM0OgorXklzZS0+Z290X2Rlc3Ryb3kgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIxNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjEzNToKK15JaWYgKHNlLT5vcC5kZXN0cm95KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIxNTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEzNToKKyAgICAgICBpZiAoc2UtPm9wLmRlc3Ry b3kpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTU3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMzY6CiteSV5Jc2UtPm9w LmRlc3Ryb3koc2UtPnVzZXJkYXRhKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIx Mzg6CiteSXNlbmRfcmVwbHlfb2socmVxLCBOVUxMLCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIxNDM6CiteSXN0cnVjdCBmdXNlX25vdGlmeV9yZXEgKnByZXYgPSBucmVxLT5w cmV2OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNjU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE0NDoKK15Jc3RydWN0IGZ1c2Vf bm90aWZ5X3JlcSAqbmV4dCA9IG5yZXEtPm5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjE2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyMTQ1OgorXklwcmV2LT5uZXh0ID0gbmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIxNDY6CiteSW5leHQtPnByZXYgPSBwcmV2OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjE1MDoKK15JXkleSSAgc3RydWN0IGZ1c2Vfbm90aWZ5X3JlcSAqbmV4dCkkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTczOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxNTI6CiteSXN0cnVjdCBmdXNlX25vdGlmeV9y ZXEgKnByZXYgPSBuZXh0LT5wcmV2OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxNzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE1 MzoKK15JbnJlcS0+bmV4dCA9IG5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjE3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MTU0OgorXklucmVxLT5wcmV2ID0gcHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMTc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIxNTU6CiteSXByZXYtPm5leHQgPSBucmVxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIxNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjE1NjoKK15JbmV4dC0+cHJldiA9IG5yZXE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjE4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyMTYxOgorXklucmVxLT5uZXh0ID0gbnJlcTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIxNjI6CiteSW5yZXEtPnByZXYgPSBucmVxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjE2NjoKK15JXkleSSAgICBjb25zdCB2b2lkICppbmFyZywgY29uc3Qgc3RydWN0 IGZ1c2VfYnVmICpidWYpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjE4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTY4OgorXklz dHJ1Y3QgZnVzZV9zZXNzaW9uICpzZSA9IHJlcS0+c2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjE5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMTY5OgorXklzdHJ1Y3QgZnVzZV9ub3RpZnlfcmVxICpucmVxOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE3MDoKK15Jc3RydWN0IGZ1c2Vfbm90aWZ5X3JlcSAqaGVh ZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTkzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxNzI6CiteSXB0aHJlYWRfbXV0ZXhf bG9jaygmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIxOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE3MzoKK15J aGVhZCA9ICZzZS0+bm90aWZ5X2xpc3Q7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjE5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MTc0OgorXklmb3IgKG5yZXEgPSBoZWFkLT5uZXh0OyBucmVxICE9IGhlYWQ7IG5yZXEgPSBucmVx LT5uZXh0KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTc1OgorXkleSWlmIChu cmVxLT51bmlxdWUgPT0gcmVxLT51bmlxdWUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIxNzY6CiteSV5JXklsaXN0X2RlbF9ucmVxKG5yZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjE3NzoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjE3ODoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjIwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTc5Ogor Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIwMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTgwOgorXklwdGhyZWFkX211dGV4 X3VubG9jaygmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIyMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE4MjoK K15JaWYgKG5yZXEgIT0gaGVhZCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9y IGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMjAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIxODI6CisgICAgICAgaWYgKG5yZXEgIT0gaGVhZCkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMDQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE4MzoKK15JXklucmVxLT5yZXBseShucmVxLCBy ZXEsIG5vZGVpZCwgaW5hcmcsIGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjIwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MTg3OgorXkleSV5JICAgc3RydWN0IGlvdmVjICppb3YsIGludCBjb3VudCkkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjEwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIxODk6CiteSXN0cnVjdCBmdXNlX291dF9oZWFkZXIgb3V0OyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE5MToKK15JaWYgKCFzZS0+Z290X2luaXQp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojMjIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTkx OgorICAgICAgIGlmICghc2UtPmdvdF9pbml0KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjIxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMTkyOgorXkleSXJldHVybiAtRU5PVENPTk47JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMTk0OgorXklvdXQudW5pcXVlID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIxOTU6CiteSW91dC5lcnJvciA9IG5vdGlmeV9jb2RlOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjE5NjoKK15JaW92WzBdLmlvdl9iYXNlID0gJm91dDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjE4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxOTc6CiteSWlvdlswXS5pb3ZfbGVuID0gc2l6ZW9m KHN0cnVjdCBmdXNlX291dF9oZWFkZXIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIyMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjE5OToKK15JcmV0dXJuIGZ1c2Vfc2VuZF9tc2coc2UsIE5VTEwsIGlvdiwgY291bnQpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMjU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIwNDoKK15JaWYgKHBoICE9IE5VTEwpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjI2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyMDU6CiteSV5Jc3RydWN0IGZ1c2Vfbm90aWZ5 X3BvbGxfd2FrZXVwX291dCBvdXRhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjIyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MjA2OgorXkleSXN0cnVjdCBpb3ZlYyBpb3ZbMl07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjIyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyMjA4OgorXkleSW91dGFyZy5raCA9IHBoLT5raDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIyMTA6CiteSV5JaW92WzFdLmlvdl9iYXNlID0gJm91dGFyZzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjMyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyMTE6CiteSV5JaW92WzFdLmlvdl9sZW4gPSBzaXplb2Yo b3V0YXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjM0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyMTM6CiteSV5JcmV0dXJu IHNlbmRfbm90aWZ5X2lvdihwaC0+c2UsIEZVU0VfTk9USUZZX1BPTEwsIGlvdiwgMik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIzNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjE0OgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjIxNToKK15JXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIyMTY6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMjQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIy MjA6CiteSV5JXkleSSAgICAgb2ZmX3Qgb2ZmLCBvZmZfdCBsZW4pJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMjIyOgorXklzdHJ1Y3QgZnVzZV9ub3RpZnlfaW52YWxfaW5vZGVfb3V0 IG91dGFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjQ0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyMjM6CiteSXN0cnVjdCBp b3ZlYyBpb3ZbMl07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjI0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjI1OgorXklpZiAo IXNlKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzIyNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjIyNToKKyAgICAgICBpZiAoIXNlKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjI0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMjI2OgorXkleSXJldHVybiAtRUlOVkFMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIyNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjIyODoKK15JaWYgKHNlLT5jb25uLnByb3RvX21ham9yIDwgNiB8fCBzZS0+Y29ubi5wcm90 b19taW5vciA8IDEyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIyNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjIyODoKKyAgICAgICBpZiAoc2UtPmNvbm4ucHJvdG9fbWFqb3IgPCA2IHx8IHNl LT5jb25uLnByb3RvX21pbm9yIDwgMTIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMjUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIyMjk6CiteSV5JcmV0dXJuIC1FTk9TWVM7JAoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3Bh Y2UKIzIyNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIzMDoKK15J JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjMwOgorXkkkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIyMzE6CiteSW91dGFyZy5pbm8gPSBpbm87JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMjMyOgorXklvdXRhcmcub2ZmID0gb2ZmOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjIzMzoKK15Jb3V0YXJnLmxlbiA9IGxlbjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjU2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIyMzU6CiteSWlvdlsxXS5pb3ZfYmFzZSA9ICZvdXRhcmc7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjM2OgorXklpb3ZbMV0uaW92X2xlbiA9IHNp emVvZihvdXRhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIyNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIzODoKK15JcmV0 dXJuIHNlbmRfbm90aWZ5X2lvdihzZSwgRlVTRV9OT1RJRllfSU5WQUxfSU5PREUsIGlvdiwgMik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI2MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjQyOgorXkleSV5JXkkgICAgIGNvbnN0 IGNoYXIgKm5hbWUsIHNpemVfdCBuYW1lbGVuKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIyNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjI0NDoKK15Jc3RydWN0IGZ1c2Vfbm90aWZ5X2ludmFsX2VudHJ5X291dCBvdXRhcmc7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI2NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjQ1OgorXklzdHJ1Y3QgaW92ZWMgaW92WzNd OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNjg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI0NzoKK15JaWYgKCFzZSkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiMyMjY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNDc6CisgICAg ICAgaWYgKCFzZSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIyNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI0ODoKK15J XklyZXR1cm4gLUVJTlZBTDskCgpFUlJPUjogdHJhaWxpbmcgd2hpdGVzcGFjZQojMjI3MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjQ5OgorXkkkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjcwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIyNDk6CiteSSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIyNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjI1MDoKK15JaWYgKHNlLT5jb25uLnByb3RvX21ham9yIDwgNiB8fCBzZS0+Y29ubi5wcm90 b19taW5vciA8IDEyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIyNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjI1MDoKKyAgICAgICBpZiAoc2UtPmNvbm4ucHJvdG9fbWFqb3IgPCA2IHx8IHNl LT5jb25uLnByb3RvX21pbm9yIDwgMTIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMjcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIyNTE6CiteSV5JcmV0dXJuIC1FTk9TWVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjI3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyMjUzOgorXklvdXRhcmcucGFyZW50ID0gcGFyZW50OyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjI1NDoKK15Jb3V0YXJnLm5hbWVsZW4gPSBuYW1lbGVuOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNzY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI1NToKK15Jb3V0YXJnLnBhZGRpbmcgPSAwOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNzg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI1NzoKK15JaW92WzFdLmlvdl9iYXNlID0gJm91dGFy ZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjc5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNTg6CiteSWlvdlsxXS5pb3ZfbGVu ID0gc2l6ZW9mKG91dGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjI4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjU5Ogor Xklpb3ZbMl0uaW92X2Jhc2UgPSAodm9pZCAqKW5hbWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjI4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMjYwOgorXklpb3ZbMl0uaW92X2xlbiA9IG5hbWVsZW4gKyAxOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyODM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI2MjoKK15JcmV0dXJuIHNlbmRfbm90aWZ5X2lvdihzZSwg RlVTRV9OT1RJRllfSU5WQUxfRU5UUlksIGlvdiwgMyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjI4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMjY2OgorXkleSV5JXklmdXNlX2lub190IHBhcmVudCwgZnVzZV9pbm9fdCBjaGls ZCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjg4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNjc6CiteSV5JXkleSWNvbnN0IGNo YXIgKm5hbWUsIHNpemVfdCBuYW1lbGVuKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIyOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjI2OToKK15Jc3RydWN0IGZ1c2Vfbm90aWZ5X2RlbGV0ZV9vdXQgb3V0YXJnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyOTE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI3MDoKK15Jc3RydWN0IGlvdmVjIGlvdlszXTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjkzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNzI6CiteSWlmICghc2UpJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjI5Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjcyOgorICAgICAgIGlmICgh c2UpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjk0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNzM6CiteSV5JcmV0dXJu IC1FSU5WQUw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI5 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjc1OgorXklpZiAoc2Ut PmNvbm4ucHJvdG9fbWFqb3IgPCA2IHx8IHNlLT5jb25uLnByb3RvX21pbm9yIDwgMTgpJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMjI5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjc1OgorICAg ICAgIGlmIChzZS0+Y29ubi5wcm90b19tYWpvciA8IDYgfHwgc2UtPmNvbm4ucHJvdG9fbWlub3Ig PCAxOCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIy OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI3NjoKK15JXklyZXR1 cm4gLUVOT1NZUzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy Mjk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNzg6CiteSW91dGFy Zy5wYXJlbnQgPSBwYXJlbnQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjMwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjc5Ogor XklvdXRhcmcuY2hpbGQgPSBjaGlsZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMzAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIy ODA6CiteSW91dGFyZy5uYW1lbGVuID0gbmFtZWxlbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMzAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIyODE6CiteSW91dGFyZy5wYWRkaW5nID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIyODM6CiteSWlvdlsxXS5pb3ZfYmFzZSA9ICZvdXRhcmc7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMwNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjg0OgorXklpb3ZbMV0uaW92X2xlbiA9IHNpemVvZihvdXRh cmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMDY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI4NToKK15JaW92WzJdLmlvdl9i YXNlID0gKHZvaWQgKiluYW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIzMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI4NjoK K15JaW92WzJdLmlvdl9sZW4gPSBuYW1lbGVuICsgMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIyODg6CiteSXJldHVybiBzZW5kX25vdGlmeV9pb3Yoc2UsIEZVU0VfTk9USUZZX0RF TEVURSwgaW92LCAzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMzEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyOTI6CiteSV5J XkkgICAgICAgb2ZmX3Qgb2Zmc2V0LCBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1ZnYsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMxNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjkzOgorXkleSV5JICAgICAgIGVudW0gZnVzZV9idWZf Y29weV9mbGFncyBmbGFncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMzE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyOTU6Cite SXN0cnVjdCBmdXNlX291dF9oZWFkZXIgb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIzMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjI5NjoKK15Jc3RydWN0IGZ1c2Vfbm90aWZ5X3N0b3JlX291dCBvdXRhcmc7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMxODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjk3OgorXklzdHJ1Y3QgaW92ZWMgaW92WzNdOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMTk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI5ODoKK15Jc2l6ZV90IHNpemUgPSBmdXNlX2J1 Zl9zaXplKGJ1ZnYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIzMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI5OToKK15JaW50 IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzIyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMDE6CiteSWlmICghc2UpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMjMyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzAxOgor ICAgICAgIGlmICghc2UpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMzIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMDI6 CiteSV5JcmV0dXJuIC1FSU5WQUw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjMyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzA0 OgorXklpZiAoc2UtPmNvbm4ucHJvdG9fbWFqb3IgPCA2IHx8IHNlLT5jb25uLnByb3RvX21pbm9y IDwgMTUpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMjMyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMzA0OgorICAgICAgIGlmIChzZS0+Y29ubi5wcm90b19tYWpvciA8IDYgfHwgc2UtPmNvbm4u cHJvdG9fbWlub3IgPCAxNSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIzMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMw NToKK15JXklyZXR1cm4gLUVOT1NZUzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMzI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIz MDc6CiteSW91dC51bmlxdWUgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIzMjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMw ODoKK15Jb3V0LmVycm9yID0gRlVTRV9OT1RJRllfU1RPUkU7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMzEwOgorXklvdXRhcmcubm9kZWlkID0gaW5vOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjMxMToKK15Jb3V0YXJnLm9mZnNldCA9IG9mZnNldDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzMzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMTI6CiteSW91dGFyZy5zaXplID0gc2l6ZTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzM0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMTM6CiteSW91dGFyZy5wYWRkaW5nID0gMDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzM2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMTU6CiteSWlvdlswXS5pb3ZfYmFzZSA9ICZv dXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMzNzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzE2OgorXklpb3ZbMF0uaW92X2xl biA9IHNpemVvZihvdXQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIzMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMxNzoKK15J aW92WzFdLmlvdl9iYXNlID0gJm91dGFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMzM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIzMTg6CiteSWlvdlsxXS5pb3ZfbGVuID0gc2l6ZW9mKG91dGFyZyk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM0MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMzIwOgorXklyZXMgPSBmdXNlX3NlbmRfZGF0YV9pb3Yoc2UsIE5V TEwsIGlvdiwgMiwgYnVmdiwgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIzNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjMyMToKK15JaWYgKHJlcyA+IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjM0MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMzIxOgorICAgICAgIGlmIChyZXMgPiAwKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM0MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzIyOgorXkleSXJlcyA9IC1yZXM7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM0NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzI0OgorXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjMyODoKK15Jc3RydWN0IGZ1c2Vfbm90aWZ5X3JlcSBucmVxOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNTA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMyOToKK15Jdm9pZCAqY29va2llOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMzMzoKK15JXkleSV5JICAgZnVzZV9yZXFfdCByZXEs IGZ1c2VfaW5vX3QgaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIzNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMzNDoKK15J XkleSV5JICAgY29uc3Qgdm9pZCAqaW5hcmcsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjM1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMzM1OgorXkleSV5JXkkgICBjb25zdCBzdHJ1Y3QgZnVzZV9idWYgKmlidWYpJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM1ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzM3OgorXklzdHJ1Y3QgZnVzZV9zZXNzaW9uICpzZSA9 IHJlcS0+c2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM1 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzM4OgorXklzdHJ1Y3Qg ZnVzZV9yZXRyaWV2ZV9yZXEgKnJyZXEgPSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIzNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjMzOToKK15JXkljb250YWluZXJfb2YobnJlcSwgc3RydWN0IGZ1c2VfcmV0cmlldmVfcmVxLCBu cmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzYxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNDA6CiteSWNvbnN0IHN0cnVj dCBmdXNlX25vdGlmeV9yZXRyaWV2ZV9pbiAqYXJnID0gaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMzQxOgorXklzdHJ1Y3QgZnVzZV9idWZ2ZWMgYnVmdiA9IHskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzYzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNDI6CiteSV5JLmJ1ZlswXSA9ICppYnVmLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNjQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM0MzoKK15JXkkuY291bnQgPSAxLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNjU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM0NDoKK15JfTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIzNDY6CiteSWlmICghKGJ1ZnYuYnVmWzBdLmZsYWdzICYgRlVTRV9CVUZfSVNf RkQpKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzIzNjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjM0NjoKKyAgICAgICBpZiAoIShidWZ2LmJ1ZlswXS5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSkK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNjg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM0NzoKK15JXklidWZ2LmJ1Zlsw XS5tZW0gPSBQQVJBTShhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIzNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM0OToK K15JYnVmdi5idWZbMF0uc2l6ZSAtPSBzaXplb2Yoc3RydWN0IGZ1c2VfaW5faGVhZGVyKSArJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM3MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzUwOgorXkleSXNpemVvZihzdHJ1Y3QgZnVz ZV9ub3RpZnlfcmV0cmlldmVfaW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIzNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM1 MjoKK15JaWYgKGJ1ZnYuYnVmWzBdLnNpemUgPCBhcmctPnNpemUpIHskCgpXQVJOSU5HOiBsaW5l IG92ZXIgODAgY2hhcmFjdGVycwojMjM3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMzUzOgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVz ZTogcmV0cmlldmUgcmVwbHk6IGJ1ZmZlciBzaXplIHRvbyBzbWFsbFxuIik7CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzc0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIzNTM6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVz ZTogcmV0cmlldmUgcmVwbHk6IGJ1ZmZlciBzaXplIHRvbyBzbWFsbFxuIik7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM3NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzU0OgorXkleSWZ1c2VfcmVwbHlfbm9uZShyZXEpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNzY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM1NToKK15JXklnb3RvIG91dDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzc3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNTY6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIzNTc6CiteSWJ1ZnYuYnVmWzBdLnNpemUgPSBhcmctPnNpemU7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM4MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzU5OgorXklpZiAoc2UtPm9wLnJldHJpZXZlX3JlcGx5KSB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM4MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzYwOgorXkleSXNlLT5vcC5yZXRyaWV2 ZV9yZXBseShyZXEsIHJyZXEtPmNvb2tpZSwgaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIzODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjM2MToKK15JXkleSV5JXkkgIGFyZy0+b2Zmc2V0LCAmYnVmdik7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM4MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzYyOgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjM2MzoKK15JXklmdXNlX3JlcGx5X25vbmUocmVxKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzg1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIzNjQ6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIzNjY6CiteSWZyZWUocnJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjM4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MzY3OgorXklpZiAoKGlidWYtPmZsYWdzICYgRlVTRV9CVUZfSVNfRkQpICYmIGJ1ZnYuaWR4IDwg YnVmdi5jb3VudCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiMyMzg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIzNjc6CisgICAgICAgaWYgKChpYnVmLT5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSAm JiBidWZ2LmlkeCA8IGJ1ZnYuY291bnQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMzg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIzNjg6CiteSV5JZnVzZV9sbF9jbGVhcl9waXBlKHNlKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIzNzI6CiteSV5JXkleSSAgc2l6ZV90IHNpemUsIG9mZl90IG9mZnNldCwg dm9pZCAqY29va2llKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIzOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM3NDoKK15Jc3Ry dWN0IGZ1c2Vfbm90aWZ5X3JldHJpZXZlX291dCBvdXRhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMzc1OgorXklzdHJ1Y3QgaW92ZWMgaW92WzJdOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjM3NjoKK15Jc3RydWN0IGZ1c2VfcmV0cmlldmVfcmVxICpycmVxOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzOTg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM3NzoKK15JaW50IGVycjskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDAwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNzk6CiteSWlmICghc2UpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjQwMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzc5OgorICAgICAgIGlmICghc2Up ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDAxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzODA6CiteSV5JcmV0dXJuIC1F SU5WQUw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQwMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzgyOgorXklpZiAoc2UtPmNv bm4ucHJvdG9fbWFqb3IgPCA2IHx8IHNlLT5jb25uLnByb3RvX21pbm9yIDwgMTUpJAoKRVJST1I6 IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAoj MjQwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzgyOgorICAgICAg IGlmIChzZS0+Y29ubi5wcm90b19tYWpvciA8IDYgfHwgc2UtPmNvbm4ucHJvdG9fbWlub3IgPCAx NSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MDQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM4MzoKK15JXklyZXR1cm4g LUVOT1NZUzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDA2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzODU6CiteSXJyZXEgPSBt YWxsb2Moc2l6ZW9mKCpycmVxKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjQwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzg2 OgorXklpZiAocnJlcSA9PSBOVUxMKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBm b3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI0MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjM4NjoKKyAgICAgICBpZiAocnJlcSA9PSBOVUxMKQpbLi4uXQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQwODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzg3OgorXkleSXJldHVybiAtRU5PTUVNOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM4OToKK15JcHRocmVhZF9tdXRleF9sb2Nr KCZzZS0+bG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjQxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzkwOgorXklycmVx LT5jb29raWUgPSBjb29raWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzkxOgor XklycmVxLT5ucmVxLnVuaXF1ZSA9IHNlLT5ub3RpZnlfY3RyKys7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMzkyOgorXklycmVxLT5ucmVxLnJlcGx5ID0gZnVzZV9sbF9yZXRyaWV2 ZV9yZXBseTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDE0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzOTM6CiteSWxpc3RfYWRk X25yZXEoJnJyZXEtPm5yZXEsICZzZS0+bm90aWZ5X2xpc3QpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjM5NDoKK15JcHRocmVhZF9tdXRleF91bmxvY2soJnNlLT5sb2NrKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDE3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzOTY6CiteSW91dGFyZy5ub3RpZnlfdW5pcXVl ID0gcnJlcS0+bnJlcS51bmlxdWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjQxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzk3 OgorXklvdXRhcmcubm9kZWlkID0gaW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI0MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjM5ODoKK15Jb3V0YXJnLm9mZnNldCA9IG9mZnNldDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNDIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIzOTk6CiteSW91dGFyZy5zaXplID0gc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI0MDA6CiteSW91dGFyZy5wYWRkaW5nID0gMDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI0MDI6CiteSWlvdlsxXS5pb3ZfYmFzZSA9ICZvdXRhcmc7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDAzOgorXklpb3ZbMV0uaW92X2xlbiA9IHNpemVvZihv dXRhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MjY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQwNToKK15JZXJyID0gc2Vu ZF9ub3RpZnlfaW92KHNlLCBGVVNFX05PVElGWV9SRVRSSUVWRSwgaW92LCAyKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDI3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0MDY6CiteSWlmIChlcnIpIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI0MDc6CiteSV5JcHRocmVhZF9tdXRleF9sb2NrKCZzZS0+bG9jayk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyOTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDA4OgorXkleSWxpc3RfZGVsX25yZXEo JnJyZXEtPm5yZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI0MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQwOToKK15JXklw dGhyZWFkX211dGV4X3VubG9jaygmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjQxMDoKK15JXklmcmVlKHJyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjQxMToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI0MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQxMzoKK15JcmV0 dXJuIGVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDM5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0MTg6CiteSXJldHVybiBy ZXEtPnNlLT51c2VyZGF0YTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNDQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0MjM6Cite SXJldHVybiAmcmVxLT5jdHg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQ0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDI3Ogor XkleSV5JICAgICB2b2lkICpkYXRhKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI0NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQy OToKK15JcHRocmVhZF9tdXRleF9sb2NrKCZyZXEtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjQzMDoKK15JcHRocmVhZF9tdXRleF9sb2NrKCZyZXEtPnNlLT5sb2NrKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDUyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0MzE6CiteSXJlcS0+dS5uaS5mdW5jID0g ZnVuYzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDUzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0MzI6CiteSXJlcS0+dS5uaS5k YXRhID0gZGF0YTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NDU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0MzM6CiteSXB0aHJl YWRfbXV0ZXhfdW5sb2NrKCZyZXEtPnNlLT5sb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNDU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI0MzQ6CiteSWlmIChyZXEtPmludGVycnVwdGVkICYmIGZ1bmMpJAoKRVJST1I6IGJy YWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjQ1 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDM0OgorICAgICAgIGlm IChyZXEtPmludGVycnVwdGVkICYmIGZ1bmMpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNDU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI0MzU6CiteSV5JZnVuYyhyZXEsIGRhdGEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjQzNjoKK15JcHRocmVhZF9tdXRleF91bmxvY2soJnJlcS0+bG9jayk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ2MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDQxOgorXklpbnQgaW50ZXJydXB0ZWQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ2NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDQzOgorXklwdGhyZWFkX211dGV4X2xvY2soJnJl cS0+c2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI0NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ0NDoKK15JaW50 ZXJydXB0ZWQgPSByZXEtPmludGVycnVwdGVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjQ0NToKK15JcHRocmVhZF9tdXRleF91bmxvY2soJnJlcS0+c2UtPmxvY2spOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0Njg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ0NzoKK15JcmV0dXJuIGludGVycnVwdGVkOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NzI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ1MToKK15Jdm9pZCAoKmZ1bmMpKGZ1c2VfcmVx X3QsIGZ1c2VfaW5vX3QsIGNvbnN0IHZvaWQgKik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjQ3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNDUyOgorXkljb25zdCBjaGFyICpuYW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjQ1NDoKK15JW0ZVU0VfTE9PS1VQXV5JICAgPSB7IGRvX2xvb2t1cCwgICAgICAiTE9P S1VQIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI0NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ1NToKK15JW0ZV U0VfRk9SR0VUXV5JICAgPSB7IGRvX2ZvcmdldCwgICAgICAiRk9SR0VUIl5JICAgICB9LCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0Nzc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ1NjoKK15JW0ZVU0VfR0VUQVRUUl1eSSAgID0g eyBkb19nZXRhdHRyLCAgICAgIkdFVEFUVFIiICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjQ1NzoKK15JW0ZVU0VfU0VUQVRUUl1eSSAgID0geyBkb19zZXRhdHRyLCAgICAg IlNFVEFUVFIiICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI0Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ1ODoKK15J W0ZVU0VfUkVBRExJTktdXkkgICA9IHsgZG9fcmVhZGxpbmssICAgICJSRUFETElOSyIgICAgfSwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDgwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NTk6CiteSVtGVVNFX1NZTUxJTktdXkkg ICA9IHsgZG9fc3ltbGluaywgICAgICJTWU1MSU5LIiAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI0NjA6CiteSVtGVVNFX01LTk9EXV5JICAgPSB7IGRvX21rbm9kLCAgICAg ICAiTUtOT0QiXkkgICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQ4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDYxOgor XklbRlVTRV9NS0RJUl1eSSAgID0geyBkb19ta2RpciwgICAgICAgIk1LRElSIl5JICAgICB9LCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ2MjoKK15JW0ZVU0VfVU5MSU5LXV5JICAg PSB7IGRvX3VubGluaywgICAgICAiVU5MSU5LIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjQ2MzoKK15JW0ZVU0VfUk1ESVJdXkkgICA9IHsgZG9fcm1kaXIsICAgICAg ICJSTURJUiJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNDg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NjQ6Cite SVtGVVNFX1JFTkFNRV1eSSAgID0geyBkb19yZW5hbWUsICAgICAgIlJFTkFNRSJeSSAgICAgfSwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDg2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NjU6CiteSVtGVVNFX0xJTktdXkkgICA9 IHsgZG9fbGluayxeSSAgICAgICAiTElOSyJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI0NjY6CiteSVtGVVNFX09QRU5dXkkgICA9IHsgZG9fb3BlbixeSSAgICAgICAi T1BFTiJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNDg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0Njc6CiteSVtG VVNFX1JFQURdXkkgICA9IHsgZG9fcmVhZCxeSSAgICAgICAiUkVBRCJeSSAgICAgfSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDg5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0Njg6CiteSVtGVVNFX1dSSVRFXV5JICAgPSB7IGRv X3dyaXRlLCAgICAgICAiV1JJVEUiXkkgICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjQ5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNDY5OgorXklbRlVTRV9TVEFURlNdXkkgICA9IHsgZG9fc3RhdGZzLCAgICAgICJTVEFU RlMiXkkgICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjQ5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDcwOgorXklbRlVT RV9SRUxFQVNFXV5JICAgPSB7IGRvX3JlbGVhc2UsICAgICAiUkVMRUFTRSIgICAgIH0sJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDcxOgorXklbRlVTRV9GU1lOQ11eSSAgID0geyBk b19mc3luYywgICAgICAgIkZTWU5DIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjQ3MjoKK15JW0ZVU0VfU0VUWEFUVFJdXkkgICA9IHsgZG9fc2V0eGF0dHIsICAgICJT RVRYQVRUUiIgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NzM6CiteSVtG VVNFX0dFVFhBVFRSXV5JICAgPSB7IGRvX2dldHhhdHRyLCAgICAiR0VUWEFUVFIiICAgIH0sJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDc0OgorXklbRlVTRV9MSVNUWEFUVFJdICAg PSB7IGRvX2xpc3R4YXR0ciwgICAiTElTVFhBVFRSIiAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNDc1OgorXklbRlVTRV9SRU1PVkVYQVRUUl0gPSB7IGRvX3JlbW92ZXhhdHRy LCAiUkVNT1ZFWEFUVFIiIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQ5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDc2Ogor XklbRlVTRV9GTFVTSF1eSSAgID0geyBkb19mbHVzaCwgICAgICAgIkZMVVNIIl5JICAgICB9LCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ3NzoKK15JW0ZVU0VfSU5JVF1eSSAgID0g eyBkb19pbml0LF5JICAgICAgICJJTklUIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjQ3ODoKK15JW0ZVU0VfT1BFTkRJUl1eSSAgID0geyBkb19vcGVuZGlyLCAgICAg Ik9QRU5ESVIiICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI1MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ3OToKK15J W0ZVU0VfUkVBRERJUl1eSSAgID0geyBkb19yZWFkZGlyLCAgICAgIlJFQURESVIiICAgICB9LCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MDE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ4MDoKK15JW0ZVU0VfUkVMRUFTRURJUl0g ID0geyBkb19yZWxlYXNlZGlyLCAgIlJFTEVBU0VESVIiICB9LCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjQ4MToKK15JW0ZVU0VfRlNZTkNESVJdXkkgICA9IHsgZG9fZnN5bmNkaXIs ICAgICJGU1lOQ0RJUiIgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNTAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0ODI6 CiteSVtGVVNFX0dFVExLXV5JICAgPSB7IGRvX2dldGxrLCAgICAgICAiR0VUTEsiXkkgICAgIH0s JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUwNDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDgzOgorXklbRlVTRV9TRVRMS11eSSAg ID0geyBkb19zZXRsaywgICAgICAgIlNFVExLIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjQ4NDoKK15JW0ZVU0VfU0VUTEtXXV5JICAgPSB7IGRvX3NldGxrdywgICAg ICAiU0VUTEtXIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI1MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ4NToK K15JW0ZVU0VfQUNDRVNTXV5JICAgPSB7IGRvX2FjY2VzcywgICAgICAiQUNDRVNTIl5JICAgICB9 LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MDc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ4NjoKK15JW0ZVU0VfQ1JFQVRFXV5J ICAgPSB7IGRvX2NyZWF0ZSwgICAgICAiQ1JFQVRFIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjQ4NzoKK15JW0ZVU0VfSU5URVJSVVBUXSAgID0geyBkb19pbnRlcnJ1 cHQsICAgIklOVEVSUlVQVCIgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI1MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ4 ODoKK15JW0ZVU0VfQk1BUF1eSSAgID0geyBkb19ibWFwLF5JICAgICAgICJCTUFQIl5JICAgICB9 LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ4OToKK15JW0ZVU0VfSU9DVExdXkkg ICA9IHsgZG9faW9jdGwsICAgICAgICJJT0NUTCJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI0OTA6CiteSVtGVVNFX1BPTExdXkkgICA9IHsgZG9fcG9sbCwgICAgICAg ICJQT0xMIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI1MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ5MToKK15J W0ZVU0VfRkFMTE9DQVRFXSAgID0geyBkb19mYWxsb2NhdGUsICAgIkZBTExPQ0FURSIgICB9LCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MTM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ5MjoKK15JW0ZVU0VfREVTVFJPWV1eSSAg ID0geyBkb19kZXN0cm95LCAgICAgIkRFU1RST1kiICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjQ5MzoKK15JW0ZVU0VfTk9USUZZX1JFUExZXSA9IHsgKHZvaWQgKikgMSwg ICAgIk5PVElGWV9SRVBMWSIgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNTE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0OTQ6 CiteSVtGVVNFX0JBVENIX0ZPUkdFVF0gPSB7IGRvX2JhdGNoX2ZvcmdldCwgIkJBVENIX0ZPUkdF VCIgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTE2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0OTU6CiteSVtGVVNFX1JFQURE SVJQTFVTXSA9IHsgZG9fcmVhZGRpcnBsdXMsXkkiUkVBRERJUlBMVVMifSwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTE3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI0OTY6CiteSVtGVVNFX1JFTkFNRTJdICAgICA9IHsgZG9fcmVu YW1lMiwgICAgICAiUkVOQU1FMiIgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNTE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI0OTc6CiteSVtGVVNFX0NPUFlfRklMRV9SQU5HRV0gPSB7IGRvX2NvcHlfZmlsZV9yYW5nZSwg IkNPUFlfRklMRV9SQU5HRSIgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNTE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0OTg6 CiteSVtGVVNFX0xTRUVLXV5JICAgPSB7IGRvX2xzZWVrLCAgICAgICAiTFNFRUsiXkkgICAgIH0s JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUyMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDk5OgorXklbQ1VTRV9JTklUXV5JICAg PSB7IGN1c2VfbG93bGV2ZWxfaW5pdCwgIkNVU0VfSU5JVCIgICB9LCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjUwNjoKK15JaWYgKG9wY29kZSA+PSBGVVNFX01BWE9QIHx8ICFmdXNl X2xsX29wc1tvcGNvZGVdLm5hbWUpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjUyNzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNTA2OgorICAgICAgIGlmIChvcGNvZGUgPj0gRlVTRV9NQVhPUCB8 fCAhZnVzZV9sbF9vcHNbb3Bjb2RlXS5uYW1lKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1Mjg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUwNzoKK15JXklyZXR1cm4gIj8/PyI7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUyOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTA4OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTA5OgorXkleSXJldHVybiBmdXNlX2xsX29wc1tvcGNvZGVdLm5hbWU7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUzNDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTEzOgorXkleSV5JXkkgIHN0cnVjdCBm dXNlX2J1ZnZlYyAqc3JjKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI1MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUxNToKK15J c3NpemVfdCByZXMgPSBmdXNlX2J1Zl9jb3B5KGRzdCwgc3JjLCAwKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI1MTY6CiteSWlmIChyZXMgPCAwKSB7JAoKV0FSTklORzogbGluZSBv dmVyIDgwIGNoYXJhY3RlcnMKIzI1Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjUxNzoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6 IGNvcHkgZnJvbSBwaXBlOiAlc1xuIiwgc3RyZXJyb3IoLXJlcykpOwoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTE3OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IGNv cHkgZnJvbSBwaXBlOiAlc1xuIiwgc3RyZXJyb3IoLXJlcykpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjUxODoKK15JXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjUxOToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI1NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUyMDoK K15JaWYgKChzaXplX3QpcmVzIDwgZnVzZV9idWZfc2l6ZShkc3QpKSB7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNTIxOgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6 IGNvcHkgZnJvbSBwaXBlOiBzaG9ydCByZWFkXG4iKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNTQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI1MjI6CiteSV5JcmV0dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI1NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjUyMzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI1NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUyNDoKK15JcmV0 dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0OTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTI4OgorXkleSV5JICAgICAg Y29uc3Qgc3RydWN0IGZ1c2VfYnVmICpidWYpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjU1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNTMwOgorXklmdXNlX3Nlc3Npb25fcHJvY2Vzc19idWZfaW50KHNlLCBidWYsIE5VTEwpOyQK CldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMyNTU1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MzQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9idWYgKmJ1Ziwgc3RydWN0IGZ1c2VfY2hhbiAqY2gpCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTU1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MzQ6CiteSV5JXkleSSAgY29uc3Qgc3RydWN0 IGZ1c2VfYnVmICpidWYsIHN0cnVjdCBmdXNlX2NoYW4gKmNoKSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjUzNjoKK15JY29uc3Qgc2l6ZV90IHdyaXRlX2hlYWRlcl9zaXplID0gc2l6 ZW9mKHN0cnVjdCBmdXNlX2luX2hlYWRlcikgKyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI1NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjUzNzoKK15JXklzaXplb2Yoc3RydWN0IGZ1c2Vfd3JpdGVfaW4pOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjUzODoKK15Jc3RydWN0IGZ1c2VfYnVmdmVjIGJ1ZnYgPSB7IC5i dWZbMF0gPSAqYnVmLCAuY291bnQgPSAxIH07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjU2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNTM5OgorXklzdHJ1Y3QgZnVzZV9idWZ2ZWMgdG1wYnVmID0gRlVTRV9CVUZWRUNfSU5JVCh3 cml0ZV9oZWFkZXJfc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjU2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTQwOgor XklzdHJ1Y3QgZnVzZV9pbl9oZWFkZXIgKmluOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI1NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjU0MToKK15JY29uc3Qgdm9pZCAqaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjU2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNTQyOgorXklzdHJ1Y3QgZnVzZV9yZXEgKnJlcTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI1NDM6CiteSXZvaWQgKm1idWYgPSBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjU0NDoKK15JaW50IGVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI1NDU6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjU2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTQ3 OgorXklpZiAoYnVmLT5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTQ4OgorXkleSWlmIChidWYtPnNpemUgPCB0bXBidWYuYnVmWzBdLnNp emUpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlz IHN0YXRlbWVudAojMjU2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NTQ4OgorICAgICAgICAgICAgICAgaWYgKGJ1Zi0+c2l6ZSA8IHRtcGJ1Zi5idWZbMF0uc2l6ZSkK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU0OToKK15JXkleSXRtcGJ1Zi5i dWZbMF0uc2l6ZSA9IGJ1Zi0+c2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNTcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1 NTE6CiteSV5JbWJ1ZiA9IG1hbGxvYyh0bXBidWYuYnVmWzBdLnNpemUpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjU1MjoKK15JXklpZiAobWJ1ZiA9PSBOVUxMKSB7JAoKV0FSTklO RzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzI1NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjU1MzoKKyAgICAgICAgICAgICAgICAgICAgICAgZnVzZV9sb2coRlVT RV9MT0dfRVJSLCAiZnVzZTogZmFpbGVkIHRvIGFsbG9jYXRlIGhlYWRlclxuIik7CgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTc0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NTM6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIs ICJmdXNlOiBmYWlsZWQgdG8gYWxsb2NhdGUgaGVhZGVyXG4iKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI1NTQ6CiteSV5JXklnb3RvIGNsZWFyX3BpcGU7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNTU1OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI1NTY6CiteSV5JdG1wYnVmLmJ1ZlswXS5tZW0gPSBtYnVmOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjU1ODoKK15JXklyZXMgPSBmdXNlX2xsX2NvcHlfZnJvbV9waXBlKCZ0 bXBidWYsICZidWZ2KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNTgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NTk6CiteSV5J aWYgKHJlcyA8IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojMjU4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNTU5OgorICAgICAgICAgICAgICAgaWYgKHJlcyA8IDApClsuLi5dCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTgxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NjA6CiteSV5JXklnb3RvIGNsZWFyX3BpcGU7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTYyOgorXkleSWluID0gbWJ1ZjskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTg0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NjM6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTY0OgorXkleSWluID0gYnVmLT5tZW07JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTY1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NTY3OgorXklpZiAoc2UtPmRlYnVnKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NTY4OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjU2OToKK15JXkleSSJ1bmlxdWU6ICVsbHUsIG9wY29kZTogJXMgKCVpKSwgbm9k ZWlkOiAlbGx1LCBpbnNpemU6ICV6dSwgcGlkOiAldVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI1NzA6CiteSV5JXkkodW5zaWduZWQgbG9uZyBsb25nKSBpbi0+dW5pcXVlLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU3MToKK15JXkleSW9wbmFtZSgoZW51bSBm dXNlX29wY29kZSkgaW4tPm9wY29kZSksIGluLT5vcGNvZGUsJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNTcyOgorXkleSV5JKHVuc2lnbmVkIGxvbmcgbG9uZykgaW4tPm5vZGVpZCwg YnVmLT5zaXplLCBpbi0+cGlkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNTk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NzM6 CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTk2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NzU6CiteSXJlcSA9IGZ1c2Vf bGxfYWxsb2NfcmVxKHNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NzY6Cite SWlmIChyZXEgPT0gTlVMTCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI1OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU3NzoK K15JXklzdHJ1Y3QgZnVzZV9vdXRfaGVhZGVyIG91dCA9IHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI1Nzg6CiteSV5JXkkudW5pcXVlID0gaW4tPnVuaXF1ZSwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjAwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI1Nzk6CiteSV5JXkkuZXJyb3IgPSAtRU5PTUVNLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MDE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU4MDoKK15JXkl9OyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjU4MToKK15JXklzdHJ1Y3QgaW92ZWMgaW92ID0geyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjU4MjoKK15JXkleSS5pb3ZfYmFzZSA9ICZvdXQsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTgzOgorXkleSV5JLmlvdl9sZW4gPSBzaXplb2Yoc3Ry dWN0IGZ1c2Vfb3V0X2hlYWRlciksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjYwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTg0 OgorXkleSX07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYw NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTg2OgorXkleSWZ1c2Vf c2VuZF9tc2coc2UsIGNoLCAmaW92LCAxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI1ODc6CiteSV5JZ290byBjbGVhcl9waXBlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjU4ODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU5MDoKK15JcmVx LT51bmlxdWUgPSBpbi0+dW5pcXVlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU5 MToKK15JcmVxLT5jdHgudWlkID0gaW4tPnVpZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNjEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI1OTI6CiteSXJlcS0+Y3R4LmdpZCA9IGluLT5naWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNTkzOgorXklyZXEtPmN0eC5waWQgPSBpbi0+cGlkOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjU5NDoKK15JcmVxLT5jaCA9IGNoID8gZnVzZV9jaGFuX2dldChj aCkgOiBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2 MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU5NjoKK15JZXJyID0g RUlPOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU5NzoKK15JaWYgKCFzZS0+Z290 X2luaXQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjE5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1OTg6CiteSV5JZW51bSBm dXNlX29wY29kZSBleHBlY3RlZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MDA6 CiteSV5JZXhwZWN0ZWQgPSBzZS0+Y3VzZV9kYXRhID8gQ1VTRV9JTklUIDogRlVTRV9JTklUOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MjI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYwMToKK15JXklpZiAoaW4tPm9wY29kZSAh PSBleHBlY3RlZCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiMyNjIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI2MDE6CisgICAgICAgICAgICAgICBpZiAoaW4tPm9wY29kZSAhPSBleHBlY3RlZCkK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MjM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYwMjoKK15JXkleSWdvdG8gcmVw bHlfZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MjQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYwMzoKK15JfSBlbHNlIGlm IChpbi0+b3Bjb2RlID09IEZVU0VfSU5JVCB8fCBpbi0+b3Bjb2RlID09IENVU0VfSU5JVCkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiMyNjI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MDM6Cisg ICAgICAgfSBlbHNlIGlmIChpbi0+b3Bjb2RlID09IEZVU0VfSU5JVCB8fCBpbi0+b3Bjb2RlID09 IENVU0VfSU5JVCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI2MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYwNDoKK15J Xklnb3RvIHJlcGx5X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MDY6Cite SWVyciA9IEVBQ0NFUzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNjI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MDc6CiteSS8q IEltcGxlbWVudCAtbyBhbGxvd19yb290ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjYyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNjA4OgorXklpZiAoc2UtPmRlbnlfb3RoZXJzICYmIGluLT51aWQgIT0gc2UtPm93bmVyICYm IGluLT51aWQgIT0gMCAmJiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI2MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYwOToKK15J XkkgaW4tPm9wY29kZSAhPSBGVVNFX0lOSVQgJiYgaW4tPm9wY29kZSAhPSBGVVNFX1JFQUQgJiYk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjMxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MTA6CiteSV5JIGluLT5vcGNvZGUgIT0g RlVTRV9XUklURSAmJiBpbi0+b3Bjb2RlICE9IEZVU0VfRlNZTkMgJiYkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI2MTE6CiteSV5JIGluLT5vcGNvZGUgIT0gRlVTRV9SRUxFQVNFICYm IGluLT5vcGNvZGUgIT0gRlVTRV9SRUFERElSICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjYzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNjEyOgorXkleSSBpbi0+b3Bjb2RlICE9IEZVU0VfRlNZTkNESVIgJiYgaW4tPm9wY29k ZSAhPSBGVVNFX1JFTEVBU0VESVIgJiYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2 MTM6CiteSV5JIGluLT5vcGNvZGUgIT0gRlVTRV9OT1RJRllfUkVQTFkgJiYkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjM1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI2MTQ6CiteSV5JIGluLT5vcGNvZGUgIT0gRlVTRV9SRUFERElS UExVUykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjM2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MTU6CiteSV5JZ290byByZXBs eV9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYzODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjE3OgorXkllcnIgPSBFTk9T WVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYzOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjE4OgorXklpZiAoaW4tPm9wY29k ZSA+PSBGVVNFX01BWE9QIHx8ICFmdXNlX2xsX29wc1tpbi0+b3Bjb2RlXS5mdW5jKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzI2Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYxODoKKyAgICAg ICBpZiAoaW4tPm9wY29kZSA+PSBGVVNFX01BWE9QIHx8ICFmdXNlX2xsX29wc1tpbi0+b3Bjb2Rl XS5mdW5jKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjE5OgorXkleSWdv dG8gcmVwbHlfZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYyMDoKK15JaWYg KGluLT5vcGNvZGUgIT0gRlVTRV9JTlRFUlJVUFQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI2MjE6CiteSV5Jc3RydWN0IGZ1c2VfcmVxICppbnRyOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjYyMjoKK15JXklwdGhyZWFkX211dGV4X2xvY2soJnNlLT5sb2NrKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MjM6CiteSV5JaW50ciA9IGNoZWNrX2lu dGVycnVwdChzZSwgcmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MjQ6Cite SV5JbGlzdF9hZGRfcmVxKHJlcSwgJnNlLT5saXN0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI2MjU6CiteSV5JcHRocmVhZF9tdXRleF91bmxvY2soJnNlLT5sb2NrKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MjY6CiteSV5JaWYgKGludHIpJAoKRVJST1I6IGJy YWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjY0 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjI2OgorICAgICAgICAg ICAgICAgaWYgKGludHIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2Mjc6 CiteSV5JXklmdXNlX3JlcGx5X2VycihpbnRyLCBFQUdBSU4pOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjYyODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYz MDoKK15JaWYgKChidWYtPmZsYWdzICYgRlVTRV9CVUZfSVNfRkQpICYmIHdyaXRlX2hlYWRlcl9z aXplIDwgYnVmLT5zaXplICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjMxOgor XkkgICAgKGluLT5vcGNvZGUgIT0gRlVTRV9XUklURSB8fCAhc2UtPm9wLndyaXRlX2J1ZikgJiYk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjUzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MzI6CiteSSAgICBpbi0+b3Bjb2RlICE9 IEZVU0VfTk9USUZZX1JFUExZKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjY1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjMz OgorXkleSXZvaWQgKm5ld21idWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjY1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjM1 OgorXkleSWVyciA9IEVOT01FTTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MzY6 CiteSV5JbmV3bWJ1ZiA9IHJlYWxsb2MobWJ1ZiwgYnVmLT5zaXplKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI2Mzc6CiteSV5JaWYgKG5ld21idWYgPT0gTlVMTCkkCgpFUlJPUjog YnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMy NjU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2Mzc6CisgICAgICAg ICAgICAgICBpZiAobmV3bWJ1ZiA9PSBOVUxMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjY1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNjM4OgorXkleSV5JZ290byByZXBseV9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNjM5OgorXkleSW1idWYgPSBuZXdtYnVmOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjY0MToKK15JXkl0bXBidWYgPSBGVVNFX0JVRlZFQ19JTklUKGJ1Zi0+c2l6 ZSAtIHdyaXRlX2hlYWRlcl9zaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2 NDI6CiteSV5JdG1wYnVmLmJ1ZlswXS5tZW0gPSAoY2hhciAqKW1idWYgKyB3cml0ZV9oZWFkZXJf c2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjY1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NDQ6CiteSV5JcmVzID0gZnVz ZV9sbF9jb3B5X2Zyb21fcGlwZSgmdG1wYnVmLCAmYnVmdik7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNjQ1OgorXkleSWVyciA9IC1yZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjY2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNjQ2OgorXkleSWlmIChyZXMgPCAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI2Njc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY0NjoKKyAgICAgICAgICAgICAgIGlmIChyZXMg PCAwKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY2 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjQ3OgorXkleSV5JZ290 byByZXBseV9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjQ5OgorXkleSWlu ID0gbWJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjcx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NTA6CiteSX0kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjczOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NTI6CiteSWluYXJnID0gKHZvaWQgKikgJmluWzFd OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NzQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY1MzoKK15JaWYgKGluLT5vcGNvZGUg PT0gRlVTRV9XUklURSAmJiBzZS0+b3Aud3JpdGVfYnVmKSQKCkVSUk9SOiBicmFjZXMge30gYXJl IG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI2NzQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY1MzoKKyAgICAgICBpZiAoaW4tPm9wY29k ZSA9PSBGVVNFX1dSSVRFICYmIHNlLT5vcC53cml0ZV9idWYpClsuLi5dCisgICAgICAgZWxzZSBp ZiAoaW4tPm9wY29kZSA9PSBGVVNFX05PVElGWV9SRVBMWSkKWy4uLl0KKyAgICAgICBlbHNlClsu Li5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjc1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NTQ6CiteSV5JZG9fd3JpdGVfYnVm KHJlcSwgaW4tPm5vZGVpZCwgaW5hcmcsIGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjY3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNjU1OgorXkllbHNlIGlmIChpbi0+b3Bjb2RlID09IEZVU0VfTk9USUZZX1JFUExZKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzI2NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY1NToK KyAgICAgICBlbHNlIGlmIChpbi0+b3Bjb2RlID09IEZVU0VfTk9USUZZX1JFUExZKQpbLi4uXQor ICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI2Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY1NjoKK15J Xklkb19ub3RpZnlfcmVwbHkocmVxLCBpbi0+bm9kZWlkLCBpbmFyZywgYnVmKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjc4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NTc6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI2NTg6CiteSV5JZnVzZV9sbF9vcHNbaW4tPm9wY29kZV0uZnVuYyhyZXEsIGlu LT5ub2RlaWQsIGluYXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NjE6Cite SWZyZWUobWJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjYyOgorXklyZXR1 cm47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY4NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjY1OgorXklmdXNlX3JlcGx5X2Vy cihyZXEsIGVycik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjY3OgorXklpZiAo YnVmLT5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI2ODg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY2NzoKKyAgICAgICBpZiAoYnVmLT5mbGFncyAmIEZV U0VfQlVGX0lTX0ZEKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjY4Ogor XkleSWZ1c2VfbGxfY2xlYXJfcGlwZShzZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjY5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNjY5OgorXklnb3RvIG91dF9mcmVlOyQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBhZnRlciB0 aGF0ICcsJyAoY3R4OlZ4VikKIzI2OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjY3MjoKKyNkZWZpbmUgTExfT1BUSU9OKG4sbyx2KSBcCiAgICAgICAgICAgICAgICAg ICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojMjY5 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjcyOgorI2RlZmluZSBM TF9PUFRJT04obixvLHYpIFwKICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjY3MzoKK15JeyBuLCBvZmZzZXRvZihzdHJ1Y3QgZnVzZV9zZXNzaW9u LCBvKSwgdiB9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY5 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjc2OgorXklMTF9PUFRJ T04oImRlYnVnIiwgZGVidWcsIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY3 NzoKK15JTExfT1BUSU9OKCItZCIsIGRlYnVnLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI2Nzg6CiteSUxMX09QVElPTigiLS1kZWJ1ZyIsIGRlYnVnLCAxKSwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzAwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2Nzk6CiteSUxMX09QVElPTigiYWxsb3dfcm9vdCIsIGRl bnlfb3RoZXJzLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2ODA6CiteSUZV U0VfT1BUX0VORCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3 MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY4NToKK15JcHJpbnRm KCJ1c2luZyBGVVNFIGtlcm5lbCBpbnRlcmZhY2UgdmVyc2lvbiAlaS4laVxuIiwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzA3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2ODY6CiteSSAgICAgICBGVVNFX0tFUk5FTF9WRVJTSU9O LCBGVVNFX0tFUk5FTF9NSU5PUl9WRVJTSU9OKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNzA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI2ODc6CiteSWZ1c2VfbW91bnRfdmVyc2lvbigpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjY5MjoKK15JLyogVGhlc2UgYXJlIG5vdCBhbGwgb3B0aW9ucywgYnV0IHRoZSBv bmVzIHRoYXQgYXJlJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBv biBhIHNlcGFyYXRlIGxpbmUKIzI3MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjY5MjoKKyAgICAgICAvKiBUaGVzZSBhcmUgbm90IGFsbCBvcHRpb25zLCBidXQgdGhl IG9uZXMgdGhhdCBhcmUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI3MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY5MzoKK15JICAg cG90ZW50aWFsbHkgb2YgaW50ZXJlc3QgdG8gYW4gZW5kLXVzZXIgKi8kCgpXQVJOSU5HOiBCbG9j ayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyNzE0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2OTM6CisgICAgICAgLyogVGhlc2UgYXJlIG5vdCBh bGwgb3B0aW9ucywgYnV0IHRoZSBvbmVzIHRoYXQgYXJlCisgICAgICAgICAgcG90ZW50aWFsbHkg b2YgaW50ZXJlc3QgdG8gYW4gZW5kLXVzZXIgKi8KCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVz ZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMjcxNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjkzOgorICAgICAgICAgIHBvdGVudGlhbGx5IG9mIGlu dGVyZXN0IHRvIGFuIGVuZC11c2VyICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2 OTQ6CiteSXByaW50ZigkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MDI6CiteSXN0 cnVjdCBmdXNlX2xsX3BpcGUgKmxscDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3 MDQ6CiteSWlmIChzZS0+Z290X2luaXQgJiYgIXNlLT5nb3RfZGVzdHJveSkgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MjY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcwNToKK15JXklpZiAoc2UtPm9wLmRlc3Ryb3kpJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMjcyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzA1OgorICAg ICAgICAgICAgICAgaWYgKHNlLT5vcC5kZXN0cm95KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNzA2OgorXkleSV5Jc2UtPm9wLmRlc3Ryb3koc2UtPnVzZXJkYXRhKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MDc6CiteSX0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI3MDg6CiteSWxscCA9IHB0aHJlYWRfZ2V0c3BlY2lmaWMoc2UtPnBpcGVf a2V5KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzMwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MDk6CiteSWlmIChsbHAgIT0g TlVMTCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMyNzMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI3MDk6CisgICAgICAgaWYgKGxscCAhPSBOVUxMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjczMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNzEwOgorXkleSWZ1c2VfbGxfcGlwZV9mcmVlKGxscCk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjczMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzExOgorXklwdGhyZWFkX2tleV9kZWxldGUoc2UtPnBpcGVf a2V5KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzMzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MTI6CiteSXB0aHJlYWRfbXV0 ZXhfZGVzdHJveSgmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI3MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjcx MzoKK15JZnJlZShzZS0+Y3VzZV9kYXRhKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI3MTQ6CiteSWlmIChzZS0+ZmQgIT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjczNTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzE0OgorICAgICAgIGlmIChzZS0+ZmQgIT0gLTEpClsu Li5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzM2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MTU6CiteSV5JY2xvc2Uoc2UtPmZk KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzM3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MTY6CiteSWRlc3Ryb3lfbW91bnRf b3B0cyhzZS0+bW8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI3Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcxNzoKK15JZnJl ZShzZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc0NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzIzOgorXklzdHJ1Y3QgZnVz ZV9sbF9waXBlICpsbHAgPSBkYXRhOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI3NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjcy NDoKK15JZnVzZV9sbF9waXBlX2ZyZWUobGxwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI3Mjk6CiteSXJldHVybiBmdXNlX3Nlc3Npb25fcmVjZWl2ZV9idWZfaW50KHNlLCBidWYs IE5VTEwpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NTQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjczMzoKK15JXkleSV5JIHN0 cnVjdCBmdXNlX2NoYW4gKmNoKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI3NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjczNToK K15JaW50IGVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MzY6CiteSXNzaXpl X3QgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NTk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjczODoKK15Jc2l6ZV90IGJ1 ZnNpemUgPSBzZS0+YnVmc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3Mzk6 CiteSXN0cnVjdCBmdXNlX2xsX3BpcGUgKmxscDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNzYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI3NDA6CiteSXN0cnVjdCBmdXNlX2J1ZiB0bXBidWY7JAoKV0FSTklORzogbGluZSBvdmVy IDgwIGNoYXJhY3RlcnMKIzI3NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6Mjc0MjoKKyAgICAgICBpZiAoc2UtPmNvbm4ucHJvdG9fbWlub3IgPCAxNCB8fCAhKHNlLT5j b25uLndhbnQgJiBGVVNFX0NBUF9TUExJQ0VfUkVBRCkpCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNzYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI3NDI6CiteSWlmIChzZS0+Y29ubi5wcm90b19taW5vciA8IDE0IHx8ICEoc2UtPmNv bm4ud2FudCAmIEZVU0VfQ0FQX1NQTElDRV9SRUFEKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBu ZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNzYzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NDI6CisgICAgICAgaWYgKHNlLT5jb25uLnBy b3RvX21pbm9yIDwgMTQgfHwgIShzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfU1BMSUNFX1JFQUQp KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzQzOgorXkleSWdvdG8gZmFs bGJhY2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzQ1OgorXklsbHAgPSBmdXNl X2xsX2dldF9waXBlKHNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NDY6Cite SWlmIChsbHAgPT0gTlVMTCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI3NDY6CisgICAgICAgaWYgKGxscCA9PSBOVUxMKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzQ3OgorXkleSWdvdG8gZmFsbGJhY2s7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzQ5OgorXklpZiAobGxwLT5zaXplIDwgYnVmc2l6ZSkg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc1MDoKK15JXklpZiAobGxwLT5jYW5f Z3JvdykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc1MToKK15JXkleSXJlcyA9 IGZjbnRsKGxscC0+cGlwZVswXSwgRl9TRVRQSVBFX1NaLCBidWZzaXplKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzczOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI3NTI6CiteSV5JXklpZiAocmVzID09IC0xKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzUzOgorXkleSV5JXklsbHAtPmNhbl9ncm93ID0gMDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzc1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NTQ6CiteSV5JXkleSXJlcyA9IGdyb3df cGlwZV90b19tYXgobGxwLT5waXBlWzBdKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNzc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI3NTU6CiteSV5JXkleSWlmIChyZXMgPiAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI3NzY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc1NToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAocmVzID4gMCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI3Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc1 NjoKK15JXkleSV5JXklsbHAtPnNpemUgPSByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjc3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNzU3OgorXkleSV5JXklnb3RvIGZhbGxiYWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mjc1ODoKK15JXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3 NTk6CiteSV5JXklsbHAtPnNpemUgPSByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjc4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNzYwOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NjE6CiteSV5J aWYgKGxscC0+c2l6ZSA8IGJ1ZnNpemUpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjc4MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzYxOgorICAgICAgICAgICAgICAgaWYgKGxscC0+c2l6ZSA8 IGJ1ZnNpemUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NjI6CiteSV5J Xklnb3RvIGZhbGxiYWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc2MzoKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3ODY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc2NToKK15JcmVzID0gc3BsaWNlKGNo ID8gY2gtPmZkIDogc2UtPmZkLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI3ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc2NjoK K15JXkkgICAgIE5VTEwsIGxscC0+cGlwZVsxXSwgTlVMTCwgYnVmc2l6ZSwgMCk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzY3OgorXkllcnIgPSBlcnJubzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzkwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI3Njk6CiteSWlmIChmdXNlX3Nlc3Npb25fZXhpdGVkKHNlKSkk CgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3Rh dGVtZW50CiMyNzkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3Njk6 CisgICAgICAgaWYgKGZ1c2Vfc2Vzc2lvbl9leGl0ZWQoc2UpKQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNzcwOgorXkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6Mjc3MjoKK15JaWYgKHJlcyA9PSAtMSkgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6Mjc3MzoKK15JXklpZiAoZXJyID09IEVOT0RFVikgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjc3NDoKK15JXkleSS8qIEZpbGVzeXN0ZW0gd2FzIHVubW91bnRl ZCwgb3IgY29ubmVjdGlvbiB3YXMgYWJvcnRlZCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVz ZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyNzk1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NzQ6CisgICAgICAgICAgICAgICAgICAgICAgIC8qIEZp bGVzeXN0ZW0gd2FzIHVubW91bnRlZCwgb3IgY29ubmVjdGlvbiB3YXMgYWJvcnRlZAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzc1OgorXkleSV5JICAgdmlhIC9zeXMvZnMvZnVzZS9j b25uZWN0aW9ucyAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVl bnQgbGluZXMKIzI3OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc3 NToKKyAgICAgICAgICAgICAgICAgICAgICAgLyogRmlsZXN5c3RlbSB3YXMgdW5tb3VudGVkLCBv ciBjb25uZWN0aW9uIHdhcyBhYm9ydGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgIHZpYSAv c3lzL2ZzL2Z1c2UvY29ubmVjdGlvbnMgKi8KCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMjc5NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzc1OgorICAgICAgICAgICAgICAgICAgICAgICAgICB2aWEg L3N5cy9mcy9mdXNlL2Nvbm5lY3Rpb25zICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNzk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI3NzY6CiteSV5JXklmdXNlX3Nlc3Npb25fZXhpdChzZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNzc3OgorXkleSV5JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjc5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNzc4OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyODAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3Nzk6 CiteSV5JaWYgKGVyciAhPSBFSU5UUiAmJiBlcnIgIT0gRUFHQUlOKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI4MDA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc3OToKKyAgICAgICAgICAgICAg IGlmIChlcnIgIT0gRUlOVFIgJiYgZXJyICE9IEVBR0FJTikKWy4uLl0KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjc4MDoKK15JXkleSXBlcnJvcigiZnVzZTogc3BsaWNlIGZyb20gZGV2 aWNlIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgwMjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzgxOgorXkleSXJldHVybiAt ZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc4MjoKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc4NDoKK15JaWYgKHJlcyA8IHNpemVvZihzdHJ1Y3QgZnVz ZV9pbl9oZWFkZXIpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjgwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzg1OgorXkle SWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgInNob3J0IHNwbGljZSBmcm9tIGZ1c2UgZGV2aWNlXG4i KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODA3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3ODY6CiteSV5JcmV0dXJuIC1FSU87 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgwODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzg3OgorXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxMDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNzg5OgorXkl0bXBidWYgPSAoc3RydWN0IGZ1c2VfYnVmKSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzkwOgorXkleSS5zaXplID0gcmVzLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc5MToKK15JXkkuZmxhZ3MgPSBGVVNFX0JVRl9J U19GRCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODEzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3OTI6CiteSV5JLmZkID0gbGxw LT5waXBlWzBdLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc5MzoKK15JfTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODE2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3OTU6CiteSS8qJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNzk2OgorXkkgKiBEb24ndCBib3RoZXIgd2l0aCB6ZXJvIGNvcHkgZm9y IHNtYWxsIHJlcXVlc3RzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI4MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc5NzoKK15J ICogZnVzZV9sb29wX210KCkgbmVlZHMgdG8gY2hlY2sgZm9yIEZPUkdFVCBzbyB0aGlzIG1vcmUg dGhhbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc5ODoKK15JICoganVzdCBhbiBv cHRpbWl6YXRpb24uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjgyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzk5OgorXkkgKi8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODIxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MDA6CiteSWlmIChyZXMgPCBzaXplb2Yo c3RydWN0IGZ1c2VfaW5faGVhZGVyKSArJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjgyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy ODAxOgorXkkgICAgc2l6ZW9mKHN0cnVjdCBmdXNlX3dyaXRlX2luKSArIHBhZ2VzaXplKSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgyMzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODAyOgorXkleSXN0cnVjdCBmdXNlX2J1ZnZl YyBzcmMgPSB7IC5idWZbMF0gPSB0bXBidWYsIC5jb3VudCA9IDEgfTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4MDM6CiteSV5Jc3RydWN0IGZ1c2VfYnVmdmVjIGRzdCA9IHsgLmNv dW50ID0gMSB9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjgwNToKK15JXklpZiAo IWJ1Zi0+bWVtKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjgyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODA2OgorXkleSV5J YnVmLT5tZW0gPSBtYWxsb2Moc2UtPmJ1ZnNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjgwNzoKK15JXkleSWlmICghYnVmLT5tZW0pIHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI4MDg6CiteSV5JXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODMwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MDk6CiteSV5JXkleSV5JImZ1c2U6IGZhaWxlZCB0byBh bGxvY2F0ZSByZWFkIGJ1ZmZlclxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjgzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy ODEwOgorXkleSV5JXklyZXR1cm4gLUVOT01FTTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyODMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI4MTE6CiteSV5JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjgzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODEyOgor XkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODM0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MTM6CiteSV5JYnVmLT5zaXpl ID0gc2UtPmJ1ZnNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjgzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODE0OgorXkle SWJ1Zi0+ZmxhZ3MgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI4MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjgxNToKK15J Xklkc3QuYnVmWzBdID0gKmJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyODM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MTc6 CiteSV5JcmVzID0gZnVzZV9idWZfY29weSgmZHN0LCAmc3JjLCAwKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4MTg6CiteSV5JaWYgKHJlcyA8IDApIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4MTk6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNl OiBjb3B5IGZyb20gcGlwZTogJXNcbiIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjg0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy ODIwOgorXkleSV5JXklzdHJlcnJvcigtcmVzKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjg0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyODIxOgorXkleSV5JZnVzZV9sbF9jbGVhcl9waXBlKHNlKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4MjI6CiteSV5JXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjgyMzoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyODI0OgorXkleSWlmIChyZXMgPCB0bXBidWYuc2l6ZSkgeyQKCldBUk5JTkc6IGxpbmUgb3Zl ciA4MCBjaGFyYWN0ZXJzCiMyODQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI4MjU6CisgICAgICAgICAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwg ImZ1c2U6IGNvcHkgZnJvbSBwaXBlOiBzaG9ydCByZWFkXG4iKTsKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjgyNToKK15JXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IGNv cHkgZnJvbSBwaXBlOiBzaG9ydCByZWFkXG4iKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyODQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI4MjY6CiteSV5JXklmdXNlX2xsX2NsZWFyX3BpcGUoc2UpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjgyNzoKK15JXkleSXJldHVybiAtRUlPOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjgyODoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyODI5OgorXkleSWFzc2VydChyZXMgPT0gdG1wYnVmLnNpemUpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjgzMToKK15JfSBlbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI4MzI6CiteSV5JLyogRG9uJ3Qgb3ZlcndyaXRlIGJ1Zi0+bWVtLCBhcyB0aGF0IHdv dWxkIGNhdXNlIGEgbGVhayAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI4NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjgzMzoK K15JXklidWYtPmZkID0gdG1wYnVmLmZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjgzNDoKK15JXklidWYtPmZsYWdzID0gdG1wYnVmLmZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjgzNToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI4NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjgz NjoKK15JYnVmLT5zaXplID0gdG1wYnVmLnNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjg1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyODM4OgorXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 Mjg0MjoKK15JaWYgKCFidWYtPm1lbSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 Mjg0MzoKK15JXklidWYtPm1lbSA9IG1hbGxvYyhzZS0+YnVmc2l6ZSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg2NTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyODQ0OgorXkleSWlmICghYnVmLT5tZW0pIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODY2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI4NDU6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg2NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODQ2OgorXkleSV5JXkkiZnVzZTogZmFpbGVk IHRvIGFsbG9jYXRlIHJlYWQgYnVmZmVyXG4iKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyODY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI4NDc6CiteSV5JXklyZXR1cm4gLUVOT01FTTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI4NDg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI4NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg0OToK K15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NzM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg1MjoKK15JcmVzID0gcmVhZChj aCA/IGNoLT5mZCA6IHNlLT5mZCwgYnVmLT5tZW0sIHNlLT5idWZzaXplKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODc0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI4NTM6CiteSWVyciA9IGVycm5vOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjg1NToKK15JaWYgKGZ1c2Vfc2Vzc2lvbl9leGl0ZWQoc2UpKSQKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzI4NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg1NToKKyAg ICAgICBpZiAoZnVzZV9zZXNzaW9uX2V4aXRlZChzZSkpClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI4NTY6CiteSV5JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjg3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyODU3OgorXklpZiAocmVzID09IC0xKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjg3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyODU4OgorXkleSS8qIEVOT0VOVCBtZWFucyB0aGUgb3BlcmF0aW9uIHdhcyBpbnRl cnJ1cHRlZCwgaXQncyBzYWZlJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGlu ZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzI4Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6Mjg1ODoKKyAgICAgICAgICAgICAgIC8qIEVOT0VOVCBtZWFucyB0aGUgb3Bl cmF0aW9uIHdhcyBpbnRlcnJ1cHRlZCwgaXQncyBzYWZlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI4NTk6CiteSV5JICAgdG8gcmVzdGFydCAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1l bnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzI4ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjg1OToKKyAgICAgICAgICAgICAgIC8qIEVOT0VOVCBtZWFucyB0 aGUgb3BlcmF0aW9uIHdhcyBpbnRlcnJ1cHRlZCwgaXQncyBzYWZlCisgICAgICAgICAgICAgICAg ICB0byByZXN0YXJ0ICovCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAq LyBvbiBhIHNlcGFyYXRlIGxpbmUKIzI4ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mjg1OToKKyAgICAgICAgICAgICAgICAgIHRvIHJlc3RhcnQgKi8KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg2MDoKK15JXklpZiAoZXJyID09IEVOT0VOVCkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiMyODgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NjA6CisgICAg ICAgICAgICAgICBpZiAoZXJyID09IEVOT0VOVCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mjg2MToKK15JXkleSWdvdG8gcmVzdGFydDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI4NjM6CiteSV5JaWYgKGVyciA9PSBFTk9ERVYpIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4NjQ6CiteSV5JXkkvKiBGaWxlc3lzdGVtIHdhcyB1bm1vdW50ZWQs IG9yIGNvbm5lY3Rpb24gd2FzIGFib3J0ZWQkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2Ug YSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjg4NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODY0OgorICAgICAgICAgICAgICAgICAgICAgICAvKiBGaWxl c3lzdGVtIHdhcyB1bm1vdW50ZWQsIG9yIGNvbm5lY3Rpb24gd2FzIGFib3J0ZWQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg2NToKK15JXkleSSAgIHZpYSAvc3lzL2ZzL2Z1c2UvY29u bmVjdGlvbnMgKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50 IGxpbmVzCiMyODg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NjU6 CisgICAgICAgICAgICAgICAgICAgICAgIC8qIEZpbGVzeXN0ZW0gd2FzIHVubW91bnRlZCwgb3Ig Y29ubmVjdGlvbiB3YXMgYWJvcnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICB2aWEgL3N5 cy9mcy9mdXNlL2Nvbm5lY3Rpb25zICovCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0 cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzI4ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjg2NToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdmlhIC9z eXMvZnMvZnVzZS9jb25uZWN0aW9ucyAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjg4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy ODY2OgorXkleSV5JZnVzZV9zZXNzaW9uX2V4aXQoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mjg2NzoKK15JXkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6Mjg2ODoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjg5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODY5Ogor XkleSS8qIEVycm9ycyBvY2N1cnJpbmcgZHVyaW5nIG5vcm1hbCBvcGVyYXRpb246IEVJTlRSIChy ZWFkJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFy YXRlIGxpbmUKIzI4OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg2 OToKKyAgICAgICAgICAgICAgIC8qIEVycm9ycyBvY2N1cnJpbmcgZHVyaW5nIG5vcm1hbCBvcGVy YXRpb246IEVJTlRSIChyZWFkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyODkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NzA6Cite SV5JICAgaW50ZXJydXB0ZWQpLCBFQUdBSU4gKG5vbmJsb2NraW5nIEkvTyksIEVOT0RFViAoZmls ZXN5c3RlbSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGlu ZXMKIzI4OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg3MDoKKyAg ICAgICAgICAgICAgIC8qIEVycm9ycyBvY2N1cnJpbmcgZHVyaW5nIG5vcm1hbCBvcGVyYXRpb246 IEVJTlRSIChyZWFkCisgICAgICAgICAgICAgICAgICBpbnRlcnJ1cHRlZCksIEVBR0FJTiAobm9u YmxvY2tpbmcgSS9PKSwgRU5PREVWIChmaWxlc3lzdGVtCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI4NzE6CiteSV5JICAgdW1vdW50ZWQpICovJAoKV0FSTklORzogQmxvY2sgY29tbWVu dHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMyODkyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NzE6CisgICAgICAgICAgICAgICAgICB1bW91 bnRlZCkgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg3MjoKK15JXklpZiAoZXJy ICE9IEVJTlRSICYmIGVyciAhPSBFQUdBSU4pJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjg5MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODcyOgorICAgICAgICAgICAgICAgaWYgKGVyciAhPSBF SU5UUiAmJiBlcnIgIT0gRUFHQUlOKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyODczOgorXkleSV5JcGVycm9yKCJmdXNlOiByZWFkaW5nIGRldmljZSIpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg3NDoKK15JXklyZXR1cm4gLWVycjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODk2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI4NzU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyODk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI4NzY6CiteSWlmICgoc2l6ZV90KSByZXMgPCBzaXplb2Yoc3RydWN0IGZ1c2VfaW5faGVh ZGVyKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg3NzoKK15JXklmdXNlX2xv ZyhGVVNFX0xPR19FUlIsICJzaG9ydCByZWFkIG9uIGZ1c2UgZGV2aWNlXG4iKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODk5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4Nzg6CiteSV5JcmV0dXJuIC1FSU87JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkwMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODc5OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjkwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyODgxOgorXklidWYtPnNpemUgPSByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjkwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyODgzOgorXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 Mjg4NzoKK15JXkleSV5JICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfbG93bGV2ZWxfb3BzICpvcCwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTA5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4ODg6CiteSV5JXkleSSAgICAgIHNpemVf dCBvcF9zaXplLCB2b2lkICp1c2VyZGF0YSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyOTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI4OTA6CiteSWludCBlcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjkxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODkxOgor XklzdHJ1Y3QgZnVzZV9zZXNzaW9uICpzZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyOTEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI4OTI6CiteSXN0cnVjdCBtb3VudF9vcHRzICptbzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI4OTQ6CiteSWlmIChzaXplb2Yoc3RydWN0IGZ1c2VfbG93bGV2ZWxfb3BzKSA8IG9w X3NpemUpIHskCgpFUlJPUjogbGluZSBvdmVyIDkwIGNoYXJhY3RlcnMKIzI5MTY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg5NToKKyAgICAgICAgICAgICAgIGZ1c2Vf bG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IHdhcm5pbmc6IGxpYnJhcnkgdG9vIG9sZCwgc29tZSBv cGVyYXRpb25zIG1heSBub3Qgd29ya1xuIik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyOTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI4OTU6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogd2FybmluZzogbGlicmFy eSB0b28gb2xkLCBzb21lIG9wZXJhdGlvbnMgbWF5IG5vdCB3b3JrXG4iKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTE3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI4OTY6CiteSV5Jb3Bfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZnVz ZV9sb3dsZXZlbF9vcHMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI5MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg5NzoKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MjA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg5OToKK15JaWYgKGFyZ3MtPmFyZ2Mg PT0gMCkgeyQKCkVSUk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojMjkyMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTAwOgorICAgICAgICAgICAgICAgZnVzZV9s b2coRlVTRV9MT0dfRVJSLCAiZnVzZTogZW1wdHkgYXJndiBwYXNzZWQgdG8gZnVzZV9zZXNzaW9u X25ldygpLlxuIik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy OTIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MDA6CiteSV5JZnVz ZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogZW1wdHkgYXJndiBwYXNzZWQgdG8gZnVzZV9zZXNz aW9uX25ldygpLlxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjkyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTAxOgorXkle SXJldHVybiBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI5MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkwMjoKK15JfSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MjU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkwNDoKK15Jc2UgPSAoc3RydWN0IGZ1c2Vf c2Vzc2lvbiAqKSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBmdXNlX3Nlc3Npb24pKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTI2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MDU6CiteSWlmIChzZSA9PSBOVUxMKSB7JAoKV0FS TklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzI5Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjkwNjoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9H X0VSUiwgImZ1c2U6IGZhaWxlZCB0byBhbGxvY2F0ZSBmdXNlIG9iamVjdFxuIik7CgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTI3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MDY6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAi ZnVzZTogZmFpbGVkIHRvIGFsbG9jYXRlIGZ1c2Ugb2JqZWN0XG4iKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI5MDc6CiteSV5JZ290byBvdXQxOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Mjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjkwODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI5MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjkw OToKK15Jc2UtPmZkID0gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjkzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTEwOgor XklzZS0+Y29ubi5tYXhfd3JpdGUgPSBVSU5UX01BWDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI5MTE6CiteSXNlLT5jb25uLm1heF9yZWFkYWhlYWQgPSBVSU5UX01BWDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTM6CiteSS8qIFBhcnNlIG9wdGlvbnMgKi8kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTQ6CiteSWlmKGZ1c2Vfb3B0X3BhcnNlKGFy Z3MsIHNlLCBmdXNlX2xsX29wdHMsIE5VTEwpID09IC0xKSQKCkVSUk9SOiBzcGFjZSByZXF1aXJl ZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiMyOTM1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTQ6CisgICAgICAgaWYoZnVzZV9vcHRfcGFyc2UoYXJn cywgc2UsIGZ1c2VfbGxfb3B0cywgTlVMTCkgPT0gLTEpCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBu ZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyOTM1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTQ6CisgICAgICAgaWYoZnVzZV9vcHRfcGFy c2UoYXJncywgc2UsIGZ1c2VfbGxfb3B0cywgTlVMTCkgPT0gLTEpClsuLi5dCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI5MTU6CiteSV5JZ290byBvdXQyOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjkxNjoKK15JaWYoc2UtPmRlbnlfb3RoZXJzKSB7JAoKRVJST1I6IHNw YWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzI5Mzc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkxNjoKKyAgICAgICBpZihzZS0+ZGVu eV9vdGhlcnMpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5 Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkxNzoKK15JXkkvKiBB bGxvd2luZyBhY2Nlc3Mgb25seSBieSByb290IGlzIGRvbmUgYnkgaW5zdHJ1Y3RpbmckCgpXQVJO SU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQoj MjkzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTE3OgorICAgICAg ICAgICAgICAgLyogQWxsb3dpbmcgYWNjZXNzIG9ubHkgYnkgcm9vdCBpcyBkb25lIGJ5IGluc3Ry dWN0aW5nCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTg6CiteSV5JICoga2VybmVs IHRvIGFsbG93IGFjY2VzcyBieSBldmVyeW9uZSwgYW5kIHRoZW4gcmVzdHJpY3RpbmckCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTk6CiteSV5JICogYWNjZXNzIHRvIHJvb3QgYW5k IG1vdW50cG9pbnQgb3duZXIgaW4gbGliZnVzZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyOTQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI5MjA6CiteSV5JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjk0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTIxOgor XkleSS8vIFdlIG1heSBiZSBhZGRpbmcgdGhlIG9wdGlvbiBhIHNlY29uZCB0aW1lLCBidXQkCgpF UlJPUjogZG8gbm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzI5NDI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkyMToKKyAgICAgICAgICAgICAgIC8vIFdlIG1heSBiZSBh ZGRpbmcgdGhlIG9wdGlvbiBhIHNlY29uZCB0aW1lLCBidXQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjkyMjoKK15JXkkvLyB0aGF0IGRvZXNuJ3QgaHVydC4kCgpFUlJPUjogZG8gbm90 IHVzZSBDOTkgLy8gY29tbWVudHMKIzI5NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjkyMjoKKyAgICAgICAgICAgICAgIC8vIHRoYXQgZG9lc24ndCBodXJ0LgoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTIzOgorXkleSWlmKGZ1c2Vfb3B0X2FkZF9hcmco YXJncywgIi1vYWxsb3dfb3RoZXIiKSA9PSAtMSkkCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYmVm b3JlIHRoZSBvcGVuIHBhcmVudGhlc2lzICcoJwojMjk0NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyOTIzOgorICAgICAgICAgICAgICAgaWYoZnVzZV9vcHRfYWRkX2Fy ZyhhcmdzLCAiLW9hbGxvd19vdGhlciIpID09IC0xKQoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjk0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTIzOgorICAgICAgICAgICAgICAgaWYoZnVzZV9v cHRfYWRkX2FyZyhhcmdzLCAiLW9hbGxvd19vdGhlciIpID09IC0xKQpbLi4uXQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTI0OgorXkleSV5JZ290byBvdXQyOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjkyNToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjkyNjoKK15JbW8gPSBwYXJzZV9tb3VudF9vcHRzKGFyZ3MpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjkyNzoKK15JaWYgKG1vID09IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjk0ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTI3OgorICAgICAgIGlmIChtbyA9 PSBOVUxMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Mjk0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTI4OgorXkleSWdv dG8gb3V0MzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTUx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MzA6CiteSWlmKGFyZ3Mt PmFyZ2MgPT0gMSAmJiQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFy ZW50aGVzaXMgJygnCiMyOTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI5MzA6CisgICAgICAgaWYoYXJncy0+YXJnYyA9PSAxICYmCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI5MzE6CiteSSAgIGFyZ3MtPmFyZ3ZbMF1bMF0gPT0gJy0nKSB7JAoKV0FSTklO RzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzI5NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjkzMjoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0VS UiwgImZ1c2U6IHdhcm5pbmc6IGFyZ3ZbMF0gbG9va3MgbGlrZSBhbiBvcHRpb24sIGJ1dCAiCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTUzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MzI6CiteSV5JZnVzZV9sb2coRlVTRV9MT0df RVJSLCAiZnVzZTogd2FybmluZzogYXJndlswXSBsb29rcyBsaWtlIGFuIG9wdGlvbiwgYnV0ICIk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MzM6CiteSV5JXkkid2lsbCBiZSBpZ25v cmVkXG4iKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MzQ6CiteSX0gZWxzZSBp ZiAoYXJncy0+YXJnYyAhPSAxKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjk1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTM1 OgorXkleSWludCBpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI5NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkzNjoKK15JXklm dXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiB1bmtub3duIG9wdGlvbihzKTogYCIpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NTg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkzNzoKK15JXklmb3IoaSA9IDE7IGkgPCBhcmdz LT5hcmdjLTE7IGkrKykkCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICctJyAo Y3R4OlZ4VikKIzI5NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjkz NzoKKyAgICAgICAgICAgICAgIGZvcihpID0gMTsgaSA8IGFyZ3MtPmFyZ2MtMTsgaSsrKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSByZXF1 aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiMyOTU4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5Mzc6CisgICAgICAgICAgICAgICBmb3IoaSA9IDE7 IGkgPCBhcmdzLT5hcmdjLTE7IGkrKykKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBm b3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI5NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjkzNzoKKyAgICAgICAgICAgICAgIGZvcihpID0gMTsgaSA8IGFy Z3MtPmFyZ2MtMTsgaSsrKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjk1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTM4 OgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiJXMgIiwgYXJncy0+YXJndltpXSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTM5OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9H X0VSUiwgIiVzJ1xuIiwgYXJncy0+YXJndltpXSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjk2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyOTQwOgorXkleSWdvdG8gb3V0NDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyOTYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI5NDE6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy OTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5NDM6CiteSWlmIChz ZS0+ZGVidWcpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBv ZiB0aGlzIHN0YXRlbWVudAojMjk2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyOTQzOgorICAgICAgIGlmIChzZS0+ZGVidWcpClsuLi5dCgpXQVJOSU5HOiBsaW5lIG92 ZXIgODAgY2hhcmFjdGVycwojMjk2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyOTQ0OgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJGVVNF IGxpYnJhcnkgdmVyc2lvbjogJXNcbiIsIFBBQ0tBR0VfVkVSU0lPTik7CgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI5NDQ6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJGVVNF IGxpYnJhcnkgdmVyc2lvbjogJXNcbiIsIFBBQ0tBR0VfVkVSU0lPTik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyOTQ2OgorXklzZS0+YnVmc2l6ZSA9IEZVU0VfTUFYX01BWF9QQUdF UyAqIGdldHBhZ2VzaXplKCkgKyQKCkVSUk9SOiB1c2UgcWVtdV9yZWFsX2hvc3RfcGFnZV9zaXpl IGluc3RlYWQgb2YgZ2V0cGFnZXNpemUoKQojMjk2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyOTQ2OgorICAgICAgIHNlLT5idWZzaXplID0gRlVTRV9NQVhfTUFYX1BB R0VTICogZ2V0cGFnZXNpemUoKSArCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyOTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5NDc6 CiteSV5JRlVTRV9CVUZGRVJfSEVBREVSX1NJWkU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjk3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyOTQ5OgorXklsaXN0X2luaXRfcmVxKCZzZS0+bGlzdCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyOTUwOgorXklsaXN0X2luaXRfcmVxKCZzZS0+aW50ZXJydXB0cyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk3MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTUxOgorXklsaXN0X2luaXRfbnJlcSgmc2Ut Pm5vdGlmeV9saXN0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyOTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5NTI6CiteSXNl LT5ub3RpZnlfY3RyID0gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5NTM6Cite SWZ1c2VfbXV0ZXhfaW5pdCgmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6Mjk1NToKK15JZXJyID0gcHRocmVhZF9rZXlfY3JlYXRlKCZzZS0+cGlwZV9rZXksIGZ1c2Vf bGxfcGlwZV9kZXN0cnVjdG9yKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyOTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5NTY6 CiteSWlmIChlcnIpIHskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjk3ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTU3OgorICAgICAgICAgICAg ICAgZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQg c3BlY2lmaWMga2V5OiAlc1xuIiwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI5Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk1NzoK K15JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBmYWlsZWQgdG8gY3JlYXRlIHRocmVh ZCBzcGVjaWZpYyBrZXk6ICVzXG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI5Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk1 ODoKK15JXkleSXN0cmVycm9yKGVycikpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 Mjk1OToKK15JXklnb3RvIG91dDU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjk4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTYw OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk4Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTYyOgorXkltZW1jcHkoJnNl LT5vcCwgb3AsIG9wX3NpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI5ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk2MzoK K15Jc2UtPm93bmVyID0gZ2V0dWlkKCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjk4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy OTY0OgorXklzZS0+dXNlcmRhdGEgPSB1c2VyZGF0YTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI5NjY6CiteSXNlLT5tbyA9IG1vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6Mjk2NzoKK15JcmV0dXJuIHNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI5OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk3 MDoKK15JcHRocmVhZF9tdXRleF9kZXN0cm95KCZzZS0+bG9jayk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyOTcyOgorXklmdXNlX29wdF9mcmVlX2FyZ3MoYXJncyk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk5NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTc0OgorXklmcmVlKG1vKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI5NzY6CiteSWZyZWUoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mjk3ODoKK15JcmV0dXJuIE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzAwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyOTgzOgorXklpbnQgZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzAwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTg1 OgorXkkvKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk4NjoKK15JICogTWFrZSBz dXJlIGZpbGUgZGVzY3JpcHRvcnMgMCwgMSBhbmQgMiBhcmUgb3Blbiwgb3RoZXJ3aXNlIGNoYW9z JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAwODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTg3OgorXkkgKiB3b3VsZCBlbnN1ZS4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDA5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5ODg6CiteSSAqLyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjk4OToKK15JZG8geyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6Mjk5MDoKK15JXklmZCA9IG9wZW4oIi9kZXYvbnVsbCIsIE9fUkRXUik7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAxMjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTkxOgorXkleSWlmIChmZCA+IDIpJAoKRVJST1I6IGJy YWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzAx MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTkxOgorICAgICAgICAg ICAgICAgaWYgKGZkID4gMikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk5 MjoKK15JXkleSWNsb3NlKGZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMDE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5OTM6 CiteSX0gd2hpbGUgKGZkID49IDAgJiYgZmQgPD0gMik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzAxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyOTk1OgorXkkvKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMwMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk5NjoK K15JICogVG8gYWxsb3cgRlVTRSBkYWVtb25zIHRvIHJ1biB3aXRob3V0IHByaXZpbGVnZXMsIHRo ZSBjYWxsZXIgbWF5IG9wZW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5OTc6Cite SSAqIC9kZXYvZnVzZSBiZWZvcmUgbGF1bmNoaW5nIHRoZSBmaWxlIHN5c3RlbSBhbmQgcGFzcyBv biB0aGUgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk5ODoKK15JICogZGVz Y3JpcHRvciBieSBzcGVjaWZ5aW5nIC9kZXYvZmQvTiBhcyB0aGUgbW91bnQgcG9pbnQuIE5vdGUg dGhhdCB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDIw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5OTk6CiteSSAqIHBhcmVu dCBwcm9jZXNzIHRha2VzIGNhcmUgb2YgcGVyZm9ybWluZyB0aGUgbW91bnQgaW4gdGhpcyBjYXNl LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMjE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAwMDoKK15JICovJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAyMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDAxOgorXklmZCA9IGZ1c2VfbW50X3BhcnNlX2Z1c2VfZmQo bW91bnRwb2ludCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzAyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDAyOgorXklpZiAo ZmQgIT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MDI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMDM6CiteSV5JaWYg KGZjbnRsKGZkLCBGX0dFVEZEKSA9PSAtMSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMwMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MzAwNDoKK15JXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjMwMDU6CiteSV5JXkleSSJmdXNlOiBJbnZhbGlkIGZpbGUgZGVzY3JpcHRv ciAvZGV2L2ZkLyV1XG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMwMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAwNjoKK15J XkleSV5JZmQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAwNzoKK15JXkleSXJl dHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDI5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMDg6CiteSV5JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMzA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAwOToKK15JXklzZS0+ZmQgPSBmZDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDMxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMTA6CiteSV5JcmV0dXJuIDA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAzMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDExOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzAzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzozMDEzOgorXkkvKiBPcGVuIGNoYW5uZWwgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMDM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjMwMTQ6CiteSWZkID0gZnVzZV9rZXJuX21vdW50KG1vdW50cG9pbnQsIHNlLT5tbyk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAzNjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDE1OgorXklpZiAoZmQgPT0gLTEpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMzAzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDE1Ogor ICAgICAgIGlmIChmZCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MzAxNjoKK15JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzAzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDE3 OgorXklzZS0+ZmQgPSBmZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMTk6Cite SS8qIFNhdmUgbW91bnRwb2ludCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAy MDoKK15Jc2UtPm1vdW50cG9pbnQgPSBzdHJkdXAobW91bnRwb2ludCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzozMDIxOgorXklpZiAoc2UtPm1vdW50cG9pbnQgPT0gTlVMTCkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiMzMDQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMjE6Cisg ICAgICAgaWYgKHNlLT5tb3VudHBvaW50ID09IE5VTEwpClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjMwMjI6CiteSV5JZ290byBlcnJvcl9vdXQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzozMDI0OgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjMwMjc6CiteSWZ1c2Vfa2Vybl91bm1vdW50KG1vdW50cG9pbnQsIGZkKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQ5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMjg6CiteSXJldHVybiAtMTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDU0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjMwMzM6CiteSXJldHVybiBzZS0+ZmQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA1OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzozMDM4OgorXklpZiAoc2UtPm1vdW50cG9pbnQgIT0gTlVMTCkgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAzOToKK15JXklmdXNlX2tlcm5fdW5tb3Vu dChzZS0+bW91bnRwb2ludCwgc2UtPmZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMDYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjMwNDA6CiteSV5JZnJlZShzZS0+bW91bnRwb2ludCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzA2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzozMDQxOgorXkleSXNlLT5tb3VudHBvaW50ID0gTlVMTDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjMwNDI6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMDY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjMwNDg6CiteSWNoYXIgKmJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMDcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNDk6 CiteSXNpemVfdCBidWZzaXplID0gMTAyNDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMDcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjMwNTA6CiteSWNoYXIgcGF0aFsxMjhdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MzA1MToKK15JaW50IHJldDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNTI6Cite SWludCBmZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDc0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNTM6CiteSXVuc2lnbmVk IGxvbmcgcGlkID0gcmVxLT5jdHgucGlkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MzA1NDoKK15JY2hhciAqczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNTY6Cite SXNwcmludGYocGF0aCwgIi9wcm9jLyVsdS90YXNrLyVsdS9zdGF0dXMiLCBwaWQsIHBpZCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA4MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDU5OgorXklidWYgPSBtYWxsb2MoYnVmc2l6 ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA4MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDYwOgorXklpZiAoYnVmID09IE5V TEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlz IHN0YXRlbWVudAojMzA4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoz MDYwOgorICAgICAgIGlmIChidWYgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MzA2MToKK15JXklyZXR1cm4gLUVOT01FTTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjMwNjM6CiteSXJldCA9IC1FSU87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzA4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzozMDY0OgorXklmZCA9IG9wZW4ocGF0aCwgT19SRE9OTFkpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzA2NToKK15JaWYgKGZkID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzMwODY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA2NToKKyAgICAgICBpZiAoZmQgPT0g LTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNjY6CiteSV5JZ290byBv dXRfZnJlZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNjg6CiteSXJldCA9IHJl YWQoZmQsIGJ1ZiwgYnVmc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzA5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDY5 OgorXkljbG9zZShmZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzA5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDcwOgorXklp ZiAocmV0IDwgMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMwOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA3MToKK15JXkly ZXQgPSAtRUlPOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA3MjoKK15JXklnb3Rv IG91dF9mcmVlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA3MzoKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwOTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA3NToKK15JaWYgKChzaXplX3QpcmV0ID09IGJ1 ZnNpemUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDk3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNzY6CiteSV5JZnJlZShi dWYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwOTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA3NzoKK15JXklidWZzaXplICo9 IDQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA5OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDc4OgorXkleSWdvdG8gcmV0cnk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEwMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDc5OgorXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEwMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzozMDgxOgorXklyZXQgPSAtRUlPOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MzA4MjoKK15JcyA9IHN0cnN0cihidWYsICJcbkdyb3VwczoiKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTA0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwODM6CiteSWlmIChzID09IE5VTEwpJAoKRVJST1I6 IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAoj MzEwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDgzOgorICAgICAg IGlmIChzID09IE5VTEwpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMTA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwODQ6 CiteSV5JZ290byBvdXRfZnJlZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMTA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwODY6 CiteSXMgKz0gODskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MTA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwODc6CiteSXJldCA9 IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEwOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDg4OgorXkl3aGlsZSAoMSkgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA4OToKK15JXkljaGFyICplbmQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExMTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDkwOgorXkleSXVuc2lnbmVkIGxvbmcgdmFsID0g c3RydG91bChzLCAmZW5kLCAwKTskCgpFUlJPUjogY29uc2lkZXIgdXNpbmcgcWVtdV9zdHJ0b3Vs IGluIHByZWZlcmVuY2UgdG8gc3RydG91bAojMzExMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzozMDkwOgorICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2YWwgPSBz dHJ0b3VsKHMsICZlbmQsIDApOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzExMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDkxOgor XkleSWlmIChlbmQgPT0gcykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMzMTEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjMwOTE6CisgICAgICAgICAgICAgICBpZiAoZW5kID09IHMpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTEzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwOTI6CiteSV5JXklicmVhazskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTE1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwOTQ6CiteSV5JcyA9IGVuZDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjMwOTU6CiteSV5JaWYgKHJldCA8IHNpemUpJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzExNjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDk1OgorICAgICAgICAgICAg ICAgaWYgKHJldCA8IHNpemUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMw OTY6CiteSV5JXklsaXN0W3JldF0gPSB2YWw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzExODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzozMDk3OgorXkleSXJldCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMxMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA5ODoK K15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMjI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzEwMToKK15JZnJlZShidWYpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMjM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzEwMjoKK15JcmV0dXJuIHJldDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTMxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMxMTA6CiteSSh2b2lkKSByZXE7ICh2b2lkKSBzaXpl OyAodm9pZCkgbGlzdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMxMTE6CiteSXJl dHVybiAtRU5PU1lTOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzExNzoKK15Jc2Ut PmV4aXRlZCA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzE0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMTIyOgorXklzZS0+ ZXhpdGVkID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MTQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMxMjM6CiteSXNlLT5l cnJvciA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE0 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMTI4OgorXklyZXR1cm4g c2UtPmV4aXRlZDskCgp0b3RhbDogMjMzOCBlcnJvcnMsIDU3IHdhcm5pbmdzLCAzMTI5IGxpbmVz IGNoZWNrZWQKClBhdGNoIDQvMTA5IGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4g IElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0 byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgo1LzEwOSBD aGVja2luZyBjb21taXQgMzk2NzUxOTk5NTE1ICh2aXJ0aW9mc2Q6IEFkZCBwYXNzdGhyb3VnaF9s bCkKV0FSTklORzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJ TkVSUyBuZWVkIHVwZGF0aW5nPwojMjI6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKV0FSTklORzog QmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojMjg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI6CisvKgorICBGVVNFOiBGaWxlc3lzdGVtIGlu IFVzZXJzcGFjZQoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBh IHNlcGFyYXRlIGxpbmUKIzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo5OgorLyoqIEBmaWxlCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNTc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMxOgorICogICAgIGdjYyAtV2Fs bCBwYXNzdGhyb3VnaF9sbC5jIGBwa2ctY29uZmlnIGZ1c2UzIC0tY2ZsYWdzIC0tbGlic2AgLW8g cGFzc3Rocm91Z2hfbGwKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiM4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NjA6CisvKiBXZSBhcmUgcmUtdXNpbmcgcG9pbnRlcnMgdG8gb3VyIGBzdHJ1Y3QgbG9f aW5vZGVgIGFuZCBgc3RydWN0CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJz ZXF1ZW50IGxpbmVzCiM4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NjE6CisvKiBXZSBhcmUgcmUtdXNpbmcgcG9pbnRlcnMgdG8gb3VyIGBzdHJ1Y3QgbG9faW5vZGVg IGFuZCBgc3RydWN0CisgICBsb19kaXJwYCBlbGVtZW50cyBhcyBpbm9kZXMuIFRoaXMgbWVhbnMg dGhhdCB3ZSBtdXN0IGJlIGFibGUgdG8KCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRy YWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjYzOgorICAgaW5jYW50YXRpb24gY2hlY2tzIHRoaXMgY29uZGl0aW9u IGF0IGNvbXBpbGUgdGltZS4gKi8KCkVSUk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojOTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY0OgorI2lmIGRlZmluZWQo X19HTlVDX18pICYmIChfX0dOVUNfXyA+IDQgfHwgX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlO T1JfXyA+PSA2KSAmJiAhZGVmaW5lZCBfX2NwbHVzcGx1cwoKV0FSTklORzogYXJjaGl0ZWN0dXJl IHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzkwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2NDoKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19H TlVDX18gPiA0IHx8IF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gNikgJiYgIWRl ZmluZWQgX19jcGx1c3BsdXMKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2NjoKK15JICAg ICAgICJmdXNlX2lub190IHRvbyBzbWFsbCB0byBob2xkIHVpbnRwdHJfdCB2YWx1ZXMhIik7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY5OgorXkl7IHVuc2lnbmVkIF91aW50cHRyX3Rv X211c3RfaG9sZF9mdXNlX2lub190OiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MDoK K15JXkleSSgoc2l6ZW9mKGZ1c2VfaW5vX3QpID49IHNpemVvZih1aW50cHRyX3QpKSA/IDEgOiAt MSk7IH07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NDoKK15Jc3RydWN0IGxvX2lu b2RlICpuZXh0OyAvKiBwcm90ZWN0ZWQgYnkgbG8tPm11dGV4ICovJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo3NToKK15Jc3RydWN0IGxvX2lub2RlICpwcmV2OyAvKiBwcm90ZWN0ZWQg YnkgbG8tPm11dGV4ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NjoKK15JaW50 IGZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzc6CiteSWJvb2wgaXNfc3ltbGlu azskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc4OgorXklpbm9fdCBpbm87JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3OToKK15JZGV2X3QgZGV2OyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6ODA6CiteSXVpbnQ2NF90IHJlZmNvdW50OyAvKiBwcm90ZWN0ZWQg YnkgbG8tPm11dGV4ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4NDoKK15JQ0FD SEVfTkVWRVIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4NToKK15JQ0FDSEVfTk9S TUFMLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODY6CiteSUNBQ0hFX0FMV0FZUywk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkwOgorXklwdGhyZWFkX211dGV4X3QgbXV0 ZXg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MToKK15JaW50IGRlYnVnOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTI6CiteSWludCB3cml0ZWJhY2s7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MzoKK15JaW50IGZsb2NrOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6OTQ6CiteSWludCB4YXR0cjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjk1OgorXkljb25zdCBjaGFyICpzb3VyY2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo5NjoKK15JZG91YmxlIHRpbWVvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo5NzoKK15JaW50IGNhY2hlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTg6 CiteSWludCB0aW1lb3V0X3NldDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5Ogor XklzdHJ1Y3QgbG9faW5vZGUgcm9vdDsgLyogcHJvdGVjdGVkIGJ5IGxvLT5tdXRleCAqLyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzOgorXkl7ICJ3cml0ZWJhY2siLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA0OgorXkkgIG9mZnNldG9mKHN0cnVjdCBsb19kYXRh LCB3cml0ZWJhY2spLCAxIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDU6Cite SXsgIm5vX3dyaXRlYmFjayIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDY6Cite SSAgb2Zmc2V0b2Yoc3RydWN0IGxvX2RhdGEsIHdyaXRlYmFjayksIDAgfSwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjEwNzoKK15JeyAic291cmNlPSVzIiwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEwODoKK15JICBvZmZzZXRvZihzdHJ1Y3QgbG9fZGF0YSwgc291cmNl KSwgMCB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA5OgorXkl7ICJmbG9jayIs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTA6CiteSSAgb2Zmc2V0b2Yoc3RydWN0 IGxvX2RhdGEsIGZsb2NrKSwgMSB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEx OgorXkl7ICJub19mbG9jayIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTI6Cite SSAgb2Zmc2V0b2Yoc3RydWN0IGxvX2RhdGEsIGZsb2NrKSwgMCB9LCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTEzOgorXkl7ICJ4YXR0ciIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMTQ6CiteSSAgb2Zmc2V0b2Yoc3RydWN0IGxvX2RhdGEsIHhhdHRyKSwgMSB9LCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1OgorXkl7ICJub194YXR0ciIsJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTY6CiteSSAgb2Zmc2V0b2Yoc3RydWN0IGxvX2Rh dGEsIHhhdHRyKSwgMCB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE3OgorXkl7 ICJ0aW1lb3V0PSVsZiIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTg6CiteSSAg b2Zmc2V0b2Yoc3RydWN0IGxvX2RhdGEsIHRpbWVvdXQpLCAwIH0sJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxMTk6CiteSXsgInRpbWVvdXQ9IiwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjEyMDoKK15JICBvZmZzZXRvZihzdHJ1Y3QgbG9fZGF0YSwgdGltZW91dF9zZXQp LCAxIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjE6CiteSXsgImNhY2hlPW5l dmVyIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMjoKK15JICBvZmZzZXRvZihz dHJ1Y3QgbG9fZGF0YSwgY2FjaGUpLCBDQUNIRV9ORVZFUiB9LCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTIzOgorXkl7ICJjYWNoZT1hdXRvIiwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjEyNDoKK15JICBvZmZzZXRvZihzdHJ1Y3QgbG9fZGF0YSwgY2FjaGUpLCBDQUNI RV9OT1JNQUwgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNToKK15JeyAiY2Fj aGU9YWx3YXlzIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNjoKK15JICBvZmZz ZXRvZihzdHJ1Y3QgbG9fZGF0YSwgY2FjaGUpLCBDQUNIRV9BTFdBWVMgfSwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjEyODoKK15JRlVTRV9PUFRfRU5EJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxMzM6CiteSXJldHVybiAoc3RydWN0IGxvX2RhdGEgKikgZnVzZV9yZXFf dXNlcmRhdGEocmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEzODoKK15JaWYg KGlubyA9PSBGVVNFX1JPT1RfSUQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMzg6CisgICAgICAgaWYgKGlubyA9PSBGVVNFX1JPT1RfSUQpClsu Li5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzk6 CiteSV5JcmV0dXJuICZsb19kYXRhKHJlcSktPnJvb3Q7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxNDA6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE0MToK K15JXklyZXR1cm4gKHN0cnVjdCBsb19pbm9kZSAqKSAodWludHB0cl90KSBpbm87JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNDY6CiteSXJldHVybiBsb19pbm9kZShyZXEsIGlubykt PmZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTUxOgorXklyZXR1cm4gbG9fZGF0 YShyZXEpLT5kZWJ1ZyAhPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTU1Ogor XkleSSAgICBzdHJ1Y3QgZnVzZV9jb25uX2luZm8gKmNvbm4pJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxNTc6CiteSXN0cnVjdCBsb19kYXRhICpsbyA9IChzdHJ1Y3QgbG9fZGF0YSop IHVzZXJkYXRhOyQKCkVSUk9SOiAiKGZvbyopIiBzaG91bGQgYmUgIihmb28gKikiCiMxODM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE1NzoKKyAgICAgICBzdHJ1Y3Qg bG9fZGF0YSAqbG8gPSAoc3RydWN0IGxvX2RhdGEqKSB1c2VyZGF0YTsKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTU5OgorXklpZihjb25uLT5jYXBhYmxlICYgRlVTRV9DQVBfRVhQT1JU X1NVUFBPUlQpJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRo ZXNpcyAnKCcKIzE4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTU5 OgorICAgICAgIGlmKGNvbm4tPmNhcGFibGUgJiBGVVNFX0NBUF9FWFBPUlRfU1VQUE9SVCkKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzE4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTU5OgorICAg ICAgIGlmKGNvbm4tPmNhcGFibGUgJiBGVVNFX0NBUF9FWFBPUlRfU1VQUE9SVCkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NjogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTYwOgorXkleSWNvbm4tPndhbnQgfD0gRlVTRV9D QVBfRVhQT1JUX1NVUFBPUlQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNjI6Cite SWlmIChsby0+d3JpdGViYWNrICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNjM6 CiteSSAgICBjb25uLT5jYXBhYmxlICYgRlVTRV9DQVBfV1JJVEVCQUNLX0NBQ0hFKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNjQ6CiteSV5JaWYgKGxvLT5kZWJ1ZykkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiMxOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE2NDoKKyAgICAg ICAgICAgICAgIGlmIChsby0+ZGVidWcpClsuLi5dCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hh cmFjdGVycwojMTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNjU6 CisgICAgICAgICAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAibG9faW5p dDogYWN0aXZhdGluZyB3cml0ZWJhY2tcbiIpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxNjU6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgImxvX2luaXQ6IGFjdGl2YXRp bmcgd3JpdGViYWNrXG4iKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE2NjoKK15J Xkljb25uLT53YW50IHw9IEZVU0VfQ0FQX1dSSVRFQkFDS19DQUNIRTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjE2NzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MTY4OgorXklpZiAobG8tPmZsb2NrICYmIGNvbm4tPmNhcGFibGUgJiBGVVNFX0NBUF9GTE9DS19M T0NLUykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTY5OgorXkleSWlmIChsby0+ ZGVidWcpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMTk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxNjk6CisgICAgICAgICAgICAgICBpZiAobG8tPmRlYnVnKQpbLi4uXQoKV0FSTklORzogbGlu ZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzE5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTcwOgorICAgICAgICAgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19E RUJVRywgImxvX2luaXQ6IGFjdGl2YXRpbmcgZmxvY2sgbG9ja3NcbiIpOwoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxNzA6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgImxv X2luaXQ6IGFjdGl2YXRpbmcgZmxvY2sgbG9ja3NcbiIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTcxOgorXkleSWNvbm4tPndhbnQgfD0gRlVTRV9DQVBfRkxPQ0tfTE9DS1M7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNzI6CiteSX0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjE3NjoKK15JXkleSSAgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE3ODoKK15JaW50IHJlczskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE3OToKK15Jc3RydWN0IHN0YXQgYnVmOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTgwOgorXklzdHJ1Y3QgbG9fZGF0YSAqbG8gPSBsb19kYXRh KHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxODI6CiteSSh2b2lkKSBmaTsk CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjEwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxODQ6CisgICAgICAgcmVzID0gZnN0YXRhdChsb19mZChy ZXEsIGlubyksICIiLCAmYnVmLCBBVF9FTVBUWV9QQVRIIHwgQVRfU1lNTElOS19OT0ZPTExPVyk7 CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE4NDoKK15JcmVzID0gZnN0YXRhdChsb19m ZChyZXEsIGlubyksICIiLCAmYnVmLCBBVF9FTVBUWV9QQVRIIHwgQVRfU1lNTElOS19OT0ZPTExP Vyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjExOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxODU6CiteSWlmIChyZXMgPT0gLTEp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojMjExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxODU6 CisgICAgICAgaWYgKHJlcyA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTg2OgorXkleSXJldHVybiAodm9pZCkgZnVzZV9yZXBseV9lcnIocmVxLCBlcnJubyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxODg6CiteSWZ1c2VfcmVwbHlfYXR0cihyZXEs ICZidWYsIGxvLT50aW1lb3V0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE5MjoK K15JXkleSV5JICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdHYpJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxOTQ6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoxOTU6CiteSWNoYXIgcHJvY25hbWVbNjRdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTk3OgorXklpZiAoaW5vZGUtPmlzX3N5bWxpbmspIHskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjE5ODoKK15JXklyZXMgPSB1dGltZW5zYXQoaW5vZGUtPmZkLCAiIiwgdHYs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxOTk6CiteSV5JXkleSUFUX0VNUFRZX1BB VEggfCBBVF9TWU1MSU5LX05PRk9MTE9XKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjIwMDoKK15JXklpZiAocmVzID09IC0xICYmIGVycm5vID09IEVJTlZBTCkgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjAxOgorXkleSV5JLyogU29ycnksIG5vIHJhY2UgZnJlZSB3 YXkgdG8gc2V0IHRpbWVzIG9uIHN5bWxpbmsuICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoyMDI6CiteSV5JXkllcnJubyA9IEVQRVJNOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MjAzOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIwNDoKK15J XklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjA1OgorXkl9JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMDY6CiteSXNwcmludGYocHJvY25hbWUsICIv cHJvYy9zZWxmL2ZkLyVpIiwgaW5vZGUtPmZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjIwODoKK15JcmV0dXJuIHV0aW1lbnNhdChBVF9GRENXRCwgcHJvY25hbWUsIHR2LCAwKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIxMjoKK15JXkkgICAgICAgaW50IHZhbGlk LCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MjE0OgorXklpbnQgc2F2ZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjE1 OgorXkljaGFyIHByb2NuYW1lWzY0XTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIx NjoKK15Jc3RydWN0IGxvX2lub2RlICppbm9kZSA9IGxvX2lub2RlKHJlcSwgaW5vKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIxNzoKK15JaW50IGlmZCA9IGlub2RlLT5mZDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIxODoKK15JaW50IHJlczskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjIyMDoKK15JaWYgKHZhbGlkICYgRlVTRV9TRVRfQVRUUl9NT0RF KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMjE6CiteSV5JaWYgKGZpKSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMjI6CiteSV5JXklyZXMgPSBmY2htb2QoZmkt PmZoLCBhdHRyLT5zdF9tb2RlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIyMzoK K15JXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjI0OgorXkleSV5J c3ByaW50Zihwcm9jbmFtZSwgIi9wcm9jL3NlbGYvZmQvJWkiLCBpZmQpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MjI1OgorXkleSV5JcmVzID0gY2htb2QocHJvY25hbWUsIGF0dHIt PnN0X21vZGUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjI2OgorXkleSX0kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIyNzoKK15JXklpZiAocmVzID09IC0xKSQKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzI1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjI3OgorICAg ICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MjI4OgorXkleSV5JZ290byBvdXRfZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MjI5OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMzA6CiteSWlm ICh2YWxpZCAmIChGVVNFX1NFVF9BVFRSX1VJRCB8IEZVU0VfU0VUX0FUVFJfR0lEKSkgeyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjMxOgorXkleSXVpZF90IHVpZCA9ICh2YWxpZCAm IEZVU0VfU0VUX0FUVFJfVUlEKSA/JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMzI6 CiteSV5JXklhdHRyLT5zdF91aWQgOiAodWlkX3QpIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MjMzOgorXkleSWdpZF90IGdpZCA9ICh2YWxpZCAmIEZVU0VfU0VUX0FUVFJfR0lE KSA/JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMzQ6CiteSV5JXklhdHRyLT5zdF9n aWQgOiAoZ2lkX3QpIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjM2OgorXkle SXJlcyA9IGZjaG93bmF0KGlmZCwgIiIsIHVpZCwgZ2lkLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MjM3OgorXkleSV5JICAgICAgIEFUX0VNUFRZX1BBVEggfCBBVF9TWU1MSU5LX05P Rk9MTE9XKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIzODoKK15JXklpZiAocmVz ID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzI2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MjM4OgorICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MjM5OgorXkleSV5JZ290byBvdXRfZXJyOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MjQwOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoyNDE6CiteSWlmICh2YWxpZCAmIEZVU0VfU0VUX0FUVFJfU0laRSkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2ODogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MjQyOgorXkleSWlmIChmaSkgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MjQzOgorXkleSV5JcmVzID0gZnRydW5jYXRlKGZpLT5maCwgYXR0ci0+c3Rf c2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNDQ6CiteSV5JfSBlbHNlIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI0NToKK15JXkleSXNwcmludGYocHJvY25h bWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaWZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjI0NjoKK15JXkleSXJlcyA9IHRydW5jYXRlKHByb2NuYW1lLCBhdHRyLT5zdF9zaXplKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI0NzoKK15JXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoyNDg6CiteSV5JaWYgKHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNzQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI0ODoKKyAgICAgICAgICAgICAg IGlmIChyZXMgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI0OToK K15JXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI1MDoK K15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjUxOgorXklpZiAodmFsaWQgJiAo RlVTRV9TRVRfQVRUUl9BVElNRSB8IEZVU0VfU0VUX0FUVFJfTVRJTUUpKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoyNTI6CiteSV5Jc3RydWN0IHRpbWVzcGVjIHR2WzJdOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjU0OgorXkleSXR2WzBdLnR2X3NlYyA9IDA7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNTU6CiteSV5JdHZbMV0udHZfc2VjID0gMDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI1NjoKK15JXkl0dlswXS50dl9uc2VjID0g VVRJTUVfT01JVDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI1NzoKK15JXkl0dlsx XS50dl9uc2VjID0gVVRJTUVfT01JVDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI1 OToKK15JXklpZiAodmFsaWQgJiBGVVNFX1NFVF9BVFRSX0FUSU1FX05PVykkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyODU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI1OToKKyAgICAgICAgICAg ICAgIGlmICh2YWxpZCAmIEZVU0VfU0VUX0FUVFJfQVRJTUVfTk9XKQpbLi4uXQorICAgICAgICAg ICAgICAgZWxzZSBpZiAodmFsaWQgJiBGVVNFX1NFVF9BVFRSX0FUSU1FKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNjA6CiteSV5JXkl0dlswXS50dl9uc2VjID0gVVRJTUVf Tk9XOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjYxOgorXkleSWVsc2UgaWYgKHZh bGlkICYgRlVTRV9TRVRfQVRUUl9BVElNRSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyODc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI2MToKKyAgICAgICAgICAgICAgIGVsc2UgaWYgKHZhbGlk ICYgRlVTRV9TRVRfQVRUUl9BVElNRSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MjYyOgorXkleSV5JdHZbMF0gPSBhdHRyLT5zdF9hdGltOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MjY0OgorXkleSWlmICh2YWxpZCAmIEZVU0VfU0VUX0FUVFJfTVRJTUVfTk9X KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzI5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjY0 OgorICAgICAgICAgICAgICAgaWYgKHZhbGlkICYgRlVTRV9TRVRfQVRUUl9NVElNRV9OT1cpClsu Li5dCisgICAgICAgICAgICAgICBlbHNlIGlmICh2YWxpZCAmIEZVU0VfU0VUX0FUVFJfTVRJTUUp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI2NToKK15JXkleSXR2WzFdLnR2 X25zZWMgPSBVVElNRV9OT1c7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNjY6Cite SV5JZWxzZSBpZiAodmFsaWQgJiBGVVNFX1NFVF9BVFRSX01USU1FKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI5MjogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjY2OgorICAgICAgICAgICAgICAg ZWxzZSBpZiAodmFsaWQgJiBGVVNFX1NFVF9BVFRSX01USU1FKQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoyNjc6CiteSV5JXkl0dlsxXSA9IGF0dHItPnN0X210aW07JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNjk6CiteSV5JaWYgKGZpKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI5NTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjY5OgorICAgICAgICAgICAg ICAgaWYgKGZpKQpbLi4uXQorICAgICAgICAgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoyNzA6CiteSV5JXklyZXMgPSBmdXRpbWVucyhmaS0+ZmgsIHR2KTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI3MToKK15JXkllbHNlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoyNzI6CiteSV5JXklyZXMgPSB1dGltZW5zYXRfZW1wdHlfbm9m b2xsb3coaW5vZGUsIHR2KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI3MzoKK15J XklpZiAocmVzID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MjczOgorICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mjc0OgorXkleSV5JZ290byBvdXRfZXJyOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mjc1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoyNzc6CiteSXJldHVybiBsb19nZXRhdHRyKHJlcSwgaW5vLCBmaSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyODA6CiteSXNhdmVyciA9IGVycm5vOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNzogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjgxOgorXklmdXNlX3JlcGx5X2VycihyZXEsIHNhdmVy cik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyODY6CiteSXN0cnVjdCBsb19pbm9k ZSAqcDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI4NzoKK15Jc3RydWN0IGxvX2lu b2RlICpyZXQgPSBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mjg5OgorXklw dGhyZWFkX211dGV4X2xvY2soJmxvLT5tdXRleCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoyOTA6CiteSWZvciAocCA9IGxvLT5yb290Lm5leHQ7IHAgIT0gJmxvLT5yb290OyBwID0g cC0+bmV4dCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMx NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjkxOgorXkleSWlmIChw LT5pbm8gPT0gc3QtPnN0X2lubyAmJiBwLT5kZXYgPT0gc3QtPnN0X2RldikgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjkyOgorXkleSV5JYXNzZXJ0KHAtPnJlZmNvdW50ID4gMCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyOTM6CiteSV5JXklyZXQgPSBwOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mjk0OgorXkleSV5JcmV0LT5yZWZjb3VudCsrOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mjk1OgorXkleSV5JYnJlYWs7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyOTY6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6Mjk3OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyOTg6Cite SXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZsby0+bXV0ZXgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6Mjk5OgorXklyZXR1cm4gcmV0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MzAzOgorXkleSV5JIHN0cnVjdCBmdXNlX2VudHJ5X3BhcmFtICplKSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MzA1OgorXklpbnQgbmV3ZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzozMDY6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzozMDc6CiteSWludCBzYXZlcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMDg6 CiteSXN0cnVjdCBsb19kYXRhICpsbyA9IGxvX2RhdGEocmVxKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjMwOToKK15Jc3RydWN0IGxvX2lub2RlICppbm9kZTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjMxMToKK15JbWVtc2V0KGUsIDAsIHNpemVvZigqZSkpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzODogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzEyOgorXkllLT5hdHRyX3RpbWVvdXQgPSBsby0+ dGltZW91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMxMzoKK15JZS0+ZW50cnlf dGltZW91dCA9IGxvLT50aW1lb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzE1 OgorXkluZXdmZCA9IG9wZW5hdChsb19mZChyZXEsIHBhcmVudCksIG5hbWUsIE9fUEFUSCB8IE9f Tk9GT0xMT1cpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzE2OgorXklpZiAobmV3 ZmQgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBv ZiB0aGlzIHN0YXRlbWVudAojMzQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzozMTY6CisgICAgICAgaWYgKG5ld2ZkID09IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzozMTc6CiteSV5JZ290byBvdXRfZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MzE5OgorXklyZXMgPSBmc3RhdGF0KG5ld2ZkLCAiIiwgJmUtPmF0dHIsIEFU X0VNUFRZX1BBVEggfCBBVF9TWU1MSU5LX05PRk9MTE9XKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjMyMDoKK15JaWYgKHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBu ZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMzNDY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMyMDoKKyAgICAgICBpZiAocmVzID09IC0xKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMjE6CiteSV5JZ290byBvdXRfZXJy OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0OTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzIzOgorXklpbm9kZSA9IGxvX2ZpbmQo bG9fZGF0YShyZXEpLCAmZS0+YXR0cik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoz MjQ6CiteSWlmIChpbm9kZSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzI1Ogor XkleSWNsb3NlKG5ld2ZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMyNjoKK15J XkluZXdmZCA9IC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzI3OgorXkl9IGVs c2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NDogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzI4OgorXkleSXN0cnVjdCBsb19p bm9kZSAqcHJldiwgKm5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMzA6Cite SV5Jc2F2ZXJyID0gRU5PTUVNOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzMxOgor XkleSWlub2RlID0gY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgbG9faW5vZGUpKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMzMjoKK15JXklpZiAoIWlub2RlKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzM1ODog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzMyOgorICAgICAgICAgICAg ICAgaWYgKCFpbm9kZSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzMzOgor XkleSV5JZ290byBvdXRfZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzM1Ogor XkleSWlub2RlLT5pc19zeW1saW5rID0gU19JU0xOSyhlLT5hdHRyLnN0X21vZGUpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2MjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzM2OgorXkleSWlub2RlLT5yZWZjb3VudCA9IDE7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzYzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMzc6CiteSV5JaW5vZGUtPmZkID0gbmV3ZmQ7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMzg6CiteSV5JaW5vZGUtPmlubyA9IGUt PmF0dHIuc3RfaW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzM5OgorXkleSWlu b2RlLT5kZXYgPSBlLT5hdHRyLnN0X2RldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzNjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjM0MToKK15JXklwdGhyZWFkX211dGV4X2xvY2soJmxvLT5tdXRleCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzozNDI6CiteSV5JcHJldiA9ICZsby0+cm9vdDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjM0MzoKK15JXkluZXh0ID0gcHJldi0+bmV4dDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM0NDoKK15JXkluZXh0LT5wcmV2ID0gaW5vZGU7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzcxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNDU6CiteSV5JaW5vZGUtPm5leHQgPSBuZXh0OyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3MjogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzQ2OgorXkleSWlub2RlLT5wcmV2ID0gcHJl djskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM0NzoKK15JXklwcmV2LT5uZXh0ID0g aW5vZGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzc0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNDg6CiteSV5JcHRocmVhZF9t dXRleF91bmxvY2soJmxvLT5tdXRleCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoz NDk6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM1MDoKK15JZS0+aW5vID0g KHVpbnRwdHJfdCkgaW5vZGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNTI6Cite SWlmIChsb19kZWJ1ZyhyZXEpKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzUzOgor XkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAiICAlbGxpLyVzIC0+ICVsbGlcbiIsJAoKV0FS TklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzM4MDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MzU0OgorICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQg bG9uZyBsb25nKSBwYXJlbnQsIG5hbWUsICh1bnNpZ25lZCBsb25nIGxvbmcpIGUtPmlubyk7CgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM1NDoKK15JXkleSSh1bnNpZ25lZCBsb25nIGxv bmcpIHBhcmVudCwgbmFtZSwgKHVuc2lnbmVkIGxvbmcgbG9uZykgZS0+aW5vKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM1NjoKK15JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzozNTk6CiteSXNhdmVyciA9IGVycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MzYwOgorXklpZiAobmV3ZmQgIT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzg2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNjA6CisgICAgICAgaWYgKG5ld2ZkICE9 IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNjE6CiteSV5JY2xvc2Uo bmV3ZmQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4ODog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzYyOgorXklyZXR1cm4gc2F2 ZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5MzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzY3OgorXklzdHJ1Y3QgZnVzZV9l bnRyeV9wYXJhbSBlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzY4OgorXklpbnQg ZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5NjogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzcwOgorXklpZiAobG9fZGVidWco cmVxKSkkCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMzk3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNzE6CisgICAgICAgICAgICAgICBmdXNlX2xv ZyhGVVNFX0xPR19ERUJVRywgImxvX2xvb2t1cChwYXJlbnQ9JSIgUFJJdTY0ICIsIG5hbWU9JXMp XG4iLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzk3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNzE6CiteSV5JZnVzZV9sb2coRlVT RV9MT0dfREVCVUcsICJsb19sb29rdXAocGFyZW50PSUiIFBSSXU2NCAiLCBuYW1lPSVzKVxuIiwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM3MjoKK15JXkleSXBhcmVudCwgbmFtZSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNzQ6CiteSWVyciA9IGxvX2RvX2xvb2t1 cChyZXEsIHBhcmVudCwgbmFtZSwgJmUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 Mzc1OgorXklpZiAoZXJyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzQwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6Mzc1OgorICAgICAgIGlmIChlcnIpClsuLi5dCisgICAgICAgZWxzZQpbLi4u XQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNzY6CiteSV5JZnVzZV9yZXBseV9lcnIo cmVxLCBlcnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQw MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzc3OgorXkllbHNlJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDA0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNzg6CiteSV5JZnVzZV9yZXBseV9lbnRyeShy ZXEsICZlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MDg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM4MjoKK15JXkleSSAgICAg Y29uc3QgY2hhciAqbmFtZSwgbW9kZV90IG1vZGUsIGRldl90IHJkZXYsJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzozODM6CiteSV5JXkkgICAgIGNvbnN0IGNoYXIgKmxpbmspJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDExOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozODU6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzozODY6CiteSWludCBzYXZlcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzozODc6CiteSXN0cnVjdCBsb19pbm9kZSAqZGlyID0gbG9faW5vZGUocmVxLCBw YXJlbnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxNDog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzg4OgorXklzdHJ1Y3QgZnVz ZV9lbnRyeV9wYXJhbSBlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzkwOgorXklz YXZlcnIgPSBFTk9NRU07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozOTI6CiteSXJl cyA9IG1rbm9kX3dyYXBwZXIoZGlyLT5mZCwgbmFtZSwgbGluaywgbW9kZSwgcmRldik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDIwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozOTQ6CiteSXNhdmVyciA9IGVycm5vOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyMTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzk1OgorXklpZiAocmVzID09IC0xKSQKCkVSUk9SOiBi cmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzQy MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzk1OgorICAgICAgIGlm IChyZXMgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM5NjoKK15J Xklnb3RvIG91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM5ODoKK15Jc2F2ZXJy ID0gbG9fZG9fbG9va3VwKHJlcSwgcGFyZW50LCBuYW1lLCAmZSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzozOTk6CiteSWlmIChzYXZlcnIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNDI1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozOTk6CisgICAgICAgaWYgKHNhdmVycikKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyNjogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDAwOgorXkleSWdvdG8gb3V0OyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyODogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDAyOgorXklpZiAobG9fZGVidWcocmVxKSkkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Mjk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQwMzoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19E RUJVRywgIiAgJWxsaS8lcyAtPiAlbGxpXG4iLCQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFy YWN0ZXJzCiM0MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQwNDoK KyAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgcGFyZW50LCBuYW1l LCAodW5zaWduZWQgbG9uZyBsb25nKSBlLmlubyk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjQwNDoKK15JXkleSSh1bnNpZ25lZCBsb25nIGxvbmcpIHBhcmVudCwgbmFtZSwgKHVuc2ln bmVkIGxvbmcgbG9uZykgZS5pbm8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDA2 OgorXklmdXNlX3JlcGx5X2VudHJ5KHJlcSwgJmUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzQzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NDA3OgorXklyZXR1cm47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0MTA6 CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgc2F2ZXJyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjQxNDoKK15JXkkgICAgIGNvbnN0IGNoYXIgKm5hbWUsIG1vZGVfdCBtb2RlLCBkZXZf dCByZGV2KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDE2OgorXklsb19ta25vZF9z eW1saW5rKHJlcSwgcGFyZW50LCBuYW1lLCBtb2RlLCByZGV2LCBOVUxMKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjQyMDoKK15JXkkgICAgIG1vZGVfdCBtb2RlKSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDIyOgorXklsb19ta25vZF9zeW1saW5rKHJlcSwgcGFyZW50 LCBuYW1lLCBTX0lGRElSIHwgbW9kZSwgMCwgTlVMTCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo0MjY6CiteSV5JICAgICAgIGZ1c2VfaW5vX3QgcGFyZW50LCBjb25zdCBjaGFyICpu YW1lKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1NDogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDI4OgorXklsb19ta25vZF9zeW1s aW5rKHJlcSwgcGFyZW50LCBuYW1lLCBTX0lGTE5LLCAwLCBsaW5rKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjQzMjoKK15JXkleSV5JIGNvbnN0IGNoYXIgKm5hbWUpJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0MzQ6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo0MzU6CiteSWNoYXIgcHJvY25hbWVbNjRdOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NDM3OgorXklpZiAoaW5vZGUtPmlzX3N5bWxpbmspIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQzODoKK15JXklyZXMgPSBsaW5rYXQoaW5vZGUtPmZkLCAi IiwgZGZkLCBuYW1lLCBBVF9FTVBUWV9QQVRIKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjQzOToKK15JXklpZiAocmVzID09IC0xICYmIChlcnJubyA9PSBFTk9FTlQgfHwgZXJybm8g PT0gRUlOVkFMKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDQwOgorXkleSV5J LyogU29ycnksIG5vIHJhY2UgZnJlZSB3YXkgdG8gaGFyZC1saW5rIGEgc3ltbGluay4gKi8kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Njc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ0MToKK15JXkleSWVycm5vID0gRVBFUk07JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDY4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0NDI6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NDQzOgorXkleSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo0NDQ6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ0NjoK K15Jc3ByaW50Zihwcm9jbmFtZSwgIi9wcm9jL3NlbGYvZmQvJWkiLCBpbm9kZS0+ZmQpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3NDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDQ4OgorXklyZXR1cm4gbGlua2F0KEFUX0ZEQ1dE LCBwcm9jbmFtZSwgZGZkLCBuYW1lLCBBVF9TWU1MSU5LX0ZPTExPVyk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo0NTI6CiteSV5JICAgIGNvbnN0IGNoYXIgKm5hbWUpJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDgwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0NTQ6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo0NTU6CiteSXN0cnVjdCBsb19kYXRhICpsbyA9IGxvX2RhdGEocmVxKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ1NjoKK15Jc3RydWN0IGxvX2lub2RlICpp bm9kZSA9IGxvX2lub2RlKHJlcSwgaW5vKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjQ1NzoKK15Jc3RydWN0IGZ1c2VfZW50cnlfcGFyYW0gZTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjQ1ODoKK15JaW50IHNhdmVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjQ2MDoKK15JbWVtc2V0KCZlLCAwLCBzaXplb2Yoc3RydWN0IGZ1c2VfZW50cnlfcGFyYW0p KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ2MToKK15JZS5hdHRyX3RpbWVvdXQg PSBsby0+dGltZW91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ2MjoKK15JZS5l bnRyeV90aW1lb3V0ID0gbG8tPnRpbWVvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo0NjQ6CiteSXJlcyA9IGxpbmthdF9lbXB0eV9ub2ZvbGxvdyhpbm9kZSwgbG9fZmQocmVxLCBw YXJlbnQpLCBuYW1lKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ2NToKK15JaWYg KHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiM0OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjQ2NToKKyAgICAgICBpZiAocmVzID09IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo0NjY6CiteSV5JZ290byBvdXRfZXJyOyQKCldBUk5JTkc6IGxpbmUgb3Zl ciA4MCBjaGFyYWN0ZXJzCiM0OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjQ2ODoKKyAgICAgICByZXMgPSBmc3RhdGF0KGlub2RlLT5mZCwgIiIsICZlLmF0dHIsIEFU X0VNUFRZX1BBVEggfCBBVF9TWU1MSU5LX05PRk9MTE9XKTsKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6NDY4OgorXklyZXMgPSBmc3RhdGF0KGlub2RlLT5mZCwgIiIsICZlLmF0dHIsIEFU X0VNUFRZX1BBVEggfCBBVF9TWU1MSU5LX05PRk9MTE9XKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjQ2OToKK15JaWYgKHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBu ZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0OTU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ2OToKKyAgICAgICBpZiAocmVzID09IC0xKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDk2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0NzA6CiteSV5JZ290byBvdXRfZXJy OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5ODogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDcyOgorXklwdGhyZWFkX211dGV4X2xv Y2soJmxvLT5tdXRleCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0NzM6CiteSWlu b2RlLT5yZWZjb3VudCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzUwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDc0OgorXklw dGhyZWFkX211dGV4X3VubG9jaygmbG8tPm11dGV4KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjQ3NToKK15JZS5pbm8gPSAodWludHB0cl90KSBpbm9kZTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjQ3NzoKK15JaWYgKGxvX2RlYnVnKHJlcSkpJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo0Nzg6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICIgICVs bGkvJXMgLT4gJWxsaVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ3OToKK15J XkleSSh1bnNpZ25lZCBsb25nIGxvbmcpIHBhcmVudCwgbmFtZSwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjQ4MDoKK15JXkleSSh1bnNpZ25lZCBsb25nIGxvbmcpIGUuaW5vKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ4MjoKK15JZnVzZV9yZXBseV9lbnRyeShyZXEs ICZlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ4MzoKK15JcmV0dXJuOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxMjogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDg2OgorXklzYXZlcnIgPSBlcnJubzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ4NzoKK15JZnVzZV9yZXBseV9lcnIocmVxLCBzYXZl cnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxODogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDkyOgorXklpbnQgcmVzOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyMDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDk0OgorXklyZXMgPSB1bmxpbmthdChsb19mZChy ZXEsIHBhcmVudCksIG5hbWUsIEFUX1JFTU9WRURJUik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo0OTY6CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgcmVzID09IC0xID8gZXJybm8gOiAw KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUwMDoKK15JXkkgICAgICBmdXNlX2lu b190IG5ld3BhcmVudCwgY29uc3QgY2hhciAqbmV3bmFtZSwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjUwMToKK15JXkkgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTI5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo1MDM6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo1MDU6CiteSWlmIChmbGFncykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzUzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NTA2OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRUlOVkFMKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjUwNzoKK15JXklyZXR1cm47JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo1MDg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUxMDoK K15JcmVzID0gcmVuYW1lYXQobG9fZmQocmVxLCBwYXJlbnQpLCBuYW1lLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzNzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NTExOgorXkleSV5JbG9fZmQocmVxLCBuZXdwYXJlbnQpLCBuZXdu YW1lKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mzk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUxMzoKK15JZnVzZV9yZXBseV9l cnIocmVxLCByZXMgPT0gLTEgPyBlcnJubyA6IDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzU0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NTE4OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzU0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTIw OgorXklyZXMgPSB1bmxpbmthdChsb19mZChyZXEsIHBhcmVudCksIG5hbWUsIDApOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0ODogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTIyOgorXklmdXNlX3JlcGx5X2VycihyZXEsIHJlcyA9 PSAtMSA/IGVycm5vIDogMCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1Mjc6Cite SWlmICghaW5vZGUpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojNTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo1Mjc6CisgICAgICAgaWYgKCFpbm9kZSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6NTI4OgorXkleSXJldHVybjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjUzMDoKK15JcHRocmVhZF9tdXRleF9sb2NrKCZsby0+bXV0ZXgpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1NzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NTMxOgorXklhc3NlcnQoaW5vZGUtPnJlZmNvdW50ID49IG4pOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1ODogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTMyOgorXklpbm9kZS0+cmVmY291bnQgLT0g bjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUzMzoKK15JaWYgKCFpbm9kZS0+cmVm Y291bnQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUzNDoKK15JXklzdHJ1Y3Qg bG9faW5vZGUgKnByZXYsICpuZXh0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzU2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTM2 OgorXkleSXByZXYgPSBpbm9kZS0+cHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjUzNzoKK15JXkluZXh0ID0gaW5vZGUtPm5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo1Mzg6CiteSV5JbmV4dC0+cHJldiA9IHByZXY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo1Mzk6CiteSV5JcHJldi0+bmV4dCA9IG5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo1NDE6CiteSV5JcHRocmVhZF9tdXRleF91bmxvY2soJmxvLT5tdXRleCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NDI6CiteSV5JY2xvc2UoaW5vZGUtPmZkKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Njk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU0MzoKK15JXklmcmVlKGlub2RlKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU0NToKK15JfSBlbHNlIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjU0NjoKK15JXklwdGhyZWFkX211dGV4X3VubG9jaygmbG8tPm11 dGV4KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU0NzoKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTUyOgorXklzdHJ1Y3QgbG9fZGF0YSAqbG8gPSBsb19kYXRh KHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTc5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NTM6CiteSXN0cnVjdCBsb19p bm9kZSAqaW5vZGUgPSBsb19pbm9kZShyZXEsIGlubyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo1NTU6CiteSWlmIChsb19kZWJ1ZyhyZXEpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo1NTY6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICIgIGZvcmdldCAl bGxpICVsbGkgLSVsbGlcbiIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NTc6Cite SV5JXkkodW5zaWduZWQgbG9uZyBsb25nKSBpbm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo1NTg6CiteSV5JXkkodW5zaWduZWQgbG9uZyBsb25nKSBpbm9kZS0+cmVmY291bnQsJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTg1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NTk6CiteSV5JXkkodW5zaWduZWQgbG9uZyBs b25nKSBubG9va3VwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU2MDoKK15JfSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4ODogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTYyOgorXkl1bnJlZl9pbm9kZShsbywgaW5v ZGUsIG5sb29rdXApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzU5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTY3OgorXklsb19m b3JnZXRfb25lKHJlcSwgaW5vLCBubG9va3VwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjU2ODoKK15JZnVzZV9yZXBseV9ub25lKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo1NzI6CiteSV5JXkleSXN0cnVjdCBmdXNlX2ZvcmdldF9kYXRhICpmb3JnZXRzKSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYwMDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTc0OgorXklpbnQgaTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjU3NjoKK15JZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojNjAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NzY6Cisg ICAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjU3NzoKK15JXklsb19mb3JnZXRfb25lKHJlcSwgZm9yZ2V0c1tpXS5pbm8s IGZvcmdldHNbaV0ubmxvb2t1cCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1Nzg6 CiteSWZ1c2VfcmVwbHlfbm9uZShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzYwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NTgzOgorXkljaGFyIGJ1ZltQQVRIX01BWCArIDFdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzYxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NTg0OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzYxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTg2 OgorXklyZXMgPSByZWFkbGlua2F0KGxvX2ZkKHJlcSwgaW5vKSwgIiIsIGJ1Ziwgc2l6ZW9mKGJ1 ZikpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxMzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTg3OgorXklpZiAocmVzID09IC0x KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzYxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTg3 OgorICAgICAgIGlmIChyZXMgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjU4ODoKK15JXklyZXR1cm4gKHZvaWQpIGZ1c2VfcmVwbHlfZXJyKHJlcSwgZXJybm8pOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxNjogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTkwOgorXklpZiAocmVzID09IHNpemVvZihi dWYpKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzYxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NTkwOgorICAgICAgIGlmIChyZXMgPT0gc2l6ZW9mKGJ1ZikpClsuLi5dCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjU5MToKK15JXklyZXR1cm4gKHZvaWQpIGZ1c2VfcmVwbHlfZXJyKHJl cSwgRU5BTUVUT09MT05HKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU5MzoKK15J YnVmW3Jlc10gPSAnXDAnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzYyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTk1OgorXklm dXNlX3JlcGx5X3JlYWRsaW5rKHJlcSwgYnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjU5OToKK15JRElSICpkcDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYwMDoK K15Jc3RydWN0IGRpcmVudCAqZW50cnk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2 MDE6CiteSW9mZl90IG9mZnNldDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYwNjoK K15JcmV0dXJuIChzdHJ1Y3QgbG9fZGlycCAqKSAodWludHB0cl90KSBmaS0+Zmg7JAoKV0FSTklO RzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzYzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NjA5Ogorc3RhdGljIHZvaWQgbG9fb3BlbmRpcihmdXNlX3JlcV90IHJl cSwgZnVzZV9pbm9fdCBpbm8sIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjYxMToKK15JaW50IGVycm9yID0gRU5PTUVNOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjEyOgorXklzdHJ1Y3QgbG9fZGF0YSAqbG8gPSBsb19kYXRh KHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MTM6CiteSXN0cnVjdCBsb19k aXJwICpkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0MDog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjE0OgorXklpbnQgZmQ7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MTY6CiteSWQgPSBjYWxsb2MoMSwgc2l6ZW9m KHN0cnVjdCBsb19kaXJwKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MTc6Cite SWlmIChkID09IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNjQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo2MTc6CisgICAgICAgaWYgKGQgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0NDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NjE4OgorXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjYyMDoKK15JZmQgPSBvcGVuYXQobG9fZmQocmVxLCBpbm8pLCAiLiIs IE9fUkRPTkxZKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYyMToKK15JaWYgKGZk ID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzY0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6NjIxOgorICAgICAgIGlmIChmZCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6NjIyOgorXkleSWdvdG8gb3V0X2Vycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6NjI0OgorXklkLT5kcCA9IGZkb3BlbmRpcihmZCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo2MjU6CiteSWlmIChkLT5kcCA9PSBOVUxMKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY1MTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjI1OgorICAgICAgIGlmIChkLT5k cCA9PSBOVUxMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MjY6CiteSV5J Z290byBvdXRfZXJybm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2Mjg6CiteSWQt Pm9mZnNldCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2Mjk6CiteSWQtPmVu dHJ5ID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYzMToKK15JZmktPmZo ID0gKHVpbnRwdHJfdCkgZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYzMjoKK15J aWYgKGxvLT5jYWNoZSA9PSBDQUNIRV9BTFdBWVMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNjU4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MzI6CisgICAgICAgaWYgKGxvLT5jYWNoZSA9PSBD QUNIRV9BTFdBWVMpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYzMzoKK15J XklmaS0+a2VlcF9jYWNoZSA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MzQ6 CiteSWZ1c2VfcmVwbHlfb3BlbihyZXEsIGZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjYzNToKK15JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjM4Ogor XkllcnJvciA9IGVycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzY2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjQwOgorXklp ZiAoZCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjQxOgorXkleSWlmIChmZCAh PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiM2Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjY0MToKKyAgICAgICAgICAgICAgIGlmIChmZCAhPSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NjQyOgorXkleSV5JY2xvc2UoZmQpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6NjQzOgorXkleSWZyZWUoZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo2NDQ6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY0NToKK15JZnVz ZV9yZXBseV9lcnIocmVxLCBlcnJvcik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2 NTA6CiteSXJldHVybiBuYW1lWzBdID09ICcuJyAmJiAobmFtZVsxXSA9PSAnXDAnIHx8JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2NTE6CiteSV5JXkleSSAgKG5hbWVbMV0gPT0gJy4n ICYmIG5hbWVbMl0gPT0gJ1wwJykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjU1 OgorXkleSV5JICBvZmZfdCBvZmZzZXQsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmksIGludCBw bHVzKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4MzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjU3OgorXklzdHJ1Y3QgbG9fZGly cCAqZCA9IGxvX2RpcnAoZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjU4Ogor XkljaGFyICpidWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Njg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2NTk6CiteSWNoYXIg KnA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjg2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2NjA6CiteSXNpemVfdCByZW0gPSBz aXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4NzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjYxOgorXklpbnQgZXJyOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4OTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjYzOgorXkkodm9pZCkgaW5vOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjY1OgorXklidWYgPSBjYWxsb2MoMSwgc2l6ZSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjkyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2NjY6CiteSWlmICghYnVmKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjkzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo2Njc6CiteSV5JZXJyID0gRU5PTUVNOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5NDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NjY4OgorXkleSWdvdG8gZXJyb3I7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo2Njk6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM2OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY3 MDoKK15JcCA9IGJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY3MjoKK15JaWYg KG9mZnNldCAhPSBkLT5vZmZzZXQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM2OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY3 MzoKK15JXklzZWVrZGlyKGQtPmRwLCBvZmZzZXQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6Njc0OgorXkleSWQtPmVudHJ5ID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM3MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjY3NToKK15JXklkLT5vZmZzZXQgPSBvZmZzZXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo2NzY6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY3NzoK K15Jd2hpbGUgKDEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY3ODoKK15JXklz aXplX3QgZW50c2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY3OToKK15JXklv ZmZfdCBuZXh0b2ZmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzcwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjgwOgorXkleSWNv bnN0IGNoYXIgKm5hbWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2ODI6CiteSV5J aWYgKCFkLT5lbnRyeSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzcwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjgzOgorXkle SV5JZXJybm8gPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzcxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njg0OgorXkleSV5J ZC0+ZW50cnkgPSByZWFkZGlyKGQtPmRwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjY4NToKK15JXkleSWlmICghZC0+ZW50cnkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjY4NjoKK15JXkleSV5JaWYgKGVycm5vKSB7ICAvLyBFcnJvciQKCkVSUk9SOiBkbyBub3Qg dXNlIEM5OSAvLyBjb21tZW50cwojNzEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo2ODY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm5vKSB7 ICAvLyBFcnJvcgoKRVJST1I6IHRyYWlsaW5nIHN0YXRlbWVudHMgc2hvdWxkIGJlIG9uIG5leHQg bGluZQojNzEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2ODY6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm5vKSB7ICAvLyBFcnJvcgoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzEzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2ODc6CiteSV5JXkleSV5JZXJyID0gZXJybm87JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzE0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2ODg6CiteSV5JXkleSV5JZ290byBlcnJvcjsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY4OToKK15JXkleSV5JfSBlbHNlIHsgIC8v IEVuZCBvZiBzdHJlYW0kCgpFUlJPUjogZG8gbm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzcxNTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njg5OgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAvLyBFbmQgb2Ygc3RyZWFtCgpFUlJPUjogdHJh aWxpbmcgd2hpdGVzcGFjZQojNzE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo2OTA6CiteSV5JXkleSV5JYnJlYWs7ICQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzcxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6NjkwOgorXkleSV5JXkleSWJyZWFrOyAkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjY5MToKK15JXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzcxODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjkyOgorXkle SV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxOTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjkzOgorXkleSX0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MjA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY5NDoKK15JXkluZXh0b2ZmID0gZC0+ZW50cnktPmRfb2Zm OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyMTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njk1OgorXkleSW5hbWUgPSBkLT5lbnRy eS0+ZF9uYW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcy MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njk2OgorXkleSWZ1c2Vf aW5vX3QgZW50cnlfaW5vID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY5NzoK K15JXklpZiAocGx1cykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzcyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njk4OgorXkle SV5Jc3RydWN0IGZ1c2VfZW50cnlfcGFyYW0gZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjY5OToKK15JXkleSWlmIChpc19kb3Rfb3JfZG90ZG90KG5hbWUpKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo3MDA6CiteSV5JXkleSWUgPSAoc3RydWN0IGZ1c2VfZW50cnlf cGFyYW0pIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Mjc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcwMToKK15JXkleSV5JXkku YXR0ci5zdF9pbm8gPSBkLT5lbnRyeS0+ZF9pbm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo3MDI6CiteSV5JXkleSV5JLmF0dHIuc3RfbW9kZSA9IGQtPmVudHJ5LT5kX3R5cGUgPDwg MTIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MDM6CiteSV5JXkleSX07JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzMwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MDQ6CiteSV5JXkl9IGVsc2UgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzA1OgorXkleSV5JXkllcnIgPSBsb19kb19sb29rdXAocmVx LCBpbm8sIG5hbWUsICZlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcwNjoKK15J XkleSV5JaWYgKGVycikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiM3MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjcwNjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzMzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MDc6CiteSV5JXkleSV5JZ290byBl cnJvcjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcwODoKK15JXkleSV5JZW50cnlf aW5vID0gZS5pbm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MDk6CiteSV5JXkl9 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MTE6CiteSV5JXkllbnRzaXplID0gZnVz ZV9hZGRfZGlyZW50cnlfcGx1cyhyZXEsIHAsIHJlbSwgbmFtZSwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjcxMjoKK15JXkleSV5JXkleSV5JICZlLCBuZXh0b2ZmKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Mzk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcxMzoKK15JXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NzE0OgorXkleSV5Jc3RydWN0IHN0YXQgc3QgPSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo3MTU6CiteSV5JXkleSS5zdF9pbm8gPSBkLT5lbnRyeS0+ZF9p bm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MTY6CiteSV5JXkleSS5zdF9tb2Rl ID0gZC0+ZW50cnktPmRfdHlwZSA8PCAxMiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjcxNzoKK15JXkleSX07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MTg6CiteSV5J XkllbnRzaXplID0gZnVzZV9hZGRfZGlyZW50cnkocmVxLCBwLCByZW0sIG5hbWUsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQ1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MTk6CiteSV5JXkleSV5JXkkgICAgJnN0LCBuZXh0b2Zm KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcyMDoKK15JXkl9JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQ3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo3MjE6CiteSV5JaWYgKGVudHNpemUgPiByZW0pIHskCgpFUlJP UjogdHJhaWxpbmcgd2hpdGVzcGFjZQojNzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo3MjI6CiteSV5JXklpZiAoZW50cnlfaW5vICE9IDApICQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0ODogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NzIyOgorXkleSV5JaWYgKGVudHJ5X2lubyAhPSAwKSAkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiM3NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcyMjoKKyAgICAg ICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5X2lubyAhPSAwKSAKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0OTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NzIzOgorXkleSV5JXklsb19mb3JnZXRfb25lKHJlcSwgZW50cnlf aW5vLCAxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcyNDoKK15JXkleSWJyZWFr OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1MTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzI1OgorXkleSX0kCgpFUlJPUjogdHJh aWxpbmcgd2hpdGVzcGFjZQojNzUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo3MjY6CiteSV5JJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MjY6CiteSV5J JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzUzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3Mjc6CiteSV5JcCArPSBlbnRzaXplOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1NDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzI4OgorXkleSXJlbSAtPSBlbnRzaXplOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1NjogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzMwOgorXkleSWQtPmVudHJ5ID0gTlVMTDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjczMToKK15JXklkLT5vZmZzZXQgPSBuZXh0 b2ZmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1ODogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzMyOgorXkl9JAoKRVJST1I6IGRv IG5vdCB1c2UgQzk5IC8vIGNvbW1lbnRzCiM3NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjczNjoKKyAgICAvLyBJZiB0aGVyZSdzIGFuIGVycm9yLCB3ZSBjYW4gb25s eSBzaWduYWwgaXQgaWYgd2UgaGF2ZW4ndCBzdG9yZWQKCkVSUk9SOiBkbyBub3QgdXNlIEM5OSAv LyBjb21tZW50cwojNzYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3 Mzc6CisgICAgLy8gYW55IGVudHJpZXMgeWV0IC0gb3RoZXJ3aXNlIHdlJ2QgZW5kIHVwIHdpdGgg d3JvbmcgbG9va3VwCgpFUlJPUjogZG8gbm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzc2NDogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzM4OgorICAgIC8vIGNvdW50cyBm b3IgdGhlIGVudHJpZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiB0aGUgYnVmZmVyLiBTbyB3ZQoKRVJS T1I6IGRvIG5vdCB1c2UgQzk5IC8vIGNvbW1lbnRzCiM3NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjczOToKKyAgICAvLyByZXR1cm4gd2hhdCB3ZSd2ZSBjb2xsZWN0 ZWQgdW50aWwgdGhhdCBwb2ludC4KCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzc2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NzQwOgorICAgIGlmIChlcnIgJiYgcmVtID09IHNpemUpClsuLi5dCisg ICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NDE6CiteSSAgICBm dXNlX3JlcGx5X2VycihyZXEsIGVycik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3 NDM6CiteSSAgICBmdXNlX3JlcGx5X2J1ZihyZXEsIGJ1Ziwgc2l6ZSAtIHJlbSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NDg6CiteSV5JICAgICAgIG9mZl90IG9mZnNldCwgc3Ry dWN0IGZ1c2VfZmlsZV9pbmZvICpmaSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc1 MDoKK15JbG9fZG9fcmVhZGRpcihyZXEsIGlubywgc2l6ZSwgb2Zmc2V0LCBmaSwgMCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzgwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NTQ6CiteSV5JXkkgICBvZmZfdCBvZmZzZXQsIHN0 cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3 NTY6CiteSWxvX2RvX3JlYWRkaXIocmVxLCBpbm8sIHNpemUsIG9mZnNldCwgZmksIDEpOyQKCldB Uk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM3ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjc1OToKK3N0YXRpYyB2b2lkIGxvX3JlbGVhc2VkaXIoZnVzZV9y ZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NjE6CiteSXN0cnVjdCBsb19kaXJwICpkID0gbG9f ZGlycChmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NjI6CiteSSh2b2lkKSBp bm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NjM6CiteSWNsb3NlZGlyKGQtPmRw KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc2NDoKK15JZnJlZShkKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc2NToKK15JZnVzZV9yZXBseV9lcnIocmVxLCAwKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc2OToKK15JXkkgICAgICBtb2RlX3QgbW9k ZSwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjc3MToKK15JaW50IGZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzc5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzcyOgor XklzdHJ1Y3QgbG9fZGF0YSAqbG8gPSBsb19kYXRhKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo3NzM6CiteSXN0cnVjdCBmdXNlX2VudHJ5X3BhcmFtIGU7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODAwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo3NzQ6CiteSWludCBlcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojODAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo3NzY6CiteSWlmIChsb19kZWJ1ZyhyZXEpKSQKCldBUk5JTkc6IGxpbmUgb3Zl ciA4MCBjaGFyYWN0ZXJzCiM4MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjc3NzoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAibG9fY3Jl YXRlKHBhcmVudD0lIiBQUkl1NjQgIiwgbmFtZT0lcylcbiIsCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjc3NzoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgImxvX2NyZWF0ZShw YXJlbnQ9JSIgUFJJdTY0ICIsIG5hbWU9JXMpXG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzgwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6Nzc4OgorXkleSV5JcGFyZW50LCBuYW1lKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjc4MDoKK15JZmQgPSBvcGVuYXQobG9fZmQocmVxLCBwYXJlbnQpLCBuYW1lLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwNzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzgxOgorXkleSSAgICAoZmktPmZsYWdzIHwgT19D UkVBVCkgJiB+T19OT0ZPTExPVywgbW9kZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojODA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo3ODI6CiteSWlmIChmZCA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM4MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjc4MjoKKyAgICAgICBpZiAoZmQgPT0gLTEpClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc4MzoKK15JXklyZXR1cm4gKHZvaWQpIGZ1c2VfcmVw bHlfZXJyKHJlcSwgZXJybm8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzg1Ogor XklmaS0+ZmggPSBmZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM4MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc4NjoKK15JaWYg KGxvLT5jYWNoZSA9PSBDQUNIRV9ORVZFUikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM4MTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc4NjoKKyAgICAgICBpZiAobG8tPmNhY2hlID09IENBQ0hF X05FVkVSKQpbLi4uXQorICAgICAgIGVsc2UgaWYgKGxvLT5jYWNoZSA9PSBDQUNIRV9BTFdBWVMp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc4NzoKK15JXklmaS0+ZGlyZWN0 X2lvID0gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc4ODoKK15JZWxzZSBpZiAo bG8tPmNhY2hlID09IENBQ0hFX0FMV0FZUykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM4MTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc4ODoKKyAgICAgICBlbHNlIGlmIChsby0+Y2FjaGUgPT0g Q0FDSEVfQUxXQVlTKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3ODk6Cite SV5JZmktPmtlZXBfY2FjaGUgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzgxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzkx OgorXkllcnIgPSBsb19kb19sb29rdXAocmVxLCBwYXJlbnQsIG5hbWUsICZlKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc5MjoKK15JaWYgKGVycikkCgpFUlJPUjogYnJhY2VzIHt9 IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM4MTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc5MjoKKyAgICAgICBpZiAoZXJyKQpb Li4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzgxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzkz OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgZXJyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjc5NDoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzk1Ogor XkleSWZ1c2VfcmVwbHlfY3JlYXRlKHJlcSwgJmUsIGZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjc5OToKK15JXkleSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MDE6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo4MDI6CiteSWludCBmZCA9IGRpcmZkKGxvX2RpcnAoZmkpLT5kcCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MDM6CiteSSh2b2lkKSBpbm87JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODMwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MDQ6CiteSWlmIChkYXRhc3luYykkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM4MzA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgwNDoKKyAgICAgICBpZiAo ZGF0YXN5bmMpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojODMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo4MDU6CiteSV5JcmVzID0gZmRhdGFzeW5jKGZkKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjgwNjoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzgzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 ODA3OgorXkleSXJlcyA9IGZzeW5jKGZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjgwODoKK15JZnVzZV9yZXBseV9lcnIocmVxLCByZXMgPT0gLTEgPyBlcnJubyA6IDApOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgzOTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODEzOgorXklpbnQgZmQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo4MTQ6CiteSWNoYXIgYnVmWzY0XTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjgxNToKK15Jc3RydWN0IGxvX2RhdGEgKmxvID0gbG9fZGF0YShyZXEpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0MzogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODE3OgorXklpZiAobG9fZGVidWcocmVxKSkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgxODoKK15JXklmdXNlX2xvZyhGVVNFX0xP R19ERUJVRywgImxvX29wZW4oaW5vPSUiIFBSSXU2NCAiLCBmbGFncz0lZClcbiIsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MTk6CiteSV5JXklpbm8sIGZpLT5mbGFncyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MjE6CiteSS8qIFdpdGggd3JpdGViYWNrIGNhY2hl LCBrZXJuZWwgbWF5IHNlbmQgcmVhZCByZXF1ZXN0cyBldmVuJAoKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzg0NzogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODIxOgorICAgICAgIC8qIFdpdGggd3JpdGVi YWNrIGNhY2hlLCBrZXJuZWwgbWF5IHNlbmQgcmVhZCByZXF1ZXN0cyBldmVuCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjgyMjoKK15JICAgd2hlbiB1c2Vyc3BhY2Ugb3BlbmVkIHdyaXRl LW9ubHkgKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxp bmVzCiM4NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgyMjoKKyAg ICAgICAvKiBXaXRoIHdyaXRlYmFjayBjYWNoZSwga2VybmVsIG1heSBzZW5kIHJlYWQgcmVxdWVz dHMgZXZlbgorICAgICAgICAgIHdoZW4gdXNlcnNwYWNlIG9wZW5lZCB3cml0ZS1vbmx5ICovCgpX QVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxp bmUKIzg0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODIyOgorICAg ICAgICAgIHdoZW4gdXNlcnNwYWNlIG9wZW5lZCB3cml0ZS1vbmx5ICovCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjgyMzoKK15JaWYgKGxvLT53cml0ZWJhY2sgJiYgKGZpLT5mbGFncyAm IE9fQUNDTU9ERSkgPT0gT19XUk9OTFkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjgyNDoKK15JXklmaS0+ZmxhZ3MgJj0gfk9fQUNDTU9ERTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjgyNToKK15JXklmaS0+ZmxhZ3MgfD0gT19SRFdSOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6ODI2OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojODU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4 Mjg6CiteSS8qIFdpdGggd3JpdGViYWNrIGNhY2hlLCBPX0FQUEVORCBpcyBoYW5kbGVkIGJ5IHRo ZSBrZXJuZWwuJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBh IHNlcGFyYXRlIGxpbmUKIzg1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6ODI4OgorICAgICAgIC8qIFdpdGggd3JpdGViYWNrIGNhY2hlLCBPX0FQUEVORCBpcyBoYW5k bGVkIGJ5IHRoZSBrZXJuZWwuCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM4NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgyOToKK15J ICAgVGhpcyBicmVha3MgYXRvbWljaXR5IChzaW5jZSB0aGUgZmlsZSBtYXkgY2hhbmdlIGluIHRo ZSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzg1 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODI5OgorICAgICAgIC8q IFdpdGggd3JpdGViYWNrIGNhY2hlLCBPX0FQUEVORCBpcyBoYW5kbGVkIGJ5IHRoZSBrZXJuZWwu CisgICAgICAgICAgVGhpcyBicmVha3MgYXRvbWljaXR5IChzaW5jZSB0aGUgZmlsZSBtYXkgY2hh bmdlIGluIHRoZQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODU2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MzA6CiteSSAgIHVuZGVy bHlpbmcgZmlsZXN5c3RlbSwgc28gdGhhdCB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgzMToKK15JICAgZW5kIG9mIHRoZSBmaWxlIGlzbid0 IGFjY3VyYXRlIGFueW1vcmUpLiBJbiB0aGlzIGV4YW1wbGUsJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojODU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo4MzI6CiteSSAgIHdlIGp1c3QgYWNjZXB0IHRoYXQuIEEgbW9yZSByaWdvcm91 cyBmaWxlc3lzdGVtIG1heSB3YW50JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojODU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MzM6 CiteSSAgIHRvIHJldHVybiBhbiBlcnJvciBoZXJlICovJAoKV0FSTklORzogQmxvY2sgY29tbWVu dHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiM4NTk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgzMzoKKyAgICAgICAgICB0byByZXR1cm4gYW4g ZXJyb3IgaGVyZSAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj ODYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MzQ6CiteSWlmIChs by0+d3JpdGViYWNrICYmIChmaS0+ZmxhZ3MgJiBPX0FQUEVORCkpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojODYwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MzQ6CisgICAgICAgaWYgKGxvLT53 cml0ZWJhY2sgJiYgKGZpLT5mbGFncyAmIE9fQVBQRU5EKSkKWy4uLl0KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6ODM1OgorXkleSWZpLT5mbGFncyAmPSB+T19BUFBFTkQ7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODYzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4Mzc6CiteSXNwcmludGYoYnVmLCAiL3Byb2Mvc2VsZi9m ZC8laSIsIGxvX2ZkKHJlcSwgaW5vKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojODY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4 Mzg6CiteSWZkID0gb3BlbihidWYsIGZpLT5mbGFncyAmIH5PX05PRk9MTE9XKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NjU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgzOToKK15JaWYgKGZkID09IC0xKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzg2NTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODM5OgorICAgICAgIGlmIChm ZCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODQwOgorXkleSXJl dHVybiAodm9pZCkgZnVzZV9yZXBseV9lcnIocmVxLCBlcnJubyk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo4NDI6CiteSWZpLT5maCA9IGZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6ODQzOgorXklpZiAobG8tPmNhY2hlID09IENBQ0hFX05FVkVSKSQKCkVSUk9SOiBi cmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzg2 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODQzOgorICAgICAgIGlm IChsby0+Y2FjaGUgPT0gQ0FDSEVfTkVWRVIpClsuLi5dCisgICAgICAgZWxzZSBpZiAobG8tPmNh Y2hlID09IENBQ0hFX0FMV0FZUykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzg3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 ODQ0OgorXkleSWZpLT5kaXJlY3RfaW8gPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzg3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6ODQ1OgorXkllbHNlIGlmIChsby0+Y2FjaGUgPT0gQ0FDSEVfQUxXQVlTKSQKCkVSUk9SOiBi cmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzg3 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODQ1OgorICAgICAgIGVs c2UgaWYgKGxvLT5jYWNoZSA9PSBDQUNIRV9BTFdBWVMpClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjg0NjoKK15JXklmaS0+a2VlcF9jYWNoZSA9IDE7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODczOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo4NDc6CiteSWZ1c2VfcmVwbHlfb3BlbihyZXEsIGZpKTskCgpXQVJO SU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojODc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo4NTA6CitzdGF0aWMgdm9pZCBsb19yZWxlYXNlKGZ1c2VfcmVxX3Qg cmVxLCBmdXNlX2lub190IGlubywgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSkKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODUyOgorXkkodm9pZCkgaW5vOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6ODU0OgorXkljbG9zZShmaS0+ZmgpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6ODU1OgorXklmdXNlX3JlcGx5X2VycihyZXEsIDApOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4NjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6ODYwOgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6ODYxOgorXkkodm9pZCkgaW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzg4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6ODYyOgorXklyZXMgPSBjbG9zZShkdXAoZmktPmZoKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojODg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo4NjM6CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgcmVzID09IC0xID8gZXJybm8g OiAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4OTM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg2NzoKK15JXkkgICAgIHN0cnVj dCBmdXNlX2ZpbGVfaW5mbyAqZmkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojODk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4Njk6 CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj ODk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4NzA6CiteSSh2b2lk KSBpbm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODk3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4NzE6CiteSWlmIChkYXRhc3lu YykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiM4OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg3 MToKKyAgICAgICBpZiAoZGF0YXN5bmMpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODk4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4NzI6CiteSV5JcmVzID0gZmRhdGFzeW5jKGZpLT5maCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODk5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4NzM6CiteSWVsc2UkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjg3NDoKK15JXklyZXMgPSBmc3luYyhmaS0+ZmgpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkwMTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODc1OgorXklmdXNlX3JlcGx5X2VycihyZXEsIHJlcyA9 PSAtMSA/IGVycm5vIDogMCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojOTA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4Nzk6Cite SV5JICAgIG9mZl90IG9mZnNldCwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSkkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg4MToKK15Jc3RydWN0IGZ1c2VfYnVmdmVjIGJ1ZiA9IEZV U0VfQlVGVkVDX0lOSVQoc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojOTA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4ODM6 CiteSWlmIChsb19kZWJ1ZyhyZXEpKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzkxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODg0 OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAibG9fcmVhZChpbm89JSIgUFJJdTY0ICIs IHNpemU9JXpkLCAiJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj OTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4ODU6CiteSV5JXkki b2ZmPSVsdSlcbiIsIGlubywgc2l6ZSwgKHVuc2lnbmVkIGxvbmcpIG9mZnNldCk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTEzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4ODc6CiteSWJ1Zi5idWZbMF0uZmxhZ3MgPSBGVVNFX0JV Rl9JU19GRCB8IEZVU0VfQlVGX0ZEX1NFRUs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojOTE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo4ODg6CiteSWJ1Zi5idWZbMF0uZmQgPSBmaS0+Zmg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojOTE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo4ODk6CiteSWJ1Zi5idWZbMF0ucG9zID0gb2Zmc2V0OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6ODkxOgorXklmdXNlX3JlcGx5X2RhdGEocmVxLCAmYnVmLCBGVVNFX0JV Rl9TUExJQ0VfTU9WRSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojOTIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4OTU6CiteSV5J Xkkgc3RydWN0IGZ1c2VfYnVmdmVjICppbl9idWYsIG9mZl90IG9mZiwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjg5NjoKK15JXkleSSBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkyNDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODk4OgorXkkodm9pZCkgaW5vOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkyNTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODk5OgorXklzc2l6ZV90IHJlczskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjkwMDoKK15Jc3RydWN0IGZ1c2VfYnVmdmVjIG91dF9idWYgPSBG VVNFX0JVRlZFQ19JTklUKGZ1c2VfYnVmX3NpemUoaW5fYnVmKSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo5MDI6CiteSW91dF9idWYuYnVmWzBdLmZsYWdzID0gRlVTRV9CVUZfSVNf RkQgfCBGVVNFX0JVRl9GRF9TRUVLOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzkyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTAz OgorXklvdXRfYnVmLmJ1ZlswXS5mZCA9IGZpLT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjkwNDoKK15Jb3V0X2J1Zi5idWZbMF0ucG9zID0gb2ZmOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6OTA2OgorXklpZiAobG9fZGVidWcocmVxKSkkCgpXQVJOSU5HOiBsaW5l IG92ZXIgODAgY2hhcmFjdGVycwojOTMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo5MDc6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgImxv X3dyaXRlKGlubz0lIiBQUkl1NjQgIiwgc2l6ZT0lemQsIG9mZj0lbHUpXG4iLAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTMzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo5MDc6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJs b193cml0ZShpbm89JSIgUFJJdTY0ICIsIHNpemU9JXpkLCBvZmY9JWx1KVxuIiwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MzQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkwODoKK15JXkleSWlubywgb3V0X2J1Zi5idWZbMF0uc2l6 ZSwgKHVuc2lnbmVkIGxvbmcpIG9mZik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojOTM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5 MTA6CiteSXJlcyA9IGZ1c2VfYnVmX2NvcHkoJm91dF9idWYsIGluX2J1ZiwgMCk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTM3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MTE6CiteSWlmKHJlcyA8IDApJAoKRVJST1I6IHNwYWNl IHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzkzNzogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTExOgorICAgICAgIGlmKHJlcyA8IDApCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiM5Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkxMToKKyAg ICAgICBpZihyZXMgPCAwKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6OTEyOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgLXJlcyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTM5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MTM6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjkxNDoKK15JXklmdXNlX3JlcGx5X3dyaXRlKHJlcSwgKHNpemVfdCkgcmVz KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NDU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkxOToKK15JaW50IHJlczskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NDY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkyMDoKK15Jc3RydWN0IHN0YXR2ZnMgc3RidWY7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTQ4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MjI6CiteSXJlcyA9IGZzdGF0dmZzKGxvX2Zk KHJlcSwgaW5vKSwgJnN0YnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM5NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkyMzoK K15JaWYgKHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM5NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjkyMzoKKyAgICAgICBpZiAocmVzID09IC0xKQpbLi4uXQorICAgICAgIGVs c2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1MDog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTI0OgorXkleSWZ1c2VfcmVw bHlfZXJyKHJlcSwgZXJybm8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzk1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTI1Ogor XkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTUyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MjY6CiteSV5JZnVzZV9yZXBs eV9zdGF0ZnMocmVxLCAmc3RidWYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzk1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTMw OgorXkleSV5JIG9mZl90IG9mZnNldCwgb2ZmX3QgbGVuZ3RoLCBzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKmZpKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1ODog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTMyOgorXklpbnQgZXJyID0g RU9QTk9UU1VQUDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5 NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkzMzoKK15JKHZvaWQp IGlubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkzNjoKK15JZXJyID0gZmFsbG9j YXRlKGZpLT5maCwgbW9kZSwgb2Zmc2V0LCBsZW5ndGgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6OTM3OgorXklpZiAoZXJyIDwgMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM5NjM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkzNzoKKyAgICAgICBpZiAoZXJyIDwgMCkKWy4uLl0K CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2NDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTM4OgorXkleSWVyciA9IGVycm5vOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2NzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTQxOgorXklpZiAobW9kZSkgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTQyOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU9QTk9U U1VQUCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTY5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5NDM6CiteSV5JcmV0dXJuOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3MDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTQ0OgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo5NDY6CiteSWVyciA9IHBvc2l4X2ZhbGxvY2F0ZShmaS0+ZmgsIG9mZnNl dCwgbGVuZ3RoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5 NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk0OToKK15JZnVzZV9y ZXBseV9lcnIocmVxLCBlcnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzk3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTUzOgor XkleSSAgICAgaW50IG9wKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzk4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTU1OgorXklp bnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTU2OgorXkkodm9pZCkgaW5v OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4NDogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTU4OgorXklyZXMgPSBmbG9jayhmaS0+ ZmgsIG9wKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk2MDoKK15JZnVzZV9yZXBs eV9lcnIocmVxLCByZXMgPT0gLTEgPyBlcnJubyA6IDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6OTY0OgorXkleSV5Jc2l6ZV90IHNpemUpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojOTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo5NjY6CiteSWNoYXIgKnZhbHVlID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjk2NzoKK15JY2hhciBwcm9jbmFtZVs2NF07JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo5Njg6CiteSXN0cnVjdCBsb19pbm9kZSAqaW5vZGUgPSBsb19pbm9kZShyZXEs IGlubyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTk1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5Njk6CiteSXNzaXplX3QgcmV0 OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5NjogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTcwOgorXklpbnQgc2F2ZXJyOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5ODogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTcyOgorXklzYXZlcnIgPSBFTk9TWVM7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTk5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5NzM6CiteSWlmICghbG9fZGF0YShyZXEpLT54YXR0 cikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiM5OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk3 MzoKKyAgICAgICBpZiAoIWxvX2RhdGEocmVxKS0+eGF0dHIpClsuLi5dCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo5NzQ6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6OTc2OgorXklpZiAobG9fZGVidWcocmVxKSkgeyQKCkVSUk9SOiBsaW5lIG92 ZXIgOTAgY2hhcmFjdGVycwojMTAwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6OTc3OgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJsb19n ZXR4YXR0cihpbm89JSIgUFJJdTY0ICIsIG5hbWU9JXMgc2l6ZT0lemQpXG4iLAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTc3OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAi bG9fZ2V0eGF0dHIoaW5vPSUiIFBSSXU2NCAiLCBuYW1lPSVzIHNpemU9JXpkKVxuIiwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5Nzg6CiteSV5JXklpbm8sIG5hbWUsIHNpemUpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk3OToKK15JfSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjk4MToKK15JaWYgKGlub2RlLT5pc19zeW1saW5rKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwODogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTgyOgorXkleSS8qIFNvcnJ5LCBubyByYWNlIGZyZWUg d2F5IHRvIGdldHhhdHRyIG9uIHN5bWxpbmsuICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTAwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6OTgzOgorXkleSXNhdmVyciA9IEVQRVJNOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjk4NDoKK15JXklnb3RvIG91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo5ODU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MDEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5ODc6CiteSXNwcmlu dGYocHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaW5vZGUtPmZkKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo5ODk6CiteSWlmIChzaXplKSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6OTkwOgorXkleSXZhbHVlID0gbWFsbG9jKHNpemUpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5MToKK15JXklpZiAoIXZhbHVlKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEwMTc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5MToKKyAgICAgICAgICAg ICAgIGlmICghdmFsdWUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5OTI6 CiteSV5JXklnb3RvIG91dF9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTAyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTk0 OgorXkleSXJldCA9IGdldHhhdHRyKHByb2NuYW1lLCBuYW1lLCB2YWx1ZSwgc2l6ZSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAyMTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTk1OgorXkleSWlmIChyZXQgPT0gLTEpJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMTAyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTk1OgorICAg ICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjk5NjoKK15JXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo5OTc6CiteSV5Jc2F2ZXJyID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMDI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo5OTg6CiteSV5JaWYgKHJldCA9PSAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEwMjQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5ODoKKyAgICAgICAgICAgICAgIGlmIChyZXQgPT0g MCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5OToKK15JXkleSWdvdG8g b3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMDE6CiteSV5JZnVzZV9yZXBs eV9idWYocmVxLCB2YWx1ZSwgcmV0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMDI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MDAyOgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwMjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMDM6Cite SV5JcmV0ID0gZ2V0eGF0dHIocHJvY25hbWUsIG5hbWUsIE5VTEwsIDApOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjEwMDQ6CiteSV5JaWYgKHJldCA9PSAtMSkkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMDMw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDA0OgorICAgICAgICAg ICAgICAgaWYgKHJldCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwMzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEwMDU6CiteSV5JXklnb3RvIG91dF9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTAzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTAwNzoKK15JXklmdXNlX3JlcGx5X3hhdHRyKHJlcSwgcmV0KTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMDA4OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTAzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTAxMDoKK15JZnJlZSh2YWx1ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTAzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MTAxMToKK15JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMTQ6Cite SXNhdmVyciA9IGVycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMTY6Cite SWZ1c2VfcmVwbHlfZXJyKHJlcSwgc2F2ZXJyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMDQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoxMDE3OgorXklnb3RvIG91dF9mcmVlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEwMjI6CiteSWNoYXIgKnZhbHVlID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMDIzOgorXkljaGFyIHByb2NuYW1lWzY0XTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMDI0OgorXklzdHJ1Y3QgbG9faW5vZGUgKmlub2RlID0gbG9faW5vZGUocmVx LCBpbm8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMjU6CiteSXNzaXplX3Qg cmV0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMjY6CiteSWludCBzYXZlcnI7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1NDogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAyODoKK15Jc2F2ZXJyID0gRU5PU1lT OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMjk6CiteSWlmICghbG9fZGF0YShy ZXEpLT54YXR0cikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiMxMDU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMDI5OgorICAgICAgIGlmICghbG9fZGF0YShyZXEpLT54YXR0cikKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMzA6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1ODogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzMjoKK15JaWYgKGxvX2RlYnVnKHJlcSkpIHskCgpX QVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTA1OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzMzoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0Vf TE9HX0RFQlVHLCAibG9fbGlzdHhhdHRyKGlubz0lIiBQUkl1NjQgIiwgc2l6ZT0lemQpXG4iLAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1OTogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzMzoKK15JXklmdXNlX2xvZyhGVVNFX0xP R19ERUJVRywgImxvX2xpc3R4YXR0cihpbm89JSIgUFJJdTY0ICIsIHNpemU9JXpkKVxuIiwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDYwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDM0OgorXkleSV5JaW5vLCBzaXplKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDYxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDM1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTAzNzoKK15JaWYgKGlub2RlLT5pc19zeW1saW5rKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2NDogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzODoKK15JXkkvKiBTb3JyeSwgbm8gcmFjZSBmcmVl IHdheSB0byBsaXN0eGF0dHIgb24gc3ltbGluay4gKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMDM5OgorXkleSXNhdmVyciA9IEVQRVJNOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjEwNDA6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTA2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTA0MToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNDM6Cite SXNwcmludGYocHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaW5vZGUtPmZkKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDcxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDQ1OgorXklpZiAoc2l6ZSkgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNDY6CiteSV5JdmFsdWUgPSBtYWxsb2Moc2l6ZSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA3MzogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA0NzoKK15JXklpZiAoIXZhbHVlKSQKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzEwNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNDc6Cisg ICAgICAgICAgICAgICBpZiAoIXZhbHVlKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTA3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTA0ODoKK15JXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMDUwOgorXkleSXJldCA9IGxpc3R4YXR0cihwcm9jbmFtZSwgdmFsdWUsIHNpemUp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNTE6CiteSV5JaWYgKHJldCA9PSAt MSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiMxMDc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MDUxOgorICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEwNTI6CiteSV5JXklnb3RvIG91dF9lcnI7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA3OTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTA1MzoKK15JXklzYXZlcnIgPSAwOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEwNTQ6CiteSV5JaWYgKHJldCA9PSAwKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEwODA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNTQ6CisgICAgICAgICAgICAg ICBpZiAocmV0ID09IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMDgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDU1 OgorXkleSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTA4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA1NzoK K15JXklmdXNlX3JlcGx5X2J1ZihyZXEsIHZhbHVlLCByZXQpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEwNTg6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTA4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTA1OToKK15JXklyZXQgPSBsaXN0eGF0dHIocHJvY25hbWUsIE5VTEwsIDApOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNjA6CiteSV5JaWYgKHJldCA9PSAtMSkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiMxMDg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDYwOgor ICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjEwNjE6CiteSV5JXklnb3RvIG91dF9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTA2MzoKK15JXklmdXNlX3JlcGx5X3hhdHRyKHJlcSwgcmV0KTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDkwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDY0OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTA2NjoKK15JZnJlZSh2YWx1ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTA5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTA2NzoKK15JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEwNzA6CiteSXNhdmVyciA9IGVycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEwNzI6CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgc2F2ZXJyKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxMDczOgorXklnb3RvIG91dF9mcmVlOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEwNzc6CiteSV5JXkljb25zdCBjaGFyICp2YWx1ZSwgc2l6ZV90IHNpemUs IGludCBmbGFncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDc5OgorXkljaGFy IHByb2NuYW1lWzY0XTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDgwOgorXklz dHJ1Y3QgbG9faW5vZGUgKmlub2RlID0gbG9faW5vZGUocmVxLCBpbm8pOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjEwODE6CiteSXNzaXplX3QgcmV0OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEwODI6CiteSWludCBzYXZlcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTExMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTA4NDoKK15Jc2F2ZXJyID0gRU5PU1lTOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEwODU6CiteSWlmICghbG9fZGF0YShyZXEpLT54YXR0cikkCgpFUlJPUjog YnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMx MTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDg1OgorICAgICAg IGlmICghbG9fZGF0YShyZXEpLT54YXR0cikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzExMTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjEwODY6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTExNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTA4ODoKK15JaWYgKGxvX2RlYnVnKHJlcSkpIHskCgpFUlJPUjogbGluZSBvdmVyIDkwIGNo YXJhY3RlcnMKIzExMTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEw ODk6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgImxvX3NldHhhdHRy KGlubz0lIiBQUkl1NjQgIiwgbmFtZT0lcyB2YWx1ZT0lcyBzaXplPSV6ZClcbiIsCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDg5OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVH LCAibG9fc2V0eGF0dHIoaW5vPSUiIFBSSXU2NCAiLCBuYW1lPSVzIHZhbHVlPSVzIHNpemU9JXpk KVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDkwOgorXkleSV5JaW5vLCBu YW1lLCB2YWx1ZSwgc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTExNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA5MToK K15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwOTM6CiteSWlmIChpbm9kZS0+ aXNfc3ltbGluaykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwOTQ6CiteSV5J LyogU29ycnksIG5vIHJhY2UgZnJlZSB3YXkgdG8gc2V0eGF0dHIgb24gc3ltbGluay4gKi8kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTIxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDk1OgorXkleSXNhdmVyciA9IEVQRVJNOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwOTY6CiteSV5JZ290byBvdXQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEyMzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA5NzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEwOTk6CiteSXNwcmludGYocHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVp IiwgaW5vZGUtPmZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTAxOgorXkly ZXQgPSBzZXR4YXR0cihwcm9jbmFtZSwgbmFtZSwgdmFsdWUsIHNpemUsIGZsYWdzKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTAyOgorXklzYXZlcnIgPSByZXQgPT0gLTEgPyBl cnJubyA6IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEz MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEwNToKK15JZnVzZV9y ZXBseV9lcnIocmVxLCBzYXZlcnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzExMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEx MTA6CiteSWNoYXIgcHJvY25hbWVbNjRdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjExMTE6CiteSXN0cnVjdCBsb19pbm9kZSAqaW5vZGUgPSBsb19pbm9kZShyZXEsIGlubyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzODogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTExMjoKK15Jc3NpemVfdCByZXQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzOTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTExMzoKK15JaW50IHNhdmVycjskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTQxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTE1OgorXklzYXZlcnIgPSBFTk9TWVM7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0MjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTExNjoKK15JaWYgKCFsb19kYXRhKHJlcSktPnhhdHRy KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzExNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEx MTY6CisgICAgICAgaWYgKCFsb19kYXRhKHJlcSktPnhhdHRyKQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0MzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTExNzoKK15JXklnb3RvIG91dDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxMTE5OgorXklpZiAobG9fZGVidWcocmVxKSkgeyQKCldBUk5JTkc6IGxp bmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMxMTQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMTIwOgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfREVCVUcs ICJsb19yZW1vdmV4YXR0cihpbm89JSIgUFJJdTY0ICIsIG5hbWU9JXMpXG4iLAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEyMDoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywg ImxvX3JlbW92ZXhhdHRyKGlubz0lIiBQUkl1NjQgIiwgbmFtZT0lcylcbiIsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEyMToKK15JXkleSWlubywgbmFtZSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEyMjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjExMjQ6CiteSWlmIChpbm9kZS0+aXNfc3ltbGluaykgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjExMjU6CiteSV5JLyogU29ycnksIG5vIHJhY2UgZnJlZSB3YXkgdG8g c2V0eGF0dHIgb24gc3ltbGluay4gKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MTI2OgorXkleSXNhdmVyciA9IEVQRVJNOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjExMjc6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTE1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEy ODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExMzA6CiteSXNwcmludGYo cHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaW5vZGUtPmZkKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMTMyOgorXklyZXQgPSByZW1vdmV4YXR0cihwcm9jbmFtZSwgbmFt ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1OTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEzMzoKK15Jc2F2ZXJyID0gcmV0 ID09IC0xID8gZXJybm8gOiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExMzY6 CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgc2F2ZXJyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMTQxOgorXkleSV5JICAgICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmlfaW4s JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2ODogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE0MjoKK15JXkleSSAgICAgICBmdXNl X2lub190IGlub19vdXQsIG9mZl90IG9mZl9vdXQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTE2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTE0MzoKK15JXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpX291dCwg c2l6ZV90IGxlbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTQ0OgorXkleSV5J ICAgICAgIGludCBmbGFncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTQ2Ogor Xklzc2l6ZV90IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTQ4OgorXklp ZiAobG9fZGVidWcocmVxKSkkCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTE3 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE0OToKKyAgICAgICAg ICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAibG9fY29weV9maWxlX3JhbmdlKGlubz0l IiBQUkl1NjQgIi9mZD0lbHUsICIKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNDk6 CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJsb19jb3B5X2ZpbGVfcmFuZ2UoaW5vPSUi IFBSSXU2NCAiL2ZkPSVsdSwgIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNTA6 CiteSV5JXkleSSJvZmY9JWx1LCBpbm89JSIgUFJJdTY0ICIvZmQ9JWx1LCAiJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1MToKK15JXkleSV5JIm9mZj0lbHUsIHNpemU9JXpkLCBm bGFncz0weCV4KVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTUyOgorXkle SV5JaW5vX2luLCBmaV9pbi0+ZmgsIG9mZl9pbiwgaW5vX291dCwgZmlfb3V0LT5maCwgb2ZmX291 dCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTc5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTUzOgorXkleSV5JbGVuLCBmbGFn cyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4MTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1NToKK15JcmVzID0gY29weV9m aWxlX3JhbmdlKGZpX2luLT5maCwgJm9mZl9pbiwgZmlfb3V0LT5maCwgJm9mZl9vdXQsIGxlbiwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTU2OgorXkleSV5JICAgICAgZmxhZ3Mp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNTc6CiteSWlmIChyZXMgPCAwKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzExODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNTc6 CisgICAgICAgaWYgKHJlcyA8IDApClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1ODoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIC1lcnJu byk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4NTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1OToKK15JZWxzZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNjA6CiteSV5JZnVzZV9yZXBseV93cml0ZShyZXEs IHJlcyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5MTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE2NToKK15JXkkgICAgIHN0 cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTE5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MTE2NzoKK15Jb2ZmX3QgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNjk6 CiteSSh2b2lkKWlubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTcwOgorXkly ZXMgPSBsc2VlayhmaS0+ZmgsIG9mZiwgd2hlbmNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMTcxOgorXklpZiAocmVzICE9IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzExOTc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNzE6CisgICAgICAgaWYgKHJlcyAhPSAtMSkK Wy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MTcyOgorXkleSWZ1c2VfcmVwbHlfbHNlZWsocmVxLCByZXMpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjExNzM6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMTc0OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgZXJybm8pOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjExNzg6CiteSS5pbml0XkleST0gbG9faW5pdCwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMTc5OgorXkkubG9va3VwXkleST0gbG9fbG9va3VwLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODA6CiteSS5ta2Rpcl5JXkk9IGxvX21rZGly LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODE6CiteSS5ta25vZF5JXkk9IGxv X21rbm9kLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODI6CiteSS5zeW1saW5r Xkk9IGxvX3N5bWxpbmssJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTIwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE4MzoKK15J LmxpbmteSV5JPSBsb19saW5rLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODQ6 CiteSS51bmxpbmteSV5JPSBsb191bmxpbmssJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTIxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTE4NToKK15JLnJtZGlyXkleST0gbG9fcm1kaXIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTE4NjoKK15JLnJlbmFtZV5JXkk9IGxvX3JlbmFtZSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMTg3OgorXkkuZm9yZ2V0XkleST0gbG9fZm9yZ2V0LCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODg6CiteSS5mb3JnZXRfbXVsdGleST0gbG9fZm9y Z2V0X211bHRpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODk6CiteSS5nZXRh dHRyXkk9IGxvX2dldGF0dHIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTIxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE5MDoK K15JLnNldGF0dHJeST0gbG9fc2V0YXR0ciwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMTkxOgorXkkucmVhZGxpbmteST0gbG9fcmVhZGxpbmssJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTE5MjoKK15JLm9wZW5kaXJeST0gbG9fb3BlbmRpciwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjE5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMTkzOgorXkkucmVhZGRpcl5JPSBsb19yZWFkZGlyLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExOTQ6CiteSS5yZWFkZGlycGx1c15JPSBsb19y ZWFkZGlycGx1cywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTk1OgorXkkucmVs ZWFzZWRpcl5JPSBsb19yZWxlYXNlZGlyLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEyMjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjExOTY6CiteSS5mc3luY2Rpcl5JPSBsb19mc3luY2RpciwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMTk3OgorXkkuY3JlYXRlXkleST0gbG9fY3JlYXRlLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjExOTg6CiteSS5vcGVuXkleST0gbG9fb3BlbiwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTk5OgorXkkucmVsZWFzZV5JPSBsb19yZWxlYXNlLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMDA6CiteSS5mbHVzaF5JXkk9IGxvX2Zs dXNoLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMDE6CiteSS5mc3luY15JXkk9 IGxvX2ZzeW5jLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMDI6CiteSS5yZWFk XkleST0gbG9fcmVhZCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjAzOgorXkku d3JpdGVfYnVmICAgICAgPSBsb193cml0ZV9idWYsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTIzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTIwNDoKK15JLnN0YXRmc15JXkk9IGxvX3N0YXRmcywkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxMjA1OgorXkkuZmFsbG9jYXRlXkk9IGxvX2ZhbGxvY2F0ZSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjMyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjA2OgorXkkuZmxvY2teSV5JPSBsb19mbG9jaywk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjMzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjA3OgorXkkuZ2V0eGF0dHJeST0gbG9f Z2V0eGF0dHIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIz NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIwODoKK15JLmxpc3R4 YXR0cl5JPSBsb19saXN0eGF0dHIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTIzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIw OToKK15JLnNldHhhdHRyXkk9IGxvX3NldHhhdHRyLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjEyMTA6CiteSS5yZW1vdmV4YXR0cl5JPSBsb19yZW1vdmV4YXR0ciwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjM4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjEyOgorXkkuY29weV9maWxlX3JhbmdlID0gbG9fY29w eV9maWxlX3JhbmdlLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEyNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMTQ6CiteSS5s c2Vla15JXkk9IGxvX2xzZWVrLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyNDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMTk6 CiteSXN0cnVjdCBmdXNlX2FyZ3MgYXJncyA9IEZVU0VfQVJHU19JTklUKGFyZ2MsIGFyZ3YpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMjA6CiteSXN0cnVjdCBmdXNlX3Nlc3Np b24gKnNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMjE6CiteSXN0cnVjdCBm dXNlX2NtZGxpbmVfb3B0cyBvcHRzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEy MjI6CiteSXN0cnVjdCBsb19kYXRhIGxvID0geyAuZGVidWcgPSAwLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEyMjM6CiteSSAgICAgICAgICAgICAgICAgICAgICAud3JpdGViYWNr ID0gMCB9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMjQ6CiteSWludCByZXQg PSAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjUyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjI2OgorXkkvKiBEb24ndCBt YXNrIGNyZWF0aW9uIG1vZGUsIGtlcm5lbCBhbHJlYWR5IGRpZCB0aGF0ICovJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI1MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIyNzoKK15JdW1hc2soMCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTIyOToKK15JcHRocmVhZF9tdXRleF9pbml0KCZsby5tdXRleCwgTlVM TCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI1NjogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIzMDoKK15JbG8ucm9vdC5uZXh0 ID0gbG8ucm9vdC5wcmV2ID0gJmxvLnJvb3Q7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTI1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTIzMToKK15JbG8ucm9vdC5mZCA9IC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEyMzI6CiteSWxvLmNhY2hlID0gQ0FDSEVfTk9STUFMOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEyMzQ6CiteSWlmIChmdXNlX3BhcnNlX2NtZGxpbmUoJmFyZ3MsICZvcHRz KSAhPSAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzEyNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEyMzQ6CisgICAgICAgaWYgKGZ1c2VfcGFyc2VfY21kbGluZSgmYXJncywgJm9wdHMpICE9 IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjYx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjM1OgorXkleSXJldHVy biAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMzY6CiteSWlmIChvcHRzLnNo b3dfaGVscCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMzc6CiteSV5JcHJp bnRmKCJ1c2FnZTogJXMgW29wdGlvbnNdIDxtb3VudHBvaW50PlxuXG4iLCBhcmd2WzBdKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjY0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjM4OgorXkleSWZ1c2VfY21kbGluZV9oZWxw KCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI2NTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIzOToKK15JXklmdXNlX2xvd2xl dmVsX2hlbHAoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MjY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjQwOgorXkleSXJl dCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI2Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI0MToKK15JXklnb3RvIGVy cl9vdXQxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNDI6CiteSX0gZWxzZSBp ZiAob3B0cy5zaG93X3ZlcnNpb24pIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMjY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MjQzOgorXkleSXByaW50ZigiRlVTRSBsaWJyYXJ5IHZlcnNpb24gJXNcbiIsIGZ1c2VfcGtndmVy c2lvbigpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjcw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjQ0OgorXkleSWZ1c2Vf bG93bGV2ZWxfdmVyc2lvbigpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNDU6 CiteSV5JcmV0ID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjQ2OgorXkle SWdvdG8gZXJyX291dDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTI3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI0NzoKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNDk6CiteSWlmKG9wdHMubW91bnRw b2ludCA9PSBOVUxMKSB7JAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBw YXJlbnRoZXNpcyAnKCcKIzEyNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEyNDk6CisgICAgICAgaWYob3B0cy5tb3VudHBvaW50ID09IE5VTEwpIHsKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNTA6CiteSV5JcHJpbnRmKCJ1c2FnZTogJXMgW29wdGlv bnNdIDxtb3VudHBvaW50PlxuIiwgYXJndlswXSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTI3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTI1MToKK15JXklwcmludGYoIiAgICAgICAlcyAtLWhlbHBcbiIsIGFyZ3ZbMF0pOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNTI6CiteSV5JcmV0ID0gMTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjc5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjUzOgorXkleSWdvdG8gZXJyX291dDE7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI4MDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI1NDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEyNTY6CiteSWlmIChmdXNlX29wdF9wYXJzZSgmYXJncywgJmxvLCBsb19v cHRzLCBOVUxMKT09IC0xKSQKCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJz09 JyAoY3R4OlZ4VykKIzEyODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEyNTY6CisgICAgICAgaWYgKGZ1c2Vfb3B0X3BhcnNlKCZhcmdzLCAmbG8sIGxvX29wdHMsIE5V TEwpPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMTI4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTI1NjoKKyAgICAgICBpZiAoZnVzZV9vcHRfcGFyc2UoJmFyZ3MsICZsbywgbG9fb3B0cywg TlVMTCk9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEyODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNTc6Cite SV5JcmV0dXJuIDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTI4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI1OToKK15JbG8u ZGVidWcgPSBvcHRzLmRlYnVnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNjA6 CiteSWxvLnJvb3QucmVmY291bnQgPSAyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEyODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEyNjE6CiteSWlmIChsby5zb3VyY2UpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMjYyOgorXkleSXN0cnVjdCBzdGF0IHN0YXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTI4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTI2MzoKK15JXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEyOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEyNjU6CiteSV5JcmVzID0gbHN0YXQobG8uc291cmNlLCAmc3RhdCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTI2NjoKK15JXklpZiAocmVzID09IC0xKSB7JAoKV0FSTklORzog bGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzEyOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEyNjc6CisgICAgICAgICAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0Vf TE9HX0VSUiwgImZhaWxlZCB0byBzdGF0IHNvdXJjZSAoXCIlc1wiKTogJW1cbiIsCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjkzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjY3OgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJS LCAiZmFpbGVkIHRvIHN0YXQgc291cmNlIChcIiVzXCIpOiAlbVxuIiwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMjY4OgorXkleSV5JXkkgbG8uc291cmNlKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMjY5OgorXkleSV5JZXhpdCgxKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMjcwOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMjk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoxMjcxOgorXkleSWlmICghU19JU0RJUihzdGF0LnN0X21vZGUpKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI3MjoKK15JXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwg InNvdXJjZSBpcyBub3QgYSBkaXJlY3RvcnlcbiIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjEyNzM6CiteSV5JXklleGl0KDEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEyNzQ6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEzMDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNzY6Cite SX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMw MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI3NzoKK15JXklsby5z b3VyY2UgPSAiLyI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTMwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI3ODoKK15JfSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNzk6CiteSWxvLnJvb3QuaXNfc3ltbGlu ayA9IGZhbHNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyODA6CiteSWlmICgh bG8udGltZW91dF9zZXQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjgxOgor XkleSXN3aXRjaCAobG8uY2FjaGUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMzA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MjgyOgorXkleSWNhc2UgQ0FDSEVfTkVWRVI6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTMwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTI4MzoKK15JXkleSWxvLnRpbWVvdXQgPSAwLjA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTMxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTI4NDoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEyODY6CiteSV5JY2FzZSBDQUNIRV9OT1JNQUw6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTMxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTI4NzoKK15JXkleSWxvLnRpbWVvdXQgPSAxLjA7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTI4ODoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjEyOTA6CiteSV5JY2FzZSBDQUNIRV9BTFdBWVM6JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTI5MToKK15JXkleSWxvLnRpbWVvdXQgPSA4NjQwMC4wOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMTg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyOTI6CiteSV5JXklicmVhazskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMjkzOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMjk0OgorXkl9IGVsc2UgaWYgKGxvLnRpbWVvdXQgPCAwKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMyMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI5NToKK15JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJ0 aW1lb3V0IGlzIG5lZ2F0aXZlICglbGYpXG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEyOTY6CiteSV5JXkkgbG8udGltZW91dCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTMyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTI5NzoKK15JXklleGl0KDEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEyOTg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MzI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzAwOgorXklsby5y b290LmZkID0gb3Blbihsby5zb3VyY2UsIE9fUEFUSCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTMyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTMwMToKK15JaWYgKGxvLnJvb3QuZmQgPT0gLTEpIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMzAyOgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgIm9wZW4o XCIlc1wiLCBPX1BBVEgpOiAlbVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMzI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MzAzOgorXkleSV5JIGxvLnNvdXJjZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTMzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MTMwNDoKK15JXklleGl0KDEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzMzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEzMDU6 CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzMzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzA3OgorXklzZSA9IGZ1c2Vf c2Vzc2lvbl9uZXcoJmFyZ3MsICZsb19vcGVyLCBzaXplb2YobG9fb3BlciksICZsbyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzNDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMwODoKK15JaWYgKHNlID09IE5VTEwpJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMTMzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMwODoKKyAg ICAgICBpZiAoc2UgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEzMDk6CiteSSAgICBnb3RvIGVycl9vdXQxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEzMTE6CiteSWlmIChmdXNlX3NldF9zaWduYWxfaGFuZGxlcnMoc2UpICE9IDApJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMTMzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMxMToKKyAg ICAgICBpZiAoZnVzZV9zZXRfc2lnbmFsX2hhbmRsZXJzKHNlKSAhPSAwKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzODogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMxMjoKK15JICAgIGdvdG8gZXJyX291dDI7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0MDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMxNDoKK15JaWYgKGZ1c2Vfc2Vzc2lvbl9tb3Vu dChzZSwgb3B0cy5tb3VudHBvaW50KSAhPSAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEzNDA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEzMTQ6CisgICAgICAgaWYgKGZ1c2Vfc2Vzc2lvbl9t b3VudChzZSwgb3B0cy5tb3VudHBvaW50KSAhPSAwKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTMxNToKK15JICAgIGdvdG8gZXJyX291dDM7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTMxNzoKK15JZnVzZV9kYWVtb25pemUob3B0cy5mb3JlZ3JvdW5kKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzE5OgorXkkvKiBCbG9jayB1bnRpbCBj dHJsK2Mgb3IgZnVzZXJtb3VudCAtdSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEzMjA6CiteSWlmIChvcHRzLnNpbmdsZXRocmVhZCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBu ZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMzQ2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzIwOgorICAgICAgIGlmIChvcHRzLnNpbmds ZXRocmVhZCkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMzIxOgorXkleSXJldCA9IGZ1c2Vfc2Vzc2lvbl9sb29wKHNlKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzIyOgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTMyMzoKK15JXklyZXQgPSBmdXNlX3Nlc3Npb25fbG9vcF9tdChzZSwgb3B0 cy5jbG9uZV9mZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMyNToKK15JZnVz ZV9zZXNzaW9uX3VubW91bnQoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEz Mjc6CiteSWZ1c2VfcmVtb3ZlX3NpZ25hbF9oYW5kbGVycyhzZSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTMyOToKK15JZnVzZV9zZXNzaW9uX2Rlc3Ryb3koc2UpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEzMzE6CiteSWZyZWUob3B0cy5tb3VudHBvaW50KTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzU4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzMyOgorXklmdXNlX29wdF9mcmVlX2Fy Z3MoJmFyZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEzMzQ6CiteSWlmIChs by5yb290LmZkID49IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTM2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTMzNDoKKyAgICAgICBpZiAobG8ucm9vdC5mZCA+PSAwKQpbLi4uXQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2MTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMzNToKK15JXkljbG9zZShsby5yb290LmZkKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzYzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzM3OgorXklyZXR1cm4gcmV0ID8gMSA6 IDA7JAoKdG90YWw6IDk1NCBlcnJvcnMsIDMwIHdhcm5pbmdzLCAxMzM4IGxpbmVzIGNoZWNrZWQK ClBhdGNoIDUvMTA5IGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBv ZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFp bnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgo2LzEwOSBDaGVja2luZyBj b21taXQgNmY1YTA1NjA5OTc0ICh2aXJ0aW9mc2Q6IFRyaW0gZG93biBpbXBvcnRlZCBmaWxlcykK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6MTg0OgorXkleSXJldHVybiBmdXNlX2J1Zl9mZF90b19mZChk c3QsIGRzdF9vZmYsIHNyYywgc3JjX29mZiwgbGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTc5OgorXklhYm9ydCgpOyAvKiB2aXJ0aW8gc2hvdWxkIGhhdmUgdGFrZW4gaXQgYmVm b3JlIGhlcmUgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1 MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDc1OgorXklhYm9ydCgp OyAvKiBXaWxsIGhhdmUgdGFrZW4gdmhvc3QgcGF0aCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMDQ2OgorXkleSXJldHVybjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjE0MjoKK15JaW4gPSBidWYtPm1lbTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM4ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE2 NDoKK15JXklyZXR1cm47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxNzE6CiteSXJl cS0+Y2ggPSBjaDskCgp0b3RhbDogNyBlcnJvcnMsIDAgd2FybmluZ3MsIDEzOTMgbGluZXMgY2hl Y2tlZAoKUGF0Y2ggNi8xMDkgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYg YW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRo ZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCjcvMTA5IENoZWNr aW5nIGNvbW1pdCAxNmJlM2E0MzhhYzUgKHZpcnRpb2ZzZDogRm9ybWF0IGltcG9ydGVkIGZpbGVz IHRvIHFlbXUgc3R5bGUpCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiMzMTQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo3MjA6CisgICAgKChzdHJ1Y3QgZnVzZV9idWZ2ZWMpeyAvKiAuY291bnQ9ICovIDEsICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEg bGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzMxNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjcyMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC5pZHgg PSAgKi8gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgpXQVJOSU5HOiBCbG9jayBjb21t ZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMzE1MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzIyOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogLm9mZiA9ICAqLyAwLCAvKiAuYnVmID0gICovICAgICAgICAgICAgIFwKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzMTUy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MjM6CisgICAgICAgICAgICAg ICAgICAgICAgICAgICB7IC8qIFswXSA9ICovIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRl IGxpbmUKIzMxNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcyNDoKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuc2l6ZSA9ICAqLyAoc2l6ZV9fKSwgICAg ICAgICAgICAgICBcCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9u IGEgc2VwYXJhdGUgbGluZQojMzE1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NzI1OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC5mbGFncyA9ICovIChl bnVtIGZ1c2VfYnVmX2ZsYWdzKTAsIFwKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxl YWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzMTU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo3MjY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLm1l bSA9ICAgKi8gTlVMTCwgICAgICAgICAgICAgICAgICAgXAoKV0FSTklORzogQmxvY2sgY29tbWVu dHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzMxNTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcyNzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiAuZmQgPSAgICAqLyAtMSwgICAgICAgICAgICAgICAgICAgICBcCgpXQVJOSU5HOiBC bG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMzE1Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzI4OgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIC5wb3MgPSAgICovIDAsICAgICAgICAgICAgICAgICAgICAgIFwK CldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVk CiMzMjA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3OTk6CisjaWYgZGVm aW5lZChfX0dOVUNfXykgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK CkVSUk9SOiBVc2Ugb2Ygdm9sYXRpbGUgaXMgdXN1YWxseSB3cm9uZywgcGxlYXNlIGFkZCBhIGNv bW1lbnQKIzMzMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo0NDoKKyAgICB2b2xh dGlsZSBpbnQgZXhpdGVkOwoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnKicg KGN0eDpXeFYpCiMzNTU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM2 OgorICAgICAgICBjb25zdCB0eXBlb2YoKCh0eXBlICopMCktPm1lbWJlcikgKl9fbXB0ciA9IChw dHIpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJP UjogdXNlIHFlbXVfcmVhbF9ob3N0X3BhZ2Vfc2l6ZSBpbnN0ZWFkIG9mIGdldHBhZ2VzaXplKCkK IzM1NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDk6CisgICAgcGFn ZXNpemUgPSBnZXRwYWdlc2l6ZSgpOwoKRVJST1I6IHVzZSBxZW11X3JlYWxfaG9zdF9wYWdlX3Np emUgaW5zdGVhZCBvZiBnZXRwYWdlc2l6ZSgpCiM2MjI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE2ODM6CisgICAgICAgICAgICAgICAgRlVTRV9ERUZBVUxUX01BWF9Q QUdFU19QRVJfUkVRICogZ2V0cGFnZXNpemUoKSArCgpFUlJPUjogTWFjcm9zIHdpdGggY29tcGxl eCB2YWx1ZXMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzCiM2Mjk0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MTM6CisjZGVmaW5lIExMX1NFVF9ERUZB VUxUKGNvbmQsIGNhcCkgICAgICAgICAgICAgXAorICAgIGlmICgoY29uZCkgJiYgKHNlLT5jb25u LmNhcGFibGUgJiAoY2FwKSkpIFwKKyAgICAgICAgc2UtPmNvbm4ud2FudCB8PSAoY2FwKQoKRVJS T1I6IHVzZSBxZW11X3JlYWxfaG9zdF9wYWdlX3NpemUgaW5zdGVhZCBvZiBnZXRwYWdlc2l6ZSgp CiM2MzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NjM6CisgICAg ICAgIG91dGFyZy5tYXhfcGFnZXMgPSAoc2UtPmNvbm4ubWF4X3dyaXRlIC0gMSkgLyBnZXRwYWdl c2l6ZSgpICsgMTsKCkVSUk9SOiB1c2UgcWVtdV9yZWFsX2hvc3RfcGFnZV9zaXplIGluc3RlYWQg b2YgZ2V0cGFnZXNpemUoKQojNzUxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNDUyOgorICAgIHNlLT5idWZzaXplID0gRlVTRV9NQVhfTUFYX1BBR0VTICogZ2V0cGFn ZXNpemUoKSArIEZVU0VfQlVGRkVSX0hFQURFUl9TSVpFOwoKRVJST1I6IGNvbnNpZGVyIHVzaW5n IHFlbXVfc3RydG91bCBpbiBwcmVmZXJlbmNlIHRvIHN0cnRvdWwKIzc3MzI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU4MzoKKyAgICAgICAgdW5zaWduZWQgbG9uZyB2 YWwgPSBzdHJ0b3VsKHMsICZlbmQsIDApOwoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFs dWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojMTE5MTg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNjI6CisjZGVmaW5lIExMX0VOQUJMRShjb25kLCBjYXApIFwK KyAgICBpZiAoY29uZCkgICAgICAgICAgICAgICAgXAorICAgICAgICBjb25uLT53YW50IHw9IChj YXApCgpFUlJPUjogTWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMgc2hvdWxkIGJlIGVuY2xvc2Vk IGluIHBhcmVudGhlc2lzCiMxMTkyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI2 NToKKyNkZWZpbmUgTExfRElTQUJMRShjb25kLCBjYXApIFwKKyAgICBpZiAoY29uZCkgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgY29ubi0+d2FudCAmPSB+KGNhcCkKCldBUk5JTkc6IGFyY2hp dGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMxMjExOTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njc6CisjaWYgZGVmaW5lZChfX0dOVUNf XykgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCnRvdGFsOiAxMCBl cnJvcnMsIDExIHdhcm5pbmdzLCAxNDA3MSBsaW5lcyBjaGVja2VkCgpQYXRjaCA3LzEwOSBoYXMg c3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFy ZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVD S1BBVENIIGluIE1BSU5UQUlORVJTLgoKOC8xMDkgQ2hlY2tpbmcgY29tbWl0IGNkOGFiODE2MGE0 ZiAodmlydGlvZnNkOiByZW1vdmUgbW91bnRwb2ludCBkdW1teSBhcmd1bWVudCkKOS8xMDkgQ2hl Y2tpbmcgY29tbWl0IGUyZDdhNWFhMjllYyAodmlydGlvZnNkOiByZW1vdmUgdW51c2VkIG5vdGlm eSByZXBseSBzdXBwb3J0KQoxMC8xMDkgQ2hlY2tpbmcgY29tbWl0IDVkNDU0MzU5YmJlYiAodmly dGlvZnNkOiBGaXggZnVzZV9kYWVtb25pemUgaWdub3JlZCByZXR1cm4gdmFsdWVzKQoxMS8xMDkg Q2hlY2tpbmcgY29tbWl0IDczOWRkNTgxYjA2MiAodmlydGlvZnNkOiBGaXggY29tbW9uIGhlYWRl ciBhbmQgZGVmaW5lIGZvciBRRU1VIGJ1aWxkcykKMTIvMTA5IENoZWNraW5nIGNvbW1pdCA1NzRk NmYwMzAyM2QgKHZpcnRpb2ZzZDogVHJpbSBvdXQgY29tcGF0aWJpbGl0eSBjb2RlKQpFUlJPUjog dXNlIHFlbXVfcmVhbF9ob3N0X3BhZ2Vfc2l6ZSBpbnN0ZWFkIG9mIGdldHBhZ2VzaXplKCkKIzQx MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjE1OgorICAgICAgICBz aXplX3QgbWF4X2J1ZnNpemUgPSBGVVNFX0RFRkFVTFRfTUFYX1BBR0VTX1BFUl9SRVEgKiBnZXRw YWdlc2l6ZSgpICsKCnRvdGFsOiAxIGVycm9ycywgMCB3YXJuaW5ncywgNDg2IGxpbmVzIGNoZWNr ZWQKClBhdGNoIDEyLzEwOSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBh bnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhl IG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoKMTMvMTA5IENoZWNr aW5nIGNvbW1pdCA1ZGY2ZmVhMmI3ZDQgKHZpdHJpb2ZzZC9wYXNzdGhyb3VnaF9sbDogZml4IGZh bGxvY2F0ZSgpIGlmZGVmcykKMTQvMTA5IENoZWNraW5nIGNvbW1pdCA2YzJjNDAwYmE2M2UgKHZp cnRpb2ZzZDogTWFrZSBmc3luYyB3b3JrIGV2ZW4gaWYgb25seSBpbm9kZSBpcyBwYXNzZWQgaW4p CjE1LzEwOSBDaGVja2luZyBjb21taXQgZTM1ZTYyM2I3MTJmICh2aXJ0aW9mc2Q6IEFkZCBvcHRp b25zIGZvciB2aXJ0aW8pCjE2LzEwOSBDaGVja2luZyBjb21taXQgMTU3MWEzZWZkMTU0ICh2aXJ0 aW9mc2Q6IGFkZCAtbyBzb3VyY2U9UEFUSCB0byBoZWxwIG91dHB1dCkKMTcvMTA5IENoZWNraW5n IGNvbW1pdCA5YzMxNDRmNTE2YWMgKHZpcnRpb2ZzZDogT3BlbiB2aG9zdCBjb25uZWN0aW9uIGlu c3RlYWQgb2YgbW91bnRpbmcpCldBUk5JTkc6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUo cyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzExOTogCm5ldyBmaWxlIG1vZGUg MTAwNjQ0Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDE5MiBsaW5lcyBjaGVja2VkCgpQ YXRjaCAxNy8xMDkgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9m IHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWlu dGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KMTgvMTA5IENoZWNraW5nIGNv bW1pdCA4N2VhNDdhYzIzZjUgKHZpcnRpb2ZzZDogU3RhcnQgd2lyaW5nIHVwIHZob3N0LXVzZXIp CjE5LzEwOSBDaGVja2luZyBjb21taXQgOWFlZGU5MTZlNzlkICh2aXJ0aW9mc2Q6IEFkZCBtYWlu IHZpcnRpbyBsb29wKQoyMC8xMDkgQ2hlY2tpbmcgY29tbWl0IGFlMDEwNTY4NjA5ZiAodmlydGlv ZnNkOiBnZXQvc2V0IGZlYXR1cmVzIGNhbGxiYWNrcykKMjEvMTA5IENoZWNraW5nIGNvbW1pdCBh YjVmYzRkMDMwZmMgKHZpcnRpb2ZzZDogU3RhcnQgcXVldWUgdGhyZWFkcykKMjIvMTA5IENoZWNr aW5nIGNvbW1pdCBmYWIxM2UzNDA1ZmUgKHZpcnRpb2ZzZDogUG9sbCBraWNrX2ZkIGZvciBxdWV1 ZSkKMjMvMTA5IENoZWNraW5nIGNvbW1pdCAzNTM5ZjY0ZmVmMzQgKHZpcnRpb2ZzZDogU3RhcnQg cmVhZGluZyBjb21tYW5kcyBmcm9tIHF1ZXVlKQoyNC8xMDkgQ2hlY2tpbmcgY29tbWl0IGYzODc5 YzJhZmVjMiAodmlydGlvZnNkOiBTZW5kIHJlcGxpZXMgdG8gbWVzc2FnZXMpCjI1LzEwOSBDaGVj a2luZyBjb21taXQgOGQzYWYyZjkxN2ZlICh2aXJ0aW9mc2Q6IEtlZXAgdHJhY2sgb2YgcmVwbGll cykKMjYvMTA5IENoZWNraW5nIGNvbW1pdCAyMThlZDIxZDkzY2MgKHZpcnRpb2ZzZDogQWRkIE1h a2VmaWxlIHdpcmluZyBmb3IgdmlydGlvZnNkIGNvbnRyaWIpCldBUk5JTkc6IGFkZGVkLCBtb3Zl ZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzY5 OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgNDQg bGluZXMgY2hlY2tlZAoKUGF0Y2ggMjYvMTA5IGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJl dmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQg dGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCjI3 LzEwOSBDaGVja2luZyBjb21taXQgNGNjNGIxZmExZTMxICh2aXJ0aW9mc2Q6IEZhc3QgcGF0aCBm b3IgdmlydGlvIHJlYWQpCjI4LzEwOSBDaGVja2luZyBjb21taXQgNDc4NjA2NmIyYzZlICh2aXJ0 aW9mc2Q6IGFkZCAtLWZkPUZETlVNIGZkIHBhc3Npbmcgb3B0aW9uKQoyOS8xMDkgQ2hlY2tpbmcg Y29tbWl0IDc2NWJlZjE4YjVhOCAodmlydGlvZnNkOiBtYWtlIC1mIChmb3JlZ3JvdW5kKSB0aGUg ZGVmYXVsdCkKMzAvMTA5IENoZWNraW5nIGNvbW1pdCA0NWI3ZTA1MTFkMWMgKHZpcnRpb2ZzZDog YWRkIHZob3N0LXVzZXIuanNvbiBmaWxlKQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRl ZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiM0MDogCm5ldyBmaWxl IG1vZGUgMTAwNjQ0Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDE5IGxpbmVzIGNoZWNr ZWQKClBhdGNoIDMwLzEwOSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBh bnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhl IG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgozMS8xMDkgQ2hlY2tp bmcgY29tbWl0IGNjZDBlYTcyYTQzYyAodmlydGlvZnNkOiBhZGQgLS1wcmludC1jYXBhYmlsaXRp ZXMgb3B0aW9uKQozMi8xMDkgQ2hlY2tpbmcgY29tbWl0IDMwNTczNTZhYTcwOSAodmlydGlvZnM6 IEFkZCBtYWludGFpbmVycyBlbnRyeSkKMzMvMTA5IENoZWNraW5nIGNvbW1pdCBjMjg5NzFjYzg1 YmYgKHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hfbGw6IGNyZWF0ZSBuZXcgZmlsZXMgaW4gY2FsbGVy J3MgY29udGV4dCkKMzQvMTA5IENoZWNraW5nIGNvbW1pdCA5MzlhOGMxNzNhZWQgKHZpcnRpb2Zz ZDogcGFzc3Rocm91Z2hfbGw6IGFkZCBsb19tYXAgZm9yIGluby9maCBpbmRpcmVjdGlvbikKRVJS T1I6IHN0b3JhZ2UgY2xhc3Mgc2hvdWxkIGJlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRlY2xh cmF0aW9uCiM0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTQ3Ogor X19hdHRyaWJ1dGVfXygodW51c2VkKSkgc3RhdGljIHZvaWQgbG9fbWFwX2luaXQoc3RydWN0IGxv X21hcCAqbWFwKQoKRVJST1I6IHN0b3JhZ2UgY2xhc3Mgc2hvdWxkIGJlIGF0IHRoZSBiZWdpbm5p bmcgb2YgdGhlIGRlY2xhcmF0aW9uCiM1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTU0OgorX19hdHRyaWJ1dGVfXygodW51c2VkKSkgc3RhdGljIHZvaWQgbG9fbWFw X2Rlc3Ryb3koc3RydWN0IGxvX21hcCAqbWFwKQoKRVJST1I6IHN0b3JhZ2UgY2xhc3Mgc2hvdWxk IGJlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRlY2xhcmF0aW9uCiM4NzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTg1OgorX19hdHRyaWJ1dGVfXygodW51c2VkKSkg c3RhdGljIHN0cnVjdCBsb19tYXBfZWxlbSAqCgpFUlJPUjogc3RvcmFnZSBjbGFzcyBzaG91bGQg YmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZGVjbGFyYXRpb24KIzEwNDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjAyOgorX19hdHRyaWJ1dGVfXygodW51c2VkKSkg c3RhdGljIHN0cnVjdCBsb19tYXBfZWxlbSAqCgpFUlJPUjogc3RvcmFnZSBjbGFzcyBzaG91bGQg YmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZGVjbGFyYXRpb24KIzEyNjogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjI0OgorX19hdHRyaWJ1dGVfXygodW51c2VkKSkg c3RhdGljIHN0cnVjdCBsb19tYXBfZWxlbSAqCgpFUlJPUjogc3RvcmFnZSBjbGFzcyBzaG91bGQg YmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZGVjbGFyYXRpb24KIzEzODogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjM2OgorX19hdHRyaWJ1dGVfXygodW51c2VkKSkg c3RhdGljIHZvaWQgbG9fbWFwX3JlbW92ZShzdHJ1Y3QgbG9fbWFwICptYXAsCgp0b3RhbDogNiBl cnJvcnMsIDAgd2FybmluZ3MsIDEzNiBsaW5lcyBjaGVja2VkCgpQYXRjaCAzNC8xMDkgaGFzIHN0 eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUg ZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQ QVRDSCBpbiBNQUlOVEFJTkVSUy4KCjM1LzEwOSBDaGVja2luZyBjb21taXQgNjQ0ZmMzZDNmM2Vh ICh2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdoX2xsOiBhZGQgaW5vX21hcCB0byBoaWRlIGxvX2lub2Rl IHBvaW50ZXJzKQozNi8xMDkgQ2hlY2tpbmcgY29tbWl0IDg2MzYxMjZiOWY3NSAodmlydGlvZnNk OiBwYXNzdGhyb3VnaF9sbDogYWRkIGRpcnBfbWFwIHRvIGhpZGUgbG9fZGlycCBwb2ludGVycykK MzcvMTA5IENoZWNraW5nIGNvbW1pdCAxNTAzZWE4YjU5ZTEgKHZpcnRpb2ZzZDogcGFzc3Rocm91 Z2hfbGw6IGFkZCBmZF9tYXAgdG8gaGlkZSBmaWxlIGRlc2NyaXB0b3JzKQozOC8xMDkgQ2hlY2tp bmcgY29tbWl0IDMwOTFkNjE0ZTgzZSAodmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogYWRkIGZh bGxiYWNrIGZvciByYWN5IG9wcykKMzkvMTA5IENoZWNraW5nIGNvbW1pdCBjY2RmNDYwNmUyNGEg KHZpcnRpb2ZzZDogdmFsaWRhdGUgcGF0aCBjb21wb25lbnRzKQo0MC8xMDkgQ2hlY2tpbmcgY29t bWl0IDQzZWNiZjNhOTFjMiAodmlydGlvZnNkOiBQbHVtYiBmdXNlX2J1ZnZlYyB0aHJvdWdoIHRv IGRvX3dyaXRlX2J1ZikKNDEvMTA5IENoZWNraW5nIGNvbW1pdCBjYzJmYmI0OTdiOTIgKHZpcnRp b2ZzZDogUGFzcyB3cml0ZSBpb3YncyBhbGwgdGhlIHdheSB0aHJvdWdoKQo0Mi8xMDkgQ2hlY2tp bmcgY29tbWl0IDQzODdhYTBiZWRmNSAodmlydGlvZnNkOiBhZGQgZnVzZV9tYnVmX2l0ZXIgQVBJ KQo0My8xMDkgQ2hlY2tpbmcgY29tbWl0IDY4NzZkYzViM2Y0MSAodmlydGlvZnNkOiB2YWxpZGF0 ZSBpbnB1dCBidWZmZXIgc2l6ZXMgaW4gZG9fd3JpdGVfYnVmKCkpCjQ0LzEwOSBDaGVja2luZyBj b21taXQgNTBmNGYxMzA4YmIwICh2aXJ0aW9mc2Q6IGNoZWNrIGlucHV0IGJ1ZmZlciBzaXplIGlu IGZ1c2VfbG93bGV2ZWwuYyBvcHMpCjQ1LzEwOSBDaGVja2luZyBjb21taXQgYzk5ZGMyZTZhNGZk ICh2aXJ0aW9mc2Q6IHByZXZlbnQgIi4uIiBlc2NhcGUgaW4gbG9fZG9fbG9va3VwKCkpCjQ2LzEw OSBDaGVja2luZyBjb21taXQgMWVmMmY4MTlmZTNkICh2aXJ0aW9mc2Q6IHByZXZlbnQgIi4uIiBl c2NhcGUgaW4gbG9fZG9fcmVhZGRpcigpKQo0Ny8xMDkgQ2hlY2tpbmcgY29tbWl0IDMzOWY3NzI2 Njk5ZiAodmlydGlvZnNkOiB1c2UgL3Byb2Mvc2VsZi9mZC8gT19QQVRIIGZpbGUgZGVzY3JpcHRv cikKNDgvMTA5IENoZWNraW5nIGNvbW1pdCA3YzRkMTNiMDMzYzMgKHZpcnRpb2ZzZDogc2FuZGJv eCBtb3VudCBuYW1lc3BhY2UpCjQ5LzEwOSBDaGVja2luZyBjb21taXQgYzE2YjRhNGQ5YTZkICh2 aXJ0aW9mc2Q6IG1vdmUgdG8gYW4gZW1wdHkgbmV0d29yayBuYW1lc3BhY2UpCjUwLzEwOSBDaGVj a2luZyBjb21taXQgYWUzNzZmMjI4Y2IzICh2aXJ0aW9mc2Q6IG1vdmUgdG8gYSBuZXcgcGlkIG5h bWVzcGFjZSkKNTEvMTA5IENoZWNraW5nIGNvbW1pdCA0MGM4Zjg4NmU1YjMgKHZpcnRpb2ZzZDog YWRkIHNlY2NvbXAgd2hpdGVsaXN0KQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBm aWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiM3MzogCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBzaG91bGQg YmUgYXZvaWRlZAojOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9zZWNjb21wLmM6MTg6CisjaWYg IWRlZmluZWQoX19TTlJfcHBvbGwpICYmIGRlZmluZWQoX19TTlJfYnJrKQoKV0FSTklORzogYXJj aGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzk2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2Qvc2VjY29tcC5jOjE5OgorI2lmZGVmIF9fTlJfcHBvbGwKCldBUk5JTkc6 IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMxMTA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9zZWNjb21wLmM6MzM6CisjaWZkZWYgX19OUl9jbG9uZTMKCldB Uk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMx NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9zZWNjb21wLmM6OTM6CisjaWZkZWYgX19OUl9zZXRy ZXNnaWQzMgoKV0FSTklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJl IGF2b2lkZWQKIzE3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3NlY2NvbXAuYzo5NjoKKyNpZmRl ZiBfX05SX3NldHJlc3VpZDMyCgp0b3RhbDogMCBlcnJvcnMsIDYgd2FybmluZ3MsIDE5NSBsaW5l cyBjaGVja2VkCgpQYXRjaCA1MS8xMDkgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3 LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVt IHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KNTIvMTA5 IENoZWNraW5nIGNvbW1pdCAyNjcxZDhkZjZlYmYgKHZpcnRpb2ZzZDogUGFyc2UgZmxhZyBGVVNF X1dSSVRFX0tJTExfUFJJVikKNTMvMTA5IENoZWNraW5nIGNvbW1pdCBhYjQzODk2MmM5ZTMgKHZp cnRpb2ZzZDogY2FwLW5nIGhlbHBlcnMpCkVSUk9SOiBkbyBub3QgaW5pdGlhbGlzZSBzdGF0aWNz IHRvIDAgb3IgTlVMTAojNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjE0NzoKK3N0YXRpYyBfX3RocmVhZCBib29sIGNhcF9sb2FkZWQgPSAwOwoKdG90YWw6IDEgZXJy b3JzLCAwIHdhcm5pbmdzLCAxMTYgbGluZXMgY2hlY2tlZAoKUGF0Y2ggNTMvMTA5IGhhcyBzdHls ZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZh bHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFU Q0ggaW4gTUFJTlRBSU5FUlMuCgo1NC8xMDkgQ2hlY2tpbmcgY29tbWl0IDc2NDQ2YmY1OTQ1OSAo dmlydGlvZnNkOiBEcm9wIENBUF9GU0VUSUQgaWYgY2xpZW50IGFza2VkIGZvciBpdCkKNTUvMTA5 IENoZWNraW5nIGNvbW1pdCBjMGJhYWU0M2ZkNzQgKHZpcnRpb2ZzZDogc2V0IG1heGltdW0gUkxJ TUlUX05PRklMRSBsaW1pdCkKNTYvMTA5IENoZWNraW5nIGNvbW1pdCA5ZjFmYTE0MjdkMTYgKHZp cnRpb2ZzZDogZml4IGxpYmZ1c2UgaW5mb3JtYXRpb24gbGVha3MpCjU3LzEwOSBDaGVja2luZyBj b21taXQgMmRhZDdiMmZjM2MzIChkb2NzOiBBZGQgZG9jcy90b29scykKV0FSTklORzogYWRkZWQs IG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5n PwojNTc6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdz LCA2MCBsaW5lcyBjaGVja2VkCgpQYXRjaCA1Ny8xMDkgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVh c2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJl cG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVS Uy4KNTgvMTA5IENoZWNraW5nIGNvbW1pdCBlZmUyMDFlMWYzY2YgKHZpcnRpb2ZzZDogYWRkIHNl Y3VyaXR5IGd1aWRlIGRvY3VtZW50KQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBm aWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiMyNTogCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDEyMyBsaW5lcyBjaGVja2Vk CgpQYXRjaCA1OC8xMDkgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55 IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBt YWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KNTkvMTA5IENoZWNraW5n IGNvbW1pdCBlZGQ5NzE5NDFhOTcgKHZpcnRpb2ZzZDogYWRkIC0tc3lzbG9nIGNvbW1hbmQtbGlu ZSBvcHRpb24pCkVSUk9SOiBkbyBub3QgaW5pdGlhbGlzZSBzdGF0aWNzIHRvIDAgb3IgTlVMTAoj NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE0MToKK3N0YXRpYyBi b29sIHVzZV9zeXNsb2cgPSBmYWxzZTsKCnRvdGFsOiAxIGVycm9ycywgMCB3YXJuaW5ncywgMTY1 IGxpbmVzIGNoZWNrZWQKClBhdGNoIDU5LzEwOSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSBy ZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0 IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoK NjAvMTA5IENoZWNraW5nIGNvbW1pdCBhODFjYTdlMjVlZDMgKHZpcnRpb2ZzZDogcHJpbnQgbG9n IG9ubHkgd2hlbiBwcmlvcml0eSBpcyBoaWdoIGVub3VnaCkKNjEvMTA5IENoZWNraW5nIGNvbW1p dCAzZDg5ZmI0NmU2OWUgKHZpcnRpb2ZzZDogQWRkIElEIHRvIHRoZSBsb2cgd2l0aCBGVVNFX0xP R19ERUJVRyBsZXZlbCkKNjIvMTA5IENoZWNraW5nIGNvbW1pdCBhNjdhMzFhOTMyOWQgKHZpcnRp b2ZzZDogQWRkIHRpbWVzdGFtcCB0byB0aGUgbG9nIHdpdGggRlVTRV9MT0dfREVCVUcgbGV2ZWwp CjYzLzEwOSBDaGVja2luZyBjb21taXQgZTUwZjM1ZDE0MWM5ICh2aXJ0aW9mc2Q6IEhhbmRsZSBy ZWluaXQpCjY0LzEwOSBDaGVja2luZyBjb21taXQgZWI4YmNkYTdiZDAyICh2aXJ0aW9mc2Q6IEhh bmRsZSBoYXJkIHJlYm9vdCkKNjUvMTA5IENoZWNraW5nIGNvbW1pdCAxMTAyMGFlMDBlZTUgKHZp cnRpb2ZzZDogS2lsbCB0aHJlYWRzIHdoZW4gcXVldWVzIGFyZSBzdG9wcGVkKQo2Ni8xMDkgQ2hl Y2tpbmcgY29tbWl0IGUzY2MyYmFjYmUzZiAodmhvc3QtdXNlcjogUHJpbnQgdW5leHBlY3RlZCBz bGF2ZSBtZXNzYWdlIHR5cGVzKQo2Ny8xMDkgQ2hlY2tpbmcgY29tbWl0IDExMzYxYmQ1MzBhZCAo Y29udHJpYi9saWJ2aG9zdC11c2VyOiBQcm90ZWN0IHNsYXZlIGZkIHdpdGggbXV0ZXgpCjY4LzEw OSBDaGVja2luZyBjb21taXQgNTNiMzBiZTNkNzczICh2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdoX2xs OiBhZGQgcmVuYW1lYXQyIHN1cHBvcnQpCjY5LzEwOSBDaGVja2luZyBjb21taXQgN2M5Y2YxZjcx MGU5ICh2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdoX2xsOiBkaXNhYmxlIHJlYWRkaXJwbHVzIG9uIGNh Y2hlPW5ldmVyKQo3MC8xMDkgQ2hlY2tpbmcgY29tbWl0IGM0YjNmNmEyNGQ1MyAodmlydGlvZnNk OiBwYXNzdGhyb3VnaF9sbDogY29udHJvbCByZWFkZGlycGx1cykKNzEvMTA5IENoZWNraW5nIGNv bW1pdCA2ZmU5ZjE5NmQxNGMgKHZpcnRpb2ZzZDogcmVuYW1lIHVucmVmX2lub2RlKCkgdG8gdW5y ZWZfaW5vZGVfbG9sb2NrZWQoKSkKNzIvMTA5IENoZWNraW5nIGNvbW1pdCBjZWM5NjQ3ZDEzMDgg KHZpcnRpb2ZzZDogZmFpbCB3aGVuIHBhcmVudCBpbm9kZSBpc24ndCBrbm93biBpbiBsb19kb19s b29rdXAoKSkKRVJST1I6IHJldHVybiBvZiBhbiBlcnJubyBzaG91bGQgdHlwaWNhbGx5IGJlIC12 ZSAocmV0dXJuIC1FTk9FTlQpCiMzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6Nzg2OgorICAgICAgICByZXR1cm4gRU5PRU5UOwoKdG90YWw6IDEgZXJyb3JzLCAwIHdh cm5pbmdzLCAzOCBsaW5lcyBjaGVja2VkCgpQYXRjaCA3Mi8xMDkgaGFzIHN0eWxlIHByb2JsZW1z LCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRp dmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlO VEFJTkVSUy4KCjczLzEwOSBDaGVja2luZyBjb21taXQgZDhlYjA1OWRhZGYyICh2aXJ0aW9mc2Q6 IGV4dHJhY3Qgcm9vdCBpbm9kZSBpbml0IGludG8gc2V0dXBfcm9vdCgpKQo3NC8xMDkgQ2hlY2tp bmcgY29tbWl0IDRkMThjN2U4YjQ3ZSAodmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogY2xlYW4g dXAgY2FjaGUgcmVsYXRlZCBvcHRpb25zKQo3NS8xMDkgQ2hlY2tpbmcgY29tbWl0IGExZGM1Mzlj YTBkNSAodmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogdXNlIGhhc2h0YWJsZSkKNzYvMTA5IENo ZWNraW5nIGNvbW1pdCA3MTU5ZDgxYWFkNGMgKHZpcnRpb2ZzZDogQ2xlYW4gdXAgaW5vZGVzIG9u IGRlc3Ryb3kpCjc3LzEwOSBDaGVja2luZyBjb21taXQgNjNkNTc4ZmU4ZWIxICh2aXJ0aW9mc2Q6 IHN1cHBvcnQgbmFub3NlY29uZCByZXNvbHV0aW9uIGZvciBmaWxlIHRpbWVzdGFtcCkKNzgvMTA5 IENoZWNraW5nIGNvbW1pdCA1MDhjNmZlZmMzODcgKHZpcnRpb2ZzZDogZml4IGVycm9yIGhhbmRs aW5nIGluIG1haW4oKSkKNzkvMTA5IENoZWNraW5nIGNvbW1pdCBkZjlhYjM4YWYzNGEgKHZpcnRp b2ZzZDogY2xlYW51cCBhbGxvY2F0ZWQgcmVzb3VyY2UgaW4gc2UpCjgwLzEwOSBDaGVja2luZyBj b21taXQgZTY4NGQzZmEwMTYwICh2aXJ0aW9mc2Q6IGZpeCBtZW1vcnkgbGVhayBvbiBsby5zb3Vy Y2UpCjgxLzEwOSBDaGVja2luZyBjb21taXQgOTY0MzdlN2Q1NTYyICh2aXJ0aW9mc2Q6IGFkZCBo ZWxwZXIgZm9yIGxvX2RhdGEgY2xlYW51cCkKODIvMTA5IENoZWNraW5nIGNvbW1pdCA0NjdkZDY4 YmU0NDQgKHZpcnRpb2ZzZDogUHJldmVudCBtdWx0aXBseSBydW5uaW5nIHdpdGggc2FtZSB2aG9z dF91c2VyX3NvY2tldCkKODMvMTA5IENoZWNraW5nIGNvbW1pdCBjZGY4NDFhZDliMWEgKHZpcnRp b2ZzZDogZW5hYmxlIFBBUkFMTEVMX0RJUk9QUyBkdXJpbmcgSU5JVCkKODQvMTA5IENoZWNraW5n IGNvbW1pdCA5NjFhYWNiMzFkMjYgKHZpcnRpb2ZzZDogZml4IGluY29ycmVjdCBlcnJvciBoYW5k bGluZyBpbiBsb19kb19sb29rdXApCjg1LzEwOSBDaGVja2luZyBjb21taXQgOWYwODU2YzU0Mzg2 IChWaXJ0aW9mc2Q6IGZpeCBtZW1vcnkgbGVhayBvbiBmdXNlIHF1ZXVlaW5mbykKODYvMTA5IENo ZWNraW5nIGNvbW1pdCBjNDI4YTdiYzNlZTQgKHZpcnRpb2ZzZDogU3VwcG9ydCByZW1vdGUgcG9z aXggbG9ja3MpCjg3LzEwOSBDaGVja2luZyBjb21taXQgMmUzZWI3ZDhmOGRkICh2aXJ0aW9mc2Q6 IHVzZSBmdXNlX2xvd2xldmVsX2lzX3ZpcnRpbygpIGluIGZ1c2Vfc2Vzc2lvbl9kZXN0cm95KCkp Cjg4LzEwOSBDaGVja2luZyBjb21taXQgMGNjNGQ2NzU4OGRmICh2aXJ0aW9mc2Q6IHByZXZlbnQg ZnZfcXVldWVfdGhyZWFkKCkgdnMgdmlydGlvX2xvb3AoKSByYWNlcykKODkvMTA5IENoZWNraW5n IGNvbW1pdCBhNWRjZjA2Mjg1ZmEgKHZpcnRpb2ZzZDogbWFrZSBsb19yZWxlYXNlKCkgYXRvbWlj KQo5MC8xMDkgQ2hlY2tpbmcgY29tbWl0IDI2ZjM3NzdkN2NjMSAodmlydGlvZnNkOiBwcmV2ZW50 IHJhY2VzIHdpdGggbG9fZGlycF9wdXQoKSkKOTEvMTA5IENoZWNraW5nIGNvbW1pdCBjOGJmODkw OGUxNTggKHZpcnRpb2ZzZDogcmVuYW1lIGlub2RlLT5yZWZjb3VudCB0byBpbm9kZS0+bmxvb2t1 cCkKOTIvMTA5IENoZWNraW5nIGNvbW1pdCBlMTg2ZjFmNTA0ZmIgKGxpYnZob3N0LXVzZXI6IEZp eCBzb21lIG1lbXRhYmxlIHJlbWFwIGNhc2VzKQo5My8xMDkgQ2hlY2tpbmcgY29tbWl0IGIzNDFj Mjk4Yjg5YyAodmlydGlvZnNkOiBhZGQgbWFuIHBhZ2UpCldBUk5JTkc6IGFkZGVkLCBtb3ZlZCBv ciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzQ5OiAK bmV3IGZpbGUgbW9kZSAxMDA2NDQKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgMTI5IGxp bmVzIGNoZWNrZWQKClBhdGNoIDkzLzEwOSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZp ZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRo ZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgo5NC8x MDkgQ2hlY2tpbmcgY29tbWl0IGFlODJlMzYwOWFjMSAodmlydGlvZnNkOiBwYXNzdGhyb3VnaF9s bDogZml4IHJlZmNvdW50aW5nIG9uIHJlbW92ZS9yZW5hbWUpCjk1LzEwOSBDaGVja2luZyBjb21t aXQgOGUxYmE4YjMxYzU4ICh2aXJ0aW9mc2Q6IGludHJvZHVjZSBpbm9kZSByZWZjb3VudCB0byBw cmV2ZW50IHVzZS1hZnRlci1mcmVlKQo5Ni8xMDkgQ2hlY2tpbmcgY29tbWl0IDUwODllNGEzNGEx YSAodmlydGlvZnNkOiBkbyBub3QgYWx3YXlzIHNldCBGVVNFX0ZMT0NLX0xPQ0tTKQo5Ny8xMDkg Q2hlY2tpbmcgY29tbWl0IDBhNzNmMjk3OTE1MiAodmlydGlvZnNkOiBjb252ZXJ0IG1vcmUgZnBy aW50ZiBhbmQgcGVycm9yIHRvIHVzZSBmdXNlIGxvZyBpbmZyYSkKOTgvMTA5IENoZWNraW5nIGNv bW1pdCA4NWM5MTU0ODEwN2YgKHZpcnRpb2ZzZDogUmVzZXQgT19ESVJFQ1QgZmxhZyBkdXJpbmcg ZmlsZSBvcGVuKQo5OS8xMDkgQ2hlY2tpbmcgY29tbWl0IDViY2VjZmY0YTE1MCAodmlydGlvZnNk OiBGaXggZGF0YSBjb3JydXB0aW9uIHdpdGggT19BUFBFTkQgd3JpdGUgaW4gd3JpdGViYWNrIG1v ZGUpCjEwMC8xMDkgQ2hlY2tpbmcgY29tbWl0IGFjODcwNTU4ODBhMCAodmlydGlvZnNkOiBhZGQg ZGVmaW5pdGlvbiBvZiBmdXNlX2J1Zl93cml0ZXYoKSkKMTAxLzEwOSBDaGVja2luZyBjb21taXQg M2VmYzk3YTJiZWRjICh2aXJ0aW9mc2Q6IHVzZSBmdXNlX2J1Zl93cml0ZXYgdG8gcmVwbGFjZSBm dXNlX2J1Zl93cml0ZSBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlKQoxMDIvMTA5IENoZWNraW5nIGNv bW1pdCA2OGI0OTk2MmRhOWIgKHZpcnRpb2ZzZDogcHJvY2VzcyByZXF1ZXN0cyBpbiBhIHRocmVh ZCBwb29sKQpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2Vw YXJhdGUgbGluZQojMzMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV92aXJ0aW8uYzo1Nzc6 CisgICAgcG9vbCA9IGdfdGhyZWFkX3Bvb2xfbmV3KGZ2X3F1ZXVlX3dvcmtlciwgcWksIDEgLyog VE9ETyBtYXhfdGhyZWFkcyAqLywKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgNDY2IGxp bmVzIGNoZWNrZWQKClBhdGNoIDEwMi8xMDkgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2 aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0 aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KMTAz LzEwOSBDaGVja2luZyBjb21taXQgZDVmNjAzOGE3NWI1ICh2aXJ0aW9mc2Q6IHByZXZlbnQgRlVT RV9JTklUL0ZVU0VfREVTVFJPWSByYWNlcykKMTA0LzEwOSBDaGVja2luZyBjb21taXQgZWQxYmYz MzdkY2ZmICh2aXJ0aW9mc2Q6IGZpeCBsb19kZXN0cm95KCkgcmVzb3VyY2UgbGVha3MpCjEwNS8x MDkgQ2hlY2tpbmcgY29tbWl0IDY4NWUwNDkxMGNjYiAodmlydGlvZnNkOiBhZGQgLS10aHJlYWQt cG9vbC1zaXplPU5VTSBvcHRpb24pCjEwNi8xMDkgQ2hlY2tpbmcgY29tbWl0IDY2NmRmZmY1YmFi OCAodmlydGlvZnNkOiBDb252ZXJ0IGxvX2Rlc3Ryb3kgdG8gdGFrZSB0aGUgbG8tPm11dGV4IGxv Y2sgaXRzZWxmKQoxMDcvMTA5IENoZWNraW5nIGNvbW1pdCBlNDA4ZGFhMTY3NDIgKHZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbDogUGFzcyBlcnJubyB0byBmdXNlX3JlcGx5X2VycigpKQoxMDgvMTA5 IENoZWNraW5nIGNvbW1pdCA1ZGU3NWNhMTIzODQgKHZpcnRpb2ZzZDogc3RvcCBhbGwgcXVldWUg dGhyZWFkcyBvbiBleGl0IGluIHZpcnRpb19sb29wKCkpCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzQwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV92aXJ0aW8uYzo4MjM6CisgICAgICAgIGlmICghc2UtPnZpcnRpb19kZXYt PnFpW2ldKQpbLi4uXQoKdG90YWw6IDEgZXJyb3JzLCAwIHdhcm5pbmdzLCAxOCBsaW5lcyBjaGVj a2VkCgpQYXRjaCAxMDgvMTA5IGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElm IGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0 aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgoxMDkvMTA5IENo ZWNraW5nIGNvbW1pdCBhODc3MmY0YmRhNDYgKHZpcnRpb2ZzZDogYWRkIHNvbWUgb3B0aW9ucyB0 byB0aGUgaGVscCBtZXNzYWdlKQo9PT0gT1VUUFVUIEVORCA9PT0KClRlc3QgY29tbWFuZCBleGl0 ZWQgd2l0aCBjb2RlOiAxCgoKVGhlIGZ1bGwgbG9nIGlzIGF2YWlsYWJsZSBhdApodHRwOi8vcGF0 Y2hldy5vcmcvbG9ncy8yMDIwMDEyMTEyMjQzMy41MDgwMy0xLWRnaWxiZXJ0QHJlZGhhdC5jb20v dGVzdGluZy5jaGVja3BhdGNoLz90eXBlPW1lc3NhZ2UuCi0tLQpFbWFpbCBnZW5lcmF0ZWQgYXV0 b21hdGljYWxseSBieSBQYXRjaGV3IFtodHRwczovL3BhdGNoZXcub3JnL10uClBsZWFzZSBzZW5k IHlvdXIgZmVlZGJhY2sgdG8gcGF0Y2hldy1kZXZlbEByZWRoYXQuY29t