X-CGP-ClamAV-Result: CLEAN X-VirusScanner: Niversoft's CGPClamav Helper v1.22.2a (ClamAV engine v0.102.2) X-Junk-Score: 0 [] X-KAS-Score: 0 [] From: "Markus Ruggiero (rucotec)" Received: from miniserver.rucotec.ch ([213.189.151.242] verified) by post.selbstdenker.com (CommuniGate Pro SMTP 6.3.3) with ESMTPS id 26044404 for webobjects-dev@wocommunity.org; Sat, 19 Jun 2021 10:00:32 +0200 Received-SPF: none receiver=post.selbstdenker.com; client-ip=213.189.151.242; envelope-from=markus.ruggiero@rucotec.ch Received: from localhost (localhost [127.0.0.1]) by miniserver.rucotec.ch (Postfix) with ESMTP id 60D7E2AE0FB8 for ; Sat, 19 Jun 2021 10:00:11 +0200 (CEST) Received: from miniserver.rucotec.ch ([127.0.0.1]) by localhost (miniserver.rucotec.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2-a1S05nXrW8 for ; Sat, 19 Jun 2021 10:00:08 +0200 (CEST) Received: from [192.168.56.49] (unknown [192.168.56.49]) by miniserver.rucotec.ch (Postfix) with ESMTPSA id C2F082AE0FA7 for ; Sat, 19 Jun 2021 10:00:08 +0200 (CEST) Content-Type: multipart/signed; boundary="Apple-Mail=_9C7A6D65-F27F-427C-9520-7FE72C595640"; protocol="application/pkcs7-signature"; micalg=sha-256 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Subject: Re: [WO-DEV] Deployment issue on Catalina "You don't have permission to access this resource" Date: Sat, 19 Jun 2021 10:00:08 +0200 References: To: WebObjects & WOnder Development In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3608.120.23.2.7) --Apple-Mail=_9C7A6D65-F27F-427C-9520-7FE72C595640 Content-Type: multipart/alternative; boundary="Apple-Mail=_027174E5-E59D-4934-A4EF-E9BEA00A2F96" --Apple-Mail=_027174E5-E59D-4934-A4EF-E9BEA00A2F96 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Man I love you (well, sort of anyway=F0=9F=98=87). Thanks a lot, the location thing was it. Now everything works. Have a great day ---markus--- > On 18 Jun 2021, at 14:25, Ralf Schuchardt = wrote: >=20 > Do you have a =E2=80=9ELocation=E2=80=9C based access grant in your = config? >=20 > In my (CentOS) Apache config I have this statement: >=20 > # Specific to Apache 2.4 > > > Require all granted > > Require all denied > > I have also commented out all ScriptAlias* directives in all apache = config files. >=20 > Logging can be enabled by setting a WebObjectsLog directive: >=20 > # To change the logging options, read the following comments: > # The option name is "WebObjectsLog" and the first value indicates the = path of the log file. > # The second value indicates the log level. There are five, in = decreasing informational order: > # "Debug", "Info", "Warn", "Error", "User" > # > # Note: To enable logging, touch '/tmp/logWebObjects' as the = administrator user (usually root). > # After apache starts, you'll have to change the owner permissions to = 'www'. > # Type: sudo chown www /Library/WebObjects/Logs/WebObjects.log > # See > = /tmp/logWebObjects insecure tempfile in WebObjects > # > # The following line is the default: > # WebObjectsLog /tmp/WebObjects.log Debug > For simple applications you could also completely discard the = WOAdaptor and use the standard proxy mechanism. Single instance = deployments don=E2=80=99t even need a balancer setup: >=20 > # in the site config: > ProxyPass /cgi-bin/WebObjects/App.woa = http://localhost:2001/cgi-bin/WebObjects/App.woa = > ProxyPassReverse /cgi-bin/WebObjects/App.woa = http://localhost:2001/cgi-bin/WebObjects/App.woa = >=20 > > > Require all granted > Options none > RequestHeader append x-webobjects-adaptor-version "mod_proxy" > > Ralf >=20 > On 18 Jun 2021, at 12:48, Markus Ruggiero (rucotec) wrote: >=20 > Thanks Jesse, yeah, I tried all. All files are w:r including = /Library/WebObjects/Configuration/* where SiteConfig.xml lives. = JavaMonitor is writing the SiteConfig.xml, wotaskd uses it and it is = readable for anything Apache. >=20 > Apache running under _www or, as I just now tried running it under my = own uid, makes no difference. The error_log shows this line: > [Fri Jun 18 10:39:44.022934 2021] [authz_core:error] [pid 50274] = [client 127.0.0.1:60139] AH01630: client denied by server configuration: = /apps, referer: = http://localhost:3333/cgi-bin/WebObjects/JavaMonitor.woa/wo/6tRZCAqtsrsCiS= rXLUPUMg/0.0.1.0 = >=20 > I tried with cgi-bin as well as apps. >=20 > For me this indicates something in WOAdaptor not being right. When I = google this error everyone is pointing to Apache config where in some = places Require all allowed is needed. That is there and Apache can serve = static filesystem based resources.=20 > As the error points to /apps as the resource that is not accessible = this again points to WOAdaptor. /apps is NOT a file system path (no = block in http.conf) but is part of the adaptor URL (set in = JavaMonitor as http://woapps/apps/WebObjects = ). Seems that WOAdaptor does not properly = take over and then of course Apache would try to access this = non-existing path. >=20 > This brings me to the next question: how do I debug WOAdaptor? Or am I = going nuts? >=20 > Something else: I compared all the LoadModule directives in httpd.conf = with those on the customer deployment and made sure there weren=E2=80=99t = modules excluded. Nothing helped. Next is probably to virtualise the = client deployment machine, strip it down to the bare minimum and run it = as a test deployment server inside VMWare. Maybe last resort.... >=20 > ---markus--- >=20 >> On 17 Jun 2021, at 17:07, Jesse Tayler = > = wrote: >>=20 >> Well, gosh, it just has to be apache and the OS =E2=80=94 run down = the list of suspects >>=20 >> "client denied by server configuration" is reported so that=E2=80=99s = basically the OS saying you can=E2=80=99t read =E2=80=94 I think? >>=20 >> I can=E2=80=99t read your rules, but since apache doesn=E2=80=99t = seem to barf did you check user and OS level stuff carefully? >>=20 >> - the user that is running apache? >> - the actual folder and parent folder settings? >> - read those folders as that user from the command line? >>=20 >> Other random tests regarding OS level file permissions? >>=20 >> I=E2=80=99m no expert here, but I=E2=80=99m pretty sure those files = gotta be 755 and it seems like the apache log is reporting a filesystem = level permission error=E2=80=A6? >>=20 >>=20 >>=20 >>=20 >>> On Jun 17, 2021, at 10:59 AM, Markus Ruggiero (rucotec) = > = wrote: >>>=20 >>> This is a new setup. Up to now I have had a dedicated deployment = machine that works. As this is for a customer I do not want to touch it. >>>=20 >>> We have a weird problem that only shows when more than one instance = of the same app is running. To be able to debug and analyze this I = thought I=E2=80=99d configure my dev machine so that I can deploy to it = easily without disturbing anything productive. >>>=20 >>> Yes, of course mod_webobjects is loaded. This is the full = wo_apache.config: >>>=20 >>> LoadModule WebObjects_module = /Users/Shared/Developer/Libraries/Wonder/ApacheWOAdaptor/Apache2.4/macOS/m= od_WebObjects.so >>> WebObjectsAlias /apps/WebObjects >>> WebObjectsConfig http://woapps:1085 10 >>>=20 >>> all the other nice stuff in there is commented and not active. >>>=20 >>> If on a command line I type >>> apachectl -F >>>=20 >>> I get a whole list of known directives and there are many WO related = ons. Where else would Apache get those if not through mod_webobjects? = This indicates that the module is properly loaded. >>>=20 >>>=20 >>>> On 17 Jun 2021, at 16:44, Jesse Tayler = > = wrote: >>>>=20 >>>> Sounds like apache, are you sure things like mod_webobjects are = loaded and those base things? >>>>=20 >>>> I can=E2=80=99t read apache rules=E2=80=A6sorry! They are all just = random characters to me=E2=80=A6I guess the questions is what=E2=80=99s = changed or is this a new setup giving you a hard time? >>>>=20 >>>>> On Jun 17, 2021, at 10:40 AM, Markus Ruggiero (rucotec) = > = wrote: >>>>>=20 >>>>> Probably missing something so basic that I simply do not see it. = Must be too hot outside (33 Celsius) and no aircon in the office (31 = Celsius).=20 >>>>> Hope someone can point me in the right direction. >>>>>=20 >>>>> Deployment setup on my dev machine (MBpro, macOS Catalina, JRE = 15). Apache installed via homebrew (Apache/2.4.46 (Unix)), Apple's = Apache not in use >>>>>=20 >>>>> Apache configured with various virtual hosts, resolved through = /etc/hosts. This all works, Apache serves static resources from these = hosts. >>>>>=20 >>>>> JavaMonitor runs, wotaskd runs, Apache loads WOAdaptor by = including wo_apache.conf >>>>> apachectl -F knows about WOAdaptor, so I assume it is properly = loaded >>>>>=20 >>>>> wo_apache.conf has this line: >>>>> WebObjectsAlias /apps/WebObjects=20 >>>>>=20 >>>>> The Apache config file http.conf has this line >>>>> # ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) = "/usr/local/var/www/CGI-Executables/$1" >>>>> ScriptAliasMatch ^/apps/((?!(?i:webobjects)).*$) = "/usr/local/var/www/CGI-Executables/$1" >>>>>=20 >>>>> (tried both variants, with cgi-bin and the one with apps) >>>>>=20 >>>>> In WOMonitor this is the URL to the adaptor: >>>>> http://woapps/apps/WebObjects >>>>> (woapps being one of my virtual hosts) >>>>>=20 >>>>> When I try to access an installed app the browser reports an error >>>>> "You don't have permission to access this resource=E2=80=9D >>>>>=20 >>>>> and Apache puts a message into the error log file: >>>>> [Thu Jun 17 13:43:57.329921 2021] [authz_core:error] [pid 42093] = [client 127.0.0.1:64420] AH01630: client denied by server configuration: = /apps >>>>>=20 >>>>> /apps is not a directory but the first part of the WO URL and thus = should go to the WOAdaptor. Has the ScriptAliasMatch (see above) = anything to do with this? >>>>>=20 >>>>> Thanks for any help >>>>> ---markus--- >>>>>=20 >>>>>=20 >>>>> Markus Ruggiero >>>>>=20 >>>>> rucotec GmbH web https://rucotec.ch = >>>>> Steinenvorstadt 79 email markus.ruggiero@rucotec.ch = >>>>> 4051 Basel / Switzerland mobile +41 79 508 4701 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>=20 >>>=20 >>>=20 >>>=20 >>>=20 >>> Markus Ruggiero >>>=20 >>> rucotec GmbH web https://rucotec.ch = >>> Steinenvorstadt 79 email markus.ruggiero@rucotec.ch = >>> 4051 Basel / Switzerland mobile +41 79 508 4701 >>>=20 >>>=20 >>>=20 >>>=20 >>>=20 >>>=20 >>>=20 >>>=20 >>=20 >=20 >=20 > Markus Ruggiero >=20 > rucotec GmbH web https://rucotec.ch = > Steinenvorstadt 79 email markus.ruggiero@rucotec.ch = > 4051 Basel / Switzerland mobile +41 79 508 4701 Markus Ruggiero rucotec GmbH web https://rucotec.ch Steinenvorstadt 79 email markus.ruggiero@rucotec.ch 4051 Basel / Switzerland mobile +41 79 508 4701 --Apple-Mail=_027174E5-E59D-4934-A4EF-E9BEA00A2F96 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Man = I love you (well, sort of anyway=F0=9F=98=87).

Thanks a lot, the location thing was = it. Now everything works.

Have a great day
---markus---

On 18 Jun 2021, at 14:25, Ralf Schuchardt <webobjects-dev@wocommunity.org> wrote:

Do you have a =E2=80=9ELocation=E2=80=9C based = access grant in your config?

In my = (CentOS) Apache config I have this statement:

# Specific to Apache =
2.4
<Location /cgi-bin/WebObjects/>
    <Limit GET POST OPTIONS >
      Require all granted
    </Limit>
    Require all denied
</Location>

I have also commented out all = ScriptAlias* directives in all apache config files.

Logging can be enabled by setting a WebObjectsLog = directive:

# To change the =
logging options, read the following comments:
# The option name is "WebObjectsLog" and the first value indicates the =
path of the log file.
# The second value indicates the log level. There are five, in =
decreasing informational order:
#       "Debug",    "Info",    "Warn",    "Error",    "User"
#
# Note: To enable logging, touch '/tmp/logWebObjects' as the =
administrator user (usually root).
# After apache starts, you'll have to change the owner permissions to =
'www'.
# Type: sudo chown www /Library/WebObjects/Logs/WebObjects.log
# See <rdar://problem/5296267> /tmp/logWebObjects insecure =
tempfile in WebObjects
#
# The following line is the default:
# WebObjectsLog /tmp/WebObjects.log Debug

For simple applications you = could also completely discard the WOAdaptor and use the standard proxy = mechanism. Single instance deployments don=E2=80=99t even need a = balancer setup:

# in the site config:
ProxyPass /cgi-bin/WebObjects/App.woa http://localhost:2001/cgi-bin/WebObjects/App.woa
ProxyPassReverse /cgi-bin/WebObjects/App.woa  http://localhost:2001/cgi-bin/WebObjects/App.woa

<Proxy http://localhost:2001/cgi-bin/WebObjects/App.woa/>
	Require all granted
    Options none
    RequestHeader append x-webobjects-adaptor-version "mod_proxy"
</Proxy>

Ralf

On 18 Jun 2021, at 12:48, Markus Ruggiero (rucotec) = wrote:

Thanks Jesse, = yeah, I tried all. All files are w:r including = /Library/WebObjects/Configuration/* where SiteConfig.xml lives. = JavaMonitor is writing the SiteConfig.xml, wotaskd uses it and it is = readable for anything Apache.

Apache running under _www or, as I just now tried running it = under my own uid, makes no difference. The error_log shows this = line:
[Fri Jun 18 10:39:44.022934 2021] = [authz_core:error] [pid 50274] [client 127.0.0.1:60139] AH01630: client = denied by server configuration: /apps, referer: http://localhost:3333/cgi-bin/WebObjects/JavaMonitor.woa/wo/6tR= ZCAqtsrsCiSrXLUPUMg/0.0.1.0

I tried with cgi-bin as well as = apps.

For me = this indicates something in WOAdaptor not being right. When I google = this error everyone is pointing to Apache config where in some places = Require all allowed is needed. That is there and Apache can serve static = filesystem based resources. 
As the error = points to /apps as the resource that is not accessible this again points = to WOAdaptor. /apps is NOT a file system path (no <Directory> = block in http.conf) but is part of the adaptor URL (set in JavaMonitor = as http://woapps/apps/WebObjects). Seems that WOAdaptor does = not properly take over and then of course Apache would try to access = this non-existing path.

This brings me to the next question: how do I debug = WOAdaptor? Or am I going nuts?

Something else: I compared all the = LoadModule directives in httpd.conf with those on the customer = deployment and made sure there weren=E2=80=99t modules excluded. Nothing = helped. Next is probably to virtualise the client deployment machine, = strip it down to the bare minimum and run it as a test deployment server = inside VMWare. Maybe last resort....

---markus---

On 17 Jun 2021, at 17:07, Jesse Tayler <webobjects-dev@wocommunity.org> wrote:

Well, gosh, it just has to be apache and the OS =E2=80= =94 run down the list of suspects

"client denied by server configuration" is reported so = that=E2=80=99s basically the OS saying you can=E2=80=99t read =E2=80=94 = I think?

I = can=E2=80=99t read your rules, but since apache doesn=E2=80=99t seem to = barf did you check user and OS level stuff carefully?

- the user that is = running apache?
- the actual folder and parent = folder settings?
- read those folders as that user = from the command line?

Other random tests regarding OS level file = permissions?

I=E2=80=99m no expert here, but I=E2=80=99m pretty sure those = files gotta be 755 and it seems like the apache log is reporting a = filesystem level permission error=E2=80=A6?




On Jun 17, 2021, at 10:59 AM, Markus Ruggiero = (rucotec) <webobjects-dev@wocommunity.org> wrote:

This is a new = setup. Up to now I have had a dedicated deployment machine that works. = As this is for a customer I do not want to touch it.

We have a weird problem that only shows = when more than one instance of the same app is running. To be able to = debug and analyze this I thought I=E2=80=99d configure my dev machine so = that I can deploy to it easily without disturbing anything = productive.

Yes,= of course mod_webobjects is loaded. This is the full = wo_apache.config:

LoadModule WebObjects_module = /Users/Shared/Developer/Libraries/Wonder/ApacheWOAdaptor/Apache2.4/macOS/m= od_WebObjects.so
WebObjectsAlias = /apps/WebObjects
WebObjectsConfig http://woapps:1085 10

all the other nice stuff = in there is commented and not active.

If on a command line I type
apachectl -F

I get a whole list of known directives and there are many WO = related ons. Where else would Apache get those if not through mod_webobjects? This = indicates that the module is properly loaded.


On 17 Jun 2021, at 16:44, Jesse = Tayler <webobjects-dev@wocommunity.org> wrote:

Sounds like apache, are you sure things like = mod_webobjects are loaded and those base things?

I can=E2=80=99t read apache = rules=E2=80=A6sorry! They are all just random characters to me=E2=80=A6I = guess the questions is what=E2=80=99s changed or is this a new setup = giving you a hard time?

On Jun = 17, 2021, at 10:40 AM, Markus Ruggiero (rucotec) <webobjects-dev@wocommunity.org> wrote:

Probably missing something so basic that I simply do = not see it. Must be too hot outside (33 Celsius) and no aircon in the office = (31 Celsius). 
Hope someone can point me in = the right direction.

Deployment setup on my dev machine (MBpro, macOS Catalina, = JRE 15). Apache installed via homebrew (Apache/2.4.46 (Unix)), Apple's = Apache not in use

Apache configured with various virtual hosts, resolved = through /etc/hosts. This all works, Apache serves static resources from = these hosts.

JavaMonitor runs, wotaskd runs, Apache loads WOAdaptor by = including wo_apache.conf
apachectl -F knows about WOAdaptor, = so I assume it is properly loaded

wo_apache.conf has this line:
WebObjectsAlias   /apps/WebObjects 

The Apache config file = http.conf has this line
# = ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) = "/usr/local/var/www/CGI-Executables/$1"
ScriptAliasMatch ^/apps/((?!(?i:webobjects)).*$) = "/usr/local/var/www/CGI-Executables/$1"

(tried both variants, with cgi-bin and = the one with apps)

In WOMonitor this is the URL to the adaptor:
(woapps = being one of my virtual hosts)

When I try to = access an installed app the browser reports an error
"You don't have permission to access this = resource=E2=80=9D

and Apache puts a message into the error log file:
[Thu Jun 17 13:43:57.329921 2021] = [authz_core:error] [pid 42093] [client 127.0.0.1:64420] AH01630: client = denied by server configuration: /apps

/apps is not a directory but the first = part of the WO URL and thus should go to the WOAdaptor. Has the = ScriptAliasMatch (see above) anything to do with this?

Thanks for any = help
---markus---


Markus = Ruggiero

rucotec GmbH              =           web https://rucotec.ch
Steinenvorstadt 79      =           email markus.ruggiero@rucotec.ch
4051 Basel / Switzerland    =      mobile +41 79 508 4701













Markus = Ruggiero

rucotec GmbH              =           web https://rucotec.ch
Steinenvorstadt 79      =           email markus.ruggiero@rucotec.ch
4051 Basel / Switzerland    =      mobile +41 79 508 4701











Markus = Ruggiero

rucotec GmbH              =           web https://rucotec.ch
Steinenvorstadt 79      =           email markus.ruggiero@rucotec.ch
4051 Basel / Switzerland    =      mobile +41 79 508 = 4701



Markus = Ruggiero


rucotec GmbH              =           web https://rucotec.ch
Steinenvorstadt 79          =       email markus.ruggiero@rucotec.ch
4051 Basel / = Switzerland         mobile +41 79 508 4701








= --Apple-Mail=_027174E5-E59D-4934-A4EF-E9BEA00A2F96-- --Apple-Mail=_9C7A6D65-F27F-427C-9520-7FE72C595640 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCCzkw ggUhMIIECaADAgECAhBDXz2PBS4rcSTMoUCPbeA+MA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQG EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50 aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMB4XDTE5MDUyMjAwMDAwMFoXDTIyMDUyMTIzNTk1 OVowKzEpMCcGCSqGSIb3DQEJARYabWFya3VzLnJ1Z2dpZXJvQHJ1Y290ZWMuY2gwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIAEK8S00IWrMmIpBkw5CcIS9RfaNGWyJOxskmtuYoHWE4 +QYfOO5tlWt4O5F6bTYsRWp1PpLirrdLhQoYIFp0P5Mi0nsBjNVP0zR0jNpDZreNcLcP7wmuIkUY C0fzxFgnRieFFgaXFm5yf46rqAJMVry/uR/KqwvY1d2F2gOb4DmntPp7TJtDsVyWQDtB82Uep+EO 9j71phQuMUb5TyA4aOdSb6UfCev1RgEw8vXrTdf+1rLzRZvIR1syfsqcLVmIO9WSl9mTH7IlZQhx SmTLqSTvTLssRGprVK8dhJl0nDvFuKknUGNxwCwON1ojJdZPgUJi1K+VvkCqDlI61czNAgMBAAGj ggHTMIIBzzAfBgNVHSMEGDAWgBQJwPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUFRQz2DQf fM2xz9tI/Gy05p6XXc0wDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYI KwYBBQUHAwQGCCsGAQUFBwMCMEAGA1UdIAQ5MDcwNQYMKwYBBAGyMQECAQEBMCUwIwYIKwYBBQUH AgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwu c2VjdGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxD QS5jcmwwgYoGCCsGAQUFBwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNv bS9TZWN0aWdvUlNBQ2xpZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggr BgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wJQYDVR0RBB4wHIEabWFya3VzLnJ1Z2dp ZXJvQHJ1Y290ZWMuY2gwDQYJKoZIhvcNAQELBQADggEBACeso6Iombd/K2MXqk+u5cFNAi3kNRv5 t1WMA2YodqQxz/i/H9OxagG8Ukk5IcHgrikpy0dlOgJ9nOGEWJYrzZbLWZCMd7I8NQpT28vnkgKM 51tzAARg7mHu+SPKwvnDfYB8CFNSQ+Wlkq8wJHL9ALuTeGCRdnRmNtit8o/sRV25KoH6+0U2k08U TO5J+bzVendvcfygdf3bPp3+imRIlXJihwb2fg6OOMqVCnUFHKrdJULZ+SWSWNclriu5GbM1pKql d5dIrApf9M9b9XbY89XgHdFHA5bx7taL1Ie1msC23llmUVSYTHjNOqNrprgfKXvao1taAQvpDhzx BQXzO6YwggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQsw CQYDVQQGEwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAc BgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0 aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQsw CQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3Jk MRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBB dXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXj So5MqXUfItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQ PKA19xeWQcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ 79Khj1YBrf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se 3ed0PewDch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0j BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0A MA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMC BggrBgEFBQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2Ny bC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYG CCsGAQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJU cnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3Qu Y29tMA0GCSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHz tuOCtKF+xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz 1g3nIVO9IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk 2ddQXyn7kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI +jheXUV1eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO 2VnpsXP4KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3 a08LwEsL1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEG VqR1hiuQOZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niF hsM47qodx/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6m SWE3Bn7i5ZgtwCLXgAIe5W8mybM2JzGCA8QwggPAAgEBMIGrMIGWMQswCQYDVQQGEwJHQjEbMBkG A1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0 aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBh bmQgU2VjdXJlIEVtYWlsIENBAhBDXz2PBS4rcSTMoUCPbeA+MA0GCWCGSAFlAwQCAQUAoIIB6TAY BgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMTA2MTkwODAwMDhaMC8G CSqGSIb3DQEJBDEiBCABY5o7RnI4MqsvXjctrf3LLlut+xTJHD416c80henXIDCBvAYJKwYBBAGC NxAEMYGuMIGrMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAw DgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3Rp Z28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBDXz2PBS4r cSTMoUCPbeA+MIG+BgsqhkiG9w0BCRACCzGBrqCBqzCBljELMAkGA1UEBhMCR0IxGzAZBgNVBAgT EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBM aW1pdGVkMT4wPAYDVQQDEzVTZWN0aWdvIFJTQSBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNl Y3VyZSBFbWFpbCBDQQIQQ189jwUuK3EkzKFAj23gPjANBgkqhkiG9w0BAQEFAASCAQCTBYMHDGq6 zReiFgN4oztJHAGe55PkzyeMk7seh+to/b0JOUrmOyhNJXoeJ6LysAisZI17mswV+CCsL0nYuEsB RTrTRUpYqlpJ35UsjlTivRT7W9meUbxMTF6eBig580mx0orQJuB6kx7M4BmnZqDxiQAquMjsvwQv FG2x3k6e/uHODsFZ4ngI272oEYLHu0U57LLXG1hP6luHe9qj5Kwz3TF1nTIf08B1F8m+Z6aOoMCB XW/7xMaXQ9u4yE3a7hfHF8kKUNA92CWR0dVY4gURrilmQtv0VjHYXFS9aMz3DNpVj3dlmovsFJDC VidoyynhhNTpy3wds8lWeHEMjG6oAAAAAAAA --Apple-Mail=_9C7A6D65-F27F-427C-9520-7FE72C595640--