Return-Path: Delivered-To: apmail-cxf-users-archive@www.apache.org Received: (qmail 46977 invoked from network); 5 Feb 2010 14:25:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 5 Feb 2010 14:25:05 -0000 Received: (qmail 75729 invoked by uid 500); 5 Feb 2010 14:25:04 -0000 Delivered-To: apmail-cxf-users-archive@cxf.apache.org Received: (qmail 75676 invoked by uid 500); 5 Feb 2010 14:25:04 -0000 Mailing-List: contact users-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@cxf.apache.org Delivered-To: mailing list users@cxf.apache.org Received: (qmail 75666 invoked by uid 99); 5 Feb 2010 14:25:04 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Feb 2010 14:25:04 +0000 X-ASF-Spam-Status: No, hits=1.5 required=10.0 tests=SPF_PASS,WEIRD_PORT X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [141.83.68.100] (HELO itm01.itm.uni-luebeck.de) (141.83.68.100) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Feb 2010 14:24:54 +0000 Received: from opium.itm.uni-luebeck.de (opium.itm.uni-luebeck.de [141.83.68.179]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by itm01.itm.uni-luebeck.de (Postfix) with ESMTPSA id 4BACF83F8E2 for ; Fri, 5 Feb 2010 15:24:32 +0100 (CET) Subject: Re: DOSGi and JSON responses Mime-Version: 1.0 (Apple Message framework v1077) Content-Type: multipart/signed; boundary=Apple-Mail-28--690136541; protocol="application/pkcs7-signature"; micalg=sha1 From: Daniel Bimschas X-Priority: 3 In-Reply-To: <008c01caa669$8078ae90$1f02050a@emea.progress.com> Date: Fri, 5 Feb 2010 15:24:32 +0100 Message-Id: <9C0F29AC-F889-4706-B73A-0B30C46B1C34@itm.uni-luebeck.de> References: <006701ca9f35$c0f364a0$1f02050a@emea.progress.com> <007201ca9f5f$e5f15b70$1f02050a@emea.progress.com> <42D8CE95-7748-4D83-BC6E-D166B6701AB3@itm.uni-luebeck.de> <03e401ca9f79$afb67530$1f02050a@emea.progress.com> <1CEE5A56-ECD4-480C-B04A-972736E760A1@itm.uni-luebeck.de> <004701caa65e$db620050$1f02050a@emea.progress.com> <0848732E-42AE-422E-BC46-158D7CF14849@itm.uni-luebeck.de> <008c01caa669$8078ae90$1f02050a@emea.progress.com> To: users@cxf.apache.org X-Mailer: Apple Mail (2.1077) --Apple-Mail-28--690136541 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1 Sergey, I just stumbled over another issue that may annoy DOSGI users. If you = start the single bundle distribution (no idea if it's the same with = multi bundle) it starts a Jetty on localhost:8080 which should be usable = like a OSGi compendium HTTP service (that's what I understood at least). = Now if one uses the JAX-RS stuff and registers it's instance with the = "org.apache.cxf.rs.address" property he will have to choose a port other = than 8080 or he'll get the following exception: WARNUNG: WARNING : Problem creating a remote endpoint for = de.uniluebeck.itm.soapraktikum.ws0910.persons.vz.rest.PersonResource = from CXF PublishHook, reason is null org.apache.cxf.service.factory.ServiceConstructionException at = org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.= java:114) at = org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.create= Server(JaxRSPojoConfigurationTypeHandler.java:129) at = org.apache.cxf.dosgi.dsw.hooks.ServiceHookUtils.createServer(ServiceHookUt= ils.java:86) at = org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.createServer(CxfPublishHook.= java:106) at = org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.publishEndpoint(CxfPublishHo= ok.java:80) at org.apache.cxf.dosgi.dsw.Activator$1.run(Activator.java:164) at = java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.= java:886) at = java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java= :908) at java.lang.Thread.run(Thread.java:637) Caused by: org.apache.cxf.interceptor.Fault: Could not start Jetty = server: Address already in use at = org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(Jetty= HTTPServerEngine.java:339) at = org.apache.cxf.transport.http_jetty.JettyHTTPDestination.activate(JettyHTT= PDestination.java:157) at = org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObs= ervable.java:48) at = org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindingF= actory.java:164) at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122) at = org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.= java:105) ... 8 more Caused by: java.net.BindException: Address already in use at sun.nio.ch.Net.bind(Native Method) at = sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119) at = sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59) at = org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.j= ava:205) at = org.mortbay.jetty.nio.SelectChannelConnector.doStart(SelectChannelConnecto= r.java:304) at = org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at org.mortbay.jetty.Server.doStart(Server.java:233) at = org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at = org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(Jetty= HTTPServerEngine.java:306) ... 13 more I guess it should be possible to reuse the running Jetty instance and = deploy the instance to the standard OSGi HTTP service. At least that's = what a user would expect. What do you think about it? Kind regards, Daniel Am 05.02.2010 um 14:45 schrieb Sergey Beryozkin: > I'm wondering, is the problem here to do with the fact that DOSGI is = trying to use the BundelContext/Bundle of the application bundle to load = the providers ? It should work if the providers's code is indeed inside = a given app bundle but looks like it causes issues if the provider's = code is actually located elsewhere. >=20 > That said, if you own bundle imports the = org.apache.cxf.jaxrs.provider.* then surely the OSGI loader has to be = capable to find the classes available elsewhere in the container, = especially given that CXF minimal bundle is exporting = org.apache.cxf.jaxrs.provider ? >=20 > Can you please check that your own bundle Import-Packag(es) the = org.apache.cxf.jaxrs.provider.* ? >=20 > thanks, Sergey >=20 > ----- Original Message ----- From: "Daniel Bimschas" = > To: > Sent: Friday, February 05, 2010 1:34 PM > Subject: Re: DOSGi and JSON responses >=20 >=20 > Maybe the full debugging output including stack trace can help more: >=20 > INFO: Creating a = de.uniluebeck.itm.soapraktikum.ws0910.persons.vz.rest.PersonResource = endpoint from CXF PublishHook, address is = http://localhost:8081/verzeichnis/ > java.lang.ClassNotFoundException: = org.apache.cxf.jaxrs.provider.JAXBElementProvider > at = org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(Modu= leImpl.java:744) > at = org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:61) > at = org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleIm= pl.java:1656) > at java.lang.ClassLoader.loadClass(ClassLoader.java:250) > at = org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java= :604) > at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1487) > at = org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:897) > at = org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils.loadProviders(JaxRSUtils.java= :112) > at = org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils.getProviders(JaxRSUtils.java:= 67) > at = org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.create= Server(JaxRSPojoConfigurationTypeHandler.java:119) > at = org.apache.cxf.dosgi.dsw.hooks.ServiceHookUtils.createServer(ServiceHookUt= ils.java:86) > at = org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.createServer(CxfPublishHook.= java:106) > at = org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.publishEndpoint(CxfPublishHo= ok.java:80) > at org.apache.cxf.dosgi.dsw.Activator$1.run(Activator.java:164) > at = java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.= java:886) > at = java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java= :908) > at java.lang.Thread.run(Thread.java:637) > 05.02.2010 14:32:16 org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils = loadProviders > WARNUNG: JAXRS Provider = org.apache.cxf.jaxrs.provider.JAXBElementProvider can not be loaded or = created > java.lang.ClassNotFoundException: = org.apache.cxf.jaxrs.provider.JSONProvider > at = org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(Modu= leImpl.java:744) > at = org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:61) > at = org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleIm= pl.java:1656) > at java.lang.ClassLoader.loadClass(ClassLoader.java:250) > at = org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java= :604) > at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1487) > at = org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:897) > at = org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils.loadProviders(JaxRSUtils.java= :112) > at = org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils.getProviders(JaxRSUtils.java:= 67) > at = org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.create= Server(JaxRSPojoConfigurationTypeHandler.java:119) > at = org.apache.cxf.dosgi.dsw.hooks.ServiceHookUtils.createServer(ServiceHookUt= ils.java:86) > at = org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.createServer(CxfPublishHook.= java:106) > at = org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.publishEndpoint(CxfPublishHo= ok.java:80) > at org.apache.cxf.dosgi.dsw.Activator$1.run(Activator.java:164) > at = java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.= java:886) > at = java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java= :908) > at java.lang.Thread.run(Thread.java:637) > 05.02.2010 14:32:16 org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils = loadProviders >=20 >=20 > Am 05.02.2010 um 14:22 schrieb Daniel Bimschas: >=20 >> It's Felix over Pax Runner in my case. If I take the = "sun.*,com.sun.*,javax.xml.bind,javax.xml.bind.*" packages out of the = bootdelegation classpath the following errors will occur: >>=20 >> java.lang.ClassNotFoundException: = org.apache.cxf.jaxrs.provider.JAXBElementProvider >> java.lang.ClassNotFoundException: = org.apache.cxf.jaxrs.provider.JSONProvider >>=20 >> For me, currently that doesn't make sense since the DOSGI bundle is = fully resolved and all classes should be loadable. I'll further = investigate this... >>=20 >> Am 05.02.2010 um 13:29 schrieb Sergey Beryozkin: >>=20 >>>> S.B : Is it a single bundle distro ? Yes, it ships the stax api = bundle I think...Hmm...Will it work if you try the multibundle distro = and omit the stax-api bundle ? Or perhaps updating the Equinox config to = block the stax api from the system ? >>=20 >> --=20 >> M.Sc. Daniel Bimschas >> Institute of Telematics, University of L=FCbeck >> http://www.itm.uni-luebeck.de/users/bimschas >> Ratzeburger Allee 160, 23538 L=FCbeck, Germany >> Phone: +49 451 500 5389 >>=20 >=20 > --=20 > M.Sc. Daniel Bimschas > Institute of Telematics, University of L=FCbeck > http://www.itm.uni-luebeck.de/users/bimschas > Ratzeburger Allee 160, 23538 L=FCbeck, Germany > Phone: +49 451 500 5389 >=20 >=20 --=20 M.Sc. Daniel Bimschas Institute of Telematics, University of L=FCbeck http://www.itm.uni-luebeck.de/users/bimschas Ratzeburger Allee 160, 23538 L=FCbeck, Germany Phone: +49 451 500 5389 --Apple-Mail-28--690136541 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIOpDCCBCEw ggMJoAMCAQICAgDHMA0GCSqGSIb3DQEBBQUAMHExCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNEZXV0 c2NoZSBUZWxla29tIEFHMR8wHQYDVQQLExZULVRlbGVTZWMgVHJ1c3QgQ2VudGVyMSMwIQYDVQQD ExpEZXV0c2NoZSBUZWxla29tIFJvb3QgQ0EgMjAeFw0wNjEyMTkxMDI5MDBaFw0xOTA2MzAyMzU5 MDBaMFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJ MSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDEwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQDpm8NnhfkNrvWNVMOWUDU9YuluTO2U1wBblSJ01CDrNI/W7MAxBAuZgeKm FNJSoCgjhIt0iQReW+DieMF4yxbLKDU5ey2QRdDtoAB6fL9KDhsAw4bpXCsxEXsM84IkQ4wcOItq aACa7txPeKvSxhObdq3u3ibo7wGvdA/BCaL2a869080UME/15eOkyGKbghoDJzANAmVgTe3RCSMq ljVYJ9N2xnG2kB3E7f81hn1vM7PbD8URwoqDoZRdQWvY0hD1TP3KUazZve+Sg7va64sWVlZDz+HV Ez2mHycwzUlU28kTNJpxdcVs6qcLmPkhnSevPqM5OUhqjK3JmfvDEvK9AgMBAAGjgdkwgdYwcAYD VR0fBGkwZzBloGOgYYZfaHR0cDovL3BraS50ZWxlc2VjLmRlL2NnaS1iaW4vc2VydmljZS9hZl9E b3dubG9hZEFSTC5jcmw/LWNybF9mb3JtYXQ9WF81MDkmLWlzc3Vlcj1EVF9ST09UX0NBXzIwHQYD VR0OBBYEFEm3xs/oPR9/6kR7Eyn38QpwPt5kMB8GA1UdIwQYMBaAFDHDeRu69VPXF+CJei0XbAqz K50zMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMA0GCSqGSIb3DQEBBQUAA4IB AQA74Vp3wEgX3KkY7IGvWonwvSiSpspZGBJw7Cjy565/lizn8l0ZMfYTK3S9vYCyufdnyTmieTvh ERHua3iRM347XyYndVNljjNj7s9zw7CSI0khUHUjoR8Y4pSFPT8z6XcgjaK95qGFKUD2P3MyWA0J a6bahWzAP7uNZmRWJE6uDT8yNQFb6YyC2XJZT7GGhfF0hVblw/hc843uR7NTBXDn5U2KaYMo4RMJ hp5eyOpYHgwf+aTUWgRo/Sg+iwK2WLX2oSw3VwBnqyNojWOl75lrXP1LVvarQIc01BGSbOyHxQoL BzNytG8MHVQs2FHHzL8w00Ny8TK/jM5JY6gA9/IcMIIFNzCCBB+gAwIBAgIEChiHZjANBgkqhkiG 9w0BAQUFADBaMQswCQYDVQQGEwJERTETMBEGA1UEChMKREZOLVZlcmVpbjEQMA4GA1UECxMHREZO LVBLSTEkMCIGA1UEAxMbREZOLVZlcmVpbiBQQ0EgR2xvYmFsIC0gRzAxMB4XDTA3MDMxNTA4NTQ0 N1oXDTE5MDMxNDAwMDAwMFowgasxCzAJBgNVBAYTAkRFMSAwHgYDVQQKExdVbml2ZXJzaXRhZXQg enUgTHVlYmVjazEuMCwGA1UECxMlSW5zdGl0dXQgZnVlciBNZWRpemluaXNjaGUgSW5mb3JtYXRp azEnMCUGA1UEAxMeQ0EgZGVyIFVuaXZlcnNpdGFldCB6dSBMdWViZWNrMSEwHwYJKoZIhvcNAQkB FhJwa2lAdW5pLWx1ZWJlY2suZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWZS7m r7XjjwizbKXx3HQYxk369Bw40r31jGlnN0lJl2e+VCzKa2KOSGndQ2dfPEFfGTS16BEhpf8SPPYD PEsMz8WR/FnZdFGK4qpV0b7+pzN7L4xgnKoG2LXWaJR2hygCb6fG2EiPWT7eovN4PK/sNXj/5ekP fXdyKrD9fbMPhll+mTTR9DsCypH5oDGOFAsNAn3h0iE4dYPTl67T3LGhYl7Wd7Z9zSZRfD6a+lOm J86jguBL1rfq5wvefwIvsGZYYwOTf+uZyMosFYZlGMJCY0m9JO/ZNoRGdDGdv1iFVSxeL0im28gZ zoREaPbc7qFaTKw0w2kCoROEYhXmrqFDAgMBAAGjggGxMIIBrTAPBgNVHRMBAf8EBTADAQH/MAsG A1UdDwQEAwIBBjAdBgNVHQ4EFgQUtytvwMcYEDE2F1IQdaHQQMM5NB8wHwYDVR0jBBgwFoAUSbfG z+g9H3/qRHsTKffxCnA+3mQwHQYDVR0RBBYwFIEScGtpQHVuaS1sdWViZWNrLmRlMIGIBgNVHR8E gYAwfjA9oDugOYY3aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1jYS9wdWIvY3Js L2NhY3JsLmNybDA9oDugOYY3aHR0cDovL2NkcDIucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1jYS9w dWIvY3JsL2NhY3JsLmNybDCBogYIKwYBBQUHAQEEgZUwgZIwRwYIKwYBBQUHMAKGO2h0dHA6Ly9j ZHAxLnBjYS5kZm4uZGUvZ2xvYmFsLXJvb3QtY2EvcHViL2NhY2VydC9jYWNlcnQuY3J0MEcGCCsG AQUFBzAChjtodHRwOi8vY2RwMi5wY2EuZGZuLmRlL2dsb2JhbC1yb290LWNhL3B1Yi9jYWNlcnQv Y2FjZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAQEAopseiKAnns0Q+mVXqJfb7JdQkuFnNNfMUPnU DA2upi+bxj5ZJFLBckRlrqq4X1QNLUfFzJTMn+2eGhwX+o/WdUKhXxPceLEDFzlmLBjvV+hDEktE MBMeUIsPtBhl0HjiZQXN6OTBjmHeSqUf5hhr7BuGLg85tV8XqO4ZEssPibF+2W8Qrbja+0RNaQ3M z454MW4blXziGaz0ySFRL1kVXtYF+FM4bldtgIApXJvZmDYVCzQ6Lif0jphvBUG7R8UEF/h1ZFdm KNwe0juUX0jmf+8OYZans8ObDGENRyyWSUe/KClmRO5phFK95LACNSpl7ueJeWwqo6jK1Rb8PN0d tzCCBUAwggQooAMCAQICBA8jnP0wDQYJKoZIhvcNAQEFBQAwgasxCzAJBgNVBAYTAkRFMSAwHgYD VQQKExdVbml2ZXJzaXRhZXQgenUgTHVlYmVjazEuMCwGA1UECxMlSW5zdGl0dXQgZnVlciBNZWRp emluaXNjaGUgSW5mb3JtYXRpazEnMCUGA1UEAxMeQ0EgZGVyIFVuaXZlcnNpdGFldCB6dSBMdWVi ZWNrMSEwHwYJKoZIhvcNAQkBFhJwa2lAdW5pLWx1ZWJlY2suZGUwHhcNMDkxMTE4MTYyMzA5WhcN MTIxMTE3MTYyMzA5WjBXMQswCQYDVQQGEwJERTEgMB4GA1UEChMXVW5pdmVyc2l0YWV0IHp1IEx1 ZWJlY2sxDDAKBgNVBAsTA0lUTTEYMBYGA1UEAxMPRGFuaWVsIEJpbXNjaGFzMIIBIjANBgkqhkiG 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoyuuPmJVmcAgGqD88Buo28xWB9M2K4xRSDFyxAq6my795dac 24WNuheq6MTDzl8VlQt51euYjBLGTXVWvsVMEDbC3EPqd8BME2Dxl9YLXstTUoAP95IHkZ5QraiN 2bEeSmdGz+XvHjST0xCuCZKpn2+fShyVU6SqlRQx5eLVTS1OvD/Wox++OdNAvaVxxVmvmM3W596f aUfd2l5a4dvMwR5fog6dWYQ27TlWK7oawb7afAFNsYqy51Y9zniErXUo48dvWDvlyy8HZyVqrD4C DLqBdMt8oQ2yZrDQDeZ9Ea+Pd3/x0pGNfTOmBc5B2uYYZl3VLX9giYEGrZ/dFl+aiQIDAQABo4IB vTCCAbkwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwKQYDVR0lBCIwIAYIKwYBBQUHAwIGCCsGAQUF BwMEBgorBgEEAYI3FAICMB0GA1UdDgQWBBTSsiROJNYBKUR2iL6pBxt8ICDbWjAfBgNVHSMEGDAW gBS3K2/AxxgQMTYXUhB1odBAwzk0HzAmBgNVHREEHzAdgRtiaW1zY2hhc0BpdG0udW5pLWx1ZWJl Y2suZGUwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDovL2NkcDEucGNhLmRmbi5kZS91emwtY2EvcHVi L2NybC9jYWNybC5jcmwwNaAzoDGGL2h0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvdXpsLWNhL3B1Yi9j cmwvY2FjcmwuY3JsMIGSBggrBgEFBQcBAQSBhTCBgjA/BggrBgEFBQcwAoYzaHR0cDovL2NkcDEu cGNhLmRmbi5kZS91emwtY2EvcHViL2NhY2VydC9jYWNlcnQuY3J0MD8GCCsGAQUFBzAChjNodHRw Oi8vY2RwMi5wY2EuZGZuLmRlL3V6bC1jYS9wdWIvY2FjZXJ0L2NhY2VydC5jcnQwDQYJKoZIhvcN AQEFBQADggEBAG6RWU3TV0viAr5G142hIWIq68nll/Vq7eZFi8BPLkn+AZJ7I2uUPWAQVWXo05hY GwoJn11jUHzX7WdsEQHsjFqzYaf/0kTvOqgabUJa7WDyCpaArRh2+EINtDdqo+8KbcHC79h5Xw/I uCII3uo2mLV7m1SwU1Ps22skpGKMxnoBEnOuW4p2tiOQxwT5rsYrgjllp+u6T+Vyr2P2vcIDY2sg 9L+J/76oQJkRgj6Ey6yJ2bt8AMMJBrkN42PXXAzFTinyCptyOUcDWe5f2uVAElj90U0zvQkz0612 +Z4ZmptsRPkH5uluKddzd0a1CAa+2s4TVSMAoAX+vQOq4JY1nyMxggPPMIIDywIBATCBtDCBqzEL MAkGA1UEBhMCREUxIDAeBgNVBAoTF1VuaXZlcnNpdGFldCB6dSBMdWViZWNrMS4wLAYDVQQLEyVJ bnN0aXR1dCBmdWVyIE1lZGl6aW5pc2NoZSBJbmZvcm1hdGlrMScwJQYDVQQDEx5DQSBkZXIgVW5p dmVyc2l0YWV0IHp1IEx1ZWJlY2sxITAfBgkqhkiG9w0BCQEWEnBraUB1bmktbHVlYmVjay5kZQIE DyOc/TAJBgUrDgMCGgUAoIIB7zAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJ BTEPFw0xMDAyMDUxNDI0MzJaMCMGCSqGSIb3DQEJBDEWBBSu0ug9p+6Eo5kyg0j6t2cy8iIiYzCB xQYJKwYBBAGCNxAEMYG3MIG0MIGrMQswCQYDVQQGEwJERTEgMB4GA1UEChMXVW5pdmVyc2l0YWV0 IHp1IEx1ZWJlY2sxLjAsBgNVBAsTJUluc3RpdHV0IGZ1ZXIgTWVkaXppbmlzY2hlIEluZm9ybWF0 aWsxJzAlBgNVBAMTHkNBIGRlciBVbml2ZXJzaXRhZXQgenUgTHVlYmVjazEhMB8GCSqGSIb3DQEJ ARYScGtpQHVuaS1sdWViZWNrLmRlAgQPI5z9MIHHBgsqhkiG9w0BCRACCzGBt6CBtDCBqzELMAkG A1UEBhMCREUxIDAeBgNVBAoTF1VuaXZlcnNpdGFldCB6dSBMdWViZWNrMS4wLAYDVQQLEyVJbnN0 aXR1dCBmdWVyIE1lZGl6aW5pc2NoZSBJbmZvcm1hdGlrMScwJQYDVQQDEx5DQSBkZXIgVW5pdmVy c2l0YWV0IHp1IEx1ZWJlY2sxITAfBgkqhkiG9w0BCQEWEnBraUB1bmktbHVlYmVjay5kZQIEDyOc /TANBgkqhkiG9w0BAQEFAASCAQAdPOzTWfxdnMC//D8UZc/1p09DuomdQJmnqOBbgVgChhqfqSBQ fk0BYO4eBUXodpDyAE6QV4mvzV7aH4etVTgGLk08lEbAAfTWltthITwIxX1HMHWP1NnVtT17sYVD pffcPWNn4QwutRCKPc8a2QGebOaEyc8idu3NEQosmv+en8+RvhHhBqlNYJrRKtgc//RttXn82lPN yGG5Vz+yTxY3GXkWFXVa0xppll/ZXjM+17slQ6MmALE16ezI8X6vzQUOGPkOnBTsyFTP09q8nZWl RmGfrDV89GH8gi3Hc9Eam7m0bjZqk+kFo9gfUvihTUVOhZRI4F0QSx5/kzpOiXA1AAAAAAAA --Apple-Mail-28--690136541--