Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751702AbcJ2EiT (ORCPT ); Sat, 29 Oct 2016 00:38:19 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:37615 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750964AbcJ2EiP (ORCPT ); Sat, 29 Oct 2016 00:38:15 -0400 Subject: Re: [Xen-devel] [PATCH v6 00/11] implement vcpu preempted check To: Konrad Rzeszutek Wilk , Pan Xinhui References: <1477642287-24104-1-git-send-email-xinhui.pan@linux.vnet.ibm.com> <20161028193817.GD2879@char.us.oracle.com> Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux-foundation.org, linux-s390@vger.kernel.org, xen-devel-request@lists.xenproject.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org, kernellwp@gmail.com, jgross@suse.com, David.Laight@ACULAB.COM, rkrcmar@redhat.com, peterz@infradead.org, benh@kernel.crashing.org, bsingharora@gmail.com, will.deacon@arm.com, borntraeger@de.ibm.com, mingo@redhat.com, paulus@samba.org, mpe@ellerman.id.au, pbonzini@redhat.com, paulmck@linux.vnet.ibm.com, boqun.feng@gmail.com From: Pan Xinhui Date: Sat, 29 Oct 2016 12:37:51 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <20161028193817.GD2879@char.us.oracle.com> Content-Type: multipart/mixed; boundary="------------61604B35C45A3051AD777214" X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16102904-0012-0000-0000-000001DCA705 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16102904-0013-0000-0000-0000064D86FE Message-Id: <9134b50f-e771-55b6-f46d-6689bd288260@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-10-29_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1609300000 definitions=main-1610290080 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 117037 Lines: 1669 This is a multi-part message in MIME format. --------------61604B35C45A3051AD777214 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 在 2016/10/29 03:38, Konrad Rzeszutek Wilk 写道: > On Fri, Oct 28, 2016 at 04:11:16AM -0400, Pan Xinhui wrote: >> change from v5: >> spilt x86/kvm patch into guest/host part. >> introduce kvm_write_guest_offset_cached. >> fix some typos. >> rebase patch onto 4.9.2 >> change from v4: >> spilt x86 kvm vcpu preempted check into two patches. >> add documentation patch. >> add x86 vcpu preempted check patch under xen >> add s390 vcpu preempted check patch >> change from v3: >> add x86 vcpu preempted check patch >> change from v2: >> no code change, fix typos, update some comments >> change from v1: >> a simplier definition of default vcpu_is_preempted >> skip mahcine type check on ppc, and add config. remove dedicated macro. >> add one patch to drop overload of rwsem_spin_on_owner and mutex_spin_on_owner. >> add more comments >> thanks boqun and Peter's suggestion. >> >> This patch set aims to fix lock holder preemption issues. > > Do you have a git tree with these patches? > Currently no, sorry :( I make a tar file for this patcheset. Maybe a little easier to apply :) thanks xinhui >> >> test-case: >> perf record -a perf bench sched messaging -g 400 -p && perf report >> >> 18.09% sched-messaging [kernel.vmlinux] [k] osq_lock >> 12.28% sched-messaging [kernel.vmlinux] [k] rwsem_spin_on_owner >> 5.27% sched-messaging [kernel.vmlinux] [k] mutex_unlock >> 3.89% sched-messaging [kernel.vmlinux] [k] wait_consider_task >> 3.64% sched-messaging [kernel.vmlinux] [k] _raw_write_lock_irq >> 3.41% sched-messaging [kernel.vmlinux] [k] mutex_spin_on_owner.is >> 2.49% sched-messaging [kernel.vmlinux] [k] system_call >> >> We introduce interface bool vcpu_is_preempted(int cpu) and use it in some spin >> loops of osq_lock, rwsem_spin_on_owner and mutex_spin_on_owner. >> These spin_on_onwer variant also cause rcu stall before we apply this patch set >> >> We also have observed some performace improvements in uninx benchmark tests. >> >> PPC test result: >> 1 copy - 0.94% >> 2 copy - 7.17% >> 4 copy - 11.9% >> 8 copy - 3.04% >> 16 copy - 15.11% >> >> details below: >> Without patch: >> >> 1 copy - File Write 4096 bufsize 8000 maxblocks 2188223.0 KBps (30.0 s, 1 samples) >> 2 copy - File Write 4096 bufsize 8000 maxblocks 1804433.0 KBps (30.0 s, 1 samples) >> 4 copy - File Write 4096 bufsize 8000 maxblocks 1237257.0 KBps (30.0 s, 1 samples) >> 8 copy - File Write 4096 bufsize 8000 maxblocks 1032658.0 KBps (30.0 s, 1 samples) >> 16 copy - File Write 4096 bufsize 8000 maxblocks 768000.0 KBps (30.1 s, 1 samples) >> >> With patch: >> >> 1 copy - File Write 4096 bufsize 8000 maxblocks 2209189.0 KBps (30.0 s, 1 samples) >> 2 copy - File Write 4096 bufsize 8000 maxblocks 1943816.0 KBps (30.0 s, 1 samples) >> 4 copy - File Write 4096 bufsize 8000 maxblocks 1405591.0 KBps (30.0 s, 1 samples) >> 8 copy - File Write 4096 bufsize 8000 maxblocks 1065080.0 KBps (30.0 s, 1 samples) >> 16 copy - File Write 4096 bufsize 8000 maxblocks 904762.0 KBps (30.0 s, 1 samples) >> >> X86 test result: >> test-case after-patch before-patch >> Execl Throughput | 18307.9 lps | 11701.6 lps >> File Copy 1024 bufsize 2000 maxblocks | 1352407.3 KBps | 790418.9 KBps >> File Copy 256 bufsize 500 maxblocks | 367555.6 KBps | 222867.7 KBps >> File Copy 4096 bufsize 8000 maxblocks | 3675649.7 KBps | 1780614.4 KBps >> Pipe Throughput | 11872208.7 lps | 11855628.9 lps >> Pipe-based Context Switching | 1495126.5 lps | 1490533.9 lps >> Process Creation | 29881.2 lps | 28572.8 lps >> Shell Scripts (1 concurrent) | 23224.3 lpm | 22607.4 lpm >> Shell Scripts (8 concurrent) | 3531.4 lpm | 3211.9 lpm >> System Call Overhead | 10385653.0 lps | 10419979.0 lps >> >> Christian Borntraeger (1): >> s390/spinlock: Provide vcpu_is_preempted >> >> Juergen Gross (1): >> x86, xen: support vcpu preempted check >> >> Pan Xinhui (9): >> kernel/sched: introduce vcpu preempted check interface >> locking/osq: Drop the overload of osq_lock() >> kernel/locking: Drop the overload of {mutex,rwsem}_spin_on_owner >> powerpc/spinlock: support vcpu preempted check >> x86, paravirt: Add interface to support kvm/xen vcpu preempted check >> KVM: Introduce kvm_write_guest_offset_cached >> x86, kvm/x86.c: support vcpu preempted check >> x86, kernel/kvm.c: support vcpu preempted check >> Documentation: virtual: kvm: Support vcpu preempted check >> >> Documentation/virtual/kvm/msr.txt | 9 ++++++++- >> arch/powerpc/include/asm/spinlock.h | 8 ++++++++ >> arch/s390/include/asm/spinlock.h | 8 ++++++++ >> arch/s390/kernel/smp.c | 9 +++++++-- >> arch/s390/lib/spinlock.c | 25 ++++++++----------------- >> arch/x86/include/asm/paravirt_types.h | 2 ++ >> arch/x86/include/asm/spinlock.h | 8 ++++++++ >> arch/x86/include/uapi/asm/kvm_para.h | 4 +++- >> arch/x86/kernel/kvm.c | 12 ++++++++++++ >> arch/x86/kernel/paravirt-spinlocks.c | 6 ++++++ >> arch/x86/kvm/x86.c | 16 ++++++++++++++++ >> arch/x86/xen/spinlock.c | 3 ++- >> include/linux/kvm_host.h | 2 ++ >> include/linux/sched.h | 12 ++++++++++++ >> kernel/locking/mutex.c | 15 +++++++++++++-- >> kernel/locking/osq_lock.c | 10 +++++++++- >> kernel/locking/rwsem-xadd.c | 16 +++++++++++++--- >> virt/kvm/kvm_main.c | 20 ++++++++++++++------ >> 18 files changed, 151 insertions(+), 34 deletions(-) >> >> -- >> 2.4.11 >> >> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xen.org >> https://lists.xen.org/xen-devel > --------------61604B35C45A3051AD777214 Content-Type: application/x-tar; name="vcpu.tar" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="vcpu.tar" djYtMDAwMC1jb3Zlci1sZXR0ZXIucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQA MDAwMDAwMAAwMDAwMDAwADAwMDAwMTIwMDAwADEzMDA1MDU2NzY3ADAxNDEyMAAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2Ni0wMDAxLWtlcm5lbC1zY2hlZC1pbnRyb2R1 Y2UtdmNwdS1wcmVlbXB0ZWQtY2hlY2staW50ZXIucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDMyMDEA MTMwMDQ2MDExMDYAMDIzMTU1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy b290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZy b20gYTQzZDc3MWJmNjQzM2NiYzg4ZWU0YzViN2VlMDdmNGVkMDZhMTZjMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFuIFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0 LmlibS5jb20+CkRhdGU6IFN1biwgMjYgSnVuIDIwMTYgMDU6NDQ6MDggLTA0MDAKU3ViamVj dDogW1BBVENIIHY2IDAxLzExXSBrZXJuZWwvc2NoZWQ6IGludHJvZHVjZSB2Y3B1IHByZWVt cHRlZCBjaGVjawogaW50ZXJmYWNlCgpUaGlzIHBhdGNoIHN1cHBvcnQgdG8gZml4IGxvY2sg aG9sZGVyIHByZWVtcHRpb24gaXNzdWUuCgpGb3Iga2VybmVsIHVzZXJzLCB3ZSBjb3VsZCB1 c2UgYm9vbCB2Y3B1X2lzX3ByZWVtcHRlZChpbnQgY3B1KSB0byBkZXRlY2ggaWYKb25lIHZj cHUgaXMgcHJlZW1wdGVkIG9yIG5vdC4KClRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGlz IGEgbWFjcm8gZGVmaW5lZCBieSBmYWxzZS4gU28gY29tcGlsZXIgY2FuCndyYXAgaXQgb3V0 IGlmIGFyY2ggZG9zZSBub3Qgc3VwcG9ydCBzdWNoIHZjcHUgcHRlZW1wdGVkIGNoZWNrLgoK U3VnZ2VzdGVkLWJ5OiBQZXRlciBaaWpsc3RyYSAoSW50ZWwpIDxwZXRlcnpAaW5mcmFkZWFk Lm9yZz4KU2lnbmVkLW9mZi1ieTogUGFuIFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0 LmlibS5jb20+CkFja2VkLWJ5OiBDaHJpc3RpYW4gQm9ybnRyYWVnZXIgPGJvcm50cmFlZ2Vy QGRlLmlibS5jb20+ClRlc3RlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29t PgotLS0KIGluY2x1ZGUvbGludXgvc2NoZWQuaCB8IDEyICsrKysrKysrKysrKwogMSBmaWxl IGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L3NjaGVkLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKaW5kZXggMzQ4ZjUxYi4uNDRjMWNl NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1ZGUvbGlu dXgvc2NoZWQuaApAQCAtMzUwNiw2ICszNTA2LDE4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBz ZXRfdGFza19jcHUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBpbnQgY3B1KQog CiAjZW5kaWYgLyogQ09ORklHX1NNUCAqLwogCisvKgorICogSW4gb3JkZXIgdG8gZGVhbCB3 aXRoIGEgdmFyaW91cyBsb2NrIGhvbGRlciBwcmVlbXB0aW9uIGlzc3VlcyBwcm92aWRlIGFu CisgKiBpbnRlcmZhY2UgdG8gc2VlIGlmIGEgdkNQVSBpcyBjdXJyZW50bHkgcnVubmluZyBv ciBub3QuCisgKgorICogVGhpcyBhbGxvd3MgdXMgdG8gdGVybWluYXRlIG9wdGltaXN0aWMg c3BpbiBsb29wcyBhbmQgYmxvY2ssIGFuYWxvZ291cyB0bworICogdGhlIG5hdGl2ZSBvcHRp bWlzdGljIHNwaW4gaGV1cmlzdGljIG9mIHRlc3RpbmcgaWYgdGhlIGxvY2sgb3duZXIgdGFz ayBpcworICogcnVubmluZyBvciBub3QuCisgKi8KKyNpZm5kZWYgdmNwdV9pc19wcmVlbXB0 ZWQKKyNkZWZpbmUgdmNwdV9pc19wcmVlbXB0ZWQoY3B1KQlmYWxzZQorI2VuZGlmCisKIGV4 dGVybiBsb25nIHNjaGVkX3NldGFmZmluaXR5KHBpZF90IHBpZCwgY29uc3Qgc3RydWN0IGNw dW1hc2sgKm5ld19tYXNrKTsKIGV4dGVybiBsb25nIHNjaGVkX2dldGFmZmluaXR5KHBpZF90 IHBpZCwgc3RydWN0IGNwdW1hc2sgKm1hc2spOwogCi0tIAoyLjQuMTEKCgAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdjYtMDAw Mi1sb2NraW5nLW9zcS1Ecm9wLXRoZS1vdmVybG9hZC1vZi1vc3FfbG9jay5wYXRjaAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAw MAAwMDAwMDAwADAwMDAwMDA1NDc3ADEzMDA0NjAxMTA2ADAyMTQ0MgAgMAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABGcm9tIGZlMzMwZjliMzRiNzRkMThmMjYyOWYzYmY5ZTFi ZWNkZDdlYmQ0MWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhbiBYaW5odWkg PHhpbmh1aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBTdW4sIDI2IEp1biAyMDE2 IDA2OjI2OjQ4IC0wNDAwClN1YmplY3Q6IFtQQVRDSCB2NiAwMi8xMV0gbG9ja2luZy9vc3E6 IERyb3AgdGhlIG92ZXJsb2FkIG9mIG9zcV9sb2NrKCkKCkFuIG92ZXItY29tbWl0dGVkIGd1 ZXN0IHdpdGggbW9yZSB2Q1BVcyB0aGFuIHBDUFVzIGhhcyBhIGhlYXZ5IG92ZXJsb2FkIGlu Cm9zcV9sb2NrKCkuCgpUaGlzIGlzIGJlY2F1c2UgdkNQVSBBIGhvbGQgdGhlIG9zcSBsb2Nr IGFuZCB5aWVsZCBvdXQsIHZDUFUgQiB3YWl0IHBlcl9jcHUKbm9kZS0+bG9ja2VkIHRvIGJl IHNldC4gSU9XLCB2Q1BVIEIgd2FpdCB2Q1BVIEEgdG8gcnVuIGFuZCB1bmxvY2sgdGhlIG9z cQpsb2NrLgoKS2VybmVsIGhhcyBhbiBpbnRlcmZhY2UgYm9vbCB2Y3B1X2lzX3ByZWVtcHRl ZChpbnQgY3B1KSB0byBzZWUgaWYgYSB2Q1BVIGlzCmN1cnJlbnRseSBydW5uaW5nIG9yIG5v dC4gU28gYnJlYWsgdGhlIHNwaW4gbG9vcHMgb24gdHJ1ZSBjb25kaXRpb24uCgp0ZXN0IGNh c2U6CnBlcmYgcmVjb3JkIC1hIHBlcmYgYmVuY2ggc2NoZWQgbWVzc2FnaW5nIC1nIDQwMCAt cCAmJiBwZXJmIHJlcG9ydAoKYmVmb3JlIHBhdGNoOgoxOC4wOSUgIHNjaGVkLW1lc3NhZ2lu ZyAgW2tlcm5lbC52bWxpbnV4XSAgW2tdIG9zcV9sb2NrCjEyLjI4JSAgc2NoZWQtbWVzc2Fn aW5nICBba2VybmVsLnZtbGludXhdICBba10gcndzZW1fc3Bpbl9vbl9vd25lcgogNS4yNyUg IHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAgW2tdIG11dGV4X3VubG9jawog My44OSUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAgW2tdIHdhaXRfY29u c2lkZXJfdGFzawogMy42NCUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAg W2tdIF9yYXdfd3JpdGVfbG9ja19pcnEKIDMuNDElICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJu ZWwudm1saW51eF0gIFtrXSBtdXRleF9zcGluX29uX293bmVyLmlzCiAyLjQ5JSAgc2NoZWQt bWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gc3lzdGVtX2NhbGwKCmFmdGVyIHBh dGNoOgoyMC42OCUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAgW2tdIG11 dGV4X3NwaW5fb25fb3duZXIKIDguNDUlICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1s aW51eF0gIFtrXSBtdXRleF91bmxvY2sKIDQuMTIlICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJu ZWwudm1saW51eF0gIFtrXSBzeXN0ZW1fY2FsbAogMy4wMSUgIHNjaGVkLW1lc3NhZ2luZyAg W2tlcm5lbC52bWxpbnV4XSAgW2tdIHN5c3RlbV9jYWxsX2NvbW1vbgogMi44MyUgIHNjaGVk LW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAgW2tdIGNvcHlwYWdlX3Bvd2VyNwogMi42 NCUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAgW2tdIHJ3c2VtX3NwaW5f b25fb3duZXIKIDIuMDAlICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0gIFtr XSBvc3FfbG9jawoKU3VnZ2VzdGVkLWJ5OiBCb3F1biBGZW5nIDxib3F1bi5mZW5nQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogUGFuIFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0 LmlibS5jb20+CkFja2VkLWJ5OiBDaHJpc3RpYW4gQm9ybnRyYWVnZXIgPGJvcm50cmFlZ2Vy QGRlLmlibS5jb20+ClRlc3RlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29t PgotLS0KIGtlcm5lbC9sb2NraW5nL29zcV9sb2NrLmMgfCAxMCArKysrKysrKystCiAxIGZp bGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEva2VybmVsL2xvY2tpbmcvb3NxX2xvY2suYyBiL2tlcm5lbC9sb2NraW5nL29zcV9sb2Nr LmMKaW5kZXggMDVhMzc4NS4uMzlkMTM4NSAxMDA2NDQKLS0tIGEva2VybmVsL2xvY2tpbmcv b3NxX2xvY2suYworKysgYi9rZXJuZWwvbG9ja2luZy9vc3FfbG9jay5jCkBAIC0yMSw2ICsy MSwxMSBAQCBzdGF0aWMgaW5saW5lIGludCBlbmNvZGVfY3B1KGludCBjcHVfbnIpCiAJcmV0 dXJuIGNwdV9uciArIDE7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IG5vZGVfY3B1KHN0cnVj dCBvcHRpbWlzdGljX3NwaW5fbm9kZSAqbm9kZSkKK3sKKwlyZXR1cm4gbm9kZS0+Y3B1IC0g MTsKK30KKwogc3RhdGljIGlubGluZSBzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX25vZGUgKmRl Y29kZV9jcHUoaW50IGVuY29kZWRfY3B1X3ZhbCkKIHsKIAlpbnQgY3B1X25yID0gZW5jb2Rl ZF9jcHVfdmFsIC0gMTsKQEAgLTExOCw4ICsxMjMsMTEgQEAgYm9vbCBvc3FfbG9jayhzdHJ1 Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKQogCXdoaWxlICghUkVBRF9PTkNFKG5v ZGUtPmxvY2tlZCkpIHsKIAkJLyoKIAkJICogSWYgd2UgbmVlZCB0byByZXNjaGVkdWxlIGJh aWwuLi4gc28gd2UgY2FuIGJsb2NrLgorCQkgKiBVc2UgdmNwdV9pc19wcmVlbXB0ZWQgdG8g ZGV0ZWNoIGxvY2sgaG9sZGVyIHByZWVtcHRpb24gaXNzdWUKKwkJICogYW5kIGJyZWFrLiB2 Y3B1X2lzX3ByZWVtcHRlZCBpcyBhIG1hY3JvIGRlZmluZWQgYnkgZmFsc2UgaWYKKwkJICog YXJjaCBkb2VzIG5vdCBzdXBwb3J0IHZjcHUgcHJlZW1wdGVkIGNoZWNrLAogCQkgKi8KLQkJ aWYgKG5lZWRfcmVzY2hlZCgpKQorCQlpZiAobmVlZF9yZXNjaGVkKCkgfHwgdmNwdV9pc19w cmVlbXB0ZWQobm9kZV9jcHUobm9kZS0+cHJldikpKQogCQkJZ290byB1bnF1ZXVlOwogCiAJ CWNwdV9yZWxheF9sb3dsYXRlbmN5KCk7Ci0tIAoyLjQuMTEKCgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAB2Ni0wMDAzLWtlcm5lbC1sb2NraW5nLURyb3AtdGhlLW92ZXJsb2Fk LW9mLW11dGV4LXJ3c2VtLV8ucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDc3MjcAMTMwMDQ2MDExMDYA MDIzMDIwACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZyb20gMzRiN2Q0NDlm ODkxOTZhZThkYzQzZDc1MjdlYWQ3MGYwZWM2N2M4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogUGFuIFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0LmlibS5jb20+CkRh dGU6IE1vbiwgMjcgSnVuIDIwMTYgMTI6NDk6MzQgLTA0MDAKU3ViamVjdDogW1BBVENIIHY2 IDAzLzExXSBrZXJuZWwvbG9ja2luZzogRHJvcCB0aGUgb3ZlcmxvYWQgb2YKIHttdXRleCxy d3NlbX1fc3Bpbl9vbl9vd25lcgoKQW4gb3Zlci1jb21taXR0ZWQgZ3Vlc3Qgd2l0aCBtb3Jl IHZDUFVzIHRoYW4gcENQVXMgaGFzIGEgaGVhdnkgb3ZlcmxvYWQgaW4KdGhlIHR3byBzcGlu X29uX293bmVyLiBUaGlzIGJsYW1lcyBvbiB0aGUgbG9jayBob2xkZXIgcHJlZW1wdGlvbiBp c3N1ZS4KCktlcm5lbCBoYXMgYW4gaW50ZXJmYWNlIGJvb2wgdmNwdV9pc19wcmVlbXB0ZWQo aW50IGNwdSkgdG8gc2VlIGlmIGEgdkNQVSBpcwpjdXJyZW50bHkgcnVubmluZyBvciBub3Qu IFNvIGJyZWFrIHRoZSBzcGluIGxvb3BzIG9uIHRydWUgY29uZGl0aW9uLgoKdGVzdC1jYXNl OgpwZXJmIHJlY29yZCAtYSBwZXJmIGJlbmNoIHNjaGVkIG1lc3NhZ2luZyAtZyA0MDAgLXAg JiYgcGVyZiByZXBvcnQKCmJlZm9yZSBwYXRjaDoKMjAuNjglICBzY2hlZC1tZXNzYWdpbmcg IFtrZXJuZWwudm1saW51eF0gIFtrXSBtdXRleF9zcGluX29uX293bmVyCiA4LjQ1JSAgc2No ZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gbXV0ZXhfdW5sb2NrCiA0LjEy JSAgc2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gc3lzdGVtX2NhbGwK IDMuMDElICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSBzeXN0ZW1f Y2FsbF9jb21tb24KIDIuODMlICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0g IFtrXSBjb3B5cGFnZV9wb3dlcjcKIDIuNjQlICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwu dm1saW51eF0gIFtrXSByd3NlbV9zcGluX29uX293bmVyCiAyLjAwJSAgc2NoZWQtbWVzc2Fn aW5nICBba2VybmVsLnZtbGludXhdICBba10gb3NxX2xvY2sKCmFmdGVyIHBhdGNoOgogOS45 OSUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAgW2tdIG11dGV4X3VubG9j awogNS4yOCUgIHNjaGVkLW1lc3NhZ2luZyAgW3Vua25vd25dICAgICAgICAgW0hdIDB4YzAw MDAwMDAwMDA3NjhlMAogNC4yNyUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4 XSAgW2tdIF9fY29weV90b2Zyb21fdXNlcl9wb3dlcjcKIDMuNzclICBzY2hlZC1tZXNzYWdp bmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSBjb3B5cGFnZV9wb3dlcjcKIDMuMjQlICBzY2hl ZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSBfcmF3X3dyaXRlX2xvY2tfaXJx CiAzLjAyJSAgc2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gc3lzdGVt X2NhbGwKIDIuNjklICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSB3 YWl0X2NvbnNpZGVyX3Rhc2sKClNpZ25lZC1vZmYtYnk6IFBhbiBYaW5odWkgPHhpbmh1aS5w YW5AbGludXgudm5ldC5pYm0uY29tPgpBY2tlZC1ieTogQ2hyaXN0aWFuIEJvcm50cmFlZ2Vy IDxib3JudHJhZWdlckBkZS5pYm0uY29tPgpUZXN0ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpn cm9zc0BzdXNlLmNvbT4KLS0tCiBrZXJuZWwvbG9ja2luZy9tdXRleC5jICAgICAgfCAxNSAr KysrKysrKysrKysrLS0KIGtlcm5lbC9sb2NraW5nL3J3c2VtLXhhZGQuYyB8IDE2ICsrKysr KysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9rZXJuZWwvbG9ja2luZy9tdXRleC5jIGIva2VybmVs L2xvY2tpbmcvbXV0ZXguYwppbmRleCBhNzBiOTBkLi44MjEwOGY1IDEwMDY0NAotLS0gYS9r ZXJuZWwvbG9ja2luZy9tdXRleC5jCisrKyBiL2tlcm5lbC9sb2NraW5nL211dGV4LmMKQEAg LTIzNiw3ICsyMzYsMTMgQEAgYm9vbCBtdXRleF9zcGluX29uX293bmVyKHN0cnVjdCBtdXRl eCAqbG9jaywgc3RydWN0IHRhc2tfc3RydWN0ICpvd25lcikKIAkJICovCiAJCWJhcnJpZXIo KTsKIAotCQlpZiAoIW93bmVyLT5vbl9jcHUgfHwgbmVlZF9yZXNjaGVkKCkpIHsKKwkJLyoK KwkJICogVXNlIHZjcHVfaXNfcHJlZW1wdGVkIHRvIGRldGVjaCBsb2NrIGhvbGRlciBwcmVl bXB0aW9uIGlzc3VlCisJCSAqIGFuZCBicmVhay4gdmNwdV9pc19wcmVlbXB0ZWQgaXMgYSBt YWNybyBkZWZpbmVkIGJ5IGZhbHNlIGlmCisJCSAqIGFyY2ggZG9lcyBub3Qgc3VwcG9ydCB2 Y3B1IHByZWVtcHRlZCBjaGVjaywKKwkJICovCisJCWlmICghb3duZXItPm9uX2NwdSB8fCBu ZWVkX3Jlc2NoZWQoKSB8fAorCQkJCXZjcHVfaXNfcHJlZW1wdGVkKHRhc2tfY3B1KG93bmVy KSkpIHsKIAkJCXJldCA9IGZhbHNlOwogCQkJYnJlYWs7CiAJCX0KQEAgLTI2MSw4ICsyNjcs MTMgQEAgc3RhdGljIGlubGluZSBpbnQgbXV0ZXhfY2FuX3NwaW5fb25fb3duZXIoc3RydWN0 IG11dGV4ICpsb2NrKQogCiAJcmN1X3JlYWRfbG9jaygpOwogCW93bmVyID0gUkVBRF9PTkNF KGxvY2stPm93bmVyKTsKKworCS8qCisJICogQXMgbG9jayBob2xkZXIgcHJlZW1wdGlvbiBp c3N1ZSwgd2UgYm90aCBza2lwIHNwaW5uaW5nIGlmIHRhc2sgaXMgbm90CisJICogb24gY3B1 IG9yIGl0cyBjcHUgaXMgcHJlZW1wdGVkCisJICovCiAJaWYgKG93bmVyKQotCQlyZXR2YWwg PSBvd25lci0+b25fY3B1OworCQlyZXR2YWwgPSBvd25lci0+b25fY3B1ICYmICF2Y3B1X2lz X3ByZWVtcHRlZCh0YXNrX2NwdShvd25lcikpOwogCXJjdV9yZWFkX3VubG9jaygpOwogCS8q CiAJICogaWYgbG9jay0+b3duZXIgaXMgbm90IHNldCwgdGhlIG11dGV4IG93bmVyIG1heSBo YXZlIGp1c3QgYWNxdWlyZWQKZGlmZiAtLWdpdCBhL2tlcm5lbC9sb2NraW5nL3J3c2VtLXhh ZGQuYyBiL2tlcm5lbC9sb2NraW5nL3J3c2VtLXhhZGQuYwppbmRleCAyMzM3YjRiLi4wODk3 MTc5IDEwMDY0NAotLS0gYS9rZXJuZWwvbG9ja2luZy9yd3NlbS14YWRkLmMKKysrIGIva2Vy bmVsL2xvY2tpbmcvcndzZW0teGFkZC5jCkBAIC0zMzYsNyArMzM2LDExIEBAIHN0YXRpYyBp bmxpbmUgYm9vbCByd3NlbV9jYW5fc3Bpbl9vbl9vd25lcihzdHJ1Y3Qgcndfc2VtYXBob3Jl ICpzZW0pCiAJCWdvdG8gZG9uZTsKIAl9CiAKLQlyZXQgPSBvd25lci0+b25fY3B1OworCS8q CisJICogQXMgbG9jayBob2xkZXIgcHJlZW1wdGlvbiBpc3N1ZSwgd2UgYm90aCBza2lwIHNw aW5uaW5nIGlmIHRhc2sgaXMgbm90CisJICogb24gY3B1IG9yIGl0cyBjcHUgaXMgcHJlZW1w dGVkCisJICovCisJcmV0ID0gb3duZXItPm9uX2NwdSAmJiAhdmNwdV9pc19wcmVlbXB0ZWQo dGFza19jcHUob3duZXIpKTsKIGRvbmU6CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAJcmV0dXJu IHJldDsKQEAgLTM2Miw4ICszNjYsMTQgQEAgc3RhdGljIG5vaW5saW5lIGJvb2wgcndzZW1f c3Bpbl9vbl9vd25lcihzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pCiAJCSAqLwogCQliYXJy aWVyKCk7CiAKLQkJLyogYWJvcnQgc3Bpbm5pbmcgd2hlbiBuZWVkX3Jlc2NoZWQgb3Igb3du ZXIgaXMgbm90IHJ1bm5pbmcgKi8KLQkJaWYgKCFvd25lci0+b25fY3B1IHx8IG5lZWRfcmVz Y2hlZCgpKSB7CisJCS8qCisJCSAqIGFib3J0IHNwaW5uaW5nIHdoZW4gbmVlZF9yZXNjaGVk IG9yIG93bmVyIGlzIG5vdCBydW5uaW5nIG9yCisJCSAqIG93bmVyJ3MgY3B1IGlzIHByZWVt cHRlZC4gdmNwdV9pc19wcmVlbXB0ZWQgaXMgYSBtYWNybworCQkgKiBkZWZpbmVkIGJ5IGZh bHNlIGlmIGFyY2ggZG9lcyBub3Qgc3VwcG9ydCB2Y3B1IHByZWVtcHRlZAorCQkgKiBjaGVj aworCQkgKi8KKwkJaWYgKCFvd25lci0+b25fY3B1IHx8IG5lZWRfcmVzY2hlZCgpIHx8CisJ CQkJdmNwdV9pc19wcmVlbXB0ZWQodGFza19jcHUob3duZXIpKSkgewogCQkJcmN1X3JlYWRf dW5sb2NrKCk7CiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KLS0gCjIuNC4xMQoKAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2Ni0wMDA0LXBvd2VycGMtc3Bpbmxv Y2stc3VwcG9ydC12Y3B1LXByZWVtcHRlZC1jaGVjay5wYXRjaAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAw MDMyNjUAMTMwMDQ2MDExMDYAMDIyNTI2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAEZyb20gM2M4ZDg0ZTYxMWUyMWMxNzRhOWFiMjZkZWNkOWQ1NjViZmEwMmE3MSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFuIFhpbmh1aSA8eGluaHVpLnBhbkBsaW51 eC52bmV0LmlibS5jb20+CkRhdGU6IEZyaSwgMjggT2N0IDIwMTYgMDM6NDU6MjMgLTA0MDAK U3ViamVjdDogW1BBVENIIHY2IDA0LzExXSBwb3dlcnBjL3NwaW5sb2NrOiBzdXBwb3J0IHZj cHUgcHJlZW1wdGVkIGNoZWNrCgpUaGlzIGlzIHRvIGZpeCBzb21lIGxvY2sgaG9sZGVyIHBy ZWVtcHRpb24gaXNzdWVzLiBTb21lIG90aGVyIGxvY2tzCmltcGxlbWVudGF0aW9uIGRvIGEg c3BpbiBsb29wIGJlZm9yZSBhY3F1aXJpbmcgdGhlIGxvY2sgaXRzZWxmLgpDdXJyZW50bHkg a2VybmVsIGhhcyBhbiBpbnRlcmZhY2Ugb2YgYm9vbCB2Y3B1X2lzX3ByZWVtcHRlZChpbnQg Y3B1KS4gSXQKdGFrZXMgdGhlIGNwdSBhcyBwYXJhbWV0ZXIgYW5kIHJldHVybiB0cnVlIGlm IHRoZSBjcHUgaXMgcHJlZW1wdGVkLiBUaGVuCmtlcm5lbCBjYW4gYnJlYWsgdGhlIHNwaW4g bG9vcHMgdXBvbiBvbiB0aGUgcmV0dmFsIG9mIHZjcHVfaXNfcHJlZW1wdGVkLgoKQXMga2Vy bmVsIGhhcyB1c2VkIHRoaXMgaW50ZXJmYWNlLCBTbyBsZXRzIHN1cHBvcnQgaXQuCgpPbmx5 IHBTZXJpZXMgbmVlZCBzdXBwb3J0IGl0LiBBbmQgdGhlIGZhY3QgaXMgcG93ZXJOViBhcmUg YnVpbHQgaW50bwpzYW1lIGtlcm5lbCBpbWFnZSB3aXRoIHBTZXJpZXMuIFNvIHdlIG5lZWQg cmV0dXJuIGZhbHNlIGlmIHdlIGFyZSBydW5uaWcKYXMgcG93ZXJOVi4gVGhlIGFub3RoZXIg ZmFjdCBpcyB0aGF0IGxwcGFjYS0+eWlsZWRfY291bnQga2VlcHMgemVybyBvbgpwb3dlck5W LiBTbyB3ZSBjYW4ganVzdCBza2lwIHRoZSBtYWNoaW5lIHR5cGUgY2hlY2suCgpTdWdnZXN0 ZWQtYnk6IEJvcXVuIEZlbmcgPGJvcXVuLmZlbmdAZ21haWwuY29tPgpTdWdnZXN0ZWQtYnk6 IFBldGVyIFppamxzdHJhIChJbnRlbCkgPHBldGVyekBpbmZyYWRlYWQub3JnPgpTaWduZWQt b2ZmLWJ5OiBQYW4gWGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZuZXQuaWJtLmNvbT4KLS0t CiBhcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3BpbmxvY2suaCB8IDggKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy cGMvaW5jbHVkZS9hc20vc3BpbmxvY2suaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9z cGlubG9jay5oCmluZGV4IGZhMzdmZTkuLjhjMWI5MTMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93 ZXJwYy9pbmNsdWRlL2FzbS9zcGlubG9jay5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRl L2FzbS9zcGlubG9jay5oCkBAIC01Miw2ICs1MiwxNCBAQAogI2RlZmluZSBTWU5DX0lPCiAj ZW5kaWYKIAorI2lmZGVmIENPTkZJR19QUENfUFNFUklFUworI2RlZmluZSB2Y3B1X2lzX3By ZWVtcHRlZCB2Y3B1X2lzX3ByZWVtcHRlZAorc3RhdGljIGlubGluZSBib29sIHZjcHVfaXNf cHJlZW1wdGVkKGludCBjcHUpCit7CisJcmV0dXJuICEhKGJlMzJfdG9fY3B1KGxwcGFjYV9v ZihjcHUpLnlpZWxkX2NvdW50KSAmIDEpOworfQorI2VuZGlmCisKIHN0YXRpYyBfX2Fsd2F5 c19pbmxpbmUgaW50IGFyY2hfc3Bpbl92YWx1ZV91bmxvY2tlZChhcmNoX3NwaW5sb2NrX3Qg bG9jaykKIHsKIAlyZXR1cm4gbG9jay5zbG9jayA9PSAwOwotLSAKMi40LjExCgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA djYtMDAwNS1zMzkwLXNwaW5sb2NrLVByb3ZpZGUtdmNwdV9pc19wcmVlbXB0ZWQucGF0Y2gA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQA MDAwMDAwMAAwMDAwMDAwADAwMDAwMDExNjYxADEzMDA0NjAxMTA2ADAyMTE0MwAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGcm9tIDBmNWZhZjZjMTE1YmJjNDMwZWRkNjU3 NTNjODEyNDFmMTc5ZDVlOWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENocmlz dGlhbiBCb3JudHJhZWdlciA8Ym9ybnRyYWVnZXJAZGUuaWJtLmNvbT4KRGF0ZTogV2VkLCAx OSBPY3QgMjAxNiAxMDo0MjowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggdjYgMDUvMTFdIHMz OTAvc3BpbmxvY2s6IFByb3ZpZGUgdmNwdV9pc19wcmVlbXB0ZWQKCnRoaXMgaW1wbGVtZW50 cyB0aGUgczM5MCBiYWNrZW5kIGZvciBjb21taXQKImtlcm5lbC9zY2hlZDogaW50cm9kdWNl IHZjcHUgcHJlZW1wdGVkIGNoZWNrIGludGVyZmFjZSIKYnkgcmV3b3JraW5nIHRoZSBleGlz dGluZyBzbXBfdmNwdV9zY2hlZHVsZWQgaW50bwphcmNoX3ZjcHVfaXNfcHJlZW1wdGVkLiBX ZSBjYW4gdGhlbiBhbHNvIGdldCByaWQgb2YgdGhlCmxvY2FsIGNwdV9pc19wcmVlbXB0ZWQg ZnVuY3Rpb24gYnkgbW92aW5nIHRoZQpDSUZfRU5BQkxFRF9XQUlUIHRlc3QgaW50byBhcmNo X3ZjcHVfaXNfcHJlZW1wdGVkLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEJvcm50cmFl Z2VyIDxib3JudHJhZWdlckBkZS5pYm0uY29tPgpBY2tlZC1ieTogSGVpa28gQ2Fyc3RlbnMg PGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+Ci0tLQogYXJjaC9zMzkwL2luY2x1ZGUvYXNt L3NwaW5sb2NrLmggfCAgOCArKysrKysrKwogYXJjaC9zMzkwL2tlcm5lbC9zbXAuYyAgICAg ICAgICAgfCAgOSArKysrKysrLS0KIGFyY2gvczM5MC9saWIvc3BpbmxvY2suYyAgICAgICAg IHwgMjUgKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyMyBp bnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAv aW5jbHVkZS9hc20vc3BpbmxvY2suaCBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9zcGlubG9j ay5oCmluZGV4IDdlOWUwOWYuLjdlY2Q4OTAgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9pbmNs dWRlL2FzbS9zcGlubG9jay5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9zcGlubG9j ay5oCkBAIC0yMyw2ICsyMywxNCBAQCBfcmF3X2NvbXBhcmVfYW5kX3N3YXAodW5zaWduZWQg aW50ICpsb2NrLCB1bnNpZ25lZCBpbnQgb2xkLCB1bnNpZ25lZCBpbnQgbmV3KQogCXJldHVy biBfX3N5bmNfYm9vbF9jb21wYXJlX2FuZF9zd2FwKGxvY2ssIG9sZCwgbmV3KTsKIH0KIAor I2lmbmRlZiBDT05GSUdfU01QCitzdGF0aWMgaW5saW5lIGJvb2wgYXJjaF92Y3B1X2lzX3By ZWVtcHRlZChpbnQgY3B1KSB7IHJldHVybiBmYWxzZTsgfQorI2Vsc2UKK2Jvb2wgYXJjaF92 Y3B1X2lzX3ByZWVtcHRlZChpbnQgY3B1KTsKKyNlbmRpZgorCisjZGVmaW5lIHZjcHVfaXNf cHJlZW1wdGVkIGFyY2hfdmNwdV9pc19wcmVlbXB0ZWQKKwogLyoKICAqIFNpbXBsZSBzcGlu IGxvY2sgb3BlcmF0aW9ucy4gIFRoZXJlIGFyZSB0d28gdmFyaWFudHMsIG9uZSBjbGVhcnMg SVJRJ3MKICAqIG9uIHRoZSBsb2NhbCBwcm9jZXNzb3IsIG9uZSBkb2VzIG5vdC4KZGlmZiAt LWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvc21wLmMgYi9hcmNoL3MzOTAva2VybmVsL3NtcC5j CmluZGV4IDM1NTMxZmUuLmI5ODhlZDEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwv c21wLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9zbXAuYwpAQCAtMzY4LDEwICszNjgsMTUg QEAgaW50IHNtcF9maW5kX3Byb2Nlc3Nvcl9pZCh1MTYgYWRkcmVzcykKIAlyZXR1cm4gLTE7 CiB9CiAKLWludCBzbXBfdmNwdV9zY2hlZHVsZWQoaW50IGNwdSkKK2Jvb2wgYXJjaF92Y3B1 X2lzX3ByZWVtcHRlZChpbnQgY3B1KQogewotCXJldHVybiBwY3B1X3J1bm5pbmcocGNwdV9k ZXZpY2VzICsgY3B1KTsKKwlpZiAodGVzdF9jcHVfZmxhZ19vZihDSUZfRU5BQkxFRF9XQUlU LCBjcHUpKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKHBjcHVfcnVubmluZyhwY3B1X2Rldmlj ZXMgKyBjcHUpKQorCQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIHRydWU7CiB9CitFWFBPUlRf U1lNQk9MKGFyY2hfdmNwdV9pc19wcmVlbXB0ZWQpOwogCiB2b2lkIHNtcF95aWVsZF9jcHUo aW50IGNwdSkKIHsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9saWIvc3BpbmxvY2suYyBiL2Fy Y2gvczM5MC9saWIvc3BpbmxvY2suYwppbmRleCBlNWY1MGE3Li5lNDhhNDhlIDEwMDY0NAot LS0gYS9hcmNoL3MzOTAvbGliL3NwaW5sb2NrLmMKKysrIGIvYXJjaC9zMzkwL2xpYi9zcGlu bG9jay5jCkBAIC0zNywxNSArMzcsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX3Jhd19jb21w YXJlX2FuZF9kZWxheSh1bnNpZ25lZCBpbnQgKmxvY2ssIHVuc2lnbmVkIGludCBvbGQpCiAJ YXNtKCIuaW5zbiByc3ksMHhlYjAwMDAwMDAwMjIsJTAsMCwlMSIgOiA6ICJkIiAob2xkKSwg IlEiICgqbG9jaykpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBjcHVfaXNfcHJlZW1wdGVk KGludCBjcHUpCi17Ci0JaWYgKHRlc3RfY3B1X2ZsYWdfb2YoQ0lGX0VOQUJMRURfV0FJVCwg Y3B1KSkKLQkJcmV0dXJuIDA7Ci0JaWYgKHNtcF92Y3B1X3NjaGVkdWxlZChjcHUpKQotCQly ZXR1cm4gMDsKLQlyZXR1cm4gMTsKLX0KLQogdm9pZCBhcmNoX3NwaW5fbG9ja193YWl0KGFy Y2hfc3BpbmxvY2tfdCAqbHApCiB7CiAJdW5zaWduZWQgaW50IGNwdSA9IFNQSU5MT0NLX0xP Q0tWQUw7CkBAIC02Miw3ICs1Myw3IEBAIHZvaWQgYXJjaF9zcGluX2xvY2tfd2FpdChhcmNo X3NwaW5sb2NrX3QgKmxwKQogCQkJY29udGludWU7CiAJCX0KIAkJLyogRmlyc3QgaXRlcmF0 aW9uOiBjaGVjayBpZiB0aGUgbG9jayBvd25lciBpcyBydW5uaW5nLiAqLwotCQlpZiAoZmly c3RfZGlhZyAmJiBjcHVfaXNfcHJlZW1wdGVkKH5vd25lcikpIHsKKwkJaWYgKGZpcnN0X2Rp YWcgJiYgYXJjaF92Y3B1X2lzX3ByZWVtcHRlZCh+b3duZXIpKSB7CiAJCQlzbXBfeWllbGRf Y3B1KH5vd25lcik7CiAJCQlmaXJzdF9kaWFnID0gMDsKIAkJCWNvbnRpbnVlOwpAQCAtODEs NyArNzIsNyBAQCB2b2lkIGFyY2hfc3Bpbl9sb2NrX3dhaXQoYXJjaF9zcGlubG9ja190ICps cCkKIAkJICogeWllbGQgdGhlIENQVSB1bmNvbmRpdGlvbmFsbHkuIEZvciBMUEFSIHJlbHkg b24gdGhlCiAJCSAqIHNlbnNlIHJ1bm5pbmcgc3RhdHVzLgogCQkgKi8KLQkJaWYgKCFNQUNI SU5FX0lTX0xQQVIgfHwgY3B1X2lzX3ByZWVtcHRlZCh+b3duZXIpKSB7CisJCWlmICghTUFD SElORV9JU19MUEFSIHx8IGFyY2hfdmNwdV9pc19wcmVlbXB0ZWQofm93bmVyKSkgewogCQkJ c21wX3lpZWxkX2NwdSh+b3duZXIpOwogCQkJZmlyc3RfZGlhZyA9IDA7CiAJCX0KQEAgLTEw OCw3ICs5OSw3IEBAIHZvaWQgYXJjaF9zcGluX2xvY2tfd2FpdF9mbGFncyhhcmNoX3NwaW5s b2NrX3QgKmxwLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCQkJY29udGludWU7CiAJCX0KIAkJ LyogQ2hlY2sgaWYgdGhlIGxvY2sgb3duZXIgaXMgcnVubmluZy4gKi8KLQkJaWYgKGZpcnN0 X2RpYWcgJiYgY3B1X2lzX3ByZWVtcHRlZCh+b3duZXIpKSB7CisJCWlmIChmaXJzdF9kaWFn ICYmIGFyY2hfdmNwdV9pc19wcmVlbXB0ZWQofm93bmVyKSkgewogCQkJc21wX3lpZWxkX2Nw dSh+b3duZXIpOwogCQkJZmlyc3RfZGlhZyA9IDA7CiAJCQljb250aW51ZTsKQEAgLTEyNyw3 ICsxMTgsNyBAQCB2b2lkIGFyY2hfc3Bpbl9sb2NrX3dhaXRfZmxhZ3MoYXJjaF9zcGlubG9j a190ICpscCwgdW5zaWduZWQgbG9uZyBmbGFncykKIAkJICogeWllbGQgdGhlIENQVSB1bmNv bmRpdGlvbmFsbHkuIEZvciBMUEFSIHJlbHkgb24gdGhlCiAJCSAqIHNlbnNlIHJ1bm5pbmcg c3RhdHVzLgogCQkgKi8KLQkJaWYgKCFNQUNISU5FX0lTX0xQQVIgfHwgY3B1X2lzX3ByZWVt cHRlZCh+b3duZXIpKSB7CisJCWlmICghTUFDSElORV9JU19MUEFSIHx8IGFyY2hfdmNwdV9p c19wcmVlbXB0ZWQofm93bmVyKSkgewogCQkJc21wX3lpZWxkX2NwdSh+b3duZXIpOwogCQkJ Zmlyc3RfZGlhZyA9IDA7CiAJCX0KQEAgLTE2NSw3ICsxNTYsNyBAQCB2b2lkIF9yYXdfcmVh ZF9sb2NrX3dhaXQoYXJjaF9yd2xvY2tfdCAqcncpCiAJb3duZXIgPSAwOwogCXdoaWxlICgx KSB7CiAJCWlmIChjb3VudC0tIDw9IDApIHsKLQkJCWlmIChvd25lciAmJiBjcHVfaXNfcHJl ZW1wdGVkKH5vd25lcikpCisJCQlpZiAob3duZXIgJiYgYXJjaF92Y3B1X2lzX3ByZWVtcHRl ZCh+b3duZXIpKQogCQkJCXNtcF95aWVsZF9jcHUofm93bmVyKTsKIAkJCWNvdW50ID0gc3Bp bl9yZXRyeTsKIAkJfQpAQCAtMjExLDcgKzIwMiw3IEBAIHZvaWQgX3Jhd193cml0ZV9sb2Nr X3dhaXQoYXJjaF9yd2xvY2tfdCAqcncsIHVuc2lnbmVkIGludCBwcmV2KQogCW93bmVyID0g MDsKIAl3aGlsZSAoMSkgewogCQlpZiAoY291bnQtLSA8PSAwKSB7Ci0JCQlpZiAob3duZXIg JiYgY3B1X2lzX3ByZWVtcHRlZCh+b3duZXIpKQorCQkJaWYgKG93bmVyICYmIGFyY2hfdmNw dV9pc19wcmVlbXB0ZWQofm93bmVyKSkKIAkJCQlzbXBfeWllbGRfY3B1KH5vd25lcik7CiAJ CQljb3VudCA9IHNwaW5fcmV0cnk7CiAJCX0KQEAgLTI0MSw3ICsyMzIsNyBAQCB2b2lkIF9y YXdfd3JpdGVfbG9ja193YWl0KGFyY2hfcndsb2NrX3QgKnJ3KQogCW93bmVyID0gMDsKIAl3 aGlsZSAoMSkgewogCQlpZiAoY291bnQtLSA8PSAwKSB7Ci0JCQlpZiAob3duZXIgJiYgY3B1 X2lzX3ByZWVtcHRlZCh+b3duZXIpKQorCQkJaWYgKG93bmVyICYmIGFyY2hfdmNwdV9pc19w cmVlbXB0ZWQofm93bmVyKSkKIAkJCQlzbXBfeWllbGRfY3B1KH5vd25lcik7CiAJCQljb3Vu dCA9IHNwaW5fcmV0cnk7CiAJCX0KQEAgLTI4NSw3ICsyNzYsNyBAQCB2b2lkIGFyY2hfbG9j a19yZWxheCh1bnNpZ25lZCBpbnQgY3B1KQogewogCWlmICghY3B1KQogCQlyZXR1cm47Ci0J aWYgKE1BQ0hJTkVfSVNfTFBBUiAmJiAhY3B1X2lzX3ByZWVtcHRlZCh+Y3B1KSkKKwlpZiAo TUFDSElORV9JU19MUEFSICYmICFhcmNoX3ZjcHVfaXNfcHJlZW1wdGVkKH5jcHUpKQogCQly ZXR1cm47CiAJc21wX3lpZWxkX2NwdSh+Y3B1KTsKIH0KLS0gCjIuNC4xMQoKAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAHY2LTAwMDYteDg2LXBhcmF2aXJ0LUFkZC1pbnRlcmZhY2UtdG8t c3VwcG9ydC1rdm0teGVuLXZjcC5wYXRjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwNTM0MQAxMzAwNDYwMTEw NgAwMjI3MDUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARnJvbSBmMTY1NzQy NzZkNjdiZWUwYTAzZmM1OTA3ZjljZjEyY2RmZjMyMGE3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBQYW4gWGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZuZXQuaWJtLmNvbT4K RGF0ZTogVGh1LCAyMCBPY3QgMjAxNiAwODowMTozOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djYgMDYvMTFdIHg4NiwgcGFyYXZpcnQ6IEFkZCBpbnRlcmZhY2UgdG8gc3VwcG9ydCBrdm0v eGVuIHZjcHUKIHByZWVtcHRlZCBjaGVjawoKVGhpcyBpcyB0byBmaXggc29tZSBsb2NrIGhv bGRlciBwcmVlbXB0aW9uIGlzc3Vlcy4gU29tZSBvdGhlciBsb2NrcwppbXBsZW1lbnRhdGlv biBkbyBhIHNwaW4gbG9vcCBiZWZvcmUgYWNxdWlyaW5nIHRoZSBsb2NrIGl0c2VsZi4KQ3Vy cmVudGx5IGtlcm5lbCBoYXMgYW4gaW50ZXJmYWNlIG9mIGJvb2wgdmNwdV9pc19wcmVlbXB0 ZWQoaW50IGNwdSkuIEl0CnRha2VzIHRoZSBjcHUgYXMgcGFyYW1ldGVyIGFuZCByZXR1cm4g dHJ1ZSBpZiB0aGUgY3B1IGlzIHByZWVtcHRlZC4KVGhlbiBrZXJuZWwgY2FuIGJyZWFrIHRo ZSBzcGluIGxvb3BzIHVwb24gb24gdGhlIHJldHZhbCBvZgp2Y3B1X2lzX3ByZWVtcHRlZC4K CkFzIGtlcm5lbCBoYXMgdXNlZCB0aGlzIGludGVyZmFjZSwgU28gbGV0cyBzdXBwb3J0IGl0 LgoKVG8gZGVhbCB3aXRoIGtlcm5lbCBhbmQga3ZtL3hlbiwgYWRkIHZjcHVfaXNfcHJlZW1w dGVkIGludG8gc3RydWN0CnB2X2xvY2tfb3BzLgoKVGhlbiBrdm0gb3IgeGVuIGNvdWxkIHBy b3ZpZGUgdGhlaXIgb3duIGltcGxlbWVudGF0aW9uIHRvIHN1cHBvcnQKdmNwdV9pc19wcmVl bXB0ZWQuCgpTaWduZWQtb2ZmLWJ5OiBQYW4gWGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZu ZXQuaWJtLmNvbT4KLS0tCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5o IHwgMiArKwogYXJjaC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaCAgICAgICB8IDggKysr KysrKysKIGFyY2gveDg2L2tlcm5lbC9wYXJhdmlydC1zcGlubG9ja3MuYyAgfCA2ICsrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYXJj aC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCBiL2FyY2gveDg2L2luY2x1ZGUv YXNtL3BhcmF2aXJ0X3R5cGVzLmgKaW5kZXggMGY0MDBjMC4uMzhjM2JiNyAxMDA2NDQKLS0t IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaAorKysgYi9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oCkBAIC0zMTAsNiArMzEwLDggQEAgc3Ry dWN0IHB2X2xvY2tfb3BzIHsKIAogCXZvaWQgKCp3YWl0KSh1OCAqcHRyLCB1OCB2YWwpOwog CXZvaWQgKCpraWNrKShpbnQgY3B1KTsKKworCWJvb2wgKCp2Y3B1X2lzX3ByZWVtcHRlZCko aW50IGNwdSk7CiB9OwogCiAvKiBUaGlzIGNvbnRhaW5zIGFsbCB0aGUgcGFyYXZpcnQgc3Ry dWN0dXJlczogd2UgZ2V0IGEgY29udmVuaWVudApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5j bHVkZS9hc20vc3BpbmxvY2suaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgK aW5kZXggOTIxYmVhNy4uMDUyNmY1OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9h c20vc3BpbmxvY2suaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9jay5oCkBA IC0yNiw2ICsyNiwxNCBAQAogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3Rp Y2tldGxvY2tzX2VuYWJsZWQ7CiBzdGF0aWMgX19hbHdheXNfaW5saW5lIGJvb2wgc3RhdGlj X2tleV9mYWxzZShzdHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKIAorI2lmZGVmIENPTkZJR19Q QVJBVklSVF9TUElOTE9DS1MKKyNkZWZpbmUgdmNwdV9pc19wcmVlbXB0ZWQgdmNwdV9pc19w cmVlbXB0ZWQKK3N0YXRpYyBpbmxpbmUgYm9vbCB2Y3B1X2lzX3ByZWVtcHRlZChpbnQgY3B1 KQoreworCXJldHVybiBwdl9sb2NrX29wcy52Y3B1X2lzX3ByZWVtcHRlZChjcHUpOworfQor I2VuZGlmCisKICNpbmNsdWRlIDxhc20vcXNwaW5sb2NrLmg+CiAKIC8qCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQtc3BpbmxvY2tzLmMgYi9hcmNoL3g4Ni9rZXJu ZWwvcGFyYXZpcnQtc3BpbmxvY2tzLmMKaW5kZXggMmM1NWEwMC4uMmYyMDRkZCAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LXNwaW5sb2Nrcy5jCisrKyBiL2FyY2gv eDg2L2tlcm5lbC9wYXJhdmlydC1zcGlubG9ja3MuYwpAQCAtMjEsMTIgKzIxLDE4IEBAIGJv b2wgcHZfaXNfbmF0aXZlX3NwaW5fdW5sb2NrKHZvaWQpCiAJCV9fcmF3X2NhbGxlZV9zYXZl X19fbmF0aXZlX3F1ZXVlZF9zcGluX3VubG9jazsKIH0KIAorc3RhdGljIGJvb2wgbmF0aXZl X3ZjcHVfaXNfcHJlZW1wdGVkKGludCBjcHUpCit7CisJcmV0dXJuIDA7Cit9CisKIHN0cnVj dCBwdl9sb2NrX29wcyBwdl9sb2NrX29wcyA9IHsKICNpZmRlZiBDT05GSUdfU01QCiAJLnF1 ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGggPSBuYXRpdmVfcXVldWVkX3NwaW5fbG9ja19zbG93 cGF0aCwKIAkucXVldWVkX3NwaW5fdW5sb2NrID0gUFZfQ0FMTEVFX1NBVkUoX19uYXRpdmVf cXVldWVkX3NwaW5fdW5sb2NrKSwKIAkud2FpdCA9IHBhcmF2aXJ0X25vcCwKIAkua2ljayA9 IHBhcmF2aXJ0X25vcCwKKwkudmNwdV9pc19wcmVlbXB0ZWQgPSBuYXRpdmVfdmNwdV9pc19w cmVlbXB0ZWQsCiAjZW5kaWYgLyogU01QICovCiB9OwogRVhQT1JUX1NZTUJPTChwdl9sb2Nr X29wcyk7Ci0tIAoyLjQuMTEKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdjYtMDAwNy1LVk0tSW50cm9k dWNlLWt2bV93cml0ZV9ndWVzdF9vZmZzZXRfY2FjaGVkLnBhdGNoAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAw MDAwMDA1NjUwADEzMDA0NjAxMTA2ADAyMjE0NwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAABGcm9tIDFlMWE2NGM5MWFkM2MxMjcxZjhjMjU1ODY5MDNlZDg1N2FkY2M2YjYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhbiBYaW5odWkgPHhpbmh1aS5wYW5A bGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBGcmksIDI4IE9jdCAyMDE2IDAzOjAyOjMzIC0w NDAwClN1YmplY3Q6IFtQQVRDSCB2NiAwNy8xMV0gS1ZNOiBJbnRyb2R1Y2Uga3ZtX3dyaXRl X2d1ZXN0X29mZnNldF9jYWNoZWQKCkl0IGFsbG93cyB1cyB0byB1cGRhdGUgc29tZSBzdGF0 dXMgb3IgZmllbGQgb2Ygb25lIHN0cnVjdCBwYXJ0aWFsbHkuCgpXZSBjYW4gYWxzbyBzYXZl IG9uZSBrdm1fcmVhZF9ndWVzdF9jYWNoZWQgaWYgd2UganVzdCB1cGRhdGUgb25lIGZpbGVk Cm9mIHRoZSBzdHJ1Y3QgcmVnYXJkbGVzcyBvZiBpdHMgY3VycmVudCB2YWx1ZS4KClNpZ25l ZC1vZmYtYnk6IFBhbiBYaW5odWkgPHhpbmh1aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgot LS0KIGluY2x1ZGUvbGludXgva3ZtX2hvc3QuaCB8ICAyICsrCiB2aXJ0L2t2bS9rdm1fbWFp bi5jICAgICAgfCAyMCArKysrKysrKysrKysrKy0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAx NiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgva3ZtX2hvc3QuaCBiL2luY2x1ZGUvbGludXgva3ZtX2hvc3QuaAppbmRleCAwMWMw YjljLi42ZjAwMjM3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgKKysr IGIvaW5jbHVkZS9saW51eC9rdm1faG9zdC5oCkBAIC02NDUsNiArNjQ1LDggQEAgaW50IGt2 bV93cml0ZV9ndWVzdChzdHJ1Y3Qga3ZtICprdm0sIGdwYV90IGdwYSwgY29uc3Qgdm9pZCAq ZGF0YSwKIAkJICAgIHVuc2lnbmVkIGxvbmcgbGVuKTsKIGludCBrdm1fd3JpdGVfZ3Vlc3Rf Y2FjaGVkKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGdmbl90b19odmFfY2FjaGUgKmdoYywK IAkJCSAgIHZvaWQgKmRhdGEsIHVuc2lnbmVkIGxvbmcgbGVuKTsKK2ludCBrdm1fd3JpdGVf Z3Vlc3Rfb2Zmc2V0X2NhY2hlZChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBnZm5fdG9faHZh X2NhY2hlICpnaGMsCisJCQkgICB2b2lkICpkYXRhLCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBs b25nIGxlbik7CiBpbnQga3ZtX2dmbl90b19odmFfY2FjaGVfaW5pdChzdHJ1Y3Qga3ZtICpr dm0sIHN0cnVjdCBnZm5fdG9faHZhX2NhY2hlICpnaGMsCiAJCQkgICAgICBncGFfdCBncGEs IHVuc2lnbmVkIGxvbmcgbGVuKTsKIGludCBrdm1fY2xlYXJfZ3Vlc3RfcGFnZShzdHJ1Y3Qg a3ZtICprdm0sIGdmbl90IGdmbiwgaW50IG9mZnNldCwgaW50IGxlbik7CmRpZmYgLS1naXQg YS92aXJ0L2t2bS9rdm1fbWFpbi5jIGIvdmlydC9rdm0va3ZtX21haW4uYwppbmRleCAyOTA3 YjdiLi45NTMwOGVlIDEwMDY0NAotLS0gYS92aXJ0L2t2bS9rdm1fbWFpbi5jCisrKyBiL3Zp cnQva3ZtL2t2bV9tYWluLmMKQEAgLTE5NzIsMzAgKzE5NzIsMzggQEAgaW50IGt2bV9nZm5f dG9faHZhX2NhY2hlX2luaXQoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3QgZ2ZuX3RvX2h2YV9j YWNoZSAqZ2hjLAogfQogRVhQT1JUX1NZTUJPTF9HUEwoa3ZtX2dmbl90b19odmFfY2FjaGVf aW5pdCk7CiAKLWludCBrdm1fd3JpdGVfZ3Vlc3RfY2FjaGVkKHN0cnVjdCBrdm0gKmt2bSwg c3RydWN0IGdmbl90b19odmFfY2FjaGUgKmdoYywKLQkJCSAgIHZvaWQgKmRhdGEsIHVuc2ln bmVkIGxvbmcgbGVuKQoraW50IGt2bV93cml0ZV9ndWVzdF9vZmZzZXRfY2FjaGVkKHN0cnVj dCBrdm0gKmt2bSwgc3RydWN0IGdmbl90b19odmFfY2FjaGUgKmdoYywKKwkJCSAgIHZvaWQg KmRhdGEsIGludCBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgbGVuKQogewogCXN0cnVjdCBrdm1f bWVtc2xvdHMgKnNsb3RzID0ga3ZtX21lbXNsb3RzKGt2bSk7CiAJaW50IHI7CisJZ3BhX3Qg Z3BhID0gZ2hjLT5ncGEgKyBvZmZzZXQ7CiAKLQlCVUdfT04obGVuID4gZ2hjLT5sZW4pOwor CUJVR19PTihsZW4gKyBvZmZzZXQgPiBnaGMtPmxlbik7CiAKIAlpZiAoc2xvdHMtPmdlbmVy YXRpb24gIT0gZ2hjLT5nZW5lcmF0aW9uKQogCQlrdm1fZ2ZuX3RvX2h2YV9jYWNoZV9pbml0 KGt2bSwgZ2hjLCBnaGMtPmdwYSwgZ2hjLT5sZW4pOwogCiAJaWYgKHVubGlrZWx5KCFnaGMt Pm1lbXNsb3QpKQotCQlyZXR1cm4ga3ZtX3dyaXRlX2d1ZXN0KGt2bSwgZ2hjLT5ncGEsIGRh dGEsIGxlbik7CisJCXJldHVybiBrdm1fd3JpdGVfZ3Vlc3Qoa3ZtLCBncGEsIGRhdGEsIGxl bik7CiAKIAlpZiAoa3ZtX2lzX2Vycm9yX2h2YShnaGMtPmh2YSkpCiAJCXJldHVybiAtRUZB VUxUOwogCi0JciA9IF9fY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKWdoYy0+aHZhLCBk YXRhLCBsZW4pOworCXIgPSBfX2NvcHlfdG9fdXNlcigodm9pZCBfX3VzZXIgKilnaGMtPmh2 YSArIG9mZnNldCwgZGF0YSwgbGVuKTsKIAlpZiAocikKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0J bWFya19wYWdlX2RpcnR5X2luX3Nsb3QoZ2hjLT5tZW1zbG90LCBnaGMtPmdwYSA+PiBQQUdF X1NISUZUKTsKKwltYXJrX3BhZ2VfZGlydHlfaW5fc2xvdChnaGMtPm1lbXNsb3QsIGdwYSA+ PiBQQUdFX1NISUZUKTsKIAogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoa3Zt X3dyaXRlX2d1ZXN0X29mZnNldF9jYWNoZWQpOworCitpbnQga3ZtX3dyaXRlX2d1ZXN0X2Nh Y2hlZChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBnZm5fdG9faHZhX2NhY2hlICpnaGMsCisJ CQkgICB2b2lkICpkYXRhLCB1bnNpZ25lZCBsb25nIGxlbikKK3sKKwlyZXR1cm4ga3ZtX3dy aXRlX2d1ZXN0X29mZnNldF9jYWNoZWQoa3ZtLCBnaGMsIGRhdGEsIDAsIGxlbik7Cit9CiBF WFBPUlRfU1lNQk9MX0dQTChrdm1fd3JpdGVfZ3Vlc3RfY2FjaGVkKTsKIAogaW50IGt2bV9y ZWFkX2d1ZXN0X2NhY2hlZChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBnZm5fdG9faHZhX2Nh Y2hlICpnaGMsCi0tIAoyLjQuMTEKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAB2Ni0wMDA4LXg4Ni1rdm0teDg2LmMtc3VwcG9ydC12Y3B1LXByZWVtcHRlZC1jaGVjay5w YXRjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0 NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDQ0NjcAMTMwMDQ2MDExMDYAMDIxMzI0ACAwAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9v dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZyb20gMWE3N2M0NWFiZTU2Mjk1Nzk5Nzky NmZkZTc2MzUzNjE0OGQ4ZGY1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFu IFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IEZyaSwgMjgg T2N0IDIwMTYgMDM6MDk6MjMgLTA0MDAKU3ViamVjdDogW1BBVENIIHY2IDA4LzExXSB4ODYs IGt2bS94ODYuYzogc3VwcG9ydCB2Y3B1IHByZWVtcHRlZCBjaGVjawoKU3VwcG9ydCB0aGUg dmNwdV9pc19wcmVlbXB0ZWQoKSBmdW5jdGlvbmFsaXR5IHVuZGVyIEtWTS4gVGhpcyB3aWxs CmVuaGFuY2UgbG9jayBwZXJmb3JtYW5jZSBvbiBvdmVyY29tbWl0dGVkIGhvc3RzIChtb3Jl IHJ1bm5hYmxlIHZjcHVzCnRoYW4gcGh5c2ljYWwgY3B1cyBpbiB0aGUgc3lzdGVtKSBhcyBk b2luZyBidXN5IHdhaXRzIGZvciBwcmVlbXB0ZWQKdmNwdXMgd2lsbCBodXJ0IHN5c3RlbSBw ZXJmb3JtYW5jZSBmYXIgd29yc2UgdGhhbiBlYXJseSB5aWVsZGluZy4KClVzZSBvbmUgZmll bGQgb2Ygc3RydWN0IGt2bV9zdGVhbF90aW1lIDo6cHJlZW1wdGVkIHRvIGluZGljYXRlIHRo YXQgaWYKb25lIHZjcHUgaXMgcnVubmluZyBvciBub3QuCgpTaWduZWQtb2ZmLWJ5OiBQYW4g WGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZuZXQuaWJtLmNvbT4KLS0tCiBhcmNoL3g4Ni9p bmNsdWRlL3VhcGkvYXNtL2t2bV9wYXJhLmggfCAgNCArKystCiBhcmNoL3g4Ni9rdm0veDg2 LmMgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNo YW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9h cmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bV9wYXJhLmggYi9hcmNoL3g4Ni9pbmNsdWRl L3VhcGkvYXNtL2t2bV9wYXJhLmgKaW5kZXggOTRkYzhjYS4uMTQyMWE2NSAxMDA2NDQKLS0t IGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm1fcGFyYS5oCisrKyBiL2FyY2gveDg2 L2luY2x1ZGUvdWFwaS9hc20va3ZtX3BhcmEuaApAQCAtNDUsNyArNDUsOSBAQCBzdHJ1Y3Qg a3ZtX3N0ZWFsX3RpbWUgewogCV9fdTY0IHN0ZWFsOwogCV9fdTMyIHZlcnNpb247CiAJX191 MzIgZmxhZ3M7Ci0JX191MzIgcGFkWzEyXTsKKwlfX3U4ICBwcmVlbXB0ZWQ7CisJX191OCAg dThfcGFkWzNdOworCV9fdTMyIHBhZFsxMV07CiB9OwogCiAjZGVmaW5lIEtWTV9TVEVBTF9B TElHTk1FTlRfQklUUyA1CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNo L3g4Ni9rdm0veDg2LmMKaW5kZXggZTM3NTIzNS4uZjA2ZTExNSAxMDA2NDQKLS0tIGEvYXJj aC94ODYva3ZtL3g4Ni5jCisrKyBiL2FyY2gveDg2L2t2bS94ODYuYwpAQCAtMjA1Nyw2ICsy MDU3LDggQEAgc3RhdGljIHZvaWQgcmVjb3JkX3N0ZWFsX3RpbWUoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1KQogCQkmdmNwdS0+YXJjaC5zdC5zdGVhbCwgc2l6ZW9mKHN0cnVjdCBrdm1fc3Rl YWxfdGltZSkpKSkKIAkJcmV0dXJuOwogCisJdmNwdS0+YXJjaC5zdC5zdGVhbC5wcmVlbXB0 ZWQgPSAwOworCiAJaWYgKHZjcHUtPmFyY2guc3Quc3RlYWwudmVyc2lvbiAmIDEpCiAJCXZj cHUtPmFyY2guc3Quc3RlYWwudmVyc2lvbiArPSAxOyAgLyogZmlyc3QgdGltZSB3cml0ZSwg cmFuZG9tIGp1bmsgKi8KIApAQCAtMjgxMCw4ICsyODEyLDIyIEBAIHZvaWQga3ZtX2FyY2hf dmNwdV9sb2FkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IGNwdSkKIAlrdm1fbWFrZV9y ZXF1ZXN0KEtWTV9SRVFfU1RFQUxfVVBEQVRFLCB2Y3B1KTsKIH0KIAorc3RhdGljIHZvaWQg a3ZtX3N0ZWFsX3RpbWVfc2V0X3ByZWVtcHRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCit7 CisJaWYgKCEodmNwdS0+YXJjaC5zdC5tc3JfdmFsICYgS1ZNX01TUl9FTkFCTEVEKSkKKwkJ cmV0dXJuOworCisJdmNwdS0+YXJjaC5zdC5zdGVhbC5wcmVlbXB0ZWQgPSAxOworCisJa3Zt X3dyaXRlX2d1ZXN0X29mZnNldF9jYWNoZWQodmNwdS0+a3ZtLCAmdmNwdS0+YXJjaC5zdC5z dGltZSwKKwkJCSZ2Y3B1LT5hcmNoLnN0LnN0ZWFsLnByZWVtcHRlZCwKKwkJCW9mZnNldG9m KHN0cnVjdCBrdm1fc3RlYWxfdGltZSwgcHJlZW1wdGVkKSwKKwkJCXNpemVvZih2Y3B1LT5h cmNoLnN0LnN0ZWFsLnByZWVtcHRlZCkpOworfQorCiB2b2lkIGt2bV9hcmNoX3ZjcHVfcHV0 KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKKwlrdm1fc3RlYWxfdGltZV9zZXRfcHJlZW1w dGVkKHZjcHUpOwogCWt2bV94ODZfb3BzLT52Y3B1X3B1dCh2Y3B1KTsKIAlrdm1fcHV0X2d1 ZXN0X2ZwdSh2Y3B1KTsKIAl2Y3B1LT5hcmNoLmxhc3RfaG9zdF90c2MgPSByZHRzYygpOwot LSAKMi40LjExCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2Ni0w MDA5LXg4Ni1rZXJuZWwta3ZtLmMtc3VwcG9ydC12Y3B1LXByZWVtcHRlZC1jaGVjay5wYXRj aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAw MDAwADAwMDAwMDAAMDAwMDAwMDQ2NzMAMTMwMDQ2MDExMDYAMDIyMTU3ACAwAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZyb20gYTVmZDA4NDM1NzgxNmJhMmYxYWMyOWEwNzVl NTcyMTcyMDBhZjNlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFuIFhpbmh1 aSA8eGluaHVpLnBhbkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IEZyaSwgMjggT2N0IDIw MTYgMDM6MTU6MDIgLTA0MDAKU3ViamVjdDogW1BBVENIIHY2IDA5LzExXSB4ODYsIGtlcm5l bC9rdm0uYzogc3VwcG9ydCB2Y3B1IHByZWVtcHRlZCBjaGVjawoKU3VwcG9ydCB0aGUgdmNw dV9pc19wcmVlbXB0ZWQoKSBmdW5jdGlvbmFsaXR5IHVuZGVyIEtWTS4gVGhpcyB3aWxsCmVu aGFuY2UgbG9jayBwZXJmb3JtYW5jZSBvbiBvdmVyY29tbWl0dGVkIGhvc3RzIChtb3JlIHJ1 bm5hYmxlIHZjcHVzCnRoYW4gcGh5c2ljYWwgY3B1cyBpbiB0aGUgc3lzdGVtKSBhcyBkb2lu ZyBidXN5IHdhaXRzIGZvciBwcmVlbXB0ZWQKdmNwdXMgd2lsbCBodXJ0IHN5c3RlbSBwZXJm b3JtYW5jZSBmYXIgd29yc2UgdGhhbiBlYXJseSB5aWVsZGluZy4KCnN0cnVjdCBrdm1fc3Rl YWxfdGltZTo6cHJlZW1wdGVkIGluZGljYXRlIHRoYXQgaWYgb25lIHZjcHUgaXMgcnVubmlu ZyBvcgpub3QgYWZ0ZXIgY29tbWl0KCJ4ODYsIGt2bS94ODYuYzogc3VwcG9ydCB2Y3B1IHBy ZWVtcHRlZCBjaGVjayIpLgoKdW5peCBiZW5jaG1hcmsgcmVzdWx0Ogpob3N0OiAga2VybmVs IDQuOC4xLCBpNS00NTcwLCA0IGNwdXMKZ3Vlc3Q6IGtlcm5lbCA0LjguMSwgOCB2Y3B1cwoK ICAgICAgICB0ZXN0LWNhc2UgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyLXBhdGNoICAg ICAgIGJlZm9yZS1wYXRjaApFeGVjbCBUaHJvdWdocHV0ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDE4MzA3LjkgbHBzICB8ICAgIDExNzAxLjYgbHBzCkZpbGUgQ29weSAxMDI0IGJ1 ZnNpemUgMjAwMCBtYXhibG9ja3MgIHwgIDEzNTI0MDcuMyBLQnBzIHwgICA3OTA0MTguOSBL QnBzCkZpbGUgQ29weSAyNTYgYnVmc2l6ZSA1MDAgbWF4YmxvY2tzICAgIHwgICAzNjc1NTUu NiBLQnBzIHwgICAyMjI4NjcuNyBLQnBzCkZpbGUgQ29weSA0MDk2IGJ1ZnNpemUgODAwMCBt YXhibG9ja3MgIHwgIDM2NzU2NDkuNyBLQnBzIHwgIDE3ODA2MTQuNCBLQnBzClBpcGUgVGhy b3VnaHB1dCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTE4NzIyMDguNyBscHMgIHwgMTE4 NTU2MjguOSBscHMKUGlwZS1iYXNlZCBDb250ZXh0IFN3aXRjaGluZyAgICAgICAgICAgfCAg MTQ5NTEyNi41IGxwcyAgfCAgMTQ5MDUzMy45IGxwcwpQcm9jZXNzIENyZWF0aW9uICAgICAg ICAgICAgICAgICAgICAgICB8ICAgIDI5ODgxLjIgbHBzICB8ICAgIDI4NTcyLjggbHBzClNo ZWxsIFNjcmlwdHMgKDEgY29uY3VycmVudCkgICAgICAgICAgIHwgICAgMjMyMjQuMyBscG0g IHwgICAgMjI2MDcuNCBscG0KU2hlbGwgU2NyaXB0cyAoOCBjb25jdXJyZW50KSAgICAgICAg ICAgfCAgICAgMzUzMS40IGxwbSAgfCAgICAgMzIxMS45IGxwbQpTeXN0ZW0gQ2FsbCBPdmVy aGVhZCAgICAgICAgICAgICAgICAgICB8IDEwMzg1NjUzLjAgbHBzICB8IDEwNDE5OTc5LjAg bHBzCgpTaWduZWQtb2ZmLWJ5OiBQYW4gWGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZuZXQu aWJtLmNvbT4KLS0tCiBhcmNoL3g4Ni9rZXJuZWwva3ZtLmMgfCAxMiArKysrKysrKysrKysK IDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYva2VybmVsL2t2bS5jIGIvYXJjaC94ODYva2VybmVsL2t2bS5jCmluZGV4IGVkYmJmYzgu LjBiNDhkZDIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9rdm0uYworKysgYi9hcmNo L3g4Ni9rZXJuZWwva3ZtLmMKQEAgLTQxNSw2ICs0MTUsMTUgQEAgdm9pZCBrdm1fZGlzYWJs ZV9zdGVhbF90aW1lKHZvaWQpCiAJd3Jtc3IoTVNSX0tWTV9TVEVBTF9USU1FLCAwLCAwKTsK IH0KIAorc3RhdGljIGJvb2wga3ZtX3ZjcHVfaXNfcHJlZW1wdGVkKGludCBjcHUpCit7CisJ c3RydWN0IGt2bV9zdGVhbF90aW1lICpzcmM7CisKKwlzcmMgPSAmcGVyX2NwdShzdGVhbF90 aW1lLCBjcHUpOworCisJcmV0dXJuICEhc3JjLT5wcmVlbXB0ZWQ7Cit9CisKICNpZmRlZiBD T05GSUdfU01QCiBzdGF0aWMgdm9pZCBfX2luaXQga3ZtX3NtcF9wcmVwYXJlX2Jvb3RfY3B1 KHZvaWQpCiB7CkBAIC00NzEsNiArNDgwLDkgQEAgdm9pZCBfX2luaXQga3ZtX2d1ZXN0X2lu aXQodm9pZCkKIAlpZiAoa3ZtX3BhcmFfaGFzX2ZlYXR1cmUoS1ZNX0ZFQVRVUkVfU1RFQUxf VElNRSkpIHsKIAkJaGFzX3N0ZWFsX2Nsb2NrID0gMTsKIAkJcHZfdGltZV9vcHMuc3RlYWxf Y2xvY2sgPSBrdm1fc3RlYWxfY2xvY2s7CisjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1NQSU5M T0NLUworCQlwdl9sb2NrX29wcy52Y3B1X2lzX3ByZWVtcHRlZCA9IGt2bV92Y3B1X2lzX3By ZWVtcHRlZDsKKyNlbmRpZgogCX0KIAogCWlmIChrdm1fcGFyYV9oYXNfZmVhdHVyZShLVk1f RkVBVFVSRV9QVl9FT0kpKQotLSAKMi40LjExCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2Ni0wMDEwLXg4 Ni14ZW4tc3VwcG9ydC12Y3B1LXByZWVtcHRlZC1jaGVjay5wYXRjaAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAw MDAwMDAAMDAwMDAwMDI3MTIAMTMwMDQ2MDExMDYAMDIwNDM1ACAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAEZyb20gZTZjNDM4NTNjOTc1YmM3MDc1NDZiZmU1NTQ5MzBhMDZh Yjc2ODU3MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVlcmdlbiBHcm9zcyA8 amdyb3NzQHN1c2UuY29tPgpEYXRlOiBXZWQsIDE5IE9jdCAyMDE2IDE1OjMwOjU5ICswMjAw ClN1YmplY3Q6IFtQQVRDSCB2NiAxMC8xMV0geDg2LCB4ZW46IHN1cHBvcnQgdmNwdSBwcmVl bXB0ZWQgY2hlY2sKClN1cHBvcnQgdGhlIHZjcHVfaXNfcHJlZW1wdGVkKCkgZnVuY3Rpb25h bGl0eSB1bmRlciBYZW4uIFRoaXMgd2lsbAplbmhhbmNlIGxvY2sgcGVyZm9ybWFuY2Ugb24g b3ZlcmNvbW1pdHRlZCBob3N0cyAobW9yZSBydW5uYWJsZSB2Y3B1cwp0aGFuIHBoeXNpY2Fs IGNwdXMgaW4gdGhlIHN5c3RlbSkgYXMgZG9pbmcgYnVzeSB3YWl0cyBmb3IgcHJlZW1wdGVk CnZjcHVzIHdpbGwgaHVydCBzeXN0ZW0gcGVyZm9ybWFuY2UgZmFyIHdvcnNlIHRoYW4gZWFy bHkgeWllbGRpbmcuCgpBIHF1aWNrIHRlc3QgKDQgdmNwdXMgb24gMSBwaHlzaWNhbCBjcHUg ZG9pbmcgYSBwYXJhbGxlbCBidWlsZCBqb2IKd2l0aCAibWFrZSAtaiA4IikgcmVkdWNlZCBz eXN0ZW0gdGltZSBieSBhYm91dCA1JSB3aXRoIHRoaXMgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5 OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IFBhbiBY aW5odWkgPHhpbmh1aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgotLS0KIGFyY2gveDg2L3hl bi9zcGlubG9jay5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vc3BpbmxvY2suYyBi L2FyY2gveDg2L3hlbi9zcGlubG9jay5jCmluZGV4IDNkNmUwMDYuLjc0NzU2YmIgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L3hlbi9zcGlubG9jay5jCisrKyBiL2FyY2gveDg2L3hlbi9zcGlu bG9jay5jCkBAIC0xMTQsNyArMTE0LDYgQEAgdm9pZCB4ZW5fdW5pbml0X2xvY2tfY3B1KGlu dCBjcHUpCiAJcGVyX2NwdShpcnFfbmFtZSwgY3B1KSA9IE5VTEw7CiB9CiAKLQogLyoKICAq IE91ciBpbml0IG9mIFBWIHNwaW5sb2NrcyBpcyBzcGxpdCBpbiB0d28gaW5pdCBmdW5jdGlv bnMgZHVlIHRvIHVzCiAgKiB1c2luZyBwYXJhdmlydCBwYXRjaGluZyBhbmQganVtcCBsYWJl bHMgcGF0Y2hpbmcgYW5kIGhhdmluZyB0byBkbwpAQCAtMTM3LDYgKzEzNiw4IEBAIHZvaWQg X19pbml0IHhlbl9pbml0X3NwaW5sb2Nrcyh2b2lkKQogCXB2X2xvY2tfb3BzLnF1ZXVlZF9z cGluX3VubG9jayA9IFBWX0NBTExFRV9TQVZFKF9fcHZfcXVldWVkX3NwaW5fdW5sb2NrKTsK IAlwdl9sb2NrX29wcy53YWl0ID0geGVuX3Fsb2NrX3dhaXQ7CiAJcHZfbG9ja19vcHMua2lj ayA9IHhlbl9xbG9ja19raWNrOworCisJcHZfbG9ja19vcHMudmNwdV9pc19wcmVlbXB0ZWQg PSB4ZW5fdmNwdV9zdG9sZW47CiB9CiAKIC8qCi0tIAoyLjQuMTEKCgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHY2LTAwMTEtRG9jdW1l bnRhdGlvbi12aXJ0dWFsLWt2bS1TdXBwb3J0LXZjcHUtcHJlZW1wdGVkLS5wYXRjaAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAw MAAwMDAwMDAwMzQ3NwAxMzAwNDYwMTEwNgAwMjMyNjQAIDAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAARnJvbSBkNTlhN2JjNGM5ZjQ5NGUxN2ExYTU5NTc1NDcwMzFlM2JkMGNm YTU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW4gWGluaHVpIDx4aW5odWku cGFuQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogVGh1LCAyMCBPY3QgMjAxNiAwOTozMzoz NiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggdjYgMTEvMTFdIERvY3VtZW50YXRpb246IHZpcnR1 YWw6IGt2bTogU3VwcG9ydCB2Y3B1IHByZWVtcHRlZAogY2hlY2sKTUlNRS1WZXJzaW9uOiAx LjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKCkNvbW1pdCAoIng4Niwga3ZtOiBzdXBwb3J0IHZjcHUg cHJlZW1wdGVkIGNoZWNrIikgYWRkIG9uZSBmaWVsZCAiX191OApwcmVlbXB0ZWQiIGludG8g c3RydWN0IGt2bV9zdGVhbF90aW1lLiBUaGlzIGZpZWxkIHRlbGxzIGlmIG9uZSB2Y3B1IGlz CnJ1bm5pbmcgb3Igbm90LgoKSXQgaXMgemVybyBpZiAxKSBzb21lIG9sZCBLVk0gZGVvcyBu b3Qgc3VwcG9ydCB0aGlzIGZpbGVkLiAyKSB0aGUgdmNwdSBpcwpub3QgcHJlZW1wdGVkLiBP dGhlciB2YWx1ZXMgbWVhbnMgdGhlIHZjcHUgaGFzIGJlZW4gcHJlZW1wdGVkLgoKU2lnbmVk LW9mZi1ieTogUGFuIFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0LmlibS5jb20+CkFj a2VkLWJ5OiBSYWRpbSBLcsSNbcOhxZkgPHJrcmNtYXJAcmVkaGF0LmNvbT4KLS0tCiBEb2N1 bWVudGF0aW9uL3ZpcnR1YWwva3ZtL21zci50eHQgfCA5ICsrKysrKysrLQogMSBmaWxlIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL0Rv Y3VtZW50YXRpb24vdmlydHVhbC9rdm0vbXNyLnR4dCBiL0RvY3VtZW50YXRpb24vdmlydHVh bC9rdm0vbXNyLnR4dAppbmRleCAyYTcxYzhmLi5hYjJhYjc2IDEwMDY0NAotLS0gYS9Eb2N1 bWVudGF0aW9uL3ZpcnR1YWwva3ZtL21zci50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0 dWFsL2t2bS9tc3IudHh0CkBAIC0yMDgsNyArMjA4LDkgQEAgTVNSX0tWTV9TVEVBTF9USU1F OiAweDRiNTY0ZDAzCiAJCV9fdTY0IHN0ZWFsOwogCQlfX3UzMiB2ZXJzaW9uOwogCQlfX3Uz MiBmbGFnczsKLQkJX191MzIgcGFkWzEyXTsKKwkJX191OCAgcHJlZW1wdGVkOworCQlfX3U4 ICB1OF9wYWRbM107CisJCV9fdTMyIHBhZFsxMV07CiAJfQogCiAJd2hvc2UgZGF0YSB3aWxs IGJlIGZpbGxlZCBpbiBieSB0aGUgaHlwZXJ2aXNvciBwZXJpb2RpY2FsbHkuIE9ubHkgb25l CkBAIC0yMzIsNiArMjM0LDExIEBAIE1TUl9LVk1fU1RFQUxfVElNRTogMHg0YjU2NGQwMwog CQluYW5vc2Vjb25kcy4gVGltZSBkdXJpbmcgd2hpY2ggdGhlIHZjcHUgaXMgaWRsZSwgd2ls bCBub3QgYmUKIAkJcmVwb3J0ZWQgYXMgc3RlYWwgdGltZS4KIAorCQlwcmVlbXB0ZWQ6IGlu ZGljYXRlIHRoZSBWQ1BVIHdobyBvd25zIHRoaXMgc3RydWN0IGlzIHJ1bm5pbmcgb3IKKwkJ bm90LiBOb24temVybyB2YWx1ZXMgbWVhbiB0aGUgVkNQVSBoYXMgYmVlbiBwcmVlbXB0ZWQu IFplcm8KKwkJbWVhbnMgdGhlIFZDUFUgaXMgbm90IHByZWVtcHRlZC4gTk9URSwgaXQgaXMg YWx3YXlzIHplcm8gaWYgdGhlCisJCXRoZSBoeXBlcnZpc29yIGRvZXNuJ3Qgc3VwcG9ydCB0 aGlzIGZpZWxkLgorCiBNU1JfS1ZNX0VPSV9FTjogMHg0YjU2NGQwNAogCWRhdGE6IEJpdCAw IGlzIDEgd2hlbiBQViBlbmQgb2YgaW50ZXJydXB0IGlzIGVuYWJsZWQgb24gdGhlIHZjcHU7 IDAKIAl3aGVuIGRpc2FibGVkLiAgQml0IDEgaXMgcmVzZXJ2ZWQgYW5kIG11c3QgYmUgemVy by4gIFdoZW4gUFYgZW5kIG9mCi0tIAoyLjQuMTEKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA djYtMDAwMS1rZXJuZWwtc2NoZWQtaW50cm9kdWNlLXZjcHUtcHJlZW1wdGVkLWNoZWNrLWlu dGVyLnBhdGNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQA MDAwMDAwMAAwMDAwMDAwADAwMDAwMDAzMjAxADEzMDA0NjAxMTA2ADAyMzE1NQAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGcm9tIGE0M2Q3NzFiZjY0MzNjYmM4OGVlNGM1 YjdlZTA3ZjRlZDA2YTE2YzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhbiBY aW5odWkgPHhpbmh1aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBTdW4sIDI2IEp1 biAyMDE2IDA1OjQ0OjA4IC0wNDAwClN1YmplY3Q6IFtQQVRDSCB2NiAwMS8xMV0ga2VybmVs L3NjaGVkOiBpbnRyb2R1Y2UgdmNwdSBwcmVlbXB0ZWQgY2hlY2sKIGludGVyZmFjZQoKVGhp cyBwYXRjaCBzdXBwb3J0IHRvIGZpeCBsb2NrIGhvbGRlciBwcmVlbXB0aW9uIGlzc3VlLgoK Rm9yIGtlcm5lbCB1c2Vycywgd2UgY291bGQgdXNlIGJvb2wgdmNwdV9pc19wcmVlbXB0ZWQo aW50IGNwdSkgdG8gZGV0ZWNoIGlmCm9uZSB2Y3B1IGlzIHByZWVtcHRlZCBvciBub3QuCgpU aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyBhIG1hY3JvIGRlZmluZWQgYnkgZmFsc2Uu IFNvIGNvbXBpbGVyIGNhbgp3cmFwIGl0IG91dCBpZiBhcmNoIGRvc2Ugbm90IHN1cHBvcnQg c3VjaCB2Y3B1IHB0ZWVtcHRlZCBjaGVjay4KClN1Z2dlc3RlZC1ieTogUGV0ZXIgWmlqbHN0 cmEgKEludGVsKSA8cGV0ZXJ6QGluZnJhZGVhZC5vcmc+ClNpZ25lZC1vZmYtYnk6IFBhbiBY aW5odWkgPHhpbmh1aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgpBY2tlZC1ieTogQ2hyaXN0 aWFuIEJvcm50cmFlZ2VyIDxib3JudHJhZWdlckBkZS5pYm0uY29tPgpUZXN0ZWQtYnk6IEp1 ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L3NjaGVk LmggfCAxMiArKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC5oIGIvaW5jbHVkZS9saW51eC9z Y2hlZC5oCmluZGV4IDM0OGY1MWIuLjQ0YzFjZTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvc2NoZWQuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKQEAgLTM1MDYsNiArMzUw NiwxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Rhc2tfY3B1KHN0cnVjdCB0YXNrX3N0 cnVjdCAqcCwgdW5zaWduZWQgaW50IGNwdSkKIAogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8K IAorLyoKKyAqIEluIG9yZGVyIHRvIGRlYWwgd2l0aCBhIHZhcmlvdXMgbG9jayBob2xkZXIg cHJlZW1wdGlvbiBpc3N1ZXMgcHJvdmlkZSBhbgorICogaW50ZXJmYWNlIHRvIHNlZSBpZiBh IHZDUFUgaXMgY3VycmVudGx5IHJ1bm5pbmcgb3Igbm90LgorICoKKyAqIFRoaXMgYWxsb3dz IHVzIHRvIHRlcm1pbmF0ZSBvcHRpbWlzdGljIHNwaW4gbG9vcHMgYW5kIGJsb2NrLCBhbmFs b2dvdXMgdG8KKyAqIHRoZSBuYXRpdmUgb3B0aW1pc3RpYyBzcGluIGhldXJpc3RpYyBvZiB0 ZXN0aW5nIGlmIHRoZSBsb2NrIG93bmVyIHRhc2sgaXMKKyAqIHJ1bm5pbmcgb3Igbm90Lgor ICovCisjaWZuZGVmIHZjcHVfaXNfcHJlZW1wdGVkCisjZGVmaW5lIHZjcHVfaXNfcHJlZW1w dGVkKGNwdSkJZmFsc2UKKyNlbmRpZgorCiBleHRlcm4gbG9uZyBzY2hlZF9zZXRhZmZpbml0 eShwaWRfdCBwaWQsIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpuZXdfbWFzayk7CiBleHRlcm4g bG9uZyBzY2hlZF9nZXRhZmZpbml0eShwaWRfdCBwaWQsIHN0cnVjdCBjcHVtYXNrICptYXNr KTsKIAotLSAKMi40LjExCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHY2LTAwMDItbG9ja2luZy1vc3EtRHJvcC10aGUtb3Zl cmxvYWQtb2Ytb3NxX2xvY2sucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwNTQ3NwAxMzAw NDYwMTEwNgAwMjE0NDIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARnJvbSBm ZTMzMGY5YjM0Yjc0ZDE4ZjI2MjlmM2JmOWUxYmVjZGQ3ZWJkNDFjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBQYW4gWGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZuZXQuaWJt LmNvbT4KRGF0ZTogU3VuLCAyNiBKdW4gMjAxNiAwNjoyNjo0OCAtMDQwMApTdWJqZWN0OiBb UEFUQ0ggdjYgMDIvMTFdIGxvY2tpbmcvb3NxOiBEcm9wIHRoZSBvdmVybG9hZCBvZiBvc3Ff bG9jaygpCgpBbiBvdmVyLWNvbW1pdHRlZCBndWVzdCB3aXRoIG1vcmUgdkNQVXMgdGhhbiBw Q1BVcyBoYXMgYSBoZWF2eSBvdmVybG9hZCBpbgpvc3FfbG9jaygpLgoKVGhpcyBpcyBiZWNh dXNlIHZDUFUgQSBob2xkIHRoZSBvc3EgbG9jayBhbmQgeWllbGQgb3V0LCB2Q1BVIEIgd2Fp dCBwZXJfY3B1Cm5vZGUtPmxvY2tlZCB0byBiZSBzZXQuIElPVywgdkNQVSBCIHdhaXQgdkNQ VSBBIHRvIHJ1biBhbmQgdW5sb2NrIHRoZSBvc3EKbG9jay4KCktlcm5lbCBoYXMgYW4gaW50 ZXJmYWNlIGJvb2wgdmNwdV9pc19wcmVlbXB0ZWQoaW50IGNwdSkgdG8gc2VlIGlmIGEgdkNQ VSBpcwpjdXJyZW50bHkgcnVubmluZyBvciBub3QuIFNvIGJyZWFrIHRoZSBzcGluIGxvb3Bz IG9uIHRydWUgY29uZGl0aW9uLgoKdGVzdCBjYXNlOgpwZXJmIHJlY29yZCAtYSBwZXJmIGJl bmNoIHNjaGVkIG1lc3NhZ2luZyAtZyA0MDAgLXAgJiYgcGVyZiByZXBvcnQKCmJlZm9yZSBw YXRjaDoKMTguMDklICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSBv c3FfbG9jawoxMi4yOCUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAgW2td IHJ3c2VtX3NwaW5fb25fb3duZXIKIDUuMjclICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwu dm1saW51eF0gIFtrXSBtdXRleF91bmxvY2sKIDMuODklICBzY2hlZC1tZXNzYWdpbmcgIFtr ZXJuZWwudm1saW51eF0gIFtrXSB3YWl0X2NvbnNpZGVyX3Rhc2sKIDMuNjQlICBzY2hlZC1t ZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSBfcmF3X3dyaXRlX2xvY2tfaXJxCiAz LjQxJSAgc2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gbXV0ZXhfc3Bp bl9vbl9vd25lci5pcwogMi40OSUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4 XSAgW2tdIHN5c3RlbV9jYWxsCgphZnRlciBwYXRjaDoKMjAuNjglICBzY2hlZC1tZXNzYWdp bmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSBtdXRleF9zcGluX29uX293bmVyCiA4LjQ1JSAg c2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gbXV0ZXhfdW5sb2NrCiA0 LjEyJSAgc2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gc3lzdGVtX2Nh bGwKIDMuMDElICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSBzeXN0 ZW1fY2FsbF9jb21tb24KIDIuODMlICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51 eF0gIFtrXSBjb3B5cGFnZV9wb3dlcjcKIDIuNjQlICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJu ZWwudm1saW51eF0gIFtrXSByd3NlbV9zcGluX29uX293bmVyCiAyLjAwJSAgc2NoZWQtbWVz c2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gb3NxX2xvY2sKClN1Z2dlc3RlZC1ieTog Qm9xdW4gRmVuZyA8Ym9xdW4uZmVuZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFBhbiBY aW5odWkgPHhpbmh1aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgpBY2tlZC1ieTogQ2hyaXN0 aWFuIEJvcm50cmFlZ2VyIDxib3JudHJhZWdlckBkZS5pYm0uY29tPgpUZXN0ZWQtYnk6IEp1 ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiBrZXJuZWwvbG9ja2luZy9vc3Ff bG9jay5jIHwgMTAgKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC9sb2NraW5nL29zcV9sb2Nr LmMgYi9rZXJuZWwvbG9ja2luZy9vc3FfbG9jay5jCmluZGV4IDA1YTM3ODUuLjM5ZDEzODUg MTAwNjQ0Ci0tLSBhL2tlcm5lbC9sb2NraW5nL29zcV9sb2NrLmMKKysrIGIva2VybmVsL2xv Y2tpbmcvb3NxX2xvY2suYwpAQCAtMjEsNiArMjEsMTEgQEAgc3RhdGljIGlubGluZSBpbnQg ZW5jb2RlX2NwdShpbnQgY3B1X25yKQogCXJldHVybiBjcHVfbnIgKyAxOwogfQogCitzdGF0 aWMgaW5saW5lIGludCBub2RlX2NwdShzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX25vZGUgKm5v ZGUpCit7CisJcmV0dXJuIG5vZGUtPmNwdSAtIDE7Cit9CisKIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IG9wdGltaXN0aWNfc3Bpbl9ub2RlICpkZWNvZGVfY3B1KGludCBlbmNvZGVkX2NwdV92 YWwpCiB7CiAJaW50IGNwdV9uciA9IGVuY29kZWRfY3B1X3ZhbCAtIDE7CkBAIC0xMTgsOCAr MTIzLDExIEBAIGJvb2wgb3NxX2xvY2soc3RydWN0IG9wdGltaXN0aWNfc3Bpbl9xdWV1ZSAq bG9jaykKIAl3aGlsZSAoIVJFQURfT05DRShub2RlLT5sb2NrZWQpKSB7CiAJCS8qCiAJCSAq IElmIHdlIG5lZWQgdG8gcmVzY2hlZHVsZSBiYWlsLi4uIHNvIHdlIGNhbiBibG9jay4KKwkJ ICogVXNlIHZjcHVfaXNfcHJlZW1wdGVkIHRvIGRldGVjaCBsb2NrIGhvbGRlciBwcmVlbXB0 aW9uIGlzc3VlCisJCSAqIGFuZCBicmVhay4gdmNwdV9pc19wcmVlbXB0ZWQgaXMgYSBtYWNy byBkZWZpbmVkIGJ5IGZhbHNlIGlmCisJCSAqIGFyY2ggZG9lcyBub3Qgc3VwcG9ydCB2Y3B1 IHByZWVtcHRlZCBjaGVjaywKIAkJICovCi0JCWlmIChuZWVkX3Jlc2NoZWQoKSkKKwkJaWYg KG5lZWRfcmVzY2hlZCgpIHx8IHZjcHVfaXNfcHJlZW1wdGVkKG5vZGVfY3B1KG5vZGUtPnBy ZXYpKSkKIAkJCWdvdG8gdW5xdWV1ZTsKIAogCQljcHVfcmVsYXhfbG93bGF0ZW5jeSgpOwot LSAKMi40LjExCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdjYtMDAwMy1rZXJu ZWwtbG9ja2luZy1Ecm9wLXRoZS1vdmVybG9hZC1vZi1tdXRleC1yd3NlbS1fLnBhdGNoAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAw MDAwADAwMDAwMDA3NzI3ADEzMDA0NjAxMTA2ADAyMzAyMAAgMAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABGcm9tIDM0YjdkNDQ5Zjg5MTk2YWU4ZGM0M2Q3NTI3ZWFkNzBmMGVj NjdjODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhbiBYaW5odWkgPHhpbmh1 aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBNb24sIDI3IEp1biAyMDE2IDEyOjQ5 OjM0IC0wNDAwClN1YmplY3Q6IFtQQVRDSCB2NiAwMy8xMV0ga2VybmVsL2xvY2tpbmc6IERy b3AgdGhlIG92ZXJsb2FkIG9mCiB7bXV0ZXgscndzZW19X3NwaW5fb25fb3duZXIKCkFuIG92 ZXItY29tbWl0dGVkIGd1ZXN0IHdpdGggbW9yZSB2Q1BVcyB0aGFuIHBDUFVzIGhhcyBhIGhl YXZ5IG92ZXJsb2FkIGluCnRoZSB0d28gc3Bpbl9vbl9vd25lci4gVGhpcyBibGFtZXMgb24g dGhlIGxvY2sgaG9sZGVyIHByZWVtcHRpb24gaXNzdWUuCgpLZXJuZWwgaGFzIGFuIGludGVy ZmFjZSBib29sIHZjcHVfaXNfcHJlZW1wdGVkKGludCBjcHUpIHRvIHNlZSBpZiBhIHZDUFUg aXMKY3VycmVudGx5IHJ1bm5pbmcgb3Igbm90LiBTbyBicmVhayB0aGUgc3BpbiBsb29wcyBv biB0cnVlIGNvbmRpdGlvbi4KCnRlc3QtY2FzZToKcGVyZiByZWNvcmQgLWEgcGVyZiBiZW5j aCBzY2hlZCBtZXNzYWdpbmcgLWcgNDAwIC1wICYmIHBlcmYgcmVwb3J0CgpiZWZvcmUgcGF0 Y2g6CjIwLjY4JSAgc2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gbXV0 ZXhfc3Bpbl9vbl9vd25lcgogOC40NSUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxp bnV4XSAgW2tdIG11dGV4X3VubG9jawogNC4xMiUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5l bC52bWxpbnV4XSAgW2tdIHN5c3RlbV9jYWxsCiAzLjAxJSAgc2NoZWQtbWVzc2FnaW5nICBb a2VybmVsLnZtbGludXhdICBba10gc3lzdGVtX2NhbGxfY29tbW9uCiAyLjgzJSAgc2NoZWQt bWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gY29weXBhZ2VfcG93ZXI3CiAyLjY0 JSAgc2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10gcndzZW1fc3Bpbl9v bl9vd25lcgogMi4wMCUgIHNjaGVkLW1lc3NhZ2luZyAgW2tlcm5lbC52bWxpbnV4XSAgW2td IG9zcV9sb2NrCgphZnRlciBwYXRjaDoKIDkuOTklICBzY2hlZC1tZXNzYWdpbmcgIFtrZXJu ZWwudm1saW51eF0gIFtrXSBtdXRleF91bmxvY2sKIDUuMjglICBzY2hlZC1tZXNzYWdpbmcg IFt1bmtub3duXSAgICAgICAgIFtIXSAweGMwMDAwMDAwMDAwNzY4ZTAKIDQuMjclICBzY2hl ZC1tZXNzYWdpbmcgIFtrZXJuZWwudm1saW51eF0gIFtrXSBfX2NvcHlfdG9mcm9tX3VzZXJf cG93ZXI3CiAzLjc3JSAgc2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGludXhdICBba10g Y29weXBhZ2VfcG93ZXI3CiAzLjI0JSAgc2NoZWQtbWVzc2FnaW5nICBba2VybmVsLnZtbGlu dXhdICBba10gX3Jhd193cml0ZV9sb2NrX2lycQogMy4wMiUgIHNjaGVkLW1lc3NhZ2luZyAg W2tlcm5lbC52bWxpbnV4XSAgW2tdIHN5c3RlbV9jYWxsCiAyLjY5JSAgc2NoZWQtbWVzc2Fn aW5nICBba2VybmVsLnZtbGludXhdICBba10gd2FpdF9jb25zaWRlcl90YXNrCgpTaWduZWQt b2ZmLWJ5OiBQYW4gWGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZuZXQuaWJtLmNvbT4KQWNr ZWQtYnk6IENocmlzdGlhbiBCb3JudHJhZWdlciA8Ym9ybnRyYWVnZXJAZGUuaWJtLmNvbT4K VGVzdGVkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQoga2VybmVs L2xvY2tpbmcvbXV0ZXguYyAgICAgIHwgMTUgKysrKysrKysrKysrKy0tCiBrZXJuZWwvbG9j a2luZy9yd3NlbS14YWRkLmMgfCAxNiArKysrKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDI2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEva2Vy bmVsL2xvY2tpbmcvbXV0ZXguYyBiL2tlcm5lbC9sb2NraW5nL211dGV4LmMKaW5kZXggYTcw YjkwZC4uODIxMDhmNSAxMDA2NDQKLS0tIGEva2VybmVsL2xvY2tpbmcvbXV0ZXguYworKysg Yi9rZXJuZWwvbG9ja2luZy9tdXRleC5jCkBAIC0yMzYsNyArMjM2LDEzIEBAIGJvb2wgbXV0 ZXhfc3Bpbl9vbl9vd25lcihzdHJ1Y3QgbXV0ZXggKmxvY2ssIHN0cnVjdCB0YXNrX3N0cnVj dCAqb3duZXIpCiAJCSAqLwogCQliYXJyaWVyKCk7CiAKLQkJaWYgKCFvd25lci0+b25fY3B1 IHx8IG5lZWRfcmVzY2hlZCgpKSB7CisJCS8qCisJCSAqIFVzZSB2Y3B1X2lzX3ByZWVtcHRl ZCB0byBkZXRlY2ggbG9jayBob2xkZXIgcHJlZW1wdGlvbiBpc3N1ZQorCQkgKiBhbmQgYnJl YWsuIHZjcHVfaXNfcHJlZW1wdGVkIGlzIGEgbWFjcm8gZGVmaW5lZCBieSBmYWxzZSBpZgor CQkgKiBhcmNoIGRvZXMgbm90IHN1cHBvcnQgdmNwdSBwcmVlbXB0ZWQgY2hlY2ssCisJCSAq LworCQlpZiAoIW93bmVyLT5vbl9jcHUgfHwgbmVlZF9yZXNjaGVkKCkgfHwKKwkJCQl2Y3B1 X2lzX3ByZWVtcHRlZCh0YXNrX2NwdShvd25lcikpKSB7CiAJCQlyZXQgPSBmYWxzZTsKIAkJ CWJyZWFrOwogCQl9CkBAIC0yNjEsOCArMjY3LDEzIEBAIHN0YXRpYyBpbmxpbmUgaW50IG11 dGV4X2Nhbl9zcGluX29uX293bmVyKHN0cnVjdCBtdXRleCAqbG9jaykKIAogCXJjdV9yZWFk X2xvY2soKTsKIAlvd25lciA9IFJFQURfT05DRShsb2NrLT5vd25lcik7CisKKwkvKgorCSAq IEFzIGxvY2sgaG9sZGVyIHByZWVtcHRpb24gaXNzdWUsIHdlIGJvdGggc2tpcCBzcGlubmlu ZyBpZiB0YXNrIGlzIG5vdAorCSAqIG9uIGNwdSBvciBpdHMgY3B1IGlzIHByZWVtcHRlZAor CSAqLwogCWlmIChvd25lcikKLQkJcmV0dmFsID0gb3duZXItPm9uX2NwdTsKKwkJcmV0dmFs ID0gb3duZXItPm9uX2NwdSAmJiAhdmNwdV9pc19wcmVlbXB0ZWQodGFza19jcHUob3duZXIp KTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAkvKgogCSAqIGlmIGxvY2stPm93bmVyIGlzIG5v dCBzZXQsIHRoZSBtdXRleCBvd25lciBtYXkgaGF2ZSBqdXN0IGFjcXVpcmVkCmRpZmYgLS1n aXQgYS9rZXJuZWwvbG9ja2luZy9yd3NlbS14YWRkLmMgYi9rZXJuZWwvbG9ja2luZy9yd3Nl bS14YWRkLmMKaW5kZXggMjMzN2I0Yi4uMDg5NzE3OSAxMDA2NDQKLS0tIGEva2VybmVsL2xv Y2tpbmcvcndzZW0teGFkZC5jCisrKyBiL2tlcm5lbC9sb2NraW5nL3J3c2VtLXhhZGQuYwpA QCAtMzM2LDcgKzMzNiwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcndzZW1fY2FuX3NwaW5f b25fb3duZXIoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKQogCQlnb3RvIGRvbmU7CiAJfQog Ci0JcmV0ID0gb3duZXItPm9uX2NwdTsKKwkvKgorCSAqIEFzIGxvY2sgaG9sZGVyIHByZWVt cHRpb24gaXNzdWUsIHdlIGJvdGggc2tpcCBzcGlubmluZyBpZiB0YXNrIGlzIG5vdAorCSAq IG9uIGNwdSBvciBpdHMgY3B1IGlzIHByZWVtcHRlZAorCSAqLworCXJldCA9IG93bmVyLT5v bl9jcHUgJiYgIXZjcHVfaXNfcHJlZW1wdGVkKHRhc2tfY3B1KG93bmVyKSk7CiBkb25lOgog CXJjdV9yZWFkX3VubG9jaygpOwogCXJldHVybiByZXQ7CkBAIC0zNjIsOCArMzY2LDE0IEBA IHN0YXRpYyBub2lubGluZSBib29sIHJ3c2VtX3NwaW5fb25fb3duZXIoc3RydWN0IHJ3X3Nl bWFwaG9yZSAqc2VtKQogCQkgKi8KIAkJYmFycmllcigpOwogCi0JCS8qIGFib3J0IHNwaW5u aW5nIHdoZW4gbmVlZF9yZXNjaGVkIG9yIG93bmVyIGlzIG5vdCBydW5uaW5nICovCi0JCWlm ICghb3duZXItPm9uX2NwdSB8fCBuZWVkX3Jlc2NoZWQoKSkgeworCQkvKgorCQkgKiBhYm9y dCBzcGlubmluZyB3aGVuIG5lZWRfcmVzY2hlZCBvciBvd25lciBpcyBub3QgcnVubmluZyBv cgorCQkgKiBvd25lcidzIGNwdSBpcyBwcmVlbXB0ZWQuIHZjcHVfaXNfcHJlZW1wdGVkIGlz IGEgbWFjcm8KKwkJICogZGVmaW5lZCBieSBmYWxzZSBpZiBhcmNoIGRvZXMgbm90IHN1cHBv cnQgdmNwdSBwcmVlbXB0ZWQKKwkJICogY2hlY2sKKwkJICovCisJCWlmICghb3duZXItPm9u X2NwdSB8fCBuZWVkX3Jlc2NoZWQoKSB8fAorCQkJCXZjcHVfaXNfcHJlZW1wdGVkKHRhc2tf Y3B1KG93bmVyKSkpIHsKIAkJCXJjdV9yZWFkX3VubG9jaygpOwogCQkJcmV0dXJuIGZhbHNl OwogCQl9Ci0tIAoyLjQuMTEKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAdjYtMDAwNC1wb3dlcnBjLXNwaW5sb2NrLXN1cHBvcnQtdmNwdS1wcmVlbXB0ZWQt Y2hlY2sucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw MDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAzMjY1ADEzMDA0NjAxMTA2ADAyMjUyNgAg MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg AHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGcm9tIDNjOGQ4NGU2MTFlMjFjMTc0 YTlhYjI2ZGVjZDlkNTY1YmZhMDJhNzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFBhbiBYaW5odWkgPHhpbmh1aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBGcmks IDI4IE9jdCAyMDE2IDAzOjQ1OjIzIC0wNDAwClN1YmplY3Q6IFtQQVRDSCB2NiAwNC8xMV0g cG93ZXJwYy9zcGlubG9jazogc3VwcG9ydCB2Y3B1IHByZWVtcHRlZCBjaGVjawoKVGhpcyBp cyB0byBmaXggc29tZSBsb2NrIGhvbGRlciBwcmVlbXB0aW9uIGlzc3Vlcy4gU29tZSBvdGhl ciBsb2NrcwppbXBsZW1lbnRhdGlvbiBkbyBhIHNwaW4gbG9vcCBiZWZvcmUgYWNxdWlyaW5n IHRoZSBsb2NrIGl0c2VsZi4KQ3VycmVudGx5IGtlcm5lbCBoYXMgYW4gaW50ZXJmYWNlIG9m IGJvb2wgdmNwdV9pc19wcmVlbXB0ZWQoaW50IGNwdSkuIEl0CnRha2VzIHRoZSBjcHUgYXMg cGFyYW1ldGVyIGFuZCByZXR1cm4gdHJ1ZSBpZiB0aGUgY3B1IGlzIHByZWVtcHRlZC4gVGhl bgprZXJuZWwgY2FuIGJyZWFrIHRoZSBzcGluIGxvb3BzIHVwb24gb24gdGhlIHJldHZhbCBv ZiB2Y3B1X2lzX3ByZWVtcHRlZC4KCkFzIGtlcm5lbCBoYXMgdXNlZCB0aGlzIGludGVyZmFj ZSwgU28gbGV0cyBzdXBwb3J0IGl0LgoKT25seSBwU2VyaWVzIG5lZWQgc3VwcG9ydCBpdC4g QW5kIHRoZSBmYWN0IGlzIHBvd2VyTlYgYXJlIGJ1aWx0IGludG8Kc2FtZSBrZXJuZWwgaW1h Z2Ugd2l0aCBwU2VyaWVzLiBTbyB3ZSBuZWVkIHJldHVybiBmYWxzZSBpZiB3ZSBhcmUgcnVu bmlnCmFzIHBvd2VyTlYuIFRoZSBhbm90aGVyIGZhY3QgaXMgdGhhdCBscHBhY2EtPnlpbGVk X2NvdW50IGtlZXBzIHplcm8gb24KcG93ZXJOVi4gU28gd2UgY2FuIGp1c3Qgc2tpcCB0aGUg bWFjaGluZSB0eXBlIGNoZWNrLgoKU3VnZ2VzdGVkLWJ5OiBCb3F1biBGZW5nIDxib3F1bi5m ZW5nQGdtYWlsLmNvbT4KU3VnZ2VzdGVkLWJ5OiBQZXRlciBaaWpsc3RyYSAoSW50ZWwpIDxw ZXRlcnpAaW5mcmFkZWFkLm9yZz4KU2lnbmVkLW9mZi1ieTogUGFuIFhpbmh1aSA8eGluaHVp LnBhbkBsaW51eC52bmV0LmlibS5jb20+Ci0tLQogYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNt L3NwaW5sb2NrLmggfCA4ICsrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgg Yi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3BpbmxvY2suaAppbmRleCBmYTM3ZmU5Li44 YzFiOTEzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3BpbmxvY2su aAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3BpbmxvY2suaApAQCAtNTIsNiAr NTIsMTQgQEAKICNkZWZpbmUgU1lOQ19JTwogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfUFBD X1BTRVJJRVMKKyNkZWZpbmUgdmNwdV9pc19wcmVlbXB0ZWQgdmNwdV9pc19wcmVlbXB0ZWQK K3N0YXRpYyBpbmxpbmUgYm9vbCB2Y3B1X2lzX3ByZWVtcHRlZChpbnQgY3B1KQoreworCXJl dHVybiAhIShiZTMyX3RvX2NwdShscHBhY2Ffb2YoY3B1KS55aWVsZF9jb3VudCkgJiAxKTsK K30KKyNlbmRpZgorCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIGludCBhcmNoX3NwaW5fdmFs dWVfdW5sb2NrZWQoYXJjaF9zcGlubG9ja190IGxvY2spCiB7CiAJcmV0dXJuIGxvY2suc2xv Y2sgPT0gMDsKLS0gCjIuNC4xMQoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHY2LTAwMDUtczM5MC1zcGlubG9jay1Qcm92 aWRlLXZjcHVfaXNfcHJlZW1wdGVkLnBhdGNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAxMTY2 MQAxMzAwNDYwMTEwNgAwMjExNDMAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA RnJvbSAwZjVmYWY2YzExNWJiYzQzMGVkZDY1NzUzYzgxMjQxZjE3OWQ1ZTllIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RpYW4gQm9ybnRyYWVnZXIgPGJvcm50cmFl Z2VyQGRlLmlibS5jb20+CkRhdGU6IFdlZCwgMTkgT2N0IDIwMTYgMTA6NDI6MDQgKzAyMDAK U3ViamVjdDogW1BBVENIIHY2IDA1LzExXSBzMzkwL3NwaW5sb2NrOiBQcm92aWRlIHZjcHVf aXNfcHJlZW1wdGVkCgp0aGlzIGltcGxlbWVudHMgdGhlIHMzOTAgYmFja2VuZCBmb3IgY29t bWl0CiJrZXJuZWwvc2NoZWQ6IGludHJvZHVjZSB2Y3B1IHByZWVtcHRlZCBjaGVjayBpbnRl cmZhY2UiCmJ5IHJld29ya2luZyB0aGUgZXhpc3Rpbmcgc21wX3ZjcHVfc2NoZWR1bGVkIGlu dG8KYXJjaF92Y3B1X2lzX3ByZWVtcHRlZC4gV2UgY2FuIHRoZW4gYWxzbyBnZXQgcmlkIG9m IHRoZQpsb2NhbCBjcHVfaXNfcHJlZW1wdGVkIGZ1bmN0aW9uIGJ5IG1vdmluZyB0aGUKQ0lG X0VOQUJMRURfV0FJVCB0ZXN0IGludG8gYXJjaF92Y3B1X2lzX3ByZWVtcHRlZC4KClNpZ25l ZC1vZmYtYnk6IENocmlzdGlhbiBCb3JudHJhZWdlciA8Ym9ybnRyYWVnZXJAZGUuaWJtLmNv bT4KQWNrZWQtYnk6IEhlaWtvIENhcnN0ZW5zIDxoZWlrby5jYXJzdGVuc0BkZS5pYm0uY29t PgotLS0KIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9zcGlubG9jay5oIHwgIDggKysrKysrKysK IGFyY2gvczM5MC9rZXJuZWwvc21wLmMgICAgICAgICAgIHwgIDkgKysrKysrKy0tCiBhcmNo L3MzOTAvbGliL3NwaW5sb2NrLmMgICAgICAgICB8IDI1ICsrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3NwaW5sb2NrLmggYi9h cmNoL3MzOTAvaW5jbHVkZS9hc20vc3BpbmxvY2suaAppbmRleCA3ZTllMDlmLi43ZWNkODkw IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vc3BpbmxvY2suaAorKysgYi9h cmNoL3MzOTAvaW5jbHVkZS9hc20vc3BpbmxvY2suaApAQCAtMjMsNiArMjMsMTQgQEAgX3Jh d19jb21wYXJlX2FuZF9zd2FwKHVuc2lnbmVkIGludCAqbG9jaywgdW5zaWduZWQgaW50IG9s ZCwgdW5zaWduZWQgaW50IG5ldykKIAlyZXR1cm4gX19zeW5jX2Jvb2xfY29tcGFyZV9hbmRf c3dhcChsb2NrLCBvbGQsIG5ldyk7CiB9CiAKKyNpZm5kZWYgQ09ORklHX1NNUAorc3RhdGlj IGlubGluZSBib29sIGFyY2hfdmNwdV9pc19wcmVlbXB0ZWQoaW50IGNwdSkgeyByZXR1cm4g ZmFsc2U7IH0KKyNlbHNlCitib29sIGFyY2hfdmNwdV9pc19wcmVlbXB0ZWQoaW50IGNwdSk7 CisjZW5kaWYKKworI2RlZmluZSB2Y3B1X2lzX3ByZWVtcHRlZCBhcmNoX3ZjcHVfaXNfcHJl ZW1wdGVkCisKIC8qCiAgKiBTaW1wbGUgc3BpbiBsb2NrIG9wZXJhdGlvbnMuICBUaGVyZSBh cmUgdHdvIHZhcmlhbnRzLCBvbmUgY2xlYXJzIElSUSdzCiAgKiBvbiB0aGUgbG9jYWwgcHJv Y2Vzc29yLCBvbmUgZG9lcyBub3QuCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3Nt cC5jIGIvYXJjaC9zMzkwL2tlcm5lbC9zbXAuYwppbmRleCAzNTUzMWZlLi5iOTg4ZWQxIDEw MDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3NtcC5jCisrKyBiL2FyY2gvczM5MC9rZXJu ZWwvc21wLmMKQEAgLTM2OCwxMCArMzY4LDE1IEBAIGludCBzbXBfZmluZF9wcm9jZXNzb3Jf aWQodTE2IGFkZHJlc3MpCiAJcmV0dXJuIC0xOwogfQogCi1pbnQgc21wX3ZjcHVfc2NoZWR1 bGVkKGludCBjcHUpCitib29sIGFyY2hfdmNwdV9pc19wcmVlbXB0ZWQoaW50IGNwdSkKIHsK LQlyZXR1cm4gcGNwdV9ydW5uaW5nKHBjcHVfZGV2aWNlcyArIGNwdSk7CisJaWYgKHRlc3Rf Y3B1X2ZsYWdfb2YoQ0lGX0VOQUJMRURfV0FJVCwgY3B1KSkKKwkJcmV0dXJuIGZhbHNlOwor CWlmIChwY3B1X3J1bm5pbmcocGNwdV9kZXZpY2VzICsgY3B1KSkKKwkJcmV0dXJuIGZhbHNl OworCXJldHVybiB0cnVlOwogfQorRVhQT1JUX1NZTUJPTChhcmNoX3ZjcHVfaXNfcHJlZW1w dGVkKTsKIAogdm9pZCBzbXBfeWllbGRfY3B1KGludCBjcHUpCiB7CmRpZmYgLS1naXQgYS9h cmNoL3MzOTAvbGliL3NwaW5sb2NrLmMgYi9hcmNoL3MzOTAvbGliL3NwaW5sb2NrLmMKaW5k ZXggZTVmNTBhNy4uZTQ4YTQ4ZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2xpYi9zcGlubG9j ay5jCisrKyBiL2FyY2gvczM5MC9saWIvc3BpbmxvY2suYwpAQCAtMzcsMTUgKzM3LDYgQEAg c3RhdGljIGlubGluZSB2b2lkIF9yYXdfY29tcGFyZV9hbmRfZGVsYXkodW5zaWduZWQgaW50 ICpsb2NrLCB1bnNpZ25lZCBpbnQgb2xkKQogCWFzbSgiLmluc24gcnN5LDB4ZWIwMDAwMDAw MDIyLCUwLDAsJTEiIDogOiAiZCIgKG9sZCksICJRIiAoKmxvY2spKTsKIH0KIAotc3RhdGlj IGlubGluZSBpbnQgY3B1X2lzX3ByZWVtcHRlZChpbnQgY3B1KQotewotCWlmICh0ZXN0X2Nw dV9mbGFnX29mKENJRl9FTkFCTEVEX1dBSVQsIGNwdSkpCi0JCXJldHVybiAwOwotCWlmIChz bXBfdmNwdV9zY2hlZHVsZWQoY3B1KSkKLQkJcmV0dXJuIDA7Ci0JcmV0dXJuIDE7Ci19Ci0K IHZvaWQgYXJjaF9zcGluX2xvY2tfd2FpdChhcmNoX3NwaW5sb2NrX3QgKmxwKQogewogCXVu c2lnbmVkIGludCBjcHUgPSBTUElOTE9DS19MT0NLVkFMOwpAQCAtNjIsNyArNTMsNyBAQCB2 b2lkIGFyY2hfc3Bpbl9sb2NrX3dhaXQoYXJjaF9zcGlubG9ja190ICpscCkKIAkJCWNvbnRp bnVlOwogCQl9CiAJCS8qIEZpcnN0IGl0ZXJhdGlvbjogY2hlY2sgaWYgdGhlIGxvY2sgb3du ZXIgaXMgcnVubmluZy4gKi8KLQkJaWYgKGZpcnN0X2RpYWcgJiYgY3B1X2lzX3ByZWVtcHRl ZCh+b3duZXIpKSB7CisJCWlmIChmaXJzdF9kaWFnICYmIGFyY2hfdmNwdV9pc19wcmVlbXB0 ZWQofm93bmVyKSkgewogCQkJc21wX3lpZWxkX2NwdSh+b3duZXIpOwogCQkJZmlyc3RfZGlh ZyA9IDA7CiAJCQljb250aW51ZTsKQEAgLTgxLDcgKzcyLDcgQEAgdm9pZCBhcmNoX3NwaW5f bG9ja193YWl0KGFyY2hfc3BpbmxvY2tfdCAqbHApCiAJCSAqIHlpZWxkIHRoZSBDUFUgdW5j b25kaXRpb25hbGx5LiBGb3IgTFBBUiByZWx5IG9uIHRoZQogCQkgKiBzZW5zZSBydW5uaW5n IHN0YXR1cy4KIAkJICovCi0JCWlmICghTUFDSElORV9JU19MUEFSIHx8IGNwdV9pc19wcmVl bXB0ZWQofm93bmVyKSkgeworCQlpZiAoIU1BQ0hJTkVfSVNfTFBBUiB8fCBhcmNoX3ZjcHVf aXNfcHJlZW1wdGVkKH5vd25lcikpIHsKIAkJCXNtcF95aWVsZF9jcHUofm93bmVyKTsKIAkJ CWZpcnN0X2RpYWcgPSAwOwogCQl9CkBAIC0xMDgsNyArOTksNyBAQCB2b2lkIGFyY2hfc3Bp bl9sb2NrX3dhaXRfZmxhZ3MoYXJjaF9zcGlubG9ja190ICpscCwgdW5zaWduZWQgbG9uZyBm bGFncykKIAkJCWNvbnRpbnVlOwogCQl9CiAJCS8qIENoZWNrIGlmIHRoZSBsb2NrIG93bmVy IGlzIHJ1bm5pbmcuICovCi0JCWlmIChmaXJzdF9kaWFnICYmIGNwdV9pc19wcmVlbXB0ZWQo fm93bmVyKSkgeworCQlpZiAoZmlyc3RfZGlhZyAmJiBhcmNoX3ZjcHVfaXNfcHJlZW1wdGVk KH5vd25lcikpIHsKIAkJCXNtcF95aWVsZF9jcHUofm93bmVyKTsKIAkJCWZpcnN0X2RpYWcg PSAwOwogCQkJY29udGludWU7CkBAIC0xMjcsNyArMTE4LDcgQEAgdm9pZCBhcmNoX3NwaW5f bG9ja193YWl0X2ZsYWdzKGFyY2hfc3BpbmxvY2tfdCAqbHAsIHVuc2lnbmVkIGxvbmcgZmxh Z3MpCiAJCSAqIHlpZWxkIHRoZSBDUFUgdW5jb25kaXRpb25hbGx5LiBGb3IgTFBBUiByZWx5 IG9uIHRoZQogCQkgKiBzZW5zZSBydW5uaW5nIHN0YXR1cy4KIAkJICovCi0JCWlmICghTUFD SElORV9JU19MUEFSIHx8IGNwdV9pc19wcmVlbXB0ZWQofm93bmVyKSkgeworCQlpZiAoIU1B Q0hJTkVfSVNfTFBBUiB8fCBhcmNoX3ZjcHVfaXNfcHJlZW1wdGVkKH5vd25lcikpIHsKIAkJ CXNtcF95aWVsZF9jcHUofm93bmVyKTsKIAkJCWZpcnN0X2RpYWcgPSAwOwogCQl9CkBAIC0x NjUsNyArMTU2LDcgQEAgdm9pZCBfcmF3X3JlYWRfbG9ja193YWl0KGFyY2hfcndsb2NrX3Qg KnJ3KQogCW93bmVyID0gMDsKIAl3aGlsZSAoMSkgewogCQlpZiAoY291bnQtLSA8PSAwKSB7 Ci0JCQlpZiAob3duZXIgJiYgY3B1X2lzX3ByZWVtcHRlZCh+b3duZXIpKQorCQkJaWYgKG93 bmVyICYmIGFyY2hfdmNwdV9pc19wcmVlbXB0ZWQofm93bmVyKSkKIAkJCQlzbXBfeWllbGRf Y3B1KH5vd25lcik7CiAJCQljb3VudCA9IHNwaW5fcmV0cnk7CiAJCX0KQEAgLTIxMSw3ICsy MDIsNyBAQCB2b2lkIF9yYXdfd3JpdGVfbG9ja193YWl0KGFyY2hfcndsb2NrX3QgKnJ3LCB1 bnNpZ25lZCBpbnQgcHJldikKIAlvd25lciA9IDA7CiAJd2hpbGUgKDEpIHsKIAkJaWYgKGNv dW50LS0gPD0gMCkgewotCQkJaWYgKG93bmVyICYmIGNwdV9pc19wcmVlbXB0ZWQofm93bmVy KSkKKwkJCWlmIChvd25lciAmJiBhcmNoX3ZjcHVfaXNfcHJlZW1wdGVkKH5vd25lcikpCiAJ CQkJc21wX3lpZWxkX2NwdSh+b3duZXIpOwogCQkJY291bnQgPSBzcGluX3JldHJ5OwogCQl9 CkBAIC0yNDEsNyArMjMyLDcgQEAgdm9pZCBfcmF3X3dyaXRlX2xvY2tfd2FpdChhcmNoX3J3 bG9ja190ICpydykKIAlvd25lciA9IDA7CiAJd2hpbGUgKDEpIHsKIAkJaWYgKGNvdW50LS0g PD0gMCkgewotCQkJaWYgKG93bmVyICYmIGNwdV9pc19wcmVlbXB0ZWQofm93bmVyKSkKKwkJ CWlmIChvd25lciAmJiBhcmNoX3ZjcHVfaXNfcHJlZW1wdGVkKH5vd25lcikpCiAJCQkJc21w X3lpZWxkX2NwdSh+b3duZXIpOwogCQkJY291bnQgPSBzcGluX3JldHJ5OwogCQl9CkBAIC0y ODUsNyArMjc2LDcgQEAgdm9pZCBhcmNoX2xvY2tfcmVsYXgodW5zaWduZWQgaW50IGNwdSkK IHsKIAlpZiAoIWNwdSkKIAkJcmV0dXJuOwotCWlmIChNQUNISU5FX0lTX0xQQVIgJiYgIWNw dV9pc19wcmVlbXB0ZWQofmNwdSkpCisJaWYgKE1BQ0hJTkVfSVNfTFBBUiAmJiAhYXJjaF92 Y3B1X2lzX3ByZWVtcHRlZCh+Y3B1KSkKIAkJcmV0dXJuOwogCXNtcF95aWVsZF9jcHUofmNw dSk7CiB9Ci0tIAoyLjQuMTEKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2Ni0wMDA2LXg4 Ni1wYXJhdmlydC1BZGQtaW50ZXJmYWNlLXRvLXN1cHBvcnQta3ZtLXhlbi12Y3AucGF0Y2gA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAw MDAwMDAAMDAwMDAwMDUzNDEAMTMwMDQ2MDExMDYAMDIyNzA1ACAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAEZyb20gZjE2NTc0Mjc2ZDY3YmVlMGEwM2ZjNTkwN2Y5Y2YxMmNk ZmYzMjBhNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFuIFhpbmh1aSA8eGlu aHVpLnBhbkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IFRodSwgMjAgT2N0IDIwMTYgMDg6 MDE6MzggLTA0MDAKU3ViamVjdDogW1BBVENIIHY2IDA2LzExXSB4ODYsIHBhcmF2aXJ0OiBB ZGQgaW50ZXJmYWNlIHRvIHN1cHBvcnQga3ZtL3hlbiB2Y3B1CiBwcmVlbXB0ZWQgY2hlY2sK ClRoaXMgaXMgdG8gZml4IHNvbWUgbG9jayBob2xkZXIgcHJlZW1wdGlvbiBpc3N1ZXMuIFNv bWUgb3RoZXIgbG9ja3MKaW1wbGVtZW50YXRpb24gZG8gYSBzcGluIGxvb3AgYmVmb3JlIGFj cXVpcmluZyB0aGUgbG9jayBpdHNlbGYuCkN1cnJlbnRseSBrZXJuZWwgaGFzIGFuIGludGVy ZmFjZSBvZiBib29sIHZjcHVfaXNfcHJlZW1wdGVkKGludCBjcHUpLiBJdAp0YWtlcyB0aGUg Y3B1IGFzIHBhcmFtZXRlciBhbmQgcmV0dXJuIHRydWUgaWYgdGhlIGNwdSBpcyBwcmVlbXB0 ZWQuClRoZW4ga2VybmVsIGNhbiBicmVhayB0aGUgc3BpbiBsb29wcyB1cG9uIG9uIHRoZSBy ZXR2YWwgb2YKdmNwdV9pc19wcmVlbXB0ZWQuCgpBcyBrZXJuZWwgaGFzIHVzZWQgdGhpcyBp bnRlcmZhY2UsIFNvIGxldHMgc3VwcG9ydCBpdC4KClRvIGRlYWwgd2l0aCBrZXJuZWwgYW5k IGt2bS94ZW4sIGFkZCB2Y3B1X2lzX3ByZWVtcHRlZCBpbnRvIHN0cnVjdApwdl9sb2NrX29w cy4KClRoZW4ga3ZtIG9yIHhlbiBjb3VsZCBwcm92aWRlIHRoZWlyIG93biBpbXBsZW1lbnRh dGlvbiB0byBzdXBwb3J0CnZjcHVfaXNfcHJlZW1wdGVkLgoKU2lnbmVkLW9mZi1ieTogUGFu IFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0LmlibS5jb20+Ci0tLQogYXJjaC94ODYv aW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCB8IDIgKysKIGFyY2gveDg2L2luY2x1ZGUv YXNtL3NwaW5sb2NrLmggICAgICAgfCA4ICsrKysrKysrCiBhcmNoL3g4Ni9rZXJuZWwvcGFy YXZpcnQtc3BpbmxvY2tzLmMgIHwgNiArKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTYgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0 X3R5cGVzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oCmluZGV4 IDBmNDAwYzAuLjM4YzNiYjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bh cmF2aXJ0X3R5cGVzLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlw ZXMuaApAQCAtMzEwLDYgKzMxMCw4IEBAIHN0cnVjdCBwdl9sb2NrX29wcyB7CiAKIAl2b2lk ICgqd2FpdCkodTggKnB0ciwgdTggdmFsKTsKIAl2b2lkICgqa2ljaykoaW50IGNwdSk7CisK Kwlib29sICgqdmNwdV9pc19wcmVlbXB0ZWQpKGludCBjcHUpOwogfTsKIAogLyogVGhpcyBj b250YWlucyBhbGwgdGhlIHBhcmF2aXJ0IHN0cnVjdHVyZXM6IHdlIGdldCBhIGNvbnZlbmll bnQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmggYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9jay5oCmluZGV4IDkyMWJlYTcuLjA1MjZmNTkgMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgKKysrIGIvYXJjaC94 ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaApAQCAtMjYsNiArMjYsMTQgQEAKIGV4dGVybiBz dHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF90aWNrZXRsb2Nrc19lbmFibGVkOwogc3RhdGlj IF9fYWx3YXlzX2lubGluZSBib29sIHN0YXRpY19rZXlfZmFsc2Uoc3RydWN0IHN0YXRpY19r ZXkgKmtleSk7CiAKKyNpZmRlZiBDT05GSUdfUEFSQVZJUlRfU1BJTkxPQ0tTCisjZGVmaW5l IHZjcHVfaXNfcHJlZW1wdGVkIHZjcHVfaXNfcHJlZW1wdGVkCitzdGF0aWMgaW5saW5lIGJv b2wgdmNwdV9pc19wcmVlbXB0ZWQoaW50IGNwdSkKK3sKKwlyZXR1cm4gcHZfbG9ja19vcHMu dmNwdV9pc19wcmVlbXB0ZWQoY3B1KTsKK30KKyNlbmRpZgorCiAjaW5jbHVkZSA8YXNtL3Fz cGlubG9jay5oPgogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0 LXNwaW5sb2Nrcy5jIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LXNwaW5sb2Nrcy5jCmlu ZGV4IDJjNTVhMDAuLjJmMjA0ZGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wYXJh dmlydC1zcGlubG9ja3MuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQtc3Bpbmxv Y2tzLmMKQEAgLTIxLDEyICsyMSwxOCBAQCBib29sIHB2X2lzX25hdGl2ZV9zcGluX3VubG9j ayh2b2lkKQogCQlfX3Jhd19jYWxsZWVfc2F2ZV9fX25hdGl2ZV9xdWV1ZWRfc3Bpbl91bmxv Y2s7CiB9CiAKK3N0YXRpYyBib29sIG5hdGl2ZV92Y3B1X2lzX3ByZWVtcHRlZChpbnQgY3B1 KQoreworCXJldHVybiAwOworfQorCiBzdHJ1Y3QgcHZfbG9ja19vcHMgcHZfbG9ja19vcHMg PSB7CiAjaWZkZWYgQ09ORklHX1NNUAogCS5xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoID0g bmF0aXZlX3F1ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgsCiAJLnF1ZXVlZF9zcGluX3VubG9j ayA9IFBWX0NBTExFRV9TQVZFKF9fbmF0aXZlX3F1ZXVlZF9zcGluX3VubG9jayksCiAJLndh aXQgPSBwYXJhdmlydF9ub3AsCiAJLmtpY2sgPSBwYXJhdmlydF9ub3AsCisJLnZjcHVfaXNf cHJlZW1wdGVkID0gbmF0aXZlX3ZjcHVfaXNfcHJlZW1wdGVkLAogI2VuZGlmIC8qIFNNUCAq LwogfTsKIEVYUE9SVF9TWU1CT0wocHZfbG9ja19vcHMpOwotLSAKMi40LjExCgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHY2LTAwMDctS1ZNLUludHJvZHVjZS1rdm1fd3JpdGVfZ3Vlc3Rfb2Zmc2V0 X2NhY2hlZC5wYXRjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwNTY1MAAxMzAwNDYwMTEwNgAwMjIx NDcAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARnJvbSAxZTFhNjRjOTFhZDNj MTI3MWY4YzI1NTg2OTAzZWQ4NTdhZGNjNmI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBQYW4gWGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTog RnJpLCAyOCBPY3QgMjAxNiAwMzowMjozMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggdjYgMDcv MTFdIEtWTTogSW50cm9kdWNlIGt2bV93cml0ZV9ndWVzdF9vZmZzZXRfY2FjaGVkCgpJdCBh bGxvd3MgdXMgdG8gdXBkYXRlIHNvbWUgc3RhdHVzIG9yIGZpZWxkIG9mIG9uZSBzdHJ1Y3Qg cGFydGlhbGx5LgoKV2UgY2FuIGFsc28gc2F2ZSBvbmUga3ZtX3JlYWRfZ3Vlc3RfY2FjaGVk IGlmIHdlIGp1c3QgdXBkYXRlIG9uZSBmaWxlZApvZiB0aGUgc3RydWN0IHJlZ2FyZGxlc3Mg b2YgaXRzIGN1cnJlbnQgdmFsdWUuCgpTaWduZWQtb2ZmLWJ5OiBQYW4gWGluaHVpIDx4aW5o dWkucGFuQGxpbnV4LnZuZXQuaWJtLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L2t2bV9ob3N0 LmggfCAgMiArKwogdmlydC9rdm0va3ZtX21haW4uYyAgICAgIHwgMjAgKysrKysrKysrKysr KystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmggYi9pbmNsdWRl L2xpbnV4L2t2bV9ob3N0LmgKaW5kZXggMDFjMGI5Yy4uNmYwMDIzNyAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC9rdm1faG9zdC5oCisrKyBiL2luY2x1ZGUvbGludXgva3ZtX2hvc3Qu aApAQCAtNjQ1LDYgKzY0NSw4IEBAIGludCBrdm1fd3JpdGVfZ3Vlc3Qoc3RydWN0IGt2bSAq a3ZtLCBncGFfdCBncGEsIGNvbnN0IHZvaWQgKmRhdGEsCiAJCSAgICB1bnNpZ25lZCBsb25n IGxlbik7CiBpbnQga3ZtX3dyaXRlX2d1ZXN0X2NhY2hlZChzdHJ1Y3Qga3ZtICprdm0sIHN0 cnVjdCBnZm5fdG9faHZhX2NhY2hlICpnaGMsCiAJCQkgICB2b2lkICpkYXRhLCB1bnNpZ25l ZCBsb25nIGxlbik7CitpbnQga3ZtX3dyaXRlX2d1ZXN0X29mZnNldF9jYWNoZWQoc3RydWN0 IGt2bSAqa3ZtLCBzdHJ1Y3QgZ2ZuX3RvX2h2YV9jYWNoZSAqZ2hjLAorCQkJICAgdm9pZCAq ZGF0YSwgaW50IG9mZnNldCwgdW5zaWduZWQgbG9uZyBsZW4pOwogaW50IGt2bV9nZm5fdG9f aHZhX2NhY2hlX2luaXQoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3QgZ2ZuX3RvX2h2YV9jYWNo ZSAqZ2hjLAogCQkJICAgICAgZ3BhX3QgZ3BhLCB1bnNpZ25lZCBsb25nIGxlbik7CiBpbnQg a3ZtX2NsZWFyX2d1ZXN0X3BhZ2Uoc3RydWN0IGt2bSAqa3ZtLCBnZm5fdCBnZm4sIGludCBv ZmZzZXQsIGludCBsZW4pOwpkaWZmIC0tZ2l0IGEvdmlydC9rdm0va3ZtX21haW4uYyBiL3Zp cnQva3ZtL2t2bV9tYWluLmMKaW5kZXggMjkwN2I3Yi4uOTUzMDhlZSAxMDA2NDQKLS0tIGEv dmlydC9rdm0va3ZtX21haW4uYworKysgYi92aXJ0L2t2bS9rdm1fbWFpbi5jCkBAIC0xOTcy LDMwICsxOTcyLDM4IEBAIGludCBrdm1fZ2ZuX3RvX2h2YV9jYWNoZV9pbml0KHN0cnVjdCBr dm0gKmt2bSwgc3RydWN0IGdmbl90b19odmFfY2FjaGUgKmdoYywKIH0KIEVYUE9SVF9TWU1C T0xfR1BMKGt2bV9nZm5fdG9faHZhX2NhY2hlX2luaXQpOwogCi1pbnQga3ZtX3dyaXRlX2d1 ZXN0X2NhY2hlZChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBnZm5fdG9faHZhX2NhY2hlICpn aGMsCi0JCQkgICB2b2lkICpkYXRhLCB1bnNpZ25lZCBsb25nIGxlbikKK2ludCBrdm1fd3Jp dGVfZ3Vlc3Rfb2Zmc2V0X2NhY2hlZChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBnZm5fdG9f aHZhX2NhY2hlICpnaGMsCisJCQkgICB2b2lkICpkYXRhLCBpbnQgb2Zmc2V0LCB1bnNpZ25l ZCBsb25nIGxlbikKIHsKIAlzdHJ1Y3Qga3ZtX21lbXNsb3RzICpzbG90cyA9IGt2bV9tZW1z bG90cyhrdm0pOwogCWludCByOworCWdwYV90IGdwYSA9IGdoYy0+Z3BhICsgb2Zmc2V0Owog Ci0JQlVHX09OKGxlbiA+IGdoYy0+bGVuKTsKKwlCVUdfT04obGVuICsgb2Zmc2V0ID4gZ2hj LT5sZW4pOwogCiAJaWYgKHNsb3RzLT5nZW5lcmF0aW9uICE9IGdoYy0+Z2VuZXJhdGlvbikK IAkJa3ZtX2dmbl90b19odmFfY2FjaGVfaW5pdChrdm0sIGdoYywgZ2hjLT5ncGEsIGdoYy0+ bGVuKTsKIAogCWlmICh1bmxpa2VseSghZ2hjLT5tZW1zbG90KSkKLQkJcmV0dXJuIGt2bV93 cml0ZV9ndWVzdChrdm0sIGdoYy0+Z3BhLCBkYXRhLCBsZW4pOworCQlyZXR1cm4ga3ZtX3dy aXRlX2d1ZXN0KGt2bSwgZ3BhLCBkYXRhLCBsZW4pOwogCiAJaWYgKGt2bV9pc19lcnJvcl9o dmEoZ2hjLT5odmEpKQogCQlyZXR1cm4gLUVGQVVMVDsKIAotCXIgPSBfX2NvcHlfdG9fdXNl cigodm9pZCBfX3VzZXIgKilnaGMtPmh2YSwgZGF0YSwgbGVuKTsKKwlyID0gX19jb3B5X3Rv X3VzZXIoKHZvaWQgX191c2VyICopZ2hjLT5odmEgKyBvZmZzZXQsIGRhdGEsIGxlbik7CiAJ aWYgKHIpCiAJCXJldHVybiAtRUZBVUxUOwotCW1hcmtfcGFnZV9kaXJ0eV9pbl9zbG90KGdo Yy0+bWVtc2xvdCwgZ2hjLT5ncGEgPj4gUEFHRV9TSElGVCk7CisJbWFya19wYWdlX2RpcnR5 X2luX3Nsb3QoZ2hjLT5tZW1zbG90LCBncGEgPj4gUEFHRV9TSElGVCk7CiAKIAlyZXR1cm4g MDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGt2bV93cml0ZV9ndWVzdF9vZmZzZXRfY2FjaGVk KTsKKworaW50IGt2bV93cml0ZV9ndWVzdF9jYWNoZWQoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1 Y3QgZ2ZuX3RvX2h2YV9jYWNoZSAqZ2hjLAorCQkJICAgdm9pZCAqZGF0YSwgdW5zaWduZWQg bG9uZyBsZW4pCit7CisJcmV0dXJuIGt2bV93cml0ZV9ndWVzdF9vZmZzZXRfY2FjaGVkKGt2 bSwgZ2hjLCBkYXRhLCAwLCBsZW4pOworfQogRVhQT1JUX1NZTUJPTF9HUEwoa3ZtX3dyaXRl X2d1ZXN0X2NhY2hlZCk7CiAKIGludCBrdm1fcmVhZF9ndWVzdF9jYWNoZWQoc3RydWN0IGt2 bSAqa3ZtLCBzdHJ1Y3QgZ2ZuX3RvX2h2YV9jYWNoZSAqZ2hjLAotLSAKMi40LjExCgoAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdjYtMDAwOC14ODYta3ZtLXg4Ni5jLXN1 cHBvcnQtdmNwdS1wcmVlbXB0ZWQtY2hlY2sucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDA0 NDY3ADEzMDA0NjAxMTA2ADAyMTMyNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABGcm9tIDFhNzdjNDVhYmU1NjI5NTc5OTc5MjZmZGU3NjM1MzYxNDhkOGRmNTkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhbiBYaW5odWkgPHhpbmh1aS5wYW5AbGludXgu dm5ldC5pYm0uY29tPgpEYXRlOiBGcmksIDI4IE9jdCAyMDE2IDAzOjA5OjIzIC0wNDAwClN1 YmplY3Q6IFtQQVRDSCB2NiAwOC8xMV0geDg2LCBrdm0veDg2LmM6IHN1cHBvcnQgdmNwdSBw cmVlbXB0ZWQgY2hlY2sKClN1cHBvcnQgdGhlIHZjcHVfaXNfcHJlZW1wdGVkKCkgZnVuY3Rp b25hbGl0eSB1bmRlciBLVk0uIFRoaXMgd2lsbAplbmhhbmNlIGxvY2sgcGVyZm9ybWFuY2Ug b24gb3ZlcmNvbW1pdHRlZCBob3N0cyAobW9yZSBydW5uYWJsZSB2Y3B1cwp0aGFuIHBoeXNp Y2FsIGNwdXMgaW4gdGhlIHN5c3RlbSkgYXMgZG9pbmcgYnVzeSB3YWl0cyBmb3IgcHJlZW1w dGVkCnZjcHVzIHdpbGwgaHVydCBzeXN0ZW0gcGVyZm9ybWFuY2UgZmFyIHdvcnNlIHRoYW4g ZWFybHkgeWllbGRpbmcuCgpVc2Ugb25lIGZpZWxkIG9mIHN0cnVjdCBrdm1fc3RlYWxfdGlt ZSA6OnByZWVtcHRlZCB0byBpbmRpY2F0ZSB0aGF0IGlmCm9uZSB2Y3B1IGlzIHJ1bm5pbmcg b3Igbm90LgoKU2lnbmVkLW9mZi1ieTogUGFuIFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52 bmV0LmlibS5jb20+Ci0tLQogYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm1fcGFyYS5o IHwgIDQgKysrLQogYXJjaC94ODYva3ZtL3g4Ni5jICAgICAgICAgICAgICAgICAgIHwgMTYg KysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9r dm1fcGFyYS5oIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm1fcGFyYS5oCmluZGV4 IDk0ZGM4Y2EuLjE0MjFhNjUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9h c20va3ZtX3BhcmEuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bV9wYXJh LmgKQEAgLTQ1LDcgKzQ1LDkgQEAgc3RydWN0IGt2bV9zdGVhbF90aW1lIHsKIAlfX3U2NCBz dGVhbDsKIAlfX3UzMiB2ZXJzaW9uOwogCV9fdTMyIGZsYWdzOwotCV9fdTMyIHBhZFsxMl07 CisJX191OCAgcHJlZW1wdGVkOworCV9fdTggIHU4X3BhZFszXTsKKwlfX3UzMiBwYWRbMTFd OwogfTsKIAogI2RlZmluZSBLVk1fU1RFQUxfQUxJR05NRU5UX0JJVFMgNQpkaWZmIC0tZ2l0 IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IGUzNzUy MzUuLmYwNmUxMTUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYworKysgYi9hcmNo L3g4Ni9rdm0veDg2LmMKQEAgLTIwNTcsNiArMjA1Nyw4IEBAIHN0YXRpYyB2b2lkIHJlY29y ZF9zdGVhbF90aW1lKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJJnZjcHUtPmFyY2guc3Qu c3RlYWwsIHNpemVvZihzdHJ1Y3Qga3ZtX3N0ZWFsX3RpbWUpKSkpCiAJCXJldHVybjsKIAor CXZjcHUtPmFyY2guc3Quc3RlYWwucHJlZW1wdGVkID0gMDsKKwogCWlmICh2Y3B1LT5hcmNo LnN0LnN0ZWFsLnZlcnNpb24gJiAxKQogCQl2Y3B1LT5hcmNoLnN0LnN0ZWFsLnZlcnNpb24g Kz0gMTsgIC8qIGZpcnN0IHRpbWUgd3JpdGUsIHJhbmRvbSBqdW5rICovCiAKQEAgLTI4MTAs OCArMjgxMiwyMiBAQCB2b2lkIGt2bV9hcmNoX3ZjcHVfbG9hZChzdHJ1Y3Qga3ZtX3ZjcHUg KnZjcHUsIGludCBjcHUpCiAJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX1NURUFMX1VQREFU RSwgdmNwdSk7CiB9CiAKK3N0YXRpYyB2b2lkIGt2bV9zdGVhbF90aW1lX3NldF9wcmVlbXB0 ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQoreworCWlmICghKHZjcHUtPmFyY2guc3QubXNy X3ZhbCAmIEtWTV9NU1JfRU5BQkxFRCkpCisJCXJldHVybjsKKworCXZjcHUtPmFyY2guc3Qu c3RlYWwucHJlZW1wdGVkID0gMTsKKworCWt2bV93cml0ZV9ndWVzdF9vZmZzZXRfY2FjaGVk KHZjcHUtPmt2bSwgJnZjcHUtPmFyY2guc3Quc3RpbWUsCisJCQkmdmNwdS0+YXJjaC5zdC5z dGVhbC5wcmVlbXB0ZWQsCisJCQlvZmZzZXRvZihzdHJ1Y3Qga3ZtX3N0ZWFsX3RpbWUsIHBy ZWVtcHRlZCksCisJCQlzaXplb2YodmNwdS0+YXJjaC5zdC5zdGVhbC5wcmVlbXB0ZWQpKTsK K30KKwogdm9pZCBrdm1fYXJjaF92Y3B1X3B1dChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7 CisJa3ZtX3N0ZWFsX3RpbWVfc2V0X3ByZWVtcHRlZCh2Y3B1KTsKIAlrdm1feDg2X29wcy0+ dmNwdV9wdXQodmNwdSk7CiAJa3ZtX3B1dF9ndWVzdF9mcHUodmNwdSk7CiAJdmNwdS0+YXJj aC5sYXN0X2hvc3RfdHNjID0gcmR0c2MoKTsKLS0gCjIuNC4xMQoKAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdjYtMDAwOS14ODYta2VybmVsLWt2bS5jLXN1cHBv cnQtdmNwdS1wcmVlbXB0ZWQtY2hlY2sucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDA0NjczADEz MDA0NjAxMTA2ADAyMjE1NwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9v dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGcm9t IGE1ZmQwODQzNTc4MTZiYTJmMWFjMjlhMDc1ZTU3MjE3MjAwYWYzZWEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFBhbiBYaW5odWkgPHhpbmh1aS5wYW5AbGludXgudm5ldC5p Ym0uY29tPgpEYXRlOiBGcmksIDI4IE9jdCAyMDE2IDAzOjE1OjAyIC0wNDAwClN1YmplY3Q6 IFtQQVRDSCB2NiAwOS8xMV0geDg2LCBrZXJuZWwva3ZtLmM6IHN1cHBvcnQgdmNwdSBwcmVl bXB0ZWQgY2hlY2sKClN1cHBvcnQgdGhlIHZjcHVfaXNfcHJlZW1wdGVkKCkgZnVuY3Rpb25h bGl0eSB1bmRlciBLVk0uIFRoaXMgd2lsbAplbmhhbmNlIGxvY2sgcGVyZm9ybWFuY2Ugb24g b3ZlcmNvbW1pdHRlZCBob3N0cyAobW9yZSBydW5uYWJsZSB2Y3B1cwp0aGFuIHBoeXNpY2Fs IGNwdXMgaW4gdGhlIHN5c3RlbSkgYXMgZG9pbmcgYnVzeSB3YWl0cyBmb3IgcHJlZW1wdGVk CnZjcHVzIHdpbGwgaHVydCBzeXN0ZW0gcGVyZm9ybWFuY2UgZmFyIHdvcnNlIHRoYW4gZWFy bHkgeWllbGRpbmcuCgpzdHJ1Y3Qga3ZtX3N0ZWFsX3RpbWU6OnByZWVtcHRlZCBpbmRpY2F0 ZSB0aGF0IGlmIG9uZSB2Y3B1IGlzIHJ1bm5pbmcgb3IKbm90IGFmdGVyIGNvbW1pdCgieDg2 LCBrdm0veDg2LmM6IHN1cHBvcnQgdmNwdSBwcmVlbXB0ZWQgY2hlY2siKS4KCnVuaXggYmVu Y2htYXJrIHJlc3VsdDoKaG9zdDogIGtlcm5lbCA0LjguMSwgaTUtNDU3MCwgNCBjcHVzCmd1 ZXN0OiBrZXJuZWwgNC44LjEsIDggdmNwdXMKCiAgICAgICAgdGVzdC1jYXNlICAgICAgICAg ICAgICAgICAgICAgICBhZnRlci1wYXRjaCAgICAgICBiZWZvcmUtcGF0Y2gKRXhlY2wgVGhy b3VnaHB1dCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxODMwNy45IGxwcyAgfCAgICAx MTcwMS42IGxwcwpGaWxlIENvcHkgMTAyNCBidWZzaXplIDIwMDAgbWF4YmxvY2tzICB8ICAx MzUyNDA3LjMgS0JwcyB8ICAgNzkwNDE4LjkgS0JwcwpGaWxlIENvcHkgMjU2IGJ1ZnNpemUg NTAwIG1heGJsb2NrcyAgICB8ICAgMzY3NTU1LjYgS0JwcyB8ICAgMjIyODY3LjcgS0JwcwpG aWxlIENvcHkgNDA5NiBidWZzaXplIDgwMDAgbWF4YmxvY2tzICB8ICAzNjc1NjQ5LjcgS0Jw cyB8ICAxNzgwNjE0LjQgS0JwcwpQaXBlIFRocm91Z2hwdXQgICAgICAgICAgICAgICAgICAg ICAgICB8IDExODcyMjA4LjcgbHBzICB8IDExODU1NjI4LjkgbHBzClBpcGUtYmFzZWQgQ29u dGV4dCBTd2l0Y2hpbmcgICAgICAgICAgIHwgIDE0OTUxMjYuNSBscHMgIHwgIDE0OTA1MzMu OSBscHMKUHJvY2VzcyBDcmVhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyOTg4 MS4yIGxwcyAgfCAgICAyODU3Mi44IGxwcwpTaGVsbCBTY3JpcHRzICgxIGNvbmN1cnJlbnQp ICAgICAgICAgICB8ICAgIDIzMjI0LjMgbHBtICB8ICAgIDIyNjA3LjQgbHBtClNoZWxsIFNj cmlwdHMgKDggY29uY3VycmVudCkgICAgICAgICAgIHwgICAgIDM1MzEuNCBscG0gIHwgICAg IDMyMTEuOSBscG0KU3lzdGVtIENhbGwgT3ZlcmhlYWQgICAgICAgICAgICAgICAgICAgfCAx MDM4NTY1My4wIGxwcyAgfCAxMDQxOTk3OS4wIGxwcwoKU2lnbmVkLW9mZi1ieTogUGFuIFhp bmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0LmlibS5jb20+Ci0tLQogYXJjaC94ODYva2Vy bmVsL2t2bS5jIHwgMTIgKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9rdm0uYyBiL2FyY2gveDg2 L2tlcm5lbC9rdm0uYwppbmRleCBlZGJiZmM4Li4wYjQ4ZGQyIDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9rZXJuZWwva3ZtLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2t2bS5jCkBAIC00MTUs NiArNDE1LDE1IEBAIHZvaWQga3ZtX2Rpc2FibGVfc3RlYWxfdGltZSh2b2lkKQogCXdybXNy KE1TUl9LVk1fU1RFQUxfVElNRSwgMCwgMCk7CiB9CiAKK3N0YXRpYyBib29sIGt2bV92Y3B1 X2lzX3ByZWVtcHRlZChpbnQgY3B1KQoreworCXN0cnVjdCBrdm1fc3RlYWxfdGltZSAqc3Jj OworCisJc3JjID0gJnBlcl9jcHUoc3RlYWxfdGltZSwgY3B1KTsKKworCXJldHVybiAhIXNy Yy0+cHJlZW1wdGVkOworfQorCiAjaWZkZWYgQ09ORklHX1NNUAogc3RhdGljIHZvaWQgX19p bml0IGt2bV9zbXBfcHJlcGFyZV9ib290X2NwdSh2b2lkKQogewpAQCAtNDcxLDYgKzQ4MCw5 IEBAIHZvaWQgX19pbml0IGt2bV9ndWVzdF9pbml0KHZvaWQpCiAJaWYgKGt2bV9wYXJhX2hh c19mZWF0dXJlKEtWTV9GRUFUVVJFX1NURUFMX1RJTUUpKSB7CiAJCWhhc19zdGVhbF9jbG9j ayA9IDE7CiAJCXB2X3RpbWVfb3BzLnN0ZWFsX2Nsb2NrID0ga3ZtX3N0ZWFsX2Nsb2NrOwor I2lmZGVmIENPTkZJR19QQVJBVklSVF9TUElOTE9DS1MKKwkJcHZfbG9ja19vcHMudmNwdV9p c19wcmVlbXB0ZWQgPSBrdm1fdmNwdV9pc19wcmVlbXB0ZWQ7CisjZW5kaWYKIAl9CiAKIAlp ZiAoa3ZtX3BhcmFfaGFzX2ZlYXR1cmUoS1ZNX0ZFQVRVUkVfUFZfRU9JKSkKLS0gCjIuNC4x MQoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdjYtMDAxMC14ODYteGVuLXN1cHBvcnQtdmNwdS1wcmVlbXB0 ZWQtY2hlY2sucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAyNzEyADEzMDA0NjAx MTA2ADAyMDQzNQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGcm9tIGU2YzQz ODUzYzk3NWJjNzA3NTQ2YmZlNTU0OTMwYTA2YWI3Njg1NzIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KRGF0ZTogV2Vk LCAxOSBPY3QgMjAxNiAxNTozMDo1OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggdjYgMTAvMTFd IHg4NiwgeGVuOiBzdXBwb3J0IHZjcHUgcHJlZW1wdGVkIGNoZWNrCgpTdXBwb3J0IHRoZSB2 Y3B1X2lzX3ByZWVtcHRlZCgpIGZ1bmN0aW9uYWxpdHkgdW5kZXIgWGVuLiBUaGlzIHdpbGwK ZW5oYW5jZSBsb2NrIHBlcmZvcm1hbmNlIG9uIG92ZXJjb21taXR0ZWQgaG9zdHMgKG1vcmUg cnVubmFibGUgdmNwdXMKdGhhbiBwaHlzaWNhbCBjcHVzIGluIHRoZSBzeXN0ZW0pIGFzIGRv aW5nIGJ1c3kgd2FpdHMgZm9yIHByZWVtcHRlZAp2Y3B1cyB3aWxsIGh1cnQgc3lzdGVtIHBl cmZvcm1hbmNlIGZhciB3b3JzZSB0aGFuIGVhcmx5IHlpZWxkaW5nLgoKQSBxdWljayB0ZXN0 ICg0IHZjcHVzIG9uIDEgcGh5c2ljYWwgY3B1IGRvaW5nIGEgcGFyYWxsZWwgYnVpbGQgam9i CndpdGggIm1ha2UgLWogOCIpIHJlZHVjZWQgc3lzdGVtIHRpbWUgYnkgYWJvdXQgNSUgd2l0 aCB0aGlzIHBhdGNoLgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1 c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYW4gWGluaHVpIDx4aW5odWkucGFuQGxpbnV4LnZu ZXQuaWJtLmNvbT4KLS0tCiBhcmNoL3g4Ni94ZW4vc3BpbmxvY2suYyB8IDMgKystCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvYXJjaC94ODYveGVuL3NwaW5sb2NrLmMgYi9hcmNoL3g4Ni94ZW4vc3BpbmxvY2suYwpp bmRleCAzZDZlMDA2Li43NDc1NmJiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vc3Bpbmxv Y2suYworKysgYi9hcmNoL3g4Ni94ZW4vc3BpbmxvY2suYwpAQCAtMTE0LDcgKzExNCw2IEBA IHZvaWQgeGVuX3VuaW5pdF9sb2NrX2NwdShpbnQgY3B1KQogCXBlcl9jcHUoaXJxX25hbWUs IGNwdSkgPSBOVUxMOwogfQogCi0KIC8qCiAgKiBPdXIgaW5pdCBvZiBQViBzcGlubG9ja3Mg aXMgc3BsaXQgaW4gdHdvIGluaXQgZnVuY3Rpb25zIGR1ZSB0byB1cwogICogdXNpbmcgcGFy YXZpcnQgcGF0Y2hpbmcgYW5kIGp1bXAgbGFiZWxzIHBhdGNoaW5nIGFuZCBoYXZpbmcgdG8g ZG8KQEAgLTEzNyw2ICsxMzYsOCBAQCB2b2lkIF9faW5pdCB4ZW5faW5pdF9zcGlubG9ja3Mo dm9pZCkKIAlwdl9sb2NrX29wcy5xdWV1ZWRfc3Bpbl91bmxvY2sgPSBQVl9DQUxMRUVfU0FW RShfX3B2X3F1ZXVlZF9zcGluX3VubG9jayk7CiAJcHZfbG9ja19vcHMud2FpdCA9IHhlbl9x bG9ja193YWl0OwogCXB2X2xvY2tfb3BzLmtpY2sgPSB4ZW5fcWxvY2tfa2ljazsKKworCXB2 X2xvY2tfb3BzLnZjcHVfaXNfcHJlZW1wdGVkID0geGVuX3ZjcHVfc3RvbGVuOwogfQogCiAv KgotLSAKMi40LjExCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAB2Ni0wMDExLURvY3VtZW50YXRpb24tdmlydHVhbC1rdm0tU3VwcG9y dC12Y3B1LXByZWVtcHRlZC0ucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDM0NzcAMTMwMDQ2MDExMDYA MDIzMjY0ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZyb20gZDU5YTdiYzRj OWY0OTRlMTdhMWE1OTU3NTQ3MDMxZTNiZDBjZmE1NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogUGFuIFhpbmh1aSA8eGluaHVpLnBhbkBsaW51eC52bmV0LmlibS5jb20+CkRh dGU6IFRodSwgMjAgT2N0IDIwMTYgMDk6MzM6MzYgLTA0MDAKU3ViamVjdDogW1BBVENIIHY2 IDExLzExXSBEb2N1bWVudGF0aW9uOiB2aXJ0dWFsOiBrdm06IFN1cHBvcnQgdmNwdSBwcmVl bXB0ZWQKIGNoZWNrCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpDb21t aXQgKCJ4ODYsIGt2bTogc3VwcG9ydCB2Y3B1IHByZWVtcHRlZCBjaGVjayIpIGFkZCBvbmUg ZmllbGQgIl9fdTgKcHJlZW1wdGVkIiBpbnRvIHN0cnVjdCBrdm1fc3RlYWxfdGltZS4gVGhp cyBmaWVsZCB0ZWxscyBpZiBvbmUgdmNwdSBpcwpydW5uaW5nIG9yIG5vdC4KCkl0IGlzIHpl cm8gaWYgMSkgc29tZSBvbGQgS1ZNIGRlb3Mgbm90IHN1cHBvcnQgdGhpcyBmaWxlZC4gMikg dGhlIHZjcHUgaXMKbm90IHByZWVtcHRlZC4gT3RoZXIgdmFsdWVzIG1lYW5zIHRoZSB2Y3B1 IGhhcyBiZWVuIHByZWVtcHRlZC4KClNpZ25lZC1vZmYtYnk6IFBhbiBYaW5odWkgPHhpbmh1 aS5wYW5AbGludXgudm5ldC5pYm0uY29tPgpBY2tlZC1ieTogUmFkaW0gS3LEjW3DocWZIDxy a3JjbWFyQHJlZGhhdC5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9tc3Iu dHh0IHwgOSArKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL21z ci50eHQgYi9Eb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL21zci50eHQKaW5kZXggMmE3MWM4 Zi4uYWIyYWI3NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9tc3Iu dHh0CisrKyBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0vbXNyLnR4dApAQCAtMjA4LDcg KzIwOCw5IEBAIE1TUl9LVk1fU1RFQUxfVElNRTogMHg0YjU2NGQwMwogCQlfX3U2NCBzdGVh bDsKIAkJX191MzIgdmVyc2lvbjsKIAkJX191MzIgZmxhZ3M7Ci0JCV9fdTMyIHBhZFsxMl07 CisJCV9fdTggIHByZWVtcHRlZDsKKwkJX191OCAgdThfcGFkWzNdOworCQlfX3UzMiBwYWRb MTFdOwogCX0KIAogCXdob3NlIGRhdGEgd2lsbCBiZSBmaWxsZWQgaW4gYnkgdGhlIGh5cGVy dmlzb3IgcGVyaW9kaWNhbGx5LiBPbmx5IG9uZQpAQCAtMjMyLDYgKzIzNCwxMSBAQCBNU1Jf S1ZNX1NURUFMX1RJTUU6IDB4NGI1NjRkMDMKIAkJbmFub3NlY29uZHMuIFRpbWUgZHVyaW5n IHdoaWNoIHRoZSB2Y3B1IGlzIGlkbGUsIHdpbGwgbm90IGJlCiAJCXJlcG9ydGVkIGFzIHN0 ZWFsIHRpbWUuCiAKKwkJcHJlZW1wdGVkOiBpbmRpY2F0ZSB0aGUgVkNQVSB3aG8gb3ducyB0 aGlzIHN0cnVjdCBpcyBydW5uaW5nIG9yCisJCW5vdC4gTm9uLXplcm8gdmFsdWVzIG1lYW4g dGhlIFZDUFUgaGFzIGJlZW4gcHJlZW1wdGVkLiBaZXJvCisJCW1lYW5zIHRoZSBWQ1BVIGlz IG5vdCBwcmVlbXB0ZWQuIE5PVEUsIGl0IGlzIGFsd2F5cyB6ZXJvIGlmIHRoZQorCQl0aGUg aHlwZXJ2aXNvciBkb2Vzbid0IHN1cHBvcnQgdGhpcyBmaWVsZC4KKwogTVNSX0tWTV9FT0lf RU46IDB4NGI1NjRkMDQKIAlkYXRhOiBCaXQgMCBpcyAxIHdoZW4gUFYgZW5kIG9mIGludGVy cnVwdCBpcyBlbmFibGVkIG9uIHRoZSB2Y3B1OyAwCiAJd2hlbiBkaXNhYmxlZC4gIEJpdCAx IGlzIHJlc2VydmVkIGFuZCBtdXN0IGJlIHplcm8uICBXaGVuIFBWIGVuZCBvZgotLSAKMi40 LjExCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAA= --------------61604B35C45A3051AD777214--