From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24770 invoked by alias); 27 Sep 2018 16:27:24 -0000 Mailing-List: contact gnu-gabi-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: gnu-gabi-owner@sourceware.org Received: (qmail 24745 invoked by uid 89); 27 Sep 2018 16:27:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.1 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=H*f:sk:0d529e7, H*i:sk:0d529e7 X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-ot1-f50.google.com Received: from mail-ot1-f50.google.com (HELO mail-ot1-f50.google.com) (209.85.210.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 27 Sep 2018 16:27:22 +0000 Received: by mail-ot1-f50.google.com with SMTP id c18-v6so3176148otm.3; Thu, 27 Sep 2018 09:27:21 -0700 (PDT) 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=6/el8ECUJligwViF7dmvMY+TduYYgs0qtqxZmBPvC7Y=; b=kATR1CQwpW+8qxs6gc1o3hDoh17CaDtbh/y+qFY1sSPXrvy9ODAwrthWMZ6i/MvgWf O7bppyMNZYUyzCZUnSVqQtvWbhk6lGh5SC3y4PLrm6YsG3Tvk9vmkal5Il1MDk2cfgI4 9kdGjpiuvkzU30yutjtlugqHH6RQi1Q1EaDRYPoXYHZRC1WGN4WmRgKpnHKCeJBc3UDQ ipY1JLtB5Kkbfuu/13zZS80AWbvjSEM0w3Ike2eS4UuKbE75SIfIiLMPvEFA3ybBSFw+ 26dUaBRHG+VTIR9b3E7BJyzF9sty2bmMChC/JZ7Jeh9E3PeZKOeqZqMl9QMBTIE6ciOJ ufhg== 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=6/el8ECUJligwViF7dmvMY+TduYYgs0qtqxZmBPvC7Y=; b=Z779q1ibA4zRAWDplq02CgaJKuINX2zY0z9p+CtZBV5ES7xb05i58fcuPYDwwMw4cw l2ORBSDUhxqjCqauP1hjuRpl0Xl1JO2h1shDOlYkJyfRmiWKMKi60jFIUz1GPqjnnYL+ w+3fkRvx/jt4Kq3XqT52xUfMiTMSEWdtTNhpFZzLfWidd8pRuf7s5aT8EARV3/Ao0qEs gqdMJkN3paX2pT8DiXTZAdwmA1bgrzLY67m/HaGFnwuKaNYYHZEXHX9J5vreElZMnAzQ A/xjFAOlPzQajdBcqdxPtpWMtJTSztVEUiT25G7tMfwylYJAz5yqBaMwwXMhDR2bHgZ9 Z0hg== X-Gm-Message-State: ABuFfoj8/SHGPK7FtDBrBG9hRCyOMYaSDHmVWUSR8QGdJoipiLanLEww FliFqoirSB698AseXDL9AllhGwCW7V5a1+tWtqLIGGO6 X-Google-Smtp-Source: ACcGV61m3Q2x/O6p0WrIaAOu4NzOzAI6v8Azvbff0riXSEJHhFS6brBHHjXVM1WTK9OEF305aKMM4DcX73S5E+3rSEw= X-Received: by 2002:a9d:1903:: with SMTP id j3-v6mr7279922ota.104.1538065640007; Thu, 27 Sep 2018 09:27:20 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:4d44:0:0:0:0:0 with HTTP; Thu, 27 Sep 2018 09:26:39 -0700 (PDT) In-Reply-To: <0d529e75-beb2-3ba6-f4cc-e99d50880220@redhat.com> References: <87tvmbv8hp.fsf@oldenburg.str.redhat.com> <5BAC7D6802000078001EC6D1@prv1-mh.provo.novell.com> <87pnwzuz8r.fsf@oldenburg.str.redhat.com> <20180927103539.GJ10209@port70.net> <87va6rqfg6.fsf@oldenburg.str.redhat.com> <87r2hfqes1.fsf@oldenburg.str.redhat.com> <73bd396c-43be-2922-fce4-17ee835d862e@redhat.com> <0d529e75-beb2-3ba6-f4cc-e99d50880220@redhat.com> From: "H.J. Lu" Date: Mon, 01 Jan 2018 00:00:00 -0000 Message-ID: Subject: Re: RFC: Add SHT_GNU_PHDRS To: "Carlos O'Donell" Cc: Florian Weimer , Szabolcs Nagy , Jan Beulich , Rich Felker , Binutils , gnu-gabi@sourceware.org Content-Type: multipart/mixed; boundary="0000000000001dd25c0576dcd003" X-IsSubscribed: yes X-SW-Source: 2018-q3/txt/msg00022.txt.bz2 --0000000000001dd25c0576dcd003 Content-Type: text/plain; charset="UTF-8" Content-length: 5881 On Thu, Sep 27, 2018 at 8:18 AM, Carlos O'Donell wrote: > On 9/27/18 9:20 AM, H.J. Lu wrote: >> On Thu, Sep 27, 2018 at 6:07 AM, Carlos O'Donell wrote: >>> On 9/27/18 8:57 AM, Florian Weimer wrote: >>>> * H. J. Lu: >>>> >>>>> On Thu, Sep 27, 2018 at 5:42 AM, Florian Weimer wrote: >>>>>> * H. J. Lu: >>>>>> >>>>>>> On Thu, Sep 27, 2018 at 3:35 AM, Szabolcs Nagy wrote: >>>>>>>> an alloc .phdr section covering the program headers solves >>>>>>>> this problem. if sections are not required for segments >>>>>>>> then simply the linker should ensure that there is always >>>>>>>> a load segment covering the program headers, possibly >>>>>>>> without containing any sections, however elf says >>>>>>>> "An object file segment contains one or more sections". >>>>>>>> >>>>>>>> i don't understand why a zero-size section is enough, what >>>>>>>> if phdr > pagesize? will that get covered by the load >>>>>>>> segment that is created for the zero-size section? >>>>>>> >>>>>>> Linker must keep this zero-size section in output and >>>>>>> create a PT_LOAD segment to cover it even if it is >>>>>>> the only SHF_ALLOC section in the PT_LOAD segment. >>>>>> >>>>>> Based on Szabolcs' comment, I don't think the section can be zero-sized. >>>>>> >>>>> >>>>> Why can't we put a zero-size section in a PT_LOAD segment? >>>>> Of course, we need to change linker to do it. >>>> >>>> I'm now under the impression that the bits that are PT_LOAD'ed all need >>>> to be covered by (allocated) sections. A zero-sized section doesn't >>>> cover anything, so it doesn't address this requirement of the ELF >> >> It depends on how we define it. I did experiment SHT_GNU_PHDRS >> to cover the whole program header. But other tools don't expect a >> section covering the program header. > > Which other tools? Specific examples please. Please see the enclosed binary where SHT_GNU_PHDRS section covers the whole program header: [hjl@gnu-cfl-1 ld]$ ../binutils/readelf -lSW foo There are 14 section headers, starting at offset 0x2f00: Section Headers: [Nr] Name Type Address Off Size ES Flg Lk Inf Al [ 0] NULL 0000000000000000 000000 000000 00 0 0 0 [ 1] .gnu.phdrs GNU_PHDRS 0000000000400040 000040 0000e0 38 A 0 0 8 [ 2] .text PROGBITS 0000000000401000 001000 00014b 00 AX 0 0 16 [ 3] .rodata PROGBITS 0000000000402000 002000 000006 00 A 0 0 1 [ 4] .comment PROGBITS 0000000000000000 002006 00002c 01 MS 0 0 1 [ 5] .debug_aranges PROGBITS 0000000000000000 002040 000060 00 0 0 16 [ 6] .debug_info PROGBITS 0000000000000000 0020a0 000482 00 0 0 1 [ 7] .debug_abbrev PROGBITS 0000000000000000 002522 00016d 00 0 0 1 [ 8] .debug_line PROGBITS 0000000000000000 00268f 000248 00 0 0 1 [ 9] .debug_frame PROGBITS 0000000000000000 0028d8 000040 00 0 0 8 [10] .debug_str PROGBITS 0000000000000000 002918 000374 01 MS 0 0 1 [11] .symtab SYMTAB 0000000000000000 002c90 0001b0 18 12 12 8 [12] .strtab STRTAB 0000000000000000 002e40 000030 00 0 0 1 [13] .shstrtab STRTAB 0000000000000000 002e70 00008a 00 0 0 1 Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings), I (info), L (link order), O (extra OS processing required), G (group), T (TLS), C (compressed), x (unknown), o (OS specific), E (exclude), l (large), p (processor specific) Elf file type is EXEC (Executable file) Entry point 0x401000 There are 4 program headers, starting at offset 64 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x000000 0x0000000000400000 0x0000000000400000 0x000120 0x000120 R 0x1000 LOAD 0x001000 0x0000000000401000 0x0000000000401000 0x00014b 0x00014b R E 0x1000 LOAD 0x002000 0x0000000000402000 0x0000000000402000 0x000006 0x000006 R 0x1000 GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x10 Section to Segment mapping: Segment Sections... 00 .gnu.phdrs 01 .text 02 .rodata 03 [hjl@gnu-cfl-1 ld]$ ./foo PASS [hjl@gnu-cfl-1 ld]$ ../binutils/objcopy ./foo bar ../binutils/objcopy: bar: section .gnu.phdrs lma 0x400040 adjusted to 0x401040 [hjl@gnu-cfl-1 ld]$ I can fix objcopy. Other tools may also need adjustment. > The main problem we have to solve is: > > * Segfault when trying to access program headers which are expected to be > mapped in by the leading pages of the PT_LOAD segment. > > We can't solve *all* the problems. > > The correct solution to the above is to improve the semantics that the > toolchain relies upon to map the phdrs. > > Some questions which we might get asked is: > > * How does a running program know it's *safe* to look at it's own phdrs? > > * How many downstream tools are impacted? Do they really need to understand > SHT_GNU_PHDRS? > >>>> specification. >>> >>> I agree. What we did in the past by relying on phdrs to be accidentally >>> in the first PT_LOAD segment always irked me as bad design. >>> >>> If we need access to program header we need clear semantics for doing so, >>> not hackish kludges to force the linker to get it onto a page that also >>> happened to be mapped. This is just poor engineering on our part. >>> >> >> My current dummy program property note section sounds much better >> now :-). > > My apologies HJ, I did not intend this to sound like an attack on your > original design, just that a new design like SHT_GNU_PHDRS could be > created with reliable semantics. None taken. -- H.J. --0000000000001dd25c0576dcd003 Content-Type: application/octet-stream; name=foo Content-Disposition: attachment; filename=foo Content-Transfer-Encoding: base64 X-Attachment-Id: f_jmksei2m0 Content-length: 17528 f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAABBAAAAAAABAAAAAAAAAAAAvAAAA AAAAAAAAAEAAOAAEAEAADgANAAEAAAAEAAAAAAAAAAAAAAAAAEAAAAAAAAAA QAAAAAAAIAEAAAAAAAAgAQAAAAAAAAAQAAAAAAAAAQAAAAUAAAAAEAAAAAAA AAAQQAAAAAAAABBAAAAAAABLAQAAAAAAAEsBAAAAAAAAABAAAAAAAAABAAAA BAAAAAAgAAAAAAAAACBAAAAAAAAAIEAAAAAAAAYAAAAAAAAABgAAAAAAAAAA EAAAAAAAAFHldGQHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ADHtX0iJ5kiD5PDoGwAAAPRIifhIifdIidZIicpNicJNichMi0wkCA8Fw1VI ieVIg+xQiX28SIl1sItFvEiYSIPAAUiNFMUAAAAASItFsEgB0EiJRchIi0XI SIlF+EjHRegAAAAASMdF4AAAAABIx0XYAAAAAMdFxAEAAACQSItF+EiNUAhI iVX4SIsASIXAdexIi0X4SIlF8Os1SItF8EiLAEiD+AN0CEiD+AV0EOsbSItF 8EiLQAhIiUXo6w1Ii0XwSItACEiJReCQSINF8BBIi0XwSIsASIXAdb9Ix0XQ AAAAAOsaSItF6IsAg/gBdQVIg0XYAUiDRdABSINF6DhIi0XQSDtF4HLci0XE uQUAAAC6ACBAAInGvwEAAAC4AAAAAOjo/v//SIN92AAPlMAPtsCJxr88AAAA uAAAAADozP7//7gAAAAAycMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABQQVNTCgBHQ0M6IChHTlUpIDguMi4xIDIwMTgwOTA1IChSZWQgSGF0IDgu Mi4xLTMpAAAAAAAAAAAAAAAAAAAALAAAAAIAAAAAAAgAAAAAAAAQQAAAAAAA KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAIALgAAAAgAAAAAACoQQAAA AAAAIQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgAAAAIAAAAAAAgBAAAAAAAQ QAAAAAAAKhBAAAAAAAAAAAAATAAAAH0AAAABgFAEAAAEABQAAAAIASEBAAAM 1AEAAEwAAAAqEEAAAAAAACEBAAAAAAAAjwAAAAIBCGwCAAACAge+AgAAAgQH lAIAAAIIB48CAAACAQZuAgAAAgIFrwAAAAMEBWludAAE1AAAAAIpFjsAAAAE LAIAAAIrGXYAAAACCAXFAQAABPcCAAACLBtCAAAABQiPAAAAAgEGdQIAAAS5 AAAAA9gXQgAAAAb7AAAABB8CD68AAAAFCIkAAAAHkwAAAAUkDokAAAAHjAAA AAUyDFcAAAAHtwIAAAU3DFcAAAAHYAMAAAU7DFcAAAAELgIAAAYbE2oAAAAE 1gAAAAcaFF4AAAAE+QIAAAcbFH0AAAAEqAEAAAglEvEAAAAEPwMAAAgrEv0A AAAEPwIAAAgsEuUAAAAEpAAAAAgwEv0AAAAEmgAAAAg0Ev0AAAAIOAiyAgnA AQAACRMBAAAItAIOCQEAAAAJoQIAAAi1Ag4JAQAABAkgAwAACLYCDTkBAAAI CQsBAAAItwIOLQEAABAJxwAAAAi4Ag4tAQAAGAk2AwAACLkCDxUBAAAgCS4D AAAIugIPFQEAACgJZwMAAAi7Ag8VAQAAMAAKegIAAAi8AgNFAQAAC8ABAAAM CAg1AwP3AQAADUwCAAAINwMTFQEAAA31AAAACDgDEi0BAAAACBAIMgMJHgIA AAnRAgAACDQDECEBAAAACW8DAAAIOQMH0gEAAAgACp4BAAAIOgMD9wEAAAwI CGQEA0MCAAANzgEAAAhmBBD9AAAAAAgQCGEECWoCAAAJuQEAAAhjBAz9AAAA AAlnAgAACGoEBysCAAAIAAroAAAACGsEA0MCAAACCAeKAgAAAggFwAEAAAIE BLMBAAACCARgAgAAAhAF3wAAAAIQBFsCAAAOBwQ7AAAACTcHwgIAAA8eAgAA AA8aAQAAAQ/XAgAAAgAQqgIAACgJKggRAwAAEVEDAAAJLAlXAAAAABFLAwAA CS4WYAMAAAgR8QIAAAk1EC0BAAAQEREDAAAJPQmhAgAAGBFSAgAACT8QLQEA ACAAEDYCAAAoCVQIYAMAABHAAAAACVkQLQEAAAARGQMAAAlbC4kAAAAIEVsD AAAJXBCJAwAAEBECAwAACV0WYAMAABgR6gIAAAldH2ADAAAgAAUIEQMAAAep AgAACUMXwgIAABIeAgAAfQMAABMAB+ECAAAJTBJyAwAABQgeAgAAFM8AAAAB CAFXAAAAKhBAAAAAAAAhAQAAAAAAAAGcRwQAABWFAgAAAQgLVwAAAAORrH8V sgIAAAEIGK8AAAADkaB/FmV2AAEKCq8AAAADkbh/FmV2cAABCwqvAAAAApFo FmF2AAEMEUcEAAACkWAXKQMAAAENFU0EAAACkVgXBQEAAAEOCpYAAAACkVAX CQMAAAEPCpYAAAACkUgWZmQAARAHVwAAAAORtH8WaQABEQqWAAAAApFAAAUI agIAAAUIzQEAAAABEQAQBhEBEgEDDhsOJQ4TBQAAAAERASUOEwsDDhsOEQES BxAXAAACJAALCz4LAw4AAAMkAAsLPgsDCAAABBYAAw46CzsLOQtJEwAABQ8A CwtJEwAABjQAAw46CzsFOQtJEz8ZPBkAAAc0AAMOOgs7CzkLSRM/GTwZAAAI EwELCzoLOwU5CwETAAAJDQADDjoLOwU5C0kTOAsAAAoWAAMOOgs7BTkLSRMA AAsmAEkTAAAMFwELCzoLOwU5CwETAAANDQADDjoLOwU5C0kTAAAOBAE+CwsL SRM6CzsLOQsBEwAADygAAw4cCwAAEBMBAw4LCzoLOws5CwETAAARDQADDjoL Ows5C0kTOAsAABIBAUkTARMAABMhAAAAFC4BPxkDDjoLOws5CycZSRMRARIH QBiWQhkBEwAAFQUAAw46CzsLOQtJEwIYAAAWNAADCDoLOws5C0kTAhgAABc0 AAMOOgs7CzkLSRMCGAAAAIsAAAACAGIAAAABAfsODQABAQEBAAAAAQAAAS9l eHBvcnQvZ251L2ltcG9ydC9naXQvc291cmNlcy9iaW51dGlscy1nZGIvbGQv dGVzdHN1aXRlL2xkLWVsZgAAbGludXgteDg2LlMAAQAAAAAJAgAQQAAAAAAA FzAhPQMQSlonPT09PT09WQMTLgIBAAEBtQEAAAIAFAEAAAEB+w4NAAEBAQEA AAABAAABL2V4cG9ydC9nbnUvaW1wb3J0L2dpdC9zb3VyY2VzL2JpbnV0aWxz LWdkYi9sZC90ZXN0c3VpdGUvbGQtZWxmAC91c3IvaW5jbHVkZS9iaXRzAC91 c3IvbGliL2djYy94ODZfNjQtcmVkaGF0LWxpbnV4LzgvaW5jbHVkZQAvdXNy L2luY2x1ZGUAAHByMjM0MjguYwABAAB0eXBlcy5oAAIAAHN0ZGRlZi5oAAMA AHVuaXN0ZC5oAAQAAGdldG9wdF9jb3JlLmgAAgAAc3RkaW50LWludG4uaAAC AABzdGRpbnQtdWludG4uaAACAABlbGYuaAAEAABsaW5rLmgABAAAAAUBAAkC KhBAAAAAAAAaBRTlBQ9YBQq6rQUVhAUKg4MFB4MFCXcFDgACBAEgBQoAAgQB ugUJAAIEATwFBlsFA4QFDy8FIAhNBQeCBQJLBQgwBQK7BSEDeCAFDAACBAFY BQMAAgQBdAUKAwtYBQOCBQ0vBQhmBQ5ZBRsAAgQCVgUjAAIEAlgFAwACBAFY ogjKBQoIrQUBWQICAAEBABQAAAD/////AQABeBAMBwiQAQAAAAAAACQAAAAA AAAAKhBAAAAAAAAhAQAAAAAAAEEOEIYCQw0GAxwBDAcIAAAvZXhwb3J0L2du dS9pbXBvcnQvZ2l0L3NvdXJjZXMvYmludXRpbHMtZ2RiL2xkL3Rlc3RzdWl0 ZS9sZC1lbGYvbGludXgteDg2LlMAL2V4cG9ydC9idWlsZC9nbnUvYmludXRp bHMvYnVpbGQteDg2XzY0LWxpbnV4L2xkAEdOVSBBUyAyLjMxLjUxAG9wdGlu ZABvcHRhcmcARWxmNjRfT2ZmAEVsZjY0X0FkZHIAc2hvcnQgaW50AHNpemVf dABsX2FkZHIAcF9wYWRkcgBtYWluAF9fdWludDMyX3QAX19pbnQxMjgARWxm NjRfYXV4dl90AGRfcHRyAF9fZW52aXJvbgBwaG51bQBwX3ZhZGRyAHBfdHlw ZQBSVF9BREQAR05VIEMxNyA4LjIuMSAyMDE4MDkwNSAoUmVkIEhhdCA4LjIu MS0zKSAtbXR1bmU9Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nIC1nIC1PMCAt TzAgLWZuby1QSUUgLWZuby1hc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcwBF bGY2NF9EeW4ARWxmNjRfV29yZABmbG9hdABhX3R5cGUAbG9uZyBsb25nIGlu dABhX3ZhbAAvZXhwb3J0L2dudS9pbXBvcnQvZ2l0L3NvdXJjZXMvYmludXRp bHMtZ2RiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyMzQyOC5jAFJUX0NPTlNJ U1RFTlQAX19pbnQ2NF90AGxpbmtfbWFwAEVsZjY0X1N4d29yZABkX3ZhbABy X2xkYmFzZQBsb25nIGRvdWJsZQBhX3VuAHVuc2lnbmVkIGNoYXIARWxmNjRf UGhkcgBhcmdjAGxvbmcgbG9uZyB1bnNpZ25lZCBpbnQAcF9mbGFncwBfcl9k ZWJ1ZwBhcmd2AG9wdGVycgBzaG9ydCB1bnNpZ25lZCBpbnQAZF90YWcAUlRf REVMRVRFAF9EWU5BTUlDAGxfcHJldgByX2JyawBfX3VpbnQ2NF90AGxfbmV4 dABsb2FkbnVtAHJfc3RhdGUAbF9uYW1lAHBfb2Zmc2V0AHBoZHIAcF9tZW1z egBwX2ZpbGVzegBFbGY2NF9Yd29yZAByX21hcAByX3ZlcnNpb24AbF9sZABv cHRvcHQAcF9hbGlnbgBkX3VuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAwABACABQAAAAAAAAAAAAAAAAAAAAAAAAwACAAAQQAAAAAAAAAAA AAAAAAAAAAAAAwADAAAgQAAAAAAAAAAAAAAAAAAAAAAAAwAEAAAAAAAAAAAA AAAAAAAAAAAAAAAAAwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGAAAAAAAA AAAAAAAAAAAAAAAAAAAAAwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAIAAAA AAAAAAAAAAAAAAAAAAAAAAAAAwAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAK AAAAAAAAAAAAAAAAAAAAAAABAAAABADx/wAAAAAAAAAAAAAAAAAAAAALAAAA EgACABAQQAAAAAAAGgAAAAAAAAAYAAAAEgACAAAQQAAAAAAAAAAAAAAAAAAT AAAAEAADAAYwQAAAAAAAAAAAAAAAAAAfAAAAEgACACoQQAAAAAAAIQEAAAAA AAAkAAAAEAADAAYwQAAAAAAAAAAAAAAAAAArAAAAEAADAAgwQAAAAAAAAAAA AAAAAAAAcHIyMzQyOC5jAHN5c2NhbGwAX19ic3Nfc3RhcnQAbWFpbgBfZWRh dGEAX2VuZAAALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuZ251LnBoZHJz AC50ZXh0AC5yb2RhdGEALmNvbW1lbnQALmRlYnVnX2FyYW5nZXMALmRlYnVn X2luZm8ALmRlYnVnX2FiYnJldgAuZGVidWdfbGluZQAuZGVidWdfZnJhbWUA LmRlYnVnX3N0cgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAPT//28C AAAAAAAAAEAAQAAAAAAAQAAAAAAAAADgAAAAAAAAAAAAAAAAAAAACAAAAAAA AAA4AAAAAAAAACYAAAABAAAABgAAAAAAAAAAEEAAAAAAAAAQAAAAAAAASwEA AAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAsAAAAAQAAAAIAAAAAAAAA ACBAAAAAAAAAIAAAAAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA AAAANAAAAAEAAAAwAAAAAAAAAAAAAAAAAAAABiAAAAAAAAAsAAAAAAAAAAAA AAAAAAAAAQAAAAAAAAABAAAAAAAAAD0AAAABAAAAAAAAAAAAAAAAAAAAAAAA AEAgAAAAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAABMAAAA AQAAAAAAAAAAAAAAAAAAAAAAAACgIAAAAAAAAIIEAAAAAAAAAAAAAAAAAAAB AAAAAAAAAAAAAAAAAAAAWAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAIiUAAAAA AABtAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAGYAAAABAAAAAAAA AAAAAAAAAAAAAAAAAI8mAAAAAAAASAIAAAAAAAAAAAAAAAAAAAEAAAAAAAAA AAAAAAAAAAByAAAAAQAAAAAAAAAAAAAAAAAAAAAAAADYKAAAAAAAAEAAAAAA AAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAfwAAAAEAAAAwAAAAAAAAAAAA AAAAAAAAGCkAAAAAAAB0AwAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAA AAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAJAsAAAAAAAAsAEAAAAAAAAMAAAA DAAAAAgAAAAAAAAAGAAAAAAAAAAJAAAAAwAAAAAAAAAAAAAAAAAAAAAAAABA LgAAAAAAADAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAMA AAAAAAAAAAAAAAAAAAAAAAAAcC4AAAAAAACKAAAAAAAAAAAAAAAAAAAAAQAA AAAAAAAAAAAAAAAAAA== --0000000000001dd25c0576dcd003--