From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36485C432C3 for ; Sun, 1 Dec 2019 00:01:59 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CC2FD2086A for ; Sun, 1 Dec 2019 00:01:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OnSIRHaI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CC2FD2086A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:39470 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ibCgY-0004lc-1S for qemu-devel@archiver.kernel.org; Sat, 30 Nov 2019 19:01:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52022) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ibCf0-0004FM-1H for qemu-devel@nongnu.org; Sat, 30 Nov 2019 19:00:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ibCex-0003TX-0X for qemu-devel@nongnu.org; Sat, 30 Nov 2019 19:00:21 -0500 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]:42884) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ibCew-0003T1-MT for qemu-devel@nongnu.org; Sat, 30 Nov 2019 19:00:18 -0500 Received: by mail-oi1-x234.google.com with SMTP id o12so29142606oic.9 for ; Sat, 30 Nov 2019 16:00:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=CnMAIdaQ4JSJvt8ug5eXFMDQ7yf3Y7KbIER94fda39U=; b=OnSIRHaI7SOnfoaL0z4jXcy2VcY2D/rOtacKAGr4BBneSrJqpLHGhEoCOesY7sBMsR aBi8QQl9KnrsxKUCTAZQbduBMrHBOaXTUYS4JumAivsx6vwmozqIJPTpHpUKV6ceLMcB +DkTPR4tVLctzrLstKoX3wZ+ymiRbtvqKaI5IV3YRZ0dvs8s/GT1S5LNWCJLTtLht0Hl nJeiyCuFkMwenVnC4vgreW6u8gpCg1rGQ9cP/yHOivbeLjL4eGMK9IZL489XdH9b+Evk j2iB4cmP6Hn7CgFhRiMtebL6zIoJtvygR/nk5NKfeQVULhZOxmkDngn8uKRB5c/PYTMm kU+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=CnMAIdaQ4JSJvt8ug5eXFMDQ7yf3Y7KbIER94fda39U=; b=G2647ce3GiolYqoLMZiBMDFQ5N7zAb599jHMtkrcfOMum91y+n7n2hUvDi/LCrrerN yiGVGhI7pCqNUCbvt9qa1CtFDOiC6BejLaEKYvXBfP0wMf6XZR8TB9r0KUwc1oOOjO07 56Gv7jCufpux54/MArPSuPyfmyzKDStN0koYOhJmmnQRfRV00SYnofOmdfe4/L62QyiE UfGZ4kyQSb2WwBeBxzuh/es30wgZJg1FxxuGV8q8RZFSaUilVVecyMICjzWNhVLbibrm UvEW0Pbtf1plEVdAZMNoBoNTDPprjBfNZcaoRWV7vr+nQxksdEPYVLhlj41y4lu43Xbl YgNQ== X-Gm-Message-State: APjAAAXSFy2z6SkCS9Eqc1JDopWj5PM8f4kVgAdTjtKbuHeYDps5N44s 6n/JdKndAEZ6vpTSIGldGUwCC6//vADyumsPDe8= X-Google-Smtp-Source: APXvYqyNmscRD/FkutRzSpt+Eb+RipuHzp1yq4PwoVa2Swg6TX4gI323DChw4rWIqBOcX/79fpFYvwkcGFPL7r4vNIw= X-Received: by 2002:aca:670b:: with SMTP id z11mr17389411oix.79.1575158417570; Sat, 30 Nov 2019 16:00:17 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a05:6830:1391:0:0:0:0 with HTTP; Sat, 30 Nov 2019 16:00:17 -0800 (PST) In-Reply-To: <1574687098-26689-3-git-send-email-Filip.Bozuta@rt-rk.com> References: <1574687098-26689-1-git-send-email-Filip.Bozuta@rt-rk.com> <1574687098-26689-3-git-send-email-Filip.Bozuta@rt-rk.com> From: Aleksandar Markovic Date: Sun, 1 Dec 2019 01:00:17 +0100 Message-ID: Subject: Re: [PATCH 2/5] mips: malta: Renovate coding style To: Filip Bozuta Content-Type: multipart/alternative; boundary="000000000000f1bef005989925f1" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::234 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "pburton@wavecomp.com" , "qemu-devel@nongnu.org" , "hpoussin@reactos.org" , "amarkovic@wavecomp.com" , "aleksandar.rikalo@rt-rk.com" , "aurelien@aurel32.net" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" --000000000000f1bef005989925f1 Content-Type: text/plain; charset="UTF-8" On Monday, November 25, 2019, Filip Bozuta wrote: > The script checkpatch.pl located in scripts folder was > used to detect all errors and warrnings in files: > hw/mips/mips_malta.c > hw/mips/gt64xxx_pci.c > tests/acceptance/linux_ssh_mips_malta.py > > All these mips malta machine files were edited and > all the errors and warrings generated by the checkpatch.pl > script were corrected and then the script was > ran again to make sure there are no more errors and warnings. > > Signed-off-by: Filip Bozuta > --- > hw/mips/mips_malta.c | 139 > ++++++++++++++++--------------- > tests/acceptance/linux_ssh_mips_malta.py | 6 +- > 2 files changed, 75 insertions(+), 70 deletions(-) > > diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c > index 92e9ca5..18eafac 100644 > --- a/hw/mips/mips_malta.c > +++ b/hw/mips/mips_malta.c > @@ -137,7 +137,8 @@ static void malta_fpga_update_display(void *opaque) > */ > > #if defined(DEBUG) > -# define logout(fmt, ...) fprintf(stderr, "MALTA\t%-24s" fmt, __func__, > ## __VA_ARGS__) > +# define logout(fmt, ...) \ > + fprintf(stderr, "MALTA\t%-24s" fmt, __func__, ## __VA_ARGS__) > #else > # define logout(fmt, ...) ((void)0) > #endif > @@ -569,7 +570,7 @@ static MaltaFPGAState *malta_fpga_init(MemoryRegion > *address_space, > MaltaFPGAState *s; > Chardev *chr; > > - s = (MaltaFPGAState *)g_malloc0(sizeof(MaltaFPGAState)); > + s = (MaltaFPGAState *)g_new0(sizeof(MaltaFPGAState)); > > memory_region_init_io(&s->iomem, NULL, &malta_fpga_ops, s, > "malta-fpga", 0x100000); > @@ -844,9 +845,9 @@ static void write_bootloader(uint8_t *base, int64_t > run_addr, > /* Small bootloader */ > p = (uint32_t *)base; > > - stl_p(p++, 0x08000000 | /* j > 0x1fc00580 */ > + stl_p(p++, 0x08000000 | /* j > 0x1fc00580 */ > ((run_addr + 0x580) & 0x0fffffff) >> 2); > - stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x00000000); /* nop */ > > /* YAMON service vector */ > stl_p(base + 0x500, run_addr + 0x0580); /* start: */ > @@ -892,104 +893,106 @@ static void write_bootloader(uint8_t *base, > int64_t run_addr, > stl_p(p++, 0x34e70000 | (loaderparams.ram_low_size & 0xffff)); > > /* Load BAR registers as done by YAMON */ > - stl_p(p++, 0x3c09b400); /* lui > t1, 0xb400 */ > + stl_p(p++, 0x3c09b400); /* lui t1, 0xb400 */ > > Sorry, Filip, just an additional thing: the first several comments in the new arrangement don't begin at the same line as the rest of comments. But I can fix it while applying, no need for you to send v2 beacause of this. Thanks, Aleksandar > #ifdef TARGET_WORDS_BIGENDIAN > - stl_p(p++, 0x3c08df00); /* lui > t0, 0xdf00 */ > + stl_p(p++, 0x3c08df00); /* lui t0, 0xdf00 */ > #else > - stl_p(p++, 0x340800df); /* ori > t0, r0, 0x00df */ > + stl_p(p++, 0x340800df); /* ori t0, r0, 0x00df */ > #endif > - stl_p(p++, 0xad280068); /* sw > t0, 0x0068(t1) */ > + stl_p(p++, 0xad280068); /* sw t0, 0x0068(t1) */ > > - stl_p(p++, 0x3c09bbe0); /* lui > t1, 0xbbe0 */ > + stl_p(p++, 0x3c09bbe0); /* lui t1, 0xbbe0 */ > > #ifdef TARGET_WORDS_BIGENDIAN > - stl_p(p++, 0x3c08c000); /* lui > t0, 0xc000 */ > + stl_p(p++, 0x3c08c000); /* lui t0, 0xc000 */ > #else > - stl_p(p++, 0x340800c0); /* ori > t0, r0, 0x00c0 */ > + stl_p(p++, 0x340800c0); /* ori t0, r0, 0x00c0 */ > #endif > - stl_p(p++, 0xad280048); /* sw > t0, 0x0048(t1) */ > + stl_p(p++, 0xad280048); /* sw t0, 0x0048(t1) */ > #ifdef TARGET_WORDS_BIGENDIAN > - stl_p(p++, 0x3c084000); /* lui > t0, 0x4000 */ > + stl_p(p++, 0x3c084000); /* lui t0, 0x4000 */ > #else > - stl_p(p++, 0x34080040); /* ori > t0, r0, 0x0040 */ > + stl_p(p++, 0x34080040); /* ori t0, r0, 0x0040 */ > #endif > - stl_p(p++, 0xad280050); /* sw > t0, 0x0050(t1) */ > + stl_p(p++, 0xad280050); /* sw t0, 0x0050(t1) */ > > #ifdef TARGET_WORDS_BIGENDIAN > - stl_p(p++, 0x3c088000); /* lui > t0, 0x8000 */ > + stl_p(p++, 0x3c088000); /* lui t0, 0x8000 */ > #else > - stl_p(p++, 0x34080080); /* ori > t0, r0, 0x0080 */ > + stl_p(p++, 0x34080080); /* ori t0, r0, 0x0080 */ > #endif > - stl_p(p++, 0xad280058); /* sw > t0, 0x0058(t1) */ > + stl_p(p++, 0xad280058); /* sw t0, 0x0058(t1) */ > #ifdef TARGET_WORDS_BIGENDIAN > - stl_p(p++, 0x3c083f00); /* lui > t0, 0x3f00 */ > + stl_p(p++, 0x3c083f00); /* lui t0, 0x3f00 */ > #else > - stl_p(p++, 0x3408003f); /* ori > t0, r0, 0x003f */ > + stl_p(p++, 0x3408003f); /* ori t0, r0, 0x003f */ > #endif > - stl_p(p++, 0xad280060); /* sw > t0, 0x0060(t1) */ > + stl_p(p++, 0xad280060); /* sw t0, 0x0060(t1) */ > > #ifdef TARGET_WORDS_BIGENDIAN > - stl_p(p++, 0x3c08c100); /* lui > t0, 0xc100 */ > + stl_p(p++, 0x3c08c100); /* lui t0, 0xc100 */ > #else > - stl_p(p++, 0x340800c1); /* ori > t0, r0, 0x00c1 */ > + stl_p(p++, 0x340800c1); /* ori t0, r0, 0x00c1 */ > #endif > - stl_p(p++, 0xad280080); /* sw > t0, 0x0080(t1) */ > + stl_p(p++, 0xad280080); /* sw t0, 0x0080(t1) */ > #ifdef TARGET_WORDS_BIGENDIAN > - stl_p(p++, 0x3c085e00); /* lui > t0, 0x5e00 */ > + stl_p(p++, 0x3c085e00); /* lui t0, 0x5e00 */ > #else > - stl_p(p++, 0x3408005e); /* ori > t0, r0, 0x005e */ > + stl_p(p++, 0x3408005e); /* ori t0, r0, 0x005e */ > #endif > - stl_p(p++, 0xad280088); /* sw > t0, 0x0088(t1) */ > + stl_p(p++, 0xad280088); /* sw t0, 0x0088(t1) */ > > /* Jump to kernel code */ > - stl_p(p++, 0x3c1f0000 | ((kernel_entry >> 16) & 0xffff)); /* lui > ra, high(kernel_entry) */ > - stl_p(p++, 0x37ff0000 | (kernel_entry & 0xffff)); /* ori > ra, ra, low(kernel_entry) */ > - stl_p(p++, 0x03e00009); /* jalr > ra */ > - stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x3c1f0000 | > + ((kernel_entry >> 16) & 0xffff)); /* lui ra, > high(kernel_entry) */ > + stl_p(p++, 0x37ff0000 | > + (kernel_entry & 0xffff)); /* ori ra, ra, > low(kernel_entry) */ > + stl_p(p++, 0x03e00009); /* jalr ra */ > + stl_p(p++, 0x00000000); /* nop */ > > /* YAMON subroutines */ > p = (uint32_t *) (base + 0x800); > - stl_p(p++, 0x03e00009); /* jalr > ra */ > - stl_p(p++, 0x24020000); /* li > v0,0 */ > + stl_p(p++, 0x03e00009); /* jalr ra */ > + stl_p(p++, 0x24020000); /* li v0,0 */ > /* 808 YAMON print */ > - stl_p(p++, 0x03e06821); /* move > t5,ra */ > - stl_p(p++, 0x00805821); /* move > t3,a0 */ > - stl_p(p++, 0x00a05021); /* move > t2,a1 */ > - stl_p(p++, 0x91440000); /* lbu > a0,0(t2) */ > - stl_p(p++, 0x254a0001); /* addiu > t2,t2,1 */ > - stl_p(p++, 0x10800005); /* beqz > a0,834 */ > - stl_p(p++, 0x00000000); /* nop */ > - stl_p(p++, 0x0ff0021c); /* jal > 870 */ > - stl_p(p++, 0x00000000); /* nop */ > - stl_p(p++, 0x1000fff9); /* b 814 > */ > - stl_p(p++, 0x00000000); /* nop */ > - stl_p(p++, 0x01a00009); /* jalr > t5 */ > - stl_p(p++, 0x01602021); /* move > a0,t3 */ > + stl_p(p++, 0x03e06821); /* move t5,ra */ > + stl_p(p++, 0x00805821); /* move t3,a0 */ > + stl_p(p++, 0x00a05021); /* move t2,a1 */ > + stl_p(p++, 0x91440000); /* lbu a0,0(t2) */ > + stl_p(p++, 0x254a0001); /* addiu t2,t2,1 */ > + stl_p(p++, 0x10800005); /* beqz a0,834 */ > + stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x0ff0021c); /* jal 870 */ > + stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x1000fff9); /* b 814 */ > + stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x01a00009); /* jalr t5 */ > + stl_p(p++, 0x01602021); /* move a0,t3 */ > /* 0x83c YAMON print_count */ > - stl_p(p++, 0x03e06821); /* move > t5,ra */ > - stl_p(p++, 0x00805821); /* move > t3,a0 */ > - stl_p(p++, 0x00a05021); /* move > t2,a1 */ > - stl_p(p++, 0x00c06021); /* move > t4,a2 */ > - stl_p(p++, 0x91440000); /* lbu > a0,0(t2) */ > - stl_p(p++, 0x0ff0021c); /* jal > 870 */ > - stl_p(p++, 0x00000000); /* nop */ > - stl_p(p++, 0x254a0001); /* addiu > t2,t2,1 */ > - stl_p(p++, 0x258cffff); /* addiu > t4,t4,-1 */ > - stl_p(p++, 0x1580fffa); /* bnez > t4,84c */ > - stl_p(p++, 0x00000000); /* nop */ > - stl_p(p++, 0x01a00009); /* jalr > t5 */ > - stl_p(p++, 0x01602021); /* move > a0,t3 */ > + stl_p(p++, 0x03e06821); /* move t5,ra */ > + stl_p(p++, 0x00805821); /* move t3,a0 */ > + stl_p(p++, 0x00a05021); /* move t2,a1 */ > + stl_p(p++, 0x00c06021); /* move t4,a2 */ > + stl_p(p++, 0x91440000); /* lbu a0,0(t2) */ > + stl_p(p++, 0x0ff0021c); /* jal 870 */ > + stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x254a0001); /* addiu t2,t2,1 */ > + stl_p(p++, 0x258cffff); /* addiu t4,t4,-1 */ > + stl_p(p++, 0x1580fffa); /* bnez t4,84c */ > + stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x01a00009); /* jalr t5 */ > + stl_p(p++, 0x01602021); /* move a0,t3 */ > /* 0x870 */ > - stl_p(p++, 0x3c08b800); /* lui > t0,0xb400 */ > - stl_p(p++, 0x350803f8); /* ori > t0,t0,0x3f8 */ > - stl_p(p++, 0x91090005); /* lbu > t1,5(t0) */ > - stl_p(p++, 0x00000000); /* nop */ > - stl_p(p++, 0x31290040); /* andi > t1,t1,0x40 */ > - stl_p(p++, 0x1120fffc); /* beqz > t1,878 */ > - stl_p(p++, 0x00000000); /* nop */ > - stl_p(p++, 0x03e00009); /* jalr > ra */ > - stl_p(p++, 0xa1040000); /* sb > a0,0(t0) */ > + stl_p(p++, 0x3c08b800); /* lui t0,0xb400 */ > + stl_p(p++, 0x350803f8); /* ori t0,t0,0x3f8 */ > + stl_p(p++, 0x91090005); /* lbu t1,5(t0) */ > + stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x31290040); /* andi t1,t1,0x40 */ > + stl_p(p++, 0x1120fffc); /* beqz t1,878 */ > + stl_p(p++, 0x00000000); /* nop */ > + stl_p(p++, 0x03e00009); /* jalr ra */ > + stl_p(p++, 0xa1040000); /* sb a0,0(t0) */ > > } > > diff --git a/tests/acceptance/linux_ssh_mips_malta.py > b/tests/acceptance/linux_ssh_mips_malta.py > index fc13f9e..44e1118 100644 > --- a/tests/acceptance/linux_ssh_mips_malta.py > +++ b/tests/acceptance/linux_ssh_mips_malta.py > @@ -99,10 +99,12 @@ class LinuxSSH(Test): > def ssh_command(self, command, is_root=True): > self.ssh_logger.info(command) > result = self.ssh_session.cmd(command) > - stdout_lines = [line.rstrip() for line in > result.stdout_text.splitlines()] > + stdout_lines = [line.rstrip() for line > + in result.stdout_text.splitlines()] > for line in stdout_lines: > self.ssh_logger.info(line) > - stderr_lines = [line.rstrip() for line in > result.stderr_text.splitlines()] > + stderr_lines = [line.rstrip() for line > + in result.stderr_text.splitlines()] > for line in stderr_lines: > self.ssh_logger.warning(line) > return stdout_lines, stderr_lines > -- > 2.7.4 > > > --000000000000f1bef005989925f1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGJyPjxicj5PbiBNb25kYXksIE5vdmVtYmVyIDI1LCAyMDE5LCBGaWxpcCBCb3p1dGEgJmx0Ozxh IGhyZWY9Im1haWx0bzpGaWxpcC5Cb3p1dGFAcnQtcmsuY29tIj5GaWxpcC5Cb3p1dGFAcnQtcmsu Y29tPC9hPiZndDsgd3JvdGU6PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5 bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmct bGVmdDoxZXgiPlRoZSBzY3JpcHQgPGEgaHJlZj0iaHR0cDovL2NoZWNrcGF0Y2gucGwiIHRhcmdl dD0iX2JsYW5rIj5jaGVja3BhdGNoLnBsPC9hPiBsb2NhdGVkIGluIHNjcmlwdHMgZm9sZGVyIHdh czxicj4NCnVzZWQgdG8gZGV0ZWN0IGFsbCBlcnJvcnMgYW5kIHdhcnJuaW5ncyBpbiBmaWxlczo8 YnI+DQrCoCDCoCBody9taXBzL21pcHNfbWFsdGEuYzxicj4NCsKgIMKgIGh3L21pcHMvZ3Q2NHh4 eF9wY2kuYzxicj4NCsKgIMKgIHRlc3RzL2FjY2VwdGFuY2UvbGludXhfc3NoXzx3YnI+bWlwc19t YWx0YS5weTxicj4NCjxicj4NCkFsbCB0aGVzZSBtaXBzIG1hbHRhIG1hY2hpbmUgZmlsZXMgd2Vy ZSBlZGl0ZWQgYW5kPGJyPg0KYWxsIHRoZSBlcnJvcnMgYW5kIHdhcnJpbmdzIGdlbmVyYXRlZCBi eSB0aGUgPGEgaHJlZj0iaHR0cDovL2NoZWNrcGF0Y2gucGwiIHRhcmdldD0iX2JsYW5rIj5jaGVj a3BhdGNoLnBsPC9hPjxicj4NCnNjcmlwdCB3ZXJlIGNvcnJlY3RlZCBhbmQgdGhlbiB0aGUgc2Ny aXB0IHdhczxicj4NCnJhbiBhZ2FpbiB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIG1vcmUgZXJy b3JzIGFuZCB3YXJuaW5ncy48YnI+DQo8YnI+DQpTaWduZWQtb2ZmLWJ5OiBGaWxpcCBCb3p1dGEg Jmx0OzxhIGhyZWY9Im1haWx0bzpGaWxpcC5Cb3p1dGFAcnQtcmsuY29tIj5GaWxpcC5Cb3p1dGFA cnQtcmsuY29tPC9hPiZndDs8YnI+DQotLS08YnI+DQrCoGh3L21pcHMvbWlwc19tYWx0YS5jwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IDEzOSArKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS08d2JyPi08YnI+DQrCoHRlc3RzL2FjY2VwdGFuY2UvbGludXhfc3NoXzx3YnI+bWlw c19tYWx0YS5weSB8wqAgwqA2ICstPGJyPg0KwqAyIGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlv bnMoKyksIDcwIGRlbGV0aW9ucygtKTxicj4NCjxicj4NCmRpZmYgLS1naXQgYS9ody9taXBzL21p cHNfbWFsdGEuYyBiL2h3L21pcHMvbWlwc19tYWx0YS5jPGJyPg0KaW5kZXggOTJlOWNhNS4uMThl YWZhYyAxMDA2NDQ8YnI+DQotLS0gYS9ody9taXBzL21pcHNfbWFsdGEuYzxicj4NCisrKyBiL2h3 L21pcHMvbWlwc19tYWx0YS5jPGJyPg0KQEAgLTEzNyw3ICsxMzcsOCBAQCBzdGF0aWMgdm9pZCBt YWx0YV9mcGdhX3VwZGF0ZV9kaXNwbGF5KHZvaWQgKm9wYXF1ZSk8YnI+DQrCoCAqLzxicj4NCjxi cj4NCsKgI2lmIGRlZmluZWQoREVCVUcpPGJyPg0KLSPCoCBkZWZpbmUgbG9nb3V0KGZtdCwgLi4u KSBmcHJpbnRmKHN0ZGVyciwgJnF1b3Q7TUFMVEFcdCUtMjRzJnF1b3Q7IGZtdCwgX19mdW5jX18s ICMjIF9fVkFfQVJHU19fKTxicj4NCisjwqAgZGVmaW5lIGxvZ291dChmbXQsIC4uLikgXDxicj4N CivCoCDCoCDCoCDCoCDCoCBmcHJpbnRmKHN0ZGVyciwgJnF1b3Q7TUFMVEFcdCUtMjRzJnF1b3Q7 IGZtdCwgX19mdW5jX18sICMjIF9fVkFfQVJHU19fKTxicj4NCsKgI2Vsc2U8YnI+DQrCoCPCoCBk ZWZpbmUgbG9nb3V0KGZtdCwgLi4uKSAoKHZvaWQpMCk8YnI+DQrCoCNlbmRpZjxicj4NCkBAIC01 NjksNyArNTcwLDcgQEAgc3RhdGljIE1hbHRhRlBHQVN0YXRlICptYWx0YV9mcGdhX2luaXQoTWVt b3J5UmVnaW9uICphZGRyZXNzX3NwYWNlLDxicj4NCsKgIMKgIMKgTWFsdGFGUEdBU3RhdGUgKnM7 PGJyPg0KwqAgwqAgwqBDaGFyZGV2ICpjaHI7PGJyPg0KPGJyPg0KLcKgIMKgIHMgPSAoTWFsdGFG UEdBU3RhdGUgKilnX21hbGxvYzAoc2l6ZW9mKDx3YnI+TWFsdGFGUEdBU3RhdGUpKTs8YnI+DQor wqAgwqAgcyA9IChNYWx0YUZQR0FTdGF0ZSAqKWdfbmV3MChzaXplb2YoPHdicj5NYWx0YUZQR0FT dGF0ZSkpOzxicj4NCjxicj4NCsKgIMKgIMKgbWVtb3J5X3JlZ2lvbl9pbml0X2lvKCZhbXA7cy0m Z3Q7PHdicj5pb21lbSwgTlVMTCwgJmFtcDttYWx0YV9mcGdhX29wcywgcyw8YnI+DQrCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCZxdW90O21hbHRhLWZwZ2EmcXVvdDss IDB4MTAwMDAwKTs8YnI+DQpAQCAtODQ0LDkgKzg0NSw5IEBAIHN0YXRpYyB2b2lkIHdyaXRlX2Jv b3Rsb2FkZXIodWludDhfdCAqYmFzZSwgaW50NjRfdCBydW5fYWRkciw8YnI+DQrCoCDCoCDCoC8q IFNtYWxsIGJvb3Rsb2FkZXIgKi88YnI+DQrCoCDCoCDCoHAgPSAodWludDMyX3QgKiliYXNlOzxi cj4NCjxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4MDgwMDAwMDAgfMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGogMHgxZmMwMDU4MCAq Lzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MDgwMDAwMDAgfMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogaiAweDFmYzAwNTgwICovPGJyPg0K wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgKChydW5fYWRkciArIDB4NTgwKSAmYW1wOyAweDBm ZmZmZmZmKSAmZ3Q7Jmd0OyAyKTs8YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDAwMDAwMDAwKTvC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAv KiBub3AgKi88YnI+DQorwqAgwqAgc3RsX3AocCsrLCAweDAwMDAwMDAwKTvCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC8qIG5vcCAqLzxicj4NCjxi cj4NCsKgIMKgIMKgLyogWUFNT04gc2VydmljZSB2ZWN0b3IgKi88YnI+DQrCoCDCoCDCoHN0bF9w KGJhc2UgKyAweDUwMCwgcnVuX2FkZHIgKyAweDA1ODApO8KgIMKgIMKgIC8qIHN0YXJ0OiAqLzxi cj4NCkBAIC04OTIsMTA0ICs4OTMsMTA2IEBAIHN0YXRpYyB2b2lkIHdyaXRlX2Jvb3Rsb2FkZXIo dWludDhfdCAqYmFzZSwgaW50NjRfdCBydW5fYWRkciw8YnI+DQrCoCDCoCDCoHN0bF9wKHArKywg MHgzNGU3MDAwMCB8IChsb2FkZXJwYXJhbXMucmFtX2xvd19zaXplICZhbXA7IDB4ZmZmZikpOzxi cj4NCjxicj4NCsKgIMKgIMKgLyogTG9hZCBCQVIgcmVnaXN0ZXJzIGFzIGRvbmUgYnkgWUFNT04g Ki88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDNjMDliNDAwKTvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBsdWkgdDEsIDB4YjQwMCAq Lzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4M2MwOWI0MDApO8KgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgLyogbHVpIHQxLCAweGI0MDAgKi88YnI+DQo8YnI+PC9ibG9ja3F1b3RlPjxkaXY+PGJy PjwvZGl2PjxkaXY+U29ycnksIEZpbGlwLCDCoGp1c3QgYW4gYWRkaXRpb25hbCB0aGluZzogdGhl IGZpcnN0IHNldmVyYWwgY29tbWVudHMgaW4gdGhlIG5ldyBhcnJhbmdlbWVudCBkb24mIzM5O3Qg YmVnaW4gYXQgdGhlIHNhbWUgbGluZSBhcyB0aGUgcmVzdCBvZiBjb21tZW50cy4gQnV0IEkgY2Fu IGZpeCBpdCB3aGlsZSBhcHBseWluZywgbm8gbmVlZCBmb3IgeW91IHRvIHNlbmQgdjIgYmVhY2F1 c2Ugb2YgdGhpcy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRoYW5rcyw8L2Rpdj48ZGl2PkFs ZWtzYW5kYXI8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PsKgPC9kaXY+PGJsb2NrcXVvdGUgY2xh c3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4 ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+DQrCoCNpZmRlZiBUQVJHRVRfV09SRFNfQklH RU5ESUFOPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgzYzA4ZGYwMCk7wqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogbHVpIHQwLCAweGRm MDAgKi88YnI+DQorwqAgwqAgc3RsX3AocCsrLCAweDNjMDhkZjAwKTvCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCAvKiBsdWkgdDAsIDB4ZGYwMCAqLzxicj4NCsKgI2Vsc2U8YnI+DQotwqAgwqAg c3RsX3AocCsrLCAweDM0MDgwMGRmKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBvcmkgdDAsIHIwLCAweDAwZGYgKi88YnI+DQorwqAg wqAgc3RsX3AocCsrLCAweDM0MDgwMGRmKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBv cmkgdDAsIHIwLCAweDAwZGYgKi88YnI+DQrCoCNlbmRpZjxicj4NCi3CoCDCoCBzdGxfcChwKyss IDB4YWQyODAwNjgpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIC8qIHN3IHQwLCAweDAwNjgodDEpICovPGJyPg0KK8KgIMKgIHN0bF9wKHAr KywgMHhhZDI4MDA2OCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogc3cgdDAsIDB4MDA2 OCh0MSkgKi88YnI+DQo8YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDNjMDliYmUwKTvCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBsdWkg dDEsIDB4YmJlMCAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4M2MwOWJiZTApO8KgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIC8qIGx1aSB0MSwgMHhiYmUwICovPGJyPg0KPGJyPg0KwqAjaWZk ZWYgVEFSR0VUX1dPUkRTX0JJR0VORElBTjxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4M2MwOGMw MDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIC8qIGx1aSB0MCwgMHhjMDAwICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgzYzA4YzAw MCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogbHVpIHQwLCAweGMwMDAgKi88YnI+DQrC oCNlbHNlPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgzNDA4MDBjMCk7wqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwg MHgwMGMwICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgzNDA4MDBjMCk7wqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwgMHgwMGMwICovPGJyPg0KwqAjZW5kaWY8YnI+ DQotwqAgwqAgc3RsX3AocCsrLCAweGFkMjgwMDQ4KTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBzdyB0MCwgMHgwMDQ4KHQxKSAqLzxi cj4NCivCoCDCoCBzdGxfcChwKyssIDB4YWQyODAwNDgpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIC8qIHN3IHQwLCAweDAwNDgodDEpICovPGJyPg0KwqAjaWZkZWYgVEFSR0VUX1dPUkRTX0JJ R0VORElBTjxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4M2MwODQwMDApO8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGx1aSB0MCwgMHg0 MDAwICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgzYzA4NDAwMCk7wqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgLyogbHVpIHQwLCAweDQwMDAgKi88YnI+DQrCoCNlbHNlPGJyPg0KLcKgIMKg IHN0bF9wKHArKywgMHgzNDA4MDA0MCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwgMHgwMDQwICovPGJyPg0KK8Kg IMKgIHN0bF9wKHArKywgMHgzNDA4MDA0MCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyog b3JpIHQwLCByMCwgMHgwMDQwICovPGJyPg0KwqAjZW5kaWY8YnI+DQotwqAgwqAgc3RsX3AocCsr LCAweGFkMjgwMDUwKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCAvKiBzdyB0MCwgMHgwMDUwKHQxKSAqLzxicj4NCivCoCDCoCBzdGxfcChw KyssIDB4YWQyODAwNTApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIHN3IHQwLCAweDAw NTAodDEpICovPGJyPg0KPGJyPg0KwqAjaWZkZWYgVEFSR0VUX1dPUkRTX0JJR0VORElBTjxicj4N Ci3CoCDCoCBzdGxfcChwKyssIDB4M2MwODgwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGx1aSB0MCwgMHg4MDAwICovPGJyPg0K K8KgIMKgIHN0bF9wKHArKywgMHgzYzA4ODAwMCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg LyogbHVpIHQwLCAweDgwMDAgKi88YnI+DQrCoCNlbHNlPGJyPg0KLcKgIMKgIHN0bF9wKHArKywg MHgzNDA4MDA4MCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwgMHgwMDgwICovPGJyPg0KK8KgIMKgIHN0bF9wKHAr KywgMHgzNDA4MDA4MCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwg MHgwMDgwICovPGJyPg0KwqAjZW5kaWY8YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweGFkMjgwMDU4 KTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCAvKiBzdyB0MCwgMHgwMDU4KHQxKSAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4YWQyODAw NTgpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIHN3IHQwLCAweDAwNTgodDEpICovPGJy Pg0KwqAjaWZkZWYgVEFSR0VUX1dPUkRTX0JJR0VORElBTjxicj4NCi3CoCDCoCBzdGxfcChwKyss IDB4M2MwODNmMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIC8qIGx1aSB0MCwgMHgzZjAwICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywg MHgzYzA4M2YwMCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogbHVpIHQwLCAweDNmMDAg Ki88YnI+DQrCoCNlbHNlPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgzNDA4MDAzZik7wqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogb3Jp IHQwLCByMCwgMHgwMDNmICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgzNDA4MDAzZik7wqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwgMHgwMDNmICovPGJyPg0KwqAj ZW5kaWY8YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweGFkMjgwMDYwKTvCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBzdyB0MCwgMHgwMDYw KHQxKSAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4YWQyODAwNjApO8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIC8qIHN3IHQwLCAweDAwNjAodDEpICovPGJyPg0KPGJyPg0KwqAjaWZkZWYg VEFSR0VUX1dPUkRTX0JJR0VORElBTjxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4M2MwOGMxMDAp O8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IC8qIGx1aSB0MCwgMHhjMTAwICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgzYzA4YzEwMCk7 wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogbHVpIHQwLCAweGMxMDAgKi88YnI+DQrCoCNl bHNlPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgzNDA4MDBjMSk7wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwgMHgw MGMxICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgzNDA4MDBjMSk7wqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwgMHgwMGMxICovPGJyPg0KwqAjZW5kaWY8YnI+DQot wqAgwqAgc3RsX3AocCsrLCAweGFkMjgwMDgwKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBzdyB0MCwgMHgwMDgwKHQxKSAqLzxicj4N CivCoCDCoCBzdGxfcChwKyssIDB4YWQyODAwODApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IC8qIHN3IHQwLCAweDAwODAodDEpICovPGJyPg0KwqAjaWZkZWYgVEFSR0VUX1dPUkRTX0JJR0VO RElBTjxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4M2MwODVlMDApO8KgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGx1aSB0MCwgMHg1ZTAw ICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgzYzA4NWUwMCk7wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgLyogbHVpIHQwLCAweDVlMDAgKi88YnI+DQrCoCNlbHNlPGJyPg0KLcKgIMKgIHN0 bF9wKHArKywgMHgzNDA4MDA1ZSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogb3JpIHQwLCByMCwgMHgwMDVlICovPGJyPg0KK8KgIMKg IHN0bF9wKHArKywgMHgzNDA4MDA1ZSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogb3Jp IHQwLCByMCwgMHgwMDVlICovPGJyPg0KwqAjZW5kaWY8YnI+DQotwqAgwqAgc3RsX3AocCsrLCAw eGFkMjgwMDg4KTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCAvKiBzdyB0MCwgMHgwMDg4KHQxKSAqLzxicj4NCivCoCDCoCBzdGxfcChwKyss IDB4YWQyODAwODgpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIHN3IHQwLCAweDAwODgo dDEpICovPGJyPg0KPGJyPg0KwqAgwqAgwqAvKiBKdW1wIHRvIGtlcm5lbCBjb2RlICovPGJyPg0K LcKgIMKgIHN0bF9wKHArKywgMHgzYzFmMDAwMCB8ICgoa2VybmVsX2VudHJ5ICZndDsmZ3Q7IDE2 KSAmYW1wOyAweGZmZmYpKTvCoCDCoCAvKiBsdWkgcmEsIGhpZ2goa2VybmVsX2VudHJ5KSAqLzxi cj4NCi3CoCDCoCBzdGxfcChwKyssIDB4MzdmZjAwMDAgfCAoa2VybmVsX2VudHJ5ICZhbXA7IDB4 ZmZmZikpO8KgIMKgIMKgIMKgIMKgIMKgIC8qIG9yaSByYSwgcmEsIGxvdyhrZXJuZWxfZW50cnkp ICovPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgwM2UwMDAwOSk7wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogamFsciByYSAqLzxicj4N Ci3CoCDCoCBzdGxfcChwKyssIDB4MDAwMDAwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIG5vcCAqLzxicj4NCivCoCDCoCBzdGxf cChwKyssIDB4M2MxZjAwMDAgfDxicj4NCivCoCDCoCDCoCDCoCDCoCAoKGtlcm5lbF9lbnRyeSAm Z3Q7Jmd0OyAxNikgJmFtcDsgMHhmZmZmKSk7wqAgLyogbHVpIHJhLCBoaWdoKGtlcm5lbF9lbnRy eSkgKi88YnI+DQorwqAgwqAgc3RsX3AocCsrLCAweDM3ZmYwMDAwIHw8YnI+DQorwqAgwqAgwqAg wqAgwqAgKGtlcm5lbF9lbnRyeSAmYW1wOyAweGZmZmYpKTvCoCDCoCDCoCDCoCDCoCAvKiBvcmkg cmEsIHJhLCBsb3coa2VybmVsX2VudHJ5KSAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MDNl MDAwMDkpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGphbHIgcmEgKi88YnI+DQorwqAg wqAgc3RsX3AocCsrLCAweDAwMDAwMDAwKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBu b3AgKi88YnI+DQo8YnI+DQrCoCDCoCDCoC8qIFlBTU9OIHN1YnJvdXRpbmVzICovPGJyPg0KwqAg wqAgwqBwID0gKHVpbnQzMl90ICopIChiYXNlICsgMHg4MDApOzxicj4NCi3CoCDCoCBzdGxfcChw KyssIDB4MDNlMDAwMDkpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgLyogamFsciByYSAqLzxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4MjQw MjAwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgLyogbGkgdjAsMCAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MDNlMDAwMDkpO8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGphbHIgcmEgKi88YnI+DQorwqAgwqAgc3RsX3Ao cCsrLCAweDI0MDIwMDAwKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBsaSB2MCwwICov PGJyPg0KwqAgwqAgwqAvKiA4MDggWUFNT04gcHJpbnQgKi88YnI+DQotwqAgwqAgc3RsX3AocCsr LCAweDAzZTA2ODIxKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoC8qIG1vdmUgdDUscmEgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDAw ODA1ODIxKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoC8qIG1vdmUgdDMsYTAgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDAwYTA1MDIx KTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oC8qIG1vdmUgdDIsYTEgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDkxNDQwMDAwKTvCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC8qIGxi dSBhMCwwKHQyKSAqLzxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4MjU0YTAwMDEpO8KgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogYWRkaXUg dDIsdDIsMSAqLzxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4MTA4MDAwMDUpO8KgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogYmVxeiBhMCw4 MzQgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDAwMDAwMDAwKTvCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC8qIG5vcCAqLzxicj4NCi3C oCDCoCBzdGxfcChwKyssIDB4MGZmMDAyMWMpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogamFsIDg3MCAqLzxicj4NCi3CoCDCoCBzdGxf cChwKyssIDB4MDAwMDAwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgLyogbm9wICovPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgxMDAw ZmZmOSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAvKiBiIDgxNCAqLzxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4MDAwMDAwMDApO8KgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogbm9w ICovPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgwMWEwMDAwOSk7wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBqYWxyIHQ1ICovPGJyPg0K LcKgIMKgIHN0bF9wKHArKywgMHgwMTYwMjAyMSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBtb3ZlIGEwLHQzICovPGJyPg0KK8KgIMKg IHN0bF9wKHArKywgMHgwM2UwNjgyMSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogbW92 ZSB0NSxyYSAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MDA4MDU4MjEpO8KgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIC8qIG1vdmUgdDMsYTAgKi88YnI+DQorwqAgwqAgc3RsX3AocCsrLCAw eDAwYTA1MDIxKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBtb3ZlIHQyLGExICovPGJy Pg0KK8KgIMKgIHN0bF9wKHArKywgMHg5MTQ0MDAwMCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgLyogbGJ1IGEwLDAodDIpICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgyNTRhMDAwMSk7 wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogYWRkaXUgdDIsdDIsMSAqLzxicj4NCivCoCDC oCBzdGxfcChwKyssIDB4MTA4MDAwMDUpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGJl cXogYTAsODM0ICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgwMDAwMDAwMCk7wqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgLyogbm9wICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgwZmYw MDIxYyk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogamFsIDg3MCAqLzxicj4NCivCoCDC oCBzdGxfcChwKyssIDB4MDAwMDAwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIG5v cCAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MTAwMGZmZjkpO8KgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIC8qIGIgODE0ICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgwMDAwMDAwMCk7 wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogbm9wICovPGJyPg0KK8KgIMKgIHN0bF9wKHAr KywgMHgwMWEwMDAwOSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogamFsciB0NSAqLzxi cj4NCivCoCDCoCBzdGxfcChwKyssIDB4MDE2MDIwMjEpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIC8qIG1vdmUgYTAsdDMgKi88YnI+DQrCoCDCoCDCoC8qIDB4ODNjIFlBTU9OIHByaW50X2Nv dW50ICovPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgwM2UwNjgyMSk7wqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBtb3ZlIHQ1LHJhICov PGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgwMDgwNTgyMSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBtb3ZlIHQzLGEwICovPGJyPg0K LcKgIMKgIHN0bF9wKHArKywgMHgwMGEwNTAyMSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBtb3ZlIHQyLGExICovPGJyPg0KLcKgIMKg IHN0bF9wKHArKywgMHgwMGMwNjAyMSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBtb3ZlIHQ0LGEyICovPGJyPg0KLcKgIMKgIHN0bF9w KHArKywgMHg5MTQ0MDAwMCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAvKiBsYnUgYTAsMCh0MikgKi88YnI+DQotwqAgwqAgc3RsX3AocCsr LCAweDBmZjAwMjFjKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoC8qIGphbCA4NzAgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDAwMDAw MDAwKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoC8qIG5vcCAqLzxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4MjU0YTAwMDEpO8KgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogYWRkaXUg dDIsdDIsMSAqLzxicj4NCi3CoCDCoCBzdGxfcChwKyssIDB4MjU4Y2ZmZmYpO8KgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogYWRkaXUgdDQs dDQsLTEgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDE1ODBmZmZhKTvCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC8qIGJuZXogdDQsODRj ICovPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgwMDAwMDAwMCk7wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBub3AgKi88YnI+DQotwqAg wqAgc3RsX3AocCsrLCAweDAxYTAwMDA5KTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC8qIGphbHIgdDUgKi88YnI+DQotwqAgwqAgc3RsX3Ao cCsrLCAweDAxNjAyMDIxKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoC8qIG1vdmUgYTAsdDMgKi88YnI+DQorwqAgwqAgc3RsX3AocCsrLCAw eDAzZTA2ODIxKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBtb3ZlIHQ1LHJhICovPGJy Pg0KK8KgIMKgIHN0bF9wKHArKywgMHgwMDgwNTgyMSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgLyogbW92ZSB0MyxhMCAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MDBhMDUwMjEpO8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIG1vdmUgdDIsYTEgKi88YnI+DQorwqAgwqAgc3Rs X3AocCsrLCAweDAwYzA2MDIxKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBtb3ZlIHQ0 LGEyICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHg5MTQ0MDAwMCk7wqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgLyogbGJ1IGEwLDAodDIpICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgw ZmYwMDIxYyk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogamFsIDg3MCAqLzxicj4NCivC oCDCoCBzdGxfcChwKyssIDB4MDAwMDAwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8q IG5vcCAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MjU0YTAwMDEpO8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIC8qIGFkZGl1IHQyLHQyLDEgKi88YnI+DQorwqAgwqAgc3RsX3AocCsrLCAw eDI1OGNmZmZmKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBhZGRpdSB0NCx0NCwtMSAq Lzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MTU4MGZmZmEpO8KgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIC8qIGJuZXogdDQsODRjICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgwMDAwMDAw MCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogbm9wICovPGJyPg0KK8KgIMKgIHN0bF9w KHArKywgMHgwMWEwMDAwOSk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogamFsciB0NSAq Lzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MDE2MDIwMjEpO8KgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIC8qIG1vdmUgYTAsdDMgKi88YnI+DQrCoCDCoCDCoC8qIDB4ODcwICovPGJyPg0KLcKg IMKgIHN0bF9wKHArKywgMHgzYzA4YjgwMCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBsdWkgdDAsMHhiNDAwICovPGJyPg0KLcKgIMKg IHN0bF9wKHArKywgMHgzNTA4MDNmOCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBvcmkgdDAsdDAsMHgzZjggKi88YnI+DQotwqAgwqAg c3RsX3AocCsrLCAweDkxMDkwMDA1KTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoC8qIGxidSB0MSw1KHQwKSAqLzxicj4NCi3CoCDCoCBzdGxf cChwKyssIDB4MDAwMDAwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgLyogbm9wICovPGJyPg0KLcKgIMKgIHN0bF9wKHArKywgMHgzMTI5 MDA0MCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAvKiBhbmRpIHQxLHQxLDB4NDAgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDExMjBm ZmZjKTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoC8qIGJlcXogdDEsODc4ICZsdDtvdXRjaCsweDgmZ3Q7ICovPGJyPg0KLcKgIMKgIHN0bF9w KHArKywgMHgwMDAwMDAwMCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAvKiBub3AgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweDAzZTAw MDA5KTvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoC8qIGphbHIgcmEgKi88YnI+DQotwqAgwqAgc3RsX3AocCsrLCAweGExMDQwMDAwKTvCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC8qIHNi IGEwLDAodDApICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgzYzA4YjgwMCk7wqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgLyogbHVpIHQwLDB4YjQwMCAqLzxicj4NCivCoCDCoCBzdGxfcChw KyssIDB4MzUwODAzZjgpO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIG9yaSB0MCx0MCww eDNmOCAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4OTEwOTAwMDUpO8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIC8qIGxidSB0MSw1KHQwKSAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4 MDAwMDAwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIG5vcCAqLzxicj4NCivCoCDC oCBzdGxfcChwKyssIDB4MzEyOTAwNDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGFu ZGkgdDEsdDEsMHg0MCAqLzxicj4NCivCoCDCoCBzdGxfcChwKyssIDB4MTEyMGZmZmMpO8KgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIGJlcXogdDEsODc4ICZsdDtvdXRjaCsweDgmZ3Q7ICov PGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgwMDAwMDAwMCk7wqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgLyogbm9wICovPGJyPg0KK8KgIMKgIHN0bF9wKHArKywgMHgwM2UwMDAwOSk7wqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogamFsciByYSAqLzxicj4NCivCoCDCoCBzdGxfcChwKyss IDB4YTEwNDAwMDApO8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIHNiIGEwLDAodDApICov PGJyPg0KPGJyPg0KwqB9PGJyPg0KPGJyPg0KZGlmZiAtLWdpdCBhL3Rlc3RzL2FjY2VwdGFuY2Uv bGludXhfc3NoXzx3YnI+bWlwc19tYWx0YS5weSBiL3Rlc3RzL2FjY2VwdGFuY2UvbGludXhfc3No Xzx3YnI+bWlwc19tYWx0YS5weTxicj4NCmluZGV4IGZjMTNmOWUuLjQ0ZTExMTggMTAwNjQ0PGJy Pg0KLS0tIGEvdGVzdHMvYWNjZXB0YW5jZS9saW51eF9zc2hfPHdicj5taXBzX21hbHRhLnB5PGJy Pg0KKysrIGIvdGVzdHMvYWNjZXB0YW5jZS9saW51eF9zc2hfPHdicj5taXBzX21hbHRhLnB5PGJy Pg0KQEAgLTk5LDEwICs5OSwxMiBAQCBjbGFzcyBMaW51eFNTSChUZXN0KTo8YnI+DQrCoCDCoCDC oGRlZiBzc2hfY29tbWFuZChzZWxmLCBjb21tYW5kLCBpc19yb290PVRydWUpOjxicj4NCsKgIMKg IMKgIMKgIMKgPGEgaHJlZj0iaHR0cDovL3NlbGYuc3NoX2xvZ2dlci5pbmZvIiB0YXJnZXQ9Il9i bGFuayI+c2VsZi5zc2hfbG9nZ2VyLmluZm88L2E+KGNvbW1hbmQpPGJyPg0KwqAgwqAgwqAgwqAg wqByZXN1bHQgPSBzZWxmLnNzaF9zZXNzaW9uLmNtZChjb21tYW5kKTxicj4NCi3CoCDCoCDCoCDC oCBzdGRvdXRfbGluZXMgPSBbbGluZS5yc3RyaXAoKSBmb3IgbGluZSBpbiByZXN1bHQuc3Rkb3V0 X3RleHQuc3BsaXRsaW5lcyg8d2JyPildPGJyPg0KK8KgIMKgIMKgIMKgIHN0ZG91dF9saW5lcyA9 IFtsaW5lLnJzdHJpcCgpIGZvciBsaW5lPGJyPg0KK8KgIMKgIMKgIMKgIGluIHJlc3VsdC5zdGRv dXRfdGV4dC5zcGxpdGxpbmVzKDx3YnI+KV08YnI+DQrCoCDCoCDCoCDCoCDCoGZvciBsaW5lIGlu IHN0ZG91dF9saW5lczo8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoDxhIGhyZWY9Imh0dHA6Ly9z ZWxmLnNzaF9sb2dnZXIuaW5mbyIgdGFyZ2V0PSJfYmxhbmsiPnNlbGYuc3NoX2xvZ2dlci5pbmZv PC9hPihsaW5lKTxicj4NCi3CoCDCoCDCoCDCoCBzdGRlcnJfbGluZXMgPSBbbGluZS5yc3RyaXAo KSBmb3IgbGluZSBpbiByZXN1bHQuc3RkZXJyX3RleHQuc3BsaXRsaW5lcyg8d2JyPildPGJyPg0K K8KgIMKgIMKgIMKgIHN0ZGVycl9saW5lcyA9IFtsaW5lLnJzdHJpcCgpIGZvciBsaW5lPGJyPg0K K8KgIMKgIMKgIMKgIGluIHJlc3VsdC5zdGRlcnJfdGV4dC5zcGxpdGxpbmVzKDx3YnI+KV08YnI+ DQrCoCDCoCDCoCDCoCDCoGZvciBsaW5lIGluIHN0ZGVycl9saW5lczo8YnI+DQrCoCDCoCDCoCDC oCDCoCDCoCDCoHNlbGYuc3NoX2xvZ2dlci53YXJuaW5nKGxpbmUpPGJyPg0KwqAgwqAgwqAgwqAg wqByZXR1cm4gc3Rkb3V0X2xpbmVzLCBzdGRlcnJfbGluZXM8YnI+DQotLSA8YnI+DQoyLjcuNDxi cj4NCjxicj4NCjxicj4NCjwvYmxvY2txdW90ZT4NCg== --000000000000f1bef005989925f1--