From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from thurn.uni-konstanz.de (mailout.uni-konstanz.de [134.34.240.38]) by sourceware.org (Postfix) with ESMTPS id 2B4C53857B96 for ; Wed, 1 Jun 2022 12:04:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2B4C53857B96 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=uni-konstanz.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=uni-konstanz.de Received: from omicron.kim.uni-konstanz.de (omicron.kim.uni-konstanz.de [134.34.240.43]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by thurn.uni-konstanz.de (Postfix) with ESMTPS id 4LCnqt5Y0rz1hR; Wed, 1 Jun 2022 14:04:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uni-konstanz.de; s=DKIM001; t=1654085050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=+APvGmekODk5vt+3wD5JyCHSvAlp4MFOMmI2nseEOpA=; b=wqufR7eEKIdjjph3vaPR5+gR29sKCWKj/TfXmZKP3N1zeKgoVoBwYGjfV54u1sRPSXyAsf 4p2YLVRfU8jT0joijL8AE1UM0nTUxMquQNtXODeOn20HV5r+uFhLYB5SSyp+Xyxb8bc2CE HLeRE7HqsLCCX3RcHsQ57SFJ6hdulImMnhMPvTBsQuSvwyCCuZ+4pHED9O6f5hlmoOsAnf SbrFPX0IfoFKTQHBLdl6XVCC2wkZqUmI5/LlLsPEFl4Hn2kS3baMGuqGh5GxuLAMPHVVz8 gvzxtaBRGWmj/BffhhCGHNSluq9FNPMQLGmQi4MYAAZ7JzUoJFQ3t5gvoSVNcQ== Received: from omicron.kim.uni-konstanz.de (localhost [134.34.116.39]) by omicron.kim.uni-konstanz.de (Postfix) with ESMTPSA id 950FC238; Wed, 1 Jun 2022 14:04:08 +0200 (CEST) Received: from dovecot-director-2.kim.uni-konstanz.de ([134.34.116.39]) by omicron.kim.uni-konstanz.de with ESMTPSA id 8XFEJLhVl2IHMgAA6IBqqw (envelope-from ); Wed, 01 Jun 2022 14:04:08 +0200 Message-ID: Date: Wed, 1 Jun 2022 14:04:05 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: is there a way to find out gfortran version and/or options from a given binary? Content-Language: en-US To: Arjen Markus Cc: Andre Vehreschild , Fortran List References: <20220601115026.452a6840@vepi2> From: Kay Diederichs In-Reply-To: Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms000608090208060905080308" X-KN-RS-ID: f9ee8bcafb917462eb3 X-KN-RS-META: mp33tni1467qqmybaoahco611g9ickqa X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, JMQ_SPF_NEUTRAL, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Stat-Signature: qtbnajsr5dcabkdhyydkr9xfeioqdin6 X-Rspamd-SPAM-Probability: Authentication-Results: Mailout; dkim=none X-Rspamd-Server: nosferatu.kim.uni-konstanz.de X-Rspamd-Queue-Id: 4LCnqt5Y0rz1hR X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Jun 2022 12:04:16 -0000 This is a cryptographically signed message in MIME format. --------------ms000608090208060905080308 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Arjen, below is what I get with gfortran 11.2.1 and no options, or just -g: [dikay@turn29]$ gfortran -v Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/scratch/opt/rh/devtoolset-11/root/usr/bin/../libexec/gcc/x86_64-redhat-linux/11/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-11/root/usr --mandir=/opt/rh/devtoolset-11/root/usr/share/man --infodir=/opt/rh/devtoolset-11/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-11.2.1-20210728/obj-x86_64-redhat-linux/isl-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.2.1 20210728 (Red Hat 11.2.1-1) (GCC) [dikay@turn29]$ cat staticv.f90 ! staticv.f90 -- ! Static information about the compiler? Not via parameters ! program staticv use iso_fortran_env implicit none character(len=200) :: c, d c = compiler_version() d = compiler_options() write(*,*) c(1:1), d(1:1) end program staticv [dikay@turn29]$ gfortran staticv.f90 [dikay@turn29]$ strings a.out | grep GNU GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-44) GCC: (GNU) 11.2.1 20210728 (Red Hat 11.2.1-1) __GNU_EH_FRAME_HDR [dikay@turn29]$ gfortran staticv.f90 [dikay@turn29]$ strings a.out | grep GNU GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-44) GCC: (GNU) 11.2.1 20210728 (Red Hat 11.2.1-1) __GNU_EH_FRAME_HDR [dikay@turn29]$ gfortran -g staticv.f90 [dikay@turn29]$ strings a.out | grep GNU GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-44) GCC: (GNU) 11.2.1 20210728 (Red Hat 11.2.1-1) GNU Fortran2008 11.2.1 20210728 (Red Hat 11.2.1-1) -mtune=generic -march=x86-64 -g -fintrinsic-modules-path /scratch/opt/rh/devtoolset-11/root/usr/bin/../lib/gcc/x86_64-redhat-linux/11/finclude __GNU_EH_FRAME_HDR Best wishes, Kay On 6/1/22 13:46, Arjen Markus wrote: > Are you sure that -g is the trigger? It may very well be that you need to make sure that the optimiser does not eliminate the variable that holds the identification. That is why I write the first character of these strings, to make sure that the variables are retained. That could be achieved in all manner of ways to fool the optimiser. Note that with -O2 and the program I posted I still get the strings. > > Regards, > > Arjen > > Op wo 1 jun. 2022 om 13:36 schreef Arjen Markus >: > > Hm, I ran it without any options - would that be equivalent to -g then? A rather awkward workaround might be to compile one source file containing this code with -g, but that is pushing things to the limit. > > Regards, > > Arjen > > Op wo 1 jun. 2022 om 12:16 schreef Kay Diederichs >: > > I tried your suggestion below, but it does not store the options unless > the -g option is used. > > If -g is used, the executable _always_ has version and option info (no > extra code invoking compiler_version() and compiler_options() is > needed). Just use strings | grep GNU . > If -g is not used, no option info is in the executable. > > Best wishes, > Kay > > On 01.06.22 12:00, Arjen Markus wrote: > > staticv.f90 -- > > !     Static information about the compiler? Not via parameters > > ! > > program staticv > >      use iso_fortran_env > > > >      implicit none > >      character(len=200) :: c, d > > > >      c = compiler_version() > >      d = compiler_options() > >      write(*,*) c(1:1), d(1:)1 > > end program staticv > > > > -- > Kay Diederichs http://strucbio.biologie.uni-konstanz.de > email: Kay.Diederichs@uni-konstanz.de              Tel +49 7531 88 4049 > Fachbereich Biologie, Universität Konstanz, Box M647, D-78457 Konstanz > > This e-mail is digitally signed. If your e-mail client does not have the > necessary capabilities, just ignore the attached signature "smime.p7s". > -- Kay Diederichs http://strucbio.biologie.uni-konstanz.de email: Kay.Diederichs@uni-konstanz.de Tel +49 7531 88 4049 Fachbereich Biologie, Universität Konstanz, Box M647, D-78457 Konstanz This e-mail is digitally signed. If your e-mail client does not have the necessary capabilities, just ignore the attached signature "smime.p7s". --------------ms000608090208060905080308 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC EaQwggUSMIID+qADAgECAgkA4wvV+K8l2YEwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYT AkRFMSswKQYDVQQKDCJULVN5c3RlbXMgRW50ZXJwcmlzZSBTZXJ2aWNlcyBHbWJIMR8wHQYD VQQLDBZULVN5c3RlbXMgVHJ1c3QgQ2VudGVyMSUwIwYDVQQDDBxULVRlbGVTZWMgR2xvYmFs Um9vdCBDbGFzcyAyMB4XDTE2MDIyMjEzMzgyMloXDTMxMDIyMjIzNTk1OVowgZUxCzAJBgNV BAYTAkRFMUUwQwYDVQQKEzxWZXJlaW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVu IEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4xEDAOBgNVBAsTB0RGTi1QS0kxLTArBgNVBAMTJERG Ti1WZXJlaW4gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCASIwDQYJKoZIhvcNAQEBBQAD ggEPADCCAQoCggEBAMtg1/9moUHN0vqHl4pzq5lN6mc5WqFggEcVToyVsuXPztNXS43O+FZs FVV2B+pG/cgDRWM+cNSrVICxI5y+NyipCf8FXRgPxJiZN7Mg9mZ4F4fCnQ7MSjLnFp2uDo0p eQcAIFTcFV9Kltd4tjTTwXS1nem/wHdN6r1ZB+BaL2w8pQDcNb1lDY9/Mm3yWmpLYgHurDg0 WUU2SQXaeMpqbVvAgWsRzNI8qIv4cRrKO+KA3Ra0Z3qLNupOkSk9s1FcragMvp0049ENF4N1 xDkesJQLEvHVaY4l9Lg9K7/AjsMeO6W/VRCrKq4Xl14zzsjz9AkH4wKGMUZrAcUQDBHHWekC AwEAAaOCAXQwggFwMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUk+PYMiba1fFKpZFK4OpL 4qIMz+EwHwYDVR0jBBgwFoAUv1kgNgB5oKAia4zV8mHSuCzLgkowEgYDVR0TAQH/BAgwBgEB /wIBAjAzBgNVHSAELDAqMA8GDSsGAQQBga0hgiwBAQQwDQYLKwYBBAGBrSGCLB4wCAYGZ4EM AQICMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kwMzM2LnRlbGVzZWMuZGUvcmwvVGVs ZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3JsMIGGBggrBgEFBQcBAQR6MHgwLAYIKwYBBQUH MAGGIGh0dHA6Ly9vY3NwMDMzNi50ZWxlc2VjLmRlL29jc3ByMEgGCCsGAQUFBzAChjxodHRw Oi8vcGtpMDMzNi50ZWxlc2VjLmRlL2NydC9UZWxlU2VjX0dsb2JhbFJvb3RfQ2xhc3NfMi5j ZXIwDQYJKoZIhvcNAQELBQADggEBAIcL/z4Cm2XIVi3WO5qYi3FP2ropqiH5Ri71sqQPrhE4 eTizDnS6dl2e6BiClmLbTDPo3flq3zK9LExHYFV/53RrtCyD2HlrtrdNUAtmB7Xts5et6u5/ MOaZ/SLick0+hFvu+c+Z6n/XUjkurJgARH5pO7917tALOxrN5fcPImxHhPalR6D90Bo0fa3S PXez7vTXTf/D6OWST1k+kEcQSrCFWMBvf/iu7QhCnh7U3xQuTY+8npTD5+32GPg8SecmqKc2 2CzeIs2LgtjZeOJVEqM7h0S2EQvVDFKvaYwPBt/QolOLV5h7z/0HJPT8vcP9SpIClxvyt7bP ZYoaorVyGTkwggWsMIIElKADAgECAgcbY7rQHiw9MA0GCSqGSIb3DQEBCwUAMIGVMQswCQYD VQQGEwJERTFFMEMGA1UEChM8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hl biBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLEwdERk4tUEtJMS0wKwYDVQQDEyRE Rk4tVmVyZWluIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IDIwHhcNMTYwNTI0MTEzODQwWhcN MzEwMjIyMjM1OTU5WjCBjTELMAkGA1UEBhMCREUxRTBDBgNVBAoMPFZlcmVpbiB6dXIgRm9l cmRlcnVuZyBlaW5lcyBEZXV0c2NoZW4gRm9yc2NodW5nc25ldHplcyBlLiBWLjEQMA4GA1UE CwwHREZOLVBLSTElMCMGA1UEAwwcREZOLVZlcmVpbiBHbG9iYWwgSXNzdWluZyBDQTCCASIw DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ07eRxH3h+Gy8Zp1xCeOdfZojDbchwFfylf S2jxrRnWTOFrG7ELf6Gr4HuLi9gtzm6IOhDuV+UefwRRNuu6cG1joL6WLkDh0YNMZj0cZGnl m6Stcq5oOVGHecwX064vXWNxSzl660Knl5BpBb+Q/6RAcL0D57+eGIgfn5mITQ5HjUhfZZkQ 0tkqSe3BuS0dnxLLFdM/fx5ULzquk1enfnjK1UriGuXtQX1TX8izKvWKMKztFwUkP7agCwf9 TRqaA1KgNpzeJIdl5Of6x5ZzJBTN0OgbaJ4YWa52fvfRCng8h0uwN89Tyjo4EPPLR22MZD08 WkVKusqAfLjz56dMTM0CAwEAAaOCAgUwggIBMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0P AQH/BAQDAgEGMCkGA1UdIAQiMCAwDQYLKwYBBAGBrSGCLB4wDwYNKwYBBAGBrSGCLAEBBDAd BgNVHQ4EFgQUazqYi/nyU4na4K2yMh4JH+iqO3QwHwYDVR0jBBgwFoAUk+PYMiba1fFKpZFK 4OpL4qIMz+EwgY8GA1UdHwSBhzCBhDBAoD6gPIY6aHR0cDovL2NkcDEucGNhLmRmbi5kZS9n bG9iYWwtcm9vdC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDBAoD6gPIY6aHR0cDovL2NkcDIu cGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDCB3QYIKwYB BQUHAQEEgdAwgc0wMwYIKwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1T ZXJ2ZXIvT0NTUDBKBggrBgEFBQcwAoY+aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwt cm9vdC1nMi1jYS9wdWIvY2FjZXJ0L2NhY2VydC5jcnQwSgYIKwYBBQUHMAKGPmh0dHA6Ly9j ZHAyLnBjYS5kZm4uZGUvZ2xvYmFsLXJvb3QtZzItY2EvcHViL2NhY2VydC9jYWNlcnQuY3J0 MA0GCSqGSIb3DQEBCwUAA4IBAQCBeEWkTqR/DlXwCbFqPnjMaDWpHPOVnj/z+N9rOHeJLI21 rT7H8pTNoAauusyosa0zCLYkhmI2THhuUPDVbmCNT1IxQ5dGdfBi5G5mUcFCMWdQ5UnnOR7L n8qGSN4IFP8VSytmm6A4nwDO/afr0X9XLchMX9wQEZc+lgQCXISoKTlslPwQkgZ7nu7YRrQb tQMMONncsKk/cQYLsgMHM8KNSGMlJTx6e1du94oFOO+4oK4v9NsH1VuEGMGpuEvObJAaguS5 Pfp38dIfMwK/U+d2+dwmJUFvL6Yb+qQTkPp8ftkLYF3sv8pBoGH7EUkp2KgtdRXYShjqFu9V NCIaE40GMIIG2jCCBcKgAwIBAgIMJp3Iqnm+iNpYhPwRMA0GCSqGSIb3DQEBCwUAMIGNMQsw CQYDVQQGEwJERTFFMEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERldXRz Y2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUwIwYDVQQD DBxERk4tVmVyZWluIEdsb2JhbCBJc3N1aW5nIENBMB4XDTIyMDUxMzEyMTIxM1oXDTI1MDUx MjEyMTIxM1owbTELMAkGA1UEBhMCREUxHjAcBgNVBAoMFVVuaXZlcnNpdGFldCBLb25zdGFu ejETMBEGA1UEBAwKRGllZGVyaWNoczEMMAoGA1UEKgwDS2F5MRswGQYDVQQDDBJEci4gS2F5 IERpZWRlcmljaHMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDQ6bb/PEztrWU7 9tfgZP4N3jfXof+dvokzFxz+j86pG+FiINFWSglKYo8na3CFuez/Q1JgiufchixnYwcv3hjJ VLgGmJvlZdXXCTfNe65YTreVSFNQFFBu+1si69ofQ0BzaxfldmSFn/PiXJ7U5scnGNt9YIh4 vE091O6HUSSDazt+o8kKPqGO9Q7v4v9H0XMSbkujiNq7sr+hBX/+z4cspTZba3mnMFOLuSHZ HlI1Y84nYqjSpSlnU2qzdJNqwTZustu3oR0bta8WJpvq6NP9hPPytW3ZRlixpHiunyPUPt68 msadUUPC7rvor6hxsYTZCslgB54CtEXglxWwMbGlAT5KGq2LRd38YIhAoLaETgfnsjNzugge pBRAbveWM6C3VOrCLnOmaKbEt54Vi8WUbP6Kua48dradS+C6oJUw9Y0EEilPBFyWXqpuVFsG YY8XlpPKqwHYw8PW5ZWeQSCeVCdWbmP2o112wQ2F4HymMRVwyRuswurzOjGzqus3EKARFWGX pP+EfAt/dZwp4VIfILyX/9iw2aG0bPbyU9XcX/iJnIE5ZGPsDuTTchKzQpV3DAij9JnkqK0m WPRyB3jgq5ZfS/pgGKjs/N8aXKd/zVvcIFGfWtn3fC9LS0GsrCz7EUqSM/tdMsXOz9JNdOec nIKQx6vYJnYENjO7hoJJDQIDAQABo4ICVzCCAlMwPgYDVR0gBDcwNTAPBg0rBgEEAYGtIYIs AQEEMBAGDisGAQQBga0hgiwBAQQKMBAGDisGAQQBga0hgiwCAQQKMAkGA1UdEwQCMAAwDgYD VR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQU PsF7L07H+P2auM/b3oyxnoyG9qUwHwYDVR0jBBgwFoAUazqYi/nyU4na4K2yMh4JH+iqO3Qw KQYDVR0RBCIwIIEea2F5LmRpZWRlcmljaHNAdW5pLWtvbnN0YW56LmRlMIGNBgNVHR8EgYUw gYIwP6A9oDuGOWh0dHA6Ly9jZHAxLnBjYS5kZm4uZGUvZGZuLWNhLWdsb2JhbC1nMi9wdWIv Y3JsL2NhY3JsLmNybDA/oD2gO4Y5aHR0cDovL2NkcDIucGNhLmRmbi5kZS9kZm4tY2EtZ2xv YmFsLWcyL3B1Yi9jcmwvY2FjcmwuY3JsMIHbBggrBgEFBQcBAQSBzjCByzAzBggrBgEFBQcw AYYnaHR0cDovL29jc3AucGNhLmRmbi5kZS9PQ1NQLVNlcnZlci9PQ1NQMEkGCCsGAQUFBzAC hj1odHRwOi8vY2RwMS5wY2EuZGZuLmRlL2Rmbi1jYS1nbG9iYWwtZzIvcHViL2NhY2VydC9j YWNlcnQuY3J0MEkGCCsGAQUFBzAChj1odHRwOi8vY2RwMi5wY2EuZGZuLmRlL2Rmbi1jYS1n bG9iYWwtZzIvcHViL2NhY2VydC9jYWNlcnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQB0+fAd SmkrBk8yiD9pzO3SXcOuqTeooM+z56hvlI+WGmD74gqd95Ebo08utslVlTkgjjJ4oKchJcoz Qp2709Ksr66ICdtsr1c0NFi89nKCRcoRvA5sMB1OG4x2033eZ5lYzp6P2EYiC5kM5+2bIRre pG4DjwPgo3gWl65RRWROHI9NXJmcXPiE3n30H3yOZkQB1zI5so9IZqMJwTLQ8iiUK5H5Wv6W Q2UOntV3LqI14mdXaEY/fP6ea6gQHAuCwH/iKUwoGtBGQk54YVys4wwztYzA2zLIG8rYG4G6 hDbWUabr2YKHEtEWgVRIlxVzOMdgjgMxSVmFnXPDZOr46upsMYIFKzCCBScCAQEwgZ4wgY0x CzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxWZXJlaW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1 dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4xEDAOBgNVBAsMB0RGTi1QS0kxJTAjBgNV BAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3VpbmcgQ0ECDCadyKp5vojaWIT8ETANBglghkgB ZQMEAgMFAKCCAl0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcN MjIwNjAxMTIwNDA4WjBPBgkqhkiG9w0BCQQxQgRAFzGM9dCxps8dgDx+HDSIFl8vWxscIr00 WPLlN0pYFftUcYHy1IqKXosQ7Pfx3E+opQIDf60EJyGbsfbjx1fjcjBsBgkqhkiG9w0BCQ8x XzBdMAsGCWCGSAFlAwQBKjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwIC AgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGvBgkrBgEEAYI3 EAQxgaEwgZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxWZXJlaW4genVyIEZvZXJkZXJ1 bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4xEDAOBgNVBAsMB0RG Ti1QS0kxJTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3VpbmcgQ0ECDCadyKp5voja WIT8ETCBsQYLKoZIhvcNAQkQAgsxgaGggZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxW ZXJlaW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMg ZS4gVi4xEDAOBgNVBAsMB0RGTi1QS0kxJTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElz c3VpbmcgQ0ECDCadyKp5vojaWIT8ETANBgkqhkiG9w0BAQEFAASCAgCFTAwtdxECRsMWYz4P PpYxohtnxWpGDWgZB7XmCr3A50yxMaGabMsWjxXiZ3a0AO0mS+vfURHYXttT7Qm2WwfvzxVi kPo7Utee6sfRYsUWbI0XsnCD1TDW7hIqy53jLukKlbQQ03SVcFBz2BvGJ7E+y/hDnll2B2Mn Z3yVEVLys0ijxdP9BQ5ap8PXie7/Tg3C81hNod8U4K7kiMQshMCMR+xmJVskOC2Tzorf3kQO Z+5WrKfkUNh5LoR3HxcqyRTzGwM7OX0sCveeMHClcA9Iux5Br1FHw8OifuTQ0Sz0GWAW14YX WGy+ys9j7rzvU4SGehp9ntWmfxN/hZufbtFFNjJKAL/pYW7BBEO6auLObSbUoXg2cty4mFHO gpoBtFlg58Q98GuEAhYz7zU3ML9wUgm0iiKqZ83F2CnJ3hqz24WUaMZ2HpOuV5rdM4g8FmYT x4fKJ8sMA9pjQVXMYJwGASxHVkmt6BYoOc0jB7GrIuh9Ei32c3AEfMrgy9Y0+HzbiEbp64pt 46BbnxndeNeu5D7ydtIPgmIwcV3c7AcPHi2VIueAcAKzHfsTjd0vX47jvoZt5H8EgVntAyph ydAVFB1gbwVIfVs57+ATlKp0Pu+3/V/hap2BbO7r6N2FLr3BMzgMWbnmTmOLDb4kX0fQiUSd yyh35KLLiJ4mDfgcHgAAAAAAAA== --------------ms000608090208060905080308--